Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.

Оглавление
maxLevel24

Требования к системе виртуализации

Для установки и функционирования vESBC установленная vESBC установленная версия QEMU должна быть не ниже 2.6.2.

Использование командной строки QEMU

Полный список команд QEMU предоставляется в официальной документации.

Создание виртуальной машины
Якорь
create_vm_qemu
create_vm_qemu

В примере описан процесс создания файла образа диска в формате QCow2 и подключения его в хостовой операционной системе.

...

title
Блок кода
qemu-img create -f qcow2 -o size=<размер_диска>M <наименование_диска>.qcow2
Информация

Пример:


admin@host:~$ Formatting 'vesbc.qcow2', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=393216000 lazy_refcounts=off refcount_bits=16
Блок кода
admin@host:~$ qemu-img create -f qcow2 -o size=
500M
2000M vesbc.qcow2

Пример вывода после выполнения команды:

Блок кода

Установка vESBC

Для запуска установки vESBC необходимо выполнить команду:

Блок кода
sudo qemu-system-x86_64 --enable-kvm -cpu <CPU> -smp <количество_CPU> -m <размер_RAM>G -nic tap,ifname=gi1 <тип и параметры сетевой карты> <наименование_диска>.qcow2 -boot d -cdrom <имя_ISO-образа>

где:

--enable-kvm — включение полной поддержки виртуализации KVM;

-cpu — выбор доступного CPUмодель процессора, например, параметр -cpu host передает виртуальной машине все возможности, флаги и инструкции (например, AES-NI, AVX, VT-x) вашего реального физического процессора;

-smp — включение имитации SMP-системы с n CPU;

...

-cdrom — выбор файла ISO-образа.

...

...


Пример запуска установки vESBC :

Блок кода
admin@host:~$ sudo qemu-system-x86_64 --enable-kvm -cpu host -smp 4 -m 4G -nic 
tap,ifname=gi1
bridge,br=0,model=virtio-net-pci vesbc.qcow2 -boot d -cdrom vesbc-installer.iso

Дальнейшие действия по установке vESBC описаны vESBC описаны в разделе Процесс установки vESBC.

После установки необходимо извлечь ISO из виртуального привода, для этого:

  1. Перейдите в консоль QEMU сочетанием клавиш CTRL+ALT+2.
  2. Введите команду выхода quit.

Последующий запуск vESBC необходимо vESBC необходимо производить без указания ISO .

...

(флага -boot).

Пример запуска vESBC :

Блок кода
admin@host:~$  sudo qemu-system-x86_64 --enable-kvm -cpu host -smp 4 -m 4G -nic 
tap,ifname=gi1
bridge,br=0,model=virtio-net-pci vesbc.qcow2

...

Подключение сетевых интерфейсов

В режиме TAP

Для подключения сетевого интерфейса необходимо запустить vESBC на vESBC на QEMU с указанием настроек сетевой карты карты -nic tap,ifname=gi1 (если необходимо подключить несколько сетевых интерфейсов, то необходимо их всех указать, например, -nic tap,ifname=gi1 -nic tap,ifname=gi2). На хостовом устройстве необходимо перевести созданный интерфейс в состояние UP и назначить IP-адрес .

...

titleПример

для обеспечения IP-связности vESBC и хостовой операционной системы.

 Пример запуска

...

vESBC с одним сетевым интерфейсом:

Блок кода
sadmin@host:~$ sudo qemu-system-x86_64 --enable-kvm -cpu host -smp 4 -m 4G -nic tap,ifname=gi1 vesbc.qcow2

Перевод созданного интерфейса в состояние UP и назначение IP-адреса на хосте:

Блок кода
admin@host:~$ ip link set gi1 up
admin@host:~$ ip add add 192.168.1.1/24 dev gi1
На vESBC настройте

Настройте IP-адресацию на vESBC и проверьте IP-связность

...

c хостом:

