Kernel Virtual Machine (KVM) — это гипервизор Type1/bare-metal с открытым исходным кодом, который позволяет пользователям размещать и запускать несколько изолированных виртуальных сред на своих компьютерах с Linux.
Как и большинство решений виртуализации, KVM абстрагирует аппаратные ресурсы, включая ЦП, память, хранилище, сеть и графику, и назначает их гостевым машинам, работающим в изолированной среде.
KVM предоставляет многочисленные функции, такие как управление ресурсами, планирование, масштабируемость, высокая производительность, низкая задержка, живая миграция, управление памятью и многое другое. Кроме того, вы можете использовать Ansible и другие инструменты автоматизации для автоматизации развертываний KVM.
1. Подтвердите аппаратную виртуализацию
Убедитесь, что в вашей системе включены расширения аппаратной виртуализации. Для хостов на базе Intel используйте следующую команду, чтобы подтвердить, доступно ли расширение виртуализации ЦП (vmx):
$ sudo grep -e 'vmx' /proc/cpuinfo
Для хостов на базе AMD проверьте, доступно ли расширение виртуализации ЦП (svm), выполнив следующую команду:
$ sudo grep -e 'svm' /proc/cpuinfo
Если виртуализация не включена, вы можете включить ее в настройках BIOS вашего компьютера.
2. Установите KVM на Rocky Linux 9 / AlmaLinux 9
Выполните следующую команду для установки пакетов KVM, которые находятся в репозитории Rocky Linux 9 по умолчанию:
$ sudo dnf install qemu-kvm libvirt virt-manager virt-install
Установите другие инструменты управления KVM, как показано:
$ sudo dnf install epel-release -y
$ sudo dnf -y install bridge-utils virt-top libguestfs-tools bridge-utils virt-viewer
Ниже приводится краткое описание вышеуказанных пакетов:
- virt-manager предоставляет графический пользовательский интерфейс для управления виртуальными машинами.
- libvirt-client предлагает утилиту CL для администрирования виртуальной среды.
- virt-install — это инструмент командной строки, используемый для создания виртуальных машин.
- libvirt предоставляет библиотеки на стороне хоста для взаимодействия с хост-системами и гипервизорами.
После завершения установки выполните следующую команду, чтобы проверить, загружен ли модуль KVM в ядро или нет.
$ sudo lsmod | grep kvm
3. Запустите и включите демон libvirtd
libvirtd — это компонент-демон, работающий на стороне сервера и управляющий задачами на виртуализированных гостях. Он используется для управления технологиями виртуализации, включая ESXi, KVM и Xen.
Чтобы запустить и включить демон libvirtd, выполните:
$ sudo systemctl start libvirtd $ sudo systemctl enable libvirtd
Чтобы проверить, запущен ли демон libvirtd, выполните следующую команду:
$ sudo systemctl status libvirtd
Вам также необходимо добавить системного пользователя в группу KVM для выполнения команд virt-install без sudo.
$ sudo usermod -aG libvirt $USER $ newgrp libvirt
4. Создайте сетевой мост для экземпляров KVM
Сетевой мост с именем virbr0 автоматически создается для предоставления трансляции сетевых адресов (NAT). Виртуальные машины, использующие этот мост, не имеют внешнего подключения.
Список существующих мостовых сетей можно получить с помощью команды brctl:
$ sudo brctl show
В этом разделе мы создадим сетевой мост для внешних подключений с помощью NMCLI. Чтобы начать, выполните следующую команду, чтобы вывести список сетевых интерфейсов, доступных на вашей машине:
$ sudo nmcli connection show
Чтобы начать создание моста, сначала удалите существующее соединение с помощью следующей команды:
$ sudo nmcli connection delete bf2bae34-5130-309a-b84d-a3c56dec9ed8
Прежде чем двигаться дальше, важно иметь под рукой следующую информацию:
- Название моста: Это предпочтительное имя нового моста (например, br1).
- Имя устройства: Это имя сетевого интерфейса. Это будет подчиненный мост (например, ens160).
- IP-адрес/подсеть: Это IP-адрес и подсеть мостовой сети, например, 192.168.122.1/24. Это должно совпадать с IP-адресом подсети вашей сети.
- шлюз: Это адрес шлюза сети по умолчанию, например, 192.168.16.2
- DNS1 и DNS2: Это предпочтительные адреса DNS (например, 8.8.8.8 и 8.8.4.4).
Чтобы создать новый мост, выполните следующую команду:
$ sudo nmcli connection add type bridge autoconnect yes con-name br1 ifname br1
Затем добавьте IP, шлюз и DNS к мосту, как показано ниже:
$ sudo nmcli connection modify br1 ipv4.addresses 192.168.16.122.1/24 ipv4.method manual $ sudo nmcli connection modify br1 ipv4.gateway 192.168.16.2 $ sudo nmcli connection modify br1 ipv4.dns 8.8.8.8 +ipv4.dns 8.8.4.4
Теперь выполните следующую команду, чтобы добавить подчиненный мост:
$ sudo nmcli connection add type bridge-slave autoconnect yes con-name ens160 ifname ens160 master br1
Чтобы проверить создание моста, выполните следующую команду:
$ sudo nmcli connection show
Далее запускаем сетевой мост:
$ sudo nmcli connection up br1
Чтобы проверить, активен ли мост, выполните:
$ sudo nmcli connection show br1
Чтобы разрешить KVM использовать этот мост, отредактируйте файл ниже:
$ sudo vim /etc/qemu-kvm/bridge.conf
Добавьте строку:
Затем перезапустите службу libvirtd.
$ sudo systemctl restart libvirtd
5. Создание виртуальной машины с использованием KVM
Теперь, когда KVM настроен и установлено мостовое соединение, давайте создадим виртуальную машину. Вам понадобится файл ISO, чтобы продолжить создание виртуальной машины.
Легко запустить виртуальную машину через CLI, особенно если вы понимаете основы KVM. Для начала установите правильное владение каталогом libvirt:
$ sudo chown -R $USER:libvirt /var/lib/libvirt/
Используя следующий синтаксис, мы создадим виртуальную машину в командной строке, используя образ Rocky9 Linux.
$ virt-install \ --name Rocky9 \ --ram 2048 \ --vcpus 1 \ --disk path=/var/lib/libvirt/images/rocky-9.img,size=20 \ --os-variant centos-stream9 \ --network bridge=br1,model=virtio \ --graphics vnc,listen=0.0.0.0 \ --console pty,target_type=serial \ --location /home/rocky9/Downloads/Rocky-9.0-x86_64-minimal.iso
Примечание:
- -путь к диску=/var/lib/libvirt/images/rocky-9.img,size=20 – Это путь для создания диска и размер диска в ГБ.
- -vcpus 1 — это количество выделяемых ЦП.
- -баран 2048 — выделенная память.
- –сетевой мост=br1 указывает сетевой мост для использования.
- –графика vnc,слушай=0.0.0.0 показывает адрес прослушивания VNC.
- –расположение /home/rocky9/Downloads/Rocky-9.0-x86_64-minimal.iso — это путь к вашему ISO-файлу.
После выполнения указанной выше команды запустится VNC и начнется установка гостевой операционной системы, как показано ниже.
Вы также можете создавать виртуальные машины с помощью Virt-Manager GUI. Чтобы начать, перейдите в меню приложения и щелкните значок, как показано:
Нажмите на выделенный значок, чтобы создать виртуальную машину.
Здесь выберите способ установки ISO-образа, выберите вариант по умолчанию и продолжите.
В этом окне выберите ISO-образ.
Настройте память и процессор виртуальной машины.
Здесь настройте размер жесткого диска.
Теперь нажмите кнопку «Готово», чтобы начать установку.
Заключение
Вот и все! Мы показали вам, как установить KVM на Rocky Linux 9 или AlmaLinux 9. Надеемся, вы найдете это руководство полезным и информативным. Не стесняйтесь размещать ваши вопросы и отзывы в разделе комментариев ниже.