Vous êtes sur la page 1sur 9

2ème BTS SRI Module S53 : Administration et Maintenance d’un système GNU/Linux (Avancé)

Chap.4 : RAID et LVM


I - RAID
1. Définitions
Le RAID (Redundant Array of Inexpansive Disks) , soit « regroupement redondant de disques peu
onéreux » a été défini par l’université de Berkeley en 1987 dans le double but de réduire les coûts et
d’augmenter la fiabilité du stockage des données.
Aujourd'hui, le mot RAID est devenu l'acronyme de Redundant Array of Independent (or
inexpensive) Disks, ce qui signifie « regroupement redondant de disques indépendants »
Le RAID a pour but de combiner plusieurs petits disques physiques indépendants en une matrice (array :
tableau, ensemble, rangée, matrice) de disques dont la capacité dépasse celle du SLED (Single Large
Expensive Drive). Une matrice apparaît comme une unité logique de stockage unique.
Le système RAID est donc capable de gérer d'une manière ou d'une autre la répartition et la cohérence de
ces données. Ce système de contrôle peut être purement logiciel ou utiliser un matériel dédié.
2. RAID matériel
 Dans le cas du RAID matériel, une carte ou un composant est dédié à la gestion des opérations. Le
contrôleur RAID peut être interne à l'unité centrale (carte d'extension) ou déporté dans une baie
de stockage.
 Un contrôleur raid est en général doté d'un processeur spécifique, de mémoire, éventuellement
d'une batterie de secours, et est capable de gérer tous les aspects du système de stockage RAID
grâce au microcode embarqué (firmware).
3. Le RAID logiciel
 En RAID logiciel, le contrôle du RAID est intégralement assuré par une couche logicielle du
système d'exploitation. Cette couche s'intercale entre la couche d'abstraction matérielle (pilote) et
la couche du système de fichiers.
4. Les différents niveaux de RAID
Les différents types d'architecture RAID sont numérotés à partir de 0 et peuvent se combiner entre eux
(on parlera alors de RAID 0+1, 1+0, etc.).
On traitera ici les niveaux standards RAID 0, RAID 1, RAID 5 et le niveau combiné RAID 10
4.1. RAID 0 : volume agrégé par bandes

1/9 Chap. 04
 Le RAID 0, également connu sous le nom d'« entrelacement de disques » ou de « volume agrégé
par bandes » (striping en anglais), est une configuration RAID permettant d'augmenter
significativement les performances de la grappe en faisant travailler n disques durs en parallèle
(avec n>=2 ).
 Capacité :
La capacité totale est égale à celle du plus petit élément de la grappe multiplié par le nombre
d'éléments présent dans la grappe, car le système d'agrégation par bandes se retrouvera bloqué
une fois que le plus petit disque sera rempli (voir schéma). L'espace excédentaire des autres
éléments de la grappe restera inutilisé. Il est donc conseillé d'utiliser des disques de même
capacité.
 Fiabilité :
Le défaut de cette solution est que la perte d'un seul disque entraîne la perte de toutes ses
données.
 Coût :
Dans un RAID 0, qui n'apporte aucune redondance, tout l'espace disque disponible est utilisé (tant
que tous les disques ont la même capacité).
Dans cette configuration, les données sont réparties par bandes (stripes en anglais) d'une taille fixe. Cette
taille est appelée granularité.
Exemple
Avec un RAID 0 ayant une bande de 64 ko et composé de deux disques (disque Disk 0 et disque Disk 1),
si l'on veut écrire un fichier A de 500 ko, le fichier sera découpé en 8 bandes (car 7<500/8<8). Appelons-
les 1, 2, 3, 4, 5, 6, 7 et 8. Elles seront réparties sur l'ensemble des disques de la façon suivante :
 Disk 0 : 1, 3, 5, 7
 Disk 1 : 2, 4, 6, 8
