当 RAID 出现问题时,是否有人有解决方案将错误/关键条目记录到 2008 R2 中的事件日志中?我真的想设置电子邮件警报以防发生这种情况。我使用的是 MS 内置软件 RAID,而不是硬件 RAID。
有一条线索这里这简直令人难以置信。一位微软代表表示
“对于用户来说,注意到阵列的退化不会是一个显着的改进”
听起来他们似乎从未打算支持它。有人有解决方案吗?
答案1
这确实相当令人惊讶,微软把一项功能弄得更糟了。从某些方面来说,这并不奇怪。
我相信你可以使用磁盘分区实用程序。有关示例命令,请参阅http://www.techotopia.com/index.php/Creating_and_Managing_Windows_Server_2008_Mirrored_%28RAID_1%29_Volumes。
不幸的是,我自己没有 2008 软件 RAID,但我只能想象列表卷会指示驱动器何时处于离线或故障状态。示例输出为列表卷看起来像这样
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
您只需创建一个文本文件,内容为
list volume
然后像运行它一样
diskpart /s file.txt
然后,您可以将输出通过管道传输到文件并使用脚本对其进行解析,并生成电子邮件或事件日志条目。您需要每隔 X 分钟运行一次此脚本,例如使用任务计划程序。
你可以使用事件哨兵(有免费版本)及其应用程序调度程序来执行该脚本并生成事件/电子邮件,但您仍然需要解析 diskpart 的输出以确定是否存在问题。
编辑:Windows 中故障 RAID 的状态为“Failed Rd”,而不是“Healthy”。因此,搜索“Failed Rd”应该有效。示例:
Volume ### Ltr Label Fs Type Size Status Info
---------- --- ----------- ----- ---------- ------- --------- --------
Volume 0 C BOOT NTFS Mirror 931 GB Failed Rd Boot
我将来会对此进行一些实验以得出更好的答案并撰写博客文章,我不知道微软在这方面失败了。
答案2
这是一个简单的批处理脚本,它将记录系统故障事件:
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
答案3
我没有设置 MS 软件 RAID 阵列系统,但您不能查询可用性吗? Win32_逻辑磁盘具有可用性属性和状态属性。在我的系统上,它是空白的,但我希望在突袭集中,至少其中一个属性会填充表中列出的状态值。