Btrfs は、Linux 用のオープンソースの汎用ファイル システムです。この名前は、B ツリーを使用して内部ファイル システム構造を格納することに由来します。ファイルシステムには、「Butter F S」や「B-tree F S」など、さまざまな名前が使用されています。 Btrfs の開発は 2007 年に Oracle で開始され、現在、多くの企業 (Red Hat、Fujitsu、Intel、SUSE など) が開発作業に貢献しています。 Btrfs はメインラインの Linux カーネルに含まれています。
btrfs デバイス ユーティリティ
btrfs device コマンドを使用して、Btrfs ファイル システム上のデバイスを管理します。使用可能なコマンドのリストは次のとおりです:
# btrfs device usage: btrfs device [command] [args] btrfs device add [options] [device] [device...] [path] Add a device to a filesystem btrfs device delete [device]|[devid] [device|devid...] [path] btrfs device remove [device]|[devid] [device|devid...] [path] Remove a device from a filesystem btrfs device scan [(-d|--all-devices)|[device] [device...]] Scan devices for a btrfs filesystem btrfs device ready [device] Check device to see if it has all of its devices in cache for mounting btrfs device stats [options] [path]|[device] Show device IO error statistics btrfs device usage [options] [path] [path..] Show detailed information about internal allocations in devices. manage and query devices in the filesystem
btrfs device scan コマンドは、物理デバイスをスキャンして Btrfs ボリュームのメンバーを探します。このコマンドを使用すると、mount コマンドですべてのディスクを指定しなくても、複数ディスクの Btrfs ファイル システムをマウントできます。
コマンド ラインから「btrfs デバイス スキャン」を実行する必要はありません。ブート時に udev が自動的に btrfs デバイス スキャンを実行するからです。ファイル システムにデバイスを追加するには、btrfs device add コマンドを使用します。この例では、現在のファイル システム構造は次のとおりです:
# btrfs filesystem show Label: none uuid: ba60ac96-1628-4656-b68b-c7327ff49179 Total devices 1 FS bytes used 325.29MiB devid 1 size 10.00GiB used 867.66MiB path /dev/sda
btrfs filesystem df コマンドは以下を示します:
# btrfs filesystem df /btrfs Data, single: total=547.66MiB, used=324.75MiB System, single: total=32.00MiB, used=16.00KiB Metadata, single: total=288.00MiB, used=528.00KiB GlobalReserve, single: total=16.00MiB, used=0.00B
df コマンドの出力は以下を示します:
# df -h /btrfs Filesystem Size Used Avail Use% Mounted on /dev/sda 10G 342M 9.4G 4% /btrfs
btrfs device add コマンドを使用して、/btrfs にマウントされたファイル システムに 10 GB ディスク /dev/sdb を追加します。
# btrfs device add /dev/sdb /btrfs
btrfs filesystem show コマンドの出力には、新しく追加されたデバイスが表示されます:
# btrfs filesystem show Label: none uuid: ba60ac96-1628-4656-b68b-c7327ff49179 Total devices 2 FS bytes used 325.29MiB devid 1 size 10.00GiB used 867.66MiB path /dev/sda devid 2 size 10.00GiB used 0.00B path /dev/sdb
新しいデバイスを追加した後、btrfs filesystem df コマンドの出力に違いはありません:
# btrfs filesystem df /btrfs Data, single: total=547.66MiB, used=324.75MiB System, single: total=32.00MiB, used=16.00KiB Metadata, single: total=288.00MiB, used=528.00KiB GlobalReserve, single: total=16.00MiB, used=0.00B
新しく追加されたデバイスはまだデータにもメタデータにも割り当てられていないため、出力に違いはありません。追加のサイズは df:の出力に反映されます:
# df -h /btrfs Filesystem Size Used Avail Use% Mounted on /dev/sda 20G 342M 20G 2% /btrfs
デバイスを追加した後、ファイル システムで次のバランス コマンドを実行することをお勧めします:
# btrfs filesystem balance /btrfs WARNING: Full balance without filters requested. This operation is very intense and takes potentially very long. It is recommended to use the balance filters to narrow down the balanced data. Use 'btrfs balance start --full-balance' option to skip this warning. The operation will start in 10 seconds. Use Ctrl-C to stop it. 10 9 8 7 6 5 4 3 2 1 Starting balance without any filters. Done, had to relocate 17 out of 17 chunks
このコマンドを実行すると、すべてのデバイス間でファイル システムのチャンクのバランスを取ることにより、スペースが再分配されます。このコマンドは、無駄なスペースも再利用します。 btrfs device delete コマンドを使用して、ファイル システムからデバイスを削除します。例:
# btrfs device delete /dev/sdb /btrfs「btrfs Scrub」コマンドを使用して Btrfs ファイル システムのスクラブを管理する方法
Btrfs ファイル システムを作成および管理する「btrfs」コマンドの例
Btrfs ファイル システムを作成およびマウントする方法(例で説明)