我有一台 Red Hat 5.1 服务器 64 位 Dell 2950,带有 PERC 5/i 控制器,直到最近还运行良好。
在其上我有一个 NRPE 命令 check_openmange,它开始返回错误:
/usr/local/nagios/libexec/check_openmanage
Storage Error! No controllers found
Problem running 'omreport chassis memory': Error: Memory object not found
Problem running 'omreport chassis fans': Error! No fan probes found on this system.
Problem running 'omreport chassis temps': Error! No temperature probes found on this system.
Problem running 'omreport chassis volts': Error! No voltage probes found on this system.
显然,这些组件在系统启动和运行时是存在的。我可以访问 Dell Open Manage 的 Web 界面,它报告一切正常。
检查 openmange 是否使用 omreport 工具,这会直接生成上述错误:
[root@lynx tmp]# omreport storage controller
No controllers found
我在网上找到了许多与 OMSA 和 64 位 RHEL 5 和 CentOS 5 问题相关的帖子,他们建议在 64 位系统上运行 32 位软件:
- http://en.community.dell.com/support-forums/servers/f/177/t/19356718.aspx
- http://stevejenkins.com/blog/2011/01/no-controllers-found-fix-set-up-dell-omsa-6-4-32-bit-on-rhel-centos-5-5-64-bit/
但是我已经在运行 32 位软件了:
Installed Packages
Name : srvadmin-storage
Arch : i386
Version: 6.5.0
Release: 1.201.2.el5
Size : 8.4 M
Repo : installed
Summary: Storage Management accessors package, 3.5.0
此外,这些帖子中的大多数似乎与 PERC 4 有关,而我的是 PERC 5。这项检查和报告直到最近才稳定下来,并且已经持续了几个月的生产负荷,这让我犹豫是否要采取这些措施。然而,我还没有找到任何好的迹象来说明这种行为为什么会改变。
有谁遇到过 PERC 5 的这个问题吗?
有人对诊断步骤或解决方案有进一步的想法吗?
答案1
service dataeng restart
我假设您已完成重新启动 OMSA( )并确保 IPMI 已加载的基本故障排除步骤:
service dataeng stop
service dsm_sa_ipmi start
service dataeng start
导致此问题的一个常见但不明显的原因是系统信号量耗尽。检查您的系统日志;如果您看到类似以下内容:
Server Administrator (Shared Library): Data Engine EventID: 0 A semaphore set has to be created but the system limit for the maximum number of semaphore sets has been exceeded
那么你的信号量就用完了。
您可以运行ipcs -s
列出系统上当前分配的所有信号量,然后使用ipcrm -s <id>
删除信号量(如果您确信不再需要它)。您可能还想追踪创建它们的程序(使用来自的信息)ipcs -s -i <id>
以确保它没有泄漏信号量。但根据我的经验,大多数泄漏都来自在运行清理代码之前被中断的程序(由段错误或类似原因造成)。
如果您的系统确实需要当前分配的所有信号量,则可以增加可用的信号量数量。运行sysctl -a | grep kernel.sem
以查看当前设置。最终数字是系统上可用的信号量数量(通常为 128)。将该行复制到 中/etc/sysctl.conf
,将最终数字更改为更大的值,保存并运行sysctl -p
以加载新设置。
答案2
按照 asciiphil 的说明操作对我有用。在我的例子中,nrpe
有很多与打开管理相关的信号量打开。清理它们并重新启动一切。
失败了:
omreport chassis memory
Memory Information
Error : Memory object not found
确保有足够的信号量:
sysctl -a | grep kernel.sem
ipcs -s |wc -l
停止nrpe
使用omreport
:
/etc/init.d/nrpe stop
删除nrpe
信号量:
ipcs -s | awk '/nrpe/ {print "ipcrm -s ",$2} ' | sh
/etc/init.d/dataeng stop
/etc/init.d/dsm_sa_ipmi stop
/etc/init.d/dsm_sa_ipmi start
/etc/init.d/dataeng start
确保一切顺利
tail -n 50 /var/log/messages
测试:
omreport chassis memory
重新开始nrpe
:
/etc/init.d/nrpe restart
答案3
我在一台主机上遇到了这个问题,其中安排了 Nagios 作业来检查 Openmanage。它会表现为 Nagios 拥有的大量陈旧信号量。
我每晚都会cron
花 10 分钟查看两份清单,找出过期的清单;两份清单中出现的任何内容都被视为过期的。(显然,要根据您的情况进行调整。)
nagioi () {
ipcs -a | awk '$3 == "nagios" { print $2 }'
}
# Run two listings, 10 minutes apart
# The ones which are in both listings are definitely stuck
(nagioi; sleep 600; nagioi) |
sort | uniq -d |
xargs -n 1 -r -t ipcrm -s
答案4
尝试/etc/init.d/dataeng start
/etc/init.d/dsm_om_shrsvc start