DELL EMC isilon/PowerScale 存储的健康检查方法

到了isilon的OneFS 8 版本,系统就引入了isi healthcheck的工具用来做系统的健康检查,不同的版本功能差异是比较大的,在老的版本上需要单独安装这个包,但是新的OneFS版本应该和操作系统集成了,不需要再单独安装,直接运行命令就可以了。

OneFS 内置的一套"规则化体检框架",用来检查集群当前的软件状态、硬件状态、配置状态,以及升级前后的风险点。IOCA(Isilon On-Cluster Analysis)已经整合进这个 HealthCheck RUP 框架里,所以它不只是做日常巡检,也能辅助做升级规划。

码字不易,欢迎点赞、关注、添加v:StorageExpert,下次更新不迷路。

isi healthcheck 到底是什么

它不是单一一条检查命令,而是一个检查框架。isi healthcheck 用来评估集群中特定软件组件、硬件组件以及集群环境的状态;而且 IOCA 也被集成了进去,可以分析正在运行的集群健康状态,并帮助规划升级。

  • 它不是"修复工具",而是一个故障诊断工具
  • 它不是只看一个点,而是把很多检查点组织成体系
  • 它既能查日常健康,也能查升级前/后风险
  • 它能检查单节点问题,也能检查全局集群问题

一些核心概念

Item

Item 就是"单个检查项"。

比如:

  • 检查某节点 DIMM 错误日志
  • 检查 boot drive wear
  • 检查 AVScan 服务状态
  • 检查集群剩余容量

有些 item 是 Per node,每个节点单独检查;有些是 Per cluster,整个集群作为一个整体检查。举例说,DIMM error 这种是按节点检查,而 free space 这种是按集群检查。所以,可以把它理解为:item就是一个具体的健康规则。

Checklist

Checklist 就是"检查项集合"。

比如:

  • basic
  • pre_upgrade
  • post_upgrade
  • performance
  • smartconnect
  • synciq
  • nfs
  • smb

每个 checklist 都包含一组 item。也就是说:checklist = 一类场景下要跑的一组检查

我手头的这个版本,一共列出了 19 个 checklist,包括basic、auth、avscan、cluster_capacity、infiniband、job_engine、ntp、performance、pre_upgrade、post_upgrade、smartconnect、smartpools、smb、snapshot、synciq 等。

是不是随着版本的不同,这些检查项会发生变化,这个我不清楚。

Parameters

Parameter 是某些 item 的参数。比如 auth_ad_clock_skew,它有个参数叫 ad_provider,可以给它赋值 win_ad。这些参数通过 isi healthcheck parameters set 来设置。

这意味着 healthcheck 不是一成不变的,而是可以通过参数来调整:

  • 有些检查项是可以带上下文的
  • 有些场景需要你指定目标版本、目标服务、目标环境

这在 pre_upgrade 特别有意义,pre_upgrade 这个 checklist 里有很多 item 会用到 target_version 参数。

Evaluation

Evaluation 就是一次实际的"运行结果"。当你执行一次 checklist 或 item,它的结果会被保存到:

/ifs/.ifsvar/modules/health-check/results/evaluations。

所以 healthcheck 不是只在屏幕上临时输出一下,它会留下结果记录,后续可以 list和view等命令来复查。

Freshness

这个概念很重要,很多人第一次用会误解。Freshness = 结果新鲜度/缓存有效期。每个 item 都有一个默认 Freshness 值。它决定再次评估时,是重新获取新数据,还是直接返回之前缓存的结果。举个例子,如果某 item 的 freshness 是 1D,就是一天内再次运行,就直接返回上次结果,而不是重新采集。这意味着:

  • 刚处理完毕问题马上重跑,结果不一定立刻变
  • 某些检查项需要强制 override freshness,才会重新抓实时状态
  • healthcheck 的结果不一定 100% 等于"此刻现况",它有缓存机制

这点特别关键。

healthcheck 包含哪些内容

我目前的这个版本:

  • 有 19 个 checklist
  • 有 215 个 item
  • 其中还包含了 IOCA 前缀项(ioca_...)

比如 basic checklist 的示例里,就包含了这些东西:

  • ioca_checkAuthStatus
  • ioca_checkBMCandCMC
  • ioca_checkBootDisks
  • ioca_checkDriveFirmware
  • ioca_checkDriveFirmwarePackage
  • ioca_checkDriveLoad
  • mellanox_blown_fuse
  • celog_rep_pp

这说明 basic 其实已经覆盖了不少核心面:

  • 认证状态
  • BMC/CMC
  • 启动盘
  • 硬盘固件
  • 驱动/负载
  • 网卡/后端相关
  • CELOG 相关告警机制

