5.1 Практика VM
Задание 0. Построение стенда
Схема виртуального лабораторного стенда
Рисунок 1. Схема стенда
1. Создать 2 виртуальные сети:
- labnet-1
- labnet-2
Название сети/подсети | Сетевой адрес | mtu |
---|---|---|
labnet-1 | 100.64.11.0/24 | 1481 |
labnet-2 | 169.254.12.0/24 | 1481 |
При создании подсети необходимо выбрать пункт "Запретить шлюз"
2. Создать виртуальные машины для работы
Название виртуальной машины | Источник | Тип инстанса | Сети для внешнего подключения | Размер диска | Размер доп диска |
---|---|---|---|---|---|
Образ-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. Загрузка образа OpenWRT.
Для загрузки образов с общедоступных репозиториев требуется утилита curl. Загрузить
необходимый образ, воспользовавшись curl:
curl -L https://s3.resds.ru/itt/openwrt.img -o /tmp/openwrt.raw
Задание 5. Создание виртуального окружения с помощью qemu-system.
Для того чтобы подключиться к виртуальной машине по протоколу удаленного рабочего столаVNC, нужно открыть порт5900. В группе безопасностиПосмотреть ip адрес вашего сервера
ip address
Запустить систему при помощи qemu-system:
sudo qemu-system-x86_64 -hda /tmp/openwrt.raw -m 1024 -vga cirrus -vnc 0.0.0.0:0
Установите и откройте программу (Remmina). И подключитесь по протоколуVNCк гипервизоруНабрать командуuname -a. Посмотреть на версию ядра ОС. Выключить виртуальную машину, набрав
poweroff
Задание 6. Установка Libvirt и Virsh.
sudo apt install -y libvirt-daemon-system virtinst
Задание 7. Настройка моста.
Установить пакет bridge-utils:
sudo apt install -y bridge-utils
Вывести на экран имеющиеся интерфейсы:
ip -c address
Открыть файл /tmp/labnet.xml:
sudo vi /tmp/labnet.xml
И заполнить по примеру
<network>
<name>labnet</name>
<forward mode='nat'>
<nat>
<port start='1024' end='65535'/>
</nat>
</forward>
<bridge name='labnet' stp='on' delay='0'/>
<ip address='192.168.22.1' netmask='255.255.255.0'>
<dhcp>
<range start='192.168.22.2' end='192.168.22.254'/>
</dhcp>
</ip>
</network>
Добавляем сеть и запускаем ее:
sudo virsh net-define /tmp/labnet.xml
sudo virsh net-start labnet
sudo virsh net-autostart labnet
Задание 8. Создание виртуальной машины.
Переместить образ openwrt в /var/lib/libvirt/images/
sudo mv /tmp/openwrt.raw /var/lib/libvirt/images/
Следующая команда создаст новую KVM виртуальную машину
sudo virt-install --name openwrt \
--ram 1024 \
--disk path=/var/lib/libvirt/images/openwrt.raw,cache=none \
--boot hd \
--vcpus 1 \
--network labnet \
--graphics vnc,listen=0.0.0.0 \
--wait 0
Символ \ - обратная косая черта используется для экранирования специальных символов в строковых и символьных литералах. В данном случае нужна, чтобы переместить каретку на новую строку, для наглядности. После ее добавления в команду можно нажать Enter, но строка не отправится на выполнение, а ввод команды продолжится. При ошибке в наборе команды, можно не набирать ее заново, а нажать стрелку вверх, исправить ее, и снова нажать Enter
Подробнее о параметрах:
small | external-net | 10GB | - | ||
О | |||||
10GB | - |
Далее необходимо подключиться к гипервизору чПерез программу Remmina.
Открыть её (название - Remmina). Подключиться по адресу виртуальной машины, выбрав протокол VNC.Вернуться в консоль labnode-1. Проверить состояние гостевой системы, используя команду
(Если в консоли написано “Domain installation still in progress”, то нажмите ^C):
sudo virsh list --all
Задание 9. Операции с виртуальной машиной.
Рассмотрим работу утилиты virsh. Чтобы подключиться к ВМ по протоколу удаленного доступа, используется следующая команда:
sudo virsh domdisplay openwrt
Результатом исполнения этой команды будет адрес для подключения к графическому интерфейсу ВМ, с указанием номера порта.
Получить информацию о конкретной ВМ можно так:
sudo virsh dominfo openwrt
В результате чего будет выведена информация, об основных параметрах виртуальной машины.
Выключить/включить ВМ можно с помощью команды:
sudo virsh destroy openwrt
sudo virsh start openwrt
Зайти в консоль виртуальной машины можно с помощью команды:
sudo virsh console openwrt
Посмотрите размер разделов
df -h
Выйдите из виртуальной машины
Добавление ВМ в автозапуск происходит следующим образом:
sudo virsh autostart openwrt
Теперь, виртуальная машина будет автоматически запускаться, после перезагрузки сервера.
Кроме того, может потребоваться отредактировать XML конфигурацию ВМ:
sudo virsh edit openwrt
Необходимо выгрузить конфигурацию ВМ в XML в файл, используя команду:
sudo virsh dumpxml openwrt | tee openwrt.xml
Необходимо удалить ВМ, и убедиться, что её нет в списке виртуальных машин:
sudo virsh undefine openwrt
sudo virsh destroy openwrt
sudo virsh list --all
Увеличиваем размер диска на 1GB
sudo qemu-img resize -f raw /var/lib/libvirt/images/openwrt.raw +1G
Для создания ВМ из XML существует следующая команда:
sudo virsh define openwrt.xml
sudo virsh list --all
После запуска виртуальной машины необходимо продувеличимать схему ip адресации для взаимодействия мержду узлами:
- Для взаимо
сновного раздействия между узламисLabnode-1помощьюиfdisk:fdisk /dev/sdaПосле этогоLabnode-2 необходимо выбрать адреса из сети 100.64.11.0/24 - Для взаимодействия между узлами Labnode-2 и Labnode-3 необходимо выбрать адреса из сети 169.254.12.0/24
Задание 1. Настройка маршрутизации
В данном задании на развеличрнутом стенде нужно настроить маршрутизазцию мержду фузлайми сети.
Для самовстоятельной работы нужно выполнить систлемыдующее:
BOOT="$(sed
-n -e "/\s\/boot\s.*$/{s///p;q}" /etc/mtab)"
DISK="${BOOT%%[0-9]*}"
PART="$((${BOOT##*[^0-9]}+1))"
ROOT="${DISK}${PART}"
LOOP="$(losetup -f)"
losetup ${LOOP} ${ROOT}
fsck.ext4 -y -f ${LOOP}
resize2fs ${LOOP}
reboot
Задание 2. Настройка NFS
Для самостоятельной работы нужно выполнить следующее:
- Установить NFS сервер на Labnode-1
- Создать каталог для экспорта на дополнительном диске
- Настроить доступ к директории
Задание 3. Настройка доступа к хранилищу
- На узлах создать директории для монтирования
- Смонтировать в директории NFS хранилище
Взаимодействие через
labnet-1
,labnet-2
- Создать в директории текстовый файл с названием проекта
- Добавить в авто монтирование хранилище на узлах
Задание 4. Создать VM
- Скачайте образ OpenWRT
- Разме
рстите образ системы в общей дирелктории - Создать VM
- Проверить
VMdfвозможность-hмиграции