如何在Windows中监视镜像磁盘的运行状况?

我的Windows 2003 Server上有一个镜像dynamic磁盘。 你如何监测音量的健康?

有什么办法让服务器在卷发生问题时发送电子邮件? 有没有办法让服务器运行SMARTtesting?

编辑:没有说WTF就像login到客户端服务器,运行DISKPART LIST VOLUME并看到这一点。

Volume ### Ltr Label Fs Type Size Status Info ---------- --- ----------- ----- ---------- ------- --------- -------- Volume 0 X xDrive NTFS Mirror 233 GB Failed Rd Volume 1 C NTFS Simple 57 GB Healthy System Volume 2 D DVD-ROM 0 B Healthy Volume 3 F RAW Partition 466 GB Healthy Volume 4 E New Volume NTFS Partition 932 GB Healthy 

我刚才也有同样的问题。 我想到的第一件事就是使用WMI,但是出于某种奇怪的原因,WMI不会通过任何正常的Win32_ *类来暴露RAID卷的健康状况。

我最终偶然发现了这篇文章中的脚本,并做了一些修改以适应我的要求。 它分析diskpart.exe的“LIST VOLUME”命令的输出。 这看起来有点肮脏和丑陋,但现在它是我见过的最好的select。

在链接页面上显示的脚本已准备好用于Nagios / NSClient ++ 。 如果你知道一些VBScript,可以很容易地修改这个来发送电子邮件,而不是打印状态信息。

如果你不知道VBScript,我会很乐意给你一个修改后的版本,它会做你想做的任何事情。

Smartmontools( http://sourceforge.net/apps/trac/smartmontools/wiki )有一个Windows版本,但我不知道它运行在2K8

 for /f "tokens=4,9 delims= " %a IN ('echo list volume ^| diskpart ^| find "SSD"') do echo %a %b 

将“SSD”replace为“mirror”(或者stripe … whatever)或者你的卷名。 (我的卷名为SSD1 + SSD2)

坚持在@echobatch fileclosures,你完成。 🙂

 @echo off for /f "tokens=4,9 delims= " %%a IN ('echo list volume ^| diskpart ^| find "SSD"') do echo %%a %%b 

批号需要上面的一行。 =)

笔记

  • 你需要有一个卷名称才能工作,否则将令牌改为tokens=8

我使用这个丑陋的batch file来监视一百多台服务器来检查镜像状态,结果是可爱的。 这是一个nsclient ++客户端插件,每四小时做一次被动检查,将结果发送给nagios服务器。

 check_mirror.bat @echo off echo list volume | diskpart | find "Mirror" > H for /f %%i in ('type H ^| find /c "Mirror"') do set /a M=%%i for /f %%i in ('type H ^| find "Mirror" ^| find /c "Health" ') do set /a H=%%i for /f %%i in ('type H ^| find /c "Risk"') do set /a risk=%%i @del H /q rem echo M=%M%, H = %H% Risk=%risk% if %risk% GTR 0 goto err IF %M%.==0. goto nomirror IF %M% EQU %H% goto mirrorok :err echo CRITICAL: Something Wrong. exit /B 1 :mirrorok echo OK: Mirror Health. exit /B 0 :nomirror echo OK: No Mirror Found. exit /B 1 

虽然所有这些答案都会给你的地位,他们都不是正确的答案。

在企业环境中,您应该使用企业级服务器和networking监控工具。 几乎所有我用过的监视工具都会自动监视所有支持的RAIDarrays,软件或硬件的健康状况。 他们还会监视其他应该注意的事情,例如温度,可用磁盘空间等。您是否真的想为需要监视的每一件可能的事情创build一个自定义脚本?

帮你一个忙,跳过所有的鞋带和泡泡糖的东西,并使用正确的工具。