![ZFS 报告(在 FreeBSD 和 Linux 上通过 ZoL)](https://linux22.com/image/616058/ZFS%20%E6%8A%A5%E5%91%8A%EF%BC%88%E5%9C%A8%20FreeBSD%20%E5%92%8C%20Linux%20%E4%B8%8A%E9%80%9A%E8%BF%87%20ZoL%EF%BC%89.png)
作为一名长期的 mdadm 用户,我刚刚遇到了磁盘错误,并记得我为 mdadm 配置了磁盘错误的自动邮件报告。
因此我只需在里面插入我的邮件地址/etc/mdadm/mdadm.conf
MAILADDR [email protected]
但我在 FreeBSD 上确实错过了这一点。而且由于我的 ZFS RAID6 已经运行了半年多,所以我想如果磁盘出现故障会发生什么?
我从未配置过任何外部邮件地址。有没有简单的方法来实现和测试一下?
就像在 mdadm 上一样:
sudo mdadm –monitor –scan –test
那么我如何使用 ZoL(Linux 上的 ZFS)在 Linux 上执行此操作?
编辑:抱歉,我的意思是自动报告。没有安排。
我知道我可以编写一个脚本并每分钟解析一次 zpool status -X。但我认为这不是解决报告问题的一种非常优雅的方法。最好在磁盘故障时立即收到通知(如 mdadm)
编辑[2]:谢谢你的建议,但是我遇到了一些脚本问题,有人能帮我解决 /bin/sh 中的 for 循环问题吗 ->粘贴箱
编辑[3]:我有 for 循环问题。:) (更新于粘贴箱)
对我的脚本还有其他建议吗?
答案1
运行检查输出的常规脚本 (cron) zpool status -x
。长期来看,Linux 上的 ZFS 项目致力于此以事件守护进程的形式。Solaris 衍生的系统可以访问故障管理架构。
就自动化报告而言,即使是像NexentaStor使用定期检查。这没有什么错。
像这样:
[root@mdmarra ~]# zpool status -x
all pools are healthy
与以下可怕的事情相比:
[root@mdmarra ~]# zpool status -x
pool: vol1
state: UNAVAIL
status: One or more devices are faulted in response to IO failures.
action: Make sure the affected devices are connected, then run 'zpool clear'.
see: http://www.sun.com/msg/ZFS-8000-JQ
scan: scrub repaired 0 in 1h15m with 0 errors on Sun Jul 28 21:15:10 2013
config:
NAME STATE READ WRITE CKSUM
vol1 UNAVAIL 0 0 0 insufficient replicas
mirror-0 DEGRADED 0 0 0
c1t0d0 UNAVAIL 0 0 0 cannot open
c2t0d0 ONLINE 0 0 0
mirror-1 DEGRADED 0 0 0
c1t1d0 UNAVAIL 0 0 0 cannot open
c2t1d0 ONLINE 0 0 0
mirror-2 DEGRADED 0 0 0
spare-0 UNAVAIL 0 0 0 insufficient replicas
c1t2d0 UNAVAIL 0 0 0 cannot open
c2t8d0 UNAVAIL 0 0 0 cannot open
c2t2d0 ONLINE 0 0 0
mirror-3 DEGRADED 0 0 0
c1t3d0 UNAVAIL 0 0 0 cannot open
c2t3d0 ONLINE 0 0 0
mirror-4 DEGRADED 0 0 0
c1t4d0 UNAVAIL 0 0 0 cannot open
c2t4d0 ONLINE 0 0 0
mirror-5 UNAVAIL 0 0 0 insufficient replicas
c1t5d0 UNAVAIL 0 0 0 cannot open
c2t5d0 FAULTED 0 0 0 too many errors
cache
c3t5d0 ONLINE 0 0 0
spares
c2t8d0 UNAVAIL cannot open
errors: No known data errors
答案2
尝试观察者,对我来说它确实很有效。