Como você monitora a integridade de um disco espelhado no Windows?

12

Eu tenho um disco dinâmico espelhado no meu Windows 2003 Server. Como você monitora a saúde do volume?

Existe uma maneira de o servidor enviar um email quando há um problema com o volume? Existe uma maneira de fazer o servidor executar o S.M.A.R.T. testes?

EDITAR: Nada diz WTF como logar em um servidor cliente, executando DISKPART LIST VOLUME e vendo isto.

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
    
por NitroxDM 10.06.2010 / 04:53

5 respostas

5

Eu tive a mesma pergunta há um tempo atrás. A primeira coisa que pensei foi usar o WMI, mas por alguma razão estranha, o WMI não expõe a integridade de um volume RAID por meio de qualquer uma das classes Win32_ * normais.

Eu finalmente deparei com o script deste artigo e fiz algumas modificações para atender às minhas necessidades. Ele analisa a saída do comando "LIST VOLUME" do diskpart.exe. Isso pode parecer um pouco sujo e feio, mas agora é a melhor opção que já vi.

O script como aparece na página vinculada está pronto para ser usado com Nagios / NSClient ++ . Se você conhece um pouco do VBScript, é fácil modificá-lo para enviar e-mails em vez de imprimir informações de status.

Se você não conhece o VBScript, eu de bom grado lhe darei uma versão modificada que fará o que você quiser.

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

Substitua encontrar "SSD" por "espelho" (ou faixa ... o que for) ou o nome do seu volume. (meus volumes são chamados SSD1 + SSD2)

Cole em um arquivo de lote com @echo off e pronto. :)

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

A linha acima é necessária para o lote. =)

Notas

  • Você precisa ter um nome de volume para isso funcionar, caso contrário, altere tokens para tokens=8
por 04.11.2011 / 14:21
1

Smartmontools ( link ) tem uma versão do windows, mas não sei se roda em 2K8

    
por 25.06.2010 / 19:57
0

Eu uso esse arquivo em lote feio para monitorar mais de cem servidores para verificar o status do espelho e o resultado é ótimo. É um plugin cliente nsclient ++ para fazer verificação passiva a cada quatro horas para enviar o resultado para o servidor 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
    
por 26.09.2013 / 06:33
-1

enquanto todas essas respostas lhe darão o status, nenhuma delas é a resposta correta.

em um ambiente corporativo, você deve usar ferramentas de monitoramento de rede e servidor de nível empresarial. praticamente todas as ferramentas de monitoramento que eu usei monitoram automaticamente a integridade de qualquer array, software ou hardware RAID suportado. Eles também monitoram outras coisas que você deve saber, como temperatura, espaço livre em disco, etc. Você realmente quer criar um script personalizado para cada coisa que precisa ser monitorada?

faça um favor a si mesmo e pule todas essas coisas de chiclete e chicletes e use a ferramenta certa.

    
por 26.09.2012 / 22:25