IB protokolü ve taşıma: katmanlar, QP’ler, RDMA, subnet yöneticisi · InfiniBand · Teknolojiler · Belgeler · CodingBox
CodingBox Belgeler

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İçerikNotlar
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şımagönderme/alma kuyruklu kuyruk çiftleri (QP), RC/UC/UD/XRC servis türleri, MTU’ya bölümleme, güvenilir servis için ACK/NAKRDMA burada yaşar
Üstverbs API, MPI, NCCL (UCX/SHARP üzerinden), depolama (SRP, iSER, NVMe/IB), IPoIBuygulamaların kullandığı katman

Adresleme ve kimlik

TanımlayıcıBoyutAtayanAnlam
GUID64-bitüreticibir portun, düğümün veya sistemin kalıcı kimliği (bir MAC gibi)
LID (yerel tanımlayıcı)16-bitalt ağ yöneticisibir alt ağ içindeki adres; yönlendirme tabloları LID kullanır
GID128-bitSM (önek) + GUIDalt ağ öneki + GUID; alt ağlar arasında ve RoCE tarafından kullanılır
PKey (bölüm anahtarı)16-bitSMbir bölüme üyelik (bir VLAN gibi); tam/sınırlı üyeler
QPN24-bitHCAkuyruk ç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ürGüvenilirBağ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ırevetnadir
UD — güvenilmez datagramhayırhayır, tüm eşler için tek bir QPyönetim, IPoIB, çoklu yayın
XRC — genişletilmiş güvenilir bağlantılıevetsüreçler arasında paylaşılan alma kuyruklarıQP sayısını azaltmak için büyük MPI işleri
RD — güvenilir datagramevethayırneredeyse 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:

  1. Fabric’i, yönlendirilmiş rotalı yönetim paketleriyle (VL15/QP0 üzerinde SMP’ler) dolaşarak topolojiyi keşfeder — her anahtarı ve HCA portunu.
  2. LID’ler atar ve portları yapılandırır (hız, genişlik, MTU, VL tahkimi, PKey’ler).
  3. Rotaları hesaplar — min-hop, up-down, fat-tree, dragonfly+, uyarlamalı yönlendirme — ve her anahtarın doğrusal yönlendirme tablosunu programlar.
  4. Belirli aralıklarla ve trap’lerde (port yukarı/aşağı) tarama yapar, arızaların etrafından yeniden yönlendirir.
  5. 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, ibstatusyerel port durumu, hız, genişlik, LID
ibnetdiscovertopoloji dökümü
ibdiagnetfabric genelinde denetim: hatalar, hız/genişlik uyuşmazlıkları, yinelenen GUID’ler, kablo bilgisi
perfquery, ibqueryerrorsport 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, mlxcablesport başına PHY ayrıntıları ve kablo/alıcı-verici EEPROM’u, DDM, FEC histogramı
ibportstatehı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.


Bu materyalde bir yanlışlık veya hata bulursanız ilgili bölümü seçin ve Ctrl+Enter tuşlarına basarak .