2008年(8065)
分类: 服务器与存储
2008-09-05 14:25:53
本文探讨了一种相对较新的 NetApp 技术——空间收回,它可以帮助您节省并重新使用 Windows 环境中您已分配给 LUNs 的磁盘空间。NetApp 是提供这种功能的唯一供应商。
了解空间收回技术
要了解空间收回技术,您必须记住您在何时将 LUN 分配给主机以及主机何时在 LUN 上创建其文件系统和撰写簿记。这样,主机就可以通过不同于存储系统的方法了解当前在 LUN 内使用了多少空间。(这完全适用于所有的 SAN 存储供应商,而不仅仅是 NetApp。)
图1 在收回空间上,主机和存储的空间使用观点如何出现分歧
在接下来的说明中,您需要参阅图 1。以分配给主机的新 LUN 为例。在步骤 1 中,我们写了两个新文件,每个占 LUN 25% 的空间。主机和存储都报告使用了 50% 的空间,这在意料之中。如果我们增加同样大小的第三个文件(步骤 2),主机和存储汇报的利用率又都一样。
但是假如我们现在按照步骤 3 的说明删除前两个文件。记住,对于大多数的文件系统(包括 NTFS),删除文件都会引起文件系统重新分配数据块并将其写入可用数据块列表中。不会有任何消息告知存储系统所发生的情况。LUN 内存储的数据对于存储系统来说是不透明的。因此,主机和存储系统的观点突然发生分歧。主机报告文件系统仅用了 25% 的空间,而存储系统认为占用了 75% 的 LUN。
主机没有任何义务重新使用它刚释放的数据块,因此如果之后另一个大型文件被写入到 LUN,这个文件就可能占用之前未使用的空间,如步骤 4 所述。此时存储系统就认为 LUN 已满,而主机显示只利用了 50%。
在将固定大小的 LUN 专门分配给某个应用程序的情况下,这些差异并不会真正造成问题。但是它会影响以下两处:
简化配置。如果您使用简化配置,在存储系统上可能有很大的差别,其一是认为完全占了 LUN 的 25%,另一种认为完全占了 LUN 的 75%。
Snapshot 副本。猜猜会发生什么?如果存储系统不知道分配给已删除文件的数据块实际上未在使用,则会将这些数据块保存在 Snapshot 副本内。随着时间的推移,您可能需要越来越多的 Snapshot 副本存储空间(一个更大的 snapreserve,叫做 NetApp)。
收回 LUN 中未使用的空间
此时,您可以看到收回存储空间的一些优点。当空间收回开始时,主机上的代理会确定 LUN 上的哪些数据块没有被 NTFS 使用。然后主机代理将此信息传达到存储系统,WAFL 将把这些数据块标记为可用。存储系统释放这些数据块后,在生成Snapshot 副本时其将不会继续保留。如果启用了简化配置,则空间又可以被其它的 LUN 重新使用。
如果没有空间收回,几乎不可能长时间简化配置 LUN。很显然,这取决于特殊应用程序使用存储空间的方式,但通常存储系统可能会不断分配空间一直到 LUN 达到最大值,这时就好像您在正常配置 LUN 一样。图 2 说明了空间收回如何恢复空间的情况。
图2 空间收回对 LUN 空间使用的影响
在显示所使用的数据数量有着巨大变化的任何环境中,空间收回可能会特别有用。用于排队打印任务、电子邮件或标准文件共享的系统都极为适于定期使用空间收回。发生过很大变化的任何系统也很适于空间收回。如果您由于归档而执行数据库重组或大量更改数据库,空间收回将可能恢复大量数据。
空间收回入门
NetApp 空间收回技术已经集成到 NetApp SnapDrive for Windows 5.0 并且没有增加额外成本。SnapDrive 使用基于向导的方案或通过可与管理脚本和计划程序共同使用的命令行接口 (SDCLI) 使 Windows 管理员更易于管理 NetApp SAN 存储。
使用 SnapDrive GUI 或 SDCLI,您可以定期在 LUN 上启动空间收回过程。GUI 工具将首先确定有多少空间可以收回并询问您是否要继续。您可以限制该过程使用的时间以确保其不会在高峰期运行。
以下是您运行空间收回须注意的事项:
更多地了解您的存储
借助空间收回技术,NetApp 为您提供了可进一步提高存储效率的新工具。空间收回技术可以长期高效地简化基于数据块的 LUN 的配置,而不会使 LUN 空间分配慢慢达到 100%。它还可以提高 LUN 上 Snapshot 副本的效率,从而减少您需要为该重要功能而保留的空间量。