mdadmでraid-10を構築していたのにサーバー再起動したら認識しなくなった時の修復方法

2019年9月10日

テクノロジー

以前に構築した自宅NASで8TB*4でRaid-10(実質容量16TB)が、本日サーバーの再起動を行った際に認識しなくなりました。

症状の追求

とりあえず、普通にmountコマンドを実施すると、以下のようなエラーが表示される。 $ mount /dev/md0 /mnt/usb2 mount: 何らかのエラーにより、マウントが失敗しました。 ファイルシステムタイプ, オプション, /dev/md0 上のスーパー ブロック, 必要なコードページ指定/ヘルパープログラム など、何らかの設定が間違っているものと思われます。 syslog 内に記録された情報が手助けになるものと思います - dmesg | tail などを実行してお読みください 何の解決にもならないエラーメッセージなので、とりあえず支持されているコマンドを実行 $ dmesg | tail [ 677.847602] md: bind<sdd1> [ 677.849053] md: bind<sde1> [ 677.850013] md: bind<sdc1> [ 677.850166] md: md0 stopped. [ 677.850177] md: unbind<sdc1> [ 677.860282] md: export_rdev(sdc1) [ 677.860311] md: unbind<sde1> [ 677.875072] md: export_rdev(sde1) [ 677.875159] md: unbind<sdd1> [ 677.891142] md: export_rdev(sdd1) [ 691.642705] EXT4-fs (md0): unable to read superblock [ 691.642924] EXT4-fs (md0): unable to read superblock [ 691.643095] EXT4-fs (md0): unable to read superblock [ 836.982285] md: md0 stopped. これも、なんだかよく分からず、md0のraidイメージが正常にマウントできない異常事態という事だけは理解できました。

mdadmの不具合?

以前に調べた時は、以下の手順で修復が出来たことを思い出して、実行。 $ mdadm -A /dev/md0 /dev/sd[cdef]1 $ mount /dev/md0 /mnt/usb2 ・・・だけど、これも駄目・・・ こういうニッチな事象は日本語サーチしても引っかからないことはよく分かってます。 海外のstackで調べてみたらドンピシャ記事がありました。 https://superuser.com/questions/603481/how-do-i-reactivate-my-mdadm-raid5-array 原因はやはり、mdadmで、そのコンフィグファイルの修正が必要だということです。 手順は以下の通り ## 確認 $ mdadm --assemble --scan -v mdadm: looking for devices for further assembly mdadm: no recogniseable superblock on /dev/sdf mdadm: no RAID superblock on /dev/sde mdadm: no RAID superblock on /dev/sdd mdadm: no RAID superblock on /dev/sdc mdadm: no RAID superblock on /dev/sdb mdadm: no RAID superblock on /dev/sda3 mdadm: no RAID superblock on /dev/sda2 mdadm: no RAID superblock on /dev/sda1 mdadm: no RAID superblock on /dev/sda mdadm: /dev/sde1 is identified as a member of /dev/md/0, slot 3. mdadm: /dev/sdd1 is identified as a member of /dev/md/0, slot 2. mdadm: /dev/sdc1 is identified as a member of /dev/md/0, slot 1. mdadm: /dev/sdb1 is identified as a member of /dev/md/0, slot 0. mdadm: added /dev/sdc1 to /dev/md/0 as 1 mdadm: added /dev/sdd1 to /dev/md/0 as 2 mdadm: added /dev/sde1 to /dev/md/0 as 3 mdadm: added /dev/sdb1 to /dev/md/0 as 0 mdadm: /dev/md/0 has been started with 4 drives. mdadm: looking for devices for further assembly mdadm: looking for devices for further assembly mdadm: no recogniseable superblock on /dev/md0 mdadm: no recogniseable superblock on /dev/sdf mdadm: /dev/sde1 is busy - skipping mdadm: Cannot assemble mbr metadata on /dev/sde mdadm: /dev/sdd1 is busy - skipping mdadm: Cannot assemble mbr metadata on /dev/sdd mdadm: /dev/sdc1 is busy - skipping mdadm: Cannot assemble mbr metadata on /dev/sdc mdadm: /dev/sdb1 is busy - skipping mdadm: Cannot assemble mbr metadata on /dev/sdb mdadm: no recogniseable superblock on /dev/sda3 mdadm: Cannot assemble mbr metadata on /dev/sda2 mdadm: no recogniseable superblock on /dev/sda1 mdadm: Cannot assemble mbr metadata on /dev/sda ## 修復 $ mdadm -A /dev/md0 $ mdadm --examine --scan >> /etc/mdadm/mdadm.conf ## 再マウント $ mount /dev/md0 /mnt/usb2 これで治った!!! 注意点としては、「確認」を行ったの際にmd0やsdc1~sce1、までの実ドライブ認識がされていない場合は、今回の修復では直りません。

このブログを検索

ごあいさつ

このWebサイトは、独自思考で我が道を行くユゲタの少し尖った思考のTechブログです。 毎日興味がどんどん切り替わるので、テーマはマルチになっています。 もしかしたらアイデアに困っている人の助けになるかもしれません。