Использование virsh для работы с KVM виртуальными машинами и сетями.

Консольная утилита virsh  из пакета libvirt предназначена для управления гостевыми системами и гипервизором.
virsh использует libvirt API и служит альтернативой графическому менеджеру виртуальных машин (virt-manager). Непривилегированные пользователи могут выполнять доступ в только в режиме чтения. С помощью virsh можно исполнять сценарии для виртуальных машин.
С помощью virsh вы можете сохранять состояние виртуальных машин, переносить ВМ между гипервизорами и управлять виртуальными сетями
С virsh вы всегда можете получить список доступных команд или параметров, используя команду «help». «help command» даст вам дополнительную информацию по команде command.

Работа с виртуальными сетями

Просмотр действующих сетей

Создание новой сети на основе XML-конфигурационного файла

Запуск/активация вновь созданной сети или ранее существовавшей неактивной сети

Либо создание и запуск сети на основе XML-конфигурационного файла с помощью одной команды

Добавление запуска сетевой конфигурации в автозагрузку

Удаление запуска сетевой конфигурации с автозагрузки

Изменение действующей сети

Просмотр конфигурации сети в XML-формате

Остановка сети(при этом освобождаются все ресурсы используемые этой сетью – соотвествующий dnsmasq-процесс, освобождение моста)

Удаление сети (предварительно сеть нужно остановить указанной выше командой)

Получение информации о сети

Иногда необходимо применить настройки на лету(без перезапуска сети)(например,добавить соответствие mac-адреса виртуалки и выдаваемого ей по DHCP IP-адреса)
Поэтому вариант с virsh-edit не подходит т.к. требует перезапуск сети для применения настроек с помощью указанных ниже комад

Но во время такого перезапуска все гостевые виртуалки потеряют соединение с хостом(нодой), поэтому правильнее будет использовать команду

Более подробно здесь
https://wiki.libvirt.org/page/Networking

 

Файл создания виртуальной сети типа NAT
В настройках DHCP можно указывать соответствие MAC-адрес виртуалки и выдаваемого ей IP-адреса

 

Файл создания виртуальной сети типа Internal

 

Файл создания виртуальной сети типа Router
Где ens33-физческий интерфейс ноды, который подключен в вирт.бридж virbr4

 

Файлы конфигурации сети для гипервизора KVM находятся в

Если сеть добавлена в автозагрузку,то символьная ссылка на XML-файл сети создается в

При запуске виртуалки в зависимости от типа сетевого подключения, который она использует, будут создаваться сетевые интерфейсы vnet под соответствующим бриджом (virbr1,virbr2,virbr4)
Например,

Концепция вирутальных сетей в libvirt
https://wiki.libvirt.org/page/VirtualNetworking

 

Работа с виртуальными машинами
Создание новой вирт.машины из существующей

Сохранение конфигурации текущей виртуалки в файл

Правка конфигурационного файла новой вирт.машины

Изменяем поля, значения которых должны быть уникальны для каждой виртуалки
1)Имя виртуалки

2)UUID-универсальный идентификатор

Идентификаторы удобно генерировать с помощью команды uuid

3) MAC-адрес

4) Файл, который будет использоваться в качестве диска

Создание вирт.машины из файла .xml

Или с помощью одной команды(которая выполняет то же самое(создает и запускает виртуалку), что и две указанные выше)

Альтернативным вариантом копирования виртуалки может быть использование команды virt-clone
Например, скопируем виртуалку vm4 в виртуалку vm5
Перед запуском копирования/клонирования виртуалки ее необходимо остановить
При таком клонировании система автоматически заменит все уникальные части конфигурации виртуалки со стороны хоста( т.е. имя виртуалки(name), уникальный идентификатор(uuid), mac-адрес и т.д.), а также скопирует диск
При этом содержимое виртуалки, включая статические IP-адреса, пароли останутся прежними

 

Получение доступа к виртуальной машине

1.Доступ пo VNC

Для доступа по VNC к виртуальной машине используем используем секцию graphics в секции devices

Вместо прослушивания всех интерфейсов можно определить только один, например, 127.0.0.1 или внешний/внутренний IP-адрес ноды, на который есть доступ
По умолчанию VNC включен на 127.0.0.1:59000(можно изменить глобально эту настройку, в файле /etc/libvirt/qemu.conf)
Поэтому доступ к виртуалке через VNC можно через ssh туннель путем пробрасывания порта на свой компьютер
Например:

Теперь в настройках VNC-клиента используем
127.0.0.1:5900

Можно принудительно указывать номер порта

Глобально пароль для доступа по VNC можно установить в файле /etc/libvirt/qemu.conf

 

