通常在 Windows 中,您可以创建一个虚拟硬盘 (VHD),在磁盘管理中看到它,右键单击并删除它:
没问题。
存储空间隐藏磁盘
我想测试存储空间的弹性以及在服务器之间迁移它们的能力。将磁盘添加到存储池,它不再出现在磁盘管理。我需要从服务器上意外删除 VHD,但没有 UI 选项可以执行此操作。
如果我使用的是物理磁盘,那么断开驱动器与计算机的连接就很简单了(从而确保存储空间不会期望它,并且没有机会事先重新平衡):
如何拔下 vhd?
但是,一旦将磁盘添加到存储池,该磁盘就不再有任何 UI 选项。我不想使用存储空间 UI 来删除物理磁盘来自池:
因为:
- 存储空间会将数据从该磁盘迁移到池中的其他磁盘(避免意外删除)
- 存储空间会将数据从该磁盘迁移到池中的其他磁盘(这违背了将磁盘迁移到另一台服务器的测试要点)
我需要惊喜移除
与拔下物理硬盘的方式相同,我该如何拔下虚拟硬盘?
Microsoft 有确切的 PowerShell 命令行来断开 VHD 连接:
卸载-VHD
卸载虚拟硬盘。
PS C:> Dismount-VHD –路径 c:\test\testvhdx.vhdx
不幸的是,它不起作用 - 原因相同。VHD 是“走了”,“无形的”,被吸收进存储池,不再具有与其交互的能力:
PS C:\Windows\system32> Dismount-VHD –Path D:\VirtualMachines\StorageSpaceTest\StorageSpaceTest1.vhdx
Dismount-VHD : Windows cannot dismount the disk because it is not mounted.
At line:1 char:1
+ Dismount-VHD –Path D:\VirtualMachines\StorageSpaceTest\StorageSpaceTest1.vhdx
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidArgument: (Microsoft.Vhd.P...mountVhdCommand:DismountVhdCommand) [Dismount-VHD], VirtualizationOperationFailedException
+ FullyQualifiedErrorId : InvalidParameter,Microsoft.Vhd.PowerShell.DismountVhdCommand
似乎一旦 VHD 被添加到存储池,就无法将其卸载。
如何卸载已添加到存储池的 VHD?
磁盘分区
命令行工具磁盘分区有一个分离虚拟磁盘的命令:
DISKPART> select vdisk file="F:\Foo\Contoso37.vhd"
DiskPart successfully selected the virtual disk file.
DISKPART> detach vdisk
Virtual Disk Service error:
The virtual disk is already detached.
但它由于同样的原因失败了,.vhdx
当它进入 StoragePool 时已经被“分离”了。
奖金聊天
当前的 VHDX 文件位于 中D:\...
,它本身就是一个奇偶校验空间。我无法简单地关闭 PC 并简单地重命名文件。关闭服务器不仅目前不可行,而且违背了测试的初衷:让存储空间在运行时做出反应
编辑:Windows Server 2016 中也发生了同样的事情