Btrfs

Btrfs（B-tree file system : バター エフエス、またはB木 『ビーツリー』 エフエスと読むCRFS and POHMELFS [LWN.net]）はLinux向けのコピーオンライトのファイルシステムで、オラクルによって2007年に発表されGNU General Public License (GPL) の元で公開されている。
Btrfsはサン・マイクロシステムズのZFSファイルシステムの影響を受けて開発され、スナップショットやコピーオンライトの機能を持ち、他のLinuxファイルシステムが現在持っている多くの制約を受けないことが期待されているが、開発を主導したオラクルにとっては、2010年のサン・マイクロシステムズ吸収合併により、ZFSと社内で競合する技術になってしまっている。

 概要 
ext3とext4ファイルシステムの開発者セオドア・ツォー (Theodore Ts'o) は、Btrfsには「reiser3/4にあったのと同じ設計上の思想がいくつもある」と語っている。

オラクルにおけるLinuxカーネル開発のディレクタでBtrfsの開発者であるクリス･メイソン (Chris Mason) は「主な目標は将来利用できるようになるストレージに対してLinuxがスケールするようにすることだ。スケールはストレージに対処することについてだけではなく、人々に何が使われているのかを見せ、信頼性を高めるきれいなインタフェースでそれを管理し運営できる手段でもある」と述べた。

2009年1月にBtrfsはメインラインのLinuxカーネルの2.6.29-rc1プレリリースにマージされたが、当時は試験的な位置づけであり、商用的な利用ができる状態ではなかった。また、ディスク上のフォーマットが確定しておらずテスト以外の目的でユーザが使うべきではないとされた。。2.6.31 以降は後方互換性のある形でしか変更していない。2015年には、SUSE Linux Enterprise Server 12のデフォルトのファイルシステムとして採用された。一方Red Hat Enterprise Linuxでは、RHEL 6で技術プレビューとしてBtrfsのサポートが導入されていたが、RHEL7.4リリース時点でRHEL8でのサポート終了が公表され、RHEL 8以降ではサポートが行われていない。

開発中のReactOSはBtrfs対応を目指しており、2018-11-06リリースの0.4.10より、Btrfsシステムドライブより起動可能になる等、対応が進みつつある。

 特徴 
upright=1.5|サムネイル|Btrfsファイルシステムの使用情報の例
Btrfsは耐障害性、修復機能や容易な管理に焦点を合わせている。

Btrfsは以下の特徴を実装しているFeature list from  and 。

 空間効率の良い小さなファイルの格納と、空間効率の良いインデックス付きディレクトリ
 動的なinodeの割り当て（ファイルシステムの作成時に設定されるファイル数の最大値がない）
 書き込み可能なスナップショットとスナップショットのスナップショット
 サブボリューム（複数の内部的なルートディレクトリ）
 （強い完全性の保証のための）データとメタデータのチェックサム
 圧縮 (gzip, LZO, Zstd)
 すべてのデータとメタデータに対するコピーオンライトのロギング
 いくつかのRAIDアルゴリズム (RAID-0, RAID-1, RAID-5, RAID-6, RAID-10) とともに、複数のデバイスをサポートするためのデバイスマッパとの強い統合
 効率的な増分バックアップ(send/receive)
 ext3、ext4からbtrfsへのファイルシステムのアップグレードと、アップグレード時点への逆変換https://archive.kernel.org/oldwiki/btrfs.wiki.kernel.org/index.php/Conversion_from_Ext3.html
 ソリッドステートドライブ (SSD) 最適化モード（マウントオプションで有効化される）
 オンラインデフラグメンテーション
 シードデバイスのサポート
 オフライン重複排除（ユーザ空間のツールが必要）
 オンラインバランシング
 オンラインボリューム拡張及び縮小
 オンラインデバイスの追加と削除
 サブボリュームのクオータ

以下の機能が開発中もしくは開発予定。
 非常に高速なオフラインファイルシステムチェック
 オブジェクトレベルのミラーリングとストライピング
 他のチェックサムアルゴリズム
 オンラインファイルシステムチェック
 効率的なインクリメンタルファイルシステムミラーリング
 オンライン重複排除
 スワップ
 暗号化
Btrfs自体は分散つまりネットワークファイルシステムにするネイティブな特徴を持たないが、オラクルは CRFS (Coherent Remote File System) という特にBtrfs上のネットワークストレージ向けに設計され最適化されたネットワークファイルシステムプロトコルを実装しはじめた。

 脚注 

 関連項目 

 ext4
 ZFS
 openSUSE

 外部リンク 
 Btrfs公式サイト
 旧Btrfs公式サイト
 最初のBtrfsの発表
  btrfs上に構築されている

 WinBtrfs Windows向けBtrfsドライバ

Category:Linuxのファイルシステム