KVM (Kernel-based Virtual Machine) — различия между версиями

Материал из Национальной библиотеки им. Н. Э. Баумана
Строка 11: Строка 11:
 
Программное обеспечение KVM состоит из загружаемого модуля ядра (называемого <tt>kvm.ko</tt>), предоставляющего базовый сервис виртуализации, процессорно-специфического загружаемого модуля <tt>kvm-amd.ko</tt> либо <tt>kvm-intel.ko</tt>, и компонентов пользовательского режима (модифицированного QEMU). Все компоненты программного обеспечения KVM открыты. Компонент ядра, необходимый для работы KVM, включён в основную ветку ядра Linux начиная с версии 2.6.20 (февраль 2007 года)<ref name='LinuxNotes'>http://kerneltrap.org/node/7670</ref>. KVM был также портирован на FreeBSD как модуль ядра<ref name='KVMBSD'>http://www.freebsd.org/news/status/report-2007-07-2007-10.html#Porting-Linux-KVM-to-FreeBSD</ref>. Ведётся работа по включению модификаций, необходимых для работы с KVM, в основную ветку QEMU.
 
Программное обеспечение KVM состоит из загружаемого модуля ядра (называемого <tt>kvm.ko</tt>), предоставляющего базовый сервис виртуализации, процессорно-специфического загружаемого модуля <tt>kvm-amd.ko</tt> либо <tt>kvm-intel.ko</tt>, и компонентов пользовательского режима (модифицированного QEMU). Все компоненты программного обеспечения KVM открыты. Компонент ядра, необходимый для работы KVM, включён в основную ветку ядра Linux начиная с версии 2.6.20 (февраль 2007 года)<ref name='LinuxNotes'>http://kerneltrap.org/node/7670</ref>. KVM был также портирован на FreeBSD как модуль ядра<ref name='KVMBSD'>http://www.freebsd.org/news/status/report-2007-07-2007-10.html#Porting-Linux-KVM-to-FreeBSD</ref>. Ведётся работа по включению модификаций, необходимых для работы с KVM, в основную ветку QEMU.
  
Сам по себе KVM не выполняет эмуляции. Вместо этого программа, работающая в пространстве пользователя, использует интерфейс /dev/kvm для настройки адресного пространства гостя виртуальной машины, через него же эмулирует устройства ввода-вывода и видеоадаптер.
+
C KVM работает большое количество гостевых ОС, включаю множество видов и версий Linux, BSD, Solaris, Windows, Haiku, ReactOS, Plan 9, AROS Research Operating System<ref>http://www.linux-kvm.org/page/Guest_Support_Status</ref> а также OS X.<ref>http://www.contrib.andrew.cmu.edu/~somlo/OSXKVM/</ref> В дополнение, Android 2.2, Minix 3.1.2a, Solaris 10 U3 and Darwin 8.0.1GNU/Hurd<ref>http://www.gnu.org/software/hurd/hurd/status.html</ref> (Debian K16), Minix 3.1.2a, Solaris 10 U3 and Darwin 8.0.1, вместе с некоторыми версиями выше укзаных ОС, работают с некоторыми ограничениями.<ref>http://www.linux-kvm.org/page/Guest_Support_Status</ref>
 +
 
 +
Паравиртуализациия некоторых устройств доступна на Linux, OpenBSD,<ref>http://www.openbsd.org/cgi-bin/man.cgi?query=virtio&manpath=OpenBSD%20Current&sektion=4&format=html</ref>  FreeBSD,<ref>http://people.freebsd.org/~kuriyama/virtio/</ref> NetBSD,<ref>http://netbsd.gw.com/cgi-bin/man-cgi?virtio++NetBSD-current</ref> Plan 9<ref>url=http://code.google.com/p/plan9front/wiki/qemu</ref> и Windows гостевых ОС использующих ''VirtIO''<ref>url=http://lwn.net/Articles/239238/</ref> API.  Это поддерживает паравиртуальные Ethernet карты, I/O контроллер диска,<ref>http://linux-iscsi.org/wiki/vHost</ref> устройства для модификации потребляемой гостем памяти, а также графический интерфейс VGA используя драйверы SPICE или VMware.
 +
 
 +
== Окружение==
 +
