Windows Storage Spaces 笔记

自从服务器换装 Windows 10 专业版之后,大部分存储空间的操作都可以通过控制面板搞定(开始菜单内搜索“storage spaces”)。但是有些细节设置在控制面板里面没有,最典型的例子就是“柱面数量”(Number of Columns)。

本文将会记录一些必须要用 PowerShell 搞定的存储空间操作。

背景知识

  1. 不同的容错场景

获取信息

  1. 列出现有物理硬盘

    Get-PhysicalDisk | Format-Table FriendlyName, MediaType, SerialNumber, UniqueId, Size, CanPool, CannotPoolReason
  2. 列出现有虚拟硬盘的柱面数量设置

    Get-VirtualDisk | ft FriendlyName, Size, NumberOfColumns
  3. 查看存储空间正在执行的后台任务

    Get-StorageJob

具体操作

1. 新建虚拟硬盘

新建虚拟硬盘时可以加入柱面数量设置

New-VirtualDisk -StoragePoolFriendlyName "Pool" -FriendlyName "New" -Size 1TB -ProvisioningType Thin -ResiliencySettingName "Parity" -NumberOfColumns 5 -PhysicalDiskRedundancy 1
  • NumberOfColumns 就是柱面数量
  • PhysicalDiskRedundancy 是冗余信息所需的磁盘数量(同时也是柱面数量)
    所以,上例中,新建的虚拟硬盘将会分布到 5 块物理硬盘上,并且用其中 1 块存储冗余信息,剩下的 4 块硬盘存储数据。

2. 重置硬盘

如果遇到“Insufficient Capacity”原因无法将硬盘加入,需要先重置硬盘。

Reset-PhysicalDisk -FriendlyName "HDD1"

如果几个硬盘都有同样的 FriendlyName,可以用 SerialNumber 来区分

Get-PhysicalDisk -SerialNumber 123456 | Reset-PhysicalDisk

3. 将硬盘加入存储池

如果遇到 0x00000075 错误(无法初始化,提示有其他软件使用硬盘),可以用以下命令将所有闲置硬盘加入存储池

Add-PhysicalDisk -StoragePoolFriendlyName "Pool" -PhysicalDisks (Get-PhysicalDisk -CanPool $True)

如果要将硬盘作为热备份(hot spare)加入存储池,需要在命令中加入 -usage 选项

Add-PhysicalDisk -StoragePoolFriendlyName "Pool" -PhysicalDisks (Get-PhysicalDisk -CanPool $True) -Usage HotSpare

4. 从存储空间中删除物理硬盘

如果需要从存储空间中删除一块物理硬盘,首先要标记硬盘退役

Set-PhysicalDisk -FriendlyName 'HDD1' -Usage Retired

标记之后系统会将硬盘上的数据重新分布到其他硬盘上。等数据转移完成后

Remove-PhysicalDisk -FriendlyName 'HDD1'

5. 重命名硬盘

同型号的硬盘 FriendlyName 都一样,如果想要改名区分,可以用以下命令

Set-PhysicalDisk -UniqueId "ID" -NewFriendlyName "HDD1"

6. 更改“存储空间不足”报警的阈值

Windows 系统默认在存储空间容量达到 70% 以后,如果有动态分配空间的虚拟磁盘(Thin Provision)存在,就会报警“存储空间不足,请添加 x 个硬盘”(英文为:Low capacity)。可以通过以下命令将报警阈值提高到 90%。

Set-StoragePool -FriendlyName "Pool" -ThinProvisioningAlertThresholds 90
添加新评论