环境:
Windows 2012(母机) + HyperV + Ubuntu 16.4 LTS(虚拟机) + Open ZFS
4块2T存储盘,分配给虚拟机(SCSI接口),建立raid-z磁盘组。
另一块虚拟机系统盘,IDE接口。
现象:
磁盘正常,但是重启系统后,系统不会自动加载磁盘阵列。
ZPool Status显示没有任何磁盘阵列。
执行Zpool Import可以正常显示待载入的raid-z磁盘阵列。
手动载入后一切正常。
分析:
查看系统日志,cat /var/log/syslog | grep zfs
发现:
cannot import ‘*****’: one or more devices is currently unavailable
systemd[1]: zfs-import-cache.service: Main process exited, code=exited, status=1/FAILURE
systemd[1]: zfs-import-cache.service: Unit entered failed state.
仔细分析前后日志发现,zfs-import-cache.service这个命令负责Import ZFS磁盘组。但是这个指令执行时,某些SCSI磁盘(HyperV虚拟)尚未准备好,因为Kenel还没完成载入这些设备。
解决办法:
删除/etc/zfs/zpool.cache文件,重启,问题解决。
硬盘硬件问题解决:
–20171029 磁盘硬件问题终于发生了,开始现象是zfs共享目录读写变得特别慢,仅有2-3M每秒,使用hdtune查看硬盘健康状态,发现有一块硬盘出现坏道黄色告警,测速读取才不到1m每秒。
解决办法:
换块硬盘,用zpool replace命令替换原有硬盘。
换硬盘后,最好也删除/etc/zfs/zpool.cache文件,再重启两次,观察是否正常。
zfs磁盘Label不匹配:
如果换磁盘后,短时间内频繁再出现磁盘损坏,
显示degree降级运行,大概意思是什么Label不能识别,
但是使用fdisk -L查看磁盘正常,
那很有可能也是/etc/zfs/zpool.cache中缓存的磁盘ID紊乱造成的,
删除这个文件后重启,也许就能解决问题。
lion