Как два или более приложений могут использовать кластер PF_RING ZC?

На следующем рисунке показано, что многие приложения могут использовать кластеры PF_RING. ref: UserGuid.pdf предоставлен ntop.org

Я проверил это с помощью следующих команд.

./zount -i eth0 -c 55 ---- нормально

./zcount1 -i eth0 -c 99 ----- нормально

Предположим, я хочу использовать pf_ring zc. Насколько я знаю, если вы открываете устройство с помощью драйвера, поддерживающего PF_RING, в нулевой копии (например, pfcount -i zc:eth1), устройство становится недоступным для стандартной сети, так как к нему обращаются в нулевой копии через обход ядра, как это произошло с предшественник ДНК. Как только приложение, обращающееся к устройству, будет закрыто, стандартные сетевые операции снова могут выполняться.

У меня есть 2 вопроса:

Вопрос 1 - до тех пор, пока приложение, подключенное к NIC через ZC (например, pfcount -i zc:eth1), NIC недоступно для других приложений. В таких ситуациях никто не может использовать нулевое копирование.

$ pfcount2 -i zc: eth1 -------- ошибка.

если я ошибаюсь, можно ли использовать PF_RING ZC как PF_RING? Следующая картинка показывает, что я пытаюсь сказать.

введите описание изображения здесь

Вопрос 2: возможно ли использовать PFRing_zc следующим образом? если ответ ДА, то как? есть ли API?

введите описание изображения здесь

Заранее спасибо

1 ответ

Решение

Кардильяно, участник ntop, ответил на мой вопрос:

да, вы можете сделать оба с zbalance:

  1. zbalance_ipc -i zc: ethX -c 99 -m 0 -n

  2. zbalance_ipc -i zc: ethX -c 99 -m 0 -n,

Пожалуйста, взгляните на zbalance_ipc -h для получения дополнительных опций и на вывод zbalance_ipc, чтобы увидеть, как подключить потребителей к кластеру. Существует также README.examples с несколькими примерами.

Другие вопросы по тегам