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
NitroxDM
fonte
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.

ThatGraemeGuy
fonte
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
Mindfart
fonte
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
user191549
fonte
-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.

pescoço longo
fonte
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