簡潔なバージョン:send
Btrfsとcommandの助けを借りて定期的なバックアップを実行していますreceive
。バックアップするデータを含むスナップショット()はSOURCE
読み取り専用スナップショットです。 Btrfsを使用してこのスナップショットを作成するのはアトミックです。次に、send
Btrfsとコマンドを組み合わせてバックアップを作成しますreceive
。私の質問は:Btrfsreceive
コマンドもターゲットボリュームにバックアップスナップショットを自動的に作成しますか?
長いバージョン: 毎日のバックアップ戦略では、Btrfs を使用してソースサブボリュームの変更をバックアップドライブに送信します。バックアップしたいサブボリュームはにあり、SOURCE
バックアップ自体はに保存されますDEST
。
バックアップを実行する前に読み取り専用スナップショットが必要で、それをサブディレクトリにSOURCE
保存してください。これはコマンドによって実行されます。SOURCE
.snapshots
btrfs subvolume snapshot -r SOURCE SOURCE/.snapshots/current_backup
sync
sync
Btrfs-wikiによると、上記のコマンドが機能するにはbtrfs send
。これで、呼び出されたスナップショットを別のドライブのバックアップボリュームに送信したいと思いますcurrent_backup
。DEST
私はコマンドを使ってこれを行います。
btrfs send SOURCE/.snapshots/current_backup | btrfs receive DEST
私の質問は、btrfs receive
バックアッププロセスのこの部分についてです。これは自動的に発生しますか?つまり、DEST
完全に受信および記録された後にのみボリュームのバックアップを使用できますか?
答え1
いいえ、原子的ではありません。 Btrfs 受信はサブボリュームを生成するため、これはアトミックですが、最初はサブボリュームが空です。その後、btrfs receiveはサブボリュームを受信データで埋めます。
DESTでcd'ingし、バックアップの実行中にlsまたはfindを繰り返し実行してテストできます。