Ainsi l'écriture du fichier pourra être effectuée simultanément sur chacun des disques en un temps
équivalent à l'écriture de 256 ko.
Ainsi, sur un RAID 0 de n disques (avec n>=2), chaque disque ne doit lire et écrire que 1/n des
données, ce qui a pour effet de diminuer les temps d'accès (lecture et écriture) aux données. Les disques
se partageant le travail, les traitements se trouvent accélérés.
4.2. RAID 1 : Disques en miroir

2/9 Chap. 04
 Le RAID 1 consiste en l'utilisation de n disques redondants (avec n>=2), chaque disque de la
grappe contenant à tout moment exactement les mêmes données, d'où l'utilisation du mot
« miroir » (mirroring en anglais).
 Capacité:
La capacité totale est égale à celle du plus petit élément de la grappe. L'espace excédentaire des
autres éléments de la grappe restera inutilisé. Il est donc conseillé d'utiliser des éléments
identiques.
 Fiabilité:
Cette solution offre un excellent niveau de protection des données. Elle accepte une défaillance de
n-1 éléments.
 Coût:
Les coûts de stockage sont élevés et directement proportionnels au nombre de miroirs utilisés
alors que la capacité utile reste inchangée. Plus le nombre de miroirs est élevé, et plus la sécurité
augmente, mais plus son coût devient prohibitif.
Les accès en lecture du système d'exploitation se font sur le disque le plus facilement accessible à ce
moment-là.
Les écritures sur la grappe se font de manière simultanée sur tous les disques, de façon à ce que
n'importe quel disque soit interchangeable à tout moment.
Lors de la défaillance de l'un des disques, le contrôleur RAID désactive le disque incriminé. Une fois le
disque défectueux remplacé, le contrôleur RAID reconstitue, soit automatiquement, soit sur
intervention manuelle, le miroir. Une fois la synchronisation effectuée, le RAID retrouve son niveau
initial de redondance.
4.3. RAID 5 : volume agrégé par bandes à parité répartie

Le RAID 5 combine la méthode du volume agrégé par bandes (striping) à une parité répartie. Il s'agit là
d'un ensemble à redondance. La parité, qui est incluse avec chaque écriture se retrouve répartie
circulairement sur les différents disques. Chaque bande est donc constituée de blocs de données et d'un
bloc de parité. Ainsi, en cas de défaillance de l'un des disques de la grappe, pour chaque bande il
manquera soit un bloc de données soit le bloc de parité. Si c'est le bloc de parité, ce n'est pas grave, car
aucune donnée ne manque. Si c'est un bloc de données, on peut calculer son contenu à partir des autres
blocs de données et du bloc de parité. L'intégrité des données de chaque bande est préservée. Donc non
seulement la grappe est toujours en état de fonctionner, mais il est de plus possible de reconstruire le
disque une fois échangé à partir des données et des informations de parité contenues sur les autres
disques.
On voit donc que le RAID 5 ne supporte la perte que d'un seul disque à la fois.
Exemple pratique :
Considérons quatre disques durs A, B, C et D, de tailles identiques. Le système va enregistrer les
premiers blocs en les répartissant sur les disques A, B et C comme en mode RAID 0 (striping) et, sur le
disque D, le résultat de l'opération OU exclusif entre les autres disques (ici A xor B xor C). Ensuite le

3/9 Chap. 04
système va enregistrer les blocs suivants en les répartissant sur les disques D, A et B, puis la parité (soit
D xor A xor B) sur le disque C, et ainsi de suite en faisant permuter circulairement les disques, à chaque
bloc. La parité se trouve alors répartie sur tous les disques.
En cas de défaillance d'un disque, les données qui s'y trouvaient pourront être reconstituées par
l'opération xor. En effet, l'opération XOR a la propriété suivante : si on considère N blocs de taille
identique A1, A2, … An et si A1 XOR A2 XOR … An =X alors X XOR A2 XOR … An =A1, et de façon générale,
A1 XOR … Ak-1 XOR X XOR Ak+1 XOR … An =Ak.
C'est-à-dire que n'importe quel bloc de données Ak perdu à cause d'un disque défaillant sur un RAID 5 de
N+1 disques peut-être récupéré grâce au bloc X de données de contrôle.
4.4. RAID 10 ou (1+0)
Combinaison de RAID 1 et de RAID 0. C'est un RAID 0 composé de deux volumes RAID 1, ce qui offre les
avantages simultanés du RAID 1 et RAID 0 : augmentation de la taille de stockage et des performances
de lecture. Il faut au minimum quatre disques de stockage pour créer un volume RAID 10.

