Как два или более приложений могут использовать кластер PF_RING ZC?
На следующем рисунке показано, что многие приложения могут использовать кластеры PF_RING.
Я проверил это с помощью следующих команд.
./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:
zbalance_ipc -i zc: ethX -c 99 -m 0 -n
zbalance_ipc -i zc: ethX -c 99 -m 0 -n,
Пожалуйста, взгляните на zbalance_ipc -h для получения дополнительных опций и на вывод zbalance_ipc, чтобы увидеть, как подключить потребителей к кластеру. Существует также README.examples с несколькими примерами.