[[File:Kernel-based Virtual Machine.png|thumb|right|upright=1.8|Высокоуровневый обзор KVM/QEMU виртуального окружения<ref>http://www-01.ibm.com/support/knowledgecenter/api/content/nl/en-us/linuxonibm/liaav/LPCKVMSSPV2.1.pdf</ref>]]
 +
Сам по себе KVM не выполняет эмуляции. Вместо этого программа, работающая в пространстве пользователя, использует интерфейс <tt>/dev/kvm</tt> для настройки адресного пространства гостя виртуальной машины, через него же эмулирует устройства ввода-вывода и видеоадаптер.
  
 
KVM позволяет виртуальным машинам использовать немодифицированные образы дисков QEMU, VMware и других, содержащие операционные системы. Каждая виртуальная машина имеет своё собственное виртуальное аппаратное обеспечение: сетевые карты, диск, видеокарту и другие устройства.
 
KVM позволяет виртуальным машинам использовать немодифицированные образы дисков QEMU, VMware и других, содержащие операционные системы. Каждая виртуальная машина имеет своё собственное виртуальное аппаратное обеспечение: сетевые карты, диск, видеокарту и другие устройства.
  
 +
==История==
 
Программное обеспечение KVM было создано, разрабатывается и поддерживается фирмой Qumranet, которая была куплена Red Hat за $107 млн 4 сентября 2008 года. После сделки KVM (наряду с системой управления виртуализацией oVirt) вошла в состав платформы виртуализации RHEV.
 
Программное обеспечение KVM было создано, разрабатывается и поддерживается фирмой Qumranet, которая была куплена Red Hat за $107 млн 4 сентября 2008 года. После сделки KVM (наряду с системой управления виртуализацией oVirt) вошла в состав платформы виртуализации RHEV.
 +
KVM поддерживается Paolo Bonzini.<ref>http://www.linux.com/news/featured-blogs/200-libby-clark/821899-git-success-stories-and-tips-from-kvm-maintainer-paolo-bonzini</ref>
  
==Лицензия==
+
==Лицензии==
 
* KVM модуль ядра: GPL v2.
 
* KVM модуль ядра: GPL v2.
 
* KVM модуль пользовательского окружения: LGPL v2.
 
* KVM модуль пользовательского окружения: LGPL v2.
Строка 24: Строка 32:
 
* Файлы BIOS (<tt>bios.bin</tt>, <tt>vgabios.bin</tt> и <tt>vgabios-cirrus.bin</tt>): SeaBIOS (LGPL v2 или более поздняя).
 
* Файлы BIOS (<tt>bios.bin</tt>, <tt>vgabios.bin</tt> и <tt>vgabios-cirrus.bin</tt>): SeaBIOS (LGPL v2 или более поздняя).
  
 +
== Графические инструменты ==
 +
[[File:Libvirt support.png|thumb|300px|libvirt supports KVM]]
 +
 +
* Kimchi веб инструмент менеджмента для KVM
 +
* Virtual Machine Manager поддерживает создание, редакцию, старт и остановку KVM-машин, также как холодную миграцию ВМ между хостами
 +
* Proxmox Virtual Environment свободный пакет менеджмента виртуализации, включая KVM и OpenVZ. Имеет установщик на голую машину, удаленный веб-интерфейс для менеджмента, и опционально коммерческую поддержку.
 +
* OpenQRM платформа менеджмента для управления гетерогенными дата центрами.
 +
* GNOME Boxes интерфейс Gnome для управления libvirt гостями на Linux.
 +
* oVirt свободный иснструмент менеджмента виртуализации для KVM на основе libvirt
 +
 +
== Emulated hardware ==
 +
{| class="wikitable"
 +
|-
 +
! Класс!! Устройство
 +
|-
 +
| Видеокарта    || Cirrus CLGD 5446 PCI VGA карта, VGA card с расширениями Bochs VESA,<ref name=qemu-doc>[http://wiki.qemu.org/download/qemu-doc.html wiki.qemu.org – QEMU Emulator User Documentation]</ref> или Virgil в качестве 3D GPU<ref>http://airlied.livejournal.com/77553.html</ref>
 +
|-
 +
| PCI || Intel 440FX host PCI мост и PIIX3 PCI как ISA bridge<ref name=qemu-doc/>
 +
|-
 +
| Устройства ввода  || PS/2 Мышь и Клавиатура<ref name=qemu-doc/>
 +
|-
 +
| Звуковая карта    || Sound Blaster 16, ENSONIQ AudioPCI ES1370, Gravis Ultrasound GF1], CS4231A compatible<ref name=qemu-doc/>
 +
|-
 +
| Сетевая карта  || AMD Am79C970A (Am7990), E1000 (Intel 82540EM, 82573L, 82544GC), NE2000 and Realtek RTL8139
 +
|-
 +
| Таймер              || Intel 6300ESB or IB700
 +
|-
 +
|  Оперативная память    || между 50&nbsp;MB и 32&nbsp;TB
 +
|-
 +
| CPU || 1 – 160&nbsp;CPUs
 +
|}
 +
 +
== Реализации ==
 +
* Debian 5.0 и выше
 +
* Gentoo Linux
 +
* illumos-based дистрибутивы
 +
* OpenIndiana
 +
* Red Hat Enterprise Linux (RHEL) 5.4 и выше
 +
* SmartOS
 +
* SUSE Linux Enterprise Server (SLES) 11 SP1 и выше
 +
* Ubuntu 10.04 LTS и выше
 +
* Univention Corporate Server
  
 
==Ссылки==
 
==Ссылки==
 
{{примечания}}
 
{{примечания}}

Версия 14:48, 24 декабря 2015

KVM (Kernel-based Virtual Machine)
Веб-сайт {{#property:P856}}

KVM (Kernel-based Virtual Machine) — программное решение, обеспечивающее виртуализацию в среде Linux на платформе x86, которая поддерживает аппаратную виртуализацию на базе Intel VT (Virtualization Technology) либо AMD SVM (Secure Virtual Machine).

Программное обеспечение KVM состоит из загружаемого модуля ядра (называемого kvm.ko), предоставляющего базовый сервис виртуализации, процессорно-специфического загружаемого модуля kvm-amd.ko либо kvm-intel.ko, и компонентов пользовательского режима (модифицированного QEMU). Все компоненты программного обеспечения KVM открыты. Компонент ядра, необходимый для работы KVM, включён в основную ветку ядра Linux начиная с версии 2.6.20 (февраль 2007 года)[1]. KVM был также портирован на FreeBSD как модуль ядра[2]. Ведётся работа по включению модификаций, необходимых для работы с KVM, в основную ветку QEMU.

C KVM работает большое количество гостевых ОС, включаю множество видов и версий Linux, BSD, Solaris, Windows, Haiku, ReactOS, Plan 9, AROS Research Operating System[3] а также OS X.[4] В дополнение, Android 2.2, Minix 3.1.2a, Solaris 10 U3 and Darwin 8.0.1GNU/Hurd[5] (Debian K16), Minix 3.1.2a, Solaris 10 U3 and Darwin 8.0.1, вместе с некоторыми версиями выше укзаных ОС, работают с некоторыми ограничениями.[6]

Паравиртуализациия некоторых устройств доступна на Linux, OpenBSD,[7] FreeBSD,[8] NetBSD,[9] Plan 9[10] и Windows гостевых ОС использующих VirtIO[11] API. Это поддерживает паравиртуальные Ethernet карты, I/O контроллер диска,[12] устройства для модификации потребляемой гостем памяти, а также графический интерфейс VGA используя драйверы SPICE или VMware.

Окружение

Высокоуровневый обзор KVM/QEMU виртуального окружения[13]

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

KVM позволяет виртуальным машинам использовать немодифицированные образы дисков QEMU, VMware и других, содержащие операционные системы. Каждая виртуальная машина имеет своё собственное виртуальное аппаратное обеспечение: сетевые карты, диск, видеокарту и другие устройства.

История

Программное обеспечение KVM было создано, разрабатывается и поддерживается фирмой Qumranet, которая была куплена Red Hat за $107 млн 4 сентября 2008 года. После сделки KVM (наряду с системой управления виртуализацией oVirt) вошла в состав платформы виртуализации RHEV. KVM поддерживается Paolo Bonzini.[14]

Лицензии

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

Графические инструменты

libvirt supports KVM
  • Kimchi веб инструмент менеджмента для KVM
  • Virtual Machine Manager поддерживает создание, редакцию, старт и остановку KVM-машин, также как холодную миграцию ВМ между хостами
  • Proxmox Virtual Environment свободный пакет менеджмента виртуализации, включая KVM и OpenVZ. Имеет установщик на голую машину, удаленный веб-интерфейс для менеджмента, и опционально коммерческую поддержку.
  • OpenQRM платформа менеджмента для управления гетерогенными дата центрами.
  • GNOME Boxes интерфейс Gnome для управления libvirt гостями на Linux.
  • oVirt свободный иснструмент менеджмента виртуализации для KVM на основе libvirt

Emulated hardware

Класс Устройство
Видеокарта Cirrus CLGD 5446 PCI VGA карта, VGA card с расширениями Bochs VESA,[15] или Virgil в качестве 3D GPU[16]
PCI Intel 440FX host PCI мост и PIIX3 PCI как ISA bridge[15]
Устройства ввода PS/2 Мышь и Клавиатура[15]
Звуковая карта Sound Blaster 16, ENSONIQ AudioPCI ES1370, Gravis Ultrasound GF1], CS4231A compatible[15]
Сетевая карта AMD Am79C970A (Am7990), E1000 (Intel 82540EM, 82573L, 82544GC), NE2000 and Realtek RTL8139
Таймер Intel 6300ESB or IB700
Оперативная память между 50 MB и 32 TB
CPU 1 – 160 CPUs

Реализации

  • Debian 5.0 и выше
  • Gentoo Linux
  • illumos-based дистрибутивы
  • OpenIndiana
  • Red Hat Enterprise Linux (RHEL) 5.4 и выше
  • SmartOS
  • SUSE Linux Enterprise Server (SLES) 11 SP1 и выше
  • Ubuntu 10.04 LTS и выше
  • Univention Corporate Server

Ссылки