儲存區域網路(SAN)提供彈性、可擴充的區塊級儲存,極適合 SQL Server 叢集部署。但 SAN 架構複雜度高,設定不當會導致效能瓶頸、容錯移轉失敗、資料損毀。本文針對 SQL Server 叢集在 SAN 上的部署,提煉六大核心架構決策與實務建議。
1. 取得廠商詳細調校指南——不可省略的第一步
- 每家 SAN 廠商(EMC、NetApp、HPE、Dell EMC、Hitachi、IBM 等)的最佳實踐差異極大:LUN Offset/Partition Alignment、Queue Depth、Cache Policy、Multipathing (MPIO/DSM) 設定皆不同。
- 必須要求廠商提供「SQL Server on Windows Server Failover Cluster (WSFC) on SAN」專屬白皮書,並依文件完成:
— 磁碟分區對齊(Windows 2008+ 自動 1MB 對齊,舊版需 DISKPART 手動設定)
— HBA 驅動程式/韌體版本鎖定
— MPIO 輸入輸出路徑原則(Round Robin / Least Queue Depth)
- 在正式部署前,務必在叢集環境跑完完整的儲存壓力測試(SQLIOSim / Diskspd),驗證延遲、IOPS、容錯移轉時間達標。
2. 核心資料庫檔案優先採用 RAID-10(或 RAID-1+0)
- RAID-10 = Mirror + Stripe:兼具高容錯(可損失同鏡像組多顆磁碟)與高寫入效能(無奇偶校驗開銷),為 OLTP 資料庫(資料檔、記錄檔、TempDB)黃金標準。
- 成本考量:若預算極受限,資料檔可考慮 RAID-5/6,但記錄檔、TempDB 必須上 RAID-10(寫入密集、序列存取)。
- 進階:超大型資料庫(TB/PB 級)可評估 RAID-100 (Plaid RAID),增加一層 Stripe 提升平行度。
3. Active/Active vs Active/Passive:儲存架構截然不同
| 架構 | 儲存設計 | 優點 | 缺點 |
| Active/Active (A/A) | 各節點擁有獨立 LUN/磁碟組,不可共用同一組資料庫 LUN(除非用 Always On 可用性群組)。需雙倍儲存容量。 | 雙節點同時服務流量,資源利用率高;單節點故障無容量衝擊。 | 成本高;若節點間資料同步量 > 用戶流量,反而拖累效能。 |
| Active/Passive (A/P) | 共用同一組 LUN/磁碟組,單一節點作用,另一節點待命。 | 儲存成本低;無資料同步開銷;管理簡單。 | 待命節點資源閒置;容錯移轉瞬間有短暫停機。 |
決策建議:核心交易系統優先 A/A(配合 Always On AG);報表/備援/非核心系統 A/P 即可。
4. 叢集全節點磁碟機代號必須一致
- WSFC 要求所有節點對共用儲存的磁碟機代號(Drive Letter)完全一致(如資料檔皆為
E:、記錄檔 F:、TempDB T:、備份 B:)。
- 規劃階段即須完成 磁碟機代號標準化文件,納入部署清單,避免上線後發現不一致導致容錯移轉失敗。
- 掛載點(Mount Points)可突破 26 個代號限制,大型部署建議全面採用掛載點。
5. TempDB 絕不可放入共用儲存進行容錯移轉
- TempDB 是實例級暫存物件,每個叢集節點必須擁有獨立的本地 TempDB(本地 SSD/NVMe 最佳)。
- 若將 TempDB 放在共用 SAN LUN,容錯移轉時會發生檔案鎖定衝突、啟動失敗、效能爭用。
- SQL Server 2019+ 支援
MEMORY_OPTIMIZED_TEMPDB_METADATA 進一步降低 TempDB 爭用。
6. 備份僅透過掛載磁碟機代號/掛載點,嚴禁 UNC 路徑
- 叢集備份裝置(磁帶庫、虛擬磁帶、磁碟備份目標)必須向 WSFC 註冊為叢集資源,SQL Server 備份命令(
BACKUP DATABASE ... TO DISK = 'E:\Backup\...')只能指向叢集管理的磁碟機代號或掛載點。
- UNC 路徑(
\\Server\Share)不受叢集管理,容錯移轉時連線中斷導致備份失敗/損毀。
- 配合建議 #4,備份磁碟機代號在所有節點保持一致。
總結檢查清單
- [ ] 廠商白皮書取得並驗證完成
- [ ] 核心 LUN 採用 RAID-10,分區對齊 1MB
- [ ] A/A 或 A/P 架構確定,儲存拓撲圖繪製完成
- [ ] 全節點磁碟機代號/掛載點一致性驗證通過
- [ ] TempDB 部署於本地高速儲存
- [ ] 備份目標註冊為叢集資源,使用掛載點路徑
- [ ] 完成 SQLIOSim/Diskspd 壓測、容錯移轉演練、災難恢復演練
遵循上述六大原則,配合廠商指南與完整測試,才能在 SAN 上建立穩定、高效、可營運的 SQL Server 叢集環境。