ZFS 是一种高度先进的文件系统,它内置了一些强大的工具来帮助我们监控和管理其性能。以下是一些您可能会发现有用的工具。
ZFS 内置监控工具
zpool iostat
zpool iostat
是一个用于实时监控 ZFS 存储池 I/O 活动的工具。它可以显示每个存储池的读取、写入和操作的带宽,以及待处理的读取和写入操作的数量。
您可以使用以下命令来运行 zpool iostat
:
zpool iostat -v
-v
选项可以显示每个存储池中的每个磁盘的详细信息。
zpool status
zpool status
命令显示 ZFS 存储池的健康状况和状态信息。您可以使用此命令来检查存储池是否有故障,并查看关于故障的详细信息。
您可以使用以下命令来运行 zpool status
:
zpool status
zfs get all
zfs get all
命令显示 ZFS 文件系统的所有属性,包括当前使用的磁盘空间、可用磁盘空间、数据压缩比率等等。
您可以使用以下命令来运行 zfs get all
:
zfs get all
下面我们将以 zpool iostat
命令为例,详细介绍一下使用方法。zpool iostat
是一个内建的监视工具,可以实时显示池 I/O 统计信息。要实现持续监视,可以在上面命令后面跟一个数字(刷新间隔,以秒为单位),可以指定刷新间隔,按 Ctrl+C 停止,还可以再跟一个数字指定一共显示多少条记录。
[root@localhost /]# zpool iostat
capacity operations bandwidth
pool alloc free read write read write
---------- ----- ----- ----- ----- ----- -----
SSD 74.7G 4.46T 0 29 57.6K 195K
# 每隔两秒显示一条,共显示5条
[root@localhost /]# zpool iostat 2 5
capacity operations bandwidth
pool alloc free read write read write
---------- ----- ----- ----- ----- ----- -----
SSD 74.7G 4.46T 0 29 57.6K 195K
SSD 74.7G 4.46T 0 0 0 0
SSD 74.7G 4.46T 0 0 0 0
SSD 74.7G 4.46T 0 100 0 478K
SSD 74.7G 4.46T 0 0 0 0
# 使用-v参数可以显示详细信息,池里的每个设备占一行
[root@localhost /]# zpool iostat -v
capacity operations bandwidth
pool alloc free read write read write
----------------------------------------- ----- ----- ----- ----- ----- -----
SSD 74.7G 4.46T 0 29 57.6K 195K
scsi-0ATA_SanDisk_SDSSDH31_180546800457 14.9G 913G 0 5 11.5K 39.0K
scsi-0ATA_SanDisk_SDSSDH31_181290801368 15.0G 913G 0 5 11.6K 38.9K
scsi-0ATA_SanDisk_SDSSDH31_180546801146 15.0G 913G 0 6 11.6K 39.1K
scsi-0ATA_SanDisk_SDSSDH31_181325802022 14.9G 913G 0 5 11.5K 39.0K
scsi-0ATA_SanDisk_SDSSDH31_180546801835 14.9G 913G 0 5 11.5K 39.0K
----------------------------------------- ----- ----- ----- ----- ----- -----
# 持续监控
[root@localhost /]# zpool iostat -v 2 3
capacity operations bandwidth
pool alloc free read write read write
----------------------------------------- ----- ----- ----- ----- ----- -----
SSD 74.7G 4.46T 0 29 57.6K 195K
scsi-0ATA_SanDisk_SDSSDH31_180546800457 14.9G 913G 0 5 11.5K 39.0K
scsi-0ATA_SanDisk_SDSSDH31_181290801368 15.0G 913G 0 5 11.6K 38.9K
scsi-0ATA_SanDisk_SDSSDH31_180546801146 15.0G 913G 0 6 11.6K 39.1K
scsi-0ATA_SanDisk_SDSSDH31_181325802022 14.9G 913G 0 5 11.5K 39.0K
scsi-0ATA_SanDisk_SDSSDH31_180546801835 14.9G 913G 0 5 11.5K 39.0K
----------------------------------------- ----- ----- ----- ----- ----- -----
capacity operations bandwidth
pool alloc free read write read write
----------------------------------------- ----- ----- ----- ----- ----- -----
SSD 74.7G 4.46T 0 0 0 0
scsi-0ATA_SanDisk_SDSSDH31_180546800457 14.9G 913G 0 0 0 0
scsi-0ATA_SanDisk_SDSSDH31_181290801368 15.0G 913G 0 0 0 0
scsi-0ATA_SanDisk_SDSSDH31_180546801146 15.0G 913G 0 0 0 0
scsi-0ATA_SanDisk_SDSSDH31_181325802022 14.9G 913G 0 0 0 0
scsi-0ATA_SanDisk_SDSSDH31_180546801835 14.9G 913G 0 0 0 0
----------------------------------------- ----- ----- ----- ----- ----- -----
capacity operations bandwidth
pool alloc free read write read write
----------------------------------------- ----- ----- ----- ----- ----- -----
SSD 74.7G 4.46T 0 83 0 319K
scsi-0ATA_SanDisk_SDSSDH31_180546800457 14.9G 913G 0 7 0 78.4K
scsi-0ATA_SanDisk_SDSSDH31_181290801368 15.0G 913G 0 22 0 77.2K
scsi-0ATA_SanDisk_SDSSDH31_180546801146 15.0G 913G 0 9 0 35.7K
scsi-0ATA_SanDisk_SDSSDH31_181325802022 14.9G 913G 0 20 0 43.2K
scsi-0ATA_SanDisk_SDSSDH31_180546801835 14.9G 913G 0 23 0 84.9K
----------------------------------------- ----- ----- ----- ----- ----- -----
ZFS 第三方监控工具
ZFS 除了其内置的性能监控工具外,还有许多第三方工具可以帮助您更好地监控和理解 ZFS 的性能。下面是一些常见的第三方 ZFS 监控工具:
1. ZFS on Linux Metrics (ZoL Stats):ZoL Stats 是一个 Grafana 仪表盘,用于显示通过 ZFS on Linux 暴露的度量值。它可以显示存储池和数据集的 IO,以及 ARC(适应性替换缓存)的使用情况等。
2. ZFS System Monitor (ZSysMon):ZSysMon 是一个用于监视 ZFS 系统性能的 Shell 脚本。它可以显示存储池的状态,包括读写操作,带宽,等待 I/O,存储池使用等信息。
3. Collectd-zfs:这是一个 collectd 插件,可以获取和记录 ZFS 的性能统计信息。Collectd 是一个守护程序,可以收集系统和应用程序的性能指标。使用 collectd-zfs 插件,您可以将 ZFS 的性能数据集成到您的现有的监控系统中。
4. Telegraf & InfluxDB:Telegraf 是一个插件驱动的服务器代理,用于收集和报告指标。InfluxDB 是一个用于存储和查询指标和事件的时间序列数据库。Telegraf 有一个 ZFS 插件,可以收集 ZFS 的性能数据,并将其存储在 InfluxDB 中。然后,您可以使用 Grafana 或其他可视化工具来查看这些数据。
这些第三方工具提供了 ZFS 的详细和可视化的性能指标,使您能够深入了解 ZFS 的性能状况,并据此进行优化和故障排除。
写在最后
在 ZFS 系列文章中,我们已经对 ZFS 文件系统进行了全面而深入的探讨,介绍了如何部署 ZFS、如何管理存储池和卷、如何创建和使用快照,以及如何配置和使用 NFS 和 SMB 共享。通过这些文章,我们希望您能对 ZFS 的强大功能和灵活性有一个全面的了解,并能够在您自己的系统中实现和使用这些功能。
从下一篇博文开始,我们将从外部到内部、从上到下深入探讨 NAS 应用平台,首篇将重点介绍出口网关 Traefik 的应用。
下篇预告: DIY NAS 系列12 — Traefik 出口网关配置