Лабораторная работа 5. Основы виртуализации в Linux. Libvirt.
Цель
Научиться работать с Libvirt и Virsh
Задачи
- Установить Libvirt.
- Настроить сетевой мост.
- Создать виртуальную машину.
- Провести базовые операции с виртуальной машиной.
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
:
BOOTPROTO=none
ONBOOT=yes
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
Символ \ - обратная косая черта используется для экранирования специальных
символов в строковых и символьных литералах. В данном случае нужна, чтобы
переместить каретку на новую строку, для наглядности. После ее добавления в команду
можно нажать Enter, но строка не отправится на выполнение, а ввод команды
продолжится.
При ошибке в наборе команды, можно не набирать ее заново, а нажать стрелку вверх,
исправить ее, и снова нажать Enter
Подробнее о параметрах:
Название парметра | Описание параметра |
---|---|
name | Имя виртуальной машины, которое будет отображаться в virsh |
ram | Размер оперативной памяти в МБ |
disk | Диск, который будет создан и подключен к виртуальной машине |
vcpus | Количество виртуальных процессоров, которые нужно будет настроить для гостя |
os-type | Тип операционной системы |
os-variant | Название операционной системы |
network | Определение сетевого интерфейса, который будет подключен к виртуальной машине |
graphics | Определяет графическую конфигурацию дисплея. |
cdrom | CD ROM устройство |
Далее необходимо подключиться из виртуальной машине lab_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