SAN 網路層
從 Block / File / Object 的根本差異出發,深入 Fibre Channel 協定、iSCSI、NVMe-oF 的原理與選型邏輯,掌握 Zoning 隔離設計與多路徑備援。本章為純通用概念,適用所有品牌儲存環境。
2.1 SAN 基本概念#
要理解 SAN,需要先從儲存資料的三種根本方式談起,因為 SAN 只是其中一種,選錯了架構會造成很多不必要的複雜度。
Block / File / Object:三種儲存類型
| 類型 | 存取方式 | 主機看到的 | 典型協定 | 適用場景 |
|---|---|---|---|---|
| Block | 以固定大小的 Block 為單位讀寫,主機自行管理檔案系統 | 裸磁碟(LUN),自行格式化 | FC、iSCSI、NVMe-oF | 資料庫、VM Datastore、核心應用 |
| File(NAS) | 以檔案和目錄為單位,由儲存設備管理檔案系統 | 網路磁碟機 / 掛載點 | NFS(Linux)、SMB/CIFS(Windows) | 檔案共享、Home Directory、備份 |
| Object | 以物件(Object)為單位,透過 API 存取,無目錄結構 | S3 API 端點 | S3、Swift | 大規模非結構化資料、備份目標、AI 資料湖 |
DAS / NAS / SAN 的差異
為什麼企業核心應用偏好 Block SAN
資料庫(Oracle、DB2、SQL Server)和虛擬化平台(VMware ESXi)幾乎都偏好 Block SAN,原因有三:
- 效能最優:主機直接管理 Block I/O,沒有 NAS 的 File 協定開銷,延遲最低
- 一致性保證:Block 層的原子寫入(Atomic Write)比 File 層更容易保證資料一致性
- 隔離性:每台主機的 LUN 相互獨立,不會因為其他主機的 I/O 行為互相干擾
2.2 Fibre Channel 架構#
Fibre Channel(FC)是專為儲存 I/O 設計的網路協定,從底層就針對低延遲、高可靠性做最佳化。與一般的 Ethernet 網路不同,FC 是一個 Lossless(無封包遺失)的傳輸協定,沒有 TCP/IP 的重傳機制,因此延遲更穩定。
FC 的基本組成
| 元件 | 說明 | 類比 |
|---|---|---|
| HBA(Host Bus Adapter) | 主機端的 FC 介面卡,相當於網路卡 | Ethernet NIC |
| FC Switch | 連接主機和儲存設備的交換機,構成 Fabric | Ethernet Switch |
| FC Director | 企業級大型 FC Switch,支援更多 Port、更高可用性 | Core Switch |
| 光纖纜線 | FC 主要用光纖傳輸(也有短距離銅線版本) | 光纖 Ethernet |
WWN 命名體系
FC 網路不用 IP 位址,而是用 WWN(World Wide Name)識別每個端點,格式類似 MAC Address:
WWPN(World Wide Port Name):識別一個 Port(一張 HBA 通常有 2~4 個 Port)
格式範例:20:00:00:25:B5:AA:BB:CC(8 個 Byte,16 進位)
Zoning 設定通常以 WWPN 為單位(見 2.5 節)
FC Fabric 拓樸
FC 速度演進
| 世代 | 速度 | 實際吞吐量 | 狀態 |
|---|---|---|---|
| 8GFC | 8 Gbps | ~800 MB/s | 仍有大量存量設備 |
| 16GFC | 16 Gbps | ~1.6 GB/s | 目前常見 |
| 32GFC | 32 Gbps | ~3.2 GB/s | 目前主流新建 |
| 64GFC | 64 Gbps | ~6.4 GB/s | 高端新設備導入中 |
為什麼大型企業偏好 FC
- Lossless 傳輸:FC 協定設計上不允許封包遺失(透過 Credit-based Flow Control),不像 TCP/IP 需要重傳,延遲更穩定
- 專用網路:SAN 網路和 LAN 完全分離,儲存 I/O 不受一般網路流量影響
- 成熟可靠:FC 發展超過 30 年,在大型企業和金融業有極高的信任度與實績
- 硬體加速:FC HBA 在硬體層處理協定,不佔用主機 CPU 資源
2.3 iSCSI 與 FCoE#
iSCSI:把 SCSI 指令跑在 IP 網路上
iSCSI(Internet Small Computer Systems Interface)將 SCSI 儲存指令封裝在 TCP/IP 封包中傳輸,讓標準 Ethernet 網路可以承載儲存 I/O,不需要額外的 FC 基礎設施。
| 比較項目 | Fibre Channel | iSCSI |
|---|---|---|
| 傳輸介質 | FC 光纖 / 銅線(專用) | 標準 Ethernet(共用) |
| 基礎設施 | 需要 FC Switch、FC HBA | 標準 Ethernet Switch、NIC 即可 |
| 延遲 | 低且穩定(Lossless) | 較高,受網路狀況影響 |
| 成本 | 較高(FC 設備貴) | 較低(利用現有 LAN 設備) |
| 管理複雜度 | 需要懂 FC Zoning | 熟悉 IP 網路即可入門 |
| 適用場景 | 大型企業、金融、電信、核心應用 | 中小企業、非關鍵應用、成本敏感環境 |
FCoE:在 Ethernet 上跑 FC(已逐漸式微)
FCoE(Fibre Channel over Ethernet)試圖將 FC 的 Lossless 特性和 Ethernet 的普及性結合,在 10GbE 以上的 Ethernet 上傳輸 FC 訊框。需要支援 DCB(Data Center Bridging)的 Switch 才能保證 Lossless。
由於 FCoE 需要特殊的 Switch 和 CNA(Converged Network Adapter),複雜度高、成本並未顯著低於 FC,加上 NVMe-oF 的出現提供了更好的選項,FCoE 目前已逐漸式微,不建議新建環境採用。
2.4 NVMe-oF(NVMe over Fabrics)#
NVMe 本來只能本機連接(PCIe 插槽),NVMe-oF 讓 NVMe 的低延遲特性可以透過網路傳遞到遠端儲存設備,是目前企業儲存網路的最新演進方向。
為什麼需要 NVMe-oF
傳統 SAN 協定(FC-SCSI、iSCSI)在設計時針對 HDD 的延遲特性,指令佇列深度有限(SCSI 最多 256 個)。NVMe SSD 的延遲已低至 50 µs,但如果還要走傳統 SCSI 協定,協定本身的開銷反而成為新的瓶頸。NVMe-oF 讓網路傳輸也能使用 NVMe 的指令集,真正發揮 NVMe SSD 的效能潛力。
三種 NVMe-oF 傳輸協定
| 協定 | 傳輸介質 | 延遲 | 適用場景 | 普及程度 |
|---|---|---|---|---|
| FC-NVMe | 現有 FC 基礎設施 | 極低 | 已有 FC 環境的升級路徑,不需要新建網路 | 企業最快落地 |
| NVMe/RoCE | 高速 Ethernet(25G / 100G)+ RDMA | 極低(接近本地) | 新建高效能環境、AI / HPC | 成長最快 |
| NVMe/TCP | 標準 Ethernet(無需 RDMA) | 低(高於 RoCE) | 不需要 RDMA 硬體,部署最簡單 | 中小企業友善 |
NVMe-oF vs 傳統 SCSI 協定的根本差異
| 比較項目 | 傳統 SCSI(FC / iSCSI) | NVMe-oF |
|---|---|---|
| 指令集 | SCSI 指令集(為 HDD 設計) | NVMe 指令集(為 Flash 設計) |
| 佇列深度 | 最多 256 個指令 | 最多 65,535 個佇列 × 65,536 深度 |
| CPU 開銷 | SCSI 翻譯層有額外開銷 | 原生 NVMe 無翻譯層 |
| 延遲 | 受 SCSI 協定開銷影響 | 接近本地 NVMe 延遲 |
2.5 Zoning 與 LUN Masking#
在 SAN 環境中,同一個 Fabric 上可能有數十甚至數百台主機和儲存設備。如果沒有隔離機制,任何一台主機都能看到所有儲存設備的所有 LUN,這在安全性和效能上都是災難。Zoning 和 LUN Masking 是 SAN 隔離的兩個層次。
Zoning:在 Switch 層隔離
Zoning 在 FC Switch 上設定,控制哪些 Port 或 WWN 可以互相「看見」並建立連線。同一個 Zone 內的成員可以溝通,不同 Zone 的成員完全隔離。
| Zoning 類型 | 設定方式 | 優點 | 缺點 |
|---|---|---|---|
| Hard Zoning(Port Zoning) | 依 Switch 的實體 Port 編號設定 | 最安全,Switch 硬體強制隔離,無法繞過 | 設備搬到不同 Port 就要重新設定 Zone |
| Soft Zoning(WWN Zoning) | 依 WWPN 設定,與實體 Port 無關 | 設備換 Port 不需要改 Zone,管理彈性高 | 理論上可被 WWN 偽冒繞過(實務上罕見) |
企業實務上多採用 WWN Zoning(依 WWPN),兼顧安全性和管理彈性。最佳實踐是一個 Zone 只包含「一台主機的 WWPN」加上「它需要存取的儲存設備 Port」,最小化存取範圍。
LUN Masking:在儲存設備層隔離
Zoning 控制「誰能連到誰」,LUN Masking 控制「連上去之後能看到哪些 LUN」。即使兩台主機在同一個 Zone,LUN Masking 還是可以讓它們各自只看到自己的 LUN。
設定錯誤的常見後果
- Zone 設定錯誤:主機看不到 LUN,應用無法啟動(最常見的 SAN 建置問題)
- LUN Masking 遺漏:主機意外看到不屬於它的 LUN,若主機格式化該 LUN 會造成資料遺失
- Zoning 過於寬鬆:不必要的連線路徑增加管理複雜度,也增加安全風險
2.6 多路徑(Multipath / MPIO)#
如果主機到儲存設備只有一條路徑,這條路徑上的任何一個元件故障(HBA Port、光纖纜線、FC Switch、儲存控制器 Port)都會導致儲存服務中斷。多路徑(Multipath / MPIO)透過同時建立多條獨立路徑,提供備援和效能提升。
路徑選擇策略
| 策略 | 說明 | 適用場景 |
|---|---|---|
| Failover Only | 一條主要路徑,另一條待命。主要路徑故障才切換 | 簡單備援,不需要負載均衡 |
| Round-robin | I/O 依序輪流分配到各條路徑 | 效能最佳化,充分利用所有路徑頻寬 |
| ALUA(Asymmetric Logical Unit Access) | 儲存設備告知主機哪條路徑是最優路徑(Optimized),主機優先使用 | 雙控制器儲存設備的標準模式,避免 Cross-controller I/O 開銷 |
各作業系統的 MPIO 實作
| 作業系統 | MPIO 元件 | 說明 |
|---|---|---|
| IBM AIX | AIX MPIO(內建) | AIX 原生多路徑,支援 ALUA,IBM 儲存設備整合最佳 |
| IBM i | 內建多路徑 | IBM i 作業系統原生支援,透過 VIOS 或直接 FC 連接 |
| Linux | DM-Multipath(device-mapper-multipath) | 開源,支援各廠商儲存設備,需設定 multipath.conf |
| Windows | MPIO(Microsoft 內建) | Windows Server 內建,需安裝各廠商的 DSM(Device Specific Module) |
| VMware ESXi | Native Multipathing Plugin(NMP) | ESXi 內建,支援 PSP(Path Selection Policy)設定 |
- 路徑數量不對稱(一台主機有 4 條路徑,另一台只有 2 條),效能和備援能力不一致
- 路徑策略設定錯誤(應用 ALUA 的儲存設備卻設成 Round-robin),導致跨控制器 I/O 增加延遲
- Fabric A 和 Fabric B 的路徑全部接到同一台 FC Switch,失去雙 Fabric 的備援意義