เวิร์กสเตชันออนไลน์ของ OnWorks Linux และ Windows

โลโก้

ฟรีโฮสติ้งออนไลน์สำหรับเวิร์กสเตชัน

<ก่อนหน้านี้ | Contents | ถัดไป>

5.1 ข้อกำหนดเบื้องต้น


แพ็คเกจนี้ได้รับการคอมไพล์สำหรับความต้องการ CPU ที่ต่ำที่สุดที่เป็นไปได้ ซึ่งยังคงต้องการ SSE3 เป็นอย่างน้อยเพื่อให้ CPU รองรับ

รายการการ์ดเครือข่ายที่รองรับ DPDK ต้นน้ำสามารถพบได้ที่ NIC ที่รองรับ22. แต่ส่วนมากจะถูกปิดใช้งานโดยค่าเริ่มต้นในโปรเจ็กต์ต้นน้ำเนื่องจากยังไม่อยู่ในสถานะเสถียร ชุดย่อยของการ์ดเครือข่ายที่เปิดใช้งาน DPDK ในแพ็คเกจที่มีใน Ubuntu 16.04 คือ:

อินเทล

• e100023 (82540, 82545, 82546)

• e1000e24 (82571..82574, 82583, ICH8..ICH10, PCH..PCH2)

• ไอจี25 (82575..82576, 82580, I210, I211, I350, I354, DH89xx)

• ixgbe26 (82598..82599, X540, X550)

• i40e27 (X710, XL710, X722)

• เอฟเอ็ม10เค28 (เอฟเอ็ม10420)


เชลซี

• cxgbe29 (เทอร์มิเนเตอร์ 5)


ซิสโก้

• เอนิค30 (การ์ดอินเทอร์เฟซเสมือน UCS) การจำลองเสมือน


ภาพ

22 http://dpdk.org/doc/nics

23 http://dpdk.org/doc/guides/nics/e1000em.html

24 http://dpdk.org/browse/dpdk/tree/drivers/net/e1000/

25 http://dpdk.org/browse/dpdk/tree/drivers/net/e1000/

26 http://dpdk.org/doc/guides/nics/ixgbe.html

27 http://dpdk.org/browse/dpdk/tree/drivers/net/i40e/

28 http://dpdk.org/doc/guides/nics/fm10k.html

29 http://dpdk.org/doc/guides/nics/cxgbe.html

30 http://dpdk.org/browse/dpdk/tree/drivers/net/enic


• virtio-net31 (คิวมู)

• vmxnet332


ผลิตภัณฑ์อื่นๆ

• af_packet33 (ซ็อกเก็ต Linux AF_PACKET)

• แหวน34 (หน่วยความจำ)


นอกจากนี้ ยังทดลองเปิดใช้งานไดรเวอร์ PMD สองตัวต่อไปนี้เนื่องจากเป็นตัวแทนของอุปกรณ์ (เสมือน) ที่ผู้ใช้ปลายทางสามารถเข้าถึงได้มาก

paravirtualization

• เซนเวียร์ต35 (เซน)


ผลิตภัณฑ์อื่นๆ

• พีซีแคป36 (ไฟล์หรือไดรเวอร์เคอร์เนล)


ต้องยกเลิกการกำหนดการ์ดจากไดรเวอร์เคอร์เนลและกำหนดให้ uio_pci_generic ของ vfio-pci แทน uio_pci_generic นั้นเก่ากว่าและมักจะทำงานได้ง่ายขึ้น

vfio-pci ที่ใหม่กว่าต้องการให้คุณเปิดใช้งานพารามิเตอร์เคอร์เนลต่อไปนี้เพื่อเปิดใช้งาน iommu


iommu=pt intel_iommu=เปิด


ด้านบนสำหรับ vfio-pci คุณต้องกำหนดค่าและกำหนดกลุ่ม iommu ตามลำดับ


หมายเหตุ: ในสภาพแวดล้อมที่อิง virtio ก็เพียงพอที่จะ "ยกเลิกการมอบหมาย" อุปกรณ์จากไดรเวอร์เคอร์เนล หากไม่มี DPDK จะปฏิเสธที่จะใช้อุปกรณ์เพื่อหลีกเลี่ยงปัญหากับเคอร์เนลและ DPDK ที่ทำงานบนอุปกรณ์พร้อมกัน เนื่องจาก DPDK สามารถทำงานบนอุปกรณ์ virtio ได้โดยตรง จึงไม่จำเป็นต้องกำหนด เช่น uio_pci_generic ให้กับอุปกรณ์เหล่านั้น

