事件logging在2008 R2中的RAID故障

有任何人有一个解决scheme,logging一个错误/关键的条目到事件日志在2008 R2当RAID有问题? 我真的想为这种情况发生时设置电子邮件警报。 我正在使用MS内置软件RAID,而不是硬件RAID。

这里有一个线程,乞丐的信念..一个MS代表状态

“用户注意到降级的arrays不会是一个重大的改进”

所以这听起来像他们从来没有打算支持它。 有没有人有这个解决scheme?

这确实是相当令人惊讶的,让微软更糟糕的一个function。 在某些方面,这并不意外。

我相信您可以使用diskpart实用程序“监视”RAID的状态。 有关示例命令,请参阅http://www.techotopia.com/index.php/Creating_and_Managing_Windows_Server_2008_Mirrored_%28RAID_1%29_Volumes

我不幸遇到了一个2008软件,但是我只能想象列表音量的输出会显示驱动器处于脱机状态或处于故障状态。 列表音量的示例输出如下所示

Volume ### Ltr Label Fs Type Size Status Info ---------- --- ----------- ----- ---------- ------- --------- -------- Volume 0 E DATA NTFS Simple 931 GB Healthy Volume 1 D DVD-ROM 0 B No Media Volume 2 System Rese NTFS Partition 100 MB Healthy System Volume 3 C BOOT NTFS Partition 138 GB Healthy Boot Volume 4 F FreeAgent G NTFS Partition 1863 GB Healthy 

您只需创build一个内容为正文的文本文件

 list volume 

然后像运行一样

 diskpart /s file.txt 

然后,您可以将输出传输到一个文件并使用脚本进行parsing,并生成电子邮件或事件日志条目。 您需要每隔X分钟运行一次该脚本,例如使用任务计划程序。

您可以使用EventSentry (免费版本)及其应用程序调度程序来执行此脚本,并生成一个事件/电子邮件,但仍然会parsing来自diskpart的输出以确定是否存在问题。

编辑:在Windows失败的RAID的状态是“失败的路”反对“健康”。 因此,寻找“失败的路”应该工作。 例:

 Volume ### Ltr Label Fs Type Size Status Info ---------- --- ----------- ----- ---------- ------- --------- -------- Volume 0 C BOOT NTFS Mirror 931 GB Failed Rd Boot 

我会在未来做一些试验来得出一个更好的答案并写一篇博客文章,我不知道微软在这方面做了什么。

以下是一个简单的批处理脚本,它将logging系统失败时的事件:

 echo list volume | diskpart > c:\RAID_STATUS.TXT FINDSTR "Failed" C:\RAID_STATUS.TXT IF ERRORLEVEL 1 GOTO OK GOTO FAILED :FAILED SETLOCAL ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION FINDSTR "Failed" C:\RAID_STATUS.TXT > C:\FAILED_RAID.TXT set eventtext= for /f "delims=" %%l in (C:\FAILED_RAID.TXT) do set eventtext=!eventtext! %%l eventcreate /ID 999 /L SYSTEM /T ERROR /SO SW_RAID /D "%eventtext%" GOTO OK :OK 

我没有一个MS软件RAIDarrays系统设置,但不能只是查询可用性? Win32_logicaldisk有一个可用性属性和一个状态属性。 在我的系统上它是空白的,但我希望在一个RAID组中至less有一个将填充表中列出的状态值。