단일 NIC가 있는 서버에서 DPDK를 사용할 수 있습니까?

단일 NIC가 있는 서버에서 DPDK를 사용할 수 있습니까?

4개의 PCI 포트가 있는 단일 NIC가 있는 서버가 있습니다. 이미 DPDK 바인딩을 시도했으므로 "dpdk-devbind.py -s"를 바인딩하기 전에 다음을 반환합니다.

Network devices using kernel driver
0000:01:00.0 'OneConnect NIC (Skyhawk) 0720' if=eth0 drv=be2net unused=vfio-pci *Active*
0000:01:00.1 'OneConnect NIC (Skyhawk) 0720' if=eth1 drv=be2net unused=vfio-pci
0000:01:00.2 'OneConnect NIC (Skyhawk) 0720' if=eth2 drv=be2net unused=vfio-pci
0000:01:00.3 'OneConnect NIC (Skyhawk) 0720' if=eth3 drv=be2net unused=vfio-pci

NIC 모델을 찾을 수 없었지만DPDK는 공식적으로 하드웨어를 지원합니다.목록에 따르면 공급자는 DPDk와 호환된다고 말했습니다. 내 "ifconfig"는 다음을 반환합니다.

eth0: **some stuffs*** <IP>
lo: **some stuff**

이제 노출된 IP가 1개뿐이므로 DPDK를 어떻게 사용할 수 있나요? DPDK를 바인딩하려면 ifconfig에서 PCI 포트를 다운해야 하며 SSH가 손실됩니다. 사용하지 않는 다른 3개의 pci 포트를 볼 수 있는데 어떻게 사용하나요? DPDK 호환 드라이버 목록에 나열된 01:00.1 PCI 포트로 DPDK를 바인딩했는데 그 다음에는 어떻게 됩니까? 커널/ifconfig(할당된 IP/인터페이스 없음)를 통해 액세스할 수 없었기 때문에 이제 서버 외부에서 어떻게 사용할 수 있습니까? 아니면 단일 NIC로도 가능합니까? 그렇다면 어떻게.

답변1

DPDK는 커널 또는 일반 소켓 응용 프로그램에서 액세스할 수 있는 커널 넷 링크 장치가 아닌 UIO 드라이버를 사용하여 사용자 공간의 NIC 포트에 액세스할 수 있도록 허용하는 사용자 공간 프로세스입니다. 따라서 소켓이나 커널 넷 링크 장치를 통해 커널 공간에서 UIO 드라이버와 바인딩된 DPDK 포트에 액세스한다는 기대는 비현실적이며 올바르지 않습니다.

이제 서버 외부에서 어떻게 사용할 수 있나요? 아니면 단일 NIC로도 가능합니까?

testpmd, l2fwd, l3fwdNIC로 DPDK 탐색을 시작하는 등 샘플 애플리케이션을 활용해 보세요 .

참조하시기 바랍니다

  1. 테스트pmd
  2. l2fwd
  3. l3fwd

관련 정보