PowerFlex:使用 vSphere 上的 RDM 之叢集應用程式,SDC 轉換為 NVMe/TCP
摘要: 自從在 VMFS 資料存放區導入叢集式 VMDK 後,Windows Server 容錯移轉叢集 (WSFC) 等應用程式不再需要原始裝置對應 (RDM) 來使用 SCSI-3 持續性保留 (SCSI3-PR)。因此,Broadcom 不會為 NVMeoF 通訊協定提供 RDM 支援。使用 RDM 與 SDC 的客戶若想要移至 NVMe/TCP,則必須將這些磁碟轉換為具有叢集 VMDK 屬性的 VMFS 資料存放區上的 VMDK。此轉換無法使用 Storage vMotion 完成,因此 WSFC 等應用程式將導致停機。 本知識文章說明如何執行高級別的 WSFC 轉換。它還涵蓋將 Oracle RAC 環境從 RDM 轉換為 NVMe/TCP 上的共用 VMDK,即使 Oracle RAC 不需要 SCSI3-PR。Oracle RAC 可在 SDC 型 VMFS 資料存放區上執行,但由於 PowerFlex 不支援 SDC 型 VMFS 上的叢集 VMDK,因此與 SCSI3-PR 相依的應用程式無法使用該組態。Oracle RAC 的解釋也是高級的。 ...
說明
此 KB 適用於:
- 客戶在 PowerFlex 5.0 系統上從 SDC 移轉至 NVMe/TCP
- VMware vSphere 8.0U3 和 9.x 環境,使用 RDM 與磁碟專用的多寫入器或共用實體 SCSI 匯流排控制器
- Oracle RAC 叢集
- Windows Server 容錯移轉叢集,包括:
- SQL Server 容錯移轉叢集
- 檔案伺服器叢集
- 叢集仲裁磁碟
支援:
使用叢集 VMDK 時,Dell 支援下列版本的這些程序:
- ESXi 版本 8.0U3 和 9.x
- 這些版本支援 PowerFlex 5.0 上的 NVMe/TCP 叢集 VMDK
- PowerFlex 5.0
- 不支援 PowerFlex 4.x
轉換 Oracle RAC 時,若您未使用叢集式 VMDK,則支援 PowerFlex 4.x。
概觀
本文概述將現有 SDC、RDM 型應用程式叢集轉換為 NVMe/TCP 資料存放區上的共用 VMDK 的最佳實務支援方法。轉換方法因應用程式要求而異。據此規劃。Dell 期望本知識文章的使用者能精通涵蓋的技術;因此,步驟是高級的,很少包含語法。
本文涵蓋兩種主要的 RDM 使用案例:
- Oracle RAC 使用實體 RDM 與多寫入器
- Windows Server 容錯移轉叢集化 (WSFC), 使用 SCSI3-PR 的實體 RDM
關於 VMware VM 中的虛擬儲存控制器有一個重要概念,在繼續操作之前必須先瞭解這個概念。這些控制器負責將虛擬磁碟連接到 VM。虛擬控制器不會綁定到底層數據存儲使用的物理存儲協定。例如,雖然預設控制器標示為「SCSI」,但它完全是虛擬的,不會反映或限制下方使用的實體儲存傳輸。由於此抽象概念,無論使用虛擬 SCSI 或 NVMe 控制器連接 VMDK,無論儲存通訊協定是 SCSI 還是 NVMeoF,功能都沒有區別。在實踐中,VMware 通常建議使用 SCSI 控制器,而不管 VMware Paravirtual (PVSCSI) 類型的存儲,因為它們往往會為大多數工作負載提供更高的穩定性和改進的性能;但是,如果您願意,可以使用 NVMe 控制器。
1.Oracle RAC:將 RDM 轉換為 VMDK
某些 Oracle RAC 環境使用 RDM 為資料檔案或 ASM 磁碟群組提供共用儲存,而不是使用 VMDK。您可以在線上轉換這些設定,但有些方法確實需要停機時間。我們涵蓋基於RDM和ASM。
1.1 RAC (不含 ASM)
如果未使用 Oracle 自動儲存管理 (ASM),則可以使用以下方法之一進行連線轉換。
選項 A — 線上資料檔案遷移
- 建立新的共用 VMDK:
- NVMe/TCP 上的 VMFS 資料存放區 (不需要叢集 VMDK 屬性)
- Thick Provision Eager Zeroed (EZT)
- 支援多寫入器
- 將 VMDK 連接至所有 RAC 節點。
- 使用 VMDK 新增資料檔案。
- 將資料從 RDM 型資料檔案遷移到 VMDK 型資料檔案。
- 刪除原始的基於 RDM 的數據檔。
- 使用 crsctl/ocrconfig 移動叢件。
此方法可避免停機,但可能需要表空間級或物件級數據移動,這可能非常耗時。
選項 B — 轉換為 ASM(首選)
轉換為 ASM 可簡化長期存儲管理,並且是推薦的戰略最終狀態。
存在兩種支援的方法:
- 線上遷移至 ASM 磁碟群組
- 使用BACKUP AS COPY DATABASE (備份為複本資料庫) 的 RMAN
- 需要短暫的服務中斷
- 更快、更安全地用於大型資料庫
- 生產系統通常首選
1.2 RAC 已在使用 ASM
如果正在使用 ASM,則 RDM 更換非常簡單且在線:
- 建立新的共用 VMDK:
- NVMe/TCP 上的 VMFS 資料存放區 (不需要叢集 VMDK 屬性)
- 厚撥備急切歸零
- 支援多寫入器
- 將 VMDK 新增至 ASM 磁碟群組。
- 允許 ASM 重新平衡完成。
- 刪除由 RDM 支援的 ASM 磁碟。
- 使用 crsctl/ocrconfig 移動叢件。
此程序不需要應用程式停機時間,風險最小。
2.WSFC:將 RDM 轉換為 VMDK
⚠️ 重要:一次執行一個磁碟的 WSFC 遷移,以保持群集穩定性。此示例是一個雙節點群集。
2.1 先決條件(必填)
VMware 需求
- VM 硬體版本支援叢集 VMDK
- NVMe/TCP 上的 VMFS 資料存放區
- 已啟用叢集化 VMDK 功能
- Thick Provision Eager Zeroed 磁碟
- 叢集 VM 上沒有快照
- 已停用儲存裝置 DRS
WSFC 要求
- 叢集狀況良好
- 叢集驗證清理 (警告可接受)
- 每個磁碟都有一個擁有節點
2.2 建立新的共用 VMDK
針對每個 RDM 磁碟:
- 在 NVMe/TCP 資料存放區建立新的 VMDK (需要叢集式 VMDK):
- 相同或更大尺寸
- 厚撥備急切歸零
- 將 VMDK 連接至兩個叢集節點:
- 相同的 SCSI 控制器類型 (建議使用 PVSCSI)
- 相同的控制器編號
- 相同的 SCSI ID
- 啟用 SCSI 實體匯流排共用
2.3 準備磁碟(僅限擁有者節點)
在目前擁有節點上:
- 使新磁碟連線。
- 初始化為 GPT。
- 將 NTFS 格式化為 128KB。
- 分配臨時驅動器號。
在輔助節點上,使磁碟保持離線狀態。
2.4 逐個磁碟遷移資料
SQL 伺服器資料磁碟範例:
- 將 SQL 角色失敗至所屬節點。
- 使用舊的 RDM 停止 SQL 資源 (SQL Server),保持磁碟上線。
- 使用 robocopy 複製資料,其中 R 是 RDM,V 是新的 VMDK:
- robocopy R:\V:\/MIR /COPYALL /DCOPY:T /R:0 /W:0
- 驗證數據完整性。
- 變更磁碟機代號,讓新磁碟有舊磁碟的代號。
- 更新群集資源依賴項以引用新磁碟。
- 讓資源連線。
- 將擁有權移至另一個節點進行測試。
- 完成後,請移除對舊磁碟 (RDM) 的相依性。
- 對每個資料磁碟重複此操作
針對以下情況重複此程序:
- 記錄磁碟
- 溫度
2.5 更換群集磁碟資源
驗證後:
- 從群集角色中刪除舊的 RDM 磁碟。
- 將新的 VMDK 磁碟新增到角色。
- 確認擁有權和依賴關係。
- 將擁有權移至另一個節點進行測試。
2.6 仲裁磁碟遷移(如果使用中)
為防止叢集意外中斷:
- 暫時將仲裁切換至節點多數,而非磁碟。
- Set-ClusterQuorum -NodeMajority
- 請按照第 2.3 節新增磁碟。
- 在 UI 中將磁碟新增至叢集,或在 PS 中新增叢集。
- 在 UI 或 Set-ClusterQuorum -DiskWitness 中將新磁碟設定為仲裁「叢集磁碟 X」
- 離線並移除 RDM 磁碟。
3 移除 RDM
只有在任一使用案例中驗證成功後:
- 移除兩個 VM 的 RDM 對應。
- 從 ESXi 主機取消掛接 LUN。
- 在 PowerFlex Manager 中對磁碟區進行 Umap
4 常見問題
- 無法使用 EZT 磁碟
- 此處介紹的集群解決方案需要 EZT – 不支援薄或零厚
- 控制器組態不相符。任何以下的不相符情況都會使磁碟無法在叢集中正常運作。
- 相同的 SCSI 控制器類型
- 相同的控制器編號
- 相同的 SCSI ID
- 無法針對每個 VMDK 在每個 VM (節點) 上的 Oracle EZT vmdk 上設定多重寫入器
- 無法在 WSFC 的控制器上設定 SCSI 實體匯流排共用
4.1 組態支援
|
組態 |
支援 |
注意 |
|
VMFS 上的共用 VMDK (多寫入器) |
✅ 支援的 |
Oracle RAC 的建議結束狀態 |
|
Thick Provision Eager Zeroed (EZT) |
✅ 支援的 |
對於群集磁碟是必需的 |
|
具有 SCSI 實體匯流排共用的 PVSCSI 控制器 |
✅ 支援的 |
叢集 VMDK 上的 WSFC 必要 |
|
使用 SCSI 實體匯流排共用的實體 RDM |
✅ 支援 (舊版) |
不再偏好 |
|
具有 NVMe/TCP 的實體 RDM |
❌ 不支援 |
無法使用 |
|
精簡或延遲歸零的 VMDK |
❌ 不支援 |
叢集磁碟不穩定 |
|
叢集 VM 上的快照 |
❌ 不支援 |
移除 |
|
叢集 VM 上的儲存 DRS |
❌ 不支援 |
針對叢集工作負荷停用 |
|
混合使用 RDM 和 VMDK (暫時) |
✅ 支援的 |
僅在遷移期間 |
|
共用 VMDK 的儲存 vMotion |
❌ 不支援 |
連接至多個 VM 時 |
其他資訊
其他文件連結(排名不分先後):
https://learn.microsoft.com/en-us/sql/sql-server/?view=sql-server-ver17
https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/robocopy
https://knowledge.broadcom.com/external/article/313472/microsoft-windows-server-failover-cluste.html
https://www.vmware.com/docs/vmw-vmdk-whitepaper-mmt
https://learn.microsoft.com/windows-server/administration/windows-commands/robocopy