RAID5のHDD2本障害が発生したのでデータ復旧を試みた
以下の記事でも紹介した、我が家の「裸族のインテリジェントビルNAS」ですが、RAID5のHDDのうち2本に障害が発生しました。
裸族のインテリジェントビルNAS(CRIB35NAS) を買いました
裸族のインテリジェントビルNAS(CRIB35NAS)でRAID5のベンチマークテスト
経緯
- 3TBのHDD4本のRAID5で運用
- HDD1本故障
- HDD交換後、リビルド開始
- リビルド中に2本目のHDDが故障
- NAS管理画面からRAIDディスク自体が見えなくなる
RAID5はHDD1本故障まではセーフだが、2本故障はアウト。
だが、ここであきらめるわけにはいかない。
全部とは言わないが、少しでもデータ復旧を…ということで頑張ってみました。
結果、今回は中に入っていた約4TBのデータのうち、100GBは救出できませんでしたが、残りは救出できました。
(まぁ障害の程度によるんですけどね)
LinuxでソフトウェアRAIDのシステムなら同手順でなんとかなるかもしれません。
特に、TeraStationとかね。
ということで、以下、データ復旧までの技術メモです。
準備物
- CentOSのLiveDVD
- SATAディスクが4本以上が接続できるPC(3本が救出元、1本が救出先)
- データ救出先のHDD
作業の流れ
- CentOSのLiveDVDからPCを起動
- RAID5のHDD4本のうち、1本に障害が発生した状態の3本のHDDをPCに接続
- RAID5のmd(マルチプルデバイス)を強制的に有効にする
- 救出先のHDDを接続
- データを救出
手順
以下、出力結果等に"★"印でコメントを記載していますので、その部分に着目してください。
1.CentOSのLiveDVDからPCを起動
1.1 CentOSの公式サイトからダウンロード。
2.RAID5のHDD4本のうち、1本に障害が発生した状態の3本のHDDをPCに接続
2.1 接続する
2.2 ターミナルを起動し、fdisk -l でHDDを確認
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
# fdisk -l ★LiveDVD Disk
/dev/mapper/live-rw:
5872
MB,
5872025600
bytes 255
heads,
63
sectors/track,
713
cylinders Units
=
cylinders of
16065
*
512
=
8225280
bytes Sector size
(logical/physical):
512
bytes
/
512
bytes I/O
size
(minimum/optimal):
512
bytes
/
512
bytes Disk identifier:
0x00000000 ★LiveDVD Disk
/dev/mapper/live-osimg-min:
5872
MB,
5872025600
bytes 255
heads,
63
sectors/track,
713
cylinders Units
=
cylinders of
16065
*
512
=
8225280
bytes Sector size
(logical/physical):
512
bytes
/
512
bytes I/O
size
(minimum/optimal):
512
bytes
/
512
bytes Disk identifier:
0x00000000 ★HDD1本目 Disk
/dev/sdc:
3000.6
GB,
3000592982016
bytes 255
heads,
63
sectors/track,
364801
cylinders Units
=
cylinders of
16065
*
512
=
8225280
bytes Sector size
(logical/physical):
512
bytes
/
4096
bytes I/O
size
(minimum/optimal):
4096
bytes
/
4096
bytes Disk identifier:
0x00000000 Device Boot Start End
Blocks Id System /dev/sdc1
1
267350
2147483647+
ee GPT Partition
1
does not
start on physical sector boundary. ★HDD2本目 Disk
/dev/sdd:
3000.6
GB,
3000592982016
bytes 255
heads,
63
sectors/track,
364801
cylinders Units
=
cylinders of
16065
*
512
=
8225280
bytes Sector size
(logical/physical):
512
bytes
/
4096
bytes I/O
size
(minimum/optimal):
4096
bytes
/
4096
bytes Disk identifier:
0x4b8e7289 Device Boot Start End
Blocks Id System /dev/sdd1
1
267350
2147483647+
ee GPT Partition
1
does not
start on physical sector boundary. ★HDD3本目 Disk
/dev/sde:
3000.6
GB,
3000592982016
bytes 255
heads,
63
sectors/track,
364801
cylinders Units
=
cylinders of
16065
*
512
=
8225280
bytes Sector size
(logical/physical):
512
bytes
/
4096
bytes I/O
size
(minimum/optimal):
4096
bytes
/
4096
bytes Disk identifier:
0x00000000 Device Boot Start End
Blocks Id System /dev/sde1
1
267350
2147483647+
ee GPT Partition
1
does not
start on physical sector boundary. |
2.3 parted でパーティション情報を確認
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
# parted /dev/sde ★fdiskで確認した結果をもとに、ディスク1本だけ確認してみる GNU Parted
2.1 Using
/dev/sde Welcome to
GNU Parted!
Type
'help'
to
view
a
list of commands. (parted)
print Model:
ATA WDC WD30EZRX-00M
(scsi) Disk
/dev/sde:
3001GB Sector size
(logical/physical):
512B/4096B Partition Table:
gpt Number Start End
Size File system Name Flags 1
17.4kB
8001kB
7983kB 2
8001kB
1048MB
1040MB
xfs ★NASの管理用領域? 3
1048MB
3001GB
3000GB
★救出したいデータが入っている領域 |
2.4 マルチプルデバイスの状態ディスクごとに確認
sdc3を確認
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
# mdadm --examine /dev/sdc3 /dev/sdc3: Magic
:
xxxxxxxx Version
:
1.0 Feature Map
:
0x0 Array
UUID
:
a9ea7400:8a721900:43987400:16e3fa00★RAID5アレイのUUID Name
:
1 Creation Time
:
Mon Nov
14
08:29:49
2011 Raid Level
:
raid5 Raid Devices
:
4 Avail Dev Size
:
5858485984
(2793.54
GiB
2999.54
GB) Array
Size
:
17575457664
(8380.63
GiB
8998.63
GB) Used Dev Size
:
5858485888
(2793.54
GiB
2999.54
GB) Super
Offset
:
5858486240
sectors State
:
clean Device UUID
:
ca33aexx:ca865cxx:42f27axx:7b2206xx Update Time
:
Fri Jan
4
02:09:46
2013 Checksum
:
d4f167ce
-
correct Events
:
172381 Layout
:
left-symmetric Chunk Size
:
64K Device Role
:
Active device
3 Array
State
:
AAAA
('A'
==
active,
'.'
==
missing) ★全ディスクがActiveと認識している |
sdd3を確認
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
# mdadm --examine /dev/sdd3 /dev/sdd3: Magic
:
xxxxxxxx Version
:
1.0 Feature Map
:
0x0 Array
UUID
:
a9ea7400:8a721900:43987400:16e3fa00★RAID5アレイのUUID Name
:
1 Creation Time
:
Mon Nov
14
08:29:49
2011 Raid Level
:
raid5 Raid Devices
:
4 Avail Dev Size
:
5858485984
(2793.54
GiB
2999.54
GB) Array
Size
:
17575457664
(8380.63
GiB
8998.63
GB) Used Dev Size
:
5858485888
(2793.54
GiB
2999.54
GB) Super
Offset
:
5858486240
sectors State
:
clean Device UUID
:
f571cbxx:eee097xx:685e08xx:568e85xx Update Time
:
Fri Jan
4
02:44:50
2013 Checksum
:
4255e068
-
correct Events
:
172406 Layout
:
left-symmetric Chunk Size
:
64K Device Role
:
Active device
0 Array
State
:
A.A.
('A'
==
active,
'.'
==
missing) ★ディスク2本がmissingと認識している |
sde3を確認
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
# mdadm --examine /dev/sde3 /dev/sde3: Magic
:
xxxxxxxx Version
:
1.0 Feature Map
:
0x0 Array
UUID
:
a9ea7400:8a721900:43987400:16e3fa00★RAID5アレイのUUID Name
:
1 Creation Time
:
Mon Nov
14
08:29:49
2011 Raid Level
:
raid5 Raid Devices
:
4 Avail Dev Size
:
5858485984
(2793.54
GiB
2999.54
GB) Array
Size
:
17575457664
(8380.63
GiB
8998.63
GB) Used Dev Size
:
5858485888
(2793.54
GiB
2999.54
GB) Super
Offset
:
5858486240
sectors State
:
clean Device UUID
:
aab50fxx:ed16f8xx:c86194xx:e92654xx Update Time
:
Fri Jan
4
02:44:50
2013 Checksum
:
6954f612
-
correct Events
:
172406 Layout
:
left-symmetric Chunk Size
:
64K Device Role
:
Active device
2 Array
State
:
A.A.
('A'
==
active,
'.'
==
missing) ★ディスク2本がmissingと認識している |
2.5 マルチプルデバイスの状態確認
1 2 3 4 |
# cat /proc/mdstat md126
:
inactive sde3[2](S)
sdb3[4](S)
sda3[0](S) ★md126というRAID5アレイが故障中 8787728976
blocks super
1.0 |
3.RAID5のmd(マルチプルデバイス)を強制的に有効にする
3.1 故障中のmdを停止
1 2 3 |
# mdadm --stop /dev/md126 mdadm:
stopped
/dev/md126 |
3.2 mdを強制的に有効にする
1 2 3 |
# mdadm -A /dev/md126 -u a9ea7400:8a721900:43987400:16e3fa00 --run --force ★2.4で確認したARRAY UUIDを指定 mdadm:
/dev/md126 has been started with
3
drives
(out of
4). |
3.3 マルチプルデバイスの状態確認
1 2 3 4 5 |
# cat /proc/mdstat Personalities
:
[raid6]
[raid5]
[raid4] md126
:
active raid5 sdd3[0]
sdc3[4]
sde3[2] 8787728832
blocks super
1.0
level
5,
64k
chunk,
algorithm
2
[4/3]
[U_UU]★HDD4台中3台で稼働 |
3.4 mdをマウント
1 2 |
# mkdir /a ★/a というマウントポイントを作成 # mount /dev/md126 /a ★md126を/a にマウント |
3.5 マウント状態確認
1 2 3 4 5 6 7 8 9 10 |
# df -h Filesystem Size Used Avail Use%
Mounted on /dev/mapper/live-rw
5.4G
4.5G
907M
84%
/ tmpfs
3.9G
272K
3.9G
1%
/dev/shm /dev/sr0
1.7G
1.7G
0
100%
/mnt/live varcacheyum
3.9G
0
3.9G
0%
/var/cache/yum /tmp
3.9G
84K
3.9G
1%
/tmp vartmp
3.9G
1.5M
3.9G
1%
/var/tmp /dev/md126
8.2T
4.1T
4.2T
50%
/a ★マウントしている |
ちなみに、ファイルシステムはxfsでした。
3.6 ファイルシステムを修復
1 2 |
# xfs_repair -v /dev/md126 ~出力が長いので略~ |
4.救出先のHDDを接続
4.1 接続しましょう
5.データを救出
5.1 GUIでコピーするなり、cpコマンドでコピーするなり、がんばりましょう
5.2 救出できないファイルや故障セクタにアクセスしようとした場合、mdが再度故障状態になるので、手順3から再実行する。
5.3 根気よく繰り返す。
私の場合、上記でなんとかなりましたが、環境や障害状況によると思うので、臨機応変にがんばりましょう。
実は本件、お正月の出来事でして、年明け早々縁起が良くない感じでした。
ある程度救出できたので縁起が良かったのかな??
でもさすがに3TBのHDDを複数買いなおす金銭的余裕が無かったので、
現在3TB×3本のRAID5で運用中だったりします…。
どなたかリッチな方、私にHDDをプレゼントしてください!
Amazon 欲しいものリスト
ディスカッション
コメント一覧
まだ、コメントがありません