フリーソフトウェアを使用して実行されているLinuxシステムの原子増分バックアップを実行するにはどうすればよいですか?

フリーソフトウェアを使用して実行されているLinuxシステムの原子増分バックアップを実行するにはどうすればよいですか?

私は実行中のディスクベースのLinuxシステム(Ubuntuなど)で利用可能な無料ソフトウェアである増分バックアップツールを探しています。


Clonezillaは正確なバックアップを作成できますが、システムがアイドル状態の場合にのみ可能です。

Acronis for Linuxは、実行中のシステムで正確なバックアップを実行できますが、フリーソフトウェアではありません。 Acronis と BTRFS は、オペレーティングシステムのランタイムブレーク効果をシミュレートするためにファイルシステムのランタイム変更をキャプチャする方法を使用します。私はこれを行うことを探しています。

rsync、dump、その他多くの不適切なツールが推奨され、この目的にも使用されますが、実行中のオペレーティングシステムを正確にキャプチャすることは信頼できません。 rsync は静的ファイルシステムで使用すると正常に動作しますが、マルチスレッド実行可能ファイルシステムでは動作しません。

実行中のファイルシステムを何らかの方法でコピーするだけで、正確なバックアップを作成できると信じている人がどれほど多いのか本当に驚くべきことです。数年前、私は小さなマルチタスクエンジンを作成し、ある仕事が他の仕事を汚染する危険性を非常に認識していました。 100%正確な回復可能なバックアップキャプチャは、バックアップがアトミックジョブとして実行され、他のすべてのジョブが動作中に停止した場合にのみ保証されます。バックアップがあれば役に立つと信じていますが、使用しようとするとそのバックアップが破損していることを知っているよりも悪いことはありません。

仮想設定ではなく、通常の古いデスクトップLinuxに必要です。

ベストアンサー1

述べたように、BTRFSはこれを行うことができます。これが私が定期的にノートブックをバックアップする方法です(私が入力している間のノートブックの稼働時間は9週5日です)。

私のBTRFSファイルシステムにはサブボリュームがあります。バックアップするデータを保存するためにファイルシステムのルートを使用しない限り、データをサブボリュームに分割する方法とネストする方法はここでは重要ではありません。

次のコマンドは構文と可能性を説明するために使用され、cronjobまたはsystemd.timerで実行されるスクリプトでラップすることをお勧めします。

サブボリュームのスナップショットを撮るには:

btrfs subvolume snapshot -r <source> <dest>

スナップショットをシリアライズするには:

btrfs send <snapshot>

以前のスナップショットに基づいてスナップショットをシリアライズするには(例:diff):

btrfs send -p <start> <end>

差分を生成するには、「進行率」監視を使用して動的に圧縮してバックアップサーバーに送信します。

btrfs send -p <start> <end> | \
    pv -bart | \
    pbzip2 --best | \
    ssh [email protected] "cat > /backups/name.bz2"

同様の操作を実行しますが、BTRFSストリームを圧縮するのではなく、バックアップサーバーでBTRFSサブボリュームを再作成します。

btrfs send -p <start> <end> | \
    pv -bart | \
    pbzip2 --best | \
    ssh [email protected] "pbzip2 -d | \
    btrfs receive <target>"

復元するには、.applyを介して新しいBTRFSファイルシステムにスナップショットを適用しますbtrfs receive


詳細は次のとおりです。BTRFS増分バックアップ

おすすめ記事