RAID

De Jose Castillo Aliaga
Ir a la navegación Ir a la búsqueda

RAID per programari en Linux

Per a fer un RAID per programari en Linux, podem fer ús del sistema mdadm. És l'opció que ens dona Debian en el seu instal·lador i permet una configuració molt flexible.

Al ser un RAID per software, per a la placa base i per al sistema operatiu, encara existeixen sda, sdb... Però tenen una partició preparada per a estar duplicada formatejada per a RAID. Aquest RAID després serà formatejat en ext4, per exemple.

Les particions MD tenen el nom /dev/md<0-99> i poden ser particionades.

Si el RAID està en la partició d'arranc. El Grub arranca con si no fora un RAID en el primer disc. Quant el Kernel està funcionan, ja afegeix els altres discs.

Fer un RAID en un Debian en funcionament

Tal vegada s'ha d'instal·lar el paquet mdadm.

Previament a crear el RAID, cal crear particions en els discs implicats. Al fer les particions és recomanable que tinguen la mateixa mida.

Poden crear un RAID1:

# mdadm --create /dev/md0 --level=mirror --raid-devices=2 /dev/sda1 /dev/sdb1

O un RAID5, per exemple: mdadm --create /dev/md1 --level=5 --raid-devices=3 /dev/sda2 /dev/sdb2 /dev/sdc2

Després es pot formatejar:

# mkfs.ext4 /dev/md1


Fer un RAID durant la instal·lació de Debian

  • Seleccionar el mode d'instal·lació no gràfica.
  • En la part de les particions i els discos, seleccionar l'opció manual.
  • Crear una taula de particions per a cada disc.
  • Crear tres particions tipus raid en cada disc. En un futur, serà per a /, /home i swap
Debian no deixa particionar una partició MD en la seua instal·lació
  • Crear un RAID 1 per a cada grup de particions de la mateixa mida en cada disc.

Raiddebian1.png

Figura 1.1 Exemple amb 2 discs durs de 5GB

Ara es poden formatejar i asignar la ruta de muntatge de cada partició RAID.

  • Una vegada instal·lat es pot veure l'estat del RAID amb /proc/mdstat
El grub està instal·lat sols en el primer disc dur del RAID. Si falla, no pot arrancar. Es pot instal·lar el grub també en el sdb després de instal·lar el sistema:
grub-install /dev/sdb

Comprobar el funcionament del RAID

# mdadm -D /dev/md0
# cat /proc/mdstat

Solucionant fallades de disc

Podem provocar una fallada de disc:

# mdadm --manage /dev/md0 --fail /dev/sdb1
# mdadm --manage /dev/md1 --fail /dev/sdb2
# mdadm --manage /dev/md2 --fail /dev/sdb3

# mdadm --manage /dev/md0 --remove /dev/sdb1
# mdadm --manage /dev/md1 --remove /dev/sdb2
# mdadm --manage /dev/md2 --remove /dev/sdb3


# mdadm -D /dev/md2
/dev/md2:
            Version : 1.2
  Creation Time : Thu Oct 17 16:45:26 2013
       Raid Level : raid1
       Array Size : 2310080 (2.20 GiB 2.37 GB)
Used Dev Size : 2310080 (2.20 GiB 2.37 GB)
   Raid Devices : 2
   Total Devices : 1
       Persistence : Superblock is persistent

   Update Time : Fri Oct 18 10:38:30 2013
               State : clean,   degraded 
Active Devices : 1
Working Devices : 1
Failed Devices : 0
 Spare Devices : 0
 
           Name : debian:2  (local to host debian)
          UUID : 33d7cbab:746f2ac9:8bcc506e:2d449e30
          Events : 25

   Number   Major   Minor   RaidDevice State
      0       8        3        0      active sync   /dev/sda3
      1       0        0        1      removed

Com hem eliminat el disc del RAID amb comandes de mdadm, el disc encara està físicament connectat a la màquina. Per tant, és com si fora un disc nou que hem instal·lat.

Ara fem una comanda per a copiar la taula de particions dd'un disc a un altre. D'aquesta manera queden exàctament iguals:

# sfdisk -d /dev/sda | sfdisk --force /dev/sdb

A continuació, fem --zero-superblock per a eliminar qualsevol estructura de RAID anterior.

# mdadm --zero-superblock /dev/sdb1
# mdadm --zero-superblock /dev/sdb2
# mdadm --zero-superblock /dev/sdb3

Per finalitzar, tornem a afegir les particions als raids corresponents:

# mdadm -a /dev/md0 /dev/sdb1
# mdadm -a /dev/md1 /dev/sdb2
# mdadm -a /dev/md2 /dev/sdb3

Després de afegir de nou les particions, durant un temps està resincronitzant els RAIDS:

# cat /proc/mdstat 
Personalities : [raid1] 
md2 : active raid1 sdb3[2] sda3[0]
       2310080 blocks super 1.2 [2/1] [U_]
     	resync=DELAYED
     
md1 : active raid1 sdb2[2] sda2[0]
       976320 blocks super 1.2 [2/1] [U_]
     	resync=DELAYED
     
md0 : active raid1 sdb1[2] sda1[0]
     1950656 blocks super 1.2 [2/1] [U_]
     [==========>..........]  recovery = 52.9% (1033600/1950656) finish=0.5min speed=27966K/sec


Fallades a l'arranc

Si el RAID és per a la /, cal instal·lar el grub en tots els discs. Si s'ha fet i eliminem el primer disc, el sistema arranca. Però si observem el resultat de dmesg, vorem que informa de que el RAID està degradat:

# dmesg | grep raid
[    3.198015] md: raid1 personality registered for level 1
[    3.198426] md/raid1:md0: active with 1 out of 2 mirrors
[    3.429885] md/raid1:md1: active with 1 out of 2 mirrors
[    3.678704] md/raid1:md2: active with 1 out of 2 mirrors

Les següents comandes són per a afegir 2 discs nous al RAID, de manera que, primer, es recupere i després que tinga 3 discs.

# ls /dev/sd*
/dev/sda  /dev/sda1  /dev/sda2	/dev/sda3  /dev/sdb  /dev/sdc

# sfdisk -d /dev/sda | sfdisk --force /dev/sdb
# sfdisk -d /dev/sda | sfdisk --force /dev/sdc

# mdadm -a /dev/md0 /dev/sdb1
# mdadm -a /dev/md1 /dev/sdb2
# mdadm -a /dev/md2 /dev/sdb3

# watch cat /proc/mdstat

# mdadm -a /dev/md0 /dev/sdc1
# mdadm -a /dev/md1 /dev/sdc2
# mdadm -a /dev/md2 /dev/sdc3

# mdadm --grow /dev/md0 --raid-devices=3
# mdadm --grow /dev/md1 --raid-devices=3
# mdadm --grow /dev/md2 --raid-devices=3

Vore també

Enllaços