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

Ключ

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

...

-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_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:

  1. Включите IOMMU в BIOS/UEFI (параметры VT-d для Intel или AMD-Vi для AMD).
  2. Добавьте параметры ядра в загрузчик (например, в /etc/default/grub в строку GRUB_CMDLINE_LINUX_DEFAULT):
    1. Для Intel: intel_iommu=on
    2. Для 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.

...

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

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

...

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

В режиме Linux Bridge

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

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

...

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

  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 - адрес сетевой карты.

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

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

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

...

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

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

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

...

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

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

Image Modified

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

Image Modified

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

...