●Btrfs(B-tree File System: バターエフエス、またはビーツリーエフエス)は比較的新しく高機能なLinuxのファイルシステム。Btrfsはカーネル2.6.29に取り込まれ、次世代のLinux標準ファイルシステムとなるべく現在も開発が続けられている。
Btrfsの機能:
・マルチデバイスへの対応
これまでのext2/ext3/ext4は、単一デバイスの単一パーティションにしかファイルシステムを作成できませんでした。その後「論理ボリュームマネージャ(LVM)」によって複数デバイスを論理的に1つのデバイスとして扱うことで、複数のデバイスにまたがってファイルシステムを作成することができるようになりました。
しかし、Btrfsはファイルシステム自身が複数のデバイス(マルチデバイス)を直接扱えるようになっています。
・サブボリューム
Btrfsは、ディレクトリの一部を「サブボリューム」として個別のファイルシステムのように扱えます。サブボリュームを使うことで、ある時点のファイルシステムの状態を「スナップショット」として取得することができるようになります。
・圧縮
Btrfsは、ファイルシステムが自動でデータを圧縮できるようになっています。圧縮用の特別な操作を必要とせず、マウント時に自動圧縮を有効にするオプションを指定するだけで動作します。
●ファイルシステム
・ext2 以前のLinuxで標準的に使用されていた規格
・ext3 ext2の後継。ジャーナリングファイルシステム
・ext4 ext3の後継。ジャーナリングファイルシステム
・XFS シルコングラフィクス社(SIG)が開発。ジャーナリングファイルシステム。動的inode
・JFS IBMが開発。ジャーナリングファイルシステム。動的inode
※動的inodeの機能とは、ファイル作成時にinode番号を動的に割り当てる機能のことです。inodeを動的に割り当てるため、inodeの数に制限はありません。
動的inodeの機能がないファイルシステムでは、inodeはファイルシステム作成時に作成され、増やすことはできません。そのため、ファイルの数が増えるなどして使用可能なinodeがなくなると、ディスクに空き容量があってもファイルを新規に作成することができなくなります。
●ファイルシステムを作成する「mke2fs」
mke2fs [オプション] デバイス名
オプション
・-j ext3ファイルシステムを作成
・-t ファイルシステムの種類 ファイルシステムの種類を指定(ext2/ext3/ext4)
・-c ファイルシステムを作成する前に不良ブロックを検査
※mke2fsコマンドでext2/ext3/ext4ファイルシステムを作成できます。
また、mkfsコマンドでは「-t」オプションで、ext2/ext3/ext4のみならずxfs、jfsなどのファイルシステムを指定し、作成できます。mkfsコマンドはmke2fsコマンドなどのフロントエンドとして統一的に使えます。
●mkfsコマンドでファイルシステムを作成
mkfs [オプション] デバイス名
オプション
・-t ファイルシステムの種類 ファイルシステムの種類を指定
・-c ファイルシステムを作成する前に不良ブロックを検査
※「-t」オプションで、ext2/ext3/ext4のみならずxfs、jfsなどのファイルシステムを指定できます。
※「-t」オプションを使用しない場合は、デフォルトでext2ファイルシステムが作成されます。
※なお、ext2は古いファイルシステムであり、ジャーナリング機能(更新履歴をジャーナル(ログ)に記録しておく機能)がないなどの理由で現在は積極的に利用されることはありません。
・ZFS
Oracle Solaris用に開発された高機能なファイルシステムです。Linuxカーネルには取り込まれておらず、直接サポートされていません。
・XFS
Red Hat Enterprise Linux7でデフォルトで採用されているファイルシステムで、元はSGI社のIRIXというOS用に開発されたファイルシステムです。