RAID

De Cacauet Wiki
Salta a la navegació Salta a la cerca

RAID = Redundant Array of Independent Disks

http://en.wikipedia.org/wiki/RAID

Aquest article mostra les comandes per utiltizar en Ubuntu Server.

Per saber com tenim el nostre RAID:

# cat /proc/mdstat


Introducció


RAID 0

Stripping: més ràpid però menys tolerant a fallades (incrementa per dos el risc de fallada).

RAID 1

Mirror: redundància de 2 discs. Eficiècia d'espai mínima (duplicat).

Crear un nou array de discs

Mireu la documentació oficial d'Ubuntu sobre RAID.

Per crear un nou RAID:

  1. Utilitzar fdisk per crear les particions adequades. Els dos discs han de ser iguals.
  2. Crear l'array de discs. Per exemple, si tenim sdb i sdb per fer el RAID, podem fer:
    # mdadm --create md0 --raid-devices=2 --level=1 /dev/sdb1 /dev/sdc1
  3. Si volem crear un array "degradat" (amb només 1 disc) podem canviar la partició per "missing":
    # mdadm --create md0 --raid-devices=2 --level=1 /dev/sdb1 missing

Chequejar l'estat d'un array

Mirem com tenim l'array:

# cat /proc/mdstat

Ha de donar-nos quelcom com:

Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] 
md1 : active raid1 sdb3[1]
      869208896 blocks super 1.2 [2/1] [_U]
      
md0 : active raid1 sdb1[1]
      97589120 blocks super 1.2 [2/1] [_U]

En l'indicador [_U] veiem que el primer element de l'array no hi és present. Potser s'ha fet malbé. Canviem el disc (suposem que el tenim a /dev/sda) i reintroduirem el nou a l'array.

Afegir elements a l'array

Suposem que acabem de posar un disc nou a /dev/sda. Podem començar per copiar la taula de particions que ja tenim a sdb per no haver de particionar-ho "a mà".

ULL: les instruccions que anem a fer ara destruiran dades en el disc destí (pel nostre cas, /dev/sda). Només executeu-les si sabeu ben bé què esteu fent.

Generem un "informe" de la taula de particions correcta:

# sfidsk -d /dev/sdb > particions.txt

Copiem l'estructura de la taula de particions al disc sda:

# sfdisk /dev/sda < particions.txt

Afegim les particions del nous disc a l'array: OJU, fixeu-vos bé en el què feu!

# mdadm /dev/md0 -a /dev/sda1
# mdadm /dev/md1 -a /dev/sda3

A l'afegir un element a l'array les dades es resincronitzen automàticament:

# cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] 
md1 : active raid1 sda3[2] sdb3[1]
      869208896 blocks super 1.2 [2/1] [_U]
      [===>.................]  recovery = 16.7% (145270080/869208896) finish=83.4min speed=144623K/sec

Quan arribi al 100% ja estarà al dia. Mentres, podem anar treballant normalment, tot i que no és recomanable fotre-li massa chicha fins que estigui recuperat. Acabarà de copiar-se en 83 minuts.


Instal·lar GRUB a tots els elements de l'array

Convé instal·lar el gestor d'arranc GRUB als dos discs. De vegades només està instal·lat en un d'ells, i si volem canviar un disc pot ser que no ens arrenqui la màquina.

# grub-install /dev/sda
# grub-install /dev/sdb

O potser millor reinstal·lar el GRUB de nou, ens demanarà a quines unitats fer-ho (sel·leccionar les dues unitats):

# dpkg-reconfigure grub-pc

Val a dir que val la pena testejar que el sistema pot arrencar amb un disc o amb l'altre per quan falli un dels dos discs. Ara bé, al testejar ens trobarem que resincronitzarà l'array de nou (comprovar amb cat /proc/mdstat).


Desensamblatge d'una unitat RAID

Per poder desensamblar una unitat RAID en Ubuntu.

Comprovem com està:

# cat /proc/mdstat

També podem mirar tenim algun RAID muntat a algun lloc del sistema d'arxius (ha de sortir com a unitat (/dev/mdXX):

# mount

Aturem la unitat:

# mdadm --stop /dev/mdXX

Podem marcar un element de l'array com a erroni:

# mdadm /dev/mdXX -f /dev/sda2

I treure'l de l'array:

# mdadm /dev/mdXX -r /dev/sda2


Muntar una partició MD (RAID) des d'un live CD

Pot ser útil per recuperar dades o recuperar sistemes.

  1. Arrenca des del live CD/pen
  2. Instal·la les utilitats
    # apt-get install mdadm
  3. Crea els devices MD
    # mdadm --assemble --scan
  4. munta'ls. Per exemple:
    # mount /dev/md/0 /mnt


Arrencada en mode degradat

Si tenim algun problema amb un disc i hem d'apagar la màquina, després no arrencarà ja que no troba tots els discs de l'array RAID.

En realitat sí que pot ja que en un sol disc ja hi ha totes les dades.

Mode degradat en Debian

En versions anteriors resultava més senzill (algunes permetien l'arrencada automàtica en mode degradat).

La versió 8 (Jessie) és més complexa d'arreglar. Aquí teniu el parche.

Mode degradat en Ubuntu

És més senzill, simplement habilitant la flag BOOT_DEGRADED=true ...