监视迁移进度
在给定的迁移运行环境下,监视影子迁移的进度比较困难。一个文件系统可以作为一个文件系统全部内容或部分内容的影子,也可以作为具有嵌套挂载点的多个文件系统的影子。因此,无法请求有关源的统计信息,并确保这些信息是正确的。此外,即使迁移单个文件系统,用于计算可用大小的方法在各个系统之间也是不一致的。例如,远程文件系统可能会使用压缩,或者可能包括元数据开销,也可能不包括元数据开销。因此,对于任何特定的迁移,无法显示准确的进度条。
此 ZFSSA 会提供以下信息,这些信息可确保准确无误:
-
到目前为止,本地文件系统的本地大小
-
到目前为止,所复制数据的逻辑大小
-
到目前为止,迁移数据所花费的时间
这些值是通过标准文件系统属性以及影子迁移节点(或 UI 面板)的属性在 BUI 和 CLI 中提供的。如果您知道远程文件系统的大小,则可以使用此大小来估计进度。复制的数据的大小仅包含需要从源迁移的纯文件内容。目录、元数据和扩展属性不包括在此计算中。虽然到目前为止迁移的数据的大小仅包括远程迁移的数据,但是,恢复后台迁移可能会遍历已完成迁移的文件系统部分。这可能会导致在处理这些初始目录时运行相当快速,但当到达尚未迁移的文件系统部分后,运行速度会减缓。
虽然对进度没有准确的测量方法,但是,ZFSSA 会根据相对统一目录树的假设,尝试对剩余的数据量进行估计。此估计值的范围可能相当准确,也可能毫无意义,具体取决于数据集,因此该信息仅供参考。例如,一个迁移可能具有相对较浅的文件系统树,但在最后访问的单个目录中却存在大量数据。在这种情况下,迁移将显示为接近完成,然后在搜索此新树时,完成进度会迅速下降到一个非常小的百分比。相反,如果首先处理的是大型目录,则在进行估计时可能会假定所有其他目录都同样具有大量的数据,而在发现这些目录大部分为空时,估计值会快速从一个小的百分比上升到接近完成。测量进度的最佳方法是设置一个测试迁移,让它运行至完成,然后使用该值来估计具有类似布局和大小的文件系统的进度。