同じzfsプールに2つのファイルシステムが/mnt/fs_a
あり/mnt/fs_b
ます。からに約1 TBのデータを移動fs_a
しfs_b
ます。しかし、私が:
mv /mnt/fs_a/mythtv_recordings /mnt/fs_b/
驚いたことに、ファイルをブロックごとにコピーし始めます。2GBファイルを移動するのにかかった時間を考えると、この操作を完了するには大量のスラッシングが数日かかるようです。
これを行うには、はるかにスマートで高速な方法が必要です。
同じzfsプールに2つのファイルシステムが/mnt/fs_a
あり/mnt/fs_b
ます。からに約1 TBのデータを移動fs_a
しfs_b
ます。しかし、私が:
mv /mnt/fs_a/mythtv_recordings /mnt/fs_b/
驚いたことに、ファイルをブロックごとにコピーし始めます。2GBファイルを移動するのにかかった時間を考えると、この操作を完了するには大量のスラッシングが数日かかるようです。
これを行うには、はるかにスマートで高速な方法が必要です。
回答:
(これはコメントとして始まりましたが、長すぎたので今は答えです)
残念ながら、答えは「いいえ」です。これを行うためのより高速な、またはよりスマートな方法はありません。
ZFSファイルシステムは(同じプール上にあるとしても)別のファイルシステムです。どちらmv
も他のツールは、ちょうど上にあったファイルがなるようにブロックポインタを移動したり、何でもできるfs_a
になりましたfs_b
。
(mv
ちなみに、同じディスクまたはRAIDアレイ上の複数のフォーマットされたパーティションまたはLVMボリュームも個別のファイルシステムであり、それらのコピーと削除にも委ねられます)
この問題は長年にわたって何度も取り上げられています(あなたがやりたいことをするためのツールを作成するという話もあります)。 -のスナップショットがあるfs_a
場合、ブロックは両方のファイルシステムに同時に存在します。同じことがハードリンクを持つファイルにも当てはまります。
私は何度も(たとえば、データセット間でファイルを移動したときや、サブディレクトリをfsに変換する必要があるとき)自分自身に遭遇しましたが、不便に耐えることを学びました。主要なPITAになる可能性があります。
場合はfs_b
空であるか、まだ存在していない、あなたが移動したい全体の内容をfs_a
にfs_b
あなたが使用することができます(だけでなく、いくつかの、あるいはほとんどのファイル&ディレクトリ)zfs rename
名前を変更するfs_a
にはfs_b
。ただし、これはあなたの状況に関係ないと思われます。
https://github.com/zfsonlinux/zfs/issues/2991でZFSOnLinuxに関してこれに関する未解決の問題があります
私は検索していませんが、アップストリームのOpenZFS およびSun / Oracle ZFSでさえ、おそらく同様のバグレポート/機能リクエストがあると予想しています。
ところで、https: //serverfault.com/questions/584693/freenas-why-isnt-mv-command-instant-within-a-raidz1-volumeも参照してください