LoginSignup
12

More than 5 years have passed since last update.

【FreeNAS】RAIDZでDisk交換をする

Posted at

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生活が送れそうです。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12