RAID

De Roms' wiki.

Sommaire

Objectifs

Limiter le risque de perte de données en cas de défaillance d'un disque.

Pré-requis

Les outils md.

Installation

La mise en place du RAID se fait à l'installation (Debian installer).

Mise en place

1) Dans l'installateur Debian, il faut commencer par créer les partitions voulues sur chaque disque de 80 Go à l'identique. Exemple:

/dev/hda:
 /     1 GB  (physique:0)
 swap  1 GB  (physique:1)
 /usr  3 GB  (logique:5)
 /var  5 GB  (logique:6)
 /tmp  1 GB  (logique:7)
 /home 69 GB (logique:8)
/dev/hdc:
 /     1 GB
 swap  1 GB
 /usr  3 GB
 /var  5 GB
 /tmp  1 GB
 /home 69 GB

On indique que chaque partition est de type RAID.

2) Ensuite, il faut configurer le RAID logiciel, c'est-à-dire associer deux-à-deux chaque partition pour créer le volume physique correspondant (/dev/md0 à /dev/md4)

Pour ma part, j'ai tout mis (hormis le swap) en RAID1 sauf /tmp qui est en RAID0. Je me fiche de la perte de données sur /tmp; par contre, je ne suis pas contre un meilleur débit.

3) Enfin, on formate chaque volume physique et on les monte sur le point de montage correspondant.

Le fichier /etc/mdadm/mdadm.conf généré par l'installateur me donne:

ARRAY /dev/md0 level=raid1 num-devices=2 UUID=d37a999f:a2160791:dcedc076:5b078744
ARRAY /dev/md1 level=raid1 num-devices=2 UUID=2b2f368d:42287b18:1c7a97bc:15b764ed
ARRAY /dev/md2 level=raid1 num-devices=2 UUID=45f0694f:0d4c74ae:dc06dee5:f262b5ba
ARRAY /dev/md3 level=raid0 num-devices=2 UUID=e656aa3e:ee35132b:738e7034:aed0ec15
ARRAY /dev/md4 level=raid1 num-devices=2 UUID=0b6d0a6d:a2d183b9:06c104ee:a28a923b

Il peut aussi être récupéré par:

mdadm --examine --scan

4) Mon fichier /etc/lilo.conf contient:

boot=/dev/md0
root=/dev/md0
raid-extra-boot=mbr-only

Remplacement

Dans le cas où un des disques viendrait à défaillir (ce qui m'est arrivé quelques semaines après le passage du serveur en RAID !), il faudra le changer ce qui implique:

- d'enlever l'ancien disque du RAID,

- de partitionner le disque de remplacement,

- d'ajouter le nouveau disque.

1) Enlever le disque revient à marquer chaque partition du RAID comme défaillante et à la retirer de l'association RAID:

mdadm /dev/mdX -r -f /dev/hdX[1..8]

2) Ensuite, il faut installer le nouveau disque et le partitionner. Le plus simple et de copier la table des partitions de l'autre disque (ATTENTION, VERY DANGEROUS: relire 3 fois la commande tapée avant d'appuyer sur ENTREE):

fsdisk -d /dev/hdX >& file; fsdisk (--force) /dev/hdY < file

3) Enfin, ajouter les partitions:

mdadm /dev/mdX -a /dev/hdX[1..8]

Et là, c'est magique car le système lance une reconstruction automatique du disque dont l'avancement peut être visualisé par un simple:

cat /proc/mdstats 

4) Par contre, tout ce qui est marqué ci-dessus marche bien pour du RAID1 mais le RAID0 m'a donné du fil à retordre car aucune reconstruction n'est possible (normal, c'est du RAID0). Marche à suivre:

- il faut arrêter complètement l'association RAID concernée:

mdadm --stop /dev/md3

- ensuite, il faut recréer une nouvelle association qui va écraser la précédente:

mdadm --create /dev/md3 --level=0 --raid-devices=2 /dev/hda7 /dev/hdc7

et répondre oui pour l'écrasement.

Plus d'infos sur le site de Guillaume LEHMANN [1] et [2] et [3].