ZFS SATAディスク交換例 – camcontrol使えない編
Posted on 2012/05/02(Wed) 23:05 in technical
1TB*5台で構成されているRAIDZの空き容量が不足しているので、全部2TBに交換してオンラインマイグレーションする。
通報
zpoolのオンラインマイグレーションは、
- zpoolのautoexpandプロパティを使用する
- zpool online -e を使用する
の2パターンがあるが、FreeBSD 8.2(zpool v15)以前では使用出来ず再起動したので、実際は「オンラインマイグレーションする予定でした。」が正しい。
その一部ログを単に貼り付けるだけですよ、っと。
現在の接続状況
# camcontrol devlist -v
scbus0 on mpt0 bus 0:
<ATA WDC WD10EADS-00L 1A01> at scbus0 target 0 lun 0 (da0,pass0)
<ATA ST2000DL003-9VT1 CC3C> at scbus0 target 1 lun 0 (da1,pass1)
<ATA Hitachi HDS5C302 A580> at scbus0 target 2 lun 0 (da2,pass2)
<ATA Hitachi HDS72202 A28A> at scbus0 target 3 lun 0 (da3,pass3)
<> at scbus0 target -1 lun -1 ()
scbus1 on mpt0 bus 1:
<> at scbus1 target -1 lun -1 ()
scbus-1 on xpt0 bus 0:
<> at scbus-1 target -1 lun -1 (xpt0)
# zpool status lib_01
pool: lib_01
state: ONLINE
scrub: resilver completed after 13h42m with 0 errors on Fri Apr 27 10:13:08 2012
config:
NAME STATE READ WRITE CKSUM
lib_01 ONLINE 0 0 0
raidz1 ONLINE 0 0 0
ad10 ONLINE 0 0 0 900G resilvered
ad8 ONLINE 0 0 0
ad6 ONLINE 0 0 0
da0 ONLINE 0 0 0
ad12 ONLINE 0 0 0
errors: No known data errors
対象をda0(scbus0 target 0 lun 0)に決定。
通常、camcontrolでdeviceを外す場合はejectを使用するが、今回はデバイスがejectを受け付けない。
# camcontrol eject da0 Error received from stop unit command
今回は、zpool offlineでzpoolから切り離した後、camcontrol stopでディスクの回転を止めて、引っこ抜くことにする。
# zpool offline lib_01 da0
# zpool status lib_01
pool: lib_01
state: DEGRADED
status: One or more devices has been taken offline by the administrator.
Sufficient replicas exist for the pool to continue functioning in a
degraded state.
action: Online the device using 'zpool online' or replace the device with
'zpool replace'.
scrub: resilver completed after 13h42m with 0 errors on Fri Apr 27 10:13:08 2012
config:
NAME STATE READ WRITE CKSUM
lib_01 DEGRADED 0 0 0
raidz1 DEGRADED 0 0 0
ad10 ONLINE 0 0 0 900G resilvered
ad8 ONLINE 0 0 0
ad6 ONLINE 0 0 0
da0 OFFLINE 0 0 0
ad12 ONLINE 0 0 0
errors: No known data errors
# camcontrol stop da0
Unit stopped successfully
物理作業。
単純に引っこ抜く。
一応引っこ抜かれる。
# camcontrol devilst <ATA ST2000DL003-9VT1 CC3C> at scbus0 target 1 lun 0 (da1,pass1) <ATA Hitachi HDS5C302 A580> at scbus0 target 2 lun 0 (da2,pass2) <ATA Hitachi HDS72202 A28A> at scbus0 target 3 lun 0 (da3,pass3)
同じ位置にHDDを挿し直して、スキャン。
# camcontrol rescan all Re-scan of bus 0 was successful Re-scan of bus 1 was successful # camcontrol devlist <ATA ST2000DL003-9VT1 CC3C> at scbus0 target 1 lun 0 (da1,pass1) <ATA Hitachi HDS5C302 A580> at scbus0 target 2 lun 0 (da2,pass2) <ATA Hitachi HDS72202 A28A> at scbus0 target 3 lun 0 (da3,pass3) <ATA Hitachi HDS5C302 A800> at scbus0 target 4 lun 0 (pass0,da0)
挿し直して認識されることを確認。
後はいつも通り。
# zpool list status lib_01
pool: lib_01
state: DEGRADED
status: One or more devices has been taken offline by the administrator.
Sufficient replicas exist for the pool to continue functioning in a
degraded state.
action: Online the device using 'zpool online' or replace the device with
'zpool replace'.
scrub: resilver completed after 13h42m with 0 errors on Fri Apr 27 10:13:08 2012
config:
NAME STATE READ WRITE CKSUM
lib_01 DEGRADED 0 0 0
raidz1 DEGRADED 0 0 0
ad10 ONLINE 0 0 0 900G resilvered
ad8 ONLINE 0 0 0
ad6 ONLINE 0 0 0
da0 OFFLINE 0 0 0
ad12 ONLINE 0 0 0
errors: No known data errors
# zpool replace lib_01 da0
# zpool status lib_01
pool: lib_01
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.
scrub: resilver in progress for 0h0m, 0.00% done, 664h8m to go
config:
NAME STATE READ WRITE CKSUM
lib_01 DEGRADED 0 0 0
raidz1 DEGRADED 0 0 0
ad10 ONLINE 0 0 0
ad8 ONLINE 0 0 0
ad6 ONLINE 0 0 0
replacing DEGRADED 0 0 0
da0/old OFFLINE 0 0 0
da0 ONLINE 0 0 0 5.35M resilvered
ad12 ONLINE 0 0 0
errors: No known data errors
終了を待って、おしまい。