Oracle Solaris ZFS 管理指南

ZFS 设备替换增强功能

Oracle Solaris 10 9/10 发行版:在本 Solaris 发行版中,扩展底层设备时会提供系统事件或 sysevent。ZFS 已得到增强,可以识别这些事件,并根据扩展 LUN 的新大小调整存储池,具体取决于 autoexpand 属性的设置。可以使用 autoexpand 池属性决定在收到动态 LUN 扩展事件时是否启用或禁用自动池扩展功能。

通过这些功能可扩展 LUN,由此产生的池可以访问扩展空间,而不必导出和导入池或重新引导系统。

例如,对 tank 池启用自动 LUN 扩展功能。


# zpool set autoexpand=on tank

或者,可以在启用 autoexpand 属性的情况下创建池。


# zpool create -o autoexpand=on tank c1t13d0

autoexpand 属性的缺省设置为禁用,因此您可以决定是否要扩展 LUN。

使用 zpool online - e 命令也可以扩展 LUN。例如:


# zpool online -e tank c1t6d0

或者,在附加 LUN 或利用 zpool replace 功能使其变得可用之后,可以重置 autoexpand 属性。例如,下例利用一个 8-GB 磁盘 (c0t0d0) 创建了一个池。8-GB 磁盘被一个 16-GB 磁盘 (c1t13d0) 替换,但直到启用 autoexpand 属性之后,池大小才会扩展。


# zpool create pool c0t0d0
# zpool list
NAME   SIZE   ALLOC  FREE    CAP   HEALTH  ALTROOT
pool   8.44G  76.5K  8.44G     0%  ONLINE  -
# zpool replace pool c0t0d0 c1t13d0
# zpool list
NAME   SIZE   ALLOC  FREE    CAP   HEALTH  ALTROOT
pool   8.44G  91.5K  8.44G     0%  ONLINE  -
# zpool set autoexpand=on pool
# zpool list
NAME   SIZE   ALLOC  FREE    CAP   HEALTH  ALTROOT
pool   16.8G   91.5K  16.8G    0%  ONLINE  -

在不启用 autoexpand 属性的情况下扩展上例中的 LUN 的另一种方法是使用 zpool online - e 命令,即使该设备已经联机。例如:


# zpool create tank c0t0d0
# zpool list tank
NAME   SIZE   ALLOC  FREE    CAP   HEALTH  ALTROOT
tank   8.44G  76.5K  8.44G     0%  ONLINE  -
# zpool replace tank c0t0d0 c1t13d0
# zpool list tank
NAME   SIZE   ALLOC  FREE    CAP   HEALTH  ALTROOT
tank   8.44G  91.5K  8.44G     0%  ONLINE  -
# zpool online -e tank c1t13d0
# zpool list tank
NAME   SIZE   ALLOC  FREE    CAP   HEALTH  ALTROOT
tank   16.8G    90K  16.8G     0%  ONLINE  -

本发行版的其它设备替换增强功能包括:

有关替换设备的更多信息,请参见替换存储池中的设备