fc2ブログ

我が家のストレージの 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 です。



HDD が届いた


2 日後に HDD が届きましたが、届くまではかなり心配でした。後 1 本 HDD が壊れたらこのストレージのデータはなくなってしまいます (まぁ主にバックアップ用途ですが…)。

復旧するまではまだ心配ですが、とりあえず先に進めそうで一安心。手順を考えます。

ストレージサーバーで使っている HP の MicroServer は HDD スロットが 4 本ありますので、1 ~ 3 番のスロットしか使っていません (故障したのは 1 番スロットで、OS は別の SATA ポートに繋いだ SSD にインストールしてます)。

HDD 交換でいくと、故障 HDD の取り外し → 購入した HDD の装着という手順となり、万一違うスロットの HDD を外してしまった場合はそこで試合終了です。

そこで、リスクをできるだけ減らすため、せっかく空いている 4 番ポートを活用することにしました。
以下の順番で作業を進めていきます。

  1. 4 番ポートに購入した HDD を装着
  2. Resilver 開始
  3. 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 をもう一本買って、スペアとして追加しておきたいところです。
Posted byざるそば

Comments 0

There are no comments yet.

Leave a reply