可通过以下方式激活热备件:
手动替换-通过 zpool replace 命令用热备件替换存储池中的故障设备。
自动替换-检测到故障后,FMA 代理将检查池中是否有任何可用的热备件。如果有,将使用可用备件替换故障设备。
如果当前正在使用的热备件发生故障,FMA 代理将分离该备件,从而取消替换。然后,代理将尝试用另一个热备件(如果有)替换该设备。目前,由于 ZFS 诊断引擎仅在设备从系统中消失时才会产生故障信息,因此此功能受到限制。
如果将故障设备物理替换为活动备件,则可以使用 zpool detach 命令分离该备件,从而重新激活原设备。如果将 autoreplace 池属性设置为 on,则在插入新设备并完成联机操作后,该备件会自动分离并回到备件池。
通过 zpool replace 命令可以用热备件手动替换设备。请参见示例 4–8。
如果热备件可用,将自动替换故障设备。例如:
# zpool status -x
pool: zeepool
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://www.sun.com/msg/ZFS-8000-2Q
scrub: resilver completed after 0h0m with 0 errors on Mon Jan 11 10:20:35 2010
config:
NAME STATE READ WRITE CKSUM
zeepool DEGRADED 0 0 0
mirror-0 DEGRADED 0 0 0
c1t2d0 ONLINE 0 0 0
spare-1 DEGRADED 0 0 0
c2t1d0 UNAVAIL 0 0 0 cannot open
c2t3d0 ONLINE 0 0 0 88.5K resilvered
spares
c2t3d0 INUSE currently in use
errors: No known data errors
|
目前,取消激活热备件的方法有以下几种:
本例使用 zpool replace 命令将磁盘 c2t1d0 替换为热备件 c2t3d0。
# zpool replace zeepool c2t1d0 c2t3d0
# zpool status zeepool
pool: zeepool
state: ONLINE
scrub: resilver completed after 0h0m with 0 errors on Wed Jan 20 10:00:50 2010
config:
NAME STATE READ WRITE CKSUM
zeepool ONLINE 0 0 0
mirror-0 ONLINE 0 0 0
c1t2d0 ONLINE 0 0 0
spare-1 ONLINE 0 0 0
c2t1d0 ONLINE 0 0 0
c2t3d0 ONLINE 0 0 0 90K resilvered
spares
c2t3d0 INUSE currently in use
errors: No known data errors
|
然后分离磁盘 c2t1d0。
# zpool detach zeepool c2t1d0
# zpool status zeepool
pool: zeepool
state: ONLINE
scrub: resilver completed after 0h0m with 0 errors on Wed Jan 20 10:00:50 2010
config:
NAME STATE READ WRITE CKSUM
zeepool ONLINE 0 0 0
mirror-0 ONLINE 0 0 0
c1t2d0 ONLINE 0 0 0
c2t3d0 ONLINE 0 0 0 90K resilvered
errors: No known data errors
|
本例使用 zpool replace 命令物理替换磁盘 (c2t1d0) 并通知 ZFS。
# zpool replace zeepool c2t1d0
# zpool status zeepool
pool: zeepool
state: ONLINE
scrub: resilver completed after 0h0m with 0 errors on Wed Jan 20 10:08:44 2010
config:
NAME STATE READ WRITE CKSUM
zeepool ONLINE 0 0 0
mirror-0 ONLINE 0 0 0
c1t2d0 ONLINE 0 0 0
spare-1 ONLINE 0 0 0
c2t3d0 ONLINE 0 0 0 90K resilvered
c2t1d0 ONLINE 0 0 0
spares
c2t3d0 INUSE currently in use
errors: No known data errors
|
然后,您可以使用 zpool detach 命令使热备件回到备件池。例如:
# zpool detach zeepool c2t3d0
# zpool status zeepool
pool: zeepool
state: ONLINE
scrub: resilver completed with 0 errors on Wed Jan 20 10:08:44 2010
config:
NAME STATE READ WRITE CKSUM
zeepool ONLINE 0 0 0
mirror ONLINE 0 0 0
c1t2d0 ONLINE 0 0 0
c2t1d0 ONLINE 0 0 0
spares
c2t3d0 AVAIL
errors: No known data errors
|
如果想临时或永久性换入用于替换的热备件,以此替换故障磁盘,则应分离原(故障)磁盘。故障磁盘完成替换后,可以将其再添加到存储池用作备件。例如:
# zpool status zeepool
pool: zeepool
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://www.sun.com/msg/ZFS-8000-2Q
scrub: resilver in progress for 0h0m, 70.47% done, 0h0m to go
config:
NAME STATE READ WRITE CKSUM
zeepool DEGRADED 0 0 0
mirror-0 DEGRADED 0 0 0
c1t2d0 ONLINE 0 0 0
spare-1 DEGRADED 0 0 0
c2t1d0 UNAVAIL 0 0 0 cannot open
c2t3d0 ONLINE 0 0 0 70.5M resilvered
spares
c2t3d0 INUSE currently in use
errors: No known data errors
# zpool detach zeepool c2t1d0
# zpool status zeepool
pool: zeepool
state: ONLINE
scrub: resilver completed after 0h0m with 0 errors on Wed Jan 20 13:46:46 2010
config:
NAME STATE READ WRITE CKSUM
zeepool ONLINE 0 0 0
mirror-0 ONLINE 0 0 0
c1t2d0 ONLINE 0 0 0
c2t3d0 ONLINE 0 0 0 70.5M resilvered
errors: No known data errors
(Original failed disk c2t1d0 is physically replaced)
# zpool add zeepool spare c2t1d0
# zpool status zeepool
pool: zeepool
state: ONLINE
scrub: resilver completed after 0h0m with 0 errors on Wed Jan 20 13:48:46 2010
config:
NAME STATE READ WRITE CKSUM
zeepool ONLINE 0 0 0
mirror-0 ONLINE 0 0 0
c1t2d0 ONLINE 0 0 0
c2t3d0 ONLINE 0 0 0 70.5M resilvered
spares
c2t1d0 AVAIL
errors: No known data errors
|