Программное обеспечение KVM получило распространение в создании серверов VPS/VDS, так как позволяет практически мгновенно развернуть новую виртуальную машину. В системе Linux программа Kernel-based Virtual Machine становится гипервизором типа 2. Обеспечивает оптимизацию управления и улучшает производительность вычислительных сред.
Что такое виртуальная среда?
Программа-гипервизор KVM позволяет на оборудовании одной компьютерной машины запускать несколько операционных систем, независимых от физической структуры. Программа создает автономные среды виртуальных машин (VM) и координирует их обращение к процессору, памяти, жесткому диску, сети и другим ресурсам через операционную систему хоста.
В строго изолированном программном контейнере можно установить необходимую операционную систему и(или) приложения, независимые от остальных гостевых сред.
Функции ВМ:
- Создание и установка «облачных» приложений.
- Тестирование ОС и приложений.
- Развертывание среды для ускоренного и упрощенного выполнения программ при разработке.
- Настройка бэкапов операционной системы.
- Открытие файлов, пораженных вредоносным ПО.
- Установка устаревшей версии ОС для запуска соответствующего приложения.
- Проверка работоспособности приложения в рамках операционной системы, которая не предусмотрена разработчиком ПО.
- Развертывание виртуальных серверов.
При необходимости гостевые системы можно масштабировать, чтобы гибко реагировать на пиковые нагрузки.
Что такое KVM?
КВМ — это простой в использовании, легкий и функциональный гипервизор с открытым исходным кодом. Компонент базируется на ядре операционной системы Linux, и входит в основную ее версию с 2007 года (v. 2.6.20).
Хостинг-компании активно используют эту платформу, так как знают об особенности технологии KVM – что это инструмент для быстрого развертывания множества виртуальных машин. На каждой эмулируется набор оборудования: сетевая карта, накопитель, видеокарта, и т. д.
Решение виртуализации как неотъемлемую часть Linux нельзя использовать на компьютерах с Windows. Однако Windows поддерживается как гостевая система вместе с большинством Unix-подобных операционных систем:
- BSD (Berkeley Software Distribution),
- Solaris,
- Haiku,
- ReactOS,
- Plan 9,
- AROS Research OS,
- QEMU для запуска Mac OS X.
Аппаратные требования
Если говорить о том, что это такое KVM с точки зрения аппаратного обеспечения, то виртуальной гостевой системе нужны такие же ресурсы, как если бы она была установлена без гипервизора на физическом компьютере. Чем больше VM планируется запустить в хост-системе, тем больше «железа» – ЦП, диска, памяти и сети – придется добавить к хост-серверу виртуальных машин.
Составляющие виртуальной машины на основе ядра
Виртуальная машина Kernel-based часто используется для работы профессиональных серверных систем. Linux KVM приобретает еще большее значение из-за возможности интеграции в популярное облачное программное решение OpenStack.
KVM виртуализация – это несколько компонентов:
- Расширение ядра kernel.ko для взаимодействия между реальным и виртуальным оборудованием, процессорные модули.
- Libvirt: интерфейс прикладного программирования (API) для контроля и управления виртуальными машинами. Работает через команду «virsh» и графический интерфейс Virtual Machine Manager.
- QEMU – эмулирует физический компьютер, а Linux KVM повышает его скорость за счет паравиртуализации. В большинстве дистрибутивов предусмотрены оба этих компонента.
- KVMTool – более компактная альтернатива QEMU, но поддерживает только гостевые системы с такой же архитектурой.
- Драйверы VirtIO для гипервизора, обеспечивающие паравиртуализацию.
Для развертывания виртуальной машины нужно ядро Linux на процессоре Intel или AMD с аппаратными расширениями виртуализации. Программа состоит из модуля ядра (kvm.ko), создающего основную инфраструктуру виртуализации, и модуля для соответствующего процессора: kvm-intel.ko или kvm-amd.ko соответственно.
На 64-разрядных процессорах можно запускать 32-битные и 64-битные гостевые ВМ. Чтобы проверить, поддерживает ли процессор виртуализацию, используют одну из следующих команд:
- $ LC_ALL=C lscpu | grep Virtualization,
- $ grep -E --color=auto 'vmx|svm|0xc0f' /proc/cpuinfo
Если после выполнения команды ничего не произошло, значит, использовать KVM не получится.
Последний вариант – проверить поддержку виртуализации в BIOS. Если компьютер произведен не раньше 2010 года, то в нем есть эта функция, но она отключена в биосе.
Как развернуть VM
Установка виртуальной машины начинается с запуска Yast2-vm, и через меню «Виртуализация» настраивается гипервизор с соответствующими инструментами KVM.
В процессе установки дополнительно разрешают YaST автоматически создавать сетевой мост – это стандартный способ подключения гостевых машин к сети.
Когда необходимые пакеты установлены и выполнены новые настройки сети, загружается модуль ядра KVM, соответствующий типу процессора:
- root # modprobe kvm-intel.
Проверяем, загружен ли модуль в память:
- lsmod | grep kvm
- kvm_intel 64835 6
- kvm 411041 1 kvm_intel
Теперь узел готов обслуживать гостевые ВМ.
Преимущества и недостатки KVM
Главный плюс платформы в том, что она распространяется бесплатно, с открытым исходным кодом. И это только одно из множества преимуществ:
- Входит в большинство дистрибутивов Linux.
- Стабильность системы.
- Единственная виртуальная машина на основе ядра с высокой производительностью.
- Разработки авторитетных компаний.
- Автоматическое администрирование через libvirt.
Поэтому стабильный и безопасный KVM хостинг VDS создается на такой виртуализации.
Но совершенным это решение назвать нельзя. Например, оно работает только с ядром Linux, требует мощного физического оборудования и профессиональных навыков.
Централизация оборудования повышает риск массовой потери данных в случае сбоя системы. Но можно обезопаситься за счет интеллектуального резервного копирования.
KVM – это универсальное, гибкое и масштабируемое решение, позволяющее использовать большинство приложений и операционных систем. Удовлетворяет большинство требований бизнеса и разработчиков.