【FreeNAS】RAIDZ로 Disk 교환을 한다

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에서 확인



처음에는 경고를 알지 못했지만 두 번째 경고로 HDD 문제를 확인합니다.
FreeNAS상의 UI에서는 아래와 같이 보인다. 우선 경고가 나온다.
아직 오류가 없기 때문에 괜찮습니다. 반드시 아직 갈 수 있다.
정말 좋지 않으면 FreeNAS가 자동으로 HDD를 분리 할 것.



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)에 디스크 포함



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 생활을 보낼 수 있을 것 같습니다.

좋은 웹페이지 즐겨찾기