不用意なシャットダウン
不用意なシャットダウンとは、アレイを使用中(論理ボリュームを使用中)に、強制的にPCをシャットダウンすることです。UbuntuがフリーズしPCをシャットダウンした時や、停電によりPCの電源がオフになった時などが該当します。
要はUbuntuから正常にシャットダウンしなかった(できなかった)場合です。
アレイに限らず通常のHDDにとっても、あまり好ましくない状態です。
対象となるアレイの種類
ここでの内容は、冗長性のあるRAIDアレイが対象です。具体的には、以下のRAIDレベルが該当します。
- RAID 1
- RAID 4
- RAID 5
- RAID 6
- RAID 10
整合性とシャットダウン
冗長性のあるアレイでは冗長性を確保するため、アレイを構成する物理ボリュームは常に整合性がとれている必要があります。アレイ内の複数の物理ボリュームにデータを書き込む際、物理ボリュームに対し並行してデータの書き込みが行われますが、完全に並行してデータの書き込みを完了させることができません。
僅かな時間ですが、処理の完了に時間差が発生します。
データの書き込み中にシャットダウンしてしまうと、物理ボリュームに不整合が生じる可能性があります。
ダーティーマークとクリーンマーク
不用意なシャットダウンに対応するため、「MDドライバー」は「ダーティー」マークを使用し、正常にアレイが停止したかどうか確認を行います。ダーティーマーク
「MDドライバー」はアレイにデータを書き込む際、「ダーティー」マークを設定します。「ダーティー」マークを設定すると、正常にアレイが停止するまでこのマークは変更されません。
クリーンマーク
「ダーティー」マークを設定したアレイが停止した時、「MDドライバー」はこの「ダーティー」マークを「クリーン」マークに設定します。アレイの停止とは、ユーザーが意図的にアレイの使用を中止した場合や、PCが正常にシャットダウン(再起動)した時のことです。
言い換えれば正常にPCをシャットダウンしなかった場合、アレイは「ダーティー」マークが設定されたままになります。
アレイの再同期
「MDドライバー」がアレイを開始する際、アレイに「ダーティー」マークが設定されていた場合、アレイの再同期を行います。RAID 1の場合
「RAID 1」アレイの場合、最初の(1番目)の物理ボリュームから他の物理ボリュームにデータのコピーが行われます。RAID 4/5/6の場合
各物理ボリュームのブロックのパリティー値を再計算し、パリティーブロックの値が正しいかどうかチェックします。必要に応じてパリティーブロックを更新します。
ただしデグレード中に不用意なシャットダウンが行われた場合、冗長性がない状態なのでパリティー値の再計算は行いません。
この場合、アレイが自動的に開始されることはありません。
ユーザーが「mdadm」コマンドを使用して手動でアレイを開始する必要があります。
RAID 10の場合
レプリカから他のレプリカへデータのコピーが行われます。再同期中のアレイの使用について
アレイの再同期は、バックグラウンドで行われます。アレイの再同期中でもアレイを使用することはできますが、パフォーマンスは低下します。