Btrfsファイル・システムの設定と管理
この項では、Btrfsファイル・システムの作成手順と、より効率的な使用のための管理手順について説明します。
Btrfsファイル・システムの作成
ノート:
/sbin/mkfs.*ツールは、btrfsコマンドで必要なカーネル・モジュールと同じパッケージでは提供されないことに注意してください。modinfo btrfsコマンドを使用して、ブートされているカーネルでbtrfsモジュールが使用可能かどうかを確認します。また、システムにbtrfs-progs
パッケージがインストールされていない場合は、インストールする必要もあります。
mkfs.btrfsコマンドを使用して、1つ以上のブロック・デバイス全体に配置されるBtrfsファイル・システムを作成できます。デフォルトの構成では、デバイス間でファイルシステム・メタデータをミラー化します。単一のデバイスを指定すると、メタデータの1つのコピーだけを使用するように指定しないかぎり、そのデバイスでメタデータが複製されます。デバイスは、ブロック・デバイス全体、単純なディスク・パーティション、ファイル、ループバック・デバイス(メモリー内のディスク・イメージ)、マルチパス・デバイス、またはハードウェアにRAIDを実装するLUNを指定できます。
mkfs.btrfsコマンドの詳細は、mkfs.btrfs(8)
マニュアル・ページを参照してください。各種のBtrfs構成を作成できます。
ファイル・システムをマウントする場合、次のようにそのコンポーネント・デバイスのいずれかによって指定できます。
sudo mkfs.btrfs -d raid10 -m raid10 /dev/sd[fghijk]
sudo mount /dev/sdf mountpoint
mkfs.btrfsコマンドは、新しいBtrfsデバイスを自動的にスキャンしてカーネルに取り込みます。カーネル内のボリュームの関連デバイスをすべてスキャンしてアセンブルするには、btrfs device scanコマンドを実行する必要があります。この操作は、btrfs device scan --forgetコマンドを使用して元に戻すことができます。ボリュームの関連デバイスをすべてアセンブルするには、 btrfs device scanコマンドの実行が必要になることがあります。
次のようにすると、マウントされているbtrfs
ファイル・システムのRAID構成を取得できます。
sudo btrfs filesystem df mountpoint
btrfs filesystem dfコマンドは、Btrfsファイル・システムによって使用される領域について、dfコマンドを使用するよりも正確な情報を表示することに注意してください。
また、btrfs filesystem usageコマンドを使用すると、システム上のすべてのbtrfs
ファイル・システムに関する情報を表示することもできます。次に例を示します。
sudo btrfs filesystem usage /btrfs
Overall: Device size: 1.95TiB Device allocated: 5.03GiB Device unallocated: 1.95TiB Device missing: 0.00B Used: 256.00KiB Free (estimated): 999.48GiB (min: 999.48GiB) Data ratio: 2.00 Metadata ratio: 2.00 Global reserve: 3.25MiB (used: 0.00B) Data,RAID10: Size:2.00GiB, Used:0.00B (0.00%) /dev/nvme0n1p6 1.00GiB /dev/nvme0n1p7 1.00GiB /dev/nvme0n1p8 1.00GiB /dev/nvme0n1p9 1.00GiB Metadata,RAID10: Size:512.00MiB, Used:112.00KiB (0.02%) /dev/nvme0n1p6 256.00MiB /dev/nvme0n1p7 256.00MiB /dev/nvme0n1p8 256.00MiB /dev/nvme0n1p9 256.00MiB System,RAID10: Size:16.00MiB, Used:16.00KiB (0.10%) /dev/nvme0n1p6 8.00MiB /dev/nvme0n1p7 8.00MiB /dev/nvme0n1p8 8.00MiB /dev/nvme0n1p9 8.00MiB Unallocated: /dev/nvme0n1p6 498.74GiB /dev/nvme0n1p7 498.74GiB /dev/nvme0n1p8 498.74GiB /dev/nvme0n1p9 498.74GiB
Btrfsファイル・システムの変更
btrfsコマンドを使用すると、デバイスを追加または削除したり、デバイス間でファイル・システムのデータとメタデータのレイアウトを再調整できます。次の表では、これらのタスクの実行に使用できる各コマンドについて説明します。
コマンド | 説明 |
---|---|
btrfs device add device mountpoint |
指定されたマウント・ポイントにマウントされているファイル・システムにデバイスを追加します。次に例を示します。 btrfs device add /dev/sdd /myfs |
btrfs device delete device mountpoint |
マウントされているファイル・システムからデバイスを削除します。次に例を示します。 btrfs device delete /dev/sde /myfs |
btrfs device delete missing mountpoint |
縮退モードでマウントされているファイル・システムから障害デバイスを削除します。次に例を示します。 btrfs device remove missing /myfs 縮退モードでファイル・システムをマウントするには、mountコマンドに-o degradedオプションを指定します。 RAID構成では、デバイスの数が必要な最小数を下回る場合、障害デバイスを削除する前に置換デバイスを追加する必要があります。 |
btrfs filesystem balance mountpoint |
デバイスを追加または削除した後に、使用可能なデバイス全体にファイル・システム・データおよびメタデータを再分散します。 |
Btrfsファイル・システムの圧縮とデフラグ
Btrfsファイル・システムを圧縮してその有効な容量を増加し、それをデフラグしてI/Oパフォーマンスを向上できます。
次に示す3つの圧縮タイプがサポートされています。
-
zlib
-
lzo
-
zstd
圧縮は3つの方法で有効にできます。
-
subvolumeプロパティの使用。次に例を示します。
sudo btrfs subvolume create /btrfs/sv1
sudo btrfs property set /btrfs/sv1 compression zstd
-
次のいずれかの方法でのmountオプションの使用。
lzo
タイプを使用すると、ファイル・システム全体のファイル・データが圧縮されます。sudo mount -o compress=lzo /dev/sdb /btrfs
zstd
タイプを使用すると、サブボリュームが圧縮されてから/btrfs1
マウント・ポイントにマウントされます。sudo mount -o compress=zstd,subvolume=sv1 /devsdb /btrfs1
-
defragmentの使用。次に例を示します。
sudo btrfs filesystem defragment -czlib /btrfs1/akzo
圧縮はいつでも有効にでき、新しい書込みのみが圧縮されるか、デフラグが実行されます。
Btrfsファイル・システムは、それをデフラグすると同時に圧縮できます。
Btrfsファイル・システムをデフラグするには、次のコマンドを使用します。
sudo btrfs filesystem defragment filesystem_name
Btrfsファイル・システムをデフラグと同時に圧縮するには、次のコマンドを使用します。
sudo btrfs filesystem defragment -c filesystem_name
次のコマンドを使用して、Btrfsファイル・システム内の個々のファイル・システム・オブジェクト(ディレクトリやファイルなど)をデフラグできます。また、オプションで圧縮することもできます。
sudo btrfs filesystem defragment [-c] file_name ...
自動デフラグメンテーションを設定するには、ファイル・システムのマウント時にautodefragオプションを指定します。ただし、大規模なデータベースや仮想マシンのイメージを対象とする自動デフラグはお薦めできません。
ノート:
コピーオンライトのコピーが含まれるファイルまたはサブボリュームをデフラグすると、ファイルとそのコピー間のリンクが破損します。たとえば、スナップショットが含まれるサブボリュームをデフラグすると、スナップショットがサブボリュームのコピーオンライト・イメージではなくなるため、サブボリュームとそのスナップショットによるディスク使用率が増加します。
Btrfsファイル・システムのサイズ調整
btrfsコマンドを使用すると、マウントされたBtrfsファイル・システムのサイズを増加できます。ただし、基礎になるデバイスに変更に応じた領域がある場合にかぎります。また、そのサイズを減らす場合にもbtrfsコマンドを使用できます(ファイル・システムに十分な空き領域がある場合)。コマンドを実行しても、基礎になるデバイスのレイアウトやサイズには影響しません。
次のようにすると、/mybtrfs1
のサイズを2GB増やせます。
sudo btrfs filesystem resize +2g /mybtrfs1
次の例は、/mybtrfs3
のサイズを20GBに設定する方法を示しています。
sudo btrfs filesystem resize 20g /mybtrfs3
次のコマンドでは、/mybtrfs2
のサイズを4GB減らします。
sudo btrfs filesystem resize -4g /mybtrfs2