Giao thức và transport IB: lớp, QP, RDMA, subnet manager · InfiniBand · Công nghệ · Tài liệu · CodingBox
CodingBox Tài liệu

Giao thức và transport IB: lớp, QP, RDMA, subnet manager

InfiniBand được thiết kế ngay từ đầu như một fabric để các máy tính truy cập bộ nhớ lẫn nhau, chứ không phải để trao đổi gói tin giữa những bên xa lạ. Các lớp, cách đánh địa chỉ và cách quản lý của nó trông xa lạ với kỹ sư Ethernet, nhưng lại đơn giản một khi đã nắm được từ vựng — và chính điều đó giải thích vì sao lớp vật lý phải tuân theo các tiêu chuẩn chặt chẽ đến vậy. Trang này là góc nhìn giao thức; phần quang học nằm ở Quang học InfiniBand.

Các lớp

LớpNội dungGhi chú
Physicallàn (1x, 4x, 8x, 12x), tín hiệu theo từng làn (từ NRZ đến PAM4 của HDR… xem tốc độ), mã hóa (8B/10B tới QDR, 64B/66B từ FDR trở đi), FEC (tùy chọn từ FDR, RS-FEC ở HDR/NDR)thế giới của transceiver
Linktiêu đề định tuyến cục bộ (LRH) mang LID, làn ảo (VL0–VL14 dữ liệu, VL15 quản lý), điều khiển luồng theo credit trên từng VL, CRC lớp liên kết (ICRC/VCRC)không mất gói theo thiết kế
Networktiêu đề định tuyến toàn cục (GRH) mang GID 128-bit để định tuyến giữa nhiều subnethiếm khi dùng bên trong một cụm
Transportcặp hàng đợi (QP) gồm hàng đợi gửi/nhận, các kiểu dịch vụ RC/UC/UD/XRC, phân đoạn theo MTU, ACK/NAK cho dịch vụ tin cậyRDMA nằm ở đây
Upperverbs API, MPI, NCCL (qua UCX/SHARP), lưu trữ (SRP, iSER, NVMe/IB), IPoIBnhững gì ứng dụng dùng tới

Đánh địa chỉ và thông tin nhận dạng

Định danhKích thướcGán bởiÝ nghĩa
GUID64-bitnhà sản xuấtthông tin nhận dạng cố định của một cổng, node hoặc hệ thống (giống MAC)
LID (định danh cục bộ)16-bitsubnet managerđịa chỉ trong một subnet; bảng chuyển tiếp dùng LID
GID128-bitSM (tiền tố) + GUIDtiền tố subnet + GUID; dùng giữa các subnet và bởi RoCE
PKey (khóa phân vùng)16-bitSMtư cách thành viên trong một phân vùng (giống VLAN); thành viên đầy đủ/hạn chế
QPN24-bitHCAsố hiệu cặp hàng đợi — điểm cuối trong một cổng

Cặp hàng đợi và các kiểu dịch vụ giao vận

Một cặp hàng đợi (QP) là một hàng đợi gửi và một hàng đợi nhận trong HCA, thuộc sở hữu của một ứng dụng. Các yêu cầu công việc được đưa vào đó do phần cứng thực thi; kết quả hoàn thành được ghi vào một hàng đợi hoàn thành. Các kiểu dịch vụ:

KiểuTin cậyCó kết nốiDùng cho
RC — tin cậy, có kết nốicó (ACK/NAK, truyền lại)có, một QP cho mỗi peerphần lớn lưu lượng RDMA; MPI, NCCL, lưu trữ
UC — không tin cậy, có kết nốikhôngcóhiếm gặp
UD — không tin cậy, datagramkhôngkhông, một QP dùng chung cho mọi peerquản lý, IPoIB, multicast
XRC — tin cậy mở rộng, có kết nốicóhàng đợi nhận dùng chung giữa các tiến trìnhcác tác vụ MPI lớn, để giảm số lượng QP
RD — tin cậy, datagramcókhônggần như không được dùng

Các thao tác RDMA (READ, WRITE, atomic) di chuyển dữ liệu trực tiếp giữa các buffer ứng dụng trên hai host mà không CPU nào phải sao chép dữ liệu đó; SEND/RECEIVE mang các thông điệp. Bộ nhớ phải được đăng ký (ghim lại và được cấp một khóa) trước khi HCA có thể chạm vào nó. GPUDirect RDMA mở rộng cơ chế này sang bộ nhớ GPU (Fabric GPU).

Điều khiển luồng và MTU

