FreeNAS

FreeNASはNAS構築に特化したUNIXのディストリビューションです。FreeBSDベースで作られており、派生として、NAs4FreeやLinuxベースのOpen media vaultが存在しています。

RAID-Z

RAID0,1,5...という区分の中ではRAID5に相当する。自宅のNASはHDDが3台のRAID-Zで運用されている。そのため、HDD1本が壊れても動作し続けるくらいの耐障害性がある。
今回このRAID-Zを構成しているHDDのうち1本がおかしいということで、入れ替え作業をメモメモ

FreeNAS上での確認

最初はアラートに気づいていなかったけれど、2回目のアラートでHDDのトラブルを確認
FreeNAS上のUIからは下記のように見える。とりあえず警告が出てる。
まだエラーになっていないから大丈夫。きっとまだいける。
本当にダメになるとFreeNASが自動的にHDDを切り離すはず。

スクリーンショット 2017-06-08 20.57.30.png

zpool statusで確認

まだ切り離しがされていないこともあり、基本的にステータスは問題ないっぽい


[root@freenas] ~# zpool status
  pool: RaidZStorage
 state: ONLINE
  scan: scrub repaired 0 in 14h25m with 0 errors on Sun May  7 14:25:35 2017
config:

    NAME                                            STATE     READ WRITE CKSUM
    RaidZStorage                                    ONLINE       0     0     0
      raidz1-0                                      ONLINE       0     0     0
        gptid/86502484-7ef4-11e4-ad6c-38eaa7a93732  ONLINE       0     0     0
        gptid/8738b5da-7ef4-11e4-ad6c-38eaa7a93732  ONLINE       0     0     0
        gptid/880cafb4-7ef4-11e4-ad6c-38eaa7a93732  ONLINE       0     0     0

smartctlで確認

今回対象となっているDiskは/dev/ada2mなので、ada2の情報をsmartctlで確認する。
197,198の最後の値がじゃないと、基本的に動いてはいるけど、いつ壊れてもおかしくないよって感じ。書き込みできない不良セクタってやつ。
shell-session
smartctl -a /dev/ada2
~略~
197 Current_Pending_Sector 0x0012 100 100 000 Old_age Always - 120
198 Offline_Uncorrectable 0x0010 100 100 000 Old_age Offline - 120
~略~

ちなみに正常だと思われる/dev/ada0についてはこんな感じ。

smartctl -a /dev/ada2
~略~
197 Current_Pending_Sector  0x0032   200   200   000    Old_age   Always       -       0
198 Offline_Uncorrectable   0x0030   200   200   000    Old_age   Offline      -       0
~略~

交換するHDDの確認

NASに使ってるHP microserver(N54L)はHDDランプがないので、どのDiskが交換対象かはパット見わからない。そこでsmartctlの結果をメモした上で交換対象のDiskを特定する。とりあえずこれっぽい。

=== START OF INFORMATION SECTION ===
Model Family:     Seagate Barracuda 7200.14 (AF)
Device Model:     ST2000DM001-1CH164
Serial Number:    Z1E4BQRA
LU WWN Device Id: 5 000c50 050aef61b
Firmware Version: CC44
User Capacity:    2,000,398,934,016 bytes [2.00 TB]
Sector Sizes:     512 bytes logical, 4096 bytes physical
Rotation Rate:    7200 rpm
Form Factor:      3.5 inches
Device is:        In smartctl database [for details use: -P show]
ATA Version is:   ATA8-ACS T13/1699-D revision 4
SATA Version is:  SATA 3.0, 6.0 Gb/s (current: 3.0 Gb/s)
Local Time is:    Thu Jun  8 21:33:41 2017 JST
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

念のために正常なDiskのシリアルも確認

Serial Number:    WD-WMC4N0F119Z5 (ada0)
Serial Number:    WD-WMC4N0F05M3S (ada1)

パーティション情報の取得

念のためパーティション情報も取得しておく

[root@freenas] ~# gpart show ada2
=>        34  3907029101  ada2  GPT  (1.8T)
          34          94        - free -  (47K)
         128     4194304     1  freebsd-swap  (2.0G)
     4194432  3902834696     2  freebsd-zfs  (1.8T)
  3907029128           7        - free -  (3.5K)

FreeNASのシャットダウン

各種クライアントからのマウントをやめた上で


[root@freenas] ~# shutdown -p now
Shutdown NOW!
shutdown: [pid 96234]

HDD交換後

zool statusで確認

自動でRAIDの再構築は始まらないので、下記のような表示でDEGRADEDになっているはず。

[root@freenas] ~# zpool status
  pool: RaidZStorage
 state: DEGRADED
status: One or more devices could not be opened.  Sufficient replicas exist for
    the pool to continue functioning in a degraded state.
action: Attach the missing device and online it using 'zpool online'.
   see: http://illumos.org/msg/ZFS-8000-2Q
  scan: scrub repaired 0 in 14h25m with 0 errors on Sun May  7 14:25:35 2017
config:

    NAME                                            STATE     READ WRITE CKSUM
    RaidZStorage                                    DEGRADED     0     0     0
      raidz1-0                                      DEGRADED     0     0     0
        12153346589594475547                        UNAVAIL      0     0     0  was /dev/gptid/86502484-7ef4-11e4-ad6c-38eaa7a93732
        gptid/8738b5da-7ef4-11e4-ad6c-38eaa7a93732  ONLINE       0     0     0
        gptid/880cafb4-7ef4-11e4-ad6c-38eaa7a93732  ONLINE       0     0     0

