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 - |
本发行版的其它设备替换增强功能包括:
在先前的发行版中,如果替换磁盘与现有磁盘稍有不同,ZFS 就无法替换或附加磁盘。在本发行版中,只要池未满,就可以用名义大小相同的新磁盘替换现有磁盘或附加新磁盘。
在本发行版中,扩展 LUN 无需重新引导系统或者导出并导入一个池。如上所述,可以启用 autoexpand 属性或者使用 zpool online - e 命令扩展 LUN 的大小。
有关替换设备的更多信息,请参见替换存储池中的设备。