Diferència entre revisions de la pàgina «RAID»

De Cacauet Wiki
Salta a la navegació Salta a la cerca
 
(Hi ha 10 revisions intermèdies del mateix usuari que no es mostren)
Línia 1: Línia 1:
 
RAID = Redundant Array of Independent Disks
 
RAID = Redundant Array of Independent Disks
  
http://en.wikipedia.org/wiki/RAID
+
Aquest article mostra les comandes per utilitzar en Ubuntu Server.
 
 
Aquest article mostra les comandes per utiltizar en Ubuntu Server.
 
 
 
Per saber com tenim el nostre RAID:
 
# cat /proc/mdstat
 
  
 
<br>
 
<br>
  
 
== Introducció ==
 
== Introducció ==
Per saber l'estat del nostre array de discs
+
Referències:
 +
* Simulacions a: [http://www.onraidservices.com/raid_1.htm onraidservices.com].
 +
* http://en.wikipedia.org/wiki/RAID
 +
* http://guylabs.ch/2013/09/17/create-a-software-raid1-with-mdadm-on-an-active-ubuntu-13-04-hard-drive/
 +
* Per saber l'estat del nostre array de discs:
 +
*: <pre># cat /proc/mdstat</pre>
 +
* ...
 +
 
 
<br>
 
<br>
  
Línia 22: Línia 24:
  
 
=== Crear un nou array de discs ===
 
=== Crear un nou array de discs ===
...TODO...
+
Mireu la [https://help.ubuntu.com/community/Installation/SoftwareRAID documentació oficial d'Ubuntu sobre RAID].
 +
 
 +
Per crear un nou RAID:
  
 +
# Utilitzar ''fdisk'' per crear les particions adequades. Els dos discs han de ser iguals.
 +
# Crear l'array de discs. Per exemple, si tenim sdb i sdb per fer el RAID, podem fer:
 +
#:<pre># mdadm --create md0 --raid-devices=2 --level=1 /dev/sdb1 /dev/sdc1</pre>
 +
# Si volem crear un array "degradat" (amb només 1 disc) podem canviar la partició per "missing":
 +
#:<pre># mdadm --create md0 --raid-devices=2 --level=1 /dev/sdb1 missing</pre>
  
 
=== Chequejar l'estat d'un array ===
 
=== Chequejar l'estat d'un array ===
Línia 40: Línia 49:
 
=== Afegir elements 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à".
 
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à".
 +
 +
<div class="exercici">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.
 +
</div>
  
 
Generem un "informe" de la taula de particions correcta:
 
Generem un "informe" de la taula de particions correcta:
Línia 51: Línia 63:
 
  # mdadm /dev/md1 -a /dev/sda3
 
  # mdadm /dev/md1 -a /dev/sda3
  
A l'afegir un element a l'array les dades es resincronitzen:
+
A l'afegir un element a l'array les dades es resincronitzen automàticament:
 
  # cat /proc/mdstat
 
  # cat /proc/mdstat
 
  Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]  
 
  Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]  
Línia 61: Línia 73:
  
 
<br>
 
<br>
 +
 +
=== 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 <code>cat /proc/mdstat</code>).
 +
 +
<br>
 +
 +
=== 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.
 +
 +
# Arrenca des del live CD/pen
 +
# Instal·la les utilitats<pre># apt-get install mdadm</pre>
 +
# Crea els devices MD<pre># mdadm --assemble --scan</pre>
 +
# munta'ls. Per exemple:<pre># mount /dev/md/0 /mnt</pre>
 +
 +
<br>
 +
 +
== 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).
 +
* Debian <8 : http://serverfault.com/questions/196445/boot-debian-while-raid-array-is-degraded
 +
 +
La versió 8 (Jessie) és més complexa d'arreglar. Aquí teniu el parche.
 +
* http://www.informaticapressapochista.com/linux/debian-8-jessie-how-to-boot-degraded-raid1-software/
 +
* http://serverfault.com/questions/688207/how-to-auto-start-degraded-software-raid1-under-debian-8-0-0-on-boot
 +
 +
=== Mode degradat en Ubuntu ===
 +
És més senzill, simplement habilitant la flag BOOT_DEGRADED=true
 +
...

Revisió de 14:17, 13 set 2016

RAID = Redundant Array of Independent Disks

Aquest article mostra les comandes per utilitzar en Ubuntu Server.


Introducció[modifica]

Referències:


RAID 0[modifica]

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

RAID 1[modifica]

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

Crear un nou array de discs[modifica]

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[modifica]

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[modifica]

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[modifica]

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[modifica]

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[modifica]

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[modifica]

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[modifica]

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[modifica]

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