PowerFlex:SDC 到 NVMe/TCP 的转换,适用于在 vSphere 上使用 RDM 的群集应用程序
摘要: 本知识库文章简要介绍如何执行 WSFC 转换。它还介绍了如何将 Oracle RAC 环境从 RDM 转换为 NVMe/TCP 上的共享 VMDK,即使 Oracle RAC 不需要 SCSI3-PR 也是如此。Oracle RAC 可以在基于 SDC 的 VMFS 数据存储区上运行,但由于 PowerFlex 不支持基于 SDC 的 VMFS 上的群集 VMDK,因此依赖 SCSI3-PR 的应用程序无法使用该配置。Oracle RAC 的解释也是概括性的。 ...
说明
自从在 VMFS 数据存储区上引入群集 VMDK 以来,Windows Server 故障切换群集 (WSFC) 等应用程序不再需要原始设备映射 (RDM) 来使用 SCSI-3 持久保留 (SCSI3-PR)。因此,Broadcom 不为 NVMeoF 协议提供 RDM 支持。将 RDM 与 SDC 结合使用并希望迁移到 NVMe/TCP 的客户必须将这些磁盘转换为具有群集 VMDK属性的 VMFS 数据存储区上的 VMDK。此转换无法通过 Storage vMotion 完成,因此 WSFC 等应用程序将导致停机。
此知识库文章适用于:
- 在 PowerFlex 5.0 系统上从 SDC 迁移到 NVMe/TCP 的客户
- VMware vSphere 8.0U3 和 9.x 环境,将 RDM 与磁盘的多编写器或共享物理 SCSI 总线控制器结合使用
- Oracle RAC 群集
- Windows Server 故障切换群集,包括:
- SQL Server 故障切换群集
- 文件服务器群集
- 群集仲裁磁盘
支持:
使用群集 VMDK 时,戴尔支持这些过程的以下版本:
- ESXi 版本 8.0U3 和 9.x
- 这些版本支持 PowerFlex 5.0 上的 NVMe/TCP 群集 VMDK
- PowerFlex 5.0
- 不支持 PowerFlex 4.x
转换 Oracle RAC 时,如果您未使用群集 VMDK,则支持 PowerFlex 4.x。
虽然本知识库文章重点介绍群集应用程序,但您可以使用类似的过程将具有 RDM 的独立虚拟机转换为 VMDK,尤其是在具有 ASM 的 Oracle 的情况下。如果您因为需要直接直通设备而使用 RDM,则转换为 VMDK 不是合适的解决方案。
概览
本文概述了将基于 SDC、RDM 的现有应用程序群集转换为 NVMe/TCP 数据存储区上的共享 VMDK 时受支持的最佳实践方法。转换方法因应用程序要求而异。相应地制定计划。戴尔希望本知识库文章的用户精通所涵盖的技术;因此,步骤是高级步骤,很少包含语法。
此处介绍了两个主要的 RDM 应用场景:
- 使用具有多写入器的物理 RDM 的 Oracle RAC
- 将物理 RDM 用于 SCSI3-PR 的 Windows Server 故障切换群集 (WSFC)
有一个关于 VMware 虚拟机中的虚拟存储控制器的重要概念,在继续操作之前必须了解该概念。这些控制器负责将虚拟磁盘连接到虚拟机。虚拟控制器不绑定到底层数据存储区使用的物理存储协议。例如,虽然默认控制器标记为“SCSI”,但它完全是虚拟的,不会反映或限制下面使用的物理存储传输。由于这种抽象,无论您使用虚拟 SCSI 还是 NVMe 控制器连接 VMDK,无论存储协议是 SCSI 还是 NVMeoF,在功能上都没有区别。在实践中,无论 VMware 半虚拟化 (PVSCSI) 存储类型如何,VMware 通常都建议使用 SCSI 控制器,因为它们往往会为大多数工作负载提供更高的稳定性和更高的性能;但是,如果您愿意,可以使用 NVMe 控制器。
1.Oracle RAC:将 RDM 转换为 VMDK
某些 Oracle RAC 环境使用 RDM 为数据文件或 ASM 磁盘组(而不是 VMDK)提供共享存储。可以在线转换这些设置,但有些方法确实需要停机时间。我们涵盖基于 RDM 和 ASM。
1.1 不带 ASM 的 RAC
如果 Oracle 自动存储管理 (ASM) 未在使用中,您可以使用以下方法之一联机转换。
选项 A — 在线数据文件迁移
- 创建新的共享 VMDK:
- NVMe/TCP 上的 VMFS 数据存储区(不需要群集 VMDK 属性)
- 厚置备预先置零 (EZT)
- 已启用多编写器
- 将 VMDK 连接到所有 RAC 节点。
- 使用 VMDK 添加新数据文件。
- 将数据从基于 RDM 的数据文件迁移到基于 VMDK 的数据文件。
- 删除原始基于 RDM 的数据文件。
- 使用 crsctl/ocrconfig 移动群集件。
此方法可避免停机,但可能需要表空间级或对象级数据移动,这可能会非常耗时。
选项 B — 转换为 ASM(首选)
转换为 ASM 可简化长期存储管理,并且是建议的战略最终状态。
有两种受支持的方法:
- 在线迁移到 ASM 磁盘组
- RMAN usingBACKUP AS COPY DATABASE
- 需要短暂中断
- 对于大型数据库来说更快、更安全
- 通常首选用于生产系统
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 要求
- 虚拟机硬件版本支持群集 VMDK
- NVMe/TCP 上的 VMFS 数据存储区
- 已启用群集 VMDK 功能
- 厚置备积极置零磁盘
- 群集虚拟机上没有快照
- Storage DRS 已禁用
WSFC 要求
- 群集运行状况良好
- 群集验证清理(可接受警告)
- 每个磁盘都有一个拥有节点
2.2 创建新的共享 VMDK
对于每个 RDM 磁盘:
- 在 NVMe/TCP 数据存储区上创建新 VMDK(需要群集 VMDK):
- 相同或更大的大小
- 厚置备预先置零
- 将 VMDK 连接到两个群集节点:
- 相同的 SCSI 控制器类型(建议使用 PVSCSI)
- 相同的控制器编号
- 相同的 SCSI ID
- 启用 SCSI 物理总线共享
2.3 准备磁盘(仅限所有者节点)
在当前拥有的节点上:
- 使新磁盘联机。
- 初始化为 GPT。
- 使用 128KB 格式化 NTFS。
- 分配临时驱动器号。
在辅助节点上,使磁盘保持离线状态。
2.4 迁移数据(逐个磁盘)
SQL Server 数据磁盘示例:
- 让拥有方节点的 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 中将磁盘添加到 Add-ClusterDisk。
- 在 UI 或 Set-ClusterQuorum-DiskWitness “Cluster Disk X” 中将新磁盘设置为仲裁
- 离线并移除 RDM 磁盘。
3 删除 RDM
只有在任一应用场景中成功验证后:
- 从两个虚拟机中删除 RDM 映射。
- 从 ESXi 主机断开 LUN。
- 在 PowerFlex Manager中取消映射卷。
4 常见问题
- 无法使用 EZT 磁盘
- 此处涵盖的群集解决方案需要 EZT — 不支持精简或置零密集
- 不匹配的控制器配置。以下任何不匹配项都将阻止磁盘在群集中正常工作。
- 相同的 SCSI 控制器类型
- 相同的控制器编号
- 相同的 SCSI ID
- 无法在每个 VMDK 的每个虚拟机(节点)上的 Oracle EZT vmdk 上设置多编写器
- 在 WSFC 的控制器上设置 SCSI 物理总线共享失败
4.1 配置支持
|
配置 |
支持 |
说明 |
|
VMFS 上的共享 VMDK(多编写器) |
✅ 支持 |
Oracle RAC 的建议最终状态 |
|
厚置备预先置零 (EZT) |
✅ 支持 |
对于群集磁盘是必需的 |
|
带 SCSI 物理总线共享的 PVSCSI 控制器 |
✅ 支持 |
群集 VMDK 上的 WSFC 需要 |
|
使用 SCSI 物理总线共享的物理 RDM |
✅ 支持(传统) |
不再是首选 |
|
带 NVMe/TCP 的物理 RDM |
❌ 不支持 |
不可用 |
|
精简或延迟归零 VMDK |
❌ 不支持 |
群集磁盘不稳定 |
|
群集虚拟机上的快照 |
❌ 不支持 |
拔下 |
|
群集虚拟机上的 Storage DRS |
❌ 不支持 |
对群集工作负载禁用 |
|
混合 RDM 和 VMDK(临时) |
✅ 支持 |
仅在迁移期间 |
|
共享 VMDK 的 Storage vMotion |
❌ 不支持 |
连接到多个虚拟机时 |
其他信息
其他文档链接(排名不分先后):
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