Protokol dan transport IB: lapisan, QP, RDMA, manajer subnet
InfiniBand dirancang sejak awal sebagai fabric untuk komputer yang saling mengakses memori satu sama lain, bukan untuk paket antar pihak yang tidak saling kenal. Lapisan, pengalamatan, dan manajemennya terlihat asing bagi engineer Ethernet, tetapi sederhana begitu kosakatanya dikuasai — dan hal ini menjelaskan mengapa lapisan fisik dipegang pada standar yang begitu ketat. Halaman ini adalah sudut pandang protokol; optiknya ada di Optik InfiniBand.
Lapisan
| Lapisan | Isi | Catatan |
|---|---|---|
| Fisik | lane (1x, 4x, 8x, 12x), sinyal per lane (NRZ hingga PAM4 pada HDR… lihat kecepatan), pengkodean (8B/10B hingga QDR, 64B/66B mulai FDR), FEC (opsional mulai FDR, RS-FEC pada HDR/NDR) | dunia transceiver |
| Link | local routing header (LRH) dengan LID, virtual lane (VL0–VL14 data, VL15 manajemen), flow control berbasis credit per VL, CRC lapisan link (ICRC/VCRC) | lossless sejak dirancang |
| Jaringan | global routing header (GRH) dengan GID 128-bit untuk routing lintas-subnet | jarang dipakai di dalam satu klaster |
| Transport | queue pair (QP) dengan send queue/receive queue, tipe layanan RC/UC/UD/XRC, segmentasi hingga MTU, ACK/NAK untuk layanan reliable | RDMA berada di sini |
| Atas | verbs API, MPI, NCCL (via UCX/SHARP), penyimpanan (SRP, iSER, NVMe/IB), IPoIB | yang dipakai aplikasi |
Pengalamatan dan identitas
| Pengenal | Ukuran | Ditetapkan oleh | Arti |
|---|---|---|---|
| GUID | 64-bit | produsen | identitas permanen sebuah port, node, atau sistem (seperti alamat MAC) |
| LID (local identifier) | 16-bit | subnet manager | alamat di dalam subnet; forwarding table memakai LID |
| GID | 128-bit | SM (prefix) + GUID | prefix subnet + GUID; dipakai lintas subnet dan oleh RoCE |
| PKey (partition key) | 16-bit | SM | keanggotaan dalam sebuah partition (seperti VLAN); anggota penuh/terbatas |
| QPN | 24-bit | HCA | nomor queue pair — endpoint di dalam sebuah port |
Queue pair dan layanan transport
Sebuah queue pair adalah satu send queue dan satu receive queue di dalam HCA, dimiliki oleh sebuah aplikasi. Work request yang diposting ke situ dijalankan oleh perangkat keras; completion mendarat di sebuah completion queue. Tipe layanan:
| Tipe | Reliable | Connected | Kegunaan |
|---|---|---|---|
| RC — reliable connected | ya (ACK/NAK, retransmit) | ya, satu QP per peer | sebagian besar trafik RDMA; MPI, NCCL, penyimpanan |
| UC — unreliable connected | tidak | ya | jarang |
| UD — unreliable datagram | tidak | tidak, satu QP untuk semua peer | manajemen, IPoIB, multicast |
| XRC — extended reliable connected | ya | receive queue dibagi antar proses | job MPI besar untuk memangkas jumlah QP |
| RD — reliable datagram | ya | tidak | pada dasarnya tidak dipakai |
RDMA operations (READ, WRITE, atomic) memindahkan data langsung antar buffer aplikasi pada dua host tanpa CPU mana pun menyalinnya; SEND/RECEIVE membawa pesan. Memori harus diregistrasikan (di-pin dan diberi kunci) sebelum HCA boleh menyentuhnya. GPUDirect RDMA memperluas ini ke memori GPU (Fabric GPU).
Flow control dan MTU
Setiap link menjalankan flow control berbasis credit per virtual lane: penerima mengumumkan ruang buffer yang tersedia, pengirim tidak pernah mengirim lebih dari yang dapat diserap. Tidak ada frame yang dibuang karena kongesti; sebagai gantinya, back-pressure merambat — trade-off yang sama dengan credit Fibre Channel dan alasan satu link yang lambat atau bermasalah menurunkan kinerja seluruh job. MTU link adalah 256–4096 byte (umumnya 4096); MTU path dinegosiasikan end to end. Service level (SL) dipetakan ke VL untuk memisahkan kelas trafik, dan adaptive routing dapat mengarahkan flow menghindari link yang padat.
Subnet manager
Tepat satu subnet manager (SM) aktif per subnet (yang lain siaga). Subnet manager:
- Menemukan topologi dengan menjelajahi fabric memakai paket manajemen directed-route (SMP di VL15/QP0) — setiap port switch dan HCA.
- Menetapkan LID dan mengonfigurasi port (kecepatan, lebar, MTU, arbitrase VL, PKey).
- Menghitung rute — min-hop, up-down, fat-tree, dragonfly+, adaptive routing — dan memprogram linear forwarding table setiap switch.
- Menyapu secara berkala dan saat ada trap (port naik/turun), merutekan ulang di sekitar kegagalan.
- Menjalankan subnet administrator (SA) yang menjawab query jalur dari host.
OpenSM (open source) dan fabric manager vendor (UFM) mengimplementasikannya; fabric manager juga menjadi tempat error port, hasil negosiasi kecepatan/lebar link, dan DDM optik dikumpulkan untuk seluruh armada (Keandalan & pemantauan link).
Negosiasi link
Saat link naik, kedua ujung menegosiasikan lebar (1x/2x/4x) dan kecepatan (rate per lane) ke nilai tertinggi yang sama-sama didukung. Link yang naik pada 2x atau satu generasi lebih lambat dari yang diharapkan adalah padanan InfiniBand dari “link di 10G, bukan 25G” pada Ethernet: serat optik atau laser satu lane, kabel yang marginal, atau generasi transceiver yang tidak cocok (Kecepatan & rate). Fabric manager melaporkan status yang dinegosiasikan; ibstat / ibportstate menampilkannya pada host.
Perkakas manajemen dan diagnostik
| Perkakas | Kegunaan |
|---|---|
ibstat, ibstatus | status port lokal, rate, lebar, LID |
ibnetdiscover | dump topologi |
ibdiagnet | pemeriksaan fabric-wide: error, ketidakcocokan kecepatan/lebar, GUID duplikat, informasi kabel |
perfquery, ibqueryerrors | counter per port: symbol error, link downed, link recovery, port rcv error, excessive buffer overrun, VL15 dropped, counter FEC |
mlxlink, mlxcables | detail PHY per port dan EEPROM kabel/transceiver, DDM, histogram FEC |
ibportstate | memaksa kecepatan/lebar, mereset sebuah port |
Symbol error dan link recovery adalah counter lapisan fisik — padanan dari CRC/FEC Ethernet, terkait dengan daya Rx dan kebersihan (Fabric).
InfiniBand vs RoCE dalam satu paragraf
RoCE v2 membawa transport verbs/RDMA yang sama lewat UDP/IP/Ethernet; RoCE menggantikan subnet manager dengan routing IP dan PKey dengan VLAN, serta menggantikan flow control berbasis credit dengan PFC/ECN (DCQCN) — yang harus dikonfigurasi dengan benar agar lossless (Ethernet lossless, Interconnect). Transceivernya secara fisik sama; hanya pengkodean identitas dan kebijakan host yang berbeda.
Di CodingBox
Modul InfiniBand dibaca seperti QSFP/OSFP mana pun: identitas (termasuk bit rate InfiniBand di byte 164 SFF-8636 atau aplikasi CMIS), DDM per lane, dan checksum pada Check transceiver dan DDM. Port yang bernegosiasi di bawah kecepatan nominalnya layak dibaca di meja kerja pada kedua ujungnya.