KVM
KVM (Kernel-based Virtual Machine) — программное решение, обеспечивающее виртуализацию в среде Linux на платформе x86, которая поддерживает аппаратную виртуализацию на базе Intel VT (Virtualization Technology) либо AMD SVM (Secure Virtual Machine).
Kernel-based Virtual Machine | |
---|---|
Тип | виртуализация |
Разработчик | Open Virtualization Alliance (OVA), изначально (Qumranet, затем Red Hat) |
Написана на | Си |
Операционная система | Linux |
Последняя версия | 1.2.0 (5 сентября 2012) |
Лицензия | GNU General Public License и GNU Lesser General Public License |
Сайт | linux-kvm.org |
Медиафайлы на Викискладе |
Программное обеспечение KVM состоит из загружаемого модуля ядра (называемого kvm.ko), предоставляющего базовый сервис виртуализации, процессорно-специфического загружаемого модуля kvm-amd.ko либо kvm-intel.ko, и компонентов пользовательского режима (модифицированного QEMU). Все компоненты программного обеспечения KVM открыты. Компонент ядра, необходимый для работы KVM, включён в основную ветку ядра Linux начиная с версии 2.6.20 (февраль 2007 года)[1]. KVM был также портирован на FreeBSD как модуль ядра[2]. Ведётся работа по включению модификаций, необходимых для работы с KVM, в основную ветку QEMU.
Сам по себе KVM не выполняет эмуляции. Вместо этого программа, работающая в пространстве пользователя, использует интерфейс /dev/kvm для настройки адресного пространства гостя виртуальной машины, через него же эмулирует устройства ввода-вывода и видеоадаптер.
KVM позволяет виртуальным машинам использовать немодифицированные образы дисков QEMU, VMware и других, содержащие операционные системы. Каждая виртуальная машина имеет своё собственное виртуальное аппаратное обеспечение: сетевые карты, диск, видеокарту и другие устройства.
Программное обеспечение KVM было создано, разрабатывается и поддерживается фирмой Qumranet, которая была куплена Red Hat за 107 млн $ 4 сентября 2008 года.[3]. После сделки 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 и другие системы[уточнить][4].
Графические утилиты управления
- 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 в качестве фронтенда и для эмуляции некоторых устройств[5]. Ведётся работа по оптимизации использования возможностей аппаратной виртуализации, заложенных в современных процессорах Intel и AMD. Производительность KVM сравнивалась с производительностью Xen, работающего в режиме аппаратной виртуализации (не паравиртуализации), и при определённых видах нагрузок KVM показывал лучшую производительность (но не в большинстве случаев)[6].
См. также
- Lguest — минималистичный гипервизор для Linux.
- Сравнение виртуальных машин
Примечания
- Linux: 2.6.20 Kernel Released (недоступная ссылка). KernelTrap. Архивировано 21 февраля 2012 года.
- FreeBSD Quarterly Status Report: Porting Linux KVM to FreeBSD (недоступная ссылка). Архивировано 21 февраля 2012 года.
- blkdog. Red Hat приобрела компанию Qumranet, разрабатывающую систему виртуализации KVM (недоступная ссылка). Maxim Chirkov (4 сентября 2008). Дата обращения: 5 сентября 2008. Архивировано 22 декабря 2011 года.
- Main Page — KVM Архивировано 10 июля 2007 года.
- http://www.cs.hs-rm.de/~linn/fachsem0910/hirt/KVM.pdf "To provide hardware like hard disks, cd drives or network cards to the VMs, KVM uses a highly modified QEMU .. KVM uses QEMU as such a backend which handles I/O operations directly"
- Phoronix Linux KVM Virtualization Performance, 8 January 2007
Ссылки
- Linux-kvm.org
- Официальный сайт Qumranet — разработчиков KVM
- М. Тим Джонс. Узнайте о виртуальной машине ядра Linux (KVM) (недоступная ссылка). developerWorks. IBM (20 июня 2007). Дата обращения: 5 сентября 2008. Архивировано 21 февраля 2012 года.
- Architecture of the Kernel-based Virtual Machine (KVM), 2010