次のコマンドを使用して、6台のハードドライブからmdadmベースのRAID 5を作成しました。
# mdadm --create /dev/md0 --level=5 --raid-devices=5 \
/dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1 /dev/sdf1 \
--spare-devices=1 /dev/sdg1
アレイには1つのホットスペア、つまり/ dev/sdg1が必要でした。ただし、mdadm --detail
を確認すると、2つのスペアが表示されます。
# mdadm --detail --scan
ARRAY /dev/md0 metadata=1.2 spares=2 name=...
また、df
で示されるアレイサイズは2 TBです。これは、使用されている500 GBドライブのうち4つだけに対応します。
では、--spare-devices
のセマンティクスは正確には何ですか?マニュアルページには、「初期アレイのスペア(eXtra)デバイスの数を指定します」と記載されていますが、ここではそうではないようです。
わかりやすくするために、ここでは、デロバートとアレクサンドルアルベスから与えられた情報と、私の私のいくつかのさらなるテストを集約します。
mdadm
の--spare-devices
パラメータは、マニュアルページに記載されているとおりに機能します。つまり、アレイ内の「ホットスペア」ドライブの数を定義します。 「ホットスペア」は、通常のRAID用語のように、RAID 5またはRAID 6アレイに存在する追加のドライブとは何の関係もありません。これは、アレイ内のドライブが引き継がれるとすぐに引き継ぐことを意図した追加のドライブです。失敗した。
スペアドライブの数は、アレイの作成時に指定されます。後で、#mdadm --detail --scan
を使用して確認できます。
ただし、mdadmベースのRAID 5の初期化の短期間に、最適化が行われます https://raid.wiki.kernel.org/index.php/Initial_Array_Creation 追加のスペアドライブをそのコマンドの出力に表示します。
「raid5には最適化があります。mdadmはディスクの1つを取り、それを「スペア」としてマークします。次に、劣化モードでアレイを作成します。カーネルはスペアディスクを「再構築」としてマークし、「良好」から読み取りを開始しますディスク、パリティを計算し、スペアディスクに何を配置するかを決定して、そこに書き込むだけです。」
アレイの初期化が完了すると、報告されたスペアの数は作成時に選択された数に戻ります。
その出力は正しいです。 5つのディスクでRAID 5を作成しました(そのうちの4つだけがスペースに「使用」されます)。そして、予備のドライブを追加しました。
したがって、実際にはRAID 5があり、1つのディスク障害と1つの予備ドライブを追加できます。
必要なものが実際に6ディスクのRAID 5で5ディスクのスペースがある場合は、コマンドを次のように変更する必要があります。
mdadm --create /dev/md0 --level=5 --raid-devices=6 \
/dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1 /dev/sdf1 /dev/sdg1
ただし、この場合、RAID 5の仕様に従って許容されるディスク障害は1つだけです。
編集:公式のRAIDページからリンクを追加します。RAID5と6つのディスクが表示され、スペア= 1: 初期アレイ作成 と表示されます。
UPDATE:私はシステムにRAID 5を作成することを決定し、アレイがクリーンな状態になるとスペアの値が消えます。
Raid Devices : 4
Total Devices : 4
State : clean, degraded, recovering
Active Devices : 3
Working Devices : 4
Failed Devices : 0
Spare Devices : 1
きれいな状態:
Raid Devices : 4
Total Devices : 4
State : clean
Active Devices : 4
Working Devices : 4
Failed Devices : 0
Spare Devices : 0
したがって、これはOPコメントとして、最初のRAID 5の作成中、RAIDビルド/同期が完了するまでスペアドライブを持っています。