พื้นฐานโปรโตคอล FC: เลเยอร์ พอร์ต การล็อกอิน และการแบ่งโซน
Fibre Channel ดูเหมือน Ethernet ที่ระดับ SFP — เคจแบบเดียวกัน ออปติกส์คล้ายกัน — แต่พฤติกรรมข้างบนนั้นแตกต่างไปโดยสิ้นเชิง มันเป็นการขนส่งที่ไม่มีการสูญเสียและเน้นการเชื่อมต่อ สร้างมาเพื่อสตอเรจโดยเฉพาะ: ทุกเฟรมถูกคาดหวังให้มาถึงตามลำดับ และฟาบริกรู้จักอุปกรณ์ทุกตัวด้วยชื่อที่ฝังตายตัวมาจากโรงงาน หน้านี้ครอบคลุมเลเยอร์โพรโทคอล ชนิดพอร์ต การกำหนดที่อยู่ ลำดับการล็อกอิน และโซนนิ่ง — คำศัพท์ที่จำเป็นสำหรับอ่านสวิตช์ SAN และเข้าใจว่าทำไมออปติกส์ของมันจึงถูกควบคุมอย่างเข้มงวดขนาดนี้
เลเยอร์
| เลเยอร์ | ชื่อ | เนื้อหา | ความเกี่ยวข้องกับออปติกส์ |
|---|---|---|---|
| FC-0 | ฟิสิคัล | สื่อนำสัญญาณ, คอนเนกเตอร์, ตัวส่ง, ตัวรับ, อัตราส่ง | ตัว SFP: ออปติกส์ของ FC, ความเร็ว |
| FC-1 | การส่งสัญญาณ | การเข้ารหัส 8B/10B จนถึง 8GFC, 64B/66B ตั้งแต่ 16GFC ขึ้นไป; ออร์เดอร์เซต; FEC ที่ 16GFC (ทางเลือก) และ 32GFC ขึ้นไป (บังคับ) | ไบต์การเข้ารหัส, ตัวนับ FEC |
| FC-2 | การจัดเฟรมและการควบคุมการไหล | เฟรม (เพย์โหลดสูงสุด 2112 ไบต์), ซีเควนซ์, เอ็กซ์เชนจ์, คลาสบริการ, เครดิตบัฟเฟอร์ต่อบัฟเฟอร์ | เครดิตเป็นตัวกำหนดระยะทาง — การออกแบบ SAN |
| FC-3 | บริการร่วม | มัลติแคสต์, กลุ่มฮันต์ (ไม่ค่อยได้ใช้) | — |
| FC-4 | การแมปโพรโทคอล | SCSI (FCP), NVMe (FC-NVMe), FICON, IP over FC | NVMe over fabrics |
ชนิดพอร์ต
| พอร์ต | บทบาท |
|---|---|
| N_Port | พอร์ตโหนด — พอร์ตของ HBA หรืออาร์เรย์สตอเรจ |
| F_Port | พอร์ตฟาบริกบนสวิตช์ เชื่อมต่อกับ N_Port |
| E_Port | พอร์ตขยาย — ลิงก์ระหว่างสวิตช์ (ISL) ระหว่างสวิตช์ด้วยกัน |
| NL_Port / FL_Port | รูปแบบของลูปแบบอาร์บิเทรต (รุ่นเก่า) |
| G_Port / U_Port | ทั่วไป/สากล — พอร์ตสวิตช์ที่จะกลายเป็น F หรือ E เมื่อรู้ว่ามีอะไรเชื่อมต่ออยู่ |
| TE_Port / EX_Port | E_Port แบบทรังก์ (ทรังก์ VSAN ของ Cisco) / พอร์ตเราเตอร์ระหว่างฟาบริก |
| D_Port | พอร์ตวินิจฉัย — รันการทดสอบลูปแบ็กทั้งเชิงแสงและเชิงไฟฟ้าบนลิงก์ (Brocade) |
ชื่อและที่อยู่
| ตัวระบุ | ขนาด | ความหมาย |
|---|---|---|
| WWNN — World Wide Node Name | 64 บิต | อุปกรณ์ (HBA, ตัวควบคุมอาร์เรย์) |
| WWPN — World Wide Port Name | 64 บิต | แต่ละพอร์ต; ข้อมูลระบุตัวตนที่ใช้ในการทำโซนนิ่งและมาสก์ |
| FCID (N_Port ID) | 24 บิต | ที่อยู่ที่ฟาบริกกำหนดให้: Domain (สวิตช์) / Area / Port; เปลี่ยนแปลงหากอุปกรณ์ย้ายตำแหน่ง |
| ที่อยู่ที่รู้จักกันทั่วไป | FFFFFC เนมเซิร์ฟเวอร์, FFFFFD ตัวควบคุมฟาบริก, FFFFFE เซิร์ฟเวอร์ล็อกอินฟาบริก, FFFFFA เซิร์ฟเวอร์จัดการ | บริการของฟาบริก |
WWN ถูกฝังตายตัวอยู่ใน HBA และพอร์ตของอาร์เรย์ ไม่เปลี่ยนแปลงตามการเดินสาย — นี่คือเหตุผลที่การทำโซนนิ่งด้วย WWPN รอดพ้นจากการเดินสายใหม่ได้ ในขณะที่การทำโซนนิ่งด้วยพอร์ตทำไม่ได้
ลำดับการล็อกอิน
- การเริ่มต้นลิงก์ — การเจรจาอัตราส่ง (แต่ละฝั่งลองอัตราส่งของตัวเองจากสูงสุดไล่ลงมา; ความไม่ตรงกันหรือออปติกที่อยู่ในระดับก้ำกึ่งจะแสดงผลตรงนี้) จากนั้นเป็นไพรมิทีฟซีเควนซ์จนกว่าทั้งสองฝั่งจะซิงค์กันได้
- FLOGI (การล็อกอินฟาบริก) — N_Port ขอ FCID จากสวิตช์ และเจรจาเครดิตบัฟเฟอร์ คลาสบริการ และขนาดเฟรม
- PLOGI (การล็อกอินพอร์ต) — จาก N_Port ไปยัง N_Port (หรือไปยังเนมเซิร์ฟเวอร์) เพื่อสร้างเซสชัน
- PRLI (การล็อกอินโพรเซส) — เจรจาโพรโทคอล FC-4 (SCSI หรือ NVMe) และพารามิเตอร์ของมัน
- การลงทะเบียนและสอบถามเนมเซิร์ฟเวอร์ — อุปกรณ์ลงทะเบียน WWPN/FCID ของตัวเอง และเรียนรู้ว่ามีเป้าหมายใดอยู่ในโซนบ้าง; การแจ้งเตือน RSCN จะประกาศการเปลี่ยนแปลงที่เกิดขึ้นภายหลัง
พอร์ตที่ค้างอยู่ก่อน FLOGI คือปัญหาระดับฟิสิคัลเลเยอร์ (ออปติกส์ สาย อัตราส่ง); ค้างหลัง FLOGI คือปัญหาฟาบริก/โซนนิ่ง (การวินิจฉัยพอร์ต)
คลาสบริการและการควบคุมการไหล
| คลาส | พฤติกรรม | การใช้งาน |
|---|---|---|
| Class 1 | การเชื่อมต่อเฉพาะ | เลิกใช้แล้ว |
| Class 2 | มีการรับทราบ, ไม่มีการเชื่อมต่อ | พบน้อย |
| Class 3 | ไม่มีการเชื่อมต่อ, ดาต้าแกรมแบบไม่รับทราบ — แต่ไม่ถูกฟาบริกทิ้งเลยเพราะมีเครดิตช่วย | ทราฟฟิกสตอเรจแทบทั้งหมดในทางปฏิบัติ |
| Class F | การควบคุมระหว่างสวิตช์ด้วยกัน | บริการของฟาบริก |
เครดิตบัฟเฟอร์ต่อบัฟเฟอร์ (BB_Credit): ฝั่งรับให้จำนวนบัฟเฟอร์เฟรมไว้จำนวนหนึ่ง; ฝั่งส่งจะส่งเฟรมได้เพียงเท่าจำนวนนั้นก่อนที่จะได้รับการรับทราบแบบ R_RDY ไม่มีอะไรถูกทิ้งเลย; เมื่อเครดิตหมด ฝั่งส่งจะรอ — นี่คือกลไกเบื้องหลังพฤติกรรมไม่มีการสูญเสีย ขีดจำกัดระยะทาง และความแออัดแบบการระบายช้า (การออกแบบ SAN)
โซนนิ่งและการมาสก์
- โซนนิ่ง บนสวิตช์จำกัดว่า WWPN ใดจะเห็นกันได้บ้าง; โซนนิ่งแบบตัวเริ่มต้นเดียว (พอร์ต HBA หนึ่งพอร์ตกับเป้าหมายของมัน) เป็นแนวทางปกติ ทำโซนตาม WWPN ไม่ใช่ตามพอร์ต
- การมาสก์ LUN บนอาร์เรย์จำกัดว่า WWPN ใดเข้าถึงวอลุมใดได้บ้าง
- VSAN (Cisco) / Virtual Fabrics (Brocade) แบ่งสวิตช์ตัวเดียวออกเป็นฟาบริกอิสระหลายตัว; NPIV ให้ N_Port ตัวเดียวแสดงตัวเป็นหลาย WWPN ได้ (เครื่องเสมือน, ตู้เบลดเซิร์ฟเวอร์)
- ปัญหาโซนนิ่งจะแสดงอาการเป็น “ไม่มีอุปกรณ์” หลังจากล็อกอินสำเร็จดี — ตรวจสอบเนมเซิร์ฟเวอร์และชุดโซนที่ใช้งานอยู่ก่อนที่จะไปยุ่งกับออปติกส์
การเจรจาอัตราส่งและออปติกส์
พอร์ต FC เจรจาอัตราส่งร่วมสูงสุดโดยอัตโนมัติ (เช่น 32/16/8GFC) SFP ต้องรองรับอัตราส่งที่เจรจาได้: SFP แบบ 16G ในพอร์ต 32G จะจำกัดพอร์ตไว้ที่ 16G; พอร์ตแบบกำหนดอัตราส่งตายตัวที่ใส่ออปติกคนละรุ่นจะไม่ลิงก์ขึ้นเลย SFP ของ FC เขียนโค้ดด้วยบิตอัตราส่งและสื่อกลางของ FC แทนที่จะเป็นรหัสของ Ethernet (รหัสความสอดคล้อง) และสวิตช์ SAN บังคับใช้ตราสินค้าของผู้ผลิตอย่างเข้มงวด (ออปติกส์ของ FC)
ใน CodingBox
สำหรับ SFP ของ FC หน้าจอ Check transceiver จะถอดรหัสบิตอัตราส่ง สื่อกลาง และระยะส่งของ FC (ไบต์ 7–10, 62) เพื่อให้เห็นว่าโมดูลอ้างว่าเป็นรุ่นใดบ้าง ก่อนที่จะนำไปใช้ในฟาบริกที่จะเจรจาค่าพวกนี้