Linuxのカーネルの開発に関する世界観(Btrfs/ZFS)です。
Btrfsは現在Linuxカーネルで開発されている先駆的なファイルシステム。機能が豊富で、まだ未熟だが進歩の期待度が大きい。いつか標準になる日が来るかもしれない。
機能的には、SunのZFSに近い。ZFSはGPLとの兼ね合いでLinuxでは使えないため、Btrfsに期待が集まっている。
そもそもはOracleによって開発された。Oracleは信頼できるデータベースの会社であるため、Oracleとさまざまな会社が協力することで、信頼性のあるファイルシステム技術に成長することを願っている。
BtrfsやZFSは、コピーオンライトという仕組みを採用している。コピーオンライトでは、複製された時に「全てを複製」するのではなく、データのほとんどを共有状態に置き、実際に書き込みが行われた時点でその部分だけを書き込み・複製する。これにより、コピーする速度が高速化し、消費するリソースが削減される。
コピーオンライトでは、元のデータを読み込み専用にし、読み出す時は共有データから読み出す。そして書き込みが必要になればその時に複製を作成する。
メモリやストレージだけではなく、Linuxカーネルではfork()などの親プロセス・子プロセスの関係でも、コピーオンライトで処理が行われている。
また、スナップショットは、データを取得した時点での「その時のデータ」を保持する仕組み。コピーオンライトとともに使うことで、毎日スナップショットをとってもそんなに大きくデータを消費しない。
最近はLinuxでもZFSを利用できる。ライセンス問題はなんとかして解決している模様。
後日注記:どうやら、Linuxカーネルと一緒に配布するのには問題があるが、サードパーティがLinuxカーネル向けのネイティブモジュールを配布することは法的に可能らしい。これがZFSonLinux (ZOL)であるとのこと。
Linuxカーネル開発リーダーのリーナス・トーバルズは、ZFSを公式のLinuxカーネルにはマージしない姿勢を改めて強調している。ZFSを「バズワード」と明言し、起訴好きのOracleがGPLにライセンスでもしない限りはマージしないとのこと。
これにより、ZFSを使いたいLinuxユーザーは、Ubuntuなどの独自に対応したディストリビューションを使うか、FreeBSDなどの他のUNIX互換OSを使う必要が改めて浮き彫りになった。
ZFSはSunの技術です。Sunも参照のこと。
BtrfsはOracleの技術です。Oracleも参照のこと。