Jak monitorujesz stan dysku lustrzanego w systemie Windows?


12

Mam lustrzany dysk dynamiczny na moim systemie Windows 2003 Server. Jak monitorujesz kondycję woluminu?

Czy istnieje sposób, aby serwer wysłał wiadomość e-mail, gdy wystąpi problem z woluminem? Czy istnieje sposób na uruchomienie przez serwer testów SMART?

EDYCJA: Nic nie mówi WTF jak zalogowanie się na serwerze klienta, uruchomienie DISKPART LIST VOLUME i zobaczenie tego.

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

Mówimy tutaj o lustrze oprogramowania, prawda? Jeśli tak, świetne pytanie.
— Chris_K

@Chris_k Poprawnie. Ostatnim razem, gdy dysk uległ awarii, dowiedziałem się tylko przez przypadek. W systemie korporacyjnym jest to całkowicie niedopuszczalne. Mam system zapasowy. Ale nie o to chodzi w robieniu lustra.
— NitroxDM,

Wydaje mi się, że przy takich informacjach jest dobry moment na przetestowanie tego skryptu. Windows na zwycięstwo!
— NitroxDM,

Pracuję nad rozwiązaniem przy użyciu obu wymienionych tutaj odpowiedzi.
— NitroxDM,

Odpowiedzi:


5

Jakiś czas temu miałem to samo pytanie. Pierwszą rzeczą, o której myślałem, było użycie WMI, ale z jakiegoś dziwnego powodu WMI nie ujawnia stanu zdrowia woluminu RAID przez żadną z normalnych klas Win32_ *.

W końcu natknąłem się na skrypt w tym artykule i wprowadziłem kilka modyfikacji, aby spełnić moje wymagania. Analizuje dane wyjściowe polecenia diskpart.exe „LIST VOLUME”. To może wydawać się trochę brudne i brzydkie, ale teraz jest to najlepsza opcja, jaką widziałem.

Skrypt pojawiający się na połączonej stronie jest gotowy do użycia z Nagios / NSClient ++ . Jeśli znasz trochę VBScript, łatwo to zmodyfikować, aby wysyłać wiadomości e-mail zamiast drukowania informacji o stanie.

Jeśli nie znasz VBScript, chętnie dam ci zmodyfikowaną wersję, która zrobi wszystko, co chcesz.


VBScript nie tyle. C # z drugiej strony;) ​​Skrypt nie wygląda tak źle.
— NitroxDM

Kolejny artykuł na ten temat i sposób obejścia tego problemu: eventlogblog.com/blog/2012/02/…
— Lucky Luke

Te (skrypty @LuckyLuke i ThatGraemeGuy) są świetne, ale brakuje im obsługi języka. Oba moje serwery są w języku angielskim, więc dobrze. Ale moja maszyna do pobierania jest w języku francuskim. Byłem w stanie wymyślić (ze skryptu ThatGraemeGuy) RE0.Pattern = "Healthy|Sain" RE1.Pattern = "Mirror|RAID-5|Miroir", ale nie RE2i RE3to nie są „Failed | At risk” i „Rebuild”. Niestety jest to złe, ponieważ te, głównie te RE2, są ważne. Czy mógłbyś dostać te przetłumaczone na francuski, czy może w inny sposób, który nie polegałby na języku?
— Mistrz DJon

1
Dobra uwaga - ale instalacja systemu Windows w każdym języku i obserwowanie ciągów byłoby bardzo czasochłonne. Na twoim miejscu zainstalowałbym francuski system Windows na maszynie wirtualnej i symulowałbym awarię RAID za pomocą dysków wirtualnych. Prawdopodobnie możesz gdzieś wyodrębnić ciągi z biblioteki DLL, ale prawdopodobnie zajęłoby to równie dużo czasu.
— Lucky Luke

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

Zamień znajdź „SSD” na „mirror” (lub pasek ... cokolwiek) lub nazwę woluminu. (moje woluminy są nazywane SSD1 + SSD2)

Wstaw plik wsadowy z wyłączonym @echo i gotowe. :)

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

Powyżej linii potrzebna jest partia. =)

Notatki

  • Aby to działało, musisz mieć nazwę woluminu, w przeciwnym razie zmień tokeny natokens=8


0

Używam tego brzydkiego pliku wsadowego do monitorowania ponad stu serwerów, aby sprawdzić status kopii lustrzanej, a wynik jest piękny. Jest to wtyczka kliencka nsclient ++, która sprawdza pasywnie co cztery godziny, aby wysłać wynik do serwera 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

podczas gdy wszystkie te odpowiedzi dadzą ci status, żadna z nich nie jest poprawną odpowiedzią.

w środowisku korporacyjnym powinieneś używać narzędzi do monitorowania serwerów i sieci klasy korporacyjnej. prawie wszystkie narzędzia monitorowania, z których korzystałem, automatycznie monitorują kondycję każdego obsługiwanego macierzy RAID, oprogramowania lub sprzętu. monitorują także inne rzeczy, o których powinieneś wiedzieć, takie jak temperatura, wolne miejsce na dysku itp. Czy naprawdę chcesz utworzyć niestandardowy skrypt dla każdej możliwej rzeczy, którą należy monitorować?

zrób sobie przysługę i pomiń wszystkie sznurki do butów i gumy do żucia i użyj odpowiedniego narzędzia.


Narzędzia takie jak co?
— NitroxDM

1
Wiatry słoneczne, n-zdolne, co słychać, przyprawa działa, nawet menedżer wglądu HP
— longneck

Nie rozumiem, jak ważna lub pomocna jest twoja odpowiedź, to tylko opinia. Istnieje o wiele bardziej wydajne narzędzia niż Solarwinds (n-stanie pochodzi z Solarwinds btw). Sytuacja również się zmieniła, a nalot na oprogramowanie nie jest już „sznurkiem”: smbitjournal.com/2016/12/the-software-raid-raid-inflection-point
— Lucky Luke

Nie powiedziałem, że nalot na oprogramowanie jest sznurkiem. Powiedziałem, że opracowanie procesów sznurowania butów lub procedur monitorowania jest złym pomysłem. (A kiedy pisałem odpowiedź, SolarWinds jeszcze nie kupił n-stanie.)
— longneck
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.