04 marzo 2005

Detectando Fallos en array por Software

La información presentada está recogida del Software Raid HOWTO
  • Consultando el estado de los arrays.
Para ello lo primero que habrá que hacer es echar un vistazo rápido a "/proc/mdstat" y nos dará un rápido diagnóstico de cómo está funcionando el sistema en RAID.
Por ejemplo:

Personalities : [raid1]
              read_ahead 1024 sectors
md5 : active raid1 sdb5[1] sda5[0]
4200896 blocks [2/2] [UU]

Tenemos que buscar los números que están entre corchetes [#/#]. Estos números nos van a indicar [número de discos en el array / número de
discos activos].

El número de que aparece después de cada dispositivo simplemente indica su posición en el Array.
Si hay un disco roto, después del número de posición aparecerá una F.

Los comandos para ver el estado de los arrays serían:

mdadm --detail /dev/mdx
lsraid -a /dev/mdx

Donde la x indica el número de dispositivo.

  • Simulando un fallo en disco
Para simular un fallo por hardware hay que apagar el ordenador, desenchufar un disco y encenderlo otra vez. No se hace con el encendido porque se podrían quemar componentes, a menos que el ordenador esté preparado para hotswapping. Con el mdadm veríamos cómo tenemos la unidad fallando.

Para simular un fallo por software haríamos:

raidsetfaulty /dev/md1 /dev/sdc2

y eso hace el disco /dev/sdc2 falle en el array /dev/md1. El equivalente a esto en mdadm es

mdadm --manage --set-faulty /dev/md1 /dev/sdc2

Ahora veríamos cómo se empiezan a generar varios fallos en el los logs.
Si hay discos libres pertenecientes al RAID podríamos ver cómo comienza la reconstrucción con dos comandos, o bien lsraid de las raidtools, o bien el mdadm:

    lsraid -a /dev/md1 
    mdadm --detail /dev/md1
  • Simulación de Corrupción de datos
El sistema RAID no está pensado para comprobar la integridad los datos. También es difícil corromperlos en un RAID, pero si se corrompen el sistema RAID no lo va a detectar.

  • Monitorización de Sistemas RAID
Mdadm se puede utilizar para monitorizar las particiones RAID y generar eventos, ya sean enviar alertas por mail, ejecutar algún programa en concreto, etc...

mdadm --monitor --mail=root@localhost --delay=1800 /dev/md2

Con este comando estamos diciendo a mdadm que monitorize el dispositivo /dev/md2 cada 1800 segundosy además que envíe el resultado a root@localhost.

nohup mdadm --monitor --scan --daemonise --mail=root@localhost /dev/md0 /dev/md1 &

Hacemos que se demonice la monitorización, que por defecto no está demonizada

No hay comentarios: