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 houver um problema com o volume? Existe uma maneira de o servidor executar testes SMART?

Edição: nada diz WTF como fazer logon em um servidor cliente, executando o DISKPART LIST VOLUME e vendo isso.

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

Estamos falando de um espelho de software aqui, certo? Se assim for, ótima pergunta.
22410 Chris_K

@Chris_k Correto. A última vez que um disco falhou, só descobri por acaso. Em um sistema corporativo totalmente inaceitável. Eu tenho um sistema de backup. Mas esse não é o objetivo de fazer um espelho.
NitroxDM

Com informações como essa, acho que agora é um bom momento para testar esse script. Windows para a vitória!
NitroxDM

Estou trabalhando em uma solução usando as duas respostas listadas aqui.
NitroxDM

Respostas:


5

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

Acabei encontrando o script deste artigo e fiz algumas modificações para atender aos meus requisitos. 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 eu já vi.

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

Se você não conhece o VBScript, terei prazer em fornecer uma versão modificada que fará o que você quiser.


VBScript não muito. C # por outro lado;) O script não parece muito ruim.
NitroxDM

Outro artigo sobre este tópico e como solucionar esse problema: eventlogblog.com/blog/2012/02/…
Lucky Luke

Esses (scripts do LuckyLuke e ThatGraemeGuy) são ótimos, mas carecem de suporte ao idioma. Ambos os meus servidores estão em inglês, tão bom. Mas, minha máquina de download está em francês. Consegui descobrir (a partir do script ThatGraemeGuy) RE0.Pattern = "Healthy|Sain" RE1.Pattern = "Mirror|RAID-5|Miroir", mas não RE2& RE3que são "Falha | em risco" e "Reconstruir". Infelizmente, isso é ruim porque esses, principalmente os RE2, são os mais importantes. Você poderia encontrar as traduções em francês ou talvez de outra maneira que não dependesse do idioma?
Mestre Djon

1
Bom ponto - mas seria muito demorado instalar o Windows em todos os idiomas e observar as seqüências de caracteres. Se eu fosse você, instalaria um Windows francês em uma VM e simularia uma falha de RAID com discos virtuais. Provavelmente, você pode extrair as seqüências de caracteres de uma DLL em algum lugar, mas isso provavelmente consumirá muito tempo.
Lucky Luke

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

Substitua find "SSD" por "mirror" (ou listra ... o que seja) ou o nome do seu volume. (meus volumes são nomeados SSD1 + SSD2)

Coloque um arquivo em lotes com @echo desativado 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 que isso funcione; caso contrário, altere os tokens paratokens=8


0

Eu uso esse arquivo em lotes feio para monitorar mais de cem servidores para verificar o status do espelho e o resultado é adorável. É um plugin do cliente nsclient ++ para verificar passivamente a cada quatro horas para enviar o resultado ao 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

-1

Embora todas essas respostas recebam o status, nenhuma delas é a resposta correta.

em um ambiente corporativo, você deve usar ferramentas de monitoramento de rede e servidor de nível corporativo. praticamente todas as ferramentas de monitoramento que eu usei monitoram automaticamente a saúde de qualquer matriz, software ou hardware RAID suportado. Eles também monitoram outras coisas das quais você deve estar ciente, como temperatura, espaço livre em disco, etc. Deseja realmente criar um script personalizado para todas as coisas possíveis que precisam ser monitoradas?

faça um favor a si mesmo, pule todo esse material de cordão de sapato e chiclete e use a ferramenta certa.


Ferramentas como o que?
NitroxDM 26/09/12

1
Ventos solares, on-capazes, o que está acontecendo, obras de especiarias, mesmo Insight Manager HP
longneck

Não vejo como sua resposta é relevante ou útil, é apenas uma opinião. Existem ferramentas muito mais capazes do que o Solarwinds (o n-capaz é do Solarwinds btw). As coisas também mudaram, e RAID software não é "shoe-string" mais: smbitjournal.com/2016/12/the-software-raid-inflection-point
Lucky Luke

Eu não disse que a invasão de software é uma corda de sapato. Eu disse que o desenvolvimento de processos ou procedimentos para monitoramento era uma má idéia. (E no momento que eu escrevi a minha resposta, SolarWinds não tinha comprado n-capazes ainda.)
longneck
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.