Bagaimana Anda memantau kesehatan disk cermin di Windows?

12

Saya memiliki disk Dinamis Mirror di Windows 2003 Server saya. Bagaimana Anda memantau kesehatan volume?

Apakah ada cara agar server mengirim email ketika ada masalah dengan volume? Apakah ada cara agar server menjalankan tes SMART?

EDIT: Tidak ada yang mengatakan WTF suka masuk ke server klien, menjalankan DISKPART LIST VOLUME dan melihat ini.

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
NitroxDM
sumber
Kita berbicara tentang cermin perangkat lunak di sini, kan? Jika demikian, pertanyaan bagus.
Chris_K
@ Chris_k Benar. Terakhir kali disk gagal saya hanya menemukan secara kebetulan. Pada sistem perusahaan yang sepenuhnya tidak dapat diterima. Saya memiliki sistem cadangan. Tapi itu bukan titik melakukan cermin.
NitroxDM
Dengan info seperti itu saya kira sekarang adalah saat yang tepat untuk menguji skrip itu. Windows untuk menang!
NitroxDM
Saya sedang mengerjakan solusi menggunakan kedua jawaban yang tercantum di sini.
NitroxDM

Jawaban:

5

Saya punya pertanyaan yang sama beberapa waktu lalu. Hal pertama yang saya pikirkan adalah menggunakan WMI, tetapi untuk beberapa alasan aneh, WMI tidak mengekspos kesehatan volume RAID melalui kelas Win32_ * normal.

Saya akhirnya menemukan skrip dalam artikel ini dan membuat beberapa modifikasi untuk memenuhi persyaratan saya. Ini mem-parsing output dari perintah "LIST VOLUME" diskpart.exe. Ini mungkin tampak sedikit kotor dan jelek, tetapi sekarang ini pilihan terbaik yang pernah saya lihat.

Script seperti yang ditampilkan pada halaman tertaut siap digunakan dengan Nagios / NSClient ++ . Jika Anda tahu sedikit VBScript, cukup mudah untuk memodifikasi ini untuk mengirim e-mail alih-alih mencetak informasi status.

Jika Anda tidak tahu VBScript, saya dengan senang hati akan memberi Anda versi modifikasi yang akan melakukan apa pun yang Anda inginkan.

ThatGraemeGuy
sumber
VBScript tidak begitu banyak. C # di sisi lain;) Skrip tidak terlihat terlalu buruk.
NitroxDM
Artikel lain tentang topik ini dan cara mengatasi masalah ini: eventlogblog.com/blog/2012/02/…
Lucky Luke
Mereka (skrip @LuckyLuke & ThatGraemeGuy) bagus, tetapi kurang dukungan bahasa. Kedua server saya menggunakan bahasa Inggris, sangat bagus. Tapi, mesin unduh saya dalam bahasa Prancis. Saya sudah bisa mengetahui (dari skrip ThatGraemeGuy) RE0.Pattern = "Healthy|Sain" RE1.Pattern = "Mirror|RAID-5|Miroir", tetapi tidak RE2& RE3itu "Gagal | Berisiko" & "Bangun Kembali". Sayangnya, ini buruk karena mereka, sebagian besar RE2, adalah yang penting. Apakah Anda di mana saya bisa mendapatkan yang diterjemahkan dalam bahasa Prancis atau mungkin cara lain yang tidak bergantung pada bahasa?
Master DJon
1
Poin bagus - tetapi akan sangat memakan waktu untuk menginstal Windows dalam setiap bahasa dan mengamati senarnya. Jika saya jadi Anda maka saya akan menginstal Windows Perancis di VM dan mensimulasikan kegagalan RAID dengan Disk Virtual. Anda mungkin dapat mengekstraksi string dari DLL di suatu tempat, tetapi itu mungkin akan sama-sama memakan waktu.
Lucky Luke
2
for /f "tokens=4,9 delims= " %a IN ('echo list volume ^| diskpart ^| find "SSD"') do echo %a %b

Ganti find "SSD" dengan "mirror" (atau strip ... apa pun) atau nama volume Anda. (volume saya dinamai SSD1 + SSD2)

Tetap di file batch dengan @echo off dan Anda selesai. :)

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

Baris di atas diperlukan untuk batch. =)

Catatan

  • Anda harus memiliki nama volume untuk ini untuk bekerja, perubahan lain token untuktokens=8
Mindfart
sumber
0

Saya menggunakan file batch jelek ini untuk memonitor lebih dari seratus server untuk memeriksa status mirror dan hasilnya bagus. Ini adalah plugin klien nsclient ++ untuk melakukan pemeriksaan pasif setiap empat jam untuk mengirim hasil ke server 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
pengguna191549
sumber
-1

sementara semua jawaban ini akan memberi Anda status, tidak satupun dari mereka adalah jawaban yang benar.

di lingkungan perusahaan, Anda harus menggunakan server dan alat pemantauan jaringan tingkat perusahaan. hampir semua alat pemantauan yang saya gunakan secara otomatis memantau kesehatan setiap array RAID yang didukung, perangkat lunak atau perangkat keras. mereka juga memantau hal-hal lain yang harus Anda ketahui, seperti suhu, ruang disk kosong, dll. apakah Anda benar-benar ingin membuat skrip khusus untuk setiap hal yang mungkin perlu dipantau?

bantulah dirimu dan lewati semua tali sepatu dan permen karet ini dan gunakan alat yang tepat.

leher panjang
sumber
Alat seperti apa?
NitroxDM
1
Angin matahari, tidak bisa, ada apa, bumbu bekerja, bahkan HP insight manager
longneck
Saya tidak melihat bagaimana jawaban Anda relevan atau membantu, itu hanya pendapat. Ada banyak alat yang lebih mampu daripada Solarwinds (n-mampu dari Solarwinds btw). Berbagai
Lucky Luke
Saya tidak mengatakan bahwa serangan perangkat lunak adalah masalah. Saya mengatakan mengembangkan proses-proses sepatu atau prosedur untuk pemantauan adalah ide yang buruk. (Dan pada saat saya menulis jawaban saya, SolarWinds belum membeli n-mampu.)
longneck