RAID5のHDD2本障害が発生したのでデータ復旧を試みた
公開日:
:
最終更新日:2019/11/05
NASの技術メモ doublefail., nas, raid5, recover
以下の記事でも紹介した、我が家の「裸族のインテリジェントビル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 欲しいものリスト
AD

関連記事
-
-
裸族のインテリジェントビルNAS(CRIB35NAS) を買いました
以前からNASが欲しかったので、 手ごろな価格の「裸族のインテリジェントビルNAS」を買ってみました
-
-
裸族のインテリジェントビルNAS(CRIB35NAS)でRAID5のベンチマークテスト
先日書いた、裸族のインテリジェントビルNASを買いました。という記事の続きです。 思い切って3TB