我が家のストレージの HDD が壊れた話
我が家のストレージサーバーは、こちらにも書いていますが、いただきものの WD の 2.5TB の HDD x3 で RAID-Z で組んでいます (OS は Solaris 11)。
そのうち 1 本の HDD が故障したようで、ストレージが DEGRADE してしまいました。
そんな訳で復旧までの道のりを忘れないうちに書いておきます。
先に結論
先に結論というか思ったことを書いておくと、データを本当に大切にするなら、
- 同時に HDD 2 本の故障まで耐えられる RAID-Z2
もしくは
- RAID-Z で Hot Spare をつけておく
にしておかないと、復旧するまで割と不安でストレスがたまります。
いただきものというのもあるのですが、ほぼ同時にまとめて買った HDD (だと思う) し、使用期間が同じだとすると故障時期が一致してもおかしくありません。
ですので、複数 HDD や SSD でストレージを作るときは、RAID-Z + Hot Spare 1 本か、RAID-Z2 以上がいいと思います。
復旧までの道のり
まず状況を確認します。
$ zpool status -v tank pool: tank state: DEGRADED status: One or more devices are unavailable in response to persistent errors. Sufficient replicas exist for the pool to continue functioning in a degraded state. action: Determine if the device needs to be replaced, and clear the errors using 'zpool clear' or 'fmadm repaired', or replace the device with 'zpool replace'. scan: scrub repaired 0 in 3h30m with 0 errors on Mon Jul 24 05:22:15 2017 config: NAME STATE READ WRITE CKSUM tank DEGRADED 0 0 0 raidz1-0 DEGRADED 0 0 0 c1t0d0 UNAVAIL 0 135 0 c1t1d0 ONLINE 0 0 0 c1t2d0 ONLINE 0 0 0 device details: c1t0d0 UNAVAIL too many errors status: FMA has faulted this device. action: Run 'fmadm faulty' for more information. Clear the errors using 'fmadm repaired'. see: http://support.oracle.com/msg/ZFS-8000-FD for recovery errors: No known data errors
c1t0d0 が UNAVAIL になっています。この HDD を取り替えればよさそう。
cfgadm を見ると以下となっていました。
$ sudo cfgadm Ap_Id Type Receptacle Occupant Condition sata0/0 sata-port disconnected unconfigured failed sata0/1::dsk/c1t1d0 disk connected configured ok sata0/2::dsk/c1t2d0 disk connected configured ok sata0/3 sata-port empty unconfigured ok sata0/4 sata-port empty unconfigured ok sata0/5::dsk/c1t5d0 disk connected configured ok
sata0/0 が disconnected で failed になっています。このディスクが c1t0d0 だった訳ですね。
早速 Amazon で HDD を購入しようとしましたが、2.5TB の HDD はもはや売っていないので、将来を考えて 4TB の HDD を購入しました。
RAID-Z であることと価格メリットを考えて青ラベルの HDD です。
【Amazon.co.jp限定】WD HDD 内蔵ハードディスク 3.5インチ 4TB WD Blue WD40EZRZ/AFP2 SATA6Gb/s 5400rpm 2年6ヶ月保証 (FFP)
posted with amazlet at 17.09.24
Western Digital (2016-12-03)
売り上げランキング: 560
売り上げランキング: 560
HDD が届いた
2 日後に HDD が届きましたが、届くまではかなり心配でした。後 1 本 HDD が壊れたらこのストレージのデータはなくなってしまいます (まぁ主にバックアップ用途ですが…)。
復旧するまではまだ心配ですが、とりあえず先に進めそうで一安心。手順を考えます。
ストレージサーバーで使っている HP の MicroServer は HDD スロットが 4 本ありますので、1 ~ 3 番のスロットしか使っていません (故障したのは 1 番スロットで、OS は別の SATA ポートに繋いだ SSD にインストールしてます)。
HDD 交換でいくと、故障 HDD の取り外し → 購入した HDD の装着という手順となり、万一違うスロットの HDD を外してしまった場合はそこで試合終了です。
そこで、リスクをできるだけ減らすため、せっかく空いている 4 番ポートを活用することにしました。
以下の順番で作業を進めていきます。
- 4 番ポートに購入した HDD を装着
- Resilver 開始
- Resilver 完了後、故障した 1 番ポートの HDD を取り外し
作業開始
早速 HDD をマウンターに装着し、 4 番ポートに差し込みます。
/var/adm/message に以下のようなメッセージが流れます。
sata: [ID 801593 kern.warning] WARNING: /pci@0,0/pci103c,1609@11: SATA device detected at port 3 sata: [ID 663010 kern.info] /pci@0,0/pci103c,1609@11 : sata: [ID 761595 kern.info] SATA disk device at port 3 sata: [ID 846691 kern.info] model WDC WD40EZRZ-22GXCB0 sata: [ID 693010 kern.info] firmware 80.00A80 sata: [ID 163988 kern.info] serial number WD-************ sata: [ID 594940 kern.info] supported features: sata: [ID 981177 kern.info] 48-bit LBA, DMA, Native Command Queueing, SMART, SMART self-test sata: [ID 996592 kern.info] SATA Gen3 signaling speed (6.0Gbps) sata: [ID 349649 kern.info] Supported queue depth 32 sata: [ID 349649 kern.info] capacity = 7814037168 sectors
cfgadm を叩くと unconfigure になっているので configure します。
$ sudo cfgadm Ap_Id Type Receptacle Occupant Condition sata0/0 sata-port disconnected unconfigured failed sata0/1::dsk/c1t1d0 disk connected configured ok sata0/2::dsk/c1t2d0 disk connected configured ok sata0/3 disk connected unconfigured unknown sata0/4 sata-port empty unconfigured ok sata0/5::dsk/c1t5d0 disk connected configured ok $ sudo cfgadm -c configure sata0/3 $ sudo cfgadm Ap_Id Type Receptacle Occupant Condition sata0/0 sata-port disconnected unconfigured failed sata0/1::dsk/c1t1d0 disk connected configured ok sata0/2::dsk/c1t2d0 disk connected configured ok sata0/3::dsk/c1t3d0 disk connected configured ok sata0/4 sata-port empty unconfigured ok sata0/5::dsk/c1t5d0 disk connected configured ok
iostat コマンドでも見えるようになりました。
$ iostat -En
c1t3d0 Soft Errors: 0 Hard Errors: 0 Transport Errors: 0 Vendor: ATA Product: WDC WD40EZRZ-22G Revision: 0A80 Serial No: WD-************ Size: 4000.79GB <4000787030016 bytes> Media Error: 0 Device Not Ready: 0 No Device: 0 Recoverable: 0 Illegal Request: 0 Predictive Failure Analysis: 0 Non-Aligned Writes: 0
ではいよいよ Resilver を開始します。
今回は、プール tank の故障した c1t0d0 を c1t3d0 に replace すれば OK なので、
$ sudo zpool replace tank c1t0d0 c1t3d0
を叩いて、完了まで待てば OK です。大体 3 時間くらいで終わっていました。
$ zpool status -v tank pool: tank state: ONLINE scan: resilvered 448G in 2h57m with 0 errors on Wed Sep 13 02:59:54 2017 config: NAME STATE READ WRITE CKSUM tank ONLINE 0 0 0 raidz1-0 ONLINE 0 0 0 c1t3d0 ONLINE 0 0 0 c1t1d0 ONLINE 0 0 0 c1t2d0 ONLINE 0 0 0 errors: No known data errors
いずれ HDD をもう一本買って、スペアとして追加しておきたいところです。
【Amazon.co.jp限定】WD HDD 内蔵ハードディスク 3.5インチ 4TB WD Blue WD40EZRZ/AFP2 SATA6Gb/s 5400rpm 2年6ヶ月保証 (FFP)
posted with amazlet at 17.09.24
Western Digital (2016-12-03)
売り上げランキング: 560
売り上げランキング: 560