【ビーツリーエフエス またはバターエフエス】

Btrfs とは?

最終更新:
💡 変更前のデータを共有して、過去の状態を残す

Linuxのコピーオンライト型ファイルシステム。スナップショットとバックアップの違い、チェックサムによる検出と修復の条件、圧縮・重複排除・RAIDの注意点を解説します。

📌 このページのポイント
Btrfs:共有したデータと変更後① スナップショット作成時現在のデータスナップショット共有するブロックA② データの変更後現在のデータスナップショット新しいブロックB元のブロックA同じ保存先の故障には、両方が巻き込まれる
線は参照関係で、データ転送の向きではありません。変更した部分を新しい場所へ書き、スナップショットが参照する元の内容を残す例。変更していない部分やメタデータは省略し、独立したバックアップは別に必要です。
ひよこ ひよこ
Btrfsは、何を管理するの?
ペンギン先生 ペンギン先生
Linuxでファイルやディレクトリを保存・管理するファイルシステムだよ。コピーオンライト、スナップショット、圧縮、複数デバイスの管理などの機能を備えている。どの機能を使うかは設定と用途によるんだ。
ひよこ ひよこ
スナップショットは、ファイルを全部もう一度コピーするの?
ペンギン先生 ペンギン先生
作成時は元のサブボリュームとデータを共有するので、ファイル全体の別コピーを作らずに過去の状態を残せるよ。その後の変更では、新しい内容を別の場所に書く。コピーオンライトにより、スナップショットが参照する変更前の内容を残すんだ。
ひよこ ひよこ
それがあれば、バックアップはいらない?
ペンギン先生 ペンギン先生
同じストレージ上のスナップショットでは、そのストレージの故障に一緒に巻き込まれるよ。公式もスナップショットはバックアップではないと説明している。必要なデータを別の媒体などに保管し、復元できるかも確認しよう。
ひよこ ひよこ
データが壊れても、自動で全部直してくれる?
ペンギン先生 ペンギン先生
チェックサムで破損を検出する機能があるけれど、検出と修復は別だよ。正常な冗長コピーがあれば、それを使える場合がある。コピーがない破損を、チェックサムだけで元の内容に戻すことはできないんだ。
ひよこ ひよこ
RAIDや重複排除は、何でも安心して使える?
ペンギン先生 ペンギン先生
RAID 0は冗長化ではなく、データを分散する方式だよ。RAID 5・6は現在も公式が実験的で本番利用に未対応と説明している。また重複排除は、後から外部のツールで対象を探して行う方式で、書き込むだけですべて自動で重複が消えるわけではないんだ。
もっと詳しく知りたい人へ

スナップショットを取れば、下のサブボリュームも全部保存される?

Btrfsのスナップショットはサブボリューム単位です。入れ子になった別のサブボリュームの内容を、再帰的にすべて含めるわけではありません。保存したい範囲と構成を確認します。作成や復元の時間も、状態や手順によるので、一律に「瞬時」「数秒」とは言えません。

send/receiveを使えば、独立したバックアップにできる?

スナップショットの内容や差分を送り、別のBtrfsファイルシステムに受け取るための機能があります。独立した媒体・保管場所に保存するなど、同じ故障で失われない構成を考えます。読み取り専用スナップショットなど必要な条件と、復元手順を確認して使います。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「Btrfs」って出てきたら「CoWやスナップショット、圧縮などを備えるLinuxのファイルシステム」と思えばだいたいOK!スナップショットと、独立したバックアップは分けて考えよう。
📖 おまけ:英語の意味
「Btrfs」 = Linuxのファイルシステムの名前
💬 公式ドキュメントでもBTRFSと表記され、コピーオンライト型のファイルシステムとして説明されています。名前の読み方より、スナップショットが何を保存するかを理解することが重要です。

参考資料

← 用語集にもどる