KVM


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 года). KVM был также портирован на FreeBSD как модуль ядра. Ведётся работа по включению модификаций, необходимых для работы с KVM, в основную ветку QEMU.

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

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

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

Лицензия

  • 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 или более поздняя).

Системные требования

KVM требует наличия x86-совместимого процессора с поддержкой одной из технологий аппаратной виртуализации — Intel VT либо AMD SVM. На данный момент[уточнить] KVM в состоянии запускать в качестве гостевых операционных систем 32-битные и 64-битные системы на базе ядра Linux, Windows и другие системы[уточнить].

Графические утилиты управления

Kernel-based Virtual Machine и libvirt.
  • Virtual Machine Manager: создание, редактирование, запуск и остановка виртуальных машин, основанных на KVM
  • ConVirt: создание, редактирование, запуск и остановка виртуальных машин, основанных на KVM, как горячую, так и холодную миграцию с других VM хостов.
  • Proxmox Virtual Environment. Свободная виртуализация, основанная на KVM и OpenVZ — установка на урезанный дистрибутив Linux, управление через GUI и возможность получения коммерческой поддержки
  • AQEMU: создание, редактирование, запуск, остановка, сохранение снапшотов виртуальных машин, основанных на KVM и QEMU. Программа создана русскоязычным разработчиком с использованием Qt4, позволяет задать все параметры для KVM/QEMU. Хостится на SourceForge.
  • GKVM: для рабочей среды GNOME. Создание, редактирование, запуск, остановка, сохранение снапшотов виртуальных машин KVM. Хостится на SourceForge.
  • QtEmu: графическая оболочка для QEMU и KVM, написана на Qt4. Интерфейс на десяти языках. Хостится на SourceForge.

Текущие разработки

KVM использует QEMU в качестве фронтенда и для эмуляции некоторых устройств. Ведётся работа по оптимизации использования возможностей аппаратной виртуализации, заложенных в современных процессорах Intel и AMD. Производительность KVM сравнивалась с производительностью Xen, работающего в режиме аппаратной виртуализации (не паравиртуализации), и при определённых видах нагрузок KVM показывал лучшую производительность (но не в большинстве случаев).