Блок кода
vesbc# config
vesbc(config)# interface gigabitethernet 1/0/1
vesbc(config-if-gi)# ip address 192.168.1.2/24
vesbc(config-if-gi)# exit
vesbc(config)# exit
Warning: you have uncommitted configuration changes.
vesbc# commit 
Configuration has been successfully applied and saved to flash. Commit timer started, changes will be reverted in 600 seconds.
vesbc# confirm
Configuration has been confirmed. Commit timer canceled.
vesbc# ping 192.168.1.1
PING 192.168.1.1 (192.168.1.1) 56 bytes of data.
!!!
--- 192.168.1.1 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2003ms
rtt min/avg/max/mdev = 0.150/0.223/0.313/0.069 ms

Теперь есть прямая IP-связность с хостом, возможность подключения к vESBC по Telnet

...

, SSH, WEB, а также обновления прошивки vESBC, загрузки и выгрузки файлов.

Scroll Pagebreak

В режиме Linux Bridge
Якорь
linux_bridge
linux_bridge

Linux Bridge — это программный сетевой модуль ядра Linux, работающий как виртуальный сетевой коммутатор (switch) на 2-м уровне модели OSI. Он объединяет физические (например, eth0) и виртуальные (veth, TAP) сетевые интерфейсы в один общий сегмент сети (L2-домен), позволяя им обмениваться данными напрямую по MAC-адресам.

При использовании Linux Bridge требуется предварительная конфигурация бриджей в хостовой операционной системе.

Пример конфигурации файла config.yaml при конфигурировании через netplan для ОС Ubuntu 20.04.6 TLS:

Блок кода
network:
  version: 2
  ethernets:
    eno1:                               // eno1 - физический интерфейс хоста, который будет использоваться для подключения виртуальной машины vESBC к сети передачи данных.
      dhcp4: no
      dhcp6: no
    eno2:
      dhcp4: no
      dhcp6: no
    enp24s0f0:
      dhcp4: no
    enp24s0f1:
      dhcp4: no
  bridges:
    br0:                                // br0 - создание бриджа br0.
      interfaces:
        - eno1                          // добавление интерфейса eno1 в бридж.
      addresses:
        - 192.168.113.140/20            // настройка IP-адреса хоста (если необходима IP-связность между хостом и виртуальными машинами).
      routes:
        - to: default                   // настройка шлюза по умолчанию.
          via: 192.168.112.1
      nameservers:                     
        addresses:
          - 8.8.8.8                     // настройка DNS-сервера. 
      parameters:
        stp: false
      dhcp4: no
    br1:
      interfaces: []
      parameters:
        stp: false
      dhcp4: no

Пример запуска виртуальной машины vESBC с сетевым интерфейсом на базе бриджа br0 и драйвером сетевого адаптера virtio:

Блок кода
admin@host:~$  sudo qemu-system-x86_64 --enable-kvm -cpu host -smp 4 -m 4G -nic bridge,br=br0,model=virtio-net-pci vesbc.qcow2

В режиме PCI Passthrough

PCI Passthrough (сквозной проброс PCI) — это технология виртуализации, которая позволяет «отдать» физическое устройство (видеокарту, сетевой адаптер, USB-контроллер) напрямую виртуальной машине.

В этом режиме гостевая ОС работает с устройством так, будто оно вставлено непосредственно в её материнскую плату, минуя уровень эмуляции гипервизора.

