スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
ブログランキング参加中です。クリックで応援してくださいね→にほんブログ村 PC家電ブログ Windowsへ
Windowsの記事が多いのでWindowsカテゴリに参加中です。

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

【流れ】
1.CentOSのLiveDVDからPCを起動
2.RAID5のHDD4本のうち、1本に障害が発生した状態の3本のHDDをPCに接続
3.RAID5のmd(マルチプルデバイス)を強制的に有効にする
4.救出先のHDDを接続
5.データを救出

【手順】以下、"★"はコメント
1.CentOSのLiveDVDからPCを起動
1.1 CentOSの公式サイトからダウンロード。

2.RAID5のHDD4本のうち、1本に障害が発生した状態の3本のHDDをPCに接続
2.1 接続する
2.2 ターミナルを起動し、fdisk -l でHDDを確認
---実行結果例ここから---
# 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 でパーティション情報を確認
---実行結果例ここから---
# 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 マルチプルデバイスの状態ディスクごとに確認
---実行結果例ここから---
# 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と認識している

# 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と認識している

# 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.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を停止
---実行結果例ここから---
# mdadm --stop /dev/md126
mdadm: stopped /dev/md126
---実行結果例ここまで---

3.2 mdを強制的に有効にする
---実行結果例ここから---
# 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 マルチプルデバイスの状態確認
---実行結果例ここから---
# 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をマウント
---実行結果例ここから---
# mount /dev/md126 /a ★/aを作成して、マウント
---実行結果例ここまで---

3.5 マウント状態確認
---実行結果例ここから---
# 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 ファイルシステムを修復
---実行結果例ここから---
# 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 Mの欲しいものリスト

以上。
関連記事
ブログランキング参加中です。クリックで応援してくださいね→にほんブログ村 PC家電ブログ Windowsへ
Windowsの記事が多いのでWindowsカテゴリに参加中です。

テーマ : Linux - ジャンル : コンピュータ

コメント
コメントの投稿
管理者にだけ表示を許可する

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。