В этом руководстве мы расскажем, как установить KVM и как его использовать, чтобы создать виртуальные машины с такими дистрибутивами как RHEL, CentOS 7 и Fedora 21, основанными на RedHat.
Что такое KVM?
KVM (Kernel-based Virtual Machine) – это решение для полной виртуализации для Linux на оборудовании Intel 64 и AMD 64, которое включено в основное ядро Linux, начиная с версии 2.6.20. Аппаратные средства работают быстро и стабильно даже при больших нагрузках.
Функции KVM
KVM обладает большим количеством преимуществ и полезных функций, которые окажутся в Вашем распоряжении, если для установки виртуальной платформы Вы выберете данное программное обеспечение.
Гипервизор KVM поддерживает следующие функции:
- Over-committing – с помощью этой функции можно обеспечить направление большего количества средств центрального процессора и памяти, чем доступно в системе.
- Thin provisioning – функция позволяет выделить гибкое хранилище и оптимизирует доступное пространство для каждой гостевой виртуальной машины.
- Disk I/O throttling – функция предоставляет возможность установить ограничение на запросы ввода-вывода диска, отправляемые с виртуальных машин на хост.
- Automatic NUMA balancing – функция улучшает работу приложений на аппаратных решениях NUMA.
- Virtual CPU hot add capability – данная функция предоставляет возможность увеличить процессорную память настолько, насколько это нужно работающей ВМ без простоев.
Подготовительная работа
Убедитесь, что Ваша система имеет расширение аппаратной виртуализации. Для хостов на базе Intel ЦП должен поддерживать расширение виртуализации [vmx]
. Чтобы проверить наличие расширения, используйте следующую команду:
# grep -e 'vmx' /proc/cpuinfo
Для хостов на базе AMD ЦП поддерживает расширение виртуализации [svm]
:
# grep -e 'svm' /proc/cpuinfo
Если вывод отсутствует, убедитесь, что в BIOS включена опция расширения виртуализации. Убедитесь, что модули KVM загружены в ядро (это должно быть загружено по умолчанию).
# lsmod | grep kvm
Вывод должен содержать kvm_intel
для хостов на базе Intel и kvm_amd
– на базе AMD.
Вам также потребуются доступ уровня root или пользователь с sudo привилегиями, настроенными на Вашу систему. Также убедитесь, что Ваша система обновлена.
# yum update
Убедитесь, что Selinux в режиме Permissive.
# setenforce 0
Шаг 1: Установка KVM
Сначала мы установим пакеты qemu-kvm
и qemu-img
. Эти пакеты предоставляют KVM и image manager доступ на уровне пользователя.
# yum install qemu-kvm qemu-img
Теперь у Вас есть минимум требований, чтобы установить виртуальную платформу на вашем хосте. Но есть ещё полезные приложения, которые помогают в администрировании платформой:
- virt-manager (менеджер управления виртуальными машинами) предоставляет GUI-конструктор для управления виртуальными машинами.
- libvirt-client предоставляет инструмент CL для управления вашей виртуальной средой. Такая утилита называется virsh.
- С помощью команды
virt-install
, которую предоставляет программа virt-install, Вы можете создать виртуальную машину, используя CLI (интерфейс командной строки). - С помощью библиотеки libvirt сервер и хост могут взаимодействовать с гипервизорами и хост-системами.
Давайте установим эти инструменты с помощью следующей команды:
# yum install virt-manager libvirt libvirt-python libvirt-client
Для пользователей RHEL/CentOS7 также есть дополнительные группы пакетов, которые можно установить, например: Virtualization Client, Virtualization Platform и Virtualization Tools
#yum groupinstall virtualization-client virtualization-platform virtualization-tools
Демоном виртуализации, который управляет платформой, является libvirtd. Давайте перезапустим его.
#systemctl restart libvirtd
После того, как Вы перезапустили демона, проверьте его статус с помощью следующей команды:
#systemctl status libvirtd
Пример вывода
libvirtd.service - Virtualization daemon Loaded: loaded (/usr/lib/systemd/system/libvirtd.service; enabled) Active: active (running) since Mon 2014-12-29 15:48:46 EET; 14s ago Main PID: 25701 (libvirtd)
Теперь давайте перейдем к следующему разделу и создадим виртуальную машину.
Шаг 2: Создание ВМ с помощью KVM
Так как мы установили несколько полезных приложений для управления виртуальными платформами и создания виртуальных машин, одно из них –virt-manager
– нам сейчас понадобится.
Несмотря на то, что virt-manager является инструментом, основанным на графическом интерфейсе пользователя, из терминала мы можем запускать его так же, как и из GUI.
#virt-manager
GNOME
GNOME Classic
После того, как Вы запустите приложение, появится такое окно.
По умолчанию менеджер напрямую подключен к localhost
. Но Вы можете использовать тот же инструмент, чтобы выбрать другой хост удаленно. Из вкладки File выберите Add Connection и появится следующее окно.
Поставьте галочку на Connect to remote host и впишите название или IP (Hostname) удаленного сервера. Если Вам нужно устанавливать соединение с удаленным сервером каждый раз, когда запускается менеджер, то поставьте галочку на Auto Connect.
Давайте вернемся к localhost. Прежде чем создавать виртуальную машину, Вы должны решить, где будут храниться файлы. Другими словами, Вам необходимо создать том (виртуальный диск) для вашей виртуальной машины. Правой кнопкой мыши нажмите на localhost и выберите Details, а затем перейдите на вкладку Storage.
Затем нажмите кнопку New Volume (Новый том) и введите название вашего нового виртуального диска (тома). В графу Max Capacity (Максимальная ёмкость) введите требующийся вам объем диска.
Выбранный объем является реальным объемом Вашего диска, который сразу будет предоставлен с Вашего физического диска после завершения установки.
Примечание: технология в области администрирования хранилищ называется thin provision (Тонкое обеспечение). Она используется для выделения только используемого объема хранилища, а не всего доступного объема. Например, Вы создали виртуальный диск размером 60 Гб, но используемого объема у Вас только 20 Гб. С помощью данной технологии жёсткий диск предоставит Вам только 20 Гб, а не 60. Другими словами, выделенный физический объем будет динамически распределяться в зависимости от фактического используемого объема.
Знак нового диска появится в списке.
Найти Ваш новый виртуальный диск Вы сможете по умолчанию с помощью команды /var/lib/libvirt/images
.
# ls -l /var/lib/libvirt/images -rw-------. 1 root root 10737418240 Jan 3 16:47 vm1Storage.img
Наконец, мы готовы к созданию виртуальной машины. Нажмите на кнопку VM на главном экране, и появится окно.
Выберите метод установки для создания ВМ. Мы пока выберем Local install media, а позже обсудим оставшиеся методы.
Теперь мы должны выбрать, какой локальный носитель использовать. У нас есть два варианта:
- Физический CDROM/DVD
- ISO-образ
Давайте выберем ISO-образ и введем его путь.
Важно: к сожалению, для тех, кто использует RHEL или CentOS7, здесь есть баг. Он не даёт установить машину с использованием физического носителя CDROM/DVD. Опция просто будет серая:
И если Вы наведете курсор, то появится сообщение об ошибке: physical cdrom passthrough not supported with this hypervisor (Физический CDROM не поддерживает данный гипервайзер).
Больше информации можете узнать здесь.
Снова вопрос про хранилище. Используем виртуальный диск, который мы недавно создали. Он скоро появится.
На последнем шаге Вам необходимо дать название виртуальной машине.
Если Вы хотите изменить что-то в конфигурации или сделать небольшую адаптацию, поставьте галочку на Customize configuration before install. Затем нажмите на finish и подождите несколько секунд, пока не появится контрольная консоль для вашей гостевой ОС.
Готово!
Заключение
Вы узнали, что такое KVM, как управлять виртуальной платформой с помощью инструментов GUI, как создать виртуальную машину с помощью этого приложения и много других классных штук.