2.Доступ через консоль (с ноды)

Для доступа к виртуалке с ноды через virsh console в XML-конфигурационном файле вирт.машины используем секции serial и console в секции devices

 

Настройка сети в файле конфигурации виртуальной машины
Для подключения вирт.машины к определенной сети

Для подключениия к сети типа NAT

Для подключения к сети Internal(Host Only)

Для подключения к сети route
Где virbr4 – bridge-интерфейс, к которому подключен физический интерфейс ноды

MAC-адреса можно не указывать, тогда они будут автоматически сгенерированы
Есть смысл указывать MAC-адреса, когда в настройках сети есть привязка MAC-адреса к IP-адресу
Чтобы виртуалка постоянно получала по DHCP один и тот же IP-адрес

Приостановка виртуальной машины
В приостановленном состоянии виртуальная машина потребляет оперативную память и не использует процессорное время, диск и сетевые подсистемы

Возобновление работы приостановленной ранее виртуалки

Сохранение виртуальной машины
При этом виртуалка будет остановлена и данные оперативной памяти будут сохранены в файл

Восстановление виртуальной машины

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

Определение идентификатора домена виртуальной машины

Определение имени домена виртуальной машины

Определение универсального идентификатора UUID виртуальной машины

Получение информации о виртуальной машине

Получение инфорамции об узле

Просмотр списка виртуальных машин и их состояния

Можно добавить аргументы:

покажет список неактивных доменов (неактивным считается тот домен, который был определен, но в настоящий момент не является активным).

покажет все виртуальные машины независимо от их состояния

Столбец «Status» может содержать следующие значения:

Настройка соответствия виртуальных процессоров физическим

Где vcpu — номер виртуального процессора, а список_cpu — сопоставляемые ему физические процессоры.

Изменение числа процессоров для домена

Обратите внимание, что заданное число не может превышать значение, определенное при создании гостевой виртуальной машины

Изменение выделенного виртуальной машине объема памяти

Объем памяти, определяемый заданным числом, должен быть указан в килобайтах. Обратите внимание, что объем не может превышать значение, определенное при создании виртуальной машины, но в то же время не должен быть меньше 64 мегабайт. Изменение максимального объема памяти может оказать влияние на функциональность гостя только в том случае, если указанный размер меньше исходного. В таком случае использование памяти будет ограничено.

Информация о сетевых интерфейсах работающей виртуальной машины

Например,запущена виртуалка vm4 c двумя интерфейсами

Информация о блочных устройствах работающей виртуальной машины

Добавление дополнительного диска в виртуальну машину

1)Создание файла, который будет использоваться в качестве дополнительного диска в вирт.машине

До присоединения в виртуалке был только один диск

2) Присоединение созданного файла в качестве дополнительного диска к виртуальной машине

В результате выполнения этой каманды в конфиг.файл виртуалки будет добавлен блок

После запуска в виртуалке появляется новый диск /dev/vdb, на котором можно создавать разделы, форматировать и монтировать.

Получение доступа к файлам/каталогам внутри образа диска вирт.машины

(виртуалка при этом должна быть выключена, можно монтировать диск и при запущенной виртуалки, но не рекомендуется)

Удаление виртуалки(предварительно виртуалка должны быть остановлена)

Указанная выше команда не удаляет тома,

Удаление томов выполняем либо через

Либо с помощью команды virsh vol-delete

 

Подключение CDROM
Через файл описания устройства

 

Работа со Snapshot-ами

Создание снепшота виртуалки vm3

Просмотр списка снепшотов виртуалки vm3

Создание второго снепшота виртуалки vm3

Восстановление виртуалки со второго снепшота

Удаление второго снепшота виртуалки vm3

Свойства гипервизора

 

Работа с пулами
Просмотр доступных пулов

Получение информации о пуле

Список томов в пуле

Справка ко командам virsh

 

Источник:
https://docs-old.fedoraproject.org/ru-RU/Fedora/12/html/Virtualization_Guide/chap-Virtualization_Guide-Managing_guests_with_virsh.html
https://ru.wikibooks.org/wiki/%D0%A3%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B2%D0%B8%D1%80%D1%82%D1%83%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B5%D0%B9_%D0%BD%D0%B0_%D0%BE%D1%81%D0%BD%D0%BE%D0%B2%D0%B5_libvirt
https://libvirt.org/sources/virshcmdref/html-single
http://itman.in/virsh-commands/#more-1168
http://lipix.ciutadella.es/wp-content/uploads/2016/09/kvm_cheatsheet.pdf

 

Комментирование и размещение ссылок запрещено.

Комментарии закрыты.

Яндекс.Метрика