...
-cpu — модель процессора, например параметр -cpu host передает виртуальной машине все возможности, флаги и инструкции (например, AES-NI, AVX, VT-x) вашего реального физического процессора;
-smp — включение имитации SMP-системы с n CPU;
...
Теперь есть прямая IP-связность с хостом, возможность подключения к vESBC по Telnet,SSH,WEB, а также обновления прошивки vESBC, загрузки и выгрузки файлов.
| Scroll Pagebreak |
|---|
В режиме 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 |
...
Прежде чем запускать QEMU, нужно «отвязать» карту от хоста и передать её драйверу vfio-pci:
- Включите IOMMU в BIOS/UEFI (параметры VT-d для Intel или AMD-Vi для AMD).
- Добавьте параметры ядра в загрузчик (например, в /etc/default/grub в строку GRUB_CMDLINE_LINUX_DEFAULT):
- Для Intel: intel_iommu=on
- Для AMD: amd_iommu=on
- Узнайте PCI-адрес карты
Если планируется, например, использование первого интерфейса сетевой кары, то адрес карты: 18:00.0 (ID устройства — [8086:1572])Блок кода 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)
- Привяжите карту к 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
- Запустите виртуальную машину 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.
...
Для отображения графической консоли vESBC рекомендуется установить virt-viewer:
| Блок кода |
|---|
sudo apt update sudo apt install virt-viewer |
...
Подключение сетевых интерфейсов
В режиме Linux Bridge
Подключение сетевых интерфейсов осуществляется флагом –networt при создании виртуальной машины как описано выше.
При использовании Linux Bridge требуется предварительная конфигурация бриджей в хостовой операционной системе. Пример натройки приведен выше.
...
Для передачи сетевого интерфейса в виртуальную машину:
- Узнайте PCI-адрес карты
Если планируется, например, использование первого интерфейса сетевой кары, то адрес карты: 18:00.0Блок кода 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)
- Для проброса интерфейса в виртуальную машину используйте флаг --hostdev при ее создании:
где 18:00.0 - адрес сетевой карты.Блок кода --hostdev 18:00.0
Использование приложения Менеджер виртуальных машин (Virtual Machine Manager)
Virtual Machine Manager — это приложение для управления виртуальными машинами в операционных системах Linux при помощи графического интерфейса (GUI) .
Создание виртуальной машины
...
- Запустить "Менеджер виртуальных машин", выбрать нужную виртуальную машину и нажать кнопку "Открыть".
- Если сетевой адаптер уже был добавлен при создании виртуальной машины, и требуется изменить его параметры, следует выбрать его в списке оборудования.
- Изменеие адаптера выполняется в настройке "Создать на базе", доступны следующие режимы работы адаптера:
- Мост <название бриджа хостовой ОС>. Данный режим доступен в случае когда бридж был предварительно сконфигурирован в хостовой ОС. В этом режиме Интерфейс vESBC будет подключен к бриджу хостовой ОС.
- В поле "Модель устройства" указывается драйвер сетевого адаптера. Доступные драйвера:
- virtio - высокопроизводительный драйвер виртуализации. Данный драйвер используется по умолчанию.
- e1000 - эмуляция гигабитной сетевой карты Intel (82540EM)
- rtl8139 - эмуляция 100-мегабитной сетевой карты Realtek.
- В поле "Модель устройства" указывается драйвер сетевого адаптера. Доступные драйвера:
- Устройство хоста <название физического сетевого адаптера хоста> 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.
- В поле "Режим" указывается один из режимов работы macvtap:
- Мост <название бриджа хостовой ОС>. Данный режим доступен в случае когда бридж был предварительно сконфигурирован в хостовой ОС. В этом режиме Интерфейс vESBC будет подключен к бриджу хостовой ОС.
- Изменеие адаптера выполняется в настройке "Создать на базе", доступны следующие режимы работы адаптера:
- Для добавления дополнительных сетевых адаптеров нажмите кнопку "Добавить оборудование" в нижнем левом углу. В открывшимся окне выбирете раздел сеть, укажите параметры адаптера и нажмите конпку "Готово". Добавленный адаптер появится в списке оборудования виртуальной машины.
- Для проброса сетевой карты в виртуальную машину следует в окне выбора оборудования (см. предыдущий пункт) выбрать раздел "PCI-устройство узла", в списке устройств выбрать нужный сетевой адаптер и нажать кнопку "Готово". Добавленный адаптер появится в списке оборудования виртуальной машины:
...
С использованием приложения Менеджер виртуальных машин (Virtual Machine Manager)
При созданиии виртуальной машины виртуальная консоль pty создается автоматически:
Для подключения к консоли запустите виртуальную машину, посмотрите номер pty:
Команда для подключения к pty с помощью minicom:
...