Прежде чем запускать QEMU, требуется «отвязать» карту от хоста и передать её драйверу vfio-pci:

  1. Включите IOMMU в BIOS/UEFI (параметры VT-d для Intel или AMD-Vi для AMD).
  2. Добавьте параметры ядра в загрузчик (например, в /etc/default/grub в строку GRUB_CMDLINE_LINUX_DEFAULT):
    • Для Intel: intel_iommu=on
    • Для AMD: amd_iommu=on
  3. Узнайте PCI-адрес карты:
    Блок кода
    admin@host:~$ lspci -nn | grep -i ethernet
    18:00.0 Ethernet controller [0200]: Intel Corporation Ethernet Controller X710 for 10GbE SFP+ [8086:1572] (rev 01)
    18:00.1 Ethernet controller [0200]: Intel Corporation Ethernet Controller X710 for 10GbE SFP+ [8086:1572] (rev 01)
    Если планируется, например, использование первого интерфейса сетевой кары, то адрес карты: 18:00.0 (ID устройства — [8086:1572]).
  4. Привяжите карту к vfio-pci:
    Блок кода
    admin@host:~$ modprobe vfio-pci
    admin@host:~$ echo "0000:18:00.0" | sudo tee /sys/bus/pci/devices/0000:18:00.0/driver/unbind
    admin@host:~$ echo "8086 1572" | sudo tee /sys/bus/pci/drivers/vfio-pci/new_id
    
  5. Запустите  виртуальную машину vESBC с проброшенным сетевым интерфейсом Intel X710 for 10GbE SFP+:
    Блок кода
    qemu-system-x86_64 --enable-kvm -cpu host -smp 4 -m 4G -device vfio-pci,host=18:00.0 vesbc.qcow2

Использование командной строки VIRSH

Virsh — это интерфейс командной строки для управления виртуальными машинами, сетями и хранилищами. Он работает через библиотеку libvirt и используется для управления гипервизором KVM.

Полный список команд Libvirt предоставляется в официальной документации.

Для отображения графической консоли vESBC рекомендуется установить virt-viewer:

Блок кода
sudo apt update
sudo apt install virt-viewer

Scroll Pagebreak

Создание виртуальной машины
Якорь
создание_виртуальной_машины
создание_виртуальной_машины

  1.  Создайте файл образа диска в формате QCow2 аналогично процедуре, описанной выше.
  2. Укажите требуемые параметры виртуальной машины и выполните установку:
    Блок кода
    sudo virt-install   --name <название ВМ>   --ram <размер_RAM>   --vcpus <количество CPU>   --disk <параметры диска>   --os-variant <тип ОС>   --network <сетевой адаптер>  --graphics <графический вывод> --video <драйвер>   --console <параметры консоли>   --cdrom <образ ISO vESBC>

    где:

    --name  — название виртуальной машины;

    --ram — объем оперативной памяти;

    --vcpus — количество ядер CPU;

    -- disk — путь до файла диска, созданного в п. 1 Обязательно использовать bus=ide.

    --osvariant — тип ОС, использовать generic;

    --network — указание сетевого адаптера;

    --graphics — настройки графического вывода виртуальной машины;

    --video — драйвер видеоадаптера;

    --console — настройка последовательного порта;

     --cdrom — путь кISO-образу vESBC.

    Дальнейшие действия по установке vESBC описаны в разделе Процесс установки vESBC.

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

Блок кода
udo virt-install   --name vesbc   --ram 4096   --vcpus 2   --disk path=/var/lib/libvirt/images/vesbc.qcow2,size=2,format=qcow2,bus=ide   --os-variant generic   --network bridge:br0,model=virtio  --graphics spice,listen=127.0.0.1 --video virtio   --console pty,target_type=serial   --cdrom /var/lib/libvirt/images/vesbc-1.41.x-build89.iso   --check disk_size=off

Дальнейший запуск, остановка и выполнение настроек виртуальной машины осуществляется через командный интерфейс virsh.

Подключение сетевых интерфейсов

В режиме Linux Bridge

Подключение сетевых интерфейсов осуществляется флагом –network при создании виртуальной машины, как описано в разделе выше.

При использовании Linux Bridge требуется предварительная конфигурация бриджей в хостовой операционной системе. Пример настройки приведен выше.

Для подключения созданного интерфейса к виртуальной машине используется флаг при ее создании:

Блок кода
--network bridge:br0,model=virtio

где:

br0 — название бриджа в хостовой ОС;

model=virtio — драйвер эмуляции virtio.

Информация

Помимо virtio можно использовать драйвер e1000  rtl8138. Драйвер virtio является более предпочтительным.

В режиме PCI Passthrough

PCI Passthrough (сквозной проброс PCI) — это технология виртуализации, которая позволяет «отдать» физическое устройство (видеокарту, сетевой адаптер, USB-контроллер) напрямую виртуальной машине.

