ツイッターに書ききれないのでこちらに色々書きます!
先々週にいきなりLinuxサーバで使っているLVM領域が読み取り専用になり、一切の書き込みができなくなってしまった。
ハード構成としては、
・OS:Ubuntu 18.04 LST
・内蔵ディスク(2本):RAID1
・外付けディスク(2本)①:RAID1(データ領域)
・外付けディスク(2本)②:LVM ※今回障害となった
・外付けディスク:通常(ディスク1本)
・外付けディスク:通常(ディスク1本)
本来、これだけディスクがあればRAID5なんですが、実は、LVMで使用しているディスクはディスク容量がバラバラなので
RAIDは構成できない(できなくはないだろうけど、サイズが小さいディスクに合わせるので使わない領域がもったいない)
ので、ディスクを少しでも有効活用しようとしてLVMを導入してました。
今回はそのLVMの領域である1本(300GB)が障害になりました。
<障害の状況>
・先々週の未明からいきなり、LVM領域への書き込みができなくなる(Read Only)
・この時点ではRead Onlyであるがファイルはまだ一部読み込めないものはあるもののアクセスは大丈夫だった。
<やったこと>
・読み取り専用になってしまったため、何かしらsambaの設定ファイルがおかしくなったと考え設定みなおし
→特に問題なし。※他RAID領域は問題なくアクセス、読み取り書き込み可能であるため、これは問題なし。
・/var/log/messagesを確認したが特にディスク及びハードウェアに関するエラーなし
・dfコマンドでも対象のLVM領域はマウントされており、認識されている。
・umount→mount -aを試したところLVMの領域がマウントできなくなった。
※この時、外付けHDDの状態はまだ確認していない。。というか、自作ラックに入れており、扉を閉めているので扉を
あけないとディスクの物理的な状態は確認できない。見ておけばよかったと激しく後悔。
・fsckの要求が発生。
→LVMの領域で何かしら不整合が発生した可能性もあるので、とりあえず実施する。
この時、I/Oエラーが沢山出て、エラーを修復した。※いくつかのファイルが消失してると予想。
・lv、vg、pvコマンドを確認。※これも先に見ておくべきだった。
→下記のように/dev/dm-0 でI/O Error発生しており、PV Nameが「unknown」となっていることがわかった。
# pvdisplay
--- Physical volume ---
PV Name unknown ★
VG Name sdcd
PV Size <233.76 GiB / not usable 2.90 MiB
Allocatable yes (but full)
PE Size 4.00 MiB
Total PE 59841
Free PE 0
Allocated PE 59841
PV UUID DIMXmm-zl0k-7Jq5-05i0-Xb7j-LFAh-k66ZyW
・物理ディスクの状態を確認すると、対象(障害)ディスクの電源が落ちていることが分かった。
→常にON状態だが、Power LEDもAccess LEDも消灯状態。
スイッチOFF/ONを繰り返すが全く無反応。
電源抜き差ししても現象変わらず。
この時点で完全にディスクが故障状態になったと判断。
しかし、前兆のようなものは全くなかった、、いや、この事象が発生する半年くらい前に甲高いディスクのキィーーーンってやばそう
な音がしてた。。。けど、それは継続して発生しなかったし、エラーもなかったので何にもしなかった。
ケースをばらしてディスクを別ケースに入れて・・・と思ったが、メーカー品の外付けディスクであり、ネジで固定するタイプのケース
ではなく、中で爪を引っ掛けて固定しているタイプなのでバラスのが非常に面倒、そのうえ内蔵はIDEディスクなので別途IDE用の
ケースを調達しないといけないし、もし、ディスク障害だったらケースが無駄(いまさらIDEディスクのケースがあってもね・・・)になる。
ということで保守用に取っておいた500GBのSATAディスクを購入した外付けディスクケースに入れて復旧を開始。
下記の手順を実施して復旧を試し見る。
調べると、壊れたディスクのPV UUIDを使ってLVMが取得しているバックアップ(/etc/lvm/backup)から戻せる情報を確認。
※参考にさせて頂いたサイト
https://support.citrix.com/article/CTX120816
但し、誤って削除した場合でディスク障害の場合ではない。
①新しいディスクをOSに接続
②fdsikコマンドでパーティション設定
③故障したディスクのPV UUIDを確認
# vgdisplay --partial --verbose
--- Physical volumes ---
PV Name unknown ★
PV UUID DIMXmm-zl0k-7Jq5-05i0-Xb7j-LFAh-k66ZyW ←これがPV UUID
PV Status allocatable
Total PE / Free PE 59841 / 0
PARTIAL MODE. Incomplete logical volumes will be processed.
--- Volume group ---
VG Name sdcd
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 9
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 1
Open LV 1
Max PV 0
Cur PV 2
Act PV 2
VG Size 699.51 GiB
PE Size 4.00 MiB
Total PE 179075
Alloc PE / Size 179075 / 699.51 GiB
Free PE / Size 0 / 0
VG UUID f6PTtz-sGHf-U5uH-teY8-kCAB-7FKa-CqQxeB
--- Logical volume ---
LV Path /dev/sdcd/LVM_Volume
LV Name LVM_Volume
VG Name sdcd
LV UUID BIeGQu-ku8e-4MQz-Ve8a-L7mP-RkYa-e2sn4J
LV Write Access read/write
LV Creation host, time ,
LV Status available
# open 1
LV Size 699.51 GiB
Current LE 179075
Segments 2
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:0
--- Physical volumes ---
PV Name /dev/sdh1
PV UUID DIMXmm-zl0k-7Jq5-05i0-Xb7j-LFAh-k66ZyW
PV Status allocatable
Total PE / Free PE 59841 / 0
PV Name /dev/sda1
PV UUID mwInw6-CTz0-jjYa-S2KC-5gDJ-qxw9-0Dnnfr
PV Status allocatable
Total PE / Free PE 119234 / 0
/dev/dm-0: read failed after 0 of 4096 at 751094923264: 入力/出力エラーです
/dev/dm-0: read failed after 0 of 4096 at 751094980608: 入力/出力エラーです
(以下、略)