我在(双向镜像存储池)中拥有 2 个 1.5TB 的驱动器。该池最近达到了 100% 的容量,这意味着两个驱动器的剩余空间均为 0%。
我向存储池添加了 2 个 4TB 驱动器,但存储空间不会尝试重新平衡磁盘利用率。添加后,我现在看到:
My storage space pool : Physical drives
1.5 TB HDD-1 : 100% used
1.5 TB HDD-2 : 100% used
4.0 TB HDD-3 : 0% used
4.0 TB HDD-4 : 0% used
似乎所有未来的写入现在都将集中在较新的驱动器上。我原本以为存储空间一旦get busy
看到新驱动器就会开始重新平衡 - 但运气不佳。
我如何重新平衡使用情况,以便我的读/写操作大致按比例/平等地分布在存储池中的所有驱动器上?
仅供参考,这是在 Windows Server 2012 R2 上,但它的存储空间与 Windows 8.1 相同
答案1
通过即将推出的 Windows 10 和 Windows Server 2016 操作系统中最终起作用的东西重新提出这个老问题。
微软在 Windows 10 和 Windows Server 2016 中添加了一个Optimize-StoragePool
PowerShell 命令,可以重新平衡整个池的存储空间。
只需打开管理 PowerShell 控制台并运行
> Optimize-StoragePool -FriendlyName "TheNameOfYourStoragePool"
我在博客上提到了这一点这里。
微软宣布了该功能就在几天前,作为新的存储空间直通的一部分,但它也可以与普通存储空间一起正常工作。
答案2
当我发现存储空间(在 Windows 8.1 中)并迁移现有文件时,我遇到了类似的问题。我从驱动器开始:
- Aaron:500GB,已使用 95%
- Bruce:1TB,已使用 70%
- Craig:1TB,已使用 55%
- Devin:1TB,已使用 30%
- Ethan:3TB,已使用 50%
- Felix:3TB,使用率为 0
因此,在将所有内容转移到 2 个 3TB 驱动器上后,我将剩余的 4 个驱动器连接到存储空间,创建了一个空间,然后将文件从 2 个已填充的驱动器复制到该空间(奇偶校验弹性)。将两个驱动器添加回空间(顺序添加)后,所有驱动器的使用率都在 50% 左右,但 3TB 驱动器的使用率分别为 20% 和 0%,与清除并添加到池中时相比。
我尝试等待几天,看看系统是否会重新平衡,但什么也没发生。
最终,我发现我有两个选择:
- 创建第二个空间,然后按顺序将文件从一个空间复制并删除到另一个空间(不确定切割是否会做同样的事情,但我操作时的理解是,如果进行了切割,系统会检测到这一点,并简单地重新标记板坯而不是移动它们,但我不能保证这个说法的有效性)
- 使磁盘脱机并重新引入(需要一定的弹性)
我选择了第二种选择,但在早期的测试中,第一种选择似乎可行,但速度非常慢。
因此,一旦我的所有文件和磁盘都进入池中,我就会物理断开其中一个较满的磁盘(在我的情况下是 USB,在您的情况下,您可能只需禁用该设备)。然后存储空间开始显示有关“弹性降低”的错误,并让我选择从池中移除磁盘,我照做了。
然后我等了几个小时(早上启动,去上班,回来时屏幕已完成),存储空间随后修复了空间。修复空间后,我重新连接磁盘,格式化,然后将其重新引入池中。
我对所有想要重新平衡的驱动器重复了此步骤,按照容量从大到小的顺序进行,以便我的小型 500GB 驱动器是最后重新添加的。
是的,这意味着最终会剩下一个使用率为 0% 的驱动器,但随着时间的推移,它很快就会被填满,达到整个池的平均使用率
答案3
Windows 10 具有优化池在 GUI 中可用的命令:
Windows 服务器
Windows Server 2016 添加了优化池的功能。但与基于 GUI 的工作站操作系统不同,Windows Server 没有用于管理存储空间优化的 GUI。相反,必须使用 powershell:
> Get-StoragePool
FriendlyName OperationalStatus HealthStatus IsPrimordial IsReadOnly Size AllocatedSize
------------ ----------------- ------------ ------------ ---------- ---- -------------
Primordial OK Healthy True False 10.23 TB 5.46 TB
Silk Road Pool OK Healthy False False 5.45 TB 4.11 TB
> Optimize-StoragePool -FriendlyName "Silk Road Pool"
但还请注意,在 Windows Server 上,数据将自动地重新平衡添加驱动器 30 分钟后。
您可以通过 powershell 获取优化的状态(再次强调,Microsoft 讨厌图形用户界面):
> Get-StorageJob
Name IsBackgroundTask ElapsedTime JobState PercentComplete BytesProcessed BytesTotal
---- ---------------- ----------- -------- --------------- -------------- ----------
Optimize False 00:12:21 Running 11
Rebalance True 00:00:00 Running 11 114085068800 1020323168256
笔记:重新平衡/优化功能仅适用于 Windows Server 2016/Windows 10 空间。如果您使用的是在 Windows Server 2012/Windows 8 中创建的空间:您必须“升级”该空间。