由于以下原因,您可能需要替换根池中的磁盘:
根池太小,您想使用较大的磁盘替换它
根池磁盘发生故障。在非冗余池中,如果磁盘发生故障导致系统无法引导,则需要在替换根池磁盘前从备用介质(如 CD 或网络)进行引导。
如果使用 zpool replace 命令替换根池磁盘中的磁盘,需要手动应用引导块。
在镜像根池配置下,可以尝试替换磁盘,而不一定要从备用介质引导。可以使用 zpool replace 命令替换故障磁盘,如果有额外的磁盘,则可使用 zpool attach 命令。有关附加额外磁盘和分离根池磁盘的示例,请参见以下步骤。
具有 SATA 磁盘的系统要求您在尝试通过 zpool replace 操作替换故障磁盘之前使磁盘脱机并取消其配置。例如:
# zpool offline rpool c1t0d0s0 # cfgadm -c unconfigure c1::dsk/c1t0d0 <Physically remove failed disk c1t0d0> <Physically insert replacement disk c1t0d0> # cfgadm -c configure c1::dsk/c1t0d0 <Confirm that the new disk has an SMI label and a slice 0> # zpool replace rpool c1t0d0s0 # zpool online rpool c1t0d0s0 # zpool status rpool <Let disk resilver before installing the boot blocks> # bootadm install-bootloader
对于一些硬件,插入替换磁盘后不必使其联机并进行配置。
SPARC:确认替换(新)磁盘具有 SMI (VTOC) 标签和分片 0。有关为用作根池的磁盘重新设置标签的信息,请参见在 Oracle Solaris 11.2 中管理设备 中的如何为磁盘设置标签。
x86:确认该磁盘具有 fdisk 分区、SMI 磁盘标签和分片 0。如果您需要对磁盘重新分区,并创建分片 0,请参见在 Oracle Solaris 11.2 中管理设备 中的配置磁盘中有关标签和分区的部分。
例如:
# zpool attach rpool c2t0d0s0 c2t1d0s0 Make sure to wait until resilver is done before rebooting.
正确的磁盘标签和引导块将被自动应用。
例如:
# zpool status rpool pool: rpool state: ONLINE scan: resilvered 11.7G in 0h5m with 0 errors on Fri Jul 20 13:45:37 2012 config: NAME STATE READ WRITE CKSUM rpool ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 c2t0d0s0 ONLINE 0 0 0 c2t1d0s0 ONLINE 0 0 0 errors: No known data errors
例如,在基于 SPARC 的系统上:
ok boot /pci@1f,700000/scsi@2/disk@1,0
标识当前磁盘和新磁盘的引导设备路径名,以便于您从替换磁盘测试引导,而且如有必要在替换磁盘发生故障时也可手动从现有磁盘引导。在以下示例中,当前的根池磁盘 (c2t0d0s0) 为:
/pci@1f,700000/scsi@2/disk@0,0
在以下示例中,替换引导磁盘为 (c2t1d0s0):
boot /pci@1f,700000/scsi@2/disk@1,0
例如:
# zpool detach rpool c2t0d0s0
确定当前的 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 -
SPARC:通过从引导 PROM 使用 eeprom 命令或 setenv 命令,将系统设置为自动从新磁盘引导。
x86:重新配置系统 BIOS。