Show Table of Contents
6.4.7. btrfs ファイルシステムの
このページには機械翻訳が使用されている場合があります (詳細はこちら)。
6.4. 複数デバイスの統合ボリューム管理
BTRFS ファイルシステムは、多くのデバイスの上に作成することができ、ファイルシステムの作成後に複数のデバイスを追加することができます。デフォルトでは、メタデータが 2 つのデバイス間でミラー化され、データは表示されるすべてのデバイス間でストライプ化されます。ただし、デバイスが 1 つしかない場合、メタデータはそのデバイス上に複製されます。
6.4.1. 複数デバイスによるファイルシステムの作成
raid0
raid1
raid10
dup
single
-m single
オプションは、メタデータの複製を行なわないことを通知します。この機能は、ハードウェア RAID を使用する場合に必要になることがあります。
注記
RAID 10 を正しく実行するには、最低でも 4 台のデバイスが必要です。
例6.1 RAID 10 btrfs ファイルシステムの作成
4 つのデバイスにわたるファイルシステムを作成します (ミラー化されたメタデータ、ストライプ化されたデータ)。
# mkfs.btrfs /dev/device1 /dev/device2 /dev/device3 /dev/device4
ミラー化せずにメタデータをストライプ化します。
# mkfs.btrfs -m raid0 /dev/device1 /dev/device2
データとメタデータの両方に raid10 を使用します。
# mkfs.btrfs -m raid10 -d raid10 /dev/device1 /dev/device2 /dev/device3 /dev/device4
単一デバイス上でメタデータを複製しません。
# mkfs.btrfs -m single /dev/device
ドライブのサイズが異なる場合に、各デバイスの容量を完全に使用するには
single
オプションを使用します。
# mkfs.btrfs -d single /dev/device1 /dev/device2 /dev/device3
新規デバイスを、すでに作成されたマルチデバイスファイルシステムに追加するには、以下のコマンドを使用します。
# btrfs device add /dev/device1 /mount-point
Btrfs モジュールの再起動または再読み込みの後に、
btrfs device scan
コマンドを使用して、すべてのマルチデバイスファイルシステムを検出します。詳細は、「btrf デバイスのスキャン」 を参照してください。
6.4.2. btrf デバイスのスキャン
btrfs device scan
を使用して、/dev
以下のすべてのブロックデバイスをスキャンし、BTRFS ボリュームをプローブします。ファイルシステム内で複数のデバイスと共に実行されている場合、Btrfs モジュールの読み込み後に実行されます。
すべてのデバイスをスキャンするには、以下のコマンドを使用します。
# btrfs device scan
1 つのデバイスをスキャンするには、以下のコマンドを使用します。
# btrfs device scan /dev/device
6.4.3. 新規デバイスの btrfs ファイルシステムへの追加
btrfs filesystem show
コマンドを使用して、すべての btrfs ファイルシステムと、そのファイルシステムに含まれるデバイスを一覧表示します。
btrfs device add
コマンドは、マウントされたファイルシステムに新規のデバイスを追加するために使用されます。
btrfs filesystem balance
コマンドは、すべての既存デバイス間で割り当てられたエクステントのバランスを取ります (再ストライピング)。
新規デバイスを追加する上記のコマンド例は以下の通りです。
例6.2 新しいデバイスの btrfs ファイルシステムへの追加
最初に、btrfs ファイルシステムの作成とマウントを行います。btrfs ファイルシステムを作成する詳細な方法は 「Btrfs ファイルシステムの作成」、btrfs ファイルシステムをマウントする詳細な方法は 「Btrfs ファイルシステムのマウント」を参照してください。
# mkfs.btrfs /dev/device1 # mount /dev/device1
次に、マウントされた btrfs ファイルシステムに 2 つ目のデバイスを追加します。
# btrfs device add /dev/device2 /mount-point
これらのデバイス上のメタデータとデータは、依然として
/dev/device1
にのみ保存されます。これがすべてのデバイスに広がるようにバランスを取る必要があります。
# btrfs filesystem balance /mount-point
ファイルシステムのバランスの調整には時間がかかります。ファイルシステムにあるデータとメタデータをすべて読み取り、それを新規デバイス全体に再度書き込むためです。
6.4.4. btrfs ファイルシステムの変換
非 RAID ファイルシステムを RAID に変換するには、デバイスを追加し、チャンク割り当てプロファイルを変更するバランスフィルターを実行します。
例6.3 btrfs ファイルシステムの変換
この場合のように、既存の単一デバイスシステムの
/dev/sdb1
を raid1 システムの 2 つのデバイスに変換し、単一ディスクの障害から保護するには、以下のコマンドを使用します。
# mount /dev/sdb1 /mnt # btrfs device add /dev/sdc1 /mnt # btrfs balance start -dconvert=raid1 -mconvert=raid1 /mnt
重要
メタデータが単一デバイスのデフォルトから変換されない場合、それは DUP のままになります。これは、ブロックのコピーが別々のデバイスに置かれることを保証するものではありません。データが変換されない場合、重複コピーは全く存在しません。
6.4.5. btrfs デバイスの削除
btrfs device delete
コマンドを使用して、オンラインデバイスを削除します。また、安全に削除するために使用中のすべてのエクステントをファイルシステムの他のデバイスに再配信します。
例6.4 btrfs ファイルシステム上でのデバイスの削除
最初に、いくつかの btrfs ファイルシステムを作成し、マウントします。
# mkfs.btrfs /dev/sdb /dev/sdc /dev/sdd /dev/sde # mount /dev/sdb /mnt
一部のデータをファイルシステムに追加します。
最後に、必要なデバイスを削除します。
# btrfs device delete /dev/sdc /mnt
6.4.6. btrfs ファイルシステムでの障害のあるデバイスの置き換え
「btrfs デバイスの削除」 は、障害のあるデバイスを削除するために使用できます。ただし、これはスーパーブロックが依然として読み込み可能な場合に限られます。デバイスが見つからなかったり、スーパーブロックが壊れていたりすると、ファイルシステムは低下モードでマウントする必要があります。
# mkfs.btrfs -m raid1 /dev/sdb /dev/sdc /dev/sdd /dev/sde ssd is destroyed or removed, use -o degraded to force the mount to ignore missing devices # mount -o degraded /dev/sdb /mnt 'missing' is a special device name # btrfs device delete missing /mnt
コマンド
btrfs device delete missing
は、ファイルシステムのメタデータで記述されているものの、ファイルシステムのマウント時には表示されない最初のデバイスを削除します。
重要
デバイスが見つからないことがあることを考慮しても、特定の RAID レイアウトに必要なデバイスの最小数を下回ることは考えられません。障害のあるものを削除するために、新たなデバイスを追加することが必要になる場合があります。
たとえば、2 つのデバイスからなる raid1 レイアウトで、デバイスが失敗した場合には、以下を実行する必要があります。
- 低下モードでのマウント
- 新規デバイスの追加
- 見つからないデバイスの削除
6.4.7. btrfs ファイルシステムの /etc/fstab
への登録
initrd
がない場合、または btrfs デバイススキャンを実行しない場合、ファイルシステムのすべてのデバイスを mount
コマンドに明示的に渡すと、マルチボリューム btrfs
ファイルシステムをマウントすることができます。
例6.5 /etc/fstab
エントリーの例
適切な
/etc/fstab
エントリーの例は、以下のようになります。
/dev/sdb /mnt btrfs device=/dev/sdb,device=/dev/sdc,device=/dev/sdd,device=/dev/sde 0
UUID (universally unique identifier) を使用することもできます。UUID は、デバイスパスよりも安定性が高くなります。
このページには機械翻訳が使用されている場合があります (詳細はこちら)。