Mọi liên kết đều chạy điều khiển luồng theo credit trên từng làn ảo: bên nhận thông báo dung lượng buffer còn trống, bên gửi không bao giờ truyền nhiều hơn mức bên nhận có thể hấp thụ. Không khung nào bị rớt vì nghẽn mạng; thay vào đó, áp lực nghẽn lan truyền ngược về nguồn — cùng một sự đánh đổi như credit của Fibre Channel, và cũng là lý do một liên kết chậm hoặc lỗi duy nhất làm suy giảm cả một tác vụ. MTU của liên kết là 256–4096 byte (thường là 4096); MTU của đường đi được thỏa thuận từ đầu đến cuối. Mức dịch vụ (SL) ánh xạ vào các VL để tách riêng các lớp lưu lượng, và định tuyến thích ứng có thể lái luồng dữ liệu tránh các liên kết đang nghẽn.

Subnet manager

Mỗi subnet chỉ có đúng một subnet manager (SM) hoạt động (các subnet manager khác ở chế độ chờ). Nó:

  1. Khám phá cấu trúc mạng bằng cách duyệt khắp fabric bằng các gói quản lý định tuyến trực tiếp (SMP trên VL15/QP0) — tới từng cổng switch và HCA.
  2. Gán LID và cấu hình các cổng (tốc độ, độ rộng, MTU, phân xử VL, PKey).
  3. Tính toán tuyến đường — min-hop, up-down, fat-tree, dragonfly+, định tuyến thích ứng — và nạp vào bảng chuyển tiếp tuyến tính của từng switch.
  4. Quét lại định kỳ và khi có trap (cổng up/down), định tuyến lại để tránh các điểm lỗi.
  5. Chạy subnet administrator (SA), thành phần trả lời các truy vấn đường đi từ host.

OpenSM (mã nguồn mở) và các fabric manager của nhà sản xuất (UFM) hiện thực chức năng này; fabric manager cũng là nơi lỗi cổng, kết quả thỏa thuận tốc độ/độ rộng liên kết và DDM quang học được thu thập trên toàn hệ thống (Độ tin cậy liên kết & giám sát).

Thỏa thuận liên kết

Khi liên kết lên, cả hai đầu thỏa thuận độ rộng (1x/2x/4x) và tốc độ (tốc độ trên từng làn) theo giá trị chung cao nhất. Một liên kết lên ở 2x hoặc chậm hơn một thế hệ so với kỳ vọng chính là phiên bản InfiniBand của hiện tượng Ethernet “lên liên kết ở 10G, không phải 25G”: sợi quang hoặc laser của một làn có vấn đề, cáp cận biên, hoặc lệch thế hệ transceiver (Tốc độ & tốc độ truyền). Fabric manager báo cáo trạng thái đã thỏa thuận; ibstat / ibportstate hiển thị trạng thái đó trên host.

Công cụ quản lý và chẩn đoán

Công cụMục đích
ibstat, ibstatustrạng thái cổng cục bộ, tốc độ truyền, độ rộng, LID
ibnetdiscoverkết xuất cấu trúc mạng
ibdiagnetkiểm tra toàn fabric: lỗi, lệch tốc độ truyền/độ rộng, GUID trùng lặp, thông tin cáp
perfquery, ibqueryerrorsbộ đếm theo từng cổng: lỗi symbol, liên kết rớt, liên kết phục hồi, lỗi nhận tại cổng, tràn buffer quá mức, gói VL15 bị rớt, bộ đếm FEC
mlxlink, mlxcableschi tiết PHY theo từng cổng và EEPROM cáp/transceiver, DDM, histogram FEC
ibportstateép tốc độ truyền/độ rộng, reset một cổng

Lỗi symbol và số lần liên kết phục hồi là các bộ đếm ở lớp vật lý — tương đương với CRC/FEC của Ethernet, gắn liền với công suất Rx và độ sạch của đầu nối quang (Fabric).

InfiniBand so với RoCE trong một đoạn

RoCE v2 mang cùng một lớp giao vận verbs/RDMA trên nền UDP/IP/Ethernet; nó thay subnet manager bằng định tuyến IP, và PKey bằng VLAN, đồng thời thay điều khiển luồng credit bằng PFC/ECN (DCQCN) — cơ chế này phải được cấu hình đúng thì mới không mất gói (Ethernet không mất gói, Kết nối liên thông). Bản thân transceiver về mặt vật lý là như nhau; chỉ khác ở cách mã hóa thông tin nhận dạng và chính sách của host.

Trong CodingBox

Module InfiniBand được đọc như mọi QSFP/OSFP khác: thông tin nhận dạng (kể cả các bit tốc độ truyền InfiniBand trong byte 164 của SFF-8636 hoặc trong các application của CMIS), DDM theo từng làn và checksum, trên Check transceiver và DDM. Một cổng đang thỏa thuận ở tốc độ thấp hơn mức danh định thì đáng để đọc cả hai đầu trên bàn thử.


Nếu bạn phát hiện thông tin chưa chính xác hoặc lỗi trong bài viết này, hãy chọn đoạn liên quan và nhấn Ctrl+Enter để .