1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/openeuler-gazelle

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
В этом репозитории не указан файл с открытой лицензией (LICENSE). При использовании обратитесь к конкретному описанию проекта и его зависимостям в коде.
Клонировать/Скачать
multiple-nic.md 4.7 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 10.03.2025 17:01 5c2f3c0

Независимое использование сетевых адаптеров многопоточными процессами

Многопоточные процессы gazelle поддерживают независимое использование различных сетевых адаптеров. В этом руководстве рассматривается конфигурация использования сетевых адаптеров отдельными процессами lstack и ltran+lstack.

Шаги конфигурирования:

Описание конфигурации

  • Конфигурационные файлы ltran.conf и lstack.conf одного и того же процесса должны иметь одинаковое значение параметра unix_prefix, как в примере с unix_prefix=08. Разные процессы должны использовать различные значения параметра unix_prefix, как в примере с unix_prefix=07.
  • Для разных процессов gazelle требуется настройка различных параметров dpdk, включая
    -a (в dpdk-19.11 используется -w) — указание белого списка адресов PCI сетевых карт
    --file-prefix — указание имени общего каталога (произвольное имя, создается при первоначальной инициализации).

Привязка сетевых адаптеров

  • Привязка нескольких сетевых адаптеров с помощью dpdk. В следующих примерах приведена конфигурация, которая привязывает две сетевые карты enp2s7 (0000:02:07.0) и enp2s8 (0000:02:08.0)
[root@localhost ~]# dpdk-devbind -b igb_uio 0000:02:07.0
[root@localhost ~]# dpdk-devbind -b igb_uio 0000:02:08.0
[root@localhost ~]# dpdk-devbind -s

Network devices using DPDK-compatible driver
============================================
0000:02:07.0 'Virtio network device 1000' drv=igb_uio unused=
0000:02:08.0 'Virtio network device 1000' drv=igb_uio unused=
```### Конфигурация первого процесса
- Первый процесс использует режим lstack (это просто пример; можно использовать любой другой режим) на сетевой карте enp2s7  
  Конфигурационный файл dpdk-21.11 представлен ниже; в dpdk-19.11 замените `-a` на `-w`
```bash
[root@localhost ~]# cat /etc/gazelle/lstack.conf
dpdk_args=["-l", "0", "-a", "0000:02:07.0", "--socket-mem", "2048,0,0,0", "--huge-dir", "/mnt/hugepages-2M", "--proc-type", "primary", "--file-prefix", "07"]

use_ltran=0
kni_switch=0

low_power_mode=0
listen_shadow=1
unix_prefix="07"

num_cpus="1"

host_addr="192.168.1.2"
mask_addr="255.255.255.0"
gateway_addr="192.168.1.1"
devices="aa:bb:cc:dd:ee:ff"

Конфигурация второго процесса

  • Второй процесс использует режим lstack+ltran (это просто пример; можно использовать любой другой режим) на сетевой карте enp2s8
    Конфигурационный файл dpdk-21.11 представлен ниже; в dpdk-19.11 замените -a на -w
[root@localhost ~]# cat /etc/gazelle/ltran.conf
forward_kit="dpdk"
forward_kit_args="-l 1 -a 0000:02:08.0 --socket-mem 1024,0,0,0 --huge-dir /mnt/hugepages --proc-type primary --legacy-mem --map-perfect --syslog daemon --file-prefix 08"

kni_switch=0

dispatch_subnet="192.168.1.0"
dispatch_subnet_length=8
dispatch_max_clients=30
unix_prefix="08"
```mode_bonding=1
miimon_bonding=100
mtu_bonding=1500
ports_bonding="0x1"
macs_bonding="ff:ee:dd:cc:bb:aa"

tcp_scan_interval=10
[root@localhost ~]# cat /etc/gazelle/lstack2.conf
parameters_dpdk=["-l", "3", "--socket-mem", "2048,0,0,0", "--huge-dir", "/mnt/hugepages-2M", "--proc-type", "primary", "--file-prefix", "18", "--legacy-mem", "--map-perfect"]

use_ltran=1
kni_switch=0

low_power_mode=0
listen_shadow=1
unix_prefix="08"

number_of_cpus="2"

host_address="192.168.1.3"
subnet_mask="255.255.255.0"
gateway_address="192.168.1.1"
network_devices="ff:ee:dd:cc:bb:aa"
```## Использование
- Два процесса могут использовать различные сетевые адаптера для приема и передачи пакетов данных
<img src="images/multiple-nic.png" alt="scene" style="zoom:100%">

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/openeuler-gazelle.git
git@api.gitlife.ru:oschina-mirror/openeuler-gazelle.git
oschina-mirror
openeuler-gazelle
openeuler-gazelle
master