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

Установите KVM на сервер Ubuntu 22.04

Полное руководство по установке KVM в операционной системе Ubuntu Linux.

В этом подробном руководстве объясняется, что такое гипервизор KVM, как установить KVM на сервер Ubuntu 22.04, как создать сетевой мост для KVM и, наконец, как для создания виртуальных машин KVM и управления гостевыми машинами KVM с помощью программы командной строки Virsh.

Что такое КВМ?

KVM, сокращение от Kвиртуальнаявиртуальная машинана основе ядра, представляет собой модуль ядра FreeBSD и Linux, который позволяет ядро действует как гипервизор. Начиная с версии ядра 2.6.20, KVM объединен с основной веткой ядра Linux.

Используя KVM, вы можете легко настроить среду виртуализации на машине с Linux и разместить на ней широкий спектр гостевых операционных систем, включая Linux, Windows, BSD, Mac OS и многие другие.

В этом руководстве мы рассмотрим, как установить и настроить гипервизор KVM в Ubuntu 22.04 безголовый сервер. А также мы увидим, как создавать гостевые машины KVM и управлять ими с помощью утилиты командной строки Virsh.

Предварительные условия

Очевидно, что для настройки KVM вам понадобится машина с Ubuntu 20.04 LTS. Если вы еще не установили Ubuntu, обратитесь к нашему пошаговому руководству по установке сервера Ubuntu 22.04 LTS.

Как установить Ubuntu 22.04 LTS Server Edition

Перед установкой KVM сначала убедитесь, что процессор вашей системы поддерживает аппаратную виртуализацию. В следующем руководстве мы задокументировали несколько различных способов определить, поддерживает ли система Linux виртуализацию.

Как узнать, поддерживает ли процессор технологию виртуализации (VT)

Если ваша система поддерживает аппаратную виртуализацию, продолжайте следующие шаги.

1. Установка KVM на сервере Ubuntu 22.04 LTS

Для целей данного руководства я буду использовать следующие системы.

Сервер виртуализации KVM:

  • ОС - минимальный сервер Ubuntu 22.04 LTS (без графического интерфейса)
  • IP-адрес: 192.168.1.52/24

Удаленный клиент:

  • ОС - сервер Ubuntu 22.04

Сначала давайте установим KVM на сервер Ubuntu 22.04.

1.1. Установка KVM в Ubuntu

Чтобы установить KVM и все другие необходимые компоненты для настройки среды виртуализации KVM на сервере Ubuntu 22.04 LTS, выполните следующую команду от имени пользователя sudo.

sudo apt install qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils virtinst

Здесь,

  • qemu-kvm — метапакет QEMU для поддержки KVM (т. е. полная виртуализация QEMU на оборудовании x86),
  • libvirt-daemon-system — файлы конфигурации демона Libvirt,
  • libvirt-clients — программы для библиотеки libvirt,
  • bridge-utils — утилиты для настройки Ethernet-моста Linux,
  • virtinst — программы для создания и клонирования виртуальных машин.

После установки KVM запустите службу libvertd (если она еще не запущена):

sudo systemctl enable libvirtd
sudo systemctl start libvirtd

Проверьте статус службы libvirtd с помощью команды:

systemctl status libvirtd

Пример вывода:

● libvirtd.service - Virtualization daemon
     Loaded: loaded (/lib/systemd/system/libvirtd.service; enabled; vendor preset: enabled)
     Active: active (running) since Tue 2023-04-11 06:00:33 UTC; 5min ago
TriggeredBy: ● libvirtd.socket
             ● libvirtd-admin.socket
             ● libvirtd-ro.socket
       Docs: man:libvirtd(8)
             https://libvirt.org
   Main PID: 5580 (libvirtd)
      Tasks: 21 (limit: 32768)
     Memory: 10.7M
        CPU: 218ms
     CGroup: /system.slice/libvirtd.service
             ├─5580 /usr/sbin/libvirtd
             ├─5718 /usr/sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/default.conf --leasefile-ro --dhcp-script=/usr/lib/libvirt/libvirt_lea>
             └─5719 /usr/sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/default.conf --leasefile-ro --dhcp-script=/usr/lib/libvirt/libvirt_lea>

