同じプール内のある zfs ファイルシステムから別の zfs ファイルシステムにファイルを移動するには?

同じプール内のある zfs ファイルシステムから別の zfs ファイルシステムにファイルを移動するには?

/mnt/fs_a同じzfsプールに2つのファイルシステムがあり、/mnt/fs_b約1 TBのデータfs_aをからfs_b。しかし、私は:

mv /mnt/fs_a/mythtv_recordings /mnt/fs_b/

驚いたことに、ファイルをブロック単位でコピーし始めました。 2GBファイルを移動するのにかかる時間を考えると、作業を完了するのに数日間かなりのスラッシングがかかるようです。

これを行うには、よりスマートで迅速な方法が必要です。そうですか?

ベストアンサー1

残念ながら、答えは「いいえ」です。これより速くスマートな方法はありません。

ZFSファイルシステム(同じプールにあっても)は別のファイルシステムです。他のどのツールも、以前に開いていたファイルが開かれるmvようにブロックポインタや他のものを移動することはできません。fs_afs_b

(しかし、同じディスクまたはRAIDアレイ上の複数のフォーマットされたパーティションまたはLVMボリュームも別々のファイルシステムなので、コピーしてmv削除することもできます。)

この質問は長年にわたって何度も現れてきました(誰かが望むことを実行するためのツールを作成することについて話します)。私が理解したところによると、難しいバスケットに入れるのが最も難しいのは、スナップショットの処理方法に関する質問です。すべてのスナップショットでは、fs_aブロックは両方のファイルシステムにあります。ハードリンクがあるファイルにも同様です。

私自身もこの問題を何度も経験し(たとえば、あなたのようなデータセット間でファイルを移動するとき、またはサブディレクトリをファイルシステムに変換する必要があるとき)、不快感を抱いて生きる方法を学びました。それは主要なPITAになることができます。

fs_b空またはまだ存在せず、移動したい場合みんなfs_atoの内容fs_b(一部またはほとんどのファイルとディレクトリだけでなく)の名前をにzfs rename変更できます。しかし、これがあなたのケースに関連しているかどうか疑われます。fs_afs_b

ZFSOnLinuxに未解決の問題があります。https://github.com/zfsonlinux/zfs/issues/2991

検索しませんでしたが、上流を希望します。オープンZFS Sun / Oracle ZFSにも同様のバグレポート/機能要求がある可能性があります。

ところで、また参照してくださいhttps://serverfault.com/questions/584693/freenas-why-isnt-mv-command-instant-within-a-raidz1-volume

おすすめ記事