5.4.7.3. RAID アレイ内の故障したディスクを交換する
LVM ストレージのソフトウェア RAID アレイで故障したディスクを交換することで、データの冗長性を回復できます。LVM ストレージは LVM RAID デバイスマッパー を使用しており、アレイが劣化状態にある間もデータの読み書きが可能となります。
LVMCluster CR を更新する前に、ノード上で手動による修復手順を実行する必要があります。
前提条件
- 冗長性 (RAID レベルが 0 より大きい) を備えた LVM ストレージソフトウェア RAID アレイが稼働しています。
- アレイ内で故障したディスクが検出されました。
- 交換用の物理ディスクが用意されており、ノードにインストールされています。
- RAID アレイは冗長性を維持しており、正常に動作しています。アレイ内のすべてのディスクが故障したわけではありません。
手順
影響を受けるデバイスクラスの
LVMCluster の状態を確認するには、次のコマンドを実行します。$ oc -n openshift-lvm-storage get lvmcluster -o jsonpath='{.status.state}'出力例
DegradedRAID アレイが劣化状態にある間も、データの読み書きは可能です。
デバッグ用のノードにアクセスするには、次のコマンドを実行します。
$ oc debug node/<node_name>以下のコマンドを実行して、ホストのルートユーザーに変更してください。
sh-4.4# chroot /host利用可能なブロックデバイスのリストを表示するには、次のコマンドを実行してください。
sh-4.4# lsblk置換デバイスのパス (例:
/dev/sde)に注意してください。ディスクが未使用であり、かつ故障したディスクと同等以上の容量を持っていることを確認してください。ノード上で手動による LVM 修復を実行します。
交換用ディスクを準備してください。
sh-4.4# pvcreate <replacement><placement> を交換用ディスクのパスに置き換えてください。交換用ディスクを使用してボリュームグループを拡張します。
sh-4.4# vgextend <vg> <replacement><vg> をボリュームグループ名に、<replacement>を置換ディスクのパスに置き換えてください。RAID 論理ボリュームを修復する:
sh-4.4# lvconvert --repair -y <vg>/<lv> <replacement>ボリュームグループから不足しているディスクを削除します。
sh-4.4# vgreduce --removemissing <vg>デバッグセッションを終了します。
sh-4.4# exit sh-4.4# exit
以下のコマンドを実行して、
deviceSelector.pathsファイルをパッチし、障害が発生したディスクのパスを代替ディスクのパスに置き換えます。$ oc -n openshift-lvm-storage patch lvmcluster <lvmcluster_name> --type='json' -p='[ {"op": "replace", "path": "/spec/storage/deviceClasses/0/deviceSelector/paths", "value": ["/dev/sdc", "/dev/sdd"]} ]'配列インデックスとデバイスパスを、ご自身の設定に合わせて置き換えてください。
デバイスクラスが
Ready状態に戻るまで待機します。$ oc -n openshift-lvm-storage get lvmcluster -o jsonpath='{.status.deviceClassStatuses[].nodeStatus[].status}'必要に応じて、以下のコマンドを使用することもできます。
$ oc -n openshift-lvm-storage get lvmcluster -o jsonpath='{.nodeStatus[].raidStatus.status}'出力例
ReadyRAID の再同期が完了するまでお待ちください。
ノードに再度アクセスします。
$ oc debug node/<node_name>ホストのルートディレクトリーに移動して、同期のパーセンテージを確認してください。
sh-4.4# chroot /host sh-4.4# lvs -o lv_name,sync_percent --select 'segtype=~raid' <vg>同期処理中であることを示す出力例
LV Cpy%Sync raid1-lv 45.67Cpy%Sync列に100.00 が表示されるまで待ちます。再同期が 100% に達するまで、冗長性は完全には回復されません。
検証
LVMClusterでデバイスクラスのステータスがReady になっていることを確認してください。$ oc -n openshift-lvm-storage get lvmcluster -o json | jq '.status.deviceClassStatuses'RAID 論理ボリュームにおいて、すべてのディスクがアクティブで同期率 100% であることを確認してください。
$ oc debug node/<node_name> sh-4.4# chroot /host sh-4.4# lvs -a -o lv_name,segtype,sync_percent,devices <vg>完全に同期された RAID1 を示す出力例
LV Type Cpy%Sync Devices raid1-lv raid1 100.00 raid1-lv_rimage_0(0),raid1-lv_rimage_1(0) [raid1-lv_rimage_0] linear /dev/sdc(0) [raid1-lv_rimage_1] linear /dev/sde(0)LVMSOperator のログでエラーを確認してください。
$ oc logs -n openshift-lvm-storage- 実行中の永続ボリューム要求 (PVC) が中断なく機能し続けていることを確認してください。
- RAID の再同期処理は、ディスク容量やシステムへの I/O 負荷によっては、かなりの時間を要する場合があります。
- 複数のディスクを同時に交換しないでください。別のディスクを交換する前に、再同期が完了するまで待ってください。
- 交換用ディスクは、故障したディスクと同等以上の容量を持つことを確認してください。これにより、同じ記憶容量を維持できます。
-
ノード上で手動による LVM 修復を実行する前に、
deviceSelector.pathsを編集しないでください。Operator は、CR 編集から RAID アレイを自動的に再構築しません。