RAID5の最低本数は3本?LinkStationをデグレード!

LinkStation

LinkStation LS-QLシリーズの内蔵ハードディスクが不調になったため、LinkStationを少しハックしてtelnetでログイン出来るようにしました。

本来ならパソコンに全てのハードディスクを繋いで、データのサルベージをするべきなのですが、LinkStationにもLinux OSが動いているので、そのままLinkStationのコマンドプロンプトからRAID5の復旧コマンドを叩くことが出来ます。

本記事では、RAID5のデグレードとは何か?RAID5の最低本数は何本か?mdadmというLinuxコマンドを使ってLinkStationのRAID5をデグレードする手順の詳細について解説します。

RAID5の最低本数は3本で良い

RAID 5

RAID5は4本以上のハードディスクを使い、高信頼性・高速性・高容量効率を兼ね備えた、RAID方式の中では新しく、ビジネスではよく使われる方式です。

RAID5のとくに面白いところは容量です。
1TBのハードディスクを4本搭載したRAID5は、3TBまで使えます。
RAID1+0やRAID0+1と比較すると1TB多いので、効率が良いのです。

3TBまで使えるということは、4本のハードディスクの総容量の4TBに対して4分の3なので、RAID5が動けるギリギリの最低本数は3本であることが分かります。

しかし、3TBで3本ということは全く余裕が無いので、RAID5の「高信頼性」「高速性」はマトモに機能しません
この状態を「デグレードモード」と呼びます。

RAID5では、3本のハードディスクがあれば何とか動いてデータも読み出せますが、これは緊急対策モードであって、ずっとこのまま使い続けるようなものではない・・ということを覚えておきましょう!

RAID5の最低本数で立ち上げる準備:fdisk

LinkStation

LinkStationにも4つのハードディスクが搭載されていますので4つともLinux上で認識されているか?を確認します。

コマンドはfdiskを使います。

root@LS-QLF9C:~# fdisk -l

Disk /dev/sda: 1000.2 GB, 1000204886016 bytes
255 heads, 63 sectors/track, 121601 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks  Id System
/dev/sda1               1         125     1004031  83 Linux
/dev/sda2             126         748     5004247+ 83 Linux
/dev/sda4             749      121601   970751722+  5 Extended
/dev/sda5             749         873     1004031  82 Linux swap
/dev/sda6             874      121478   968759631  83 Linux

Disk /dev/sdb: 1000.2 GB, 1000204886016 bytes
255 heads, 63 sectors/track, 121601 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks  Id System
/dev/sdb1               1         125     1004031  83 Linux
/dev/sdb2             126         748     5004247+ 83 Linux
/dev/sdb4             749      121601   970751722+  5 Extended
/dev/sdb5             749         873     1004031  82 Linux swap
/dev/sdb6             874      121478   968759631  83 Linux

Disk /dev/sdc: 1000.2 GB, 1000204886016 bytes
255 heads, 63 sectors/track, 121601 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks  Id System
/dev/sdc1               1         125     1004031  83 Linux
/dev/sdc2             126         748     5004247+ 83 Linux
/dev/sdc4             749      121601   970751722+  5 Extended
/dev/sdc5             749         873     1004031  82 Linux swap
/dev/sdc6             874      121478   968759631  83 Linux

Disk /dev/sdd: 1000.2 GB, 1000204886016 bytes
255 heads, 63 sectors/track, 121601 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks  Id System
/dev/sdd1               1         125     1004031  83 Linux
/dev/sdd2             126         748     5004247+ 83 Linux
/dev/sdd4             749      121601   970751722+  5 Extended
/dev/sdd5             749         873     1004031  82 Linux swap
/dev/sdd6             874      121478   968759631  83 Linux
root@LS-QLF9C:~#

全てのDiskが見えました。

RAID5を最低本数に切り替える(デグレード):mdadm

ハードディスク

RAID5というの最低3本のハードディスクがあれば動きます。
LinkStationのRAID5は4本で構成されていますので、最低ラインよりも1本余裕があります。

このRAID5の構成でハードディスクの本数を4本から3本に減らすことを「デグレード」と言います。
今回はdisk1が壊れてしまい、新品に入れかえた状態ですので、disk2~disk4の3本でRAID5が動くかどうかが復旧の大事なポイントになります。

ここでは早速、RAID5を最低本数での起動、デグレードモードに切り替えてみましょう。

コマンドはmdadmというRAID専用のコマンドを使います。

RAID5の定義を確認

RAID用のデバイスは/dev/md・・から始まるデバイス名になっているので存在を確認します。

root@LS-QLF9C:~# ls -l /dev/md2
brwxr-xr-x    1 root     root       9,   2 Jun 18  2009 /dev/md2

RAID用のデバイス、既にありました。

RAIDの定義が書かれているのはmdadm.confです。

root@LS-QLF9C:~# cat /etc/mdadm.conf
DEVICE /dev/disk?_6 /dev/md2 /dev/md3

コンフィグもデバイスの宣言だけですが、残っていました。
RAIDが組まれると、この下にARRAY定義が記載されるようになります。

RAID5の再構成

OSにRAID構成を再認識させるため、mdadmコマンドでmd2デバイスにsdb,sdc,sddの3つのハードディスクをAddします。

root@LS-QLF9C:~# mdadm -A /dev/md2 /dev/sd[bcd]6
mdadm: /dev/md2 assembled from 3 drives - need all 4 to start it (use --run to insist).

ハードディスク3本でRAID5を構成しようとしたら、怒られました。

root@LS-QLF9C:~# mdadm -A /dev/md2 /dev/sd[bcd]6 --run
mdadm: /dev/md2 has been started with 3 drives (out of 4).

強制モードとして、--run を付けたら成功しました!

RAID状態の確認

RAIDが組まれたことの確認は mdadm --detail コマンドを使います。

root@LS-QLF9C:~# mdadm --detail /dev/md2
/dev/md2:
        Version : 00.90.03
  Creation Time : Mon Jun 22 02:07:49 2009
     Raid Level : raid5
     Array Size : 2906278656 (2771.64 GiB 2976.03 GB)
    Device Size : 968759552 (923.88 GiB 992.01 GB)
   Raid Devices : 4
  Total Devices : 3
Preferred Minor : 2
    Persistence : Superblock is persistent

    Update Time : Tue Dec 15 03:58:17 2015
          State : clean, degraded
 Active Devices : 3
Working Devices : 3
 Failed Devices : 0
  Spare Devices : 0

         Layout : left-symmetric
     Chunk Size : 64K

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

    Number   Major   Minor   RaidDevice State
       0       0        0        0      removed
       1       8       22        1      active sync   /dev/sdb6
       2       8       38        2      active sync   /dev/sdc6
       3       8       54        3      active sync   /dev/sdd6
root@LS-QLF9C:~#

degradedと表示されているのが分かるでしょうか?

デグレードで完全に壊れたdisk1の存在を忘れ、立ち上がりました!

あとは適当にマウントすれば読めるようになります。

mount /dev/md2 /mnt/array2

LinkStationのRAID5のデグレードは、壊れたLinkStationを応急処置として正常な残りの3本のハードディスクで「どうにか読めるようにする」手法です。
データが全て壊れていないかどうかは、この時点では分かりませんので注意が必要です。

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

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

コメント

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