在 Ubuntu 上监控 ZFS Raid 池以确保完整性和性能

Dav*_*ger 3 ubuntu performance zfs cacti zabbix

我在 Ubuntu 上(通过保险丝)为家里的存储阵列设置了 ZFS,尽管它处于“测试版”状态,但它已经运行了将近一年。我不时登录并使用以下命令检查数组:

zpool status
Run Code Online (Sandbox Code Playgroud)

结果是:

NAME        STATE     READ WRITE CKSUM
media       ONLINE       0     0     0
  raidz1    ONLINE       0     0     0
    sda     ONLINE       0     0     0
    sdb     ONLINE       0     0     0
    sdc     ONLINE       0     0     0
errors: No known data errors 
Run Code Online (Sandbox Code Playgroud)

这一切都很好,但我想自动化一种方法来每隔一段时间检查一次,以确保我的池没有错误。

我有仙人掌和 zabbix 可供我使用。我想我也可以编写一个程序来分析该输出,如果它没有找到“无已知数据错误”这句话,请给我发一封电子邮件。

但是,是否已经有任何包可以做到这一点,或者关于如何从这个阵列中获得一些性能指标的规范?

3di*_*nce 5

zpool status -x 是通过脚本检查池状态的首选方法。它的输出是“所有池都健康”,除非出现问题使其更容易用作测试。否则,当您获得多个池时,您的检查脚本和 grep 将变得更加复杂。因此,您可以设置一个 cron 作业来运行脚本并确保其状态为“所有池都正常”,否则会发送输出的警报电子邮件。

你甚至可以设置一个 nagios 插件来为你做这件事。我假设 zabbix 应该可以以相同的方式扩展。

还要确保您定期运行 zpool 擦洗....我也会在 cron 作业中设置它。这将检测并纠正它在池中不经常访问的文件系统区域中发现的任何问题,并且可以在问题导致任何数据损坏之前捕获并纠正问题。

要获得性能指标,您可以使用 zpool iostat [更新之间的秒数] 我不确定如何将它与仙人掌联系起来,但我确信这是可能的。