IB پروٹوکول اور ٹرانسپورٹ: تہیں، QPs، RDMA، سب نیٹ مینیجر
InfiniBand ابتدا ہی سے ایسے کمپیوٹرز کے لیے فیبرک کے طور پر ڈیزائن کیا گیا تھا جو ایک دوسرے کی میموری سے گفتگو کرتے ہیں، نہ کہ اجنبیوں کے درمیان پیکٹس کے لیے۔ اس کی لیئرز، ایڈریسنگ اور مینجمنٹ Ethernet انجینئرز کو غیر مانوس لگتی ہیں، مگر اصطلاحات سمجھ آنے پر سادہ ہیں، اور یہ بتاتی ہیں کہ فزیکل لیئر کے لیے اتنے سخت معیار کیوں رکھے جاتے ہیں۔ یہ صفحہ پروٹوکول کا منظر پیش کرتا ہے؛ آپٹکس InfiniBand آپٹکس میں ہیں۔
لیئرز
| لیئر | مواد | نوٹس |
|---|---|---|
| فزیکل | لینز (1x، 4x، 8x، 12x)، فی لین سگنلنگ (NRZ سے HDR کے PAM4 تک… رفتاریں دیکھیے)، انکوڈنگ (QDR تک 8B/10B، FDR سے 64B/66B)، FEC (FDR سے اختیاری، HDR/NDR پر RS-FEC) | ٹرانسیور کی دنیا |
| لنک | LIDs کے ساتھ مقامی روٹنگ ہیڈر (LRH)، ورچوئل لینز (VL0–VL14 ڈیٹا، VL15 مینجمنٹ)، ہر VL پر کریڈٹ پر مبنی فلو کنٹرول، لنک لیئر CRC (ICRC/VCRC) | ڈیزائن کے لحاظ سے لاس لیس |
| نیٹ ورک | ملٹی سب نیٹ روٹنگ کے لیے 128-بٹ GIDs کے ساتھ گلوبل روٹنگ ہیڈر (GRH) | ایک کلسٹر کے اندر شاذ ہی استعمال ہوتا ہے |
| ٹرانسپورٹ | سینڈ/ریسیو کیوز کے ساتھ کیو پیئرز (QPs)، سروس اقسام RC/UC/UD/XRC، MTU کے لیے سیگمنٹیشن، قابلِ اعتماد سروس کے لیے ACK/NAK | RDMA یہاں موجود ہے |
| بالائی | verbs API، MPI، NCCL (UCX/SHARP کے ذریعے)، اسٹوریج (SRP، iSER، NVMe/IB)، IPoIB | ایپلی کیشنز کا استعمال |
ایڈریسنگ اور شناخت
| شناخت کنندہ | سائز | تفویض کنندہ | مطلب |
|---|---|---|---|
| GUID | 64-بٹ | مینوفیکچرر | پورٹ، نوڈ یا سسٹم کی مستقل شناخت (MAC کی طرح) |
| LID (مقامی شناخت کنندہ) | 16-بٹ | سب نیٹ مینیجر | سب نیٹ کے اندر ایڈریس؛ فارورڈنگ ٹیبلز LIDs استعمال کرتی ہیں |
| GID | 128-بٹ | SM (پریفکس) + GUID | سب نیٹ پریفکس + GUID؛ سب نیٹس کے پار اور RoCE کے ذریعے استعمال ہوتا ہے |
| PKey (پارٹیشن کی) | 16-بٹ | SM | پارٹیشن میں رکنیت (VLAN کی طرح)؛ مکمل/محدود ممبرز |
| QPN | 24-بٹ | HCA | کیو پیئر نمبر — پورٹ کے اندر اینڈ پوائنٹ |
کیو پیئرز اور ٹرانسپورٹ سروسز
ایک کیو پیئر HCA میں ایک سینڈ کیو اور ایک ریسیو کیو ہے، جس کی ملکیت ایپلی کیشن کے پاس ہوتی ہے۔ اس پر پوسٹ کی گئی ورک ریکویسٹس ہارڈویئر انجام دیتا ہے؛ تکمیلات کمپلیشن کیو میں آتی ہیں۔ سروس کی اقسام:
| قسم | قابلِ اعتماد | منسلک | استعمال |
|---|---|---|---|
| RC — قابلِ اعتماد منسلک | ہاں (ACK/NAK، دوبارہ ترسیل) | ہاں، ہر پیئر کے لیے ایک QP | زیادہ تر RDMA ٹریفک؛ MPI، NCCL، اسٹوریج |
| UC — غیر قابلِ اعتماد منسلک | نہیں | ہاں | نایاب |
| UD — غیر قابلِ اعتماد ڈیٹاگرام | نہیں | نہیں، تمام پیئرز کے لیے ایک QP | مینجمنٹ، IPoIB، ملٹی کاسٹ |
| XRC — توسیع شدہ قابلِ اعتماد منسلک | ہاں | پراسیسز میں مشترک ریسیو کیوز | QP تعداد کم کرنے کے لیے بڑے MPI جابز |
| RD — قابلِ اعتماد ڈیٹاگرام | ہاں | نہیں | عملاً استعمال نہیں ہوتا |
RDMA آپریشنز (READ، WRITE، atomic) دو ہوسٹس پر ایپلی کیشن بفرز کے درمیان کسی بھی CPU سے کاپی کیے بغیر ڈیٹا براہِ راست منتقل کرتے ہیں؛ SEND/RECEIVE پیغامات لے جاتا ہے۔ HCA کے چھونے سے پہلے میموری کو رجسٹرڈ (پن کیا ہوا اور کی دیا ہوا) ہونا ضروری ہے۔ GPUDirect RDMA اسے GPU میموری تک بڑھاتا ہے (GPU فیبرکس)۔
فلو کنٹرول اور MTU
ہر لنک ہر ورچوئل لین پر کریڈٹ پر مبنی فلو کنٹرول چلاتا ہے: ریسیور بفر کی جگہ کا اعلان کرتا ہے، اور بھیجنے والا اتنا ہی منتقل کرتا ہے جتنا وہ جذب کر سکے۔ کنجیشن کی وجہ سے کوئی فریم نہیں گرایا جاتا؛ اس کے بجائے بیک پریشر پھیلتا ہے، یہ Fibre Channel کے کریڈٹس جیسا ہی سمجھوتا ہے اور اس کی وجہ سے ایک سست یا غلطیوں والا لنک پورے جاب کو خراب کرتا ہے۔ لنک MTU 256–4096 بائٹس ہے (4096 عموماً)؛ پاتھ MTU سروں کے درمیان طے ہوتا ہے۔ سروس لیولز (SL) ٹریفک کلاسز کو الگ کرنے کے لیے VLs سے میپ ہوتے ہیں، اور اڈاپٹو روٹنگ فلو کو کنجیسٹڈ لنکس کے گرد موڑ سکتی ہے۔
سب نیٹ مینیجر
ہر سب نیٹ میں عین ایک سب نیٹ مینیجر (SM) فعال ہوتا ہے (دوسرے اسٹینڈ بائی رہتے ہیں)۔ وہ:
- ڈائریکٹڈ روٹ مینجمنٹ پیکٹس (VL15/QP0 پر SMPs) کے ذریعے فیبرک میں چل کر ٹوپولوجی دریافت کرتا ہے، یعنی ہر سوئچ اور HCA پورٹ۔
- LIDs تفویض کرتا ہے اور پورٹس کو کنفیگر کرتا ہے (رفتار، چوڑائی، MTU، VL آربیٹریشن، PKeys)۔
- روٹس شمار کرتا ہے، یعنی min-hop، up-down، fat-tree، dragonfly+، اڈاپٹو روٹنگ، اور ہر سوئچ کی لینیئر فارورڈنگ ٹیبل کو پروگرام کرتا ہے۔
- وقتاً فوقتاً اور ٹریپس (پورٹ up/down) پر اسکین کرتا ہے، اور ناکامیوں کے گرد دوبارہ روٹنگ کرتا ہے۔
- سب نیٹ ایڈمنسٹریٹر (SA) چلاتا ہے، جو ہوسٹس کی پاتھ کوئریز کا جواب دیتا ہے۔
OpenSM (اوپن سورس) اور وینڈر فیبرک مینیجرز (UFM) اسے نافذ کرتے ہیں؛ فیبرک مینیجر وہ جگہ بھی ہے جہاں پورٹ کی غلطیاں، لنک رفتار/چوڑائی نیگوشی ایشن کے نتائج اور آپٹکس DDM پورے فلیٹ سے جمع کیے جاتے ہیں (لنک کی قابلِ اعتمادیت اور نگرانی)۔
لنک نیگوشی ایشن
لنک اپ پر دونوں سرے سب سے بلند مشترک قدر تک چوڑائی (1x/2x/4x) اور رفتار (فی لین شرح) طے کرتے ہیں۔ کوئی لنک جو متوقع سے 2x یا ایک نسل سست رفتار پر اپ ہو، InfiniBand میں Ethernet کے “10G پر لنک ہوتا ہے، 25G پر نہیں” کے برابر ہے: ایک لین کا فائبر یا لیزر، کم مارجن والی کیبل، یا غیر مطابق ٹرانسیور نسل (رفتار اور شرح)۔ فیبرک مینیجر طے شدہ حالت رپورٹ کرتا ہے؛ ibstat / ibportstate اسے ہوسٹ پر دکھاتے ہیں۔
مینجمنٹ اور تشخیصی ٹولز
| ٹول | مقصد |
|---|---|
ibstat, ibstatus | مقامی پورٹ اسٹیٹ، شرح، چوڑائی، LID |
ibnetdiscover | ٹوپولوجی ڈمپ |
ibdiagnet | فیبرک بھر کی جانچ: غلطیاں، رفتار/چوڑائی عدم مطابقتیں، نقل GUIDs، کیبل معلومات |
perfquery, ibqueryerrors | فی پورٹ کاؤنٹرز: سمبل غلطیاں، لنک ڈاؤن، لنک ریکوری، پورٹ rcv غلطیاں، حد سے زیادہ بفر اووررن، VL15 ڈراپ، FEC کاؤنٹرز |
mlxlink, mlxcables | فی پورٹ PHY تفصیلات اور کیبل/ٹرانسیور EEPROM، DDM، FEC ہسٹوگرام |
ibportstate | رفتار/چوڑائی پر مجبور کرنا، پورٹ ری سیٹ کرنا |
سمبل غلطیاں اور لنک ریکوریز فزیکل لیئر کاؤنٹرز ہیں، Ethernet CRC/FEC کے مساوی، جو Rx پاور اور صفائی سے مربوط ہیں (فیبرک)۔
ایک پیراگراف میں InfiniBand بمقابلہ RoCE
RoCE v2 وہی verbs/RDMA ٹرانسپورٹ UDP/IP/Ethernet پر لے جاتا ہے؛ یہ سب نیٹ مینیجر کو IP روٹنگ سے اور PKeys کو VLANs سے بدلتا ہے، اور کریڈٹ فلو کنٹرول کو PFC/ECN (DCQCN) سے بدلتا ہے، جسے لاس لیس رہنے کے لیے درست کنفیگر کرنا ضروری ہے (لاس لیس Ethernet، انٹرکنیکٹس)۔ ٹرانسیورز فزیکلی ایک جیسے ہیں؛ صرف شناختی کوڈنگ اور ہوسٹ پالیسیز مختلف ہیں۔
CodingBox میں
InfiniBand ماڈیولز کو کسی بھی QSFP/OSFP کی طرح پڑھا جاتا ہے: شناخت (بشمول SFF-8636 بائٹ 164 یا CMIS ایپلی کیشنز میں InfiniBand ریٹ بٹس)، فی لین DDM اور چیک سمز Check transceiver اور DDM پر۔ اپنے ریٹڈ رفتار سے کم پر نیگوشی ایٹ کرنے والا پورٹ دونوں سروں کو بینچ پر پڑھنے کے قابل ہے۔