Btrfsはコマンドをアトミ​​ックに受け取りますか?

Btrfsはコマンドをアトミ​​ックに受け取りますか?

簡潔なバージョン:sendBtrfsとcommandの助けを借りて定期的なバックアップを実行していますreceive。バックアップするデータを含むスナップショット()はSOURCE読み取り専用スナップショットです。 Btrfsを使用してこのスナップショットを作成するのはアトミックです。次に、sendBtrfsとコマンドを組み合わせてバックアップを作成しますreceive。私の質問は:Btrfsreceiveコマンドもターゲットボリュームにバックアップスナップショットを自動的に作成しますか?

長いバージョン: 毎日のバックアップ戦略では、Btrfs を使用してソースサブボリュームの変更をバックアップドライブに送信します。バックアップしたいサブボリュームはにあり、SOURCEバックアップ自体はに保存されますDEST

バックアップを実行する前に読み取り専用スナップショットが必要で、それをサブディレクトリにSOURCE保存してください。これはコマンドによって実行されます。SOURCE.snapshots

btrfs subvolume snapshot -r SOURCE SOURCE/.snapshots/current_backup
sync

syncBtrfs-wikiによると、上記のコマンドが機能するにはbtrfs send。これで、呼び出されたスナップショットを別のドライブのバックアップボリュームに送信したいと思いますcurrent_backupDEST私はコマンドを使ってこれを行います。

btrfs send SOURCE/.snapshots/current_backup | btrfs receive DEST

私の質問は、btrfs receiveバックアッププロセスのこの部分についてです。これは自動的に発生しますか?つまり、DEST完全に受信および記録された後にのみボリュームのバックアップを使用できますか?

ベストアンサー1

いいえ、原子的ではありません。 Btrfs 受信はサブボリュームを生成するため、これはアトミックですが、最初はサブボリュームが空です。その後、btrfs receiveはサブボリュームを受信データで埋めます。

DESTでcd'ingし、バックアップの実行中にlsまたはfindを繰り返し実行してテストできます。

おすすめ記事