В этом режиме гостевая ОС работает с устройством так, будто оно вставлено непосредственно в её материнскую плату, минуя уровень эмуляции гипервизора.

Для передачи сетевого интерфейса в виртуальную машину:

  1. Узнайте PCI-адрес карты:
    Блок кода
    admin@host:~$ lspci -nn | grep -i ethernet
    18:00.0 Ethernet controller [0200]: Intel Corporation Ethernet Controller X710 for 10GbE SFP+ [8086:1572] (rev 01)
    18:00.1 Ethernet controller [0200]: Intel Corporation Ethernet Controller X710 for 10GbE SFP+ [8086:1572] (rev 01)
    Если планируется, например, использование первого интерфейса сетевой кары, то адрес карты: 18:00.0
  2. Для проброса интерфейса в виртуальную машину используйте флаг --hostdev при ее создании:
    Блок кода
    --hostdev 18:00.0
    где 18:00.0 — адрес сетевой карты. 
    Scroll Pagebreak

Использование приложения Менеджер виртуальных машин (Virtual Machine Manager)

Virtual Machine Manager — это приложение для управления виртуальными машинами в операционных системах Linux при помощи графического интерфейса (GUI).

Создание виртуальной машины и установка vESBC

 Шаг 1. Запустите "Менеджер виртуальных машин". Для создания виртуальной машины нажмите кнопку "Создать виртуальную машину" в главном меню:

Image Added

Шаг 2. В окне "Новая виртуальная машина" оставьте метод установки — "Локальный ISO или CDROM" и нажмите кнопку "Forward":

Image Added

Scroll Pagebreak

Шаг 3. Нажмите кнопку "Обзор":

Image Added

 В открывшемся окне выберите образ ISO vESBC, затем нажмите кнопку "Выбор тома":

Примечание

Перед выбором образа ISO поместите его в каталог /var/lib/libvirt/images/

Image Added

Scroll Pagebreak

Шаг 4. Деактивируйте чек-бокс "Automatically detect from the installation media / source".Вполе "Choose the operating system you are installing" укажите "Generic default" и нажмите кнопку "Forward":

Image Added

Шаг 5. Укажите количество ядер CPU и количество RAM в соответствующих полях, нажмите кнопку "Forward":

Image Added

Scroll Pagebreak

Шаг 6. Укажите объем HDD и нажмите кнопку "Forward":

Image Added

Шаг 7. Укажите название виртуальной машины и нажмите кнопку "Готово". Также можно сразу указать сетевой адаптер, или настроить сеть позже.

Image Added

Scroll Pagebreak

Шаг 8. После создания виртуальной машины откроется окно установки vESBC. Дальнейшие действия по установке vESBC описаны в разделе Процесс установки vESBC.

Image Added

Шаг 9. Если требуется донастройка (добавить/изменить сетевой адаптер, количество CPU, RAM и т. д.) виртуальной машины vESBC, выключите ее и откройте окно настроек кнопкой "Показать виртуальное оборудование"

Scroll Pagebreak

Подключение сетевых интерфейсов

Перед изменением конфигурации виртуальной машины она должна быть выключена.

Шаг 1. Запустите "Менеджер виртуальных машин", выберите нужную виртуальную машину и нажмите кнопку "Открыть".

Image Added

Scroll Pagebreak

Шаг 2. Если сетевой адаптер уже был добавлен при создании виртуальной машины и требуется изменить его параметры, следует выбрать его в списке оборудования. 

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

  • Мост <название бриджа хостовой ОС>. Данный режим доступен в случае, когда бридж был предварительно сконфигурирован в хостовой ОС. В этом режиме интерфейс vESBC будет подключен к бриджу хостовой ОС.
    • В поле "Модель устройства" указывается драйвер сетевого адаптера. Доступные драйвера:
      • virtio — высокопроизводительный драйвер виртуализации. Данный драйвер используется по умолчанию. 
      • e1000 — эмуляция гигабитной сетевой карты Intel (82540EM).
      • rtl8139 — эмуляция 100-мегабитной сетевой карты Realtek.

Image Added