也就是说,basic 不是"很基础很简单"的意思,而是"集群总体健康总览"。

第一步:看有哪些 checklist

isi healthcheck checklists list

这个命令会列出当前 OneFS 版本可用的所有 health checks。

第二步:查看某个 checklist 里面有哪些 item

isi healthcheck checklists view basic

或者:

isi healthcheck checklists view smartconnect

这样你能知道这次检查到底会查什么。比如 smartconnect 示例里会查:

  • nfs_dynamic_pools
  • smb_dynamic_pools
  • suspended_nodes
  • auto_suspended_nodes
  • smartconnect_enabled
  • synciq_dynamic_pool
  • flexnet_running
  • dns_query_smartconnect_zones
  • smartconnect_sip_responsive
  • smartconnect_zone_resolution

第三步:执行 checklist

isi healthcheck evaluations run basic

或者:

isi healthcheck evaluations run pre_upgrade

evaluations run <ID> 会运行该 checklist 下定义的那些 item。

第四步:列出已经跑过的 evaluation

isi healthcheck evaluations list

它会显示:

  • evaluation ID
  • 状态(Queued / Completed)
  • Failures
  • Logs 路径

evaluation ID 由"checklist 名称 + 时间戳"组成。

第五步:查看详细结果

isi healthcheck evaluations view <evaluation_id> --verbose

verbose 结果会展开到每个节点、每个 item 的状态,比如 NFS 检查示例里会列出 Node 1 / Node 2 / Node 3 的 nfs_daemon、nfs_mount、nfs_rpc、nfs_service 等项。

第六步:如果某项 WARNING/CRITICAL,再单独看 item 的说明

isi healthcheck items view <item_name>

这一条非常重要。当某个 healthcheck item 返回 warning 或 failure 时,第一步 troubleshooting 就是看 item details。item details 会告诉你是否需要进一步处理,以及建议的处理动作。

healthcheck 输出状态

WARNING 就是警告,不是说马上就有问题了,CRITICAL的告警是需要关注的。

例1:celog_memory

  • OK:14 天内没有 CELOG memory issues
  • WARNING:14 天内有过 memory issues,可能只是异常负载,也可能是趋势开始
  • CRITICAL:14 天内超过 50 次,说明压力非常大,要尽快调查

这说明:

  • 有些 warning 是"观察项"
  • 它不是马上说明系统坏了
  • 它更像"趋势预警"

例2:celog_chan_fail

  • WARNING:14 天内至少一次 channel send failure,可能漏过告警
  • CRITICAL:14 天内超过 5 次,说明告警发不出去的问题已经严重,需要查 isi event list 和 /var/log/isi_celog_alerting.log

这说明:

  • 某些 item 检查的是"告警机制本身是否健康"
  • 不是业务直接坏,而是"出问题时你可能收不到通知"

例3:celog_service_restart / celog_process_restart

  • 少量 restart 可能正常
  • 大量 restart 才说明服务不稳定甚至极度不稳定

说明:

  • healthcheck 里不少项是"趋势型监控"
  • 要结合时间窗口和数量阈值看

Scope: Per node 和 Per cluster

Per node

表示每个节点各查各的。

典型意义:

  • 你可能只有某 1 个节点坏
  • 这类问题通常是局部硬件/局部服务/局部日志异常
  • 查看结果时要看具体哪个 node fail

例如:

  • battery_test_status
  • boot_drive_wear
  • avscan_service_status

这些都偏节点级。

Per cluster

表示整个集群只给一个总结果。

典型意义:

  • 它查的是全局配置、全局容量、全局服务逻辑
  • 这种 fail 更像"设计/配置/整体状态问题"

如:

  • auth_enabled
  • celog_enabled

都属于 cluster 级别。

常用检查项checklist

basic

总览型检查。

适合:

  • 日常巡检
  • 接手陌生集群先摸底
  • 故障后先跑一个全局健康概览

pre_upgrade

升级前检查。

这个checklist的很多 item 会用 target_version 参数。说明它不只是看"现在好不好",而是看"你要升到某个版本前是否有障碍"。

post_upgrade

升级后验证。

适合确认:

  • 升级后服务起来没
  • 配置是否继承正常
  • 某些组件是否进入异常状态

performance

主要是检查性能方面的问题的。出现"集群慢和客户端卡"的时候的检查项目。

smartconnect

SmartConnect 相关专项。

适合排查:

  • DNS 解析
  • SIP 响应
  • dynamic pool
  • suspended node
  • zone resolution

nfs / smb

协议专项。

文档里 nfs 的 verbose 示例就展示了 NFS 服务检查的粒度。

cluster_capacity

容量健康专项。

当我们关心:

  • pool/cluster 剩余空间
  • 容量是否接近阈值
  • 容量相关风险

