ビーーーーーーーーーーーーーーーーーーーーーーーーーー!!
日曜の朝に鳴り響くBeep音なんだなんだと、鳴っている方向に近づいていくと、ん?
パソコン(このWEBサーバ)近く?
UPSになにかあったかな?違う。
電源?違う。
筐体の中から鳴っている・・・・
あれ?RAIDカードだ!
自分が使っているのは、HighPointのRocketRAID 2720SGL
このカード単体でも、RAID 0,1,5,10,50 の機能があるものの、柔軟性を重視して
あえてsingle-diskとして認識させて、SW RAID(mdadm)にてRAID5を構築している。

嫁からも近所迷惑だから早く止めろと催促。
焦って/var/log/messege を確認するとこんな感じのエラーが大量に・・・
Jun 29 05:17:50 user01server kernel: end_request: I/O error, dev sdf, sector 1246355968 Jun 29 05:17:50 user01server kernel: sd 0:0:5:0: [sdf] Unhandled error code Jun 29 05:17:50 user01server kernel: sd 0:0:5:0: [sdf] Result: hostbyte=DID_BAD_TARGET driverbyte=DRIVER_OK Jun 29 05:17:50 user01server kernel: sd 0:0:5:0: [sdf] CDB: Read(10): 28 00 4b 57 7b 00 00 00 80 00 Jun 29 05:17:50 user01server kernel: end_request: I/O error, dev sdf, sector 1264024320 Jun 29 05:17:50 user01server kernel: sd 0:0:5:0: [sdf] Unhandled error code Jun 29 05:17:50 user01server kernel: sd 0:0:5:0: [sdf] Result: hostbyte=DID_BAD_TARGET driverbyte=DRIVER_OK Jun 29 05:17:50 user01server kernel: sd 0:0:5:0: [sdf] CDB: Read(10): 28 00 4a 49 e3 00 00 00 80 00
これは死んだのか?
続いてRAIDの状況を確認。
[user01@user01server ~]$ cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4]
md127 : active raid5 sda[0] sdd[4] sdf[6](F) sdb[1] sdc[2] sdg[7] sde[5]
17580810240 blocks super 1.2 level 5, 1024k chunk, algorithm 2 [7/6] [UUUU_UU]
unused devices:
おぉ!Uが一つ無い!! < これはちょっと感激。
さらに念のため詳細に確認。
[user01@user01server ~]$ sudo mdadm --detail /dev/md127
[sudo] password for user01:
/dev/md127:
Version : 1.2
Creation Time : Mon Dec 9 00:54:27 2013
Raid Level : raid5
Array Size : 17580810240 (16766.37 GiB 18002.75 GB)
Used Dev Size : 2930135040 (2794.39 GiB 3000.46 GB)
Raid Devices : 7
Total Devices : 7
Persistence : Superblock is persistent
Update Time : Sun Jun 29 08:48:31 2014
State : clean, degraded
Active Devices : 6
Working Devices : 6
Failed Devices : 1
Spare Devices : 0
Layout : left-symmetric
Chunk Size : 1024K
Name : user01server.user01.dyndns.org:0 (local to host user01server.user01.dyndns.org)
UUID : ace14840:4340b170:8a51d18e:4aba9a0d
Events : 39638
Number Major Minor RaidDevice State
0 8 0 0 active sync /dev/sda
1 8 16 1 active sync /dev/sdb
2 8 32 2 active sync /dev/sdc
4 8 48 3 active sync /dev/sdd
4 0 0 4 removed
5 8 64 5 active sync /dev/sde
7 8 96 6 active sync /dev/sdg
6 8 80 - faulty
[user01@user01server ~]$
faulty
なんかカッコいいっすね。faulty
ちなみに、まだアラームが鳴り響く中での作業である。
引き続きアラームを止めるべく、該当のDiskを外すことに。
コマンドを打ってもsdfは既に存在しないことから、システムからは既に居ないと判断。
それでは、外すかと筐体内を見るが、どれがsdf? RAID5なので、間違えたDISKを抜けば即死である。
多分これ! では作業は出来ない。
幸いにもHDD筐体の側面には、シリアル番号の記載があり、じゃこれを頼りに外すかと考えシリアル番号を確認。
障害HDDは既に無いため、その他のDiskを確認。
[root@user01server dev]# hdparm -i /dev/sda | grep SerialNo Model=ST3000DM001-1CH166, FwRev=CC24, SerialNo=Z1F2YF60

