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

5.1 Практика VM

Задание 0. Построение стенда

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

Рисунок 1. Схема стенда

1. Создать 2 виртуальные сети:
  1. labnet-1
  2. labnet-2
Название сети/подсетиСетевой адресmtu
labnet-1100.64.11.0/241481
labnet-2169.254.12.0/241481

При создании подсети необходимо выбрать пункт "Запретить шлюз"

2. Создать виртуальные машины для работы
Название виртуальной машины Источник Тип инстанса Сети для внешнего подключения Размер диска Размер доп диска
labnode-Labnode-1 Образ-Ubuntu-server20.04 small external-net 10GB

Так же нужно проверить развернутую инфраструктуру на соответствие схеме на рисунке 1.

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

На labnode-1:

  1. Установить эмулятор аппаратного обеспечения различных платформ:
sudo apt update
sudo apt install qemu-kvm qemu-system qemu-utils -y
  1. Убедиться, что модуль KVM загружен (с помощью команд lsmod и grep):
lsmod | grep -i kvm

Задание 2. Управление образами дисков при помощи qemu-img.

Чтобы запускать виртуальные машины, QEMU требуются образы для хранения определенной файловой системы данной гостевой ОС. Такой образ сам по себе имеет тип некоторого файла, и он представляет всю гостевую файловую систему, расположенную в некотором виртуальном диске. QEMU поддерживает различные образы и предоставляет инструменты для создания и управления ими. Можно построить пустой образ диска с помощью утилиты qemu-img, которая должна быть установлена.

  1. Проверить какие типы образов поддерживаются qemu-img:
sudo qemu-img -h | grep Supported
  1. Создать образ qcow2 с названием system.qcow2 и размером 5 ГБ:
sudo qemu-img create -f qcow2 system.qcow2 5G
  1. Проверить что файл был создан:
ls -lah system.qcow2
  1. Посмотреть дополнительную информацию о данном образе:
sudo qemu-img info system.qcow2

Задание 3. Изменение размера образа.

Не все типы образов поддерживают изменение размера. Для изменения размера такого образа сначала нужно преобразовать его в образ raw с помощью команды qemu-img convert.

  1. Конвертировать образ диска из формата qcow2 в raw:
sudo qemu-img convert -f qcow2 -O raw system.qcow2 system.raw
  1. Добавить дополнительно 5 ГБ к образу:
sudo qemu-img resize -f raw system.raw +5G
  1. Проверить новый текущий размер образа:
sudo qemu-img info system.raw
  1. Конвертировать образ диска обратно из 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.

  1. Для того чтобы подключиться к виртуальной машине по протоколу удаленного рабочего стола VNC, нужно открыть порт 5900. В группе безопасности
  2. Посмотреть ip адрес вашего сервера
ip address
  1. Запустить систему при помощи qemu-system:
sudo qemu-system-x86_64 -hda /tmp/openwrt.raw -m 1024 -vga cirrus -vnc 0.0.0.0:0
  1. Установите и откройте программу (Remmina). И подключитесь по протоколу VNC к гипервизору

  2. Набрать команду 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 Подробнее о параметрах:

оперативнойпамятивМБ ROMустройство
Название параметраОписание параметра
nameИмя виртуальной машины, которое будет отображаться в virsh2gb
ramLabnode-2 РОбразмер-Ubuntu-server20.04 small external-net 10GB -
diskДиск, который будет создан и подключен к виртуальной машине
vcpusКоличество виртуальных процессоров, которые нужно будет настроить для гостя
os-typeТип операционной системы
os-variantНазвание операционной системы
networkLabnode-3 Опбределение сетевого интерфейса, который будет подключен к виртуальной машине
graphicsз-Ubuntu-server20.04 Определяет графическую конфигурацию дисплея.
cdromsmall CDexternal-net 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 адресации для взаимодействия мержду узлами:

  1. Для взаимосновного раздействия между узлами сLabnode-1 помощьюи fdisk:

    fdisk /dev/sda
    

    После этогоLabnode-2 необходимо выбрать адреса из сети 100.64.11.0/24

  2. Для взаимодействия между узлами 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

  • Проверить доступность узла labnode-1 с узла labnode-3
  • Проверить доступность узла labnode-3 с узла labnode-1
  • Зафиксировать результат проверки
  • Задание 2. Настройка NFS

    Для самостоятельной работы нужно выполнить следующее:

    1. Установить NFS сервер на Labnode-1
    2. Создать каталог для экспорта на дополнительном диске
    3. Настроить доступ к директории
    Задание 3. Настройка доступа к хранилищу
    1. На узлах создать директории для монтирования
    2. Смонтировать в директории NFS хранилище

      Взаимодействие через labnet-1,labnet-2

    3. Создать в директории текстовый файл с названием проекта
    4. Добавить в авто монтирование хранилище на узлах
    Задание 4. Создать VM
    1. Скачайте образ OpenWRT
    2. Размерстите образ системы в общей дирелктории
    3. Создать VM
    4. Пров

      ерить
      dfвозможность -hмиграции 
      VM