就需要检查这个。

常用命令

isi healthcheck checklists list

isi healthcheck checklists view <id>

isi healthcheck items list

isi healthcheck items view <id>

isi healthcheck parameters list

isi healthcheck parameters view <name>

isi healthcheck evaluations list

isi healthcheck evaluations view <id>

执行类

isi healthcheck evaluations run <checklist>

还支持高级参数:

--override-pass <item>:<pass-status>

--override-fresh <item>:<freshness>

--override-thresholds <item>:<critical>:<warning>:<ok>

--parameter <name>:<value>

这些参数可以用来对跑的健康检查做些控制:

  • 你可以临时覆盖某个 item 的pass状态
  • 可以覆盖 freshness,强制更新
  • 可以调阈值
  • 可以传参数

这些在升级、特殊环境、实验性分析中都很实用。

控制 evaluation 状态

isi healthcheck evaluations pause <id>

isi healthcheck evaluations resume <id>

isi healthcheck evaluations cancel <id>

参数管理

isi healthcheck parameters set <name> <value>

isi healthcheck parameters delete <name>

用于修改 item/checklist 相关的运行参数。

另外,healthcheck 还可以定时运行

  • 系统可以在 cluster time 每天 00:00 自动跑一次
  • 由 isi_cron_control 控制
  • 可以查看、启用、禁用

命令是:

isi_cron_control hc_daily status

isi_cron_control hc_daily enable

isi_cron_control hc_daily disable

这意味着它可以做成自动化的"日常检查"。

IOCA与HEALTHcheck的关系

  • IOCA 位于 /usr/libexec/isilon/ioca/
  • 更新 IOCA 后,HealthCheck 框架会自动检测到新版本
  • 然后触发 IOCA 相关 item,ioca checklist 也会更新

这说明在这份 RUP 里:

  • IOCA 不是独立工具了
  • 它已经变成 healthcheck 体系的一部分
  • 所以你看到很多 ioca_ 前缀项,是正常的

这个 healthcheck 更像是一个"规则引擎 + 巡检框架",而不是简单脚本。这个healthcheck 有几个特点:

优点

  • 把很多散乱检查项统一封装
  • 结果可追踪、可复查
  • 有分层结构:checklist / item / parameter / evaluation
  • 适合升级前后验证
  • 对 SmartConnect、NFS、SMB、容量、CELOG 这类专题很实用
  • 集成 IOCA 后,对升级规划价值更高

局限

  • 它是"规则判断",不是一个故障分析工具
  • WARNING 可能只是趋势提醒,不是故障
  • 由于有 freshness 缓存,所以每次运行的结果不一定是最实时的东西
  • 某些异常仍然要回到日志、事件、服务状态、硬件层面去查

大礼包,现场直接用的

日常巡检

isi healthcheck evaluations run basic

isi healthcheck evaluations list

isi healthcheck evaluations view <id> --verbose

某类问题排查

例如 SmartConnect:

isi healthcheck evaluations run smartconnect

isi healthcheck evaluations view <id> --verbose

升级前

isi healthcheck evaluations run pre_upgrade --parameter target_version:<目标版本>

某个 item 报警后

isi healthcheck items view <item_name>

先看 item 自己的定义和处理建议,再决定要不要进一步看:

  • isi event list
  • /var/log/...
  • 节点硬件状态
  • 后端网络
  • 磁盘/boot media/firmware
  • 认证或协议服务状态
相关推荐
熊文豪2 小时前
当系统在后台偷偷“记账“:KES 性能观测体系深度解析
linux·运维·服务器·数据库
向量引擎2 小时前
AI Agent 安全元年:OpenClaw 投毒事件如何改变整个生态安全标准,
运维·人工智能·安全·自动化·aigc·api调用
哦豁灬2 小时前
ThinkPad X220 安装 Arch Linux 完美指南
linux·服务器·thinkpad·arch linux
自动化智库3 小时前
库卡机器人定义全局变量
linux·运维·机器人
Yiyi_Coding3 小时前
BUG列表:如何定位线上 OOM ?
java·linux·bug
cxr8283 小时前
龙虾长程任务测试 —— 撰写零人公司自动化运营实践研究报告
运维·人工智能·自动化·openclaw
杨云龙UP3 小时前
MySQL慢查询日志暴涨导致磁盘告警:slow query log膨胀至397G的生产故障排查:清理、参数优化
linux·运维·服务器·数据库·mysql
chQHk57BN3 小时前
DeepFlow Agent 故障排查指南:注册失败、协议解析、资源识别与配置方式
linux·运维·服务器
@土豆4 小时前
基于Docker部署Squid正向代理文档
运维·docker·容器