全HDDを確認し存在しない1台を特定。
オンラインのまま接続を抜いた。
Beep音止まらず・・・
まさか、復旧まで止まらない、つもりなのか?
んー、しんどい。
近所には同じDiskがなさそうだったので、仕方なく秋葉原まで行って購入。
早速Diskをオンラインで指して見ると。Beepが止まり、あっさりsdkとして認識。ここまでで障害から約12時間経過
Jun 29 20:03:17 user01server kernel: scsi 0:0:5:0: Direct-Access ATA ST3000DM001-1ER1 CC43 PQ: 0 ANSI: 5 Jun 29 20:03:17 user01server kernel: sd 0:0:5:0: Attached scsi generic sg5 type 0 Jun 29 20:03:17 user01server kernel: sd 0:0:5:0: [sdk] 5860533168 512-byte logical blocks: (3.00 TB/2.72 TiB) Jun 29 20:03:17 user01server kernel: sd 0:0:5:0: [sdk] Write Protect is off Jun 29 20:03:17 user01server kernel: sd 0:0:5:0: [sdk] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA Jun 29 20:03:17 user01server kernel: sdk: unknown partition table Jun 29 20:03:17 user01server kernel: sd 0:0:5:0: [sdk] Attached SCSI disk
このまま、RAIDに追加
[root@user01server ~]# mdadm --manage /dev/md127 --add /dev/sdk
[root@user01server ~]# mdadm --detail /dev/md127
/dev/md127:
Version : 1.2
Creation Time : Mon Dec 9 00:54:27 2013
Raid Level : raid5
Array Size : 17580810240 (16766.37 GiB 18002.75 GB)
Used Dev Size : 2930135040 (2794.39 GiB 3000.46 GB)
Raid Devices : 7
Total Devices : 8
Persistence : Superblock is persistent
Update Time : Sun Jun 29 20:23:41 2014
State : active, degraded, recovering
Active Devices : 6
Working Devices : 7
Failed Devices : 1
Spare Devices : 1
Layout : left-symmetric
Chunk Size : 1024K
Rebuild Status : 0% complete
Name : user01server.user01.dyndns.org:0 (local to host user01server.user01.dyndns.org)
UUID : ace14840:4340b170:8a51d18e:4aba9a0d
Events : 67077
Number Major Minor RaidDevice State
0 8 0 0 active sync /dev/sda
1 8 16 1 active sync /dev/sdb
2 8 32 2 active sync /dev/sdc
4 8 48 3 active sync /dev/sdd
8 8 160 4 spare rebuilding /dev/sdk
5 8 64 5 active sync /dev/sde
7 8 96 6 active sync /dev/sdg
6 8 80 - faulty
[root@user01server ~]#
[root@user01server ~]# cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4]
md127 : active raid5 sdk[8] sda[0] sdd[4] sdf[6](F) sdb[1] sdc[2] sdg[7] sde[5]
17580810240 blocks super 1.2 level 5, 1024k chunk, algorithm 2 [7/6] [UUUU_UU]
[>....................] recovery = 1.1% (34513536/2930135040) finish=911.5min speed=52944K/sec
unused devices:
勝手にRebuilding始まった模様。915min約15時間か・・・
Jun 29 20:23:13 user01server kernel: md: recovery of RAID array md127 Jun 30 08:40:31 user01server kernel: md: md127: recovery done.
結局終わったのは約12時間20分後でした。
今回/dev/sdkをRAIDに追加しちゃったけど、再起動してずれてRAID構成崩れないかが気になるところ。
今回はかなり予定外でしたが、色々と勉強になりました。
- 日曜の朝に判明したのは、週一回のmdadmによる全セクタチェックが入ること。
- RAIDカードを使ってRAIDを組んでいなくても、RAIDカードが書き込みエラーを検知してDiskごと切り離していた模様。
- DISKの切り離しと、復旧は電源つけたままで行えたこと。
- よって、DISKは取り外しし易い場所に設置するべきだと思ったこと。
- 冗長性計算も踏まえてRAID5を組んだはずだが、RAID5は障害中、結構ドキドキすること。
- よって、今後はSpareDiskを用意するか、やはりRAID6の方が精神的にも良いと思ったこと。
- そして、きちんと監視出来る仕組みを整えたほうが良いと思ったこと。
- 監視できていれば、Beepは絶対止めたほうが良いと思ったこと。
今後色々対応していきたいと考えています。