迁移过程中的影子文件系统语义
如果客户机访问尚未进行迁移的文件或目录,将对文件系统产生以下可监测的影响:
-
对于目录访问,客户机请求将被阻止,直到整个目录完成迁移为止。对于文件访问,将只迁移所请求的文件部分,多个客户机可以同时迁移文件的不同部分。
-
可以在影子文件系统中任意地对文件和目录进行重命名、删除或覆盖,而对迁移过程没有任何影响。
-
对于作为硬链接的文件,在迁移完成之前,硬链接计数可能与源文件不匹配。
-
大多数文件属性都会在创建目录时进行迁移,但只有在对文件完成读取或写入操作后,盘上大小(UNIX stat 结构中的 st_nblocks)才可用。逻辑大小是正确的,但 du(1) 或其他命令会报告大小为零,直到文件内容已实际迁移为止。
-
重新引导 ZFSSA 后,迁移将从最初停止的位置开始继续进行。虽然不需要重新迁移数据,但可能需要遍历本地文件系统中某些已迁移的部分,因此,可能会由于中断而对总迁移时间有所影响。
-
数据迁移会利用文件上的专用扩展属性。通常,这些属性是无法查看的,除非它们位于文件系统的根目录上,或者通过快照来查看。如果添加、修改或删除以 SUNWshadow 开头的任何扩展属性,则会对迁移过程产生不确定的影响,并导致不完整或已损坏状态。此外,文件系统级别的状态存储在文件系统根目录的 .SUNWshadow 目录中。如果对此内容进行任何修改,则会产生类似的影响。
-
文件系统完成迁移后,将发布一个警报,同时会删除影子属性以及任何适用的元数据。之后,该文件系统就与标准文件系统没有任何差别了。
-
可以通过使用 NFSv4 自动客户机挂载(有时称为“镜像挂载”)或嵌套本地挂载将多个文件系统中的数据迁移到单个文件系统中。