Windows'da yansıtılmış bir diskin sağlığını nasıl izlersiniz?


12

Windows 2003 Sunucumda Yansıtılmış Dinamik diskim var. Birimin sağlığını nasıl izliyorsunuz?

Birimle ilgili bir sorun olduğunda sunucunun e-posta göndermesinin bir yolu var mı? Sunucunun SMART testlerini çalıştırmasının bir yolu var mı?

DÜZENLEME: Hiçbir şey WTF'nin bir istemci sunucuya giriş yapmayı, DISKPART LIST VOLUME çalıştırmayı ve bunu görmeyi sevdiğini söylemez.

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

Burada bir yazılım aynasından bahsediyoruz, değil mi? Eğer öyleyse, harika bir soru.
Chris_K

@Chris_k Doğru. En son bir disk başarısız olduğunda, sadece tesadüfen öğrendim. Tamamen kabul edilemez bir kurumsal sistemde. Bir yedekleme sistemim var. Ama bu bir ayna yapmanın amacı değil.
NitroxDM

Bunun gibi bilgilerle sanırım bu senaryoyu test etmek için iyi bir zaman. Windows kazanmak için!
NitroxDM

Burada listelenen cevapların her ikisini de kullanarak bir çözüm üzerinde çalışıyorum.
NitroxDM

Yanıtlar:


5

Bir süre önce aynı soruyu sordum. Düşündüğüm ilk şey WMI kullanmaktı, ama garip bir nedenden ötürü, WMI normal Win32_ * sınıflarının hiçbirinden bir RAID biriminin sağlığını ortaya çıkarmaz.

Sonunda bu makalede senaryo boyunca tökezledi ve benim ihtiyaçlarına uygun birkaç değişiklik yaptım. Diskpart.exe'nin "LIST VOLUME" komutunun çıktısını ayrıştırır. Bu biraz kirli ve çirkin görünebilir, ama şu anda gördüğüm en iyi seçenek.

Bağlantı verilen sayfada göründüğü gibi komut dosyası Nagios / NSClient ++ ile kullanılmaya hazırdır . Biraz VBScript biliyorsanız, durum bilgisi yazdırmak yerine e-posta göndermek için bunu değiştirmek yeterince kolaydır.

VBScript'i bilmiyorsanız, memnuniyetle istediğiniz her şeyi yapacak olan değiştirilmiş bir sürümünü vereceğim.


VBScript çok fazla değil. C # öte yandan;) Script çok kötü görünmüyor.
NitroxDM

Bu konuda ve bu soruna geçici bir çözüm bulmak için başka bir makale: eventlogblog.com/blog/2012/02/…
Şanslı Luke

Bunlar (@LuckyLuke & ThatGraemeGuy komut dosyaları) harika, ancak dil desteğinden yoksundur. Her iki sunucu İngilizce, çok iyi. Ama indirme makinem Fransızca. Ben (ThatGraemeGuy komut) şekil almaya başladık RE0.Pattern = "Healthy|Sain" RE1.Pattern = "Mirror|RAID-5|Miroir"ancak, RE2& RE3& "Yeniden" | "riskini göze alarak başarısız" olduğunu. Ne yazık ki, bu kötü çünkü RE2en önemlileri bunlar. Fransızca tercüme yapabileceğim bir yer bulabilecek misiniz yoksa belki de bu dile bağlı olmayan başka bir yol var mı?
Usta DJon

1
İyi bir nokta - ama Windows'u her dilde yüklemek ve dizeleri gözlemlemek çok zaman alıcı olurdu. Ben olsaydım, bir VM'ye bir Fransız Penceresi kuracak ve Sanal Diskler ile bir RAID hatası simüle edecektim. Muhtemelen bir yerde bir DLL dizeleri ayıklayabilirsiniz, ancak bu muhtemelen aynı derecede zaman alıcı olacaktır.
Şanslı Luke

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

"SSD" bul "ayna" (veya şerit ... ne olursa olsun) veya birim adınızla değiştirin. (hacimlerim SSD1 + SSD2 olarak adlandırılıyor)

@Echo kapalı ve ur tamamlanmış bir toplu iş dosyası içinde sopa. :)

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

Toplu işlem için yukarıdaki satır gereklidir. =)

notlar

  • İşe bunun için bir birim adı olması gerekir, başka değişiklik Jetonlar içintokens=8


0

Ayna durumunu kontrol etmek için yüzden fazla sunucuyu izlemek için bu çirkin toplu iş dosyasını kullanıyorum ve sonuç güzel. Nagios sunucusuna sonuç göndermek için her dört saatte bir pasif kontrol yapmak nsclient ++ istemci eklentisidir.

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

tüm bu cevaplar size statü verirken, hiçbiri doğru cevap değildir.

kurumsal bir ortamda, kurumsal düzeyde sunucu ve ağ izleme araçları kullanıyor olmalısınız. Kullandığım izleme araçlarının neredeyse tamamı, desteklenen herhangi bir RAID dizisinin, yazılımının veya donanımının sağlığını otomatik olarak izler. ayrıca sıcaklık, boş disk alanı vb. gibi bilmeniz gereken diğer şeyleri de izlerler. Gerçekten izlenmesi gereken her şey için özel bir komut dosyası oluşturmak istiyor musunuz?

Kendinize bir iyilik yapın ve tüm bu ayakkabı ipini ve sakız malzemelerini atlayın ve doğru aracı kullanın.


Ne gibi araçlar?
NitroxDM

1
Güneş rüzgarları, n-güçlü,
naber

Cevabınızın ne kadar alakalı veya yararlı olduğunu görmüyorum, sadece bir fikir. Solarwinds'den çok daha yetenekli araçlar var (n-mümkün Solarwinds btw'den). İşler de değişti ve yazılım baskısı artık "ayakkabı ipi" değil: smbitjournal.com/2016/12/the-software-raid-inflection-point
Lucky Luke

Yazılım baskısının ayakkabı dizisi olduğunu söylemedim. Dedim ki ayakkabı dizisi süreçleri veya izleme prosedürleri geliştirmek kötü bir fikirdi. (Ve cevabımı yazdığım sırada, SolarWinds henüz n-güçlü satın
almamıştı
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.