KVM в CentOS 7
Для доступа к виртуальным машинам, которые предлагаются через KVM, вы используете libvirtd. Libvirtd - это процесс, который находится между уровнем виртуализации и приложением, которое администратор использует для доступа к виртуальным машинам.
Параметры управления виртуальной машиной настраиваются через файл /etc/libvirt/libvirtd.conf.
Если у вас возникают проблемы с доступом к виртуальным машинам, libvirtd является основным подозреваемым, и вы должны по крайней мере убедиться, что он работает, с помощью команды systemctl status -l libvirtd.
Несколько служебных программ могут быть использованы поверх libvirtd. Диспетчер виртуальных машин (предлагается через двоичный файл virt-manager) - это широко используемый графический интерфейс пользователя (GUI) для управления KVM. Кроме того, команда virsh доступна в качестве интерфейса командной строки для управления виртуальными машинами KVM.
Еще одним важным фактором является доступность хранилища. Когда вы устанавливаете виртуальную машину, она должна создать виртуальный диск. Этот виртуальный диск по умолчанию хранится в файле образа в каталоге /var/lib/libvirt/images. Убедитесь, что у вас достаточно свободного дискового пространства в разделе, где вы хотите установить виртуальные машины, прежде чем начинать установку.
После установки необходимых пакетов программного обеспечения вы можете перейти к созданию виртуальных машин и управлению ими.
1. Войдите под рутом. Введите lsmod | grep kvm. Этой командой вы ищете модуль kvm и kvm_intel (kvm_amd, если вы используете платформу AMD). Если эти модули в данный момент не загружены, введите modprobe -r kvm для их загрузки.
2. Введите systemctl status libvirtd. Эта команда проверяет, запущена ли служба libvirtd. Если это так, то всё отлично. Если нет, введите systemctl start libvirtd, чтобы запустить службу.
3. Введите df -h, чтобы проверить объем доступного дискового пространства.
Во время связи по сети виртуальная машина отправляет пакеты через свой внутренний (виртуальный) сетевой интерфейс, который обычно имеет имя eth0. На уровне гипервизора (хоста, где установлен KVM) эта сеть представлена интерфейсом vnet. Первая виртуальная машина, которая запускается, получает интерфейс vnet0, вторая машина, которая запускается, получает vnet1 и так далее.
Эти интерфейсы vnet в свою очередь подключаются к виртуальному мосту. Сам виртуальный мост подключен к физическому сетевому интерфейсу вашего хоста. Чтобы получить обзор конфигурации виртуальной сети, вы можете использовать команду brctl show. Эта команда показывает имя моста, уникальный идентификатор, который был назначен мосту, индикатор, который показывает, был ли включен протокол STP (Spanning Tree Protocol), и все интерфейсы, которые подключены к мосту.
Обратите внимание, что в CentOS 7 есть два разных способа управления сетевыми мостами. При установке CentOS в качестве хоста KVM автоматически создается мостовой интерфейс с именем virbr0. Кроме того, вы можете настроить мост вручную, используя утилиты мостового соединения, которые доступны в утилитах NetworkManager nmtui и nmcli. Чтобы упростить настройку конфигурации виртуальной сети, рекомендуется установить мост при настройке сервера в качестве хоста KVM.
Первым делом узнаем название физического интерфейса. В моём случае это em4:
Затем открываем файл физического интерфейса:
Удаляем всё содержимое и вписываем туда:
Теперь создаем интерфейс br0:
Вписываем туда это содержимое:
Вместо моей адресации впишите ту, которая была на физическом интерфейсе, в моей случае это em4.
Перезапускаем сеть:
Перезапускаем libvirtd:
Теперь появился сетевой интерфейс br0 и он работает в режиме моста. Соответственно ему теперь назначена IP-адресация, которая была на em4:
С настройкой моста закончили, теперь установим дополнительные пакеты для работы с KVM, если вы хотите управлять виртуальными машинами из Windows.
Далее:
Установим SSH-клиент PuTTy с оф. сайта:
https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html
Установим VcXsrv (порт сервера X11 для Windows):
http://sourceforge.net/projects/vcxsrv/files/latest/download?source=typ_redirect
Возможно потребуется установить Visual C++ Redistributable for Visual Studio 2015 (64-bit):
http://download.microsoft.com/download/9/3/F/93FCF1E7-E6A4-478B-96E7-D4B285925B00/vc_redist.x64.exe
И наконец произведем окончательную настройку выше скачанных программ.
Найдите строки ниже и приведите их в этот вид:
Перезапустите sshd:
Поздравляю! Теперь вы можете создавать и управлять виртуальными машинами
2. В диспетчере виртуальных машин нажмите Create a New Virtual Machine. Откроется окно шага 1 из 5 мастера создания новой виртуальной машины.
3. На шаге 2 из 5 мастера необходимо указать источник, где находится установочный диск, а также версию операционной системы и операционной системы, которые вы хотите установить.
4. Далее необходимо указать объем оперативной памяти, которую вы хотите выделить для виртуальной машины, а также количество ядер ЦП. Конечно, вам нужно иметь как минимум ресурсы, которые вы выделяете на хост-машине. Для минимальной установки используйте 512 МБ ОЗУ и 1 ЦП.
5. Теперь введите свойства виртуального диска, который вы хотите создать. Для базовой установки рекомендуется минимум 2 ГБ.
6. На данный момент вы ввели все свойства, которые будут использоваться для виртуальной машины.
Теперь вы можете нажать Finish, чтобы записать настройки виртуальной машины на диск и начать процедуру установки.
В этой процедуре вы определили настройки виртуального оборудования, которые будет использовать ваша виртуальная машина. Теперь можно начать установку.
Утилита virt-viewer похожа на Virtual Machine Manager. Он был разработан для предоставления пользователям доступа к виртуальной машине без предоставления возможности изменения настроек виртуальной машины.
Утилита GNOME Boxes является дополнением к интерфейсу GNOME 3, который используется на серверах, на которых установлен графический интерфейс. Он был разработан как утилита для конечных пользователей, которая упрощает использование и доступ к виртуальным машинам.
2. Введите grubby --update-kernel=ALL --args="console=ttyS0". Использование команды grubby позволяет изменить конфигурацию загрузчика GRUB2 без необходимости просматривать файлы конфигурации GRUB2.
В качестве альтернативы вы можете отредактировать файл /etc/default/grub и добавить аргумент console=ttyS0 в строку, которая указывает используемые аргументы ядра. Если вы изменяете файл grub.conf, используйте grub2-mkconfig -o /boot/grub2/grub.cfg, чтобы записать изменения в основной файл конфигурации загрузчика.
3. Перезагрузите виртуальную машину, используя команду reboot.
4. На хосте KVM используйте команду virsh console your_server.example.com для подключения к виртуальной машине. Теперь вы получите доступ к консоли VM, как показано ниже. Нажмите Ctrl +], чтобы выйти из сеанса консоли virsh. Обратите внимание, что имя виртуальной машины, к которой вы подключаетесь, должно совпадать с именем виртуальной машины, как вы можете увидеть это с помощью команды virsh list.
Как видите, у вас есть много вариантов, доступных в интерфейсе свойств Virtual Machine Manager. Многие из них говорят сами за себя. Вот некоторые из наиболее распространенных задач настройки, к которым вы можете получить доступ через этот интерфейс:
При использовании команд virsh вам часто приходится указывать имя виртуальной машины. Альтернативой является использование идентификатора виртуальной машины. Чтобы получить обзор идентификаторов виртуальных машин, используйте virsh list. Вы увидите идентификаторы в списке для всех виртуальных машин, которые в данный момент активны
Посмотреть адреса, выданные машинам этой сетью
Таким образом, использование top на хосте позволяет увидеть, насколько занята виртуальная машина связана с другими процессами, запущенными на этом компьютере. Вы не можете видеть, что происходит внутри виртуальной машины, используя top с хоста, но вам придется делать это, используя соответствующие инструменты внутри виртуальной машины. На скриншоте показан вывод команды top хоста KVM, на котором запущены разные виртуальные машины. Каждая из виртуальных машин отображается как процесс qemu-kvm.
Вы также узнали, как установить виртуальную машину и как ей управлять, используя графическую утилиту, такую как Virtual Machine Manager или интерфейс командной строки virsh.
Параметры управления виртуальной машиной настраиваются через файл /etc/libvirt/libvirtd.conf.
Если у вас возникают проблемы с доступом к виртуальным машинам, libvirtd является основным подозреваемым, и вы должны по крайней мере убедиться, что он работает, с помощью команды systemctl status -l libvirtd.
Несколько служебных программ могут быть использованы поверх libvirtd. Диспетчер виртуальных машин (предлагается через двоичный файл virt-manager) - это широко используемый графический интерфейс пользователя (GUI) для управления KVM. Кроме того, команда virsh доступна в качестве интерфейса командной строки для управления виртуальными машинами KVM.
Установка пакетов KVM
Наиболее удобный способ сделать это - использовать yum groupinstall "Virtualization Host". Эта команда устанавливает все необходимое для настройки среды хоста виртуализации. Выполните команду сейчас.Еще одним важным фактором является доступность хранилища. Когда вы устанавливаете виртуальную машину, она должна создать виртуальный диск. Этот виртуальный диск по умолчанию хранится в файле образа в каталоге /var/lib/libvirt/images. Убедитесь, что у вас достаточно свободного дискового пространства в разделе, где вы хотите установить виртуальные машины, прежде чем начинать установку.
После установки необходимых пакетов программного обеспечения вы можете перейти к созданию виртуальных машин и управлению ими.
1. Войдите под рутом. Введите lsmod | grep kvm. Этой командой вы ищете модуль kvm и kvm_intel (kvm_amd, если вы используете платформу AMD). Если эти модули в данный момент не загружены, введите modprobe -r kvm для их загрузки.
2. Введите systemctl status libvirtd. Эта команда проверяет, запущена ли служба libvirtd. Если это так, то всё отлично. Если нет, введите systemctl start libvirtd, чтобы запустить службу.
3. Введите df -h, чтобы проверить объем доступного дискового пространства.
Немного о KVM Host Networking
После установки KVM на сервере сеть также существенно меняется. На хосте создан виртуальный мост virbr0. Этот виртуальный мост работает как встроенный коммутатор и используется для подключения одного или нескольких физических сетевых интерфейсов хоста к различным виртуальным машинам.Во время связи по сети виртуальная машина отправляет пакеты через свой внутренний (виртуальный) сетевой интерфейс, который обычно имеет имя eth0. На уровне гипервизора (хоста, где установлен KVM) эта сеть представлена интерфейсом vnet. Первая виртуальная машина, которая запускается, получает интерфейс vnet0, вторая машина, которая запускается, получает vnet1 и так далее.
Эти интерфейсы vnet в свою очередь подключаются к виртуальному мосту. Сам виртуальный мост подключен к физическому сетевому интерфейсу вашего хоста. Чтобы получить обзор конфигурации виртуальной сети, вы можете использовать команду brctl show. Эта команда показывает имя моста, уникальный идентификатор, который был назначен мосту, индикатор, который показывает, был ли включен протокол STP (Spanning Tree Protocol), и все интерфейсы, которые подключены к мосту.
Обратите внимание, что в CentOS 7 есть два разных способа управления сетевыми мостами. При установке CentOS в качестве хоста KVM автоматически создается мостовой интерфейс с именем virbr0. Кроме того, вы можете настроить мост вручную, используя утилиты мостового соединения, которые доступны в утилитах NetworkManager nmtui и nmcli. Чтобы упростить настройку конфигурации виртуальной сети, рекомендуется установить мост при настройке сервера в качестве хоста KVM.
Создание моста (br0)
Чтобы NIC на хосте работал в режиме моста, нужно установить пакет bridge-utils:yum install -y bridge-utils
Первым делом узнаем название физического интерфейса. В моём случае это em4:
[root@localhost ~]# 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: em1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000
link/ether a4:ba:db:33:b9:f3 brd ff:ff:ff:ff:ff:ff
3: em2: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000
link/ether a4:ba:db:33:b9:f5 brd ff:ff:ff:ff:ff:ff
4: em3: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000
link/ether a4:ba:db:33:b9:f7 brd ff:ff:ff:ff:ff:ff
5: em4: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq master br0 state UP group default qlen 1000
link/ether a4:ba:db:33:b9:f9 brd ff:ff:ff:ff:ff:ff
6: p1p1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000
link/ether 00:10:18:6d:89:c4 brd ff:ff:ff:ff:ff:ff
7: p1p2: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000
link/ether 00:10:18:6d:89:c6 brd ff:ff:ff:ff:ff:ff
9: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
link/ether 52:54:00:d9:b2:41 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
10: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast master virbr0 state DOWN group default qlen 1000
link/ether 52:54:00:d9:b2:41 brd ff:ff:ff:ff:ff:ff
2017: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether a4:ba:db:33:b9:f9 brd ff:ff:ff:ff:ff:ff
inet 172.16.100.149/24 brd 172.16.100.255 scope global noprefixroute br0
valid_lft forever preferred_lft forever
inet6 fe80::fc54:ff:fee8:1d6d/64 scope link
valid_lft forever preferred_lft forever
Затем открываем файл физического интерфейса:
vi /etc/sysconfig/network-scripts/ifcfg-em4
Удаляем всё содержимое и вписываем туда:
ONBOOT=yes
BRIDGE=br0
TYPE=Ethernet
DEVICE=em4
BOOTPROTO=none
Теперь создаем интерфейс br0:
vi /etc/sysconfig/network-scripts/ifcfg-br0
Вписываем туда это содержимое:
DEVICE=br0
TYPE=Bridge
ONBOOT=yes
BOOTPROTO=static
IPADDR=172.16.100.149
NETMASK=255.255.255.0
GATEWAY=172.16.100.10
DNS1=8.8.8.8
DNS2=77.88.8.8
Вместо моей адресации впишите ту, которая была на физическом интерфейсе, в моей случае это em4.
Перезапускаем сеть:
systemctl restart network
Перезапускаем libvirtd:
systemctl restart libvirtd
Теперь появился сетевой интерфейс br0 и он работает в режиме моста. Соответственно ему теперь назначена IP-адресация, которая была на em4:
[root@localhost ~]# ip a | grep br0
5: em4: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq master br0 state UP group default qlen 1000
9: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
10: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast master virbr0 state DOWN group default qlen 1000
2017: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
inet 172.16.100.149/24 brd 172.16.100.255 scope global noprefixroute br0
[root@localhost ~]#
С настройкой моста закончили, теперь установим дополнительные пакеты для работы с KVM, если вы хотите управлять виртуальными машинами из Windows.
Установка дополнительных пакетов
Установим virt-manager и дополнительные пакеты, благодаря которым можно управлять виртуальными машинами в графической среде прямо из ssh-сессии:yum install -y virt-manager xorg-x11-xauth liberation-sans-fonts qemu-kvm
Далее:
Установим SSH-клиент PuTTy с оф. сайта:
https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html
Установим VcXsrv (порт сервера X11 для Windows):
http://sourceforge.net/projects/vcxsrv/files/latest/download?source=typ_redirect
Возможно потребуется установить Visual C++ Redistributable for Visual Studio 2015 (64-bit):
http://download.microsoft.com/download/9/3/F/93FCF1E7-E6A4-478B-96E7-D4B285925B00/vc_redist.x64.exe
И наконец произведем окончательную настройку выше скачанных программ.
Настройка дополнительных параметров SSH на хосте KVM
Открываем файл конфигурации sshd:vi /etc/ssh/sshd_config
Найдите строки ниже и приведите их в этот вид:
X11FORWARDING YES
X11DISPLAYOFFSET 10
X11USELOCALHOST YES
Перезапустите sshd:
systemctl restart sshd
Настройка PuTTy и VcXsrv
Запускаем PuTTy, вводим IP-адрес хоста KVM и имя сессии. После этого слева раскрываем SSH, выбираем X11 и ставим галочку напротив "Enable X11 forwarding" как на скриншоте ниже:И наконец настроим VcXsrv
После установки жмём и запускаем "Пуск - VcXsrv - VcXsrv.exe", после чего в трее появится значок "X"Последовательность запуска virt-manager следующая:
- Сначала запускаете VcXsrv
- Затем запускаете PuTTy и подключаетесь к хосту по SSH
- После входа в консоль просто введите virt-manager & (вместе со знаком &, чтобы увидеть, запущен ли до этого процесс virt-manager) и откроется окно Virtual Machine Manager
Поздравляю! Теперь вы можете создавать и управлять виртуальными машинами
Установка и управление виртуальными машинами
1. Введите virt-manager &, чтобы запустить диспетчер виртуальных машин (Virtual Machine Manager).2. В диспетчере виртуальных машин нажмите Create a New Virtual Machine. Откроется окно шага 1 из 5 мастера создания новой виртуальной машины.
3. На шаге 2 из 5 мастера необходимо указать источник, где находится установочный диск, а также версию операционной системы и операционной системы, которые вы хотите установить.
4. Далее необходимо указать объем оперативной памяти, которую вы хотите выделить для виртуальной машины, а также количество ядер ЦП. Конечно, вам нужно иметь как минимум ресурсы, которые вы выделяете на хост-машине. Для минимальной установки используйте 512 МБ ОЗУ и 1 ЦП.
5. Теперь введите свойства виртуального диска, который вы хотите создать. Для базовой установки рекомендуется минимум 2 ГБ.
6. На данный момент вы ввели все свойства, которые будут использоваться для виртуальной машины.
Теперь вы можете нажать Finish, чтобы записать настройки виртуальной машины на диск и начать процедуру установки.
В этой процедуре вы определили настройки виртуального оборудования, которые будет использовать ваша виртуальная машина. Теперь можно начать установку.
Сами настройки виртуальной машины были записаны в файл конфигурации XML, который хранится в каталоге /etc/libvirt/qemu.
Поскольку настройки виртуального оборудования легко доступны в файле конфигурации, у вас может возникнуть желание изменить их также из файла. Это не то, что вы должны делать. Чтобы изменить настройки виртуального оборудования, вы можете использовать свойства виртуальной машины в диспетчере виртуальных машин или использовать команду virsh edit <vmname>. Это связано с тем, что доступ к настройкам виртуальной машины упрощен через libvirtd, потому что после того как вы внесли изменения, происходит проверка синтаксиса и если он будет неправильный, то вы не сможете сохранить конфигурацию, а прямой доступ к конфигурации может испортить вашу виртуальную машину.Использование виртуальных машин KVM
После установки виртуальной машины KVM существует несколько способов доступа к ней, включая следующие:- SSH
- Через диспетчер виртуальных машин (команда virt-manager &)
- Через GNOME Boxes
- Использование virt-viewer
- Через сторонние утилиты.
Утилита virt-viewer похожа на Virtual Machine Manager. Он был разработан для предоставления пользователям доступа к виртуальной машине без предоставления возможности изменения настроек виртуальной машины.
Утилита GNOME Boxes является дополнением к интерфейсу GNOME 3, который используется на серверах, на которых установлен графический интерфейс. Он был разработан как утилита для конечных пользователей, которая упрощает использование и доступ к виртуальным машинам.
Доступ к виртуальным машинам из консоли хоста
1. Войдите в виртуальную машину и убедитесь, что у вас есть права root.2. Введите grubby --update-kernel=ALL --args="console=ttyS0". Использование команды grubby позволяет изменить конфигурацию загрузчика GRUB2 без необходимости просматривать файлы конфигурации GRUB2.
В качестве альтернативы вы можете отредактировать файл /etc/default/grub и добавить аргумент console=ttyS0 в строку, которая указывает используемые аргументы ядра. Если вы изменяете файл grub.conf, используйте grub2-mkconfig -o /boot/grub2/grub.cfg, чтобы записать изменения в основной файл конфигурации загрузчика.
3. Перезагрузите виртуальную машину, используя команду reboot.
4. На хосте KVM используйте команду virsh console your_server.example.com для подключения к виртуальной машине. Теперь вы получите доступ к консоли VM, как показано ниже. Нажмите Ctrl +], чтобы выйти из сеанса консоли virsh. Обратите внимание, что имя виртуальной машины, к которой вы подключаетесь, должно совпадать с именем виртуальной машины, как вы можете увидеть это с помощью команды virsh list.
[root@lab ~]# virsh console sander-vm1
Connected to domain sander-vm1
Escape character is ^]
CentOS Linux 7 (Core)
Kernel 3.10.0-123.el7.x86_64 on an x86_64
server2 login:
Управление свойствами виртуальной машины в графической среде
Как администратору, вам иногда придется менять свойства виртуальной машины. Самый простой способ сделать это - через диспетчер виртуальных машин. Для доступа к свойствам в диспетчере виртуальных машин сначала необходимо открыть виртуальную машину. ВМ не должна быть запущена. Открыв его, щелкните значок, который выглядит как лампа, чтобы открыть интерфейс, показанный на скриншоте.Как видите, у вас есть много вариантов, доступных в интерфейсе свойств Virtual Machine Manager. Многие из них говорят сами за себя. Вот некоторые из наиболее распространенных задач настройки, к которым вы можете получить доступ через этот интерфейс:
- Чтобы добавить новое оборудование, нажмите кнопку Add Hardware в левой нижней части окна. Это открывает интерфейс, из которого вы можете выбрать аппаратное устройство для добавления, а также его дополнительные свойства.
- Выберите параметр Performance, чтобы отобразить графики производительности использования виртуальных машин.
- Выберите параметр Memory, чтобы увеличить или уменьшить размер памяти, выделенной для виртуальной машины.
- Нажмите Boot Options, чтобы включить автозапуск. Это запустит виртуальную машину при загрузке хоста.
- Также в интерфейсе параметров загрузки вы найдете порядок загрузки устройств (Boot Device Order). Выберите этот параметр, чтобы указать порядок, в котором устройства в вашей виртуальной машине будут использоваться для загрузки.
Управление виртуальными машинами из консоли
CentOS предлагает универсальный интерфейс командной строки для управления виртуальными машинами непосредственно из командной строки. Вы можете запустить команду virsh с множеством различных аргументов для выполнения определенных задач. Вы также можете просто набрать virsh, чтобы открыть интерфейс командной строки, из которого вы можете сразу ввести определенные команды. Таблица показывает некоторые из наиболее распространенных команд virsh.Команда | Описание |
list | Подключается к виртуальной машине напрямую с консоли хост-сервера KVM |
list --all | Показывает все виртуальные машины, включая машины, которые в данный момент не активны |
help | Предоставляет список всех параметров, которые можно использовать с командой virsh |
shutdown <vmname> | Отключает ВМ правильно |
destroy <vmname> | Останавливает виртуальную машину, как при отключении питания на реальном сервере |
edit <vmname> | Открывает интерфейс vi, который позволяет редактировать файл конфигурации XML, принадлежащий определенной виртуальной машине |
console <vmname> | Подключается к виртуальной машине напрямую с консоли хост-сервера KVM |
start <vmname> | Запуск ВМ |
reboot <vmname> | Перезагрузка ВМ |
При использовании команд virsh вам часто приходится указывать имя виртуальной машины. Альтернативой является использование идентификатора виртуальной машины. Чтобы получить обзор идентификаторов виртуальных машин, используйте virsh list. Вы увидите идентификаторы в списке для всех виртуальных машин, которые в данный момент активны
[root@lab ~]# virsh list
Id Name State
-----------------------------------------------
3 dan-vm1 running
4 dan-vm2 running
6 sander-vm1 running
7 sander-vm2 running
8 sander-ipa running
10 vm1-rhel6-svv running
12 vm2-rhel6-svv running
16 sander-server1 running
18 dan-ipa running
Узнать IP-адреса гостевой виртуальной машины KVM
Получить список сетей[root@kvm network-scripts]# virsh net-list
Name State Autostart Persistent
----------------------------------------------------------
default active yes yes
Посмотреть адреса, выданные машинам этой сетью
[root@kvm network-scripts]# virsh net-dhcp-leases --network default
Expiry Time MAC address Protocol IP address Hostname Client ID or DUID
-------------------------------------------------------------------------------------------------------------------
2020-02-20 10:28:20 52:54:00:d2:7d:a4 ipv4 192.168.122.169/24 - -
Мониторинг активности ВМ с помощью top
В Linux вы можете использовать утилиту top для мониторинга активности процессов. Виртуальная машина похожа на любой другой процесс с точки зрения хоста, на котором она работает. Это означает, что виртуальные машины используют ресурсы, как и любые другие процессы. В утилите top для отображения такой активности используется интересный параметр; параметр st в строке загрузки ЦП указывает процент времени ЦП, которое было «украдено» у гипервизора виртуальными машинами. Сама виртуальная машина на хосте гипервизора отображается как один отдельный процесс сверху.Таким образом, использование top на хосте позволяет увидеть, насколько занята виртуальная машина связана с другими процессами, запущенными на этом компьютере. Вы не можете видеть, что происходит внутри виртуальной машины, используя top с хоста, но вам придется делать это, используя соответствующие инструменты внутри виртуальной машины. На скриншоте показан вывод команды top хоста KVM, на котором запущены разные виртуальные машины. Каждая из виртуальных машин отображается как процесс qemu-kvm.
Итоги
В этой статье вы узнали, как работать с виртуальными машинами в Linux. Вы узнали о виртуализации и о том, как настроить хост-сервер KVM.Вы также узнали, как установить виртуальную машину и как ей управлять, используя графическую утилиту, такую как Virtual Machine Manager или интерфейс командной строки virsh.
Комментариев 2