![Windows 2008:在虚拟“薄”磁盘上重新使用已删除的块](https://linux22.com/image/583125/Windows%202008%EF%BC%9A%E5%9C%A8%E8%99%9A%E6%8B%9F%E2%80%9C%E8%96%84%E2%80%9D%E7%A3%81%E7%9B%98%E4%B8%8A%E9%87%8D%E6%96%B0%E4%BD%BF%E7%94%A8%E5%B7%B2%E5%88%A0%E9%99%A4%E7%9A%84%E5%9D%97.png)
我们使用 StarWind SAN,它具有按需增长的精简配置磁盘的概念。您可以分配一个 4TB 驱动器,但它一开始很小,随着块写入虚拟磁盘(通过 iSCSI)而增长。
我们用于主文件系统的虚拟磁盘已增长到 1.5TB,并且有足够的虚拟空间(2.5TB),但 SAN 上的磁盘空间则是另一回事 - 它有点紧张。这是精简配置的缺点 - 您可能会过度使用磁盘空间。
因此,我们正忙于将主磁盘系统中的旧文件夹存档到存档区。
但是,只有当 Windows 2008 重新使用已删除的块时,这才会产生影响前当添加新文件时,它会将新块添加到磁盘。
情况确实如此吗?或者我们是否在浪费时间进行归档(除了保持整洁的好处之外)并且需要尽快考虑扩展 SAN 磁盘?
答案1
您正在寻找的实际上是“精简回收”,即服务器操作系统在取消映射块时通知底层存储的过程,即使块尚未清零。但是,某些供应商可以将 Windows 2008 配置为以这种方式运行(至少我上次读关于某人测试 starwind) 不是你的。
我认为在 Windows 中无法配置将新数据写入磁盘的位置。不过,我敢肯定,这已经足够复杂,您不会想轻易配置它。无论如何,您必须假设 Windows 会将数据写入其想要的位置,而不管后端存储正在做什么。
如果您确实删除了大量文件,请考虑将它们迁移到另一个精简配置的 LUN。如果您要频繁执行此操作,那将非常浪费时间,但它会为您赢得足够的时间来扩展存储硬件或决定更持久的解决方案。
答案2
请与供应商核实,但您很可能正在浪费时间进行存档。
分配给 LUN 的空间不会因为在 Windows 中删除文件而缩小。请注意,分配给 LUN 的空间与 LUN 本身的大小不同。如果您精简配置 100GB 的 LUN,并向其写入 10GB 的数据,SAN 将在其底层磁盘上为 LUN 分配 10GB 的原始磁盘块。然后,当 Windows 想要写入新块时,这会增加精简 LUN 上分配/配置的空间百分比。随着时间的推移,当 Windows 请求写入原始(从未触及)块时,SAN 将从其全局未使用块池中分配这些块,并且 LUN 的分配/配置大小将进一步增加。
最终,随着数据流失足够多,精简配置的 LUN 将变为密集配置的 LUN。这可能需要很长时间,但完全取决于操作系统的行为。
如果没有特殊软件(Basil 提到过),SAN 就无法知道哪些块可以回收,因为 SAN 本身无法“看到”NTFS(或任何其他文件系统)。此外,大多数时候您需要在 Windows 中运行此软件前该卷将变得配置密集,但请再次与供应商核实。
一般来说,精简配置可以为您争取时间(您不必一开始就分配所有存储)但最终您将需要使用存储 100% 支持您的卷。
请注意,我的理解是Linux确实更喜欢覆盖块而不是使用原始块,但我没有参考资料来支持这一点。