Поиск по сайту:

Установите 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

Статьи по данной тематике