การกำหนดค่าด้วยตนเองและการตรวจสอบสถานะสามารถทำได้ผ่าน sysfs หรือด้วยเครื่องมือ dpdk_nic_bind


dpdk_nic_bind -- ช่วยด้วย


การใช้งาน:

------


dpdk_nic_bind [ตัวเลือก] DEVICE1 DEVICE2 ....


โดยที่ DEVICE1, DEVICE2 ฯลฯ ถูกระบุผ่านไวยากรณ์ "domain:bus:slot.func" ของ PCI หรือไวยากรณ์ "bus:slot.func" สำหรับอุปกรณ์ที่เชื่อมต่อกับไดรเวอร์เคอร์เนลของ Linux อาจ


ภาพ

31 http://dpdk.org/doc/guides/nics/virtio.html

32 http://dpdk.org/doc/guides/nics/vmxnet3.html

33 http://dpdk.org/browse/dpdk/tree/drivers/net/af_packet

34 http://dpdk.org/doc/guides/nics/pcap_ring.html#rings-based-pmd

35 http://dpdk.org/doc/guides/xen/pkt_switch.html#xen-pmd-frontend-prerequisites

36 http://dpdk.org/doc/guides/nics/pcap_ring.html#libpcap-based-pmd


ยังถูกอ้างถึงโดยชื่ออินเตอร์เฟส Linux เช่น eth0, eth1, em0, em1 เป็นต้น


ตัวเลือก:

--ช่วย -- การใช้งาน:

แสดงข้อมูลการใช้งานและออก


-s, --สถานะ:

พิมพ์สถานะปัจจุบันของอินเทอร์เฟซเครือข่ายที่รู้จักทั้งหมด

สำหรับอุปกรณ์แต่ละตัว จะแสดงโดเมน PCI, บัส, สล็อต และฟังก์ชัน พร้อมด้วยคำอธิบายข้อความของอุปกรณ์ ขึ้นอยู่กับว่าอุปกรณ์ถูกใช้โดยไดรเวอร์เคอร์เนล ไดรเวอร์ igb_uio หรือไม่มีไดรเวอร์ ข้อมูลที่เกี่ยวข้องอื่น ๆ จะปรากฏขึ้น:

* ชื่ออินเตอร์เฟส Linux เช่น if=eth0

* ไดรเวอร์ที่ใช้ เช่น drv=igb_uio

* ไดรเวอร์ที่เหมาะสมใด ๆ ที่ไม่ได้ใช้อุปกรณ์นั้นในปัจจุบัน

เช่น unused=igb_uio

หมายเหตุ: หากแฟล็กนี้ถูกส่งไปพร้อมกับตัวเลือกผูก/เลิกผูก การแสดงสถานะจะเกิดขึ้นเสมอหลังจากการดำเนินการอื่นๆ เกิดขึ้น


-b ไดรเวอร์ --bind=driver:

เลือกไดรเวอร์ที่จะใช้หรือ "ไม่มี" เพื่อยกเลิกการเชื่อมโยงอุปกรณ์


-u, --เลิกผูก:

เลิกผูกอุปกรณ์ (เทียบเท่ากับ "-b none")


--บังคับ:

โดยค่าเริ่มต้น อุปกรณ์ที่ใช้โดย Linux - ตามที่ระบุโดยมีเส้นทางในตารางเส้นทาง - ไม่สามารถแก้ไขได้ การใช้แฟล็ก --force จะลบล้างพฤติกรรมนี้ ทำให้ลิงก์ที่ทำงานอยู่ถูกบังคับให้เลิกผูก

คำเตือน: การทำเช่นนี้อาจทำให้สูญเสียการเชื่อมต่อเครือข่าย และควรใช้ด้วยความระมัดระวัง


ตัวอย่าง:

---------


วิธีแสดงสถานะอุปกรณ์ปัจจุบัน: dpdk_nic_bind --status


ในการผูก eth1 จากไดรเวอร์ปัจจุบันและย้ายไปใช้ igb_uio dpdk_nic_bind --bind=igb_uio eth1


หากต้องการเลิกผูก 0000:01:00.0 จากการใช้ไดรเวอร์ใด ๆ dpdk_nic_bind -u 0000:01:00.0


เพื่อผูก 0000:02:00.0 และ 0000:02:00.1 กับไดรเวอร์เคอร์เนล ixgbe dpdk_nic_bind -b ixgbe 02:00.0 02:00


ระบบปฏิบัติการคลาวด์คอมพิวติ้งยอดนิยมที่ OnWorks: