Btrfs は、Linux 用のオープンソースの汎用ファイル システムです。この名前は、B ツリーを使用して内部ファイル システム構造を格納することに由来します。ファイルシステムには、「Butter F S」や「B-tree F S」など、さまざまな名前が使用されています。 Btrfs の開発は 2007 年に Oracle で開始され、現在、多くの企業 (Red Hat、Fujitsu、Intel、SUSE など) が開発作業に貢献しています。 Btrfs はメインラインの Linux カーネルに含まれています。
Btrfs ファイル システムの作成
1. Btrfs ユーティリティは btrfs-progs によって提供されます ソフトウェアパッケージ。次のコマンドを使用して、パッケージによって提供されるファイルを一覧表示します。
# rpm –ql btrfs-progs
2. mkfs.btrfs を使用する コマンドを実行して Btrfs ファイル システムを作成します。構文は次のとおりです:
# mkfs.btrfs [options] block_device [block_device ...]
単一のデバイスまたは複数のデバイスに Btrfs ファイル システムを作成できます。デバイスは、ディスク パーティション、ループバック デバイス (メモリ内のディスク イメージ)、マルチパス デバイス、またはハードウェアに RAID を実装する LUN のいずれかです。 mkfs.btrfs コマンドで使用可能なオプションの一部は次のとおりです:
-オフセット | ファイルシステムのデバイスの先頭からのオフセットを指定します。デフォルトは 0 で、これはデバイスの開始です。 |
-b サイズ | ファイル システムのサイズを指定します。デフォルトは利用可能なすべてのストレージです。 |
-d タイプ | デバイス間でファイル システム データをスパンする方法を指定します。 type 引数は、raid0、raid1、raid10、または single でなければなりません。 |
-l サイズ | Btrfs がデータを格納する最小のデータ項目であるリーフ サイズを指定します。デフォルトはページ サイズです。 |
-L 名 | ファイル システムのラベル名を指定します。 |
-m プロフィール | ファイル システム メタデータをデバイス間でスパンする方法を指定します。プロファイルの引数は、raid0、raid1、raid10、single、または dup でなければなりません。 |
-M | データとメタデータのチャンクを混合して、スペースをより効率的に使用します。このオプションは、大規模なファイル システムのパフォーマンスに影響を与えるため、1 GB 以下のファイル システムにのみ推奨されます。 |
-n サイズ | ノード サイズを指定します。デフォルトはページ サイズです。 |
-s サイズ | 最小ブロック割り当てであるセクター サイズを指定します。 |
-V | mkfs.btrfs のバージョンを出力して終了します。 |
btrfs ファイルシステムの作成 – mkfs.btrfs の例
1. 単一のブロック デバイス (/dev/sdb など) に Btrfs ファイル システムを作成するには:
# mkfs.btrfs /dev/sdb
2. 2 つのブロック デバイス (/dev/sdb と /dev/sdc など) に Btrfs ファイル システムを作成するには:
# mkfs.btrfs /dev/sdb /dev/sdc
複数のデバイスを持つファイル システムのデフォルト構成は次のとおりです。
-d raid0 – ファイル システム データをすべてのデバイスにストライピングします。
-m raid1 – ファイル システムのメタデータをすべてのデバイスにミラーリングします。
3. 複数のデバイス (/dev/sdb および /dev/sdc) を持つ Btrfs ファイル システムを作成し、データとメタデータの両方をストライプするには:
# mkfs.btrfs –m raid0 /dev/sdb /dev/sdc
4. 複数のデバイス (/dev/sdb および /dev/sdc) を持つ Btrfs ファイル システムを作成し、データとメタデータの両方をミラーリングするには:
# mkfs.btrfs –d raid1 /dev/sdb /dev/sdc
5. 単一のデバイスを指定すると、単一のコピーのみを指定しない限り、そのデバイスでメタデータが複製されます。単一のブロック デバイス (/dev/sdb など) に Btrfs ファイル システムを作成し、メタデータを複製しないように指定するには:
# mkfs.btrfs –m single /dev/sdb
6. RAID-10 データまたはメタデータの場合、少なくとも 4 つのデバイスの偶数を指定する必要があります。 Btrfs ファイル システムを作成し、ミラー デバイス間でデータとメタデータをストライプするには (RAID-10):
# mkfs.btrfs –d raid10 –m raid10 /dev/sd[bcde]
ファイル システムのマウント
他のタイプの Linux ファイル システムをマウントする場合と同様に、mount コマンドを使用するか、/etc/fstab にエントリを作成します。
ファイル システムに複数のデバイスが含まれている場合は、いずれかのデバイスを参照できます。ファイル システム ラベルまたは UUID を参照することもできます。
例:
# mount /dev/sdb /btrfs
/etc/fstab にエントリがあることを確認してください (以下の例では Btrfs デバイスの UUID を使用しています):
# vi /etc/fstab UUID=e7e5c123-fg76-5gxx-a87d-gt5fed9r768e /data btrfs defaults 0 0Btrfs ボリューム / ファイルシステムのサイズを変更 / 拡張する方法