自从服务器换装 Windows 10 专业版之后,大部分存储空间的操作都可以通过控制面板搞定(开始菜单内搜索“storage spaces”)。但是有些细节设置在控制面板里面没有,最典型的例子就是“柱面数量”(Number of Columns)。
本文将会记录一些必须要用 PowerShell 搞定的存储空间操作。
背景知识
windows-server/storage/storage-spaces/storage-spaces-fault-tolerance" style="background-color: transparent; color: rgb(85, 85, 85); text-decoration-line: none; border-bottom: 1px solid rgb(204, 204, 204); overflow-wrap: break-word;">不同的容错场景。
获取信息
1. 列出现有物理硬盘
Get-PhysicalDisk | Format-Table FriendlyName, MediaType, SerialNumber, UniqueId, Size, CanPool, CannotPoolReason
2. 列出现有虚拟硬盘的柱面数量设置
Get-VirtualDisk | ft FriendlyName, Size, NumberOfColumns
3. 查看存储空间正在执行的后台任务
Get-StorageJob
具体操作
1. 使用正确的 Logical Sector Size 建立存储池
$Disks = Get-PhysicalDisk | ? CanPool | ? MediaType –eq HDD New-StoragePool -FriendlyName "Pool" -StorageSubsystemFriendlyName "Windows Storage*" -PhysicalDisks $Disks -LogicalSectorSizeDefault 4096
在建立存储池之后需要将存储池标记成“带备用电源保护”以提高读写性能
Set-StoragePool -FriendlyName "Pool" -IsPowerProtected $True
2. 新建虚拟硬盘
新建虚拟硬盘时可以加入柱面数量设置
New-VirtualDisk -StoragePoolFriendlyName "Pool" -FriendlyName "New" -Size 1TB -ProvisioningType Thin -ResiliencySettingName "Parity" -NumberOfColumns 5 -PhysicalDiskRedundancy 1 -Interleave 16K
NumberOfColumns 就是柱面数量
PhysicalDiskRedundancy 是冗余信息所需的磁盘数量(同时也是柱面数量)
Interleave 是每柱面一次性写入数据量(详细请见这里,搜索用户 Apamnapat 的回复,注意格式化虚拟硬盘的时候需要根据 Interleave 来调整 Cluster Size。或者参照下表)
所以,上例中,新建的虚拟硬盘将会分布到 5 块物理硬盘上,并且用其中 1 块存储冗余信息,剩下的 4 块硬盘存储数据。
注:根据个人经验,最好不要让虚拟磁盘横跨所有的物理硬盘。例如有 10 块硬盘的情况下,5 柱面 1 冗余的方案要优于 10 柱面 2 冗余。原因是一旦存储空间出问题,需要转移数据,使用 5 柱面的方案可以将数据先集中在 5 块物理硬盘,然后将闲置的 5 块物理硬盘移除存储池做数据暂存使用,这样灵活性更高。如果使用了 10 柱面方案,则需要将数据完全移出存储池才能着手解决存储空间的问题。
3. 重置硬盘
如果遇到“Insufficient Capacity”原因无法将硬盘加入,需要先重置硬盘。
Reset-PhysicalDisk -FriendlyName "HDD1"
如果几个硬盘都有同样的 FriendlyName,可以用 SerialNumber 来区分
Get-PhysicalDisk -SerialNumber 123456 | Reset-PhysicalDisk
4. 将硬盘加入存储池
如果遇到 0x00000075 错误(无法初始化,提示有其他软件使用硬盘),可以用以下命令将所有闲置硬盘加入存储池
Add-PhysicalDisk -StoragePoolFriendlyName "Pool" -PhysicalDisks (Get-PhysicalDisk -CanPool $True)
如果要将硬盘作为热备份(hot spare)加入存储池,需要在命令中加入 -usage 选项
Add-PhysicalDisk -StoragePoolFriendlyName "Pool" -PhysicalDisks (Get-PhysicalDisk -CanPool $True) -Usage HotSpare
5. 从存储空间中删除物理硬盘
如果需要从存储空间中删除一块物理硬盘,首先要标记硬盘退役
Set-PhysicalDisk -FriendlyName 'HDD1' -Usage Retired
标记之后系统会将硬盘上的数据重新分布到其他硬盘上。等数据转移完成后
Remove-PhysicalDisk -FriendlyName 'HDD1'
6. 重命名硬盘
同型号的硬盘 FriendlyName 都一样,如果想要改名区分,可以用以下命令
Set-PhysicalDisk -UniqueId "ID" -NewFriendlyName "HDD1"
7. 更改“存储空间不足”报警的阈值
Windows 系统默认在存储空间容量达到 70% 以后,如果有动态分配空间的虚拟磁盘(Thin Provision)存在,就会报警“存储空间不足,请添加 x 个硬盘”(英文为:Low capacity)。可以通过以下命令将报警阈值提高到 90%。
Set-StoragePool -FriendlyName "Pool" -ThinProvisioningAlertThresholds 90
推荐本站淘宝优惠价购买喜欢的宝贝:
本文链接:https://hqyman.cn/post/6010.html 非本站原创文章欢迎转载,原创文章需保留本站地址!
休息一下~~