Raspberry Pi 3Bに USB ストレージを挿して構築したソフトウェア RAID が、メディア不良による 降格 でシステムプロセスを食い潰して不安定になってしまったので、SSH越しにソフトウェア RAID を解消処理をしました。
USBメディア障害からmdadm暴走
遠隔地にあるRaspberry Pi 3BにSSHでアクセスすると、いつもよりも明らかにもっさりとしたレスポンスに異常を感じ、プロセスを確認すると、mdadmが暴走してCPUを食い潰していました。
1 2 |
$ uptime 09:46:39 up 2 days, 7:34, 1 user, load average: 3.07, 3.02, 3.00 |
このRaspberry Piには昔、2本のUSBストレージを挿してソフトウェアRAIDを組み、簡易的なファイル共有サービスをLAN内に提供していました。
その後、別のRaspberry Piへその役割を移行し、そのバックアップストレージを任せていたおり、USBストレージの1つがメディア不良で息絶え、RAID降格のまま余生を過ごしてもらっていたところ…
1 2 3 4 5 6 7 8 9 10 11 12 13 |
$ dmesg [ 49.743324] md/raid1:md0: active with 0 out of 2 mirrors [ 49.743361] md0: failed to create bitmap (-5) [95540.064501] Under-voltage detected! (0x00050005) [95546.304512] Voltage normalised (0x00000000) [101659.418550] Under-voltage detected! (0x00070007) [101665.658486] Voltage normalised (0x00020002) [126740.063284] Under-voltage detected! (0x00070007) [126746.294161] Voltage normalised (0x00020002) [139461.340946] Under-voltage detected! (0x00070007) [139465.490921] Voltage normalised (0x00020002) [196101.806304] Under-voltage detected! (0x00070007) [196108.046205] Voltage normalised (0x00020002) |
残るもう1つのUSBストレージも、遂に息絶えました。
RAIDアレイの現状確認と解体処理
Raspberry PiにささっているUSBストレージを引き抜いてしまうのが手っ取り早いのですが、目下の疫情により現地に赴いてのメンテナンスが当面不可能なことから、システム的な解体処理を施したいと思います。
先ずは現在の状況を確認。息絶えた唯一のUSBストレージもまだ一応、デバイスとしては存在していました。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
$ cat /proc/mdstat Personalities : [raid1] md0 : inactive sda1[2] 9223372036854771712 blocks super 1.2 unused devices: <none> $ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 1 14.5G 0 disk ├─sda1 8:1 1 60M 0 part └─sda2 8:2 1 14.4G 0 part mmcblk0 179:0 0 14.9G 0 disk ├─mmcblk0p1 179:1 0 60M 0 part /boot └─mmcblk0p2 179:2 0 14.4G 0 part / |
ソフトウェアRAIDのアレイはまだ動いていたので、これを停止します。
1 2 3 4 5 |
$ sudo mdadm --detail --scan /dev/md0 ARRAY /dev/md0 metadata=1.2 spares=1 name=homepi3:0 UUID=29c8b45c:4575827a:b0d41fdd:4377ffe5 $ sudo mdadm --misc --stop /dev/md0 mdadm: stopped /dev/md0 |
残っているディスクのスーパーブロックにゼロを書き入れて解体します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
$ ls -l /dev/sd* brw-rw---- 1 root disk 8, 0 Nov 20 02:11 /dev/sda brw-rw---- 1 root disk 8, 1 Nov 20 02:11 /dev/sda1 brw-rw---- 1 root disk 8, 2 Nov 20 02:11 /dev/sda2 $ sudo mdadm --misc --zero-superblock /dev/sda1 $ sudo mdadm --detail --scan /dev/md0 mdadm: cannot open /dev/md0: No such file or directory $ systemctl status mdadm ● mdadm.service Loaded: masked (/dev/null; bad) Active: inactive (dead) |
CPUの高負荷も解消されたので、ソフトウェアRAIDサービスを無効にして一見落着です。