LinkStation LS-QLシリーズの内蔵ハードディスクが不調になったため、LinkStationを少しハックしてtelnetでログイン出来るようにしました。
本来ならパソコンに全てのハードディスクを繋いで、データのサルベージをするべきなのですが、LinkStationにもLinux OSが動いているので、そのままLinkStationのコマンドプロンプトからRAID5の復旧コマンドを叩くことが出来ます。
本記事では、RAID5のデグレードとは何か?RAID5の最低本数は何本か?mdadmというLinuxコマンドを使ってLinkStationのRAID5をデグレードする手順の詳細について解説します。
RAID5の最低本数は3本で良い
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にも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の機能を駆使して完全復旧させた私の体験の一部始終を読みたい方は、以下の記事から進んで下さい。
コメント