Cơ bản về giao thức FC: lớp, cổng, đăng nhập, phân vùng
Fibre Channel trông giống Ethernet ở mức SFP — cùng cage, quang học tương tự — nhưng phía trên đó thì không giống chút nào. Đây là phương thức truyền tải không mất gói, hướng kết nối, được xây dựng cho lưu trữ: mọi khung đều được kỳ vọng sẽ đến nơi, đúng thứ tự, và fabric biết từng thiết bị qua một cái tên được khắc sẵn. Trang này trình bày các lớp giao thức, loại cổng, cách đánh địa chỉ, trình tự đăng nhập và phân vùng — thứ từ vựng cần thiết để đọc một switch SAN và hiểu vì sao quang học của nó bị kiểm soát chặt chẽ đến vậy.
Các lớp
| Lớp | Tên | Nội dung | Liên quan đến quang học |
|---|---|---|---|
| FC-0 | vật lý | môi trường truyền dẫn, đầu nối, bộ phát, bộ thu, tốc độ | chính là SFP: Quang học FC, tốc độ |
| FC-1 | truyền dẫn | mã hóa 8B/10B tới 8GFC, 64B/66B từ 16GFC trở lên; ordered set; FEC ở 16GFC (tùy chọn) và từ 32GFC (bắt buộc) | byte mã hóa, bộ đếm FEC |
| FC-2 | đóng khung & điều khiển luồng | khung (tải trọng tới 2112 byte), sequence, exchange, các lớp dịch vụ, buffer-to-buffer credit | credit quyết định cự ly — Thiết kế SAN |
| FC-3 | dịch vụ chung | multicast, hunt group (hiếm khi dùng) | — |
| FC-4 | ánh xạ giao thức | SCSI (FCP), NVMe (FC-NVMe), FICON, IP over FC | NVMe qua fabric |
Loại cổng
| Cổng | Vai trò |
|---|---|
| N_Port | cổng nút mạng — một cổng HBA hoặc cổng mảng lưu trữ |
| F_Port | cổng fabric trên switch, nối với một N_Port |
| E_Port | cổng mở rộng — liên kết giữa các switch (ISL) |
| NL_Port / FL_Port | biến thể cho arbitrated loop (thế hệ cũ) |
| G_Port / U_Port | cổng chung/vạn năng — một cổng switch trở thành F hoặc E khi nó nhận biết được thứ gì đang gắn vào |
| TE_Port / EX_Port | E_Port có trunking (trunk VSAN của Cisco) / cổng router giữa các fabric |
| D_Port | cổng chẩn đoán — chạy kiểm tra loopback quang và điện trên một liên kết (Brocade) |
Tên và địa chỉ
| Định danh | Kích thước | Ý nghĩa |
|---|---|---|
| WWNN — World Wide Node Name | 64-bit | thiết bị (HBA, bộ điều khiển mảng lưu trữ) |
| WWPN — World Wide Port Name | 64-bit | từng cổng; thông tin nhận dạng dùng để phân vùng và giới hạn quyền truy cập |
| FCID (N_Port ID) | 24-bit | địa chỉ do fabric cấp: Domain (switch) / Area / Port; thay đổi nếu thiết bị di chuyển |
| Địa chỉ đã biết trước | FFFFFC máy chủ tên, FFFFFD bộ điều khiển fabric, FFFFFE máy chủ đăng nhập fabric, FFFFFA máy chủ quản lý | dịch vụ fabric |
WWN được khắc sẵn vào HBA và cổng mảng lưu trữ; chúng không đổi theo hệ thống cáp — đó là lý do phân vùng theo WWPN vẫn đúng sau khi đấu lại cáp, còn phân vùng theo cổng thì không.
Trình tự đăng nhập
- Khởi tạo liên kết — đàm phán tốc độ (mỗi bên thử tốc độ của mình từ cao xuống thấp; lệch tốc độ hoặc quang học cận biên sẽ lộ ra ở bước này), sau đó là các primitive sequence cho tới khi cả hai đầu đồng bộ.
- FLOGI (đăng nhập fabric) — N_Port yêu cầu switch cấp một FCID và đàm phán buffer credit, lớp dịch vụ và kích thước khung.
- PLOGI (đăng nhập cổng) — từ N_Port tới N_Port (hoặc tới name server) để thiết lập một phiên.
- PRLI (đăng nhập tiến trình) — đàm phán giao thức FC-4 (SCSI hoặc NVMe) và các tham số của nó.
- Đăng ký và truy vấn name server — thiết bị đăng ký WWPN/FCID của nó và biết được những target đã phân vùng nào tồn tại; thông báo RSCN loan báo các thay đổi về sau.
Một cổng kẹt trước FLOGI là sự cố lớp vật lý (quang học, cáp, tốc độ); kẹt sau FLOGI là sự cố fabric/phân vùng (Chẩn đoán cổng).
Các lớp dịch vụ và điều khiển luồng
| Lớp | Hành vi | Sử dụng |
|---|---|---|
| Class 1 | kết nối chuyên dụng | đã lỗi thời |
| Class 2 | phi kết nối, có xác nhận | hiếm dùng |
| Class 3 | datagram phi kết nối, không xác nhận — nhưng không bao giờ bị fabric loại bỏ nhờ có credit | gần như toàn bộ lưu lượng lưu trữ |
| Class F | điều khiển giữa các switch | dịch vụ fabric |
Buffer-to-buffer credit (BB_Credit): bên nhận cấp một số lượng bộ đệm khung nhất định; bên gửi chỉ được truyền tối đa số khung đó trước khi nhận được xác nhận R_RDY. Không có gì bị loại bỏ; khi hết credit, bên gửi sẽ chờ — đây là cơ chế đứng sau hành vi không mất gói, giới hạn khoảng cách và tắc nghẽn slow-drain (Thiết kế SAN).
Phân vùng và giới hạn truy cập
- Phân vùng (zoning) trên switch giới hạn WWPN nào được nhìn thấy WWPN nào; phân vùng một initiator (single-initiator zoning — một cổng HBA với các target của nó) là chuẩn mực phổ biến. Hãy phân vùng theo WWPN, không phải theo cổng.
- Giới hạn quyền truy cập LUN (LUN masking) trên mảng lưu trữ giới hạn WWPN nào được truy cập vào volume nào.
- VSAN (Cisco) / Virtual Fabrics (Brocade) chia một switch thành các fabric độc lập; NPIV cho phép một N_Port trình diện nhiều WWPN (máy ảo, blade enclosure).
- Sự cố phân vùng trông giống như “không có thiết bị nào” sau khi đăng nhập thành công — hãy kiểm tra name server và tập vùng đang hoạt động trước khi đụng vào quang học.
Đàm phán tốc độ và quang học
Cổng FC tự động đàm phán tốc độ chung cao nhất (ví dụ 32/16/8GFC). SFP phải hỗ trợ tốc độ đã đàm phán: một SFP 16G trong một cổng 32G sẽ giới hạn cổng đó ở 16G; một cổng tốc độ cố định với một thiết bị quang thuộc thế hệ khác sẽ hoàn toàn không lên được liên kết. SFP của FC được mã hóa bằng các bit tốc độ và môi trường của FC thay vì mã Ethernet (Mã tuân thủ), và switch SAN thực thi việc kiểm soát thương hiệu nhà sản xuất rất nghiêm ngặt (Quang học FC).
Trong CodingBox
Với một SFP FC, màn hình Check transceiver giải mã các bit tốc độ, môi trường và cự ly của FC (byte 7–10, 62) để bạn thấy được module khai báo những thế hệ nào trước khi nó được đưa vào một fabric sẽ đàm phán những thông số đó.