4.4.15.10. RAID 論理ボリュームのスクラビング
Red Hat Enterprise Linux 6.5 リリースの時点では、LVM は RAID 論理ボリュームのスクラビングサポートを提供します。RAID スクラビングは、すべてのデータおよびアレイ内のパリティーブロックを読み込み、それらが一貫しているかどうかを確認するプロセスです。
lvchange
コマンドの --syncaction
オプションを使って RAID スクラビングの操作を開始します。check
または repair
のいずれかの操作を指定します。check
操作はアレイ全体を対象に、アレイ内の不一致の数を記録しますが、それらを修復することはありません。repair
操作が、不一致が見つかる際にそれらを修復します。
RAID 論理ボリュームのスクラビングを実行するコマンドの形式は以下のとおりです。
lvchange --syncaction {check|repair} vg/raid_lv
注記
lvchange --syncaction repair vg/raid_lv
操作は、lvconvert --repair vg/raid_lv
操作と同じ機能を実行しません。lvchange --syncaction repair
操作は、アレイ上でバックグラウンドの同期操作を開始しますが、lvconvert --repair
操作は、ミラーまたは RAID 論理ボリューム内の障害が発生したデバイスの修復/置換を行うように設計されています。
新規の RAID スクラビング操作をサポートするため、
lvs
コマンドは、raid_sync_action
と raid_mismatch_count
の 2 つの新しい出力可能なフィールドに対応しています。これらのフィールドはデフォルトでは出力されません。これらのフィールドを表示するには、以下のように lvs
の -o
パラメーターを使ってこれらを指定します。
lvs -o +raid_sync_action,raid_mismatch_count vg/lv
raid_sync_action
フィールドは、raid ボリュームが実行している現在の同期操作を表示します。これには、以下の値のいずれかを使用することができます。
idle
: すべての同期操作が完了しました (何も実行しない)resync
: アレイを初期化、またはマシン障害後の復旧を実行しますrecover
: アレイ内のデバイスを置き換えますcheck
: アレイの不一致を検索しますrepair
: 不一致を検索し、修復します
raid_mismatch_count
フィールドは、check
操作時に検出された不一致の数を表示します。
lvs
コマンドの Cpy%Sync
フィールドは、check
および repair
を含む raid_sync_action
操作のいずれかの進捗を出力するようになりました。
lvs
の lv_attr
フィールドは、RAID スクラビング操作をサポートする追加のインジケーターを提供するようになりました。このフィールドの ビット 9 は、論理ボリュームの正常性を表示し、以下のインジケーターに対応するようになりました。
- 「(m) ismatches (不一致)」は、RAID 論理ボリュームに不一致があることを示します。この文字は、スクラビング操作で RAID に一貫性がない部分があることを検出した後に表示されます。
- (r)efresh (更新) は、LVM がデバイスラベルを読み取ることができ、かつデバイスが操作可能であると認識する場合でも、RAID アレイ内のデバイスに障害が発生し、カーネルがこれを障害と認識していることを示します。この論理ボリュームは、デバイスが利用可能になったことをカーネルに通知するために更新「(r)efresh」されるか、またはデバイスに障害が発生したことが疑われる場合はそれを置き換える「(r)eplace」必要があります。
lvs
コマンドについての情報は、「オブジェクトの選択」 を参照してください。
RAID スクラビング操作を実行する際、
sync
操作で必要になるバックグラウンド I/O が、ボリュームグループメタデータへの更新などの他の I/O 操作を LVM デバイスに押し出す可能性があります。これにより、他の LVM 操作の速度が下がる可能性があります。復旧スロットルを実装して RAID 論理ボリュームのスクラビングを実行する速度を制御することができます。
sync
操作の実行される速度は、lvchange
コマンドの --minrecoveryrate
および --maxrecoveryrate
オプションを使用して、それらの操作の最小および最大 I/O 速度を設定することにより制御することができます。これらのオプションは以下のように指定します。
--maxrecoveryrate Rate[bBsSkKmMgG]
RAID 論理ボリュームの最大復旧速度を設定し、通常の I/O 操作が押し出されないようにします。速度 は、アレイ内のそれぞれのデバイスに対して 1 秒あたりの量として指定されます。サフィックスが指定されない場合、kiB/sec/device が想定されます。復旧速度を 0 に設定すると、これが無制限になります。--minrecoveryrate Rate[bBsSkKmMgG]
RAID 論理ボリュームの最小復旧速度を設定し、sync
操作の I/O が、負荷の高い通常の I/O がある場合でも最小スループットを達成できるようにします。速度 はアレイ内のそれぞれのデバイスに対して 1 秒あたりの量として指定されます。サフィックスが指定されない場合は kiB/sec/device が想定されます。