Як ви стежите за станом здоров’я дзеркального диска в Windows?


12

На моєму сервері Windows 2003 є дзеркальний динамічний диск. Як ви стежите за здоров’ям обсягу?

Чи є спосіб, щоб сервер надсилав електронне повідомлення, коли виникає проблема з гучністю? Чи є спосіб, щоб сервер запустив тести SMART?

EDIT: Ніщо не говорить про те, що 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_ *.

Я врешті-решт наткнувся на сценарій у цій статті та вніс декілька модифікацій відповідно до моїх вимог. Він аналізує висновок команди "part LIST VOLUME "diskpart.exe. Це може здатися трохи брудним і потворним, але зараз це найкращий варіант, який я бачив.

Сценарій, який з’являється на пов'язаній сторінці, готовий до використання з 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є "Не вдалося | ризику" та "Перебудувати". На жаль, це погано, оскільки ті, в основному 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

Знайдіть "SSD" на "дзеркало" (або смужку ... все, що завгодно) або назву гучності. (мої томи названі SSD1 + SSD2)

Вставте пакетний файл з @echo off та ur завершено. :)

@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
Сонячний вітер, не в змозі, що там, працює спеції, навіть менеджер інсайту HP
longneck

Я не бачу, наскільки ваша відповідь є релевантною чи корисною, це лише думка. Є набагато більш здібні інструменти, ніж Solarwinds (n-sposob є від Solarwinds btw). Все також змінилося, і програмний рейд уже не є "взуттю": smbitjournal.com/2016/12/the-software-raid-inflection-point
Lucky Luke

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