由于以下原因,您可能需要替换根池中的磁盘:
根池太小,您想使用较大的磁盘替换较小的磁盘。
根池磁盘发生故障。在非冗余池中,如果磁盘发生故障导致系统无法引导,则必须在替换根池磁盘前从备用介质(如 CD 或网络)进行引导。
在镜像根池配置中,您可以尝试替换磁盘而不必从备用介质引导。可以使用 zpool replace 命令替换发生故障的磁盘。或者,如果有额外的磁盘,可以使用 zpool attach 命令。有关附加额外磁盘和分离根池磁盘的示例,请参见本节中的过程。
有些硬件要求您在尝试通过 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 # zpool replace rpool c1t0d0s0 # zpool online rpool c1t0d0s0 # zpool status rpool <Let disk resilver before installing the boot blocks> SPARC# installboot -F zfs /usr/platform/`uname -i`/lib/fs/zfs/bootblk /dev/rdsk/c1t0d0s0 x86# installgrub /boot/grub/stage1 /boot/grub/stage2 /dev/rdsk/c1t9d0s0 |
对于一些硬件,插入替代磁盘后不必使其联机并进行配置。
必须标识当前磁盘和新磁盘的引导设备路径名,以便从替换磁盘测试引导,而且如有必要,在替换磁盘发生故障时也可手动从现有磁盘引导。在以下过程的示例中,当前根池磁盘 (c1t10d0s0) 的路径名为:
/pci@8,700000/pci@3/scsi@5/sd@a,0 |
替换引导磁盘 c1t9d0s0 的路径名为:
/pci@8,700000/pci@3/scsi@5/sd@9,0 |
物理连接替换磁盘或新磁盘。
确认新磁盘具有 SMI 标签和分片 0。
有关对要用于根池的磁盘进行重新标记的信息,请参见以下站点:
http://www.solarisinternals.com/wiki/index.php/ZFS_Troubleshooting_Guide
将新磁盘连接到根池。
例如:
# zpool attach rpool c1t10d0s0 c1t9d0s0 |
确认根池状态。
例如:
# zpool status rpool pool: rpool state: ONLINE status: One or more devices is currently being resilvered. The pool will continue to function, possibly in a degraded state. action: Wait for the resilver to complete. scrub: resilver in progress, 25.47% done, 0h4m to go config: NAME STATE READ WRITE CKSUM rpool ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 c1t10d0s0 ONLINE 0 0 0 c1t9d0s0 ONLINE 0 0 0 errors: No known data errors |
完成重新同步后,将引导块应用到新磁盘。
使用类似以下的语法:
SPARC:
# installboot -F zfs /usr/platform/`uname -i`/lib/fs/zfs/bootblk /dev/rdsk/c1t9d0s0 |
x86:
# installgrub /boot/grub/stage1 /boot/grub/stage2 /dev/rdsk/c1t9d0s0 |
验证您是否可以从新磁盘引导。
例如,在基于 SPARC 的系统上,应使用类似以下的语法:
ok boot /pci@8,700000/pci@3/scsi@5/sd@9,0 |
如果系统从新磁盘引导,则分离旧磁盘。
例如:
# zpool detach rpool c1t10d0s0 |
通过使用 SPARC 引导 PROM 中的 eeprom 命令和 setenv 命令,将系统设置为从新磁盘自动引导,或重新配置 PC BIOS。