systemadmin.es > Storage > Crear un RAID por software

Crear un RAID por software

En sistema sin una controladora RAID siempre tenemos la opción de usar un RAID por software. Vamos a ver como crearlo por software con mdadm:

Para inicializar un RAID por software deberemos usar el comando mdadm con la opción –create y el nombre del dispositivo de bloques del tipo md (por ejemplo /dev/md1) que queremos usar.

Luego las opciones que podemos escoger según nos interese son:

  • –level: Indicamos el nivel de RAID que queremos usar. Un mismo tipo de RAID lo podemos definir de diversas formas, las opciones son: linear, raid0, 0, stripe, raid1, 1, mirror, raid4, 4, raid5, 5, raid6, 6, raid10, 10, multipath, mp y faulty
  • –raid-devices: Indicamos el número de dispositivos en el RAID. Evidentemente algunos valores no tienen sentido para algunos tipos de RAID: Tiene sentido (y se permite) definir un RAID1 con un solo disco (RAID en fallo) pero no un RAID5 con un solo disco.
  • –spare-devices: Indicamos el número de discos en hot-spare. Esto significa que estan dedicados a este RAID pero a la espera que otro disco falle. Por lo tanto, cuando un disco falla automáticamente se pasa a usar el disco de hot-spare.
  • Discos reales que formaran parte del RAID

Por ejemplo, para definir el RAID /dev/md2 como un RAID-1 entre /dev/sda3 y /dev/sdb3 pero sin discos de spare sería:

# mdadm --create /dev/md2 --level=1 --raid-devices=2 /dev/sda3 /dev/sdb3
mdadm: array /dev/md2 started.

A continuación mediante el /proc/mdstat podremos ver el proceso de inicialización del RAID:

# cat /proc/mdstat
Personalities : [raid1]
md2 : active raid1 sdb3[1] sda3[0]
      927416320 blocks [2/2] [UU]
      [>....................]  resync =  0.4% (4321728/927416320) finish=169.5min speed=90728K/sec

md1 : active raid1 sdb2[1] sda2[0]
      8385856 blocks [2/2] [UU]

md0 : active raid1 sdb1[1] sda1[0]
      40957568 blocks [2/2] [UU]

unused devices: 

Para ver el detalle del RAID podemos usar la opción –query de mdadm:

# mdadm --query --detail /dev/md0
/dev/md0:
        Version : 0.90
  Creation Time : Mon Feb  7 21:39:04 2011
     Raid Level : raid1
     Array Size : 40957568 (39.06 GiB 41.94 GB)
  Used Dev Size : 40957568 (39.06 GiB 41.94 GB)
   Raid Devices : 2
  Total Devices : 2
Preferred Minor : 0
    Persistence : Superblock is persistent

    Update Time : Tue Feb  8 04:20:34 2011
          State : clean
 Active Devices : 2
Working Devices : 2
 Failed Devices : 0
  Spare Devices : 0

           UUID : e09bdba9:480bfcbb:9d5dad5c:42fe602b
         Events : 0.8

    Number   Major   Minor   RaidDevice State
       0       8        1        0      active sync   /dev/sda1
       1       8       17        1      active sync   /dev/sdb1

Finalmente nos quedará generar el fichero mdadm.conf con los RAIDs que hayamos creado mediante mdadm com las opciones –detail y –scan:

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

11 comments to “Crear un RAID por software”

  1. ¿Qué sucede si perdemos el sistema operativo y tenemosq reinstalar desde cero?
    Realizando los mismos datos ¿se puede montar cómo estaba antes, o pensará que ha habido problemas y no podremos acceder a los datos?

  2. Buenas
    Yo lo he usado en instalación, siempre con particionado manual y al reinstalar no se pierde nada, no como en lvm

  3. Si reinstalas sin tocar las particiones no se pierde nada, puedes generar el fichero de configuración (que lo actualizo al post porque se me ha pasado) y volver a cargar los RAIDs con:

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

    Para el caso de LVM es lo mismo, con los comandos pvscan, vgscan y lvscan

  4. Como se monitorea?, o como sabemos cuando un disco empieza a fallar, ycomo cual es el proceso para realizar el cambio de disco dañado al menos esas son mis dudas al leerlo, ya que nunca lo he hecho.

  5. Lo voy a dejar como post para mañana, asi lo puedo explicar mucho mejor que como comentario 🙂

  6. Para que mdadm funcione en modo monitor, se debe establecer una de las siguientes variables en /etc/mdadm.conf:
    MAILADDR o PROGRAM
    MAILADDR: establece a quien enviarle un correo cuando un evento ocurra en los arreglos.
    PROGRAM: programa que se ejecutara cuando ocurra un evento en los arreglos.

  7. Lo otro que falto es hacer que el servicio se ejecute en el arranque del sistema con
    # chkconfig mdmonitor on
    # service mdmonitor start

  8. @peter: Muchas gracias por la aportación!

  9. @Jordi, gracias a ti por el blog.

  10. Hola a todos! he seguido este post para crear un raid5 con tres discos de 2TB cada una y me la esta creando solo que cuando veo el estado me dice:

    cat /proc/mdstat
    Personalities : [raid6] [raid5] [raid4]
    md0 : active raid5 hdc[3] hdb[1] hda[0]
          3907028992 blocks level 5, 128k chunk, algorithm 2 [3/2] [UU_]
          [>....................]  recovery =  0.0% (663680/1953514496) finish=29219.8min speed=1113K/sec
    

    el tiempo finish es demaciado y se va incrementando! la velocidad no se, si es correcto o deberia ser mas?
    ademas tengo que esperar para darle un sistema de archivo y montarlo?
    Aguardo sus respuestas!

    Atte
    Derlis Garcia
    Paraguay

  11. Reinstalar el sistema operativo, no generara problemas de acceso a la informacion. SIempre y cuando no se les ocurra cambiar de hardware… Ahi si corren el riesgo de quedarse sin datos.

    ANtes de probar, hagan un respaldo por si pasa algo malo.

    Si perdieron informacion, pueden acudir a alguna empresa de recuperaciones. COnozco una en Madrid con nombre Onretrieval pero nunca tuve que llamarles…

    A tener cuidado.

Deja un comentario:

XHTML - Tags permitidos:<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>