現在、システムのバックアップパフォーマンスを向上させる方法を探しており、一部のテストでは次のような結果が得られています。
圧縮されていないTARを使用してUbuntuシステムをSSDからHDD(ext4のすべて)にバックアップすることは、同じコンテンツをSSDからHDDに同期するよりもはるかに高速です。
詳細:
TAR
1h 15min
429Gの大容量ファイルの取得と生成rsync
5h
大きな406Gフォルダを撮影して作成する
両方のツールで使用されている無視ファイルの内容が同じで、両方のツールに対してわずかに調整されているため、同じデータをコピーする必要があります。
最終的なTARが実際にrsyncedフォルダより大きい理由はよくわかりませんが、ATMにはあまり興味がありません。
私が本当に興味を持っているのはTARはなぜそんなに速いのですか?&私ができるなら何らかの方法でrsyncを改善してください。(または他のファイルコピーツール)同様のパフォーマンスを得るには?
私はTARをバックアップ戦略として使用したくありません。これは、大きなアーカイブを解凍したり、単一のファイルを抽出するのに「長い時間」がかかり、実際にアクセスする必要がある場合に問題になる可能性があるためです。
常に同じターゲットフォルダにコピーすると、rsyncのパフォーマンスが大幅に向上する可能性があることに気づきました。増分コピーしかし明らかです。私が探しているものではありません。なぜなら、常に異なる日付の複数のバックアップをしたいからです。
アップデート、追加情報
代替「TARによるコピー」テスト
私も「TAR経由でコピー」を試しました。ここまたはここ)はrsyncより少し遅いので、ボトルネックは書き込み速度のようです。
使用されるコマンド
上記の結果を得るために、次のコマンドを使用しました。
tar -X "tar-excludes.txt" -cvf "/media/backup/full" "/"
rsync -aAXWvh --stats --info=progress2 --exclude-from "rsync-excludes.txt" --log-file="log.txt" "/" "/media/backup/full"
文書
オペレーティングシステム全体(一部の例外を含む)をバックアップするため、バックアップにはすべての種類のファイルが含まれます。いくつかの大きなファイルと多くの小さなファイル。
デバイスの詳細
ホストはIntel NUC D34010WYKH〜8年の製品です。
ソースドライブは内部SSDで、ターゲットドライブはUSB 3.0を介して接続された外部HDDです。両方のドライブが使用されますext4
。
ベストアンサー1
さまざまな cpio および tar ファイル形式は、ファイルヘッダーとファイルデータの簡単な順序です。新しいファイルヘッダーを作成すると、レコードが出力ファイルに追加されます。ファイルデータを作成すると、出力ファイルにさらにレコードが追加されます。
これが起こる唯一のことです。レコードが出力ファイルに追加されます。多くの場合、これらのレコードは10KiBまたは5KiB(場合によっては1MiB)チャンクでバッチされます。
これは非常に効率的な作業です。出力ファイルが実際の場合テープ装置これは単にテープの現在の位置に書き込み(順次出力)を追加するだけです。これは驚くべきことではありません。これらのユーティリティはファイルをテープに保持するように設計されており、順次I / O属性は良好で、ランダムアクセスI / O属性は悪いです。
(圧縮を追加してもこの内容は変わりません。圧縮ユーティリティも順次I / Oを使用するように設計されています。)
これがディスクボリューム上のファイルであっても、レコードの各追加バッチは本質的に3つの作業です。つまり、別のブロックを取得するためにディスクボリュームの空き領域マップを調整し、ファイルの末尾に対応する新しいブロックを含めるようにファイルinodeを調整します。ファイルシステムがコストを削減できる範囲と適切な割り当て戦略を使用してブロックを作成します。これは、順次追加の書き込みパターンが検出されたときに連続データブロックの実行を推論的に事前割り当てする一般的なファイルシステムドライバの最適化を使用すると、実際に非常に安価に実行できます。
rsync
バックアップは、ディレクトリエントリの作成、Bツリーの更新などを含むツリー全体をディスクボリュームに作成し、iノード割り当て、ハードリンク作成、およびすべてのログ更新を作成します。またディスクボリュームの空き領域マッピングの調整、inodeのブロック割り当ての調整、ファイルデータのブロック書き込みなど、個々のファイルレベルでcpio / tarアーカイブを操作します。
順次追加操作のみを使用してアーカイブを作成することはテープにとって非常に効率的であり、ディスクボリュームに格納されている単一のアーカイブファイルにも非常に効率的です。多数の個別ファイルを作成するには、本質的に多くの作業が必要です。
もちろん、これらの効率のために支払う対価は、アーカイブの簡単なインライン修正、優れたアーカイブランダムアクセス読み取り、スマート増分バックアップ機能です。
1980年代に、Rahul Dhesiはアーカイブ形式を作成しました。最大Serial(シリアル)は、少量のランダムアクセス I/O を使用して既存のアーカイブへのインライン更新を可能にし、置き換えられたファイルのヘッダーを上書きします。欠点は、アーカイブ全体を書き換えて置き換えられたファイルのファイルヘッダーとデータを頻繁に削除する必要があります。