5. Gestion du RAID logiciel sous Linux


5.1. Préparation
L’outil mdadm remplace les outils raidtools des anciennes distributions Linux. Cet outil unique est plus
simple et permet d’effectuer l’ensemble des opérations. Son fichier de configuration est
/etc/mdadm.conf.
Afin de créer des matrices RAID, il faut que les partitions qui vont servir à créer la matrice soient de type
0xFD (Linux RAID autodetect). Les partitions doivent être logiquement sur des disques différents, mais
pour des tests, le support RAID autorise des partitions sur le même disque. Dans ce cas, vous veillerez à
ce que les partitions disposent de la même taille.
5.2. Création
RAID-0

Soient deux

4/9 Chap. 04
partitions /dev/sdb1 et /dev/sdc1. Vous allez créer une partition RAID-0, assemblage de ces deux
partitions.
# mdadm --create /dev/md0 --level=raid0 --raid-devices=2 /dev/sdb1 /dev/sdc1
 --create : Créer un RAID.
 /dev/md0 : Nom du fichier périphérique de type bloc représentant la matrice RAID.
 --level : Type de RAID à créer : 0, raid0 et stripe pour du RAID0.
 --raid-devices : Nombre de partitions utilisées pour créer la matrice.
 /dev/sdb1, /dev/sdc1 : Partitions constituant la matrice, suivant le nombre indiqué dans --raiddevices.
Il ne reste plus qu’à installer le système de fichiers sur le disque RAID :
# mkfs -t ext3 /dev/md0
RAID-1

Vous allez utiliser trois disques de données /dev/sdb1, /dev/sdc1, /dev/sdd1 et un disque de secours
/dev/sde1.
# mdadm --create /dev/md0 --level=raid5 --raid-devices=3 /dev/sdb1 /dev/sdc1 /dev/sdd1 --
spare-devices=1 /dev/sde1
Puis on formate :
# mkfs -t ext3 /dev/md2
5.3. Sauver la configuration
Pour faciliter la tâche de l’outil mdadm, vous pouvez créer (ce n’est pas obligatoire) le fichier de
configuration /etc/mdadm.conf. Ce fichier peut être créé manuellement mais l’outil mdadm sait le
générer. Il est préférable de le faire APRÈS la création des matrices RAID.
# echo "DEVICE partitions" > /etc/mdadm.conf
# mdadm --detail --scan>> /etc/mdadm.conf
5.4. Arrêt et relance manuels
Vous pouvez arrêter une matrice RAID avec -S (--stop) APRÈS avoir démonté le périphérique :
# mdadm --stop /dev/md0
Vous redémarrez une matrice RAID avec -As (--assemble -scan). Cela implique que le fichier
/etc/mdadm.conf est correctement renseigné (--scan recherche les informations dedans).
# mdadm --assemble --scan /dev/md0
Si le RAID ne redémarre pas, vous pouvez tenter avec -R (--run) : il est probable qu’il manque un disque
ou qu’une reconstruction en cours n’est pas terminée :
# mdadm --run /dev/md0

5/9 Chap. 04
II- Gestionnaire de stockage LVM
1. Introduction
1.1. Principe
 Le LVM (Logical Volume Manager) est un système de gestion très perfectionné des supports de
stockage.
 Un LVM permet de créer des espaces de données logiques sur plusieurs disques.
 Le LVM regroupe les disques physiques, ou tout autre support de stockage dit physique (disque,
RAID matériel, RAID logiciel, etc …), qu’il appelle des volumes physiques PV (Physical Volume) en un
groupe de volumes VG (Volume Group). Ce groupe VG est vu par le LVM comme une sorte de
métadisque, dans lequel vous allez créer des volumes logiques LV (Logical Volume) à volonté.
1.2. Vocabulaire
 Volume physique PV : un support de stockage de données dit physique : disque dur par exemple ;
 Groupe de volumes VG : un regroupement logique de 1 à n PV;
 Volume logique LV : un découpage logique au sein d’un VG.

