ZFS + dedup:たくさんの小さなファイルを速くコピーする


0

私は、Webサイトをバックアップし、それらを保持して保存するために、ZFSバックアップサーバー(重複排除機能付き)を実行しています。これを行うには、最初のバックアップ時にすべてのファイルをバックアップサーバーに転送し、それらすべてのファイルのコピーを作成して、保持するセットと翌日のバックアップを同期するセットを作成します。

ただし、これらすべてのファイルのローカルコピーを作成するのには15 GBのデータしかないまま3時間以上かかりますが、別のサーバーから転送すると30分しかかかりません。これはおそらく、 "cp"コマンドが一度に1つの(小さい)ファイルを読み取り、それをストレージに書き込むためです。これにはメカニックディスクとそのシーク時間(3ディスクのraidZ)で数時間かかります。

コピーが最初にファイルごとにデータを読み込むのではなく、最初に大量のデータをメモリに読み込み、次にそれを書き込む場合は、これはおそらく修正されます。


1
スナップショットを作成することで、バックアップ目的でコピーを作成する必要がなくなる(そしてはるかに高速になるはずだ)と私も思う。とはいえ、コピー速度は遅いようです。すべてのチェックサムがあるため、ZFSは大量のCPUを消費します。 Dedupeは大量のRAMを消費します。 RAMの容量が多くなり、L2ARCキャッシュドライブをプールに追加して重複排除のパフォーマンスを向上させることはできません。より多くのRAMとあなたが持っているキャッシュ、コンピュータがメモリに保存できるファイルハッシュが多いほど、ファイルシステムは重複排除するファイルをより早く見つけることができます。 (また、圧縮が高く設定されている場合、それはより多くのCPUを必要としますが、それはバックアップとのトレードオフです。)
Scott McClenning

他にも、転送する2台のサーバーにZFSがあり、スナップショットを使用できる場合は、ZFS SendとZFS Receiveを使用してスナップショットを1つのzpoolから別のzpoolに転送することができます。マシン。その場合、転送にrsyncは必要ありません。
Scott McClenning

回答:


1

あなたの問題はシークタイムです。この2つの解決策のうちの1つを使用したほうがよいでしょう。

  • tar あなたのデータセットのアーカイブを作成するために、私はそれが速くなると思います

または

  • ZFSのスナップショットディレクトリ機能を使用する

スナップショットを使用することは実際には非常に優れた解決策ですが、バックアップされたサーバーごとにボリュームとスタッフを作成する必要がありますが、すぐに検討します。
Evianon
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.