Практика VM
Задание 0. Построение стенда
Схема виртуального лабораторного стенда
Рисунок 1. Схема стенда
- Создать виртуальные машины для работы
Название виртуальной машины | Источник | Тип инстанса | Сети для внешнего подключения | Размер диска |
---|---|---|---|---|
labnode-1 | Образ-Ubuntu-server20.04 | small | external-net | 10GB |
Так же нужно проверить развернутую инфраструктуру на соответствие схеме на рисунке 1.
Задание 1. Установка QEMU.
На labnode-1:
- Установить эмулятор аппаратного обеспечения различных платформ:
sudo apt update
sudo apt install qemu-kvm qemu-system qemu-utils -y
- Убедиться, что модуль KVM загружен (с помощью команд lsmod и grep):
lsmod | grep -i kvm
Задание 2. Управление образами дисков при помощи qemu-img.
Чтобы запускать виртуальные машины, QEMU требуются образы для хранения определенной файловой системы данной гостевой ОС. Такой образ сам по себе имеет тип некоторого файла, и он представляет всю гостевую файловую систему, расположенную в некотором виртуальном диске. QEMU поддерживает различные образы и предоставляет инструменты для создания и управления ими. Можно построить пустой образ диска с помощью утилиты qemu-img, которая должна быть установлена.
- Проверить какие типы образов поддерживаются qemu-img:
sudo qemu-img -h | grep Supported
- Создать образ qcow2 с названием system.qcow2 и размером 5 ГБ:
sudo qemu-img create -f qcow2 system.qcow2 5G
- Проверить что файл был создан:
ls -lah system.qcow2
- Посмотреть дополнительную информацию о данном образе:
sudo qemu-img info system.qcow2
Задание 3. Изменение размера образа.
Не все типы образов поддерживают изменение размера. Для изменения размера такого образа сначала нужно преобразовать его в образ raw с помощью команды qemu-img convert.
- Конвертировать образ диска из формата qcow2 в raw:
sudo qemu-img convert -f qcow2 -O raw system.qcow2 system.raw
- Добавить дополнительно 5 ГБ к образу:
sudo qemu-img resize -f raw system.raw +5G
- Проверить новый текущий размер образа:
sudo qemu-img info system.raw
- Конвертировать образ диска обратно из raw в qcow2:
sudo qemu-img convert -f raw -O qcow2 system.raw system.qcow2
Задание 4. Загрузка образа Cirros.
Для загрузки образов с общедоступных репозиториев требуется утилита curl. Загрузить необходимый образ, воспользовавшись curl:
curl -L http://download.cirros-cloud.net/0.6.2/cirros-0.6.2-x86_64-disk.img -o /tmp/cirros.img
Задание 5. Создание виртуального окружения с помощью qemu-system.
- Для того чтобы подключиться к виртуальной машине по протоколу удаленного рабочего стола Spice, нужно открыть порт 5900. В группе безопастности
- Посмотреть ip адрес вашего сервера
ip a
- Запустить систему при помощи qemu-system:
sudo qemu-system-x86_64-spice -hda /tmp/cirros.img -m 1024 -vga qxl -spice port=5900,disable-ticketing
-
Установите и откройте программу (Remmina). И подключитесь по протоколу
Spice
к гипервизору -
Залогиниться в Cirros. Дефолтные логин и пароль написаны в консоли (log - cirros/ pass- gocubsgo) ОС. Набрать команду uname -a. Посмотреть на версию ядра ОС. Выключить виртуальную машину, набрав
sudo poweroff
Задание 6. Установка Libvirt и Virsh.
sudo yum install -y libvirt-daemon-system virtinst
Задание 7. Настройка моста.
Установить пакет bridge-utils:
sudo apt install -y bridge-utils
Вывести на экран имеющиеся интерфейсы:
ip -c address
Открыть файл /etc/netplan/50-cloud-init.yaml:
sudo vi /etc/netplan/50-cloud-init.yaml
И привести его к виду(заменить на свой параметр addresses
):
network:
version: 2
ethernets:
eth0:
dhcp4: false
dhcp6: false
bridges:
br0:
interfaces: [eth0]
dhcp4: false
mtu: 1500
addresses:
- <IP адрес VM>/19
routes:
- to: 0.0.0.0/0
via: 172.17.32.1
metric: 100
nameservers:
addresses: [172.17.1.10]
parameters:
stp: false
dhcp6: false
Применить конфигурацию:
sudo netplan apply
Задание 8. Создание виртуальной машины.
Переместить образ 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 \
--os-variant cirros0.4.0 \
--wait 0
Символ \ - обратная косая черта используется для экранирования специальных символов в строковых и символьных литералах. В данном случае нужна, чтобы переместить каретку на новую строку, для наглядности. После ее добавления в команду можно нажать Enter, но строка не отправится на выполнение, а ввод команды продолжится. При ошибке в наборе команды, можно не набирать ее заново, а нажать стрелку вверх, исправить ее, и снова нажать Enter
Подробнее о параметрах:
Название параметра | Описание параметра |
---|---|
name | Имя виртуальной машины, которое будет отображаться в virsh |
ram | Размер оперативной памяти в МБ |
disk | Диск, который будет создан и подключен к виртуальной машине |
vcpus | Количество виртуальных процессоров, которые нужно будет настроить для гостя |
os-type | Тип операционной системы |
os-variant | Название операционной системы |
network | Определение сетевого интерфейса, который будет подключен к виртуальной машине |
graphics | Определяет графическую конфигурацию дисплея. |
cdrom | CD ROM устройство |
Далее необходимо подключиться к гипервизору через программу Remmina.
Открыть её (название - Remmina). Подключиться по адресу виртуальной машины, выбрав протокол SPICE.Вернуться в консоль labnode-1. Проверить состояние гостевой системы, используя команду
(Если в консоли написано “Domain installation still in progress”, то нажмите ^C
):
sudo virsh list --all
Задание 9. Операции с виртуальной машиной.
Рассмотрим работу утилиты 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
Необходимо выгрузить конфигурацию ВМ в 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