Как вы контролируете состояние зеркального диска в Windows?


12

У меня есть зеркальный динамический диск на моем сервере Windows 2003. Как вы контролируете состояние громкости?

Есть ли способ, чтобы сервер отправил электронное письмо, когда есть проблема с объемом? Есть ли способ заставить сервер выполнять тесты SMART?

РЕДАКТИРОВАТЬ: Ничто не говорит WTF, как войти в систему на клиентском сервере, запустить 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

Мы говорим здесь о программном зеркале, верно? Если так, отличный вопрос.
Chris_K

@Chris_k Правильно. В прошлый раз, когда диск вышел из строя, я обнаружил это только случайно. На корпоративной системе это совершенно неприемлемо. У меня есть резервная система. Но дело не в зеркале.
NitroxDM

С такой информацией, я думаю, сейчас самое время проверить этот сценарий. Windows для победы!
NitroxDM

Я работаю над решением, используя оба ответа, перечисленных здесь.
NitroxDM

Ответы:


5

У меня был тот же вопрос некоторое время назад. Первое, о чем я подумал, - это использование WMI, но по какой-то странной причине WMI не раскрывает работоспособность тома RAID ни через один из обычных классов Win32_ *.

В конце концов я наткнулся на сценарий в этой статье и внес несколько изменений в соответствии со своими требованиями. Он анализирует выходные данные команды diskpart.exe "LIST VOLUME". Это может показаться немного грязным и уродливым, но сейчас это лучший вариант, который я видел.

Сценарий, который отображается на связанной странице, готов к использованию с Nagios / NSClient ++ . Если вы немного знаете VBScript, то достаточно легко изменить его, чтобы отправлять электронную почту вместо печати информации о состоянии.

Если вы не знаете VBScript, я с удовольствием предоставлю вам модифицированную версию, которая будет делать все, что вы захотите.


VBScript не так уж много. C # с другой стороны;) Сценарий выглядит не так уж плохо.
NitroxDM

Другая статья на эту тему и как обойти эту проблему: eventlogblog.com/blog/2012/02/…
Lucky Luke

Те (@LuckyLuke & ThatGraemeGuy скрипты) великолепны, но не имеют языковой поддержки. Оба моих сервера на английском, так что хорошо. Но мой загрузочный аппарат на французском языке. Я был в состоянии фигуры (от ThatGraemeGuy сценария) RE0.Pattern = "Healthy|Sain" RE1.Pattern = "Mirror|RAID-5|Miroir", но не RE2и RE3которые «Failed | В группе риска» и «Перестройка». К сожалению, это плохо, потому что те, в основном RE2, являются важными. Не могли бы вы найти перевод на французский или другой способ, который не зависел бы от языка?
Мастер DJon

1
Хороший вопрос - но установка Windows на каждом языке и наблюдение за строками может занять очень много времени. На вашем месте я бы установил французскую Windows в виртуальную машину и симулировал сбой RAID с помощью виртуальных дисков. Вероятно, вы можете извлечь строки из DLL где-нибудь, но это, вероятно, займет столько же времени.
Lucky Luke

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

Замените find "SSD" на "mirror" (или в полоску ... как угодно) или на имя вашего тома. (мои тома называются SSD1 + SSD2)

Вставьте пакетный файл с отключенным @echo и готово. :)

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

Выше линии необходим для партии. знак равно

Примечания

  • Чтобы это работало, вам нужно указать имя тома, иначе смените токены наtokens=8


0

Я использую этот некрасивый пакетный файл для мониторинга более ста серверов, чтобы проверить состояние зеркала, и результат отличный. Это плагин клиента 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

-1

хотя все эти ответы дадут вам статус, ни один из них не является правильным ответом.

в корпоративной среде вы должны использовать корпоративные инструменты для мониторинга серверов и сетей. Практически все инструменты мониторинга, которые я использовал, автоматически контролируют состояние любого поддерживаемого RAID-массива, программного или аппаратного обеспечения. они также отслеживают другие вещи, о которых вам следует знать, такие как температура, свободное место на диске и т. д. Вы действительно хотите создать собственный сценарий для каждой возможной вещи, которую необходимо отслеживать?

сделайте себе одолжение, пропустите все эти шнурки и жевательную резинку и используйте правильный инструмент.


Инструменты как что?
NitroxDM

1
Солнечные ветры, n-способный, что
случилось

Я не понимаю, насколько ваш ответ уместен или полезен, это просто мнение. Есть намного больше способных инструментов, чем Solarwinds (n-able от Solarwinds, кстати). Ситуация также изменилась, и программный рейд больше не является « чистым
Lucky Luke

Я не говорил, что программный рейд - это чистка обуви. Я сказал, что разработка процессов обувной веревки или процедур для мониторинга была плохой идеей. (И в то время, когда я писал свой ответ, SolarWinds еще не купил n-способную.)
longneck
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.