ZFS SATAディスク交換例 - atacontrol編
Posted on 2012/04/26(Thu) 20:51 in technical
1TB*5台で構成されているRAIDZの空き容量が不足しているので、全部2TBに交換してオンラインマイグレーションする。
その一部ログを単に貼り付けるだけですよ、っと。
現在の接続状況
# atacontrol list
ATA channel 0:
Master: no device present
Slave: no device present
ATA channel 2:
Master: ad4 SATA revision 2.x
Slave: no device present
ATA channel 3:
Master: ad6 SATA revision 2.x
Slave: no device present
ATA channel 4:
Master: ad8 SATA revision 2.x
Slave: no device present
ATA channel 5:
Master: ad10 SATA revision 2.x
Slave: no device present
ATA channel 6:
Master: ad12 SATA revision 2.x
Slave: no device present
ATA channel 7:
Master: ad14 SATA revision 2.x
Slave: no device present
# zpool status lib_01
pool: lib_01
state: ONLINE
scrub: none requested
config:
NAME STATE READ WRITE CKSUM
lib_01 ONLINE 0 0 0
raidz1 ONLINE 0 0 0
ad10 ONLINE 0 0 0
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
対象をad10(ATA Channel 5)に決定。
まずオンラインで外す。
# atacontrol detach ata5
# atacontrol list
ATA channel 0:
Master: no device present
Slave: no device present
ATA channel 2:
Master: ad4 SATA revision 2.x
Slave: no device present
ATA channel 3:
Master: ad6 SATA revision 2.x
Slave: no device present
ATA channel 4:
Master: ad8 SATA revision 2.x
Slave: no device present
ATA channel 5:
Master: no device present
Slave: no device present
ATA channel 6:
Master: ad12 SATA revision 2.x
Slave: no device present
ATA channel 7:
Master: ad14 SATA revision 2.x
Slave: no device present
# zpool status lib_01
pool: lib_01
state: DEGRADED
scrub: none requested
config:
NAME STATE READ WRITE CKSUM
lib_01 DEGRADED 0 0 0
raidz1 DEGRADED 0 0 0
ad10 REMOVED 0 0 0
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
無事に外れたので、物理作業。
ここは特に写真も何も無いんだけど、1分ほど待機して回転が落ち着くのを待ってエンクロージャから引き抜く。
ケージにHDDをセット。
同じ位置にHDDを挿し直して再度コンソール。
# atacontrol list
ATA channel 0:
Master: no device present
Slave: no device present
ATA channel 2:
Master: ad4 SATA revision 2.x
Slave: no device present
ATA channel 3:
Master: ad6 SATA revision 2.x
Slave: no device present
ATA channel 4:
Master: ad8 SATA revision 2.x
Slave: no device present
ATA channel 5:
Master: no device present
Slave: no device present
ATA channel 6:
Master: ad12 SATA revision 2.x
Slave: no device present
ATA channel 7:
Master: ad14 SATA revision 2.x
Slave: no device present
# atacontrol attach ata5
Master: ad10 SATA revision 2.x
Slave: no device present
# atacontrol list
ATA channel 0:
Master: no device present
Slave: no device present
ATA channel 2:
Master: ad4 SATA revision 2.x
Slave: no device present
ATA channel 3:
Master: ad6 SATA revision 2.x
Slave: no device present
ATA channel 4:
Master: ad8 SATA revision 2.x
Slave: no device present
ATA channel 5:
Master: ad10 SATA revision 2.x
Slave: no device present
ATA channel 6:
Master: ad12 SATA revision 2.x
Slave: no device present
ATA channel 7:
Master: ad14 SATA revision 2.x
Slave: no device present
挿し直して認識されることを確認。
この段階だと、まだzpoolは復帰を確認していない。
# zpool status lib_01
pool: lib_01
state: DEGRADED
scrub: none requested
config:
NAME STATE READ WRITE CKSUM
lib_01 DEGRADED 0 0 0
raidz1 DEGRADED 0 0 0
ad10 REMOVED 0 0 0
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
zpoolのreplaceを実施。
コマンド打ってから数秒待つ。
# zpool replace lib_01 ad10
# 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, 869h49m to go
config:
NAME STATE READ WRITE CKSUM
lib_01 DEGRADED 0 0 0
raidz1 DEGRADED 0 0 0
replacing DEGRADED 0 0 0
ad10/old REMOVED 0 0 0
ad10 ONLINE 0 0 0 4.31M 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
後は終了を待つ。
zfs snapshotを取得すると中断されるので、crontabから該当するスクリプトを外しておく。
問題は同じ事をあと3回もやらなければならないことだ...。