由于以下原因,您可能需要替换根池中的磁盘:
根池太小,您想使用较大的磁盘替换它
根池磁盘发生故障。在非冗余池中,如果磁盘发生故障导致系统无法引导,则需要在替换根池磁盘前从备用介质(如 CD 或网络)进行引导。
如果使用 zpool replace 命令替换根池磁盘中的磁盘,需要手动应用引导块。
在镜像根池配置下,可以尝试替换磁盘,而不一定要从备用介质引导。可以使用 zpool replace 命令替换故障磁盘,如果有额外的磁盘,则可使用 zpool attach 命令。有关附加额外磁盘和分离根池磁盘的示例,请参见以下步骤。
具有 SATA 磁盘的系统要求您在尝试通过 zpool replace 操作替换故障磁盘之前使磁盘脱机并取消其配置。例如:
# zpool offline rpool c1t0d0 # cfgadm -c unconfigure c1::dsk/c1t0d0 <Physically remove failed disk c1t0d0> <Physically insert replacement disk c1t0d0> # cfgadm -c configure c1::dsk/c1t0d0 # zpool online rpool c1t0d0 # zpool replace rpool c1t0d0 # zpool status rpool <Let disk resilver before installing the boot blocks> x86# bootadm install-bootloader
对于一些硬件,插入替换磁盘后不必使其联机并进行配置。
例如:
# zpool attach rpool c2t0d0 c2t1d0 Make sure to wait until resilver is done before rebooting.
正确的磁盘标签和引导块将被自动应用。
例如:
# zpool status rpool pool: rpool state: ONLINE scan: resilvered 11.6G in 0h5m with 0 errors on Fri Jul 20 12:06:07 2012 config: NAME STATE READ WRITE CKSUM rpool ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 c2t0d0 ONLINE 0 0 0 c2t1d0 ONLINE 0 0 0 errors: No known data errors
例如:
# zpool detach rpool c2t0d0
确定当前的 rpool 池大小:
# zpool list rpool NAME SIZE ALLOC FREE CAP DEDUP HEALTH ALTROOT rpool 29.8G 152K 29.7G 0% 1.00x ONLINE -
# zpool set autoexpand=on rpool
查看扩展后的 rpool 池大小:
# zpool list rpool NAME SIZE ALLOC FREE CAP DEDUP HEALTH ALTROOT rpool 279G 146K 279G 0% 1.00x ONLINE -
重新配置系统 BIOS。