パーティションの作成

今回はDiskを3TBに変更しました。1TB無駄になるけど、将来的に3TB構成にするには徐々に入れ替えるしかない

[root@freenas] ~# gpart show ada2
gpart: No such geom: ada2.
[root@freenas] ~# gpart create -s gpt ada2
ada2 created
[root@freenas] ~# gpart show ada2
=>        34  5860533101  ada2  GPT  (2.7T)
          34  5860533101        - free -  (2.7T)

先程のパーティション情報をもとにパーティションを作成していく


[root@freenas] ~# gpart add -i 1 -t freebsd-swap -b 128 -s 4194304 ada2
ada2p1 added
[root@freenas] ~# gpart show ada2
=>        34  5860533101  ada2  GPT  (2.7T)
          34          94        - free -  (47K)
         128     4194304     1  freebsd-swap  (2.0G)
     4194432  5856338703        - free -  (2.7T)
[root@freenas] ~# gpart add -i 2 -t freebsd-zfs ada2
ada2p2 added
[root@freenas] ~# gpart show ada2
=>        34  5860533101  ada2  GPT  (2.7T)
          34          94        - free -  (47K)
         128     4194304     1  freebsd-swap  (2.0G)
     4194432  5856338696     2  freebsd-zfs  (2.7T)
  5860533128           7        - free -  (3.5K)

ZFS(zpool)にDiskを組み込む

freebsd-zfs の rawuuid を確認する。

2. Name: ada2p2
   Mediasize: 2998445412352 (2.7T)
   Sectorsize: 512
   Stripesize: 4096
   Stripeoffset: 0
   Mode: r0w0e0
   rawuuid: bd86d5e8-4c4b-11e7-83b1-38eaa7a93732
   rawtype: 516e7cba-6ecf-11d6-8ff8-00022d09712b
   label: (null)
   length: 2998445412352
   offset: 2147549184
   type: freebsd-zfs
   index: 2
   end: 5860533127
   start: 4194432

zpool statsuでOFFLINEのDISK IDを確認する

[root@freenas] ~# zpool status
  pool: RaidZStorage
 state: DEGRADED
status: One or more devices could not be opened.  Sufficient replicas exist for
    the pool to continue functioning in a degraded state.
action: Attach the missing device and online it using 'zpool online'.
   see: http://illumos.org/msg/ZFS-8000-2Q
  scan: scrub repaired 0 in 14h25m with 0 errors on Sun May  7 14:25:35 2017
config:

    NAME                                            STATE     READ WRITE CKSUM
    RaidZStorage                                    DEGRADED     0     0     0
      raidz1-0                                      DEGRADED     0     0     0
        12153346589594475547   ←これ                 UNAVAIL      0     0     0  was /dev/gptid/86502484-7ef4-11e4-ad6c-38eaa7a93732
        gptid/8738b5da-7ef4-11e4-ad6c-38eaa7a93732  ONLINE       0     0     0
        gptid/880cafb4-7ef4-11e4-ad6c-38eaa7a93732  ONLINE       0     0     0

replaceする

[root@freenas] ~# zpool replace RaidZStorage 12153346589594475547 gptid/bd86d5e8-4c4b-11e7-83b1-38eaa7a93732

確認

replace後はRAIDの再構築が始まる。

[root@freenas] ~# zpool status
  pool: RaidZStorage
 state: DEGRADED
status: One or more devices is currently being resilvered.  The pool will
    continue to function, possibly in a degraded state.
action: Wait for the resilver to complete.
  scan: resilver in progress since Thu Jun  8 22:15:56 2017
        4.00G scanned out of 3.49T at 15.5M/s, 65h42m to go
        1.33G resilvered, 0.11% done
config:

    NAME                                              STATE     READ WRITE CKSUM
    RaidZStorage                                      DEGRADED     0     0     0
      raidz1-0                                        DEGRADED     0     0     0
        replacing-0                                   UNAVAIL      0     0     0
          12153346589594475547                        UNAVAIL      0     0     0  was /dev/gptid/86502484-7ef4-11e4-ad6c-38eaa7a93732
          gptid/bd86d5e8-4c4b-11e7-83b1-38eaa7a93732  ONLINE       0     0     0  (resilvering)
        gptid/8738b5da-7ef4-11e4-ad6c-38eaa7a93732    ONLINE       0     0     0
        gptid/880cafb4-7ef4-11e4-ad6c-38eaa7a93732    ONLINE       0     0     0

結構かかりそう...

その後...

どれくらいかかるか不明でしたが、数時間後にはRAIDの再構築も終わって、3本のDiskがONLINE状態になりました。

[root@freenas] ~# zpool status
  pool: RaidZStorage
 state: ONLINE
  scan: resilvered 1.16T in 11h50m with 0 errors on Fri Jun  9 10:06:53 2017
config:

    NAME                                            STATE     READ WRITE CKSUM
    RaidZStorage                                    ONLINE       0     0     0
      raidz1-0                                      ONLINE       0     0     0
        gptid/bd86d5e8-4c4b-11e7-83b1-38eaa7a93732  ONLINE       0     0     0
        gptid/8738b5da-7ef4-11e4-ad6c-38eaa7a93732  ONLINE       0     0     0
        gptid/880cafb4-7ef4-11e4-ad6c-38eaa7a93732  ONLINE       0     0     0

errors: No known data errors

これでまたしばらく安心なNAS生活が送れそうです。