Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

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

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

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

Кроме того, KVM обеспечивает поддержку паравиртуализации для Linux, OpenBSD , [12] FreeBSD, [13] NetBSD , [14] Plan 9 [15] и гостевых систем Windows, использующих VirtIO API . [16] Это включает в себя paravirtual карты Ethernet , дисковый ввод / вывод контроллер, [17] Драйвер воздушного шара , а также VGA графику интерфейса с помощью SPICE или VMware драйверов.

История [ править ]

Ави Кививи начал разработку KVM в середине 2006 года в Qumranet , технологической компании-стартапе [18], которая была приобретена Red Hat в 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-разрядного BIOS x86 с открытым исходным кодом . [23]

Особенности [ править ]

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

Эмулируемое оборудование [ править ]

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

libvirt поддерживает KVM
  • Kimchi  - веб-инструмент управления виртуализацией для KVM
  • Virtual Machine Manager  - поддерживает создание, редактирование, запуск и остановку виртуальных машин на основе KVM, а также динамическую или холодную миграцию виртуальных машин между хостами с помощью перетаскивания.
  • Proxmox Virtual Environment  - пакет управления виртуализацией с открытым исходным кодом, включая KVM и LXC . Он имеет инсталлятор с нуля, графический интерфейс удаленного управления через Интернет, стек кластера высокой доступности, унифицированное хранилище, гибкую сеть и дополнительную коммерческую поддержку.
  • OpenQRM  - платформа управления для управления разнородными инфраструктурами ЦОД.
  • GNOME Boxes  - интерфейс 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 или новее

См. Также [ править ]

  • CloudStack
  • Сравнение программного обеспечения для виртуализации платформ
  • Объединение одной страницы ядра (KSM)
  • Lguest
  • libguestfs
  • libvirt
  • многопроходный
  • Открытый альянс виртуализации
  • OpenNebula
  • OpenStack
  • OVirt
  • Proxmox VE
  • Виртуализация Red Hat
  • Vx32
  • Xen

Ссылки [ править ]

  1. ^ a b «Ядро Linux 2.6.20, раздел 2.2. Поддержка виртуализации через KVM» . kernelnewbies.org . 2007-02-05 . Проверено 16 июня 2014 .
  2. ^ Часто задаваемые вопросы о KVM: что мне нужно для использования KVM?
  3. ^ «Ежеквартальный отчет о состоянии FreeBSD: перенос Linux KVM на FreeBSD» .
  4. ^ "KVM на иллюминаторах" .
  5. ^ "Gmane - Mail To News And Back Again" . Архивировано из оригинала на 2007-09-29 . Проверено 7 мая 2007 .
  6. ^ Gmane Loom архивации 2007-09-29 в Wayback Machine
  7. ^ "Проект с открытым исходным кодом KVM / ARM" . Архивировано из оригинала на 2013-03-10 . Проверено 1 ноября 2017 .
  8. ^ «KVM wiki: Статус гостевой поддержки» . Проверено 27 мая 2007 .
  9. ^ «Запуск Mac OS X в качестве гостя QEMU / KVM» . Проверено 20 августа 2014 .
  10. ^ "статус" . Gnu.org . Проверено 12 февраля 2014 .
  11. ^ «Статус гостевой поддержки - KVM» . Linux-kvm.org . Проверено 12 февраля 2014 .
  12. ^ "Страница руководства OpenBSD virtio (4)" . Проверено 4 февраля 2018 .
  13. ^ "Бинарные пакеты virtio для FreeBSD" . Проверено 29 октября 2012 .
  14. ^ "Справочная страница virtio (4) NetBSD" . Проверено 15 июля 2013 .
  15. ^ "plan9front" . Проверено 11 февраля 2013 .
  16. ^ "API для виртуального ввода-вывода: virtio" . LWN.net . 2007-07-11 . Проверено 16 апреля 2014 .
  17. ^ "Цель SCSI для вики KVM" . linux-iscsi.org. 2012-08-07 . Проверено 12 августа 2012 .
  18. ^ Интервью: Avi Kivity архивации 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 Хюинь; Стефан Хайноци (2010). «Обсуждение производительности стека хранения KVM / QEMU» (PDF) . IBM . Конференция сантехников Linux . Проверено 3 января 2015 года . [ постоянная мертвая ссылка ]
  23. ^ "SeaBIOS" . seabios.org. 2013-12-21 . Проверено 16 июня 2014 .
  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. ^ a b 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 / copyright

Библиография [ править ]

  • Амит Шах (2 ноября 2016 г.). «Десять лет КВМ» . lwn.net . Проверено 10 февраля 2017 .

Внешние ссылки [ править ]

  • Официальный веб-сайт
  • Лучшие практики для виртуальной машины на основе ядра , IBM, второе издание, апрель 2012 г.
  • Улучшение производительности Virtio-blk , Форум KVM 2012, 8 ноября 2012 г., Азиас Хе
  • Wikibook QEMU & KVM