IB প্রোটোকল ও ট্রান্সপোর্ট: লেয়ার, QP, RDMA, সাবনেট ম্যানেজার
ইনফিনিব্যান্ড শুরু থেকেই এমন একটি ফ্যাব্রিক হিসেবে নকশা করা হয়েছে, যেখানে কম্পিউটার একে অপরের মেমোরির সঙ্গে কথা বলে; অপরিচিত পক্ষগুলোর মধ্যে প্যাকেট পাঠানো এর উদ্দেশ্য নয়। এর লেয়ার, অ্যাড্রেসিং ও ম্যানেজমেন্ট ইথারনেট ইঞ্জিনিয়ারদের কাছে অপরিচিত ঠেকে, কিন্তু পরিভাষা জানা থাকলে সবই সহজ, আর এগুলো থেকেই বোঝা যায় ফিজিক্যাল লেয়ারের ওপর কেন এত কড়া মান আরোপ করা হয়। এই পেজে প্রোটোকলের দিকটি আলোচনা করা হয়েছে; অপটিক্সের বিষয়ে দেখুন ইনফিনিব্যান্ড অপটিক্স।
লেয়ার
| লেয়ার | বিষয়বস্তু | মন্তব্য |
|---|---|---|
| ফিজিক্যাল | লেন (1x, 4x, 8x, 12x), প্রতি লেনের সিগন্যালিং (NRZ থেকে HDR-এর PAM4 পর্যন্ত… দেখুন গতি), এনকোডিং (QDR পর্যন্ত 8B/10B, FDR থেকে 64B/66B), FEC (FDR থেকে ঐচ্ছিক, HDR/NDR-এ RS-FEC) | ট্রান্সিভারের আওতা |
| লিংক | LID-সহ লোকাল রাউটিং হেডার (LRH), ভার্চুয়াল লেন (ডেটার জন্য VL0–VL14, ম্যানেজমেন্টের জন্য VL15), প্রতিটি VL-এর ক্রেডিটভিত্তিক ফ্লো কন্ট্রোল, লিংক-লেয়ার CRC (ICRC/VCRC) | নকশাতেই লসলেস |
| নেটওয়ার্ক | একাধিক সাবনেটে রাউটিংয়ের জন্য 128-বিট GID-সহ গ্লোবাল রাউটিং হেডার (GRH) | একটি ক্লাস্টারের ভেতরে কদাচিৎ ব্যবহৃত হয় |
| ট্রান্সপোর্ট | সেন্ড/রিসিভ কিউসহ কিউ পেয়ার (QP), সার্ভিস টাইপ RC/UC/UD/XRC, MTU অনুযায়ী সেগমেন্টেশন, নির্ভরযোগ্য সার্ভিসের জন্য ACK/NAK | RDMA এখানেই চলে |
| আপার | ভার্বস API, MPI, NCCL (UCX/SHARP-এর মাধ্যমে), স্টোরেজ (SRP, iSER, NVMe/IB), IPoIB | অ্যাপ্লিকেশন যা ব্যবহার করে |
অ্যাড্রেসিং ও পরিচয়
| শনাক্তকারী | আকার | বরাদ্দকারী | অর্থ |
|---|---|---|---|
| GUID | 64-বিট | নির্মাতা | পোর্ট, নোড বা সিস্টেমের স্থায়ী পরিচয় (MAC-এর মতো) |
| LID (লোকাল আইডেন্টিফায়ার) | 16-বিট | সাবনেট ম্যানেজার | সাবনেটের ভেতরের ঠিকানা; ফরোয়ার্ডিং টেবিল LID ব্যবহার করে |
| 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, অ্যাটমিক) দুটি হোস্টের অ্যাপ্লিকেশন বাফারের মধ্যে সরাসরি ডেটা সরায়, কোনো পক্ষের CPU-কেই তা কপি করতে হয় না; SEND/RECEIVE বার্তা বহন করে। HCA মেমোরি অ্যাক্সেস করার আগে সেটি রেজিস্টার করতে হয় (পিন করে একটি কী দিতে হয়)। GPUDirect RDMA এটিকে GPU মেমোরি পর্যন্ত বাড়িয়েছে (GPU ফ্যাব্রিক)।
ফ্লো কন্ট্রোল ও MTU
প্রতিটি লিংক প্রতিটি ভার্চুয়াল লেনে ক্রেডিটভিত্তিক ফ্লো কন্ট্রোল চালায়: রিসিভার তার বাফারের খালি জায়গা জানিয়ে দেয়, আর প্রেরক রিসিভার যতটা গ্রহণ করতে পারে তার বেশি কখনো পাঠায় না। কনজেশনের কারণে কোনো ফ্রেম ড্রপ হয় না; তার বদলে ব্যাক-প্রেশার ছড়িয়ে পড়ে। ফাইবার চ্যানেলের ক্রেডিটেও একই আপস করা হয়, আর একটিমাত্র ধীর বা এররযুক্ত লিংক যে পুরো জবের গতি কমিয়ে দেয়, তার কারণও এটিই। লিংক MTU 256–4096 বাইট (সাধারণত 4096); পাথ MTU প্রান্ত থেকে প্রান্ত নেগোশিয়েট করা হয়। সার্ভিস লেভেল (SL) VL-এর সঙ্গে ম্যাপ করা থাকে এবং ট্রাফিক ক্লাস আলাদা করে, আর অ্যাডাপ্টিভ রাউটিং ফ্লোগুলোকে কনজেস্টেড লিংক এড়িয়ে ঘুরিয়ে দিতে পারে।
সাবনেট ম্যানেজার
প্রতিটি সাবনেটে ঠিক একটি সাবনেট ম্যানেজার (SM) সক্রিয় থাকে (অন্যগুলো স্ট্যান্ডবাই অবস্থায় থাকে)। এটি:
- টপোলজি আবিষ্কার করে: ডাইরেক্টেড-রুট ম্যানেজমেন্ট প্যাকেট (VL15/QP0-তে SMP) দিয়ে ফ্যাব্রিক ঘুরে প্রতিটি সুইচ ও HCA পোর্ট খুঁজে বের করে।
- LID বরাদ্দ করে এবং পোর্ট কনফিগার করে (গতি, প্রস্থ, MTU, VL আর্বিট্রেশন, PKey)।
- রুট হিসাব করে (মিন-হপ, আপ-ডাউন, ফ্যাট-ট্রি, ড্রাগনফ্লাই+, অ্যাডাপ্টিভ রাউটিং) এবং প্রতিটি সুইচের লিনিয়ার ফরোয়ার্ডিং টেবিল প্রোগ্রাম করে।
- নিয়মিত বিরতিতে এবং ট্র্যাপ পেলে (পোর্ট আপ/ডাউন) সুইপ চালায় এবং ব্যর্থ অংশ এড়িয়ে রুট নতুন করে বানায়।
- সাবনেট অ্যাডমিনিস্ট্রেটর (SA) চালায়, যা হোস্টের পাথ কোয়েরির উত্তর দেয়।
OpenSM (ওপেন সোর্স) ও ভেন্ডরের ফ্যাব্রিক ম্যানেজার (UFM) এটি বাস্তবায়ন করে; পোর্টের এরর, লিংকের গতি/প্রস্থ নেগোশিয়েশনের ফলাফল এবং অপটিক্সের DDM সব ডিভাইস মিলিয়ে জড়ো হয় এই ফ্যাব্রিক ম্যানেজারেই (লিংকের নির্ভরযোগ্যতা ও মনিটরিং)।
লিংক নেগোশিয়েশন
লিংক আপ হওয়ার সময় দুই প্রান্ত প্রস্থ (1x/2x/4x) ও গতি (প্রতি লেনের রেট) নেগোশিয়েট করে উভয়ের সমর্থিত সর্বোচ্চ মানে পৌঁছায়। প্রত্যাশার চেয়ে 2x-এ বা এক প্রজন্ম ধীরে চালু হওয়া লিংক ইথারনেটের “লিংক 25G-এর বদলে 10G-তে চলছে” সমস্যারই ইনফিনিব্যান্ড-সমতুল্য: কারণ হতে পারে একটি লেনের ফাইবার বা লেজার, সীমার কিনারায় থাকা ক্যাবল, অথবা ট্রান্সিভারের প্রজন্মে অমিল (গতি ও রেট)। নেগোশিয়েট হওয়া অবস্থা ফ্যাব্রিক ম্যানেজার জানায়; হোস্টে সেটি দেখায় ibstat / ibportstate।
ম্যানেজমেন্ট ও ডায়াগনস্টিক টুল
| টুল | উদ্দেশ্য |
|---|---|
ibstat, ibstatus | স্থানীয় পোর্টের অবস্থা, রেট, প্রস্থ, LID |
ibnetdiscover | টপোলজির ডাম্প |
ibdiagnet | পুরো ফ্যাব্রিকের যাচাই: এরর, গতি/প্রস্থের অমিল, ডুপ্লিকেট GUID, ক্যাবলের তথ্য |
perfquery, ibqueryerrors | প্রতি পোর্টের কাউন্টার: সিম্বল এরর, লিংক ডাউন, লিংক রিকভারি, পোর্ট রিসিভ এরর, অতিরিক্ত বাফার ওভাররান, ড্রপ হওয়া VL15, FEC কাউন্টার |
mlxlink, mlxcables | প্রতি পোর্টের PHY-এর বিবরণ এবং ক্যাবল/ট্রান্সিভারের EEPROM, DDM, FEC হিস্টোগ্রাম |
ibportstate | গতি/প্রস্থ জোর করে নির্ধারণ, পোর্ট রিসেট |
সিম্বল এরর ও লিংক রিকভারি ফিজিক্যাল লেয়ারের কাউন্টার, ইথারনেটের CRC/FEC-এর সমতুল্য; এগুলো Rx পাওয়ার ও পরিচ্ছন্নতার সঙ্গে যুক্ত (ফ্যাব্রিক)।
ইনফিনিব্যান্ড বনাম RoCE, এক অনুচ্ছেদে
RoCE v2 একই ভার্বস/RDMA ট্রান্সপোর্টকে UDP/IP/ইথারনেটের ওপর বহন করে; এতে সাবনেট ম্যানেজারের জায়গা নেয় IP রাউটিং, PKey-এর জায়গায় আসে VLAN, আর ক্রেডিটভিত্তিক ফ্লো কন্ট্রোলের বদলে থাকে PFC/ECN (DCQCN), যা লসলেস হতে হলে সঠিকভাবে কনফিগার করতে হয় (লসলেস ইথারনেট, ইন্টারকানেক্ট)। ট্রান্সিভার ফিজিক্যালি একই; শুধু শনাক্তকরণ তথ্যের কোডিং এবং হোস্টের নীতি আলাদা।
CodingBox-এ
ইনফিনিব্যান্ড মডিউল অন্য যেকোনো QSFP/OSFP-এর মতোই পড়া হয়: Check transceiver ও DDM স্ক্রিনে দেখা যায় শনাক্তকরণ তথ্য (SFF-8636-এর byte 164-এ থাকা ইনফিনিব্যান্ড রেট বিট বা CMIS অ্যাপ্লিকেশনসহ), প্রতি লেনের DDM এবং চেকসাম। নির্ধারিত গতির নিচে নেগোশিয়েট করা পোর্টের ক্ষেত্রে দুই প্রান্তের মডিউল টেস্ট বেঞ্চে পড়ে দেখা ভালো।