FREENAS:为什么在RAIDZ1卷中没有mv命令?

我目前正在重组RAIDZ1卷内的文件结构。 将目录从一个数据集移动到另一个,它们都包含在同一个卷上。

用SSH进入机器,做了一个老式的:

mv *目的地

这不应该是瞬间的吗? 我知道它分布在三个驱动器上,但同时,这些文件本身并不需要移动 – 我只是希望它能够调整这些文件的指针,而且基本上是瞬时的。 这绝对不是。 我有大约500G的数据移动,现在已经运行了大约半个小时。 OO

为什么不是瞬间?

规格:CPU:Intel G3220
MB:技嘉GA-B85-HD3
MEM:金士顿DDR3-1600 8GB
磁盘:RAIDZ1卷中的3x2TB WD Green

你从错误的层面考虑事情,就是一切。

如果您在单个ZFS数据集的范围内移动文件,它将会与您所期望的类似。 如果你在一个池的范围内但是在数据集之间移动一个文件,这是一个真正的动作。 是的,从技术上讲,数据刚刚从A点到B点,两个点都在同一盘上 – 但从ZFS的angular度来看,它移动了房屋。

ZFS数据集是独立的文件系统。 真正的文件系统。 它们可以有不同的块大小,压缩设置等。在两个ZFS文件系统之间移动一个文件,即使在同一个池中,也是一个真正的动作 – 比特被读取然后再被写入,而不是只更新一个指针。

在function上,它大致类似于在技术上来自同一硬盘的两个分区的两个ext4文件系统之间移动文件 – 尽pipe共享底层硬件,两个文件系统在逻辑上是分离的,所以不会发生“指针”变化,它必须物理移动文件,即使它只是在同一底层驱动器上将数据从一个位置复制到另一个位置。