Inicio > Miscs > Administrando Raids por software bajo Linux

Administrando Raids por software bajo Linux

jueves, 21 de julio de 2011 Dejar un comentario Ir a comentarios

Bueno, esto intentará ser una guía básica / apuntes sobre el uso y administración de RAIDs bajo Linux.

Demás está explicar que todo lo que voy a mencionar acá, puede destruir tu información. Vas a estar trabajando con particiones, discos, y la posibilidad de que te equivoques y destruyas tus datos es mucha. Por lo tanto, antes de hacer cualquier cosa, hace BACKUPS y preferentemente proba todo esto en una virtual machine o un sistema que no sea productivo.
Y.. demás aún esta explicar, que no hay ninguna garantía de todo lo aquí detallado, si rompes algo, a llorar a /dev/null.

Aclarado esto, continuamos.

La idea es crear un raid5, compuesto por 4 discos de 200GB, generando de esta forma un volumen único de 550GB aprox, el cuál montaremos en /opt/data.

En nuestro caso, vamos a usar 4 discos SATA, y crearemos un raid5 sin spare. Dicho discos son /dev/sda, /dev/sdb, /dev/sdc, /dev/sdd.

Crear un nuevo raid:

– Elegir los discos que vamos a usar en el raid y crear en cada uno una partición con tipo = fd (Linux raid autodetect). En nuestro caso, como resultado vamos a tener /dev/sda1, /dev/sdb1, /dev/sdc1, /dev/sdd1.

– Instalar el paquete mdadm (en Debian, apt-get install mdadm).
– Crear el nuevo raid, ejecutando:

# mdadm --create --verbose /dev/md0 --level=5 --raid-devices=4 /dev/sda1 /dev/sdb1 /dev/sdc1 /dev/sdd1

Una vez creado, generamos el archivo de configuración del mdadm, para futuros arranques:

# mdadm --detail --scan > /etc/mdadm/mdadm.conf

Si queremos ver que este todo funcionando, podemos ejecutar los siguientes comandos:

# mdadm --query --detail /dev/md0

/dev/md0:
        Version : 00.90
  Creation Time : Tue May 17 16:19:27 2011
     Raid Level : raid5
     Array Size : 586075008 (558.92 GiB 600.14 GB)
  Used Dev Size : 195358336 (186.31 GiB 200.05 GB)
   Raid Devices : 4
  Total Devices : 4
Preferred Minor : 0
    Persistence : Superblock is persistent

    Update Time : Wed May 18 11:23:05 2011
          State : clean
 Active Devices : 4
Working Devices : 4
 Failed Devices : 0
  Spare Devices : 0

         Layout : left-symmetric
     Chunk Size : 64K

           UUID : a9f97877:9a6263e2:ec065ea8:d229bc07
         Events : 0.66

    Number   Major   Minor   RaidDevice State
       0       8        1        0      active sync   /dev/sda1
       1       8       17        1      active sync   /dev/sdb1
       2       8       33        2      active sync   /dev/sdc1
       3       8       49        3      active sync   /dev/sdd1

o


# cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md0 : active raid5 sda1[0] sdd1[3] sdc1[2] sdb1[1]
      586075008 blocks level 5, 64k chunk, algorithm 2 [4/4] [UUUU]

unused devices:

Si todo esta OK, ya tenemos nuestro raid listo para ser usado, por lo tanto vamos a formatear directamente el nuevo dispositivo creado:

# mkfs.ext3 /dev/md0

Finalmente, creamos el directorio para montar dicho filesystem y procedemos a montarlo:

# mkdir /opt/data
# mount /dev/md0 /opt/data/

Si queremos que se monte automáticamente la próxima vez que iniciemos el equipo, deberemos agregarlo al archivo /etc/fstab, agregando algo como:

/dev/md0	/opt/data	ext3	defaults	0	0

Ver información y estado del raid

Podemos usar varios métodos:

# mdadm --query --detail /dev/md0

 

# cat /proc/mdstat

Ambos nos darán un informe detallado del estado general del raid, en que estado esta cada disco, si hay algun disco fallado, etc.

Agregar nuevos discos al Raid

Conectamos el nuevo disco, creamos la partición tipo ‘fd’ y luego ejecutamos:

# mdadm --add /dev/md0 /dev/sde1
# mdadm --grow /dev/md0 --raid-devices=5

Eso agregará el disco /dev/sde a nuestro dispositivo raid md0 ya existente.
El número de raid-device debe ser incrementado en la cantidad de nuevos discos que ponemos.

Tener en cuenta que esto extiende/agranda el dispositivo md0, pero no así las particiones contenidas en este. Por lo que luego deberemos resizear las particiones. (usando gparted, partition magic o similar)

Remplazar un disco dañado

– Cambiar el disco roto.
– Particionarlo con sfdisk:

# sfdisk -d /dev/sdX | sfdisk /dev/sdN

Donde X es un disco preexistente funcional y N es el disco nuevo.

– Agregar el disco o particiones al raid:

# mdadm --add /dev/md0 /dev/sdc1

Donde scd1 es el nuevo disco.

Marcar un disco como defectuoso/dañado

Si recibiste un aviso de S.M.A.R.T. indicando que un disco ha comenzado a fallar, podes indicarle al mdadm que ese disco está fallando con la opción –fail;
En caso de que tengas discos de reserva(spare) asignados al raid, mdadm se encargará de comenzar a reconstruir el raid en el disco de reserva.

Entonces, para marcar el disco scd como dañado en nuestro raid, debemos ejecutar:

# mdadm --fail /dev/md0 /dev/sdc1

Links interesantes / relacionados:

Montar un radi5 por software: http://www.makeinstall.es/2011/02/montar-un-raid5-por-software.html
Reconstruir un raid tras fallo en disco: http://www.makeinstall.es/2011/04/reconstruir-raid5-tras-fallo-en-disco.html
Software Raid + LVM (Guia ArchLinux): https://wiki.archlinux.org/index.php/Installing_with_Software_RAID_or_LVM

Categories: Miscs Tags:
  1. tratamie
    jueves, 12 de julio de 2012 a las 11:57 | #1

    A mi se me rompio un raid y lo lleve a Onretrieval, donde recuperan datos.

    El raid lo administraba con LInux muy bien hasta que tuve esa desgracia de un problema mecanico en uno de los discos…

    Queria consultar si un servidor en la nube puede ser administrado con Linux.

    saludos.

  1. Sin trackbacks aún.