Scroll Pagebreak

  • Устройство хоста <название физического сетевого адаптера хоста> macvtap. Это способ подключения виртуальной машины к сети, при котором она получает свой собственный MAC-адрес и IP-адрес прямо из вашей физической локальной сети, к которой подключен физический интерфейс хоста. 
    • В поле "Режим" указывается один из режимов работы macvtap:
      • Bridge (Мост) — все виртуальные машины, подключенные к хостовому сетевому адаптеру в этом режиме, могут свободно «общаться» друг с другом и с внешним миром, но связи между хостом и машинами нет.
      • VEPA — трафик виртуальных машин будет передаваться на физический коммутатор, подключенный к интерфейсу хоста. Для работы в данном режиме физический коммутатор должен поддерживать стандарт 802.1Qb.
      • Private (Приватный/Частная) — виртуальные машины могут выходить во внешнюю сеть через интерфейс хоста, но они полностью изолированы друг от друга.
      • Passthrough (Сквозной/Проброс) — «эксклюзивный» доступ к сетевой карте конкретной виртуальной машины. Аналог передачи устройства PCI напрямую виртуальной машине.
    • В поле "Модель устройства" указывается драйвер сетевого адаптера. Доступные драйвера:
      • virtio высокопроизводительный драйвер виртуализации. Данный драйвер используется по умолчанию.
      • e1000 эмуляция гигабитной сетевой карты Intel (82540EM).
      • rtl8139 эмуляция 100-мегабитной сетевой карты Realtek.
Примечание

В режиме macvtap связи межу хостовой ОС и виртуальной машиной нет. Также данный режим не подходит для организации кластера vESBC (за исключением режима Passthrough), т. к. при использовании протокола VRRP MAC-адрес vESBC будет отличаться от MAC-адреса сетевого интерфейса, и трафик не будет передаваться в виртуальную машину из-за особенностей реализации драйвера macvtap.

Image Added

Scroll Pagebreak

Шаг 3. Для добавления дополнительных сетевых адаптеров нажмите кнопку "Добавить оборудование" в нижнем левом углу (cм. скрин выше). В открывшемся окне выберете раздел "Сеть", укажите параметры адаптера и нажмите кнопку "Готово". Добавленный адаптер появится в списке оборудования виртуальной машины.

Image Added

Scroll Pagebreak

Шаг 4. Для проброса сетевой карты в виртуальную машину следует в окне выбора оборудования (см. предыдущий пункт) выбрать раздел "PCI-устройство узла", в списке устройств выбрать нужный сетевой адаптер и нажать кнопку "Готово". Добавленный адаптер появится в списке оборудования виртуальной машины:

Image Added

Image Added

Scroll Pagebreak

Подключение последовательного порта

С использованием командной строки QEMU

Для подключения последовательного порта vESBC к pty хоста следует добавить опцию к используемой команде запуска эмулятора QEMU:

...

Команда для подключения к pty с помощью minicom:

Блок кода
sudo minicom -D /dev/pts/3

Либо можно использовать подключение последовательного порта vESBC к pipe в файловой системе хоста. Для этого нужно добавить опцию:

...

Команда для подключения к pipe с помощью minicom:

Блок кода
sudo minicom -D unix#/tmp/vesbc-qemu

С использованием командной строки VIRSH

Для подключения последовательного порта vESBC к pty хоста следует добавить флаг  --console при установке виртуальной машины.

Пример флага для настройки pty:

Блок кода
--console pty,target_type=serial

Для подключения к консоли используйте команду:

Блок кода
virsh console <имя_ВМ>

Для выхода из консоли нажмите комбинацию клавиш Ctrl + ].

Scroll Pagebreak

С использованием приложения Менеджер виртуальных машин (Virtual Machine Manager)

При создании виртуальной машины виртуальная консоль pty создается автоматически:

Image Added

Scroll Pagebreak

Для подключения к консоли запустите виртуальную машину, посмотрите номер pty:

Image Added

Команда для подключения к pty с помощью minicom:

Блок кода
sudo minicom -D /dev/pts/4