2. Utiliser LVM
2.1. Installation
 Installer le paquet logiciel lvm2
apt-get install lvm2
 Lancer le manager de volume logique LVM
/etc/init.d/lvm2 start
2.2. Aperçu des commandes
 Toutes les commandes agissant sur les volumes physiques commencent par pv.
 Toutes les commandes agissant sur les groupes de volumes commencent par vg.
 Toutes les commandes agissant sur les volumes logiques commencent par lv.
3. Les volumes physiques
3.1. Créer un volume physique
Un volume physique peut être un disque complet ou une partition classique au sein d’un disque. Dans ce
cas, la partition doit être de type 0x8e.

6/9 Chap. 04
Une fois les partitions créées, utilisez la commande pvcreate sur une partition (plusieurs partitions
peuvent être précisées) :
# pvcreate /dev/sdb2 /dev/sdc2
Physical volume "/dev/sdb2" successfully created
Physical volume "/dev/sdc2" successfully created
3.2. Voir les volumes physiques
La commande pvdisplay permet de visualiser l’ensemble des volumes physiques accessibles sur votre
système. Elle peut prendre aussi un nom de volume spécifique.
# pvdisplay /dev/sdb2
"/dev/sdb2" is a new physical volume of "10,00 GB"
--- NEW Physical volume ---
PV Name /dev/sdb2
VG Name
PV Size 10,00 GB
Allocatable NO
PE Size (KByte) 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID KWfJuL-wBmv-ecD1-u1Wt-Ba3d-KK2b-iryDra
Pour le moment, les informations sont réduites. Le PV n’appartient encore à aucun groupe de volumes
(ligne VG Name). Sa taille est de 10 Go. Les lignes les plus intéressantes sont les lignes (pour l’instant
vides car le PV n’appartient pas à un VG) où est indiqué PE. PE signifie Physical Extend, extension
physique. Chaque VG, et donc PV le constituant, est découpé en tranches appelées PE. Le PE est l’unité de
base de travail du LVM. Si un PE fait 4 Mo, cela signifie que l’espace pourra être découpé au sein du
groupe de volumes par tranches de 4 Mo. L’allocation se fait par PE : la création d’un volume logique de
500 PE de 4 Mo fait donc 2000 Mo.
Les valeurs à zéro seront remplies dès que le PE sera dans un VG.
4. Les groupes de volumes
4.1. Créer un groupe de volumes
Pour créer un groupe de volumes, vous devez disposer d’au moins un volume physique. Vous pouvez
créer un groupe de volumes avec la commande vgcreate. Un groupe de volumes porte un nom, celui que
vous voulez.
# vgcreate vg01 /dev/sdb2 /dev/sdc2
Volume group "vg01" successfully created
4.2. Propriétés d’un VG
Le groupe de volumes a de nombreuses propriétés. Il peut être étudié avec la commande vgdisplay.
# vgdisplay vg01
--- Volume group ---
VG Name vg01
System ID
Format lvm2

5. Les volumes logiques
5.1. Créer un volume logique
Un volume logique est un découpage d’un VG (groupe de volumes) qui est l’équivalent d’une partition
dans laquelle vous pouvez créer un système de fichiers.
 il est possible d’agrandir un LV tant qu’il reste des PE de libres dans le VG.
 il est possible de réduire un LV, ce qui libérera des PE dans le VG, utilisables pour créer de nouveaux LV
ou pour les agrandir.

