Перейти к основному контенту

Лабораторная работа 5. Основы виртуализации в Linux. Libvirt.

Цель
Научиться работать с Libvirt и Virsh

Задачи

  1. Установить Libvirt.
  2. Настроить сетевой мост.
  3. Создать виртуальную машину.
  4. Провести базовые операции с виртуальной машиной.

Note: Авторизация на всех узлах
Логин:
labuser
Пароль: labpass1!

Схема виртуального лабораторного стенда

Задание 1. Установка Libvirt и Virsh.

Необходимо установить несколько пакетов для виртуализации, которые не входят в базовую комплектацию системы. В проекте [GROUP]:[team]-lab:4-7, на labnode-1 нужно выполнить следующую команду:

sudo yum install -y libvirt virt-install

Задание 2. Настройка моста.

Установить пакет bridge-utils:

sudo yum install -y bridge-utils

Вывести на экран имеющиеся интерфейсы:

ip -c address

Открыть файл /etc/sysconfig/network-scripts/ifcfg-br0:

sudo vi /etc/sysconfig/network-scripts/ifcfg-br0

И добавить в него следующее содержимое:

TYPE=Bridge
DEVICE=br0
BOOTPROTO=static
ONBOOT=yes
IPADDR=10.0.12.21
PREFIX=24
GATEWAY=10.0.12.1

А в файл /etc/sysconfig/network-scripts/ifcfg-eth0 добавить параметр BRIDGE, убрать BOOTPROTO и ONBOOT,GATEWAY,IPADDR,NETMASK:

DEVICE=eth0
BRIDGE=br0
USERCTL=no

Перезагрузить сервер:

sudo reboot

Задание 3. Создание виртуальной машины.

Переместить образ cirros в /var/lib/libvirt/images/

sudo mv /tmp/cirros.img /var/lib/libvirt/images/

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

sudo virt-install --name cirros \
--ram 1024 \
--disk path=/var/lib/libvirt/images/cirros.img,cache=none \
--boot hd \
--vcpus 1 \
--network bridge:br0 \
--graphics spice,listen=0.0.0.0 \
--wait 0

Символ \ - обратная косая черта используется для экранирования специальных символов в строковых и символьных литералах. В данном случае нужна, чтобы переместить каретку на новую строку, для наглядности. После ее добавления в команду можно нажать Enter, но строка не отправится на выполнение, а ввод команды продолжится. При ошибке в наборе команды, можно не набирать ее заново, а нажать стрелку вверх, исправить ее, и снова нажать Enter Подробнее о параметрах:

Название парметра Описание параметра
name Имя виртуальной машины, которое будет отображаться в virsh
ram Размер оперативной памяти в МБ
disk Диск, который будет создан и подключен к виртуальной машине
vcpus Количество виртуальных процессоров, которые нужно будет настроить для гостя
os-type Тип операционной системы
os-variant Название операционной системы
network Определение сетевого интерфейса, который будет подключен к виртуальной машине
graphics Определяет графическую конфигурацию дисплея.
cdrom CD ROM устройство

Далее необходимо подключиться из виртуальной машине virt_viewer (Пользователь - labuser, пароль - labpass1!) к виртуальной машине через программу Remmina.

Открыть её (название - Remmina). Подключиться по адресу 10.0.12.21:5900, выбрав протокол SPICE Вернуться в консоль labnode-1. Проверить состояние гостевой системы, используя команду (Если в консоли написано “Domain installation still in progress”, то нажмите ^C):

sudo virsh list --all

Задание 4. Операции с виртуальной машиной.

Рассмотрим работу утилиты virsh. Чтобы подключиться к ВМ по протоколу удаленного доступа, используется следующая команда:

sudo virsh domdisplay cirros

Результатом исполнения этой команды будет адрес для подключения к графическому интерфейсу ВМ, с указанием номера порта. Получить информацию о конкретной ВМ можно так:

sudo virsh dominfo cirros

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

sudo virsh destroy cirros
sudo virsh start cirros

Добавление ВМ в автозапуск происходит следующим образом:

sudo virsh autostart cirros

Теперь, виртуальная машина будет автоматически запускаться, после перезагрузки сервера. Кроме того, может потребоваться отредактировать XML конфигурацию ВМ:

sudo virsh edit cirros

* Чтобы выйти из редактора без сохранения - :q!

Необходимо выгрузить конфигурацию ВМ в XML в файл, используя команду:

sudo virsh dumpxml cirros | tee cirros.xml

Необходимо удалить ВМ, и убедиться, что её нет в списке виртуальных машин:

sudo virsh undefine cirros
sudo virsh destroy cirros
sudo virsh list --all

Для создания ВМ из XML существует следующая команда:

sudo virsh define cirros.xml
sudo virsh list --all