2010-08-13 3 views
3

Intel 컨트롤러의 RAID 어레이 상태를 내 Windows 응용 프로그램에서 주기적으로 확인 (또는 상태 변경에 대한 알림)해야합니다. 특히 필요한 것은 RAID 5 어레이가 정상인지 또는 디스크 중 하나가 누락되었는지 확인하는 것입니다.Windows 응용 프로그램에서 Intel 컨트롤러의 RAID 어레이 상태를 어떻게 모니터링합니까?

raidcfg32 (인텔 사이트에서 사용 가능, 구문은 this readme 참조) 구문 분석을 시도했지만 응용 프로그램에서 모니터링해야하는 서버 중 하나에서만 작동합니다. 다른 서버에서 raidcfg32은 '지원되지 않는 하드웨어'오류를보고합니다. 또한 CmdTool2을 시도했지만 컨트롤러를 찾을 수 없었습니다.

Intel에서 제공하는 RAID 어레이 모니터링의 나머지 옵션은 GUI 응용 프로그램 (인텔 매트릭스 스토리지 관리 콘솔, Intel Rapid Storage Technology)입니다.

해당 컨트롤러는 다음과 같습니다. ESB2, 631xESB/632xESB.

저는 스택 오버플로에서 내 문제와 관련된 몇 가지 게시물을 읽었으며 그 중 아무 것도 대답이 들어 있지 않습니다. 예를 들어 'Can I get Raid disk status by using PS?'질문에 대한 답변에서 배열이 아닌 컨트롤러 컨트롤러 인 이 정상적으로 작동하는지 확인하는 것이 좋습니다 (항상 그렇습니다).

내가 찾고있는 것은 .NET 응용 프로그램에서 상태 정보에 액세스하는 자동화 된 방법입니다. WMI, .NET 또는 네이티브 API, 콘솔 출력 구문 분석 등을 통해 모든 옵션이 유용합니다.

RAID 상태를 모니터링하는 방법이 GUI 응용 프로그램을 통해 이루어지는 것이 혼란 스럽습니다. 프로그래밍 방식으로이 작업을 수행하기 위해 수십 개의 서버가있는 엔터프라이즈 배포에는 어떤 접근 방식이 사용됩니까?

답변

5

나는 이것을 또한 찾고 있었다. 필자는 ICHxxx 시리즈 컨트롤러를 보유하고 있으며 공개 API의 존재에 대해 Intel에서 연락을 취하려고 노력하고 있지만 낙관적 인 것은 아닙니다.

다음은 제가 단기간에 생각해 냈습니다. 인텔은 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") 
     { 
     ... 
     } 
    }