7/9 Chap. 04
Vous créez un volume logique avec la commande lvcreate. Un volume logique porte un nom, dispose
d’une taille exprimée soit en extensions logiques LE (Logical Extension) qui sont la représentation des PE
au sein d’un LV, soit en Ko, Mo, Go… La commande suivante crée un volume logique appelé data01 au
sein du VG vg01, d’une taille de 130 Go. Le -L précise que l’unité est en Mo (m), Go (g), To (Teraoctet,
t), Po (Petaoctet), ou Eo (Exaoctet). Pour préciser un nombre de PE, utilisez « l ».
# lvcreate -n data01 -L 130g vg01
Logical volume "data01" created
Un LV est vu comme une partition, et dispose après sa création d’un fichier périphérique associé. Le
fichier est dans le dossier /dev/<nom_du_vg>/<nom_du_lv>. Notez qu’il s’agit d’un lien symbolique
vers un fichier de /dev/mapper pour garder une compatibilité avec les autres Unix.
# ls -l /dev/vg01/data01
lrwxrwxrwx 1 root root 23 sept. 13 09:27 /dev/vg01/data01 -> /dev/mapper/vg01-data01
5.2. Propriétés d’un volume logique
Les propriétés d’un volume logique sont accessibles par la commande lvdisplay :
# lvdisplay /dev/vg01/data01
5.3. Accès au volume logique
Vous pouvez créer un système de fichiers et monter le LV comme pour n’importe quelle partition :
# mkfs -t ext3 /dev/vg01/data01
Il ne reste plus qu’à monter le nouveau système de fichiers.
# mount -t ext3 /dev/vg01/data01 /home
# df /mnt/data01
Sys. de fich. 1K-blocs Occupé Disponible Capacité Monté sur
/dev/mapper/vg01-data01 6192704 143488 5734644 3% /home
5.4. Supprimer un volume logique
umount /dev/vg01/data01
Lvremove /dev/vg01/data01
Une fois le volume logique détruit, les données ne peuvent plus être récupérées.
6. Opérations sur les VGs
 Ajouter un PV au VG
On imagine que l’on dispose d’une partition libre sdd2. On crée le volume physique PV (Physical volume)
# pvcreate /dev/sdd2
On ajoute le volume sdd2 au groupe de volume vg01.
# vgextend vg01 /dev/sdd2
 Retirer un PV au VG
Pour enlever un PV par exemple sdd2
# vgreduce vg01 /dev/sdd2
Attention:
On ne peut pas enlever un PV s’il ne reste pas assez de place sur les autres PVs du VG
7. Redimensionnement d’un volume Logique
7.1. Augmenter la taille du système de fichier (FS)
Augmenter la taille du contenu sans augmenter la taille de la boîte peut poser des problèmes
Pour ce faire, il faut :
 démonter le système de fichier,
 augmenter la taille du volume logique,
 vérifier que tout est OK, puis augmenter la taille du système de fichier
 remonter le FS

8/9 Chap. 04
Ici, la taille finale du volume logique sera de 150 Go :
# umount /test
# e2fsck -f /dev/vg01/data01
# lvresize -L 150g /dev/vg01/data01
Ou bien: lvresize –L+20g /dev/vg01/data01
Ou bien: lvextend –L+20g /dev/vg01/data01
Ou bien: lvextend –L 150g /dev/vg01/data01
# resize2fs /dev/vg01/data01
# mount /dev/vg01/data01 /home
Remarque:
Si vous indiquez une taille de LV inférieure à la taille du FS, vous détruirez tout ou partie du FS.
On utilise ici resize2fs, spécifique aux FS de type ext2 et ext3.
7.2. Diminuer la taille du système de fichier (FS)
 Démonter le système de fichier
 Réduire la taille du système de fichiers
 Réduire la taille du volume logique pour lui donner exactement la nouvelle taille souhaitée.
 Remonter le FS
# umount /dev/vg01/data01
 On vérifie le premier volume logique et on diminue la taille du FS monté sur monvl2 à 110G
# e2fsck -f /dev/vg01/data01
# resize2fs /dev/vg01/data01 110G
 On indique explicitement la diminution du volume logique data01
# lvresize –L 110G /dev/vg01/data01
Ou bien: # lvresize –L-20G /dev/vg01/data01
Ou bien: # lvreduce –L 110G /dev/vg01/data01
Ou bien: # lvreduce –L-20G /dev/vg01/data01
 Remonter le FS
# mount /dev/vg01/dta01 /home

9/9 Chap. 04

Vous aimerez peut-être aussi