IB protokolü ve taşıma: katmanlar, QP’ler, RDMA, subnet yöneticisi
InfiniBand, en başından itibaren birbirinin belleğiyle konuşan bilgisayarlar için bir fabric olarak tasarlandı, birbirini tanımayan taraflar arasında paket taşımak için değil. Katmanları, adresleme ve yönetimi Ethernet mühendislerine tanıdık gelmez, ama kelime dağarcığı yerine oturduğunda basittirler — ve fiziksel katmanın neden bu kadar sıkı standartlara bağlı tutulduğunu da açıklarlar. Bu sayfa protokol görünümüdür; optikler InfiniBand optikleri sayfasındadır.
Katmanlar
| Katman | İçerik | Notlar |
|---|---|---|
| Fiziksel | şeritler (1x, 4x, 8x, 12x), şerit başına sinyalleme (NRZ’den HDR’nin PAM4’üne… bkz. hızlar), kodlama (QDR’ye kadar 8B/10B, FDR’den itibaren 64B/66B), FEC (FDR’den itibaren isteğe bağlı, HDR/NDR’de RS-FEC) | alıcı-vericinin dünyası |
| Bağlantı | LID’li yerel yönlendirme başlığı (LRH), sanal şeritler (VL0–VL14 veri, VL15 yönetim), VL başına kredi tabanlı akış kontrolü, bağlantı katmanı CRC’si (ICRC/VCRC) | tasarım gereği kayıpsız |
| Ağ | çoklu alt ağ yönlendirmesi için 128 bit GID’li küresel yönlendirme başlığı (GRH) | tek bir küme içinde nadiren kullanılır |
| Taşıma | gönderme/alma kuyruklu kuyruk çiftleri (QP), RC/UC/UD/XRC servis türleri, MTU’ya bölümleme, güvenilir servis için ACK/NAK | RDMA burada yaşar |
| Üst | verbs API, MPI, NCCL (UCX/SHARP üzerinden), depolama (SRP, iSER, NVMe/IB), IPoIB | uygulamaların kullandığı katman |
Adresleme ve kimlik
| Tanımlayıcı | Boyut | Atayan | Anlam |
|---|---|---|---|
| GUID | 64-bit | üretici | bir portun, düğümün veya sistemin kalıcı kimliği (bir MAC gibi) |
| LID (yerel tanımlayıcı) | 16-bit | alt ağ yöneticisi | bir alt ağ içindeki adres; yönlendirme tabloları LID kullanır |
| GID | 128-bit | SM (önek) + GUID | alt ağ öneki + GUID; alt ağlar arasında ve RoCE tarafından kullanılır |
| PKey (bölüm anahtarı) | 16-bit | SM | bir bölüme üyelik (bir VLAN gibi); tam/sınırlı üyeler |
| QPN | 24-bit | HCA | kuyruk çifti numarası — bir port içindeki uç nokta |
Kuyruk çiftleri ve taşıma servisleri
Bir kuyruk çifti, HCA’da bir uygulamaya ait bir gönderme kuyruğu ve bir alma kuyruğudur. Ona gönderilen iş istekleri donanım tarafından yürütülür; tamamlanmalar bir tamamlama kuyruğuna düşer. Servis türleri:
| Tür | Güvenilir | Bağlantılı | Kullanım |
|---|---|---|---|
| RC — güvenilir bağlantılı | evet (ACK/NAK, yeniden iletim) | evet, eş başına bir QP | çoğu RDMA trafiği; MPI, NCCL, depolama |
| UC — güvenilmez bağlantılı | hayır | evet | nadir |
| UD — güvenilmez datagram | hayır | hayır, tüm eşler için tek bir QP | yönetim, IPoIB, çoklu yayın |
| XRC — genişletilmiş güvenilir bağlantılı | evet | süreçler arasında paylaşılan alma kuyrukları | QP sayısını azaltmak için büyük MPI işleri |
| RD — güvenilir datagram | evet | hayır | neredeyse hiç kullanılmaz |
RDMA işlemleri (READ, WRITE, atomic), iki host üzerindeki uygulama tamponları arasında verileri hiçbir CPU’nun kopyalamasına gerek kalmadan doğrudan taşır; SEND/RECEIVE ise mesaj taşır. HCA’nın belleğe dokunabilmesi için bellek önce kaydedilmelidir (sabitlenmeli ve bir anahtar verilmelidir). GPUDirect RDMA bunu GPU belleğine kadar genişletir (GPU fabric’leri).
Akış kontrolü ve MTU
Her bağlantı, sanal şerit başına kredi tabanlı akış kontrolü çalıştırır: alıcı tampon alanını bildirir, gönderici kaldırabileceğinden fazlasını asla iletmez. Tıkanıklık nedeniyle hiçbir çerçeve düşürülmez; bunun yerine geri basınç yayılır — Fibre Channel kredilerindeki ödünleşimin aynısıdır ve tek bir yavaş veya hatalı bağlantının bütün bir işi düşürmesinin nedeni budur. Bağlantı MTU’su 256–4096 bayttır (4096 tipiktir); yol MTU’su uçtan uca üzerinde anlaşılır. Servis seviyeleri (SL), trafik sınıflarını ayırmak için VL’lere eşlenir ve uyarlamalı yönlendirme, akışları tıkanık bağlantıların etrafına yönlendirebilir.
Alt ağ yöneticisi
Her alt ağda tam olarak bir alt ağ yöneticisi (SM) etkindir (diğerleri yedekte bekler). Alt ağ yöneticisi şunları yapar:
- Fabric’i, yönlendirilmiş rotalı yönetim paketleriyle (VL15/QP0 üzerinde SMP’ler) dolaşarak topolojiyi keşfeder — her anahtarı ve HCA portunu.
- LID’ler atar ve portları yapılandırır (hız, genişlik, MTU, VL tahkimi, PKey’ler).
- Rotaları hesaplar — min-hop, up-down, fat-tree, dragonfly+, uyarlamalı yönlendirme — ve her anahtarın doğrusal yönlendirme tablosunu programlar.
- Belirli aralıklarla ve trap’lerde (port yukarı/aşağı) tarama yapar, arızaların etrafından yeniden yönlendirir.
- Hostlardan gelen yol sorgularını yanıtlayan alt ağ idarecisini (SA) çalıştırır.
OpenSM (açık kaynak) ve satıcıların fabric yöneticileri (UFM) bunu uygular; port hataları, bağlantı hız/genişlik anlaşma sonuçları ve optik DDM’lerinin filo genelinde toplandığı yer de yine fabric yöneticisidir (Bağlantı güvenilirliği ve izleme).
Bağlantı anlaşması
Bağlantı kalktığında her iki uç da genişlik (1x/2x/4x) ve hız (şerit başına oran) konusunda en yüksek ortak değerde anlaşır. Beklenenden 2x’te veya bir nesil daha yavaş kalkan bir bağlantı, Ethernet’teki “10G’de bağlanıyor, 25G’de değil” durumunun InfiniBand karşılığıdır: bir şeridin fiberi veya lazeri, sınırda bir kablo ya da uyuşmayan bir alıcı-verici nesli söz konusudur (Hız ve oran). Fabric yöneticisi, üzerinde anlaşılan durumu bildirir; bir hostta bunu ibstat / ibportstate gösterir.
Yönetim ve tanılama araçları
| Araç | Amaç |
|---|---|
ibstat, ibstatus | yerel port durumu, hız, genişlik, LID |
ibnetdiscover | topoloji dökümü |
ibdiagnet | fabric genelinde denetim: hatalar, hız/genişlik uyuşmazlıkları, yinelenen GUID’ler, kablo bilgisi |
perfquery, ibqueryerrors | port başına sayaçlar: sembol hataları, bağlantı düşmesi, bağlantı kurtarma, port alım hataları, aşırı tampon taşması, VL15 düşürülmesi, FEC sayaçları |
mlxlink, mlxcables | port başına PHY ayrıntıları ve kablo/alıcı-verici EEPROM’u, DDM, FEC histogramı |
ibportstate | hızı/genişliği zorla, bir portu sıfırla |
Sembol hataları ve bağlantı kurtarmaları, fiziksel katman sayaçlarıdır — Ethernet CRC/FEC’inin karşılığıdır ve Rx gücüne ve temizliğe bağlıdır (Fabric).
InfiniBand ile RoCE, tek paragrafta
RoCE v2, aynı verbs/RDMA taşımasını UDP/IP/Ethernet üzerinden taşır; alt ağ yöneticisinin yerine IP yönlendirmesini, PKey’lerin yerine VLAN’ları koyar ve kredi akış kontrolünün yerine PFC/ECN (DCQCN) koyar — bunun kayıpsız olması için doğru yapılandırılması gerekir (Kayıpsız Ethernet, Ara bağlantılar). Alıcı-vericiler fiziksel olarak aynıdır; yalnızca kimlik kodlaması ve host politikaları farklıdır.
CodingBox’ta
InfiniBand modülleri, herhangi bir QSFP/OSFP gibi okunur: kimlik (SFF-8636 bayt 164’teki veya CMIS uygulamalarındaki InfiniBand hız bitleri dahil), şerit başına DDM ve sağlama toplamları Check transceiver ve DDM ekranlarında bulunur. Değerlendirilen hızının altında anlaşan bir port, her iki ucun da tezgâhta okunmasını hak eder.