我有一个很大的卷,其中只包含一个我想拆分的 NFS 共享。其中 500GB(三个特定的子目录)需要放入一个新卷中。我想避免再次写入这些数据。这是我认为可行的方法,但一位同事认为它行不通:
- Flexclone 大容量
- 在管理服务器上,挂载 flexcloned 卷并删除所有其他子目录
- 挂载原卷,删除三个子目录
- 分离克隆
按照我的理解,当您拆分 FlexClone 时,只会复制具有多个指针的 WAFL 块。从理论上讲,我不应该有任何(或很多)这些。我会留下两个包含完全不同数据的非链接卷,并且 500GB 都不会被写入。
是这样吗?如果我在从源卷中删除一些数据后拆分 FlexCloned 卷,它会复制那些块吗?
这非常有意义——正如您所知,原始数据将驻留在磁盘上的原始位置,不会被复制。只有对它的引用会改变:
现在您可以删除各个位置不需要的数据,删除快照(我认为)并执行以下操作
vol clone split
:(如果它不允许您删除快照,则需要先进行拆分,从而复制数据)
来源:http ://www.redbooks.ibm.com/redpapers/pdfs/redp4133.pdf
你是对的。
来自 NetApp 知识库文章 3013526:
创建 FlexClone 卷后,所有数据立即在它与父卷的参考快照之间共享,并且将 FlexClone 卷从父卷中拆分出来需要的存储容量等于父活动文件系统在快照的时间。由于 FlexClone 卷和父卷因写入、覆盖和删除而不同,共享数据量会减少。Data ONTAP 包含一个命令,用于估计将 FlexClone 卷从其父卷中拆分所需的存储容量。... 对于 7-模式下的 Data ONTAP,请使用 vol clone split estimate 命令。以下是此命令的示例用法和输出。
7-mode> vol clone split estimate quotas_c 聚合中估计需要 10gb 可用存储才能从其父级拆分克隆卷“quotas_c”。
仅在文件管理器上使用 ndmpcopy 将需要复制的任何目录复制到新卷会容易得多。ndmpcopy 还支持增量复制。或者,如果您的目录是 QTree,则可以使用 QTree snapmirror 将数据获取到您希望的位置。