加入收藏 | 设为首页 | 会员中心 | 我要投稿 厦门网 (https://www.xiamenwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长百科 > 正文

如何从Windows应用程序监控Intel控制器上RAID阵列的状态?

发布时间:2021-01-25 21:35:52 所属栏目:站长百科 来源:网络整理
导读:我需要定期从我的 Windows应用程序检查Intel控制器上RAID阵列的状态(或者通知状态更改).具体来说,我需要的是找出RAID 5阵列是否正常或其中一个磁盘丢失. 我尝试解析raidcfg32的输出(可从英特尔网站获得,见this readme),但它只适用于我的应用程序需要监视的服

我需要定期从我的 Windows应用程序检查Intel控制器上RAID阵列的状态(或者通知状态更改).具体来说,我需要的是找出RAID 5阵列是否正常或其中一个磁盘丢失.

我尝试解析raidcfg32的输出(可从英特尔网站获得,见this readme),但它只适用于我的应用程序需要监视的服务器之一.在其他服务器上,raidcfg32报告“不支持的硬件”错误.我也试过CmdTool2,但它无法完全找到控制器.

英特尔提供的唯一剩余RAID阵列监控选项是一系列GUI应用程序(英特尔矩阵存储管理控制台,英特尔快速存储技术).

有问题的控制器是:ESB2,631xESB / 632xESB.

我相信我已经阅读了Stack Overflow上与我的问题相关的几篇文章,但没有一篇文章包含答案.例如,在对问题’Can I get Raid disk status by using PS?‘的回答中,建议实际上允许检查控制器而不是阵列是否健康(它始终是).

我在寻找的是一种自动访问状态信息的方式(从.NET应用程序来看,具体而言).任何选项都是好的,无论是通过WMI,.NET还是本机API,控制台输出解析等等.

我发现建议的监控RAID状态的方法是通过GUI应用程序让我感到困惑.在具有数十台服务器的企业部署中使用哪些方法来以编程方式执行此操作?

解决方法

我一直在寻找这个.我有ICHxxx系列控制器,我正试图与英特尔联系,以回应有关公共API的存在,但我并不乐观.

这就是我短期内提出的问题.英特尔将RAID事件记录到“IAANTmon”下的Windows事件日志中.因此,您可以使用System.Diagnostics.EventLog,挂钩EventWrittenEventHandler,然后过滤“IAANTmon”.

EventLog eLog = new EventLog("Application");
        eLog.EntryWritten += new EntryWrittenEventHandler(OnEntryWrittenEvent);
        eLog.EnableRaisingEvents = true;

public static void OnEntryWrittenEvent(object source,EntryWrittenEventArgs e)
    {
        if (e.Entry.Source == "IAANTmon")
        {
         ...
        }
    }

(编辑:厦门网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读