基本
btrfs ファイル システムは、大規模なストレージ サブシステムの拡大するスケーラビリティ要件を満たすように設計されています。 btrfs ファイル システムはその実装で B ツリーを使用するため、その名前はこれらのデータ構造の名前に由来しますが、実際の頭字語ではありません。 B ツリーは、ツリーがどれほど大きくなっても、ファイル システムとデータベースが大量のデータ ブロックに効率的にアクセスして更新できるようにするツリー状のデータ構造です。
btrfs ファイル システムは、次の重要な機能を提供します:
- コピー オン ライト機能により、読み取り可能および書き込み可能なスナップショットの両方を作成し、ext3 または ext4 ファイル システムから変換した後でも、ファイル システムを以前の状態にロールバックできます。
- チェックサム機能により、データの整合性が保証されます
- 透過的な圧縮により、ディスク容量が節約されます。
- 透過的な最適化により、パフォーマンスが向上します。
- 統合された論理ボリューム管理により、RAID 0、RAID 1、または RAID 10 構成を実装し、ストレージ容量を動的に追加および削除できます。
CentOS/RHEL 6 Update 3 以降では、ブート ISO を使用して btrfs ルート ファイル システムを構成できます。 CentOS/RHEL 6 Update 3 より前では、インストール中に btrfs ルート ファイル システムを作成できませんでした。
UEK R3 では、btrfs は次の追加機能をサポートしています:
- 送受信機能を使用すると、同じサブボリュームのスナップショットまたは親サブボリュームと子サブボリュームのいずれかである 2 つのサブボリューム間の違いを記録できます。
- クォータ グループ (qgroups) を使用すると、ボリュームとそのサブボリュームに異なるサイズ制限を設定できます。
- マウントを解除したり、ファイル システムへのアクセスを中断したりすることなく、デバイスを交換できます。
このドキュメントは、CentOS/RHEL システム上の単一のデバイスに BTRFS ファイル システムを作成する方法を説明するものです。次の手順は、CentOS/RHEL 7 を実行し、5GB サイズの仮想ディスクを備えた仮想マシンで実行されました。
BTRFS ファイル システムを作成する
btrfs ファイルシステムを構成する目的のディスクを追加し、システムがディスクを認識していることを確認します:
# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT xvda 202:0 0 20G 0 disk ├─xvda1 202:1 0 1G 0 part /boot └─xvda2 202:2 0 19G 0 part ├─ol-root 251:0 0 17G 0 lvm / └─ol-swap 251:1 0 2G 0 lvm [SWAP] xvdb 202:16 0 5G 0 disk
上記の出力では、ディスクは「xvdb」になります。デバイスは、単純なディスク パーティション、ループバック デバイス (つまり、メモリ内のディスク イメージ)、マルチパス デバイス、またはハードウェアに RAID を実装する LUN のいずれかです。
1. システムにまだインストールされていない場合は、btrfs-progs パッケージをインストールします。
# yum install btrfs-progs
2. mkfs.brtfs コマンドを使用して Btrfs ファイル システムを作成します。
# mkfs.btrfs /dev/xvdb btrfs-progs v4.9.1 See http://btrfs.wiki.kernel.org for more information. Detected a SSD, turning off metadata duplication. Mkfs with -m dup if you want to force metadata duplication. Label: (null) UUID: c7d1687d-fe91-4837-b14a-4870466d1a3f Node size: 16384 Sector size: 4096 Filesystem size: 5.00GiB Block group profiles: Data: single 8.00MiB Metadata: single 8.00MiB System: single 4.00MiB SSD detected: yes Incompat features: extref Number of devices: 1 Devices: ID SIZE PATH 1 5.00GiB /dev/xvdb
3. btrfs filesystem show コマンドを使用して、ファイル システムがデバイス上に作成されたことを確認します。
# btrfs filesystem show Label: none uuid: c7d1687d-fe91-4837-b14a-4870466d1a3f Total devices 1 FS bytes used 112.00KiB devid 1 size 5.00GiB used 20.00MiB path /dev/xvdb
上記のコマンドは、システム内のすべての btrfs ファイル システムを表示します
または
# btrfs filesystem show /dev/xvdb Label: none uuid: c7d1687d-fe91-4837-b14a-4870466d1a3f Total devices 1 FS bytes used 112.00KiB devid 1 size 5.00GiB used 20.00MiB path /dev/xvdb
上記のコマンドは、必要な指定デバイス (/dev/xvdb) の btrfs ファイル システムに関する情報のみを表示します。
4. 対応するファイル システムをマウントします。
# mount /dev/xvdb /btrfsTest
5. btrfs ファイル システムがマウントされていることを確認します。
# mount | grep btrfs /dev/xvdb on /btrfsTest type btrfs (rw,relatime,seclabel,ssd,space_cache)
BTRFS ファイル システムのクエリ
btrfs filesystem df コマンドを実行して、btrfs ファイル システムによって使用されるスペースに関するより正確な情報を表示します。
# btrfs filesystem df /btrfsTest/ Data, single: total=8.00MiB, used=64.00KiB System, single: total=4.00MiB, used=16.00KiB Metadata, single: total=264.00MiB, used=112.00KiB GlobalReserve, single: total=16.00MiB, used=0.00B
通常の df コマンドを使用してファイル システムをクエリできますが、表示される情報は正確ではない可能性があります。
# df -h /btrfsTest/ Filesystem Size Used Avail Use% Mounted on /dev/xvdb 5.0G 17M 4.8G 1% /btrfsTest
詳細とオプションについては、mkfs.btrfs のマニュアル ページを参照してください:
# man mkfs.btrfs