โปรโตคอลและทรานสปอร์ตของ IB: เลเยอร์, QP, RDMA และตัวจัดการซับเน็ต · InfiniBand · เทคโนโลยี · เอกสารประกอบ · CodingBox
CodingBox เอกสารประกอบ

โปรโตคอลและทรานสปอร์ตของ IB: เลเยอร์, QP, RDMA และตัวจัดการซับเน็ต

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

เลเยอร์

เลเยอร์เนื้อหาหมายเหตุ
กายภาพ (Physical)เลน (1x, 4x, 8x, 12x), การส่งสัญญาณต่อเลน (NRZ ถึง PAM4 ของ HDR… ดู ความเร็ว), การเข้ารหัส (8B/10B ถึง QDR, 64B/66B ตั้งแต่ FDR), FEC (ตั้งแต่ FDR เป็นทางเลือก, RS-FEC ที่ HDR/NDR)โลกของทรานซีฟเวอร์
ลิงก์ (Link)เฮดเดอร์เส้นทางภายใน (LRH) พร้อม LID, เวอร์ชวลเลน (VL0–VL14 ข้อมูล, VL15 การจัดการ), การควบคุมการไหลแบบใช้เครดิตต่อ VL, CRC ระดับลิงก์ (ICRC/VCRC)ไม่สูญเสียข้อมูลโดยการออกแบบ
เครือข่าย (Network)เฮดเดอร์เส้นทางสากล (GRH) พร้อม GID ขนาด 128 บิตสำหรับการจัดเส้นทางข้ามซับเน็ตใช้ไม่บ่อยภายในคลัสเตอร์เดียว
ทรานสปอร์ต (Transport)คู่คิว (QP) ที่มีคิวส่งและคิวรับ, ประเภทบริการ RC/UC/UD/XRC, การแบ่งส่วนข้อมูลตาม MTU, ACK/NAK สำหรับบริการที่เชื่อถือได้RDMA อยู่ในเลเยอร์นี้
บน (Upper)verbs API, MPI, NCCL (ผ่าน UCX/SHARP), สตอเรจ (SRP, iSER, NVMe/IB), IPoIBสิ่งที่แอปพลิเคชันใช้งาน

การกำหนดที่อยู่และข้อมูลระบุตัวตน

ตัวระบุขนาดกำหนดโดยความหมาย
GUID64 บิตผู้ผลิตข้อมูลระบุตัวตนถาวรของพอร์ต โหนด หรือระบบ (เหมือน MAC)
LID (ตัวระบุภายใน)16 บิตตัวจัดการซับเน็ตที่อยู่ภายในซับเน็ต ตารางฟอร์เวิร์ดใช้ LID
GID128 บิตSM (พรีฟิกซ์) + GUIDพรีฟิกซ์ของซับเน็ต + GUID ใช้ข้ามซับเน็ตและใช้โดย RoCE
PKey (คีย์พาร์ทิชัน)16 บิตSMการเป็นสมาชิกในพาร์ทิชัน (เหมือน VLAN) สมาชิกแบบเต็มสิทธิ์/จำกัดสิทธิ์
QPN24 บิตHCAหมายเลขคู่คิว — เอนด์พอยต์ภายในพอร์ต

คู่คิวและประเภทบริการทรานสปอร์ต

คู่คิว คือคิวส่งหนึ่งคิวและคิวรับหนึ่งคิวใน HCA ซึ่งเป็นของแอปพลิเคชัน คำขอทำงานที่ส่งเข้าไปจะถูกฮาร์ดแวร์ประมวลผล ผลลัพธ์จะไปอยู่ใน คิวผลลัพธ์ (completion queue) ประเภทบริการ:

ประเภทเชื่อถือได้เชื่อมต่อการใช้งาน
RC — เชื่อมต่อแบบเชื่อถือได้ใช่ (ACK/NAK ส่งซ้ำ)ใช่ หนึ่ง QP ต่อฝั่งตรงข้ามทราฟฟิก RDMA ส่วนใหญ่ MPI, NCCL, สตอเรจ
UC — เชื่อมต่อแบบไม่เชื่อถือไม่ใช่พบน้อย
UD — ดาตาแกรมแบบไม่เชื่อถือไม่ไม่ หนึ่ง QP สำหรับฝั่งตรงข้ามทั้งหมดการจัดการ, IPoIB, มัลติคาสต์
XRC — เชื่อมต่อแบบเชื่อถือได้ขยายใช่ใช้คิวรับร่วมกันข้ามโพรเซสงาน MPI ขนาดใหญ่เพื่อลดจำนวน QP
RD — ดาตาแกรมแบบเชื่อถือได้ใช่ไม่แทบไม่มีการใช้งานจริง

การทำงานของ RDMA (READ, WRITE, atomic) ย้ายข้อมูลโดยตรงระหว่างบัฟเฟอร์ของแอปพลิเคชันบนโฮสต์สองเครื่องโดยไม่ต้องให้ CPU ฝั่งใดคัดลอกข้อมูล ส่วน SEND/RECEIVE ใช้ส่งข้อความ หน่วยความจำต้องถูก ลงทะเบียน (registered) (ปักหมุดในหน่วยความจำและได้รับคีย์) ก่อนที่ HCA จะเข้าถึงได้ GPUDirect RDMA ขยายกลไกนี้ไปถึงหน่วยความจำ GPU (ฟาบริก GPU)

การควบคุมการไหลและ MTU

ทุกลิงก์ใช้ การควบคุมการไหลแบบใช้เครดิตต่อเวอร์ชวลเลน: ฝั่งรับประกาศพื้นที่บัฟเฟอร์ที่มี ฝั่งส่งจะไม่ส่งเกินกว่าที่ฝั่งรับรองรับได้ ไม่มีเฟรมถูกทิ้งเพราะความคับคั่ง แต่แรงดันย้อนกลับจะแผ่กระจายออกไปแทน ซึ่งเป็นข้อแลกเปลี่ยนแบบเดียวกับเครดิตของ Fibre Channel และเป็นเหตุผลที่ลิงก์เพียงเส้นเดียวที่ช้าหรือมีข้อผิดพลาดจะฉุดงานทั้งงานให้ช้าลง MTU ของลิงก์อยู่ที่ 256–4096 ไบต์ (ปกติ 4096) ส่วน MTU ของเส้นทางถูกเจรจากันตั้งแต่ต้นทางถึงปลายทาง ระดับบริการ (service levels, SL) จับคู่กับ VL เพื่อแยกคลาสทราฟฟิก และ การจัดเส้นทางแบบปรับตัว (adaptive routing) ช่วยเบี่ยงทราฟฟิกให้หลีกเลี่ยงลิงก์ที่คับคั่ง

ตัวจัดการซับเน็ต

แต่ละซับเน็ตมี ตัวจัดการซับเน็ต (subnet manager, SM) ทำงานอยู่เพียงตัวเดียว (ตัวอื่นสแตนด์บายรอไว้) โดยตัวจัดการซับเน็ตทำหน้าที่ดังนี้:

  1. ค้นพบ โทโพโลยีด้วยการไล่ตรวจฟาบริกด้วยแพ็กเก็ตจัดการเส้นทางกำหนดทิศทาง (SMP บน VL15/QP0) — ทุกสวิตช์และทุกพอร์ต HCA
  2. กำหนด LID และตั้งค่าพอร์ต (ความเร็ว ความกว้าง MTU การจัดสรร VL, PKey)
  3. คำนวณเส้นทาง — min-hop, up-down, fat-tree, dragonfly+, การจัดเส้นทางแบบปรับตัว — และตั้งค่า ตารางฟอร์เวิร์ดเชิงเส้น ของสวิตช์แต่ละตัว
  4. ตรวจกวาด เป็นระยะและเมื่อมีการแจ้งเตือนสถานะ (trap ของพอร์ตขึ้น/ลง) พร้อมจัดเส้นทางใหม่เพื่อหลีกเลี่ยงจุดที่ล้มเหลว
  5. เรียกใช้ ตัวดูแลระบบซับเน็ต (subnet administrator, SA) ที่ตอบคำค้นหาเส้นทางจากโฮสต์

OpenSM (โอเพนซอร์ส) และตัวจัดการฟาบริกของผู้ผลิต (UFM) เป็นผู้ทำหน้าที่นี้ ตัวจัดการฟาบริกยังเป็นจุดที่รวบรวมข้อผิดพลาดของพอร์ต ผลการเจรจาความเร็ว/ความกว้างของลิงก์ และ DDM ของออปติกทั่วทั้งฟลีต (ความเชื่อถือได้ของลิงก์และการตรวจติดตาม)

การเจรจาลิงก์

เมื่อลิงก์ขึ้น ทั้งสองฝั่งจะเจรจา ความกว้าง (1x/2x/4x) และ ความเร็ว (อัตราต่อเลน) ให้ได้ค่าร่วมที่สูงที่สุด ลิงก์ที่ขึ้นมาที่ 2x หรือช้ากว่าที่คาดไว้หนึ่งรุ่นคือกรณีเทียบเท่าของ InfiniBand กับ “ลิงก์ขึ้นที่ 10G ไม่ใช่ 25G” ของ Ethernet: ใยแก้วนำแสงหรือเลเซอร์ของเลนใดเลนหนึ่ง สายที่ก้ำกึ่ง หรือทรานซีฟเวอร์คนละรุ่นกัน (ความเร็วและอัตรา) ตัวจัดการฟาบริกรายงานสถานะที่เจรจาได้ ส่วน ibstat / ibportstate แสดงผลบนโฮสต์

เครื่องมือจัดการและวินิจฉัย

เครื่องมือจุดประสงค์
ibstat, ibstatusสถานะพอร์ตภายในเครื่อง, อัตรา, ความกว้าง, LID
ibnetdiscoverการดัมป์โทโพโลยี
ibdiagnetตรวจสอบทั่วทั้งฟาบริก: ข้อผิดพลาด, ความเร็ว/ความกว้างไม่ตรงกัน, GUID ซ้ำ, ข้อมูลสาย
perfquery, ibqueryerrorsตัวนับต่อพอร์ต: ข้อผิดพลาดสัญลักษณ์, ลิงก์ล่ม, การกู้คืนลิงก์, ข้อผิดพลาดการรับของพอร์ต, บัฟเฟอร์ล้นเกิน, VL15 ถูกทิ้ง, ตัวนับ FEC
mlxlink, mlxcablesรายละเอียด PHY ต่อพอร์ต และ EEPROM ของสาย/ทรานซีฟเวอร์, DDM, ฮิสโทแกรม FEC
ibportstateบังคับความเร็ว/ความกว้าง, รีเซ็ตพอร์ต

ข้อผิดพลาดสัญลักษณ์และการกู้คืนลิงก์คือตัวนับระดับเลเยอร์กายภาพ ซึ่งเทียบเท่ากับ CRC/FEC ของ Ethernet และเกี่ยวข้องกับกำลังรับและความสะอาด (ฟาบริก)

InfiniBand เทียบกับ RoCE ในย่อหน้าเดียว

RoCE v2 ใช้ทรานสปอร์ต verbs/RDMA แบบเดียวกันแต่วิ่งบน UDP/IP/Ethernet โดยแทนที่ตัวจัดการซับเน็ตด้วยการจัดเส้นทางแบบ IP และแทนที่ PKey ด้วย VLAN พร้อมทั้งแทนที่การควบคุมการไหลแบบเครดิตด้วย PFC/ECN (DCQCN) ซึ่งต้องตั้งค่าให้ถูกต้องจึงจะไม่สูญเสียข้อมูล (Ethernet แบบไม่สูญเสียข้อมูล, การเชื่อมต่อระหว่างกัน) ทรานซีฟเวอร์เป็นตัวเดียวกันทางกายภาพ ต่างกันเพียงการเขียนโค้ดข้อมูลระบุตัวตนและนโยบายของโฮสต์

ใน CodingBox

โมดูล InfiniBand ถูกอ่านเหมือน QSFP/OSFP ทั่วไป: ข้อมูลระบุตัวตน (รวมถึงบิตอัตรา InfiniBand ใน SFF-8636 ไบต์ 164 หรือแอปพลิเคชันของ CMIS), DDM ต่อเลน และเช็กซัม บน Check transceiver และ DDM พอร์ตที่เจรจาได้ความเร็วต่ำกว่าที่กำหนดคุ้มค่าที่จะอ่านบนโต๊ะทดสอบทั้งสองด้าน


หากพบข้อมูลที่ไม่ถูกต้องหรือข้อผิดพลาดในบทความนี้ ให้เลือกข้อความส่วนนั้นแล้วกด Ctrl+Enter เพื่อ