Apr 11 06:00:33 ubuntuserver systemd[1]: Started Virtualization daemon.
Apr 11 06:00:33 ubuntuserver dnsmasq[5718]: started, version 2.86 cachesize 150
Apr 11 06:00:33 ubuntuserver dnsmasq[5718]: compile time options: IPv6 GNU-getopt DBus no-UBus i18n IDN2 DHCP DHCPv6 no-Lua TFTP conntrack ipset >
Apr 11 06:00:33 ubuntuserver dnsmasq-dhcp[5718]: DHCP, IP range 192.168.122.2 -- 192.168.122.254, lease time 1h
Apr 11 06:00:33 ubuntuserver dnsmasq-dhcp[5718]: DHCP, sockets bound exclusively to interface virbr0
Apr 11 06:00:33 ubuntuserver dnsmasq[5718]: reading /etc/resolv.conf
Apr 11 06:00:33 ubuntuserver dnsmasq[5718]: using nameserver 127.0.0.53#53
Apr 11 06:00:33 ubuntuserver dnsmasq[5718]: read /etc/hosts - 7 addresses
Apr 11 06:00:33 ubuntuserver dnsmasq[5718]: read /var/lib/libvirt/dnsmasq/default.addnhosts - 0 addresses
Apr 11 06:00:33 ubuntuserver dnsmasq-dhcp[5718]: read /var/lib/libvirt/dnsmasq/default.hostsfile

Итак, служба libvertd включена и запущена!

Теперь добавьте текущего пользователя в группы kvm и libvirt, чтобы они могли создавать виртуальные машины и управлять ими с помощью Утилита командной строки virsh или графический интерфейс Virt-manager.

sudo usermod -aG kvm $USER
sudo usermod -aG libvirt $USER

Альтернативно вы также можете использовать следующие команды, чтобы добавить текущего пользователя в группы kvm и libvirt.

sudo usermod -a -G kvm $(whoami)
sudo usermod -a -G libvirt $(whoami)

Давайте продолжим и настроим мостовую сеть для KVM в Ubuntu.

1.2. Настройка сетевого моста с KVM в Ubuntu

Мостовая сеть использует реальный сетевой интерфейс хост-компьютера совместно с другими виртуальными машинами для подключения к внешней сети. Поэтому каждая виртуальная машина может напрямую привязываться к любому доступному адресу IPv4 или IPv6, как физический компьютер.

По умолчанию KVM настраивает частный виртуальный мост, чтобы все виртуальные машины могли взаимодействовать друг с другом внутри главного компьютера. Он предоставляет собственную подсеть и DHCP для настройки гостевой сети и использует NAT для доступа к сети хоста.

Давайте посмотрим на IP-адрес виртуальных интерфейсов KVM по умолчанию с помощью команды «ip»:

ip a

Пример вывода:

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: enp6s18: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 1e:9a:85:d4:37:4a brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.22/24 brd 192.168.1.255 scope global enp6s18
       valid_lft forever preferred_lft forever
    inet6 fe80::1c9a:85ff:fed4:374a/64 scope link 
       valid_lft forever preferred_lft forever
3: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
    link/ether 52:54:00:89:d4:9a brd ff:ff:ff:ff:ff:ff
    inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
       valid_lft forever preferred_lft forever

Проверьте IP-адрес виртуального интерфейса KVM по умолчанию

Как видите, сеть KVM по умолчанию virbr0 использует IP-адрес 192.168.122.1/24. Все виртуальные машины будут использовать IP-адрес в диапазоне 192.168.122.0/24, а операционная система хоста будет доступна по адресу 192.168.122.1. У вас должна быть возможность подключиться по ssh к хостовой ОС (по адресу 192.168.122.1) изнутри гостевой ОС и использовать scp для копирования файлов туда и обратно.

Это нормально, если вы получаете доступ к виртуальным машинам внутри самого хоста. Однако вы не можете получить доступ к виртуальным машинам из других удаленных систем в сети.

Потому что эти удаленные системы использовали другой диапазон IP-адресов, то есть 192.168.1.0/24 в моем случае. Чтобы получить доступ к виртуальным машинам с других удаленных хостов, мы должны настроить общедоступный мост, который работает в хост-сети и использует любой внешний DHCP-сервер, находящийся в хост-сети.

Проще говоря, мы собираемся заставить все виртуальные машины использовать ту же серию IP-адресов, что и хост-система.

Перед настройкой общедоступной мостовой сети нам следует отключить Netfilter по соображениям производительности и безопасности. Netfilter в настоящее время включен на мостах по умолчанию.

Чтобы отключить сетевой фильтр, создайте файл с именем /etc/sysctl.d/bridge.conf:

sudo vi /etc/sysctl.d/bridge.conf

Нажмите i, чтобы переключиться в режим вставки, и добавьте следующие строки:

net.bridge.bridge-nf-call-ip6tables=0
net.bridge.bridge-nf-call-iptables=0
net.bridge.bridge-nf-call-arptables=0

После добавления вышеуказанных строк нажмите клавишу ESC и введите :wq, чтобы сохранить файл и закрыть его.

Затем создайте еще один файл с именем /etc/udev/rules.d/99-bridge.rules:

sudo vi /etc/udev/rules.d/99-bridge.rules

Добавьте следующую строку:

ACTION=="add", SUBSYSTEM=="module", KERNEL=="br_netfilter", RUN+="/sbin/sysctl -p /etc/sysctl.d/bridge.conf"

Это позволит установить необходимые флаги для отключения сетевого фильтра на мостах в соответствующем месте при запуске системы. Сохраните и закройте файл. Перезагрузите систему, чтобы изменения вступили в силу.

Далее нам следует отключить сеть по умолчанию, которую KVM установил для себя.

Найдите имя сетевых интерфейсов KVM по умолчанию с помощью команды ip link:

ip link

Пример вывода:

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: enp6s18: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
    link/ether 1e:9a:85:d4:37:4a brd ff:ff:ff:ff:ff:ff
3: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN mode DEFAULT group default qlen 1000
    link/ether 52:54:00:89:d4:9a brd ff:ff:ff:ff:ff:ff

Просмотр виртуальных сетевых интерфейсов KVM по умолчанию

Как видно из приведенного выше вывода, "virbr0" — это сетевой интерфейс KVM. Также запишите MAC-адрес вашего физического сетевого интерфейса (т. е. enp6s18) . В моем случае MAC-адрес enp6s181e:9a:85:d4:37:4a.

Теперь давайте удалим сеть KVM по умолчанию с помощью команды:

virsh net-destroy default

Пример вывода:

Network default destroyed

Отмените определение сети по умолчанию с помощью команды:

virsh net-undefine default

Пример вывода:

Network default has been undefined

Удалить сетевые интерфейсы KVM по умолчанию

Если приведенные выше команды по какой-либо причине не работают, вы можете использовать эти команды, чтобы отключить и отменить определение сети KVM по умолчанию:

sudo ip link delete virbr0 type bridge

Теперь снова запустите ip link, чтобы проверить, действительно ли удалены интерфейсы virbr0 и/или virbr0-nic:

ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: enp6s18: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
    link/ether 1e:9a:85:d4:37:4a brd ff:ff:ff:ff:ff:ff

Видеть? Сеть KVM по умолчанию исчезла.

Теперь давайте настроим общедоступный мост KVM, который будет использоваться при создании новой виртуальной машины.

Внимание! Не используйте карты беспроводного сетевого интерфейса в качестве мостов. Большинство беспроводных интерлейсов не поддерживают мостовое соединение. Всегда используйте проводные сетевые интерфейсы для бесперебойного подключения!

Чтобы создать сетевой мост KVM на сервере Ubuntu, отредактируйте файл /etc/netplan/00-installer-config.yaml и добавьте сведения о мосте.

Вот содержимое файла 00-installer-config.yaml по умолчанию на моем сервере Ubuntu 22.04 LTS.

cat /etc/netplan/00-installer-config.yaml 
This is the network config written by 'subiquity'
network:
  ethernets:
    enp6s18:
      addresses:
      - 192.168.1.22/24
      gateway4: 192.168.1.101
      nameservers:
        addresses:
        - 8.8.8.8
        - 1.1.1.1
        search: []
  version: 2

Как видите, на моем сервере Ubuntu есть один проводной сетевой интерфейс с именем enp6s18.

Прежде чем редактировать этот файл, создайте резервную копию существующего файла /etc/netplan/00-installer-config.yaml:

sudo cp /etc/netplan/00-installer-config.yaml{,.backup}

Затем отредактируйте файл конфигурации по умолчанию, используя ваш любимый редактор:

sudo vi /etc/netplan/00-installer-config.yaml

Добавьте/измените его, как показано ниже.

This is the network config written by 'subiquity'
network:
  ethernets:
    enp6s18:
      dhcp4: false
      dhcp6: false

  # Add configuration for bridge interface
  bridges:
    br0:
      interfaces: [enp6s18]
      addresses: [192.168.1.52/24]
      routes:
        - to: default
          via: 192.168.1.101
      mtu: 1500
      nameservers:
        addresses: [8.8.8.8, 8.8.4.4]
        search: []
      parameters:
        stp: true
        forward-delay: 4
  version: 2

Настройка сети KVM Bridge в Ubuntu Linux

Здесь сетевой интерфейс моста br0 подключен к сетевому интерфейсу хоста enp6s18. IP-адрес br0: 192.168.1.52. Шлюз: 192.168.1.101. Я использую DNS-серверы Google (8.8.8.8 и 8.8.4.4) для подключения к Интернету. Вы должны заменить приведенные выше значения теми, которые соответствуют вашей сети.

Внимание! Убедитесь, что отступы пробелов точно такие же, как указано выше. Если отступы строк неправильные, мостовой сетевой интерфейс не активируется.

После изменения файла конфигурации сети сохраните его и закройте.

Проверьте наличие ошибок конфигурации netplan с помощью команды:

sudo netplan generate

Вы ничего не увидите в выводе, если у вас нет проблем с настройкой.

Примените изменения, выполнив следующую команду:

sudo netplan --debug  apply

Внимание! Если вы используете разные IP-адреса для физического сетевого адаптера и интерфейса моста KVM, соединение SSH с хостом KVM будет прервано, как только вы запустите указанную выше команду. Возможно, вам придется повторно подключиться к сеансу SSH, используя новый IP-адрес, назначенный для сетевого интерфейса моста. Если вы используете один и тот же IP-адрес как для физического сетевого адаптера, так и для интерфейса KVM Bridge, у вас не возникнет этой проблемы с подключением.

Теперь проверьте, присвоен ли IP-адрес интерфейсу моста:

ip a

Пример вывода:

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: enp6s18: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel master br0 state UP group default qlen 1000
    link/ether 1e:9a:85:d4:37:4a brd ff:ff:ff:ff:ff:ff
4: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 62:2e:01:a1:7e:7a brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.52/24 brd 192.168.1.255 scope global br0
       valid_lft forever preferred_lft forever
    inet6 fe80::602e:1ff:fea1:7e7a/64 scope link 
       valid_lft forever preferred_lft forever

Проверьте IP-адрес сетевого моста KVM

Как видно из приведенного выше вывода, мостовому сетевому интерфейсу br0 назначен IP-адрес 192.168.1.52 и enp6s18 . запись теперь имеет запись "master br0". Это означает, что enp6s18 принадлежит мосту.

Вы также можете использовать команду brctl, чтобы показать состояние сети моста KVM:

brctl show br0

Пример вывода:

bridge name	bridge id		STP enabled	interfaces
br0		8000.622e01a17e7a	yes		enp6s18

Мы завершили настройку сети моста KVM. Перейдем к настройке сетевого моста для виртуальных машин KVM.

1.3. Добавьте сеть моста в KVM

На этом этапе мы собираемся настроить KVM для использования этого моста. Для этого создайте XML-файл с именем host-bridge.xml:

vi host-bridge.xml

Добавьте следующие строки:

<network>
  <name>host-bridge</name>
  <forward mode="bridge"/>
  <bridge name="br0"/>
</network>

Выполните следующие команды, чтобы запустить вновь созданный мост и сделать его мостом по умолчанию для виртуальных машин:

virsh net-define host-bridge.xml
virsh net-start host-bridge
virsh net-autostart host-bridge

Запустить хост-мост KVM

Чтобы проверить, активен ли и запущен ли хост-мост KVM, выполните:

virsh net-list --all

Пример вывода:

Name          State    Autostart   Persistent
------------------------------------------------
 host-bridge   active   yes         yes

