无法在 Windows Server 2012 R2 中扩展简单虚拟磁盘
我撰写本篇博文的目的是帮助您在 Windows Server 2012 R2 中扩展简单虚拟磁盘。我们不断收到使用简单虚拟磁盘并需要扩展磁盘空间的各类客户的提问。
比方说,您使用服务器管理器创建了一个名为 “Storage Pool1” 的新存储池。同时,使用 3 个 10Gb 物理磁盘并利用 Storage Pool1 中的全部可用磁盘创建了一个新的简单固定虚拟磁盘。这为系统带来了 24Gb 的可用空间,我们将它称为 E: 盘。
现在,您需要扩展这个简单固定虚拟磁盘,因为它的可用空间即将用完。按逻辑推断,应该使用服务器管理器,向 Storage Pool1 添加 1 个新的物理磁盘,从而扩展这个简单固定虚拟磁盘。
在下方的屏幕截图中,我向 Storage Pool1 中添加了物理磁盘 4,尝试扩展这个简单固定虚拟磁盘。
转到服务器管理器,然后选择 File and Storage Services > Volumes > Storage Pools,右键单击 Storage Pool1,在 Virtual Disks 下,右键单击 VDisk1,选择 Extend Virtual Disk。将会显示一个类似于下方屏幕截图的窗口,但所有选项均呈灰色显示,只能选择单击 Cancel。
这必然使您百思不得其解,想知道错过了什么,为什么会失败?我们找到了一种解决方案,下面向大家进行解释。
当使用服务器管理器创建虚拟磁盘时,会创建一个关键属性,称为 NumberOfColumns。NumberOfColumns 属性根据用于创建虚拟磁盘的物理磁盘数目进行设置,且一旦创建虚拟磁盘将无法更改。您可以查看 NumberOfColumns 属性,方法是右键单击 VDisk1,选择 Properties,选择 Details 选项卡,然后在 Property 下拉菜单中选择 NumberOfColumns。
如上方屏幕截图中所示,属性值是 3。这是从 Storage Pool1 创建这个简单固定虚拟磁盘所使用的物理磁盘数目。正确扩展简单固定虚拟磁盘的唯一方式是向 Storage Pool1 (NumberOfColumns) 中再添加 3 个物理磁盘。
向 Storage Pool1 添加新物理磁盘的方法是,右键单击 Storage Pool1,选择 Add Physical Disk,选择要添加的物理磁盘,然后单击 OK。
现在 Storage Pool1 中共包含 6 个物理磁盘,固定虚拟磁盘成功实现了扩展。
右键单击 VDisk1,选择 Extend Virtual Disk,现在所有选项均不再灰色显示。您可以选择 Specify Size 或 Maximum Size。我选择 Maximum Size。
单击 OK,现在简单固定虚拟磁盘的容量为 48 GB。
您可以检查 VDisk1 的属性,确定 NumberOfColumns 的值是否仍然是 3。此外,您还可以使用 Get-VirtualDisk PowerShell 命令。
现在您了解了如何设置 NumberOfColumns 以及为什么要在创建虚拟磁盘时进行设置。但请注意,您可以采用另一种方法,即使用 PowerShell 创建虚拟磁盘。
PowerShell 的强大功能
新建虚拟磁盘(将 NumberOfColumns 指定为 1 并使用多个物理磁盘)的快速简便方法是使用 PowerShell。但首先,需要创建一个存储池,可以使用服务器管理器或 PowerShell 完成此操作。
按照以下步骤,使用 PowerShell 创建名为 Storage Pool1 且包含 3 个物理磁盘的存储池。
New-StoragePool –FriendlyName “Storage Pool1” –PhysicalDisks (Get-PhysicalDisk PhysicalDisk1, PhysicalDisk2,PhysicalDisk3 ) –StorageSubSystemFriendlyName *space*
运行 Get-StoragePool 命令,将会列出两个池;也就是刚刚创建的 Primordial 和 Storage Pool1。
现在,需要在 Storage Pool1(使用 3 个物理磁盘,NumberOfColumns 值为 1 并选择 Maximum Size 设置)中新建一个简单固定虚拟磁盘。
New-VirtualDisk –StoragePoolFriendlyName “Storage Pool1” –FriendlyName VDisk1 –NumberOfColumns 1 –ProvisioningType Fixed –ResiliencySettingName Simple -UseMaximumSize
我们来确认一下 NumberOfColumns 的值是否为 1。
Get-VirtualDisk –FriendlyName VDisk1 | FL NumberOfColumns
或者显示虚拟磁盘的更详细视图。
Get-VirtualDisk –FriendlyName VDisk1 | FL *
希望本文能够帮助大家了解 NumberOfColumns,以及如何在创建虚拟磁盘时设置 NumberOfColumns 值。
Steven Graves
高级支持专家级工程师
Windows 服务支持团队