如果我在存储空间池中有两个物理硬盘和一个双向镜像虚拟磁盘,我该如何用新的(更大)硬盘替换一个硬盘,而又不在任何时候只有一份数据副本?
一个简单的计划是:
起点:两个驱动器:hd0 和 hd1
- 添加新硬盘 (hd2)
- 将数据从旧硬盘复制到 hd2
- 删除 hd0
- 可选清理
- 结果:hd1 和 hd2 有镜像数据
但存储空间似乎在其他方面发挥作用:
- 添加新硬盘 (hd2)
- 从镜像中删除 hd0(或者实际上是整个池)
- 此时不再有冗余,如果 hd1 发生故障,则卷将丢失
- 将数据从 hd1 HDD 复制到 hd2 (重建/修复)
- 结果:hd1 和 hd2 有镜像数据
有没有办法做到这一点而不需要任何时候都只有一份数据副本?(除了明显的“备份和恢复”,我预计这比硬盘之间的单次复制操作要慢得多)
操作系统:Windows 2012R2
答案1
短的:
显然不是。当修复/重建启动后,存储空间会“断开”旧驱动器与镜像的连接,只保留一份副本(在 hd1 上),然后开始将其复制到新驱动器。因此,如果 hd1 在重建完成之前发生故障,则阵列将丢失。
选项:
- 使用独立备份,以防磁盘故障时从中恢复
- 使用新磁盘上的另一个分区作为“在线”备份
- 由于数据物理上仍然在 hd0 上,请尝试使用某些“取消删除”工具来挽救它们(因为它是存储空间虚拟磁盘上的 ReFS,所以机会很低,至少现在在 2019 年,因为第三方工具并不广泛支持这些工具)
- 还有其他解决方案吗?
长的:
似乎没有(或者我找不到)一种方法可以将镜像卷迁移到存储空间中的新物理磁盘,以便在剩余的旧磁盘在重建到新磁盘完成之前损坏的情况下保持其冗余和在线。
插入新磁盘后(使用测试系统中的名称:PhysicalDisk1 将被替换的旧磁盘,PhysicalDisk2 应保留的旧磁盘,PhysicalDisk5 新磁盘)状态为:
PS C:\Users\Administrator> Set-PhysicalDisk -FriendlyName "PhysicalDisk1" -Usage Retired
PS C:\Users\Administrator> Get-VirtualDisk -FriendlyName mirr | Get-PhysicalDisk
FriendlyName CanPool OperationalStatus HealthStatus Usage Size
------------ ------- ----------------- ------------ ----- ----
PhysicalDisk1 False OK Healthy Retired 899.25 GB
PhysicalDisk2 False OK Healthy Auto-Select 1.46 TB
然后当修复开始的时候,情况就变成了:
Repair-VirtualDisk -FriendlyName mirr
...
PS C:\Users\Administrator> Get-VirtualDisk -FriendlyName mirr | Get-PhysicalDisk
FriendlyName CanPool OperationalStatus HealthStatus Usage Size
------------ ------- ----------------- ------------ ----- ----
PhysicalDisk2 False OK Healthy Auto-Select 1.46 TB
PhysicalDisk5 False OK Healthy Auto-Select 1.76 TB
因此,如果现在 PhysicalDisk2 发生故障,镜像将丢失(PhysicalDisk1 已退役,PhysicalDisk2 丢失,PhysicalDisk5 尚未拥有完整的数据副本)。
取消停用 PhysicalDisk1 没有帮助。
最快的方法似乎是首先在新的 HDD 上创建一个新的“备份”(简单)卷,将镜像中的数据复制到其中,然后启动镜像迁移,如果出现故障,仍然有一个可用的副本(然后 PhysicalDisk1 可以取消退役并在 PhysicalDisk1 和 PhysicalDisk5 上创建一个新的镜像)。
答案2
我觉得我要么漏掉了什么,要么你想得太多了。如果你有镜像,两个磁盘是相同的。假设你正在对一个好的磁盘进行磁盘替换,那么你就有 2 个副本。
取出一份好的副本,安装一个空白硬盘,重建到新磁盘上。这与模拟磁盘故障相同。移除磁盘时阵列不会脱机,只有磁盘会脱机。如果重建时出现问题,您可以重新插入另一个原始磁盘,然后使用另一个新磁盘克隆该磁盘。