Windows에서 미러링 된 디스크의 상태를 어떻게 모니터링합니까?


12

Windows 2003 Server에 미러링 된 동적 디스크가 있습니다. 볼륨 상태를 어떻게 모니터링합니까?

볼륨에 문제가있을 때 서버가 전자 메일을 보내도록하는 방법이 있습니까? 서버가 SMART 테스트를 수행 할 수있는 방법이 있습니까?

편집 : 클라이언트 서버에 로그인하고 DISKPART LIST VOLUME을 실행하고 이것을 보는 것과 같은 WTF는 없습니다.

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 2016 년

@Chris_k 맞습니다. 마지막으로 디스크가 고장 났을 때 우연히 발견했습니다. 완전히 수용 할 수없는 엔터프라이즈 시스템에서. 백업 시스템이 있습니다. 그러나 그것은 거울을 만드는 요점이 아닙니다.
NitroxDM

그런 정보로 지금은 그 스크립트를 테스트하기에 좋은 시간이라고 생각합니다. 승리를위한 Windows!
NitroxDM

여기에 나열된 두 가지 답변을 모두 사용하여 솔루션을 개발 중입니다.
NitroxDM

답변:


5

얼마 전에 같은 질문이있었습니다. 내가 생각한 첫 번째 일은 WMI를 사용하는 것이었지만 이상한 이유로 WMI는 일반적인 Win32_ * 클래스를 통해 RAID 볼륨의 상태를 노출시키지 않습니다.

결국 이 기사에서 스크립트를 우연히 발견 하고 요구 사항에 맞게 몇 가지 수정 작업을 수행했습니다. 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& "다시"| "위험에 실패"되는. 불행히도, 이것은 대부분 나쁜 것들이기 때문에 나쁘다 RE2. 프랑스어로 번역 된 언어 나 언어에 의존하지 않는 다른 방식으로 번역 할 수있는 곳이 있습니까?
Master DJon

1
좋은 지적-그러나 모든 언어로 Windows를 설치하고 문자열을 관찰하는 데 많은 시간이 소요됩니다. 내가 당신이라면 VM에 프랑스어 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를 끄고 ur를 완료 한 배치 파일을 사용하십시오. :)

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

위의 라인은 배치에 필요합니다. =)

노트

  • 이 기능을 사용하려면 볼륨 이름이 필요합니다. 그렇지 않으면 토큰tokens=8


0

이 추한 배치 파일을 사용하여 백 개 이상의 서버를 모니터링하여 미러 상태를 확인하면 결과가 좋습니다. nagios 서버에 결과를 보내기 위해 4 시간마다 수동 검사를 수행하는 nsclient ++ 클라이언트 플러그인입니다.

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-able, 무슨 일이야, 향신료 작업, 심지어 HP 통찰력 관리자
longneck

귀하의 답변이 얼마나 관련성이 있거나 도움이되는지 모르겠습니다. 단지 의견 일뿐입니다. Solarwinds보다 더 유용한 도구가 있습니다 (n-able은 Solarwinds btw에서 제공). 상황도 바뀌었고 소프트웨어 공격대는 더 이상 "신발 끈"이 아닙니다 : smbitjournal.com/2016/12/the-software-raid-inflection-point
Lucky Luke

나는 소프트웨어 공격이 신발 끈이라고 말하지 않았다. 나는 신발 끈 공정이나 모니터링 절차를 개발하는 것이 나쁜 생각이라고 말했다. (그리고 제가 답변을 썼을 때, SolarWinds는 아직 n-able을 구입하지 않았습니다.)
longneck
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.