web-dev-qa-db-ja.com

何百万もの小さなファイルをバックアップする方法は?

非常に短い期間で数百万の小さなファイルをバックアップする最良の方法は何ですか?ほとんどが小さなファイルである約6000万のファイルを含むファイルシステムをバックアップするのに5時間もかかりません。

Richcopy、7z、rsyncなどのいくつかのソリューションを試しましたが、どれも苦労しているようです。最適な方法を探しています...

最初にファイルをアーカイブに入れるか、ネットワークまたはハードディスク転送を介してファイルを別の場所に転送することができます

ありがとう

6
grassbl8d

ボリュームのスナップショットを作成し、スナップショットからバックアップできるファイルストレージシステムを使用することを強くお勧めします。このように、実際のサーバーへの影響はほとんどなく、バックアップシステムは、メインシステムを気にすることなくバックアップの実行に時間をかけることができます。あなたはオペレーティングシステムについて言及していませんが、ZFSやNetAppファイラーのようなものはこれを許可し、両方が至る所でこの正確な機能に使用されています。これを提供する他のファイルシステムがあると確信していますが、これらの作業は知っています。

お役に立てれば。

6
Chopper3

私は、95%が4k未満のサイズで、約50%が90日ごとに削除される約2,000万のファイルを保存するサーバーを使用しました。バックアップにはrawディスクイメージを使用します。また、スクリプトを介して作成された名前、md5ハッシュ、および日付のインデックスファイルを作成し、それを使用してコンテンツを追跡します。

元のバックアップソリューションは、md5署名によってファイルをblobとしてデータベースにロードすることでした。何百万ものmd5ハッシュを作成するのに、生の画像のバックアップを作成するよりも時間がかかったため、これは段階的に廃止されました。

2
sal

本当に毎回それらすべてをバックアップする必要がありますか?増分/差分バックアップを作成する場合は、関連するすべてのファイルではなく、毎回変更をバックアップするだけで済みます。

rsyncを見てきましたが、 rsnapshot を使用すると、一種の増分バックアップが作成されます。

1
El Yobo

ここでのボトルネックは、ファイルシステムとHDD自体です。小さなファイルが多数ある場合、FSは、ファイルとは別のファイルに関するメタデータを常に読み取っています。または、読み取っているファイルが、ディスク上の連続した素敵な塊にない場合があります。いずれの場合も、ドライブヘッドは動き回る必要がありますたくさん

これらすべての小さなファイルをより大きなファイルにすばやく変換するほど、プロセス全体が高速になります。

残念ながら、これらのファイルを一度コピーするだけの場合、アーカイブのように1つの大きなファイルにファイルを含めると、処理が遅くなるだけです。

すべてのファイルを読み取る>アーカイブ>バックアップ場所

VS

すべてのファイルを読む>バックアップの場所

最適な方法は、Windowsを使用しているため、すべてのファイルを2番目の場所に一度コピーしてから、変更された日付とサイズを使用するか、アーカイブビットを使用することです(ハッシュのようなコンテンツ検査ではなく、ファイルの読み取りを含みます)。 )変更されたファイルを特定し、それらのみをセカンダリの場所にコピーし、そこからバックアップします。または、poigeが提案するようなRAWコピーのように、FSをバイパスするシステムを使用することもできます。

0
Hydaral

次に、ボリューム全体(パーティション)を「raw」デバイスとしてバックアップします。

0
poige

Windows 2008以降のWindows Serverバックアップはボリュームレベルの画像を処理するので、何百万ものファイルメタデータをすべて処理する必要はありません。スナップショット(またはMS用語ではボリュームシャドウコピー)を実行し、ファイルシステムで使用されているすべてのブロックを順番にバックアップします。読み取りはシーケンシャルなので、非常に高速で、結果を別のボリュームまたはネットワーク共有上の大きな.vhdファイルに書き込みます。

いくつかの欠点があります。すべてのバックアップは完全バックアップであり、圧縮は行われず、ネットワーク共有にアクセスする場合は、ターゲットフォルダーごとに1つの「イメージ」しか保存できません。後者はスクリプトで、前者は7-Zip、rsyncなどのその他のツール、またはrawファイルを処理できるその他のバックアップ/圧縮/重複排除ツールで克服できます。

おそらく、このためにコマンドライン wbadmin インターフェイスを使用することになります。 GUIは無視してください。ほとんどのユースケースでは、単純すぎます。

0
rmalayter

これは私たちがしたことです:

NAS Windows 2008ストレージサーバーR2を搭載)を購入しました。実際には1つの大きなファイル(.vhd)であるISCSIターゲットを作成しました。ISCSIターゲットをマウントし、すべてのファイルを仮想ディスクに移動しました。 。

次に、バックアップソフトウェアを使用してvhdをバックアップします。 1つの大きなファイルをバックアップすることは、多くの小さなファイルよりもはるかに高速です。

NASにバックアップソフトウェアをインストールして、これにテープドライブを接続することもできます。これにより、二重ストレージを使用する必要がなくなります(データをミラーリングし、ミラーリングされたデータをバックアップして購入する必要はありません)時間)

0
Rooie3000