Установите KVM в Ubuntu 18.04 LTS
Мы уже рассмотрели настройку Oracle VirtualBox на Ubuntu 18.04 безголовый сервер. В этом руководстве мы обсудим, как настроить сервер автономной виртуализации с помощью KVM и как управлять гостевыми машинами с удаленного клиента. Как вы, возможно, уже знаете, KVM (Kvвиртуальная машинана основе ядра) — это полная виртуализация с открытым исходным кодом для Linux. Используя KVM, мы можем легко превратить любой сервер Linux в полноценную среду виртуализации за считанные минуты и развернуть различные типы виртуальных машин, такие как GNU/Linux, *BSD, Windows и т. д.
Настройка сервера безголовой виртуализации с использованием KVM в Ubuntu
Я тестировал это руководство на сервере Ubuntu 18.04 LTS, однако это руководство будет работать и на других дистрибутивах Linux, таких как Debian, CentOS, RHEL и Scientific Linux. Этот метод идеально подойдет тем, кто хочет настроить простую среду виртуализации на сервере Linux, не имеющем графической среды.
Для целей данного руководства я буду использовать две системы.
Сервер виртуализации KVM:
- Основная система — минимальный сервер Ubuntu 18.04 LTS (без графического интерфейса)
- IP-адрес хостовой ОС: 192.168.225.22/24
- Гостевая ОС (которую мы собираемся разместить на Ubuntu 18.04): сервер Ubuntu 16.04 LTS.
Клиент удаленного рабочего стола:
- ОС — Arch Linux
Установить КВМ
Сначала давайте проверим, поддерживает ли наша система аппаратную виртуализацию. Для этого выполните следующую команду из Терминала:
egrep -c '(vmx|svm)' /proc/cpuinfo
Если результат — ноль (0), система не поддерживает аппаратную виртуализацию или виртуализация отключена в BIOS. Зайдите в биос, проверьте опцию виртуализации и включите ее.
если результат равен 1 или больше, система будет поддерживать аппаратную виртуализацию. Однако вам все равно необходимо включить опцию виртуализации в BIOS перед выполнением вышеуказанных команд.
Альтернативно вы можете использовать следующую команду, чтобы проверить это. Чтобы использовать эту команду, вам необходимо сначала установить kvm, как описано ниже.
kvm-ok
Пример вывода:
INFO: /dev/kvm exists
KVM acceleration can be used
Если вместо этого вы получили следующую ошибку, вы все равно сможете запускать гостевые машины в KVM, но производительность будет очень низкой.
INFO: Your CPU does not support KVM extensions
INFO: For more detailed results, you should run this as root
HINT: sudo /usr/sbin/kvm-ok
Кроме того, есть и другие способы узнать, поддерживает ли ваш процессор виртуализацию или нет. Для получения более подробной информации обратитесь к следующему руководству.
- Как узнать, поддерживает ли процессор технологию виртуализации (VT)
Затем установите KVM и другие необходимые пакеты для настройки среды виртуализации в Linux.
В Ubuntu и других системах на базе DEB запустите:
sudo apt-get install qemu-kvm libvirt-bin virtinst bridge-utils cpu-checker
После установки KVM запустите службу libvertd (если она еще не запущена):
sudo systemctl enable libvirtd
sudo systemctl start libvirtd
Создание виртуальных машин
Все файлы виртуальной машины и другие связанные файлы будут храниться в папке /var/lib/libvirt/. Путь к ISO-образам по умолчанию — /var/lib/libvirt/boot/.
Для начала давайте посмотрим, есть ли виртуальные машины. Чтобы просмотреть список доступных виртуальных машин, запустите:
sudo virsh list --all
Пример вывода:
Id Name State
----------------------------------------------------
Как вы видите выше, сейчас нет доступной виртуальной машины.
Теперь давайте создадим один.
Например, давайте создадим виртуальную машину Ubuntu 16.04 с 512 МБ ОЗУ, 1 ядром ЦП, 8 ГБ жесткого диска.
sudo virt-install --name Ubuntu-16.04 --ram=512 --vcpus=1 --cpu host --hvm --disk path=/var/lib/libvirt/images/ubuntu-16.04-vm1,size=8 --cdrom /var/lib/libvirt/boot/ubuntu-16.04-server-amd64.iso --graphics vnc
Убедитесь, что у вас есть ISO-образ Ubuntu 16.04 по пути /var/lib/libvirt/boot/ или по любому другому пути, указанному вами в приведенной выше команде.
Пример вывода:
WARNING Graphics requested but DISPLAY is not set. Not running virt-viewer.
WARNING No console to launch for the guest, defaulting to --wait -1
Starting install...
Creating domain... | 0 B 00:00:01
Domain installation still in progress. Waiting for installation to complete.
Domain has shutdown. Continuing.
Domain creation completed.
Restarting guest.
Давайте разберем приведенную выше команду и посмотрим, что делает каждая опция.
- --name: этот параметр определяет имя виртуального имени. В нашем случае имя виртуальной машины — Ubuntu-16.04.
- --ram=512 : выделяет виртуальной машине 512 МБ ОЗУ.
- --vcpus=1 : указывает количество ядер ЦП в виртуальной машине.
- --cpu хост : оптимизирует свойства ЦП для виртуальной машины, предоставляя гостю конфигурацию ЦП хоста.
- --hvm : запросить полную виртуализацию оборудования.
- --disk path: место сохранения жесткого диска виртуальной машины и его размер. В нашем примере я выделил размер жесткого диска 8 ГБ.
- --cdrom : расположение ISO-образа установщика. Обратите внимание, что в этом месте у вас должен находиться актуальный ISO-образ.
- --graphics vnc: разрешает доступ VNC к виртуальной машине с удаленного клиента.
Доступ к виртуальным машинам с помощью клиента VNC
Теперь перейдите в систему удаленного рабочего стола. SSH к серверу Ubuntu (серверу виртуализации), как показано ниже.
ssh sk@192.168.225.22
Здесь sk — это имя пользователя моего сервера Ubuntu, а 192.168.225.22 — его IP-адрес.
Выполните следующую команду, чтобы узнать номер порта VNC. Нам это нужно для доступа к виртуальной машине из удаленной системы.
sudo virsh dumpxml Ubuntu-16.04 | grep vnc
Пример вывода:
<graphics type='vnc' port='5900' autoport='yes' listen='127.0.0.1'>
Запишите номер порта 5900. Установите любое клиентское приложение VNC. В этом руководстве я буду использовать TigerVnc. TigerVNC доступен в репозиториях Arch Linux по умолчанию. Чтобы установить его в системах на базе Arch, запустите:
sudo pacman -S tigervnc
Введите следующую команду переадресации портов SSH из удаленной клиентской системы, на которой установлено клиентское приложение VNC.
ssh sk@192.168.225.22 -L 5900:127.0.0.1:5900
Опять же, 192.168.225.22 — это IP-адрес моего сервера Ubuntu (сервера виртуализации).
Затем откройте клиент VNC из вашего Arch Linux (клиента).
Введите localhost:5900 в поле VNC-сервер и нажмите кнопку Подключиться.
Затем начните установку виртуальной машины Ubuntu так же, как и в физической системе.
Аналогичным образом вы можете настроить любое количество виртуальных машин в зависимости от характеристик оборудования сервера.
Альтернативно вы можете использовать утилиту virt-viewer для установки операционной системы на гостевые машины. virt-viewer доступен в репозиториях по умолчанию большинства дистрибутивов Linux. После установки virt-viewer выполните следующую команду, чтобы установить доступ VNC к виртуальной машине.
sudo virt-viewer --connect=qemu+ssh://192.168.225.22/system --name Ubuntu-16.04
Управление виртуальными машинами
Управлять виртуальными машинами из командной строки с помощью пользовательского интерфейса управления virsh очень интересно и увлекательно. Команды очень легко запомнить. Давайте посмотрим несколько примеров.
Чтобы просмотреть список запущенных виртуальных машин, запустите:
sudo virsh list
Или,
sudo virsh list --all
Пример вывода:
Id Name State
----------------------------------------------------
2 Ubuntu-16.04 running
Чтобы запустить виртуальную машину, запустите:
sudo virsh start Ubuntu-16.04
Альтернативно вы можете использовать идентификатор виртуальной машины для ее запуска.
Как вы видите в приведенном выше выводе, идентификатор виртуальной машины Ubuntu 16.04 равен 2. Итак, чтобы запустить ее, просто укажите ее идентификатор, как показано ниже.
sudo virsh start 2
Чтобы перезапустить виртуальную машину, запустите:
sudo virsh reboot Ubuntu-16.04
Пример вывода:
Domain Ubuntu-16.04 is being rebooted
Чтобы приостановить работающую виртуальную машину, выполните:
sudo virsh suspend Ubuntu-16.04
Пример вывода:
Domain Ubuntu-16.04 suspended
Чтобы возобновить приостановленную виртуальную машину, выполните:
sudo virsh resume Ubuntu-16.04
Пример вывода:
Domain Ubuntu-16.04 resumed
Чтобы выключить виртуальную машину, запустите:
sudo virsh shutdown Ubuntu-16.04
Пример вывода:
Domain Ubuntu-16.04 is being shutdown
Чтобы полностью удалить виртуальную машину, запустите:
sudo virsh undefine Ubuntu-16.04
sudo virsh destroy Ubuntu-16.04
Пример вывода:
Domain Ubuntu-16.04 destroyed
Для получения дополнительных опций я рекомендую вам заглянуть на справочные страницы.
man virsh
На этом пока все, ребята. Начните экспериментировать с новой средой виртуализации. Виртуализация KVM будет использоваться в целях исследований, разработок и тестирования, но не ограничиваясь ими. Если у вас достаточно оборудования, вы можете использовать его для больших производственных сред.
Связанное чтение:
- Как установить KVM на сервер Ubuntu 22.04 [Полное руководство]
- Установка и настройка KVM на безголовом сервере Ubuntu 20.04
Ресурс:
- Веб-сайт KVM