RAID5の再構築

作業日: 6 Apr., 2015

スペアを含めて4台のHDDで構成していたRAID5だが、HDDが2つ壊れてしまったので、新しいHDDを買ってRAID5を再構成。
その内にRAID5の容量拡張もしたいので、一旦緊急避難的に1台だけ追加。

準備

まず、壊れたHDDを取り除いて、新しいHDDをセットし、PCを起動。

cat /proc/mdstat

md127 : active raid5 sdc1[1] sdb1[3]
      3907023872 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/2] [_UU]

のように表示され、U_となっていることから、RAID5がDegradedとなっていることがわかる。

新HDDのパーティショニング

sudo fdisk -l

で、新しいHDDは、/dev/sdaと認識されていることがわかった。
下記のような表示。

Disk /dev/sda: 2000.4 GB, 2000398934016 bytes
255 heads, 63 sectors/track, 243201 cylinders, total 3907029168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0x00000000

Disk /dev/sda doesn't contain a valid partition table

ちなみに、そのカウンターパートのHDDは、/dev/sdb、/dev/sdcとして認識され、

Disk /dev/sdb: 2000.4 GB, 2000398934016 bytes
81 heads, 63 sectors/track, 765633 cylinders, total 3907029168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048  3907029167  1953513560   fd  Linux raid autodetect

及び、

Disk /dev/sdc: 2000.4 GB, 2000398934016 bytes
81 heads, 63 sectors/track, 765633 cylinders, total 3907029168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x56697a44

   Device Boot      Start         End      Blocks   Id  System
/dev/sdc1            2048  3907029167  1953513560   fd  Linux raid autodetect

のようになっている。

今回は、両方のHDDのセクター数は同じであるため、

sudo fidsk /dev/sde

で全域を使って基本パーティションを作成し、ディスクラベルをfd Linux raid autodetectに設定。

sudo fdisk -l

の表示は、

Disk /dev/sda: 2000.4 GB, 2000398934016 bytes
81 heads, 63 sectors/track, 765633 cylinders, total 3907029168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0x25f3cca8

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1            2048  3907029167  1953513560   fd  Linux raid autodetect

のようになる。

RAID5の再構築

RAID5に新しいディスクを追加する。RAID5は/dev/md/datastoreとして設定されているので、

sudo mdadm --manage /dev/md/datastore --add /dev/sda1

を実行。
ちなみに、RAIDのパスは、/etc/mdadm/mdadm.confに書かれている。別に、/proc/mdstatの/mdev/md127を使っても良い。

後は、

sudo cat /proc/mdstat

で進捗状況を確認。

途中では、

md127 : active raid5 sda1[4] sdc1[1] sdb1[3]
      3907023872 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/2] [_UU]
      [>....................]  recovery =  0.0% (645720/1953511936) finish=1108.9min speed=29350K/sec

みたいになるが、終了すると

XXXX

のようになる。

RAID5にスペアディスク追加

作業日: 2 May., 2014

2GB×3で運用していたRAID5にHDDをホットスペアで1台追加。
(その内に2GB×4のRAID5に拡張するつもりだったが、結局やらずじまい)

準備

2GBのHDDを購入して、追加。
/dev/sdaとして認識され、fdisk -lでは下記のようになる。

Disk /dev/sda: 2000.4 GB, 2000398934016 bytes
255 heads, 63 sectors/track, 243201 cylinders, total 3907029168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Disk /dev/sda doesn't contain a valid partition table

新HDDのパーティショニング

sudo fdisk /dev/sda

で、ディスク全体でパーティションタイプがfd Linux autodetectのパーティションを作成

ホットスペアとしてディスクを追加

下記コマンドでホットスペアとして追加。

sudo mdadm --manage /dev/md/datastore --add /dev/sda1
cat /proc/mdstat

で状況を確認すると、

md127 : active raid5 sda1[4](S) sdd1[1] sdc1[3] sdb1[0]
      3907023872 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/3] [UUU]

のようになる。
sda[4](S)となっているのが、ホットスペアのディスク。

状況を詳細に確認するために、

sudo mdadm --misc --detail /dev/md/datastore

を実行すると、

/dev/md/datastore:
        Version : 1.2
  Creation Time : Tue Mar 13 00:10:46 2012
     Raid Level : raid5
     Array Size : 3907023872 (3726.03 GiB 4000.79 GB)
  Used Dev Size : 1953511936 (1863.01 GiB 2000.40 GB)
   Raid Devices : 3
  Total Devices : 4
    Persistence : Superblock is persistent

    Update Time : Fri May  2 14:47:56 2014
          State : clean
 Active Devices : 3
Working Devices : 4
 Failed Devices : 0
  Spare Devices : 1

         Layout : left-symmetric
     Chunk Size : 512K

           Name : domino:datastore  (local to host domino)
           UUID : ae189551:89069074:6d0d79a4:e0c921a6
         Events : 126

    Number   Major   Minor   RaidDevice State
       0       8       17        0      active sync   /dev/sdb1
       1       8       49        1      active sync   /dev/sdd1
       3       8       33        2      active sync   /dev/sdc1

       4       8        1        -      spare   /dev/sda1

のようになる。

(未実行)領域の拡張

もし、領域を拡張したい場合は、下記のように実行。(やってないけど)

sudo mdadm --grow /dev/md/datastore --raid-disks=4