RAIDの再構築が終わらない!対策方法はmanageオプションで

Ubuntu LinkStation

LinkStation LS-QLシリーズに搭載していた4本のハードディスクがエラーで読めなくなってしまい、現在パソコンで起動したUbuntuで読み込ませて、手動で復旧中です。

この4本のハードディスクはRAID5で構成されていて、OSが4本を同じRAID5のメンバーであると認識しなくては、読めるようになりません。

これまでの作業で、4本のハードディスクが同じRAIDアレイのメンバとして認識されたため、リビルド(再構築)を行うことにしました。

ところが、この再構築が延々終わらない!
調べてみたところ、進行が止まっているようでした。

本記事では、RAIDを再構築する時に気を付ける点や、再構築がうまく進まない時の解決方法をご紹介します。

RAIDを再構築する前に

ハードディスク

RAIDの再構築が必要なシーンというとハードディスクの何本かが壊れた時だと思います。

私の場合は、4本のうち複数本が不調でしたが以下ように復旧作業を進めました。

  1. 破損度合いの大きいHDDをRAID除外する
  2. リトライの多いHDDを丸ごと新品のHDDにDiskCopy
  3. 矛盾が発生しているsuperblockを書き換えて同じメンバに見せる
  4. 新しいHDDをメンバに追加して4本に戻す

途中のステップは割愛しますが、4本のHDDが揃ってから、最後に行ったコマンド(RAID5への登録コマンド)が以下のコマンドとなります。

root@ubuntu:~# mdadm -A /dev/md2 /dev/sd[abcd]6
mdadm: device 1 in /dev/md2 has wrong state in superblock, but /dev/sdb6 seems ok
mdadm: /dev/md2 has been started with 4 drives.

ちょっと危なっかしいけど、seems ok となっているのがポイントです。

ここまで来れば、リビルド(再構築)は自動的にバックグラウンドで開始されています。

RAIDの再構築が終わらない時の対処法

Ubuntu

しかし、mdadm --detail や cat /proc/mdstat などで、状態を見ると、4本に増えたのに、全く再計算している様子が無い。
それではデグレードモードで復旧したのと変わりが無いし、納得行かない。

そこで、以下のように、無理矢理、再構築=リビルドが走るように、さっき追加した /dev/sdb6 を --manage オプションを付けて、add した。

root@ubuntu:~# mdadm --manage /dev/md2 --add /dev/sdb6
mdadm: added /dev/sdb6

すると・・・。

root@ubuntu:~# mdadm --detail /dev/md2
/dev/md2:
        Version : 0.90
  Creation Time : Sun Jun 21 17:07:49 2009
     Raid Level : raid5
     Array Size : 2906278656 (2771.64 GiB 2976.03 GB)
  Used Dev Size : 968759552 (923.88 GiB 992.01 GB)
   Raid Devices : 4
  Total Devices : 4
Preferred Minor : 2
    Persistence : Superblock is persistent

    Update Time : Tue Dec 29 21:35:15 2015
          State : clean, degraded, recovering 
 Active Devices : 3
Working Devices : 4
 Failed Devices : 0
  Spare Devices : 1

         Layout : left-symmetric
     Chunk Size : 64K

 Rebuild Status : 0% complete

           UUID : 82ca5ba8:77319326:bd54f990:2edf8a42
         Events : 0.36

    Number   Major   Minor   RaidDevice State
       0       8        6        0      active sync   /dev/sda6
       4       8       22        1      spare rebuilding   /dev/sdb6
       2       8       38        2      active sync   /dev/sdc6
       3       8       54        3      active sync   /dev/sdd6

このようにリビルドが始まった。

更に、他のコマンドでも状況を見てみよう。

root@ubuntu:~# cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4] 
md2 : active raid5 sdb6[4] sda6[0] sdd6[3] sdc6[2]
      2906278656 blocks level 5, 64k chunk, algorithm 2 [4/3] [U_UU]
      [>....................]  recovery =  0.3% (3582176/968759552) finish=178.9min speed=89905K/sec

リビルド(再構築)の進行状況が表示される。

root@ubuntu:~# cat /proc/mdstat 
Personalities : [raid6] [raid5] [raid4] 
md2 : active raid5 sdb6[4] sda6[0] sdd6[3] sdc6[2]
      2906278656 blocks level 5, 64k chunk, algorithm 2 [4/3] [U_UU]
      [>....................]  recovery =  0.5% (5561888/968759552) finish=181.4min speed=88468K/sec

これが100%になれば完成である。

これが、終わったら Repair を行います。
【xfs_repair】RAID5を使ったファイルシステムの修復【Ubuntu】

Windows10にアップグレードしたら、LinkStationのHDDが壊れてEMモードにすらならずにハマってしまったけれど、Linuxの機能を駆使して完全復旧させた私の体験の一部始終を読みたい方は、以下の記事から進んで下さい。

故障したLinkStationから自力でデータ復旧した方法

コメント

タイトルとURLをコピーしました