Проверьте состояние хост-моста KVM

Поздравляем! Мы успешно настроили сетевой мост KVM, и теперь он активен.

На этом этапе у вас должна быть работающая установка KVM на сервере Ubuntu 22.04 LTS с настроенной сетью моста KVM. Пришло время развернуть несколько виртуальных машин и управлять ими.

Связанное чтение:

  • Установка и настройка KVM на сервере CentOS 8
  • Установка и настройка KVM в OpenSUSE Tumbleweed

2. Создайте виртуальные машины KVM с помощью команды virsh.

Мы можем использовать утилиту командной строки virsh для создания виртуальных машин и управления ими. Команда virsh используется для создания, просмотра списка, приостановки, перезапуска, завершения работы и удаления виртуальных машин из командной строки.

По умолчанию файлы виртуальной машины и другие связанные файлы хранятся в папке /var/lib/libvirt/ . Путь по умолчанию для хранения ISO-образов — /var/lib/libvirt/boot/. Конечно, мы можем изменить эти местоположения при установке новой виртуальной машины.

2.1. Список всех виртуальных машин

Сначала давайте проверим, существуют ли виртуальные машины.

Чтобы просмотреть список всех доступных виртуальных машин, запустите:

sudo virsh list --all

Пример вывода:

Список всех виртуальных машин KVM с помощью команды virsh

Как видите, существующих виртуальных машин нет.

2.2. Загрузить ISO-образы

Прежде чем создавать нашу первую виртуальную машину, нам необходимо загрузить ISO-образ в каталог /var/lib/libvirt/boot/.

Перейдите в папку, где вы сохранили файлы образа ISO, и скопируйте файл ISO в каталог /var/lib/linvirt/boot/. Например, я скопировал ISO-образ сервера Ubuntu 22.04 в каталог /var/lib/linvirt/boot/.

sudo cp ubuntu-22.04-live-server-amd64.iso /var/lib/libvirt/boot/

2.3. Создание виртуальных машин KVM

Давайте создадим виртуальную машину Ubuntu 22.04 с 4 ГБ ОЗУ, 2 процессорными ядрами, 20 ГБ жесткого диска. Для этого запустите:

sudo virt-install --name Ubuntu-22.04 --ram=4096 --vcpus=2 --cpu host --hvm --disk path=/var/lib/libvirt/images/ubuntu-22.04-vm1,size=10 --cdrom /var/lib/libvirt/boot/ubuntu-22.04-live-server-amd64.iso --network bridge=br0 --graphics vnc

Давайте разберем приведенную выше команду и посмотрим, что делает каждая опция.

  • --name Ubuntu-22.04 : имя виртуальной машины.
  • --ram=4096 : выделяет виртуальной машине 4 ГБ ОЗУ.
  • --vcpus=2 : указывает количество ядер ЦП в виртуальной машине.
  • --cpu хост : оптимизирует свойства ЦП для виртуальной машины, предоставляя гостю конфигурацию ЦП хоста.
  • --hvm : запросите полную виртуализацию оборудования.
  • --disk path=/var/lib/libvirt/images/ubuntu-22.04-vm1,size=10 : место для сохранения жесткого диска виртуальной машины и его размера. В данном случае я выделил размер жесткого диска 10 ГБ.
  • --cdrom /var/lib/libvirt/boot/ubuntu-22.04-live-server-amd64.iso : Место, где находится фактический ISO-образ установщика Ubuntu.
  • --network Bridge=br0 : поручить виртуальной машине использовать сеть-мост. Если вы не настроили мостовую сеть, игнорируйте этот параметр.
  • --graphics vnc : разрешает доступ VNC к виртуальной машине с удаленного клиента.

Пример вывода:

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...
Allocating 'ubuntu-22.04-vm1'                                                                                              |    0 B  00:00:00 ... 
Creating domain...                                                                                                         |    0 B  00:00:00     

Domain is still running. Installation may be in progress.
Waiting for the installation to complete.

Создать виртуальную машину KVM из командной строки

Это сообщение будет отображаться до тех пор, пока вы не подключитесь к виртуальной машине из удаленной системы через любое приложение VNC и не завершите установку ОС.

