KVM (Kernel-based Virtual Machine), система полной виртуализации для Linux, являющаяся свободным программным обеспечением с открытым исходным кодом. В отличие от других систем виртуализации поддержка KVM является частью кода ядра операционной системы начиная с версии 2.6.20.
Несомненное достоинство — в качестве гостевых можно запускать Linux, *BSD, Windows, Solaris, Mac OS X и ряд других ОС, причем гостевые ОС не требуют никакой модификации. Гостевые системы ограничены фактически ресурсами сервера, каждая может иметь до 16 vCPU.
Благодаря использованию наборов инструкций процессора, выделенных для виртуализации: Intel-VT (Virtualization Technology) и AMD-V (AMD Virtualization или SVM — «Secure Virtual Machines») KVM получился легковесным, элегантным и не прожорливым до ресурсов. Отсюда и естественное ограничение — KVM работает главным образом на процессорах i386 и amd64, и только достаточно свежих, имеющих эти наборы инструкций, то-есть поддерживающих технологии VT.
Футкционально система состоит из загружаемого модуля ядра, kvm.ko, который обеспечивает базовую инфраструктуру виртуализации, процессорного модуля kvm—intel.ko или kvm—amd.ko, используемого в зависимости от типа процессора и и компонентов пользовательского режима (модифицированного QEMU). Qemu используется для запуска и управления виртуальной машиной, эмуляции устройств и отвечает за работу устройств ввода-вывода.
Каждая виртуальная машина имеет свое собственное виртуальное аппаратное обеспечение: сетевые карты, диск, видеокарту и прочее. KVM может подхватывать использовать немодифицированные образы дисков Qemu, VMware и других систем виртуализации, содержащие операционные системы.
KVM предоставляет возможность для «пробрасывания» реального оборудования в виртуальное окружение. Можно подключить виртуальному серверу практически любое устройство: usb-флеш (что важно для приложений, защищенных HASP-ключами и т.п.), PCI и PCI-E устройства (например — графические ускорители).
Система управления ресурсами виртуального сервера позволяет динамически изменять количество оперативной памяти, добавлять различные сетевые, дисковые устройства и даже процессоры.
В настоящее время система очень отработана, стабильна и широко применяется в промышленных системах — большинство хостеров предлагают VDS/VPS именно на виртуализации KVM.
Не так давно компании IBM, Red Hat, HP и Intel организовали Open Virtualisation Alliance для продвижения решений на основе KVM. В него уже вошли такие всемирно известные компании как Acronis, Dell, Fujitsu, CA Techlologies и многие другие. Уже сейчас IBM Cloud развернуто на KVM. Практически полностью закончена миграция с XEN сервисов Amazon.
Такая популярность KVM объясняется его простотой, очень высокой скоростью работы (быстродействие KVM по результатам тестов уже превысило быстродействие коммерческих технологий) и низкими накладными расходами на функционирование. У KVM рекордная производительность подсистем ввода/вывода. Актуальные версии имеют самые высокие показатели при одновременной высокой активности большого количества гостевых систем.
А если к этому добавить и высокую надежность, крайне активное развитие системы при бесплатности и отсутствии каких-либо лицензионных ограничений в использовании, то использование виртуализации KVM при создании инфрастуктуры предприятия вместо платных, проприетарных аналогов становится более предпочтительным.
Дополнительные материалы по работе с технологией KVM можно найти в нашей базе знаний.