Introduction
Prérequis : Consulter le cours du 1er semestre sur le matériel et particulièrement sur le stockage
Prérequis : Consulter le cours du 1er semestre sur le matériel et particulièrement sur le stockage
Parce que les disques sont fragiles :
Parce que les disques sont lents :
La réponse : multiplier les supports de stockage :
Le RAID consiste à multipliser les disques pour écrire plus vite et/ou pour augmenter la sûreté/sécurité du stockage.
La capacité de stockage dépend du RAID utilisé. Dans certains cas, on aura une capacité "utile" inférieure à la somme des capacités des disques.
Le RAID est soit formé par le microcode de la carte mère ou la carte contrôleur des disques (RAID matériel), soit par le système d'exploitation ou un logiciel pilote spécialisé (RAID logiciel).
Surface initiale perdue :
Comme les données sont réparties ou copiées sur plusieurs disques qui formeront un volume unique, il est préférable que la capacité matérielle de chaque disque soit identique.
De plus, pour optimiser les traitements du RAID, il est conseillé d'avoir, outre une même capacité, une même marque et un même modèle de disques.
Les capacités excédentaires au plus petit disque sont en général perdues.
Cependant, la surface disque "perdue" peut parfois être utilisée comme partition indépendante hors RAID.
Ce n'est évidemment pas recommandé afin de conserver l'intégrité des algo de RAID et ne pas surcharger un disque par rapport aux autres de la grappe RAID.
Capacité utile apparente :
La capacité utile dépend du RAID utilisé. Cependant, le système (et l'utilisateur) ne voit qu'un seul volume (disque).
(D1,D2,D3)->-+------------+------------+ | D1 | D2 | D3 v v v Disque 1 Disque 2 Disque 3 +------+ +------+ +------+ | D1 | | D2 | | D3 | +------+ - - +------+ - - +------+ - - - | D4 | | D5 | | D6 | Bande (strip) +------+ - - +------+ - - +------+ - - - | | | | | | +------+ +------+ +------+
Le stockage est fractionné : si on a 2 disques, on écrit une partie des données sur un disque, l'autre sur un second disque.
Attention : RAID 0 = 0 sécurité !!!
Soit un grappe de 3 disques de 1, 2 et 4To.
Aucune sécurité, Si un disque lâche, on perd toutes les données car elles sont fractionnées
(D1)------->-+------------+------------+ | D1 | D1 | D1 v v v Disque 1 Disque 2 Disque 3 +------+ +------+ +------+ | D1 | | D1 | | D1 | +------+ - - +------+ - - +------+ - - - | D2 | | D2 | | D2 | Données copiées N fois +------+ - - +------+ - - +------+ - - - | | | | | | +------+ +------+ +------+
Chaque donnée est stockée (copiée) sur chaque disque. On a donc une perte apparente de capacité égale à la somme des surfaces des disques moins celle du plus petit disque (S = Σ(Sn) - S0).
Attention : Si le RAID 1 est assuré par le système (RAID logiciel) il peut apparaître une perte de vitesse d'écriture car l'OS doit reproduire chaque écriture sur chaque disque.
Soit un grappe de 3 disques de 1, 2 et 4To.
Sécurité maximale grâce à la duplication (copie) des données. Tant qu'il reste un disque, les données sont conservées.
Remarque : Le débit n'est pas amélioré, voire ralenti
Exellente sécurité … pour gros budget
(D1,D2)---->-+------------+------------+ | D1 | D2 | P1=D1+D2 v v v Disque 1 Disque 2 Disque 3 +------+ +------+ +------+ | D1 | | D2 | | (P1) | +------+ - - +------+ - - +------+ - - - | D3 | | (P2) | | D4 | +------+ - - +------+ - - +------+ - - - | (P3) | | D5 | | D6 | +------+ - - +------+ - - +------+ - - - | | | | | | +------+ +------+ +------+
Les données sont écrites par bande, comme en RAID 0 mais on utilise un espace par bande (pas toujours le même) pour écrire une somme de contrôle.
Cette somme de contrôle permet de retrouver une donnée perdue en cas de perte d'un disque (voir exemple plus bas).
La somme de contrôle n'est pas écrite sur le même disque à chaque bande, cela permet d'optimiser la vitesse d'acriture, la surface et la résistance aux pertes.
On obtient une accélération de l'écriture (comme en raid0) avec une sécurité des données (comme en raid1).
Même si séparément les gains sont moindres la combinaison des gains offre globalement une meilleure performance.
### Exemple de calcul de somme de contrôle ### // XOR de parité : exemple en analogie avec une … addition Soit A=5 et B=2 Calculer P = A+B = 7 Si on perd A, on le retouve aisément en effectuant : A = P-B = 7-2 = 5 CQFD
Les inconvénients sont :
Sécurité excellente, ressources optimisées
La perte de volume est limitée à un disque mais certains systèmes proposent d'utiliser un disque "spare" qui est reconstruit à la volée.
Remarque : Le débit n'est pas amélioré, voire ralenti
Exellent compromis entre la sécurité, le budget et la vitesse d'accès aux données.
Le meilleur système mais les boitiers doivent faire de la place pour les disques :D
Possibilité d'ajouter un disque "spare" qui sera automatiquement utilisé en cas de perte d'un disque. Dans certains systèmes, il peut être changé à chaud.
RAID 0 (D1,D2)->--+------------------------+ | D1 | D2 v v RAID 1 x 2 +----------+ +----------+ | D1 | D1 | D2 | D2 v v v v Disque 1 Disque 2 Disque 3 Disque 4 +------+ +------+ +------+ +------+ | D1 | | D1 | | D2 | | D2 | +------+ - +------+ +------+ - +------+ | D3 | | D3 | | D4 | | D4 | +------+ - +------+ +------+ - +------+ | | | | | | | | +------+ +------+ +------+ +------+ RAID10 = RAID 1 +0 de bas en haut
Les RAID 01 et 10 sont simplement des Mix des raid 0 et 1 (premier chiffre = grappe la plus basse).
Ils cumulent les avantages et les inconvénients des solutions individuelles.
Le plus sécurisé est le raid 50 (2 grappes de raid 5 associées en raid 0).
RAID2, 3 et 4 : ces RAID sont des variantes obsolètes, précurseurs du RAID 5.
Un disque spare est un disque de rechange qui peut remplacer à chaud (sans éteindre les disques et la machine) un disque défaillant dans une grappe.
Très utile pour augmenter la sûreté d'une grappe RAID 1 ou 5.
Inutile sur un RAID 0 car les données perdues sont ... perdues et ne peuvent être reconstituées.
Au préalable, Il nous faut deux disques vides (pas de volume installé), si possible de même capacité. La différence sera perdue.
Dans une VM, il est très facile d'ajouter des disques virtuels. C'est l'exercice qui sera proposé en TP.
Le système synchronise automatiquement les disques et crée le RAID 1.
Dans les versions récentes, il existe aussi un possibilité en passant par le Gestionnaire de stockage (Windows Storage Spaces).
Le disque miroir créé est en fait une synchronisation entre deux disque et non un vrai RAID. Mais avec deux disques seulement, c'est équivalent en termes de sécurité.
Même conditions préalables que pour Windaube.
Les deux disques sont vides, non formatés et détectés sous les noms de /dev/sdb et /dev/sdc
On vérifie les disques disponibles avec les commande lsblk
ou fdisk \-l
. On devrait voir les disques (non formatés) /dev/sdb et /dev/sdc.
mdadm --create --verbose /dev/md0 --level=1 --raid-devices=2 /dev/sdb /dev/sdc
lsblk
ou lsblk
puis :cat /proc/mdstat mdadm --detail /dev/md0
La synchronisation est en cours...
mkfs.ext4 /dev/md0 # formater le volume RAID en ext4 mkdir /mnt/my_raid1_disk # créer le point de montage pour le volume mount /dev/md0 /mnt/my_raid1_disk # monter le volume RAID df -h // vérifier le volume
Montage :
Par défaut, les disques sont vus comme de simples fichiers qui sont placés dans le répertoire /dev.
Pour qu'ils soient accessibles, on va les "monter" dans le système de fichier, les brancher à l'arborescence des répertoires avec la commande mount.
Pour cela, il faut qu'un répertoire existe, par exemple /mnt/raid1, créé avec mkdir, puis que la commande mount "brenche" le fichier-dissque dans ce répertoire.
Et voilà, le contenu du disque devient accessible.
Pour rendre le montage persistant au redémarrage, il faut ajouter les commandes suivantes :
echo '/dev/md0 /mnt/my_raid1_disk ext4 defaults 0 0' >> /etc/fstab
mdadm --detail --scan >> /etc/mdadm/mdadm.conf update-initramfs -u # mise à jour de l'image d'accès aux disques durant le boot
Simple : on débranche un disque et on vérifie si les données sont toujours accessibles.
LVM (Logical Volume Manager) est un outils de gestion des disques physiques qui peut être installé au moment de l'initialisation du système dans Linux.
Normalement, si on a choisi l'option à l'installation, les commandes suivantes devraient être accessibles. sinon, installer lvm avec apt.
pvcreate /dev/sdb /dev/sdc
puis vérifierpvs
vgcreate vg_raid1 /dev/sdb /dev/sdc
puis vérifier avec vgs
lvcreate -L 1G -m1 -n lv_mirror vg_raid # créer le volume logique lv_mirror avec le groupe vg_raid lvs -a -o +devices # vérifier : affficher la liste des volumes
Paramètres :
La taille du volume peut être inférieure à celle du groupe ... On peu alors créer plusieurs volumes en RAID
mkfs.ext4 /dev/vg_raid/lv_mirror # formater le volume logique du groupe de volumes mkdir /mnt/my_raid1_disk # créer le dossier de montage comme avant mount /dev/vg_raid/lv_mirror /mnt/my_raid1_disk # monter le volume (mais pas trop fort pour ne pas gêner les voisins ;P) df -h # vérifier
Pour rendre le montage persistant au redémarrage, il faut ajouter la ligne suivante à la table des systèmes de fichiers, comme avant :
echo '/dev/vg_raid/lv_mirror /mnt/my_raid1_disk ext4 defaults 0 0' >> /etc/fstab # Attn le chemins a changé par rapport à mdadm
Tester comme avant ou avec la commande
vgreduce --removemissing vg_raid1
Voir l'article suivant qui explique bien l'utilisation de LVM : LinuxTricks : LVM
Et voilà.
A noter que LVM permet aussi de déplacer physiquement les données de disque en disque afin de pouvoir remplacer un disque physique, sans arrêter la machine, si celle-ci admet l'ajout de disque à chaud.
Ce sont les mêmes procédures mais il faut avoir trois disques disponibles et choisir l'option avec RAID 5.
Les différences des procédures et commandes sont les suivantes :
lvcreate -L 1G -i2 -n lv_raid5 --type raid5 vg_raid # créer le volume logique lv_raid avec le groupe vg_raid
RAID 0 | RAID 1 | RAID 5 | RAID 01 | RAID 10 | |
---|---|---|---|---|---|
Nombre de disque minimum | 2 | 2 | 3 | 4 (n pair) | 4 (n pair) |
Rapidité en lecture (par rapport à un disque simple) | Très rapide |
Rapide | Très rapide |
Rapide | Rapide |
Rapidité en écriture (par rapport à un disque simple) | Très rapide |
Rapide | Très rapide |
Rapide | Rapide |
Espace disque utilisable (pour N disques composant le grappe, et C la capacité du plus petit disque) | N*C |
C | (N-1)*C | (N/2)*C | (N/2)*C |
Nombre de disques pouvant être défectueux sans perte de données (pour N disques composants le grappe) | 0 | N-1 | 1/N | ||
Part d'espace perdu en fonction du nombre N de disques | 0% | 1-1/N | 1/N |
A suire : les NAS et SAN