Снимок экрана QEMU / KVM под управлением гостевых систем NetBSD , OpenSolaris и Kubuntu на хосте Arch Linux . | |
Оригинальный автор (ы) | Кумранет |
---|---|
Разработчики) | Ядро Linux сообщество |
Репозиторий | |
Написано в | C |
Операционная система | Unix-подобный |
Платформа | ARM , IA-64 , PowerPC , S / 390 , x86 , x86-64 |
Тип | Гипервизор |
Лицензия | GNU GPL или LGPL |
Интернет сайт | www |
Виртуальная машина на основе ядра ( 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 обеспечивает абстракцию устройства, но не эмуляцию процессора. Он предоставляет интерфейс / dev / kvm , который затем может использовать хост пользовательского режима для:
- Настройте адресное пространство гостевой виртуальной машины. Хост также должен предоставить образ микропрограммы (обычно это настраиваемый BIOS при эмуляции ПК), который гость может использовать для загрузки в свою основную ОС.
- Подача имитации ввода-вывода гостя.
- Сопоставьте отображение видео гостя с хостом системы.
В Linux одним из таких узлов пользовательского пространства является QEMU версии 0.10.1 и новее. QEMU использует KVM, когда он доступен, для виртуализации гостей на скоростях, близких к собственным, но в остальном возвращается к программной эмуляции.
Внутри KVM использует SeaBIOS как реализацию 16-разрядного BIOS x86 с открытым исходным кодом . [23]
Особенности [ править ]
KVM поддерживает « горячую» замену виртуальных ЦП , [24] управление динамической памятью [25] и динамическую миграцию с февраля 2007 года. [26] [27] Влияние интенсивной записи в память на рабочую нагрузку в процессе миграции [28]
Эмулируемое оборудование [ править ]
Этот раздел дублирует область действия других разделов , в частности, QEMU # x86 . Ноябрь 2020 г. ) ( |
Учебный класс | Устройство |
---|---|
Видеокарта | Карта Cirrus CLGD 5446 PCI VGA, фиктивная карта VGA с расширениями Bochs VESA , [29] или VirtIO [30] |
PCI | i440FX или Q35 [29] |
Устройство ввода | PS / 2 и USB- мышь / клавиатура [29] |
Звуковая карта | Sound Blaster 16 , ENSONIQ AudioPCI ES1370 , Gravis Ultrasound 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 процессоров |
Инструменты графического управления [ править ]
- 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
Ссылки [ править ]
- ^ a b «Ядро Linux 2.6.20, раздел 2.2. Поддержка виртуализации через KVM» . kernelnewbies.org . 2007-02-05 . Проверено 16 июня 2014 .
- ^ Часто задаваемые вопросы о KVM: что мне нужно для использования KVM?
- ^ «Ежеквартальный отчет о состоянии FreeBSD: перенос Linux KVM на FreeBSD» .
- ^ "KVM на иллюминаторах" .
- ^ "Gmane - Mail To News And Back Again" . Архивировано из оригинала на 2007-09-29 . Проверено 7 мая 2007 .
- ^ Gmane Loom архивации 2007-09-29 в Wayback Machine
- ^ "Проект с открытым исходным кодом KVM / ARM" . Архивировано из оригинала на 2013-03-10 . Проверено 1 ноября 2017 .
- ^ «KVM wiki: Статус гостевой поддержки» . Проверено 27 мая 2007 .
- ^ «Запуск Mac OS X в качестве гостя QEMU / KVM» . Проверено 20 августа 2014 .
- ^ "статус" . Gnu.org . Проверено 12 февраля 2014 .
- ^ «Статус гостевой поддержки - KVM» . Linux-kvm.org . Проверено 12 февраля 2014 .
- ^ "Страница руководства OpenBSD virtio (4)" . Проверено 4 февраля 2018 .
- ^ "Бинарные пакеты virtio для FreeBSD" . Проверено 29 октября 2012 .
- ^ "Справочная страница virtio (4) NetBSD" . Проверено 15 июля 2013 .
- ^ "plan9front" . Проверено 11 февраля 2013 .
- ^ "API для виртуального ввода-вывода: virtio" . LWN.net . 2007-07-11 . Проверено 16 апреля 2014 .
- ^ "Цель SCSI для вики KVM" . linux-iscsi.org. 2012-08-07 . Проверено 12 августа 2012 .
- ^ Интервью: Avi Kivity архивации 2007-04-26 в Wayback Machine на KernelTrap
- ^ «Red Hat продвигает лидерство в области виртуализации с приобретением Qumranet, Inc.» . Красная шляпа . 4 сентября 2008 . Дата обращения 16 июня 2015 .
- ^ https://www.itworldcanada.com/article/kvm-15-equipped-with-live-migration/7901
- ↑ Либби Кларк (7 апреля 2015 г.). «Истории успеха Git и советы от специалиста по обслуживанию KVM Паоло Бонзини» . Linux.com . Архивировано из оригинального 15 марта 2016 года . Дата обращения 17 июня 2015 .
- ^ Khoa Хюинь; Стефан Хайноци (2010). «Обсуждение производительности стека хранения KVM / QEMU» (PDF) . IBM . Конференция сантехников Linux . Проверено 3 января 2015 года . [ постоянная мертвая ссылка ]
- ^ "SeaBIOS" . seabios.org. 2013-12-21 . Проверено 16 июня 2014 .
- ^ https://access.redhat.com/articles/1339413
- ^ https://www.linux-kvm.org/page/FAQ#Is_dynamic_memory_management_for_gests_supported.3F
- ^ https://lwn.net/Articles/223754/
- ^ https://www.linux-kvm.org/page/Migration
- ^ https://www.berrange.com/posts/2016/05/12/analysis-of-techniques-for-ensuring-migration-completion-with-kvm/
- ^ a b c d wiki.qemu.org - Пользовательская документация по эмулятору QEMU , см. 2010-05-06
- ^ «Представляем Virgil - виртуальный 3D-графический процессор для qemu» . 2013-07-18. Архивировано из оригинала на 2013-07-25.
- ^ Информация о лицензировании из 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