Виртуальная машина на основе ядра - Kernel-based Virtual Machine

KVM
Kvmbanner-logo2 1.png
Снимок экрана QEMU / KVM под управлением гостевых систем NetBSD, OpenSolaris и Kubuntu на хосте Arch Linux.
Скриншот работающего QEMU / KVM NetBSD, OpenSolaris и Кубунту гости на Arch Linux хозяин.
Оригинальный автор (ы)Кумранет
Разработчики)В Ядро Linux сообщество
Репозиторий Отредактируйте это в Викиданных
Написано вC
Операционная системаUnix-подобный
ПлатформаРУКА, IA-64, PowerPC, S / 390, x86, x86-64
ТипГипервизор
ЛицензияGNU GPL или же LGPL
Интернет сайтwww.linux-kvm.org

Виртуальная машина на основе ядра (KVM) это виртуализация модуль в Ядро Linux что позволяет ядро функционировать как гипервизор. Он был объединен с Linux Основная линия ядра в версии ядра 2.6.20, выпущенная 5 февраля 2007 года.[1] KVM требует процессора с аппаратная виртуализация расширения, такие как Intel VT или же AMD-V.[2] KVM также был перенесен на другие операционные системы, такие как FreeBSD[3] и иллюзия[4] в виде загружаемых модулей ядра.

KVM изначально был разработан для x86 процессоров, но с тех пор портирован к S / 390,[5] PowerPC,[6] IA-64, и РУКА.[7]

KVM обеспечивает виртуализация с аппаратной поддержкой для широкого спектра гостевых операционных систем, включая Linux, BSD, Солярис, Windows, Хайку, ReactOS, План 9, Операционная система AROS Research и macOS.[8][9] Кроме того, Android 2.2, GNU / Hurd[10] (Debian К16), Minix 3.1.2a, Solaris 10 U3 и Дарвин Известно, что 8.0.1 вместе с другими операционными системами и некоторыми более новыми версиями перечисленных выше работает с определенными ограничениями.[11]

Кроме того, KVM предоставляет паравиртуализация поддержка Linux, OpenBSD,[12] FreeBSD,[13] NetBSD,[14] План 9[15] и гости Windows, использующие VirtIO API.[16] Это включает паравиртуальный Карта Ethernet, дисковый контроллер ввода-вывода,[17] водитель воздушного шара, а VGA графический интерфейс с использованием СПЕЦИЯ или же VMware драйверы.

История

Ави Кививи начал разработку KVM в середине 2006 г. Кумранет, технология стартап компания[18] что было приобретено Красная шляпа в 2008.[19]

KVM появился в октябре 2006 г.[20] и был объединен с основной веткой ядра Linux в версии ядра 2.6.20, выпущенной 5 февраля 2007 года.[1]

KVM поддерживается Паоло Бонзини.[21]

Внутренности

Общий обзор среды виртуализации KVM / QEMU[22]:3

KVM обеспечивает абстракцию устройства, но не эмуляцию процессора. Он раскрывает / dev / kvm интерфейс, который хост пользовательского режима может затем использовать для:

  • Настройте адресное пространство гостевой виртуальной машины. Хост также должен предоставить образ микропрограммы (обычно это настраиваемый BIOS при эмуляции ПК), который гость может использовать для загрузки в свою основную ОС.
  • Подача имитации ввода-вывода гостя.
  • Сопоставьте отображение видео гостя с хостом системы.

В Linux QEMU версии 0.10.1 и выше является одним из таких узлов пользовательского пространства. QEMU использует KVM, когда он доступен, для виртуализации гостей на скоростях, близких к родным, но в остальном возвращается к программной эмуляции.

Внутри KVM использует SeaBIOS как реализация с открытым исходным кодом 16-битного x86 BIOS.[23]

Функции

KVM поддерживает виртуальные ЦП с возможностью горячей замены,[24] динамическое управление памятью,[25] и Живая миграция с февраля 2007 г.[26][27] влияние рабочей нагрузки на интенсивную запись в память в процессе миграции[28]

Эмулируемое оборудование

Учебный классУстройство
ВидеокартаКарта Cirrus CLGD 5446 PCI VGA, фиктивная карта VGA с Bochs VESA расширения[29] или VirtIO[30]
PCIi440FX или же Q35[29]
Устройство вводаPS / 2 и USB Мышь / Клавиатура[29]
Звуковая картаSound Blaster 16, ENSONIQ AudioPCI ES1370, Гравис УЗИ GF1, Совместимость с CS4231A, Intel HD Audio[29]
Ethernet Сетевая картаAMD Am79C970A (Am7990 ), E1000 (Intel 82540EM, 82573L, 82544GC), NE2000, Realtek RTL8139 и VirtIO
Устройство храненияIDE, SATA, SCSI, SAS, USB, NVMe и VirtIO
Сторожевой таймерIntel 6300ESB или IB700
баранот 50 МБ до 32 ТБ
ЦПУ1 - 160 процессоров

Инструменты графического управления

libvirt поддерживает KVM
  • Кимчи - веб-инструмент управления виртуализацией для KVM
  • Диспетчер виртуальных машин - поддерживает создание, редактирование, запуск и остановку виртуальных машин на основе KVM, а также динамическую или холодную миграцию виртуальных машин между хостами с помощью перетаскивания.
  • Виртуальная среда Proxmox - пакет управления виртуализацией с открытым исходным кодом, включая KVM и LXC. Он имеет инсталлятор с нуля, графический интерфейс удаленного управления через Интернет, стек кластера высокой доступности, унифицированное хранилище, гибкую сеть и дополнительную коммерческую поддержку.
  • OpenQRM - платформа управления для управления гетерогенными инфраструктурами ЦОД.
  • Ящики GNOME - Интерфейс Gnome для управления гостями libvirt в Linux.
  • OVirt - инструмент управления виртуализацией с открытым исходным кодом для KVM, построенный на основе libvirt

Лицензирование

Компоненты KVM находятся под различными лицензиями GNU:[31]

  • Модуль ядра KVM: GPL v2
  • Пользовательский модуль KVM: LGPL v2
  • Библиотека ядра виртуального процессора QEMU (libqemu.a) и эмулятор системы ПК QEMU: LGPL
  • Эмулятор QEMU пользовательского режима Linux: GPL
  • Файлы BIOS (bios.bin, vgabios.bin и vgabios-cirrus.bin): LGPL v2 или новее

Смотрите также

Рекомендации

  1. ^ а б «Ядро Linux 2.6.20, раздел 2.2. Поддержка виртуализации через KVM». kernelnewbies.org. 2007-02-05. Получено 2014-06-16.
  2. ^ KVM FAQ: что мне нужно для использования KVM?
  3. ^ «Ежеквартальный отчет о состоянии FreeBSD: перенос Linux KVM на FreeBSD».
  4. ^ «KVM на иллюмосах».
  5. ^ «Гмане - по почте в новости и обратно». Архивировано из оригинал на 2007-09-29. Получено 2007-05-07.
  6. ^ Gmane Loom В архиве 2007-09-29 на Wayback Machine
  7. ^ «Проект с открытым исходным кодом KVM / ARM». Архивировано из оригинал на 2013-03-10. Получено 2017-11-01.
  8. ^ «KVM wiki: статус гостевой поддержки». Получено 2007-05-27.
  9. ^ «Запуск Mac OS X в качестве гостя QEMU / KVM». Получено 2014-08-20.
  10. ^ "положение дел". Gnu.org. Получено 2014-02-12.
  11. ^ «Статус гостевой поддержки - KVM». Linux-kvm.org. Получено 2014-02-12.
  12. ^ "Страница руководства OpenBSD virtio (4)". Получено 2018-02-04.
  13. ^ "Бинарные пакеты virtio для FreeBSD". Получено 2012-10-29.
  14. ^ "Страница руководства по NetBSD virtio (4)". Получено 2013-07-15.
  15. ^ "план9фронт". Получено 2013-02-11.
  16. ^ «API для виртуального ввода-вывода: virtio». LWN.net. 2007-07-11. Получено 2014-04-16.
  17. ^ "Цель SCSI для KVM wiki". linux-iscsi.org. 2012-08-07. Получено 2012-08-12.
  18. ^ Интервью: Ави Кивити В архиве 2007-04-26 на Wayback Machine на KernelTrap
  19. ^ «Red Hat продвигает лидерство в области виртуализации с приобретением Qumranet, Inc.». Красная шляпа. 4 сентября 2008 г.. Получено 16 июн 2015.
  20. ^ https://www.itworldcanada.com/article/kvm-15-equipped-with-live-migration/7901
  21. ^ Либби Кларк (7 апреля 2015 г.). «Истории успеха Git и советы от специалиста по обслуживанию KVM Паоло Бонзини». Linux.com. Архивировано из оригинал 15 марта 2016 г.. Получено 17 июн 2015.
  22. ^ Khoa Huynh; Стефан Хайноци (2010). «Обсуждение производительности стека хранения KVM / QEMU» (PDF). IBM. Конференция сантехников Linux. Получено 3 января, 2015.[постоянная мертвая ссылка ]
  23. ^ «СиБИОС». seabios.org. 2013-12-21. Получено 2014-06-16.
  24. ^ https://access.redhat.com/articles/1339413
  25. ^ https://www.linux-kvm.org/page/FAQ#Is_dynamic_memory_management_for_gests_supported.3F
  26. ^ https://lwn.net/Articles/223754/
  27. ^ https://www.linux-kvm.org/page/Migration
  28. ^ https://www.berrange.com/posts/2016/05/12/analysis-of-techniques-for-ensuring-migration-completion-with-kvm/
  29. ^ а б c d wiki.qemu.org - Документация для пользователя эмулятора QEMU, читать 2010-05-06
  30. ^ «Представляем Virgil - виртуальный 3D-графический процессор для qemu». 2013-07-18. Архивировано из оригинал на 2013-07-25.
  31. ^ Информация о лицензировании Ubuntu 7.04 / usr / share / doc / kvm / авторское право

Библиография

внешняя ссылка