Поскольку наша хост-система KVM (сервер Ubuntu) не имеет графического интерфейса, мы не можем продолжить установку гостевой ОС из самой хост-системы. Итак, я собираюсь использовать запасную машину с графическим интерфейсом для завершения установки гостевой ОС с помощью клиента VNC.

На этом мы закончили с сервером Ubuntu. Следующие шаги необходимо выполнить в клиентской системе.

2.4. Доступ к виртуальным машинам KVM через клиент VNC

Перейдите в другую систему с графической средой рабочего стола и установите предпочитаемое клиентское приложение VNC (например, Remmina или Remote-viewer). У меня есть рабочий стол Ubuntu с установленным клиентом удаленного рабочего стола Remmina.

Откройте новое окно терминала и подключитесь по SSH к хост-системе KVM:

ssh ostechnix@192.168.1.52

Здесь,

  • ostechnix — имя пользователя на хосте KVM (сервер Ubuntu 22.04).
  • 192.168.1.52 — IP-адрес хоста KVM.

Найдите порт VNC, используемый работающей виртуальной машиной, с помощью команды:

sudo virsh dumpxml Ubuntu-22.04 | grep vnc

Замените «Ubuntu-22.04» на имя вашей виртуальной машины.

Пример вывода:

<graphics type='vnc' port='5900' autoport='yes' listen='127.0.0.1'>

Номер порта VNC — 5900.

Теперь отключитесь от сеанса SSH хоста KVM и выполните следующую команду Переадресация портов SSH с терминала вашей локальной системы:

ssh ostechnix@192.168.1.52 -L 5900:127.0.0.1:5900

2.4.1. Доступ к виртуальным машинам с помощью Remmina

Запустите клиентское приложение Remmina и выберите протокол "VNC", затем введите "localhost:5900" в адресной строке и, наконец, нажмите ENTER:

Подключайтесь к удаленным виртуальным машинам с помощью клиента удаленного рабочего стола Remmina.

Приложение Remmina теперь покажет вам окно установки предполагаемой ОС.

Доступ к виртуальным машинам через клиент Remmina VNC

2.4.2. Доступ к виртуальным машинам с помощью Remote-viewer

Если в вашей локальной системе установлено приложение Remote-viewer, откройте его, введите "vnc://localhost:5900" в адресной строке и нажмите Подключиться. .

Подключитесь к виртуальной машине KVM через приложение удаленного просмотра.

Теперь вы сможете получить доступ к консоли виртуальной машины KVM.

Доступ к виртуальной машине KVM через Remote-viewer

Альтернативно. вы можете подключиться к виртуальной машине KVM через приложение Remote-viewer, выполнив следующую команду:

remote-viewer vnc://localhost:5900

Эта команда откроет приложение Virt-viewer, и вы сможете получить доступ к окну установки виртуальной машины через Remote-viewer.

Просто продолжайте установку гостевой ОС. После завершения установки вы можете либо продолжить использовать вновь установленную систему Ubuntu через Remmina или Remote-viewer, либо получить к ней доступ через SSH. После завершения работы с виртуальной машиной просто закройте окно приложения VNC.

3. Управляйте виртуальными машинами KVM с помощью команды virsh.

Вот несколько наиболее часто используемых примеров команд virsh для управления виртуальными машинами KVM из командной строки с помощью команды virsh.

3.1. Получение списка запущенных виртуальных машин

Запустите команду virsh list, чтобы просмотреть список запущенных виртуальных машин:

sudo virsh list

Пример вывода:

 Id   Name           State
------------------------------
 2    Ubuntu-22.04   running

Как видите, виртуальная машина Ubuntu 22.04 в настоящее время работает, и ее идентификатор равен 2.

Чтобы просмотреть все виртуальные машины (как работающие, так и остановленные), используйте флаг --all.

sudo virsh list --all

Получение списка виртуальных машин KVM с помощью команды virsh

3.2. Запустить виртуальные машины

Для запуска виртуальной машины можно использовать следующую команду:

sudo virsh start VM_NAME

Пример :

sudo virsh start Ubuntu-22.04

Вы также можете использовать идентификатор виртуальной машины для ее запуска:

sudo virsh start 2

3.3. Перезагрузите виртуальные машины

Чтобы перезапустить работающую виртуальную машину, выполните:

sudo virsh reboot Ubuntu-22.04

Или,

sudo reboot 2

3.4. Приостановить виртуальные машины

Чтобы приостановить работающую виртуальную машину, выполните:

sudo suspend Ubuntu-22.04

Или,

sudo suspend 2

3.5. Возобновить виртуальные машины

Чтобы возобновить приостановленную виртуальную машину, выполните:

sudo virsh resume Ubuntu-22.04

Или,

sudo resume 2

3.6. Выключение виртуальных машин

Чтобы выключить работающую виртуальную машину, выполните:

sudo virsh shutdown Ubuntu-22.04

Или,

sudo shutdown 2

3.7. Удаление виртуальных машин

Чтобы полностью удалить виртуальную машину, выполните:

sudo virsh undefine Ubuntu-22.04
sudo virsh destroy Ubuntu-22.04

Вирш имеет множество команд и опций. Чтобы изучить их все, обратитесь к разделу справки virsh:

virsh --help

4. Управляйте гостями KVM графически

Запомнить все команды virsh практически невозможно. Если вы начинающий администратор Linux, вам может быть сложно выполнять все операции управления KVM из командной строки. Не беспокойся! Существует несколько отличных веб-инструментов для графического управления гостевыми машинами KVM. В следующих руководствах подробно объясняется, как управлять гостями KVM с помощью Cockpit и Virt-manager.

  • Управление виртуальными машинами KVM с помощью веб-консоли Cockpit
  • Как управлять виртуальными машинами KVM с помощью Virt-Manager

5. Включите доступ к консоли Virsh для виртуальных машин.

После создания гостей KVM я могу получить к ним доступ через SSH, клиент VNC, Virt-viewer, Virt-manager, веб-консоль Cockpit и т. д. Но я не смог получить к ним доступ с помощью команды virsh console. . Чтобы получить доступ к гостям KVM с помощью virsh console, обратитесь к следующему руководству:

Как включить доступ к консоли Virsh для гостей KVM

Заключение

В этом руководстве мы обсудили, как установить и настроить KVM в серверной версии Ubuntu 22.04 LTS. А затем мы рассмотрели, как настроить сеть моста KVM в Ubuntu.

Далее мы узнали, как создавать виртуальные машины KVM и управлять ими из командной строки с помощью инструмента virsh и инструментов с графическим интерфейсом Cockpit и Virt-manager.

Наконец, мы увидели, как включить доступ к консоли virsh для виртуальных машин KVM.

На этом этапе у вас должна быть полностью работающая среда виртуализации KVM на вашем сервере Ubuntu 22.04.

KVM — обширная тема. Я настоятельно рекомендую вам изучить все остальные темы KVM, приведенные ниже. Я буду постоянно дополнять это руководство новыми темами, связанными с KVM. Я рекомендую вам добавить эту ссылку в закладки и время от времени возвращаться, чтобы посмотреть, не добавляется ли какая-нибудь новая тема.

Читать далее:

  • Создание виртуальной машины KVM с использованием образа Qcow2 в Linux
  • Как перенести виртуальные машины Virtualbox в виртуальные машины KVM в Linux
  • Включить поддержку UEFI для виртуальных машин KVM в Linux
  • Как включить вложенную виртуализацию в KVM в Linux
  • Отображение статистики систем виртуализации с помощью Virt-top в Linux
  • Как узнать IP-адрес виртуальной машины KVM
  • Как переименовать гостевую виртуальную машину KVM
  • Доступ к образам дисков виртуальных машин и их изменение с помощью Libguestfs
  • Быстро создавайте образы виртуальных машин с помощью Virt-builder
  • Как спасти виртуальные машины с помощью Virt-Rescue
  • Как увеличить размер диска виртуальной машины KVM в Linux
  • Настройка общей папки между хостом и гостем KVM
  • Как изменить расположение пула хранения данных KVM Libvirt по умолчанию
  • [Решено] Невозможно получить доступ к файлу хранилища, в разрешении отказано. Ошибка в KVM Libvirt
  • Как экспортировать и импортировать виртуальные машины KVM в Linux

Ресурс:

  • Веб-сайт KVM

Избранное изображение: Джонатан Хаммонд из Pixabay.

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