让我们讨论 ZFS 下磁盘故障的 3 种不同情况。
驱动器离线又上线。
驱动器实际发生故障。
具有相同目标编号的新驱动器就位。驱动器实际发生故障。
具有不同目标编号的新驱动器就位。
rootpool下的磁盘故障
更换镜像 rootpool 磁盘的唯一变化是安装 bootblk。
同步完成后安装bootblk。
对于基于 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/c1t0d0s0
更多: zhilu jiaocheng
驱动器实际上失败了。具有不同目标编号的新驱动器就位。
使用 cfgadm 或者 luxadm 命令移除旧驱动器。
(根据磁盘类型[SAS/SCSI/光纤通道],移除磁盘的方法可能略有不同)。
请参阅以下帖子以删除故障磁盘:
如何使用 luxadm 和 cfgadm 删除故障磁盘
用新磁盘名称替换故障磁盘:
# zpool replace geekpool c1t21d0 c1t54d0
云端硬盘脱机并联机
可能会出现驱动器脱机和联机并且没有实际硬件故障的情况。
我们将在格式和 /var/adm/messages 中看到脱机状态。
12. c1t21d0 [drive not available] /pci@1f,0/pci@1/pci@3/SUNW,qlc@5/fp@0,0/ssd@w22023020370705f1,0
如果我们执行 zpool status,我们将看到降级的池和不可用的磁盘。
# zpool status -v geekpool pool: geekpool state: DEGRADED status: One or more devices could not be opened. Sufficient replicas exist for the pool to continue functioning in a degraded state. action: Attach the missing device and online it using 'zpool online'. scrub: resilver completed with 0 errors on Tue Dec 29 13:05:45 2013 config: NAME STATE READ WRITE CKSUM geekpool DEGRADED 0 0 0 mirror DEGRADED 0 0 0 c1t12d0s1 ONLINE 0 0 0 c3t21d0s1 UNAVAIL 0 29 0 cannot open
有两种方法可以解决此类故障:
方法一
在format命令验证驱动器在线后,将zfs池中的磁盘置于在线状态
# zpool online geekpool c3t54d0s1
为确保数据未损坏,请使用 zfs 清理检查完整性:
# zpool scrub geekpool
方法二
驱动上线后,导出导入池:
# zpool export geekpool # zpool import -f geekpool
再次确保完整性,在游泳池上擦洗:
# zpool scrub geekpool
驱动器实际上失败了。具有相同目标编号的新驱动器就位。
使用 cfgadm 或者 luxadm 命令移除旧驱动器。
(根据磁盘类型[SAS/SCSI/光纤通道],移除磁盘的方法可能略有不同)。
请参阅以下帖子以删除故障磁盘:
如何使用 luxadm 和 cfgadm 删除故障磁盘
将故障磁盘替换为原始名称
# zpool replace geekpool c1t21d0
日期:2020-09-17 00:15:12 来源:oir作者:oir