Raid logiciel et LVM

De Wiki info-lab.fr
Aller à : Navigation, rechercher

Sommaire

Généralités sur le RAID

Possibilité d'utiliser plusieurs disques au sein d'une unité centrale et de les gérer comme un ensemble cohérent afin d'augmenter la fiabilité et/ou les performances. Il existe différents niveaux de RAID, plus ou moins performants ou complexes.
Le RAID peut être mis en oeuvre par :

  • Une carte RAID spécialisée qui prend en charge l'intégralité de la gestion du RAID (type de RAID, construction, enregistrement des informations du RAID dans sa propre mémoire...). Elle possède son propre "SETUP BIOS" qui est accessible après le SETUP BIOS de la carte mère. Afin d'utiliser le RAID ainsi construit, il suffit au système d'exploitation de posséder le pilote de cette carte.
  • Une carte RAID dite semi-logicielle sous la forme d'un contrôleur soudé à la carte mère. Ce type de contrôleur est présent sur la grande majorité des cartes mères grand public, à l'exception des modèles d'entrée de gamme. Les informations du RAID sont sauvegardées sur les disques (pas de mémoire propre) et le système d'exploitation doit posséder le pilote de ce contrôleur. Certains modèles n'ont pas de pilotes pour les systèmes *NIX.
  • Une construction RAID entièrement logicielle, gérée à 100 % par le système d'exploitation.

Différents types de RAID

  • RAID 0 (striping) : 2 disques ou plus, les données sont partagées entre les différents disques. La taille des différents disques est donc à 99% utilisables, et les opérations de lecture et écriture sont plus rapides. Pas de redondance, pas de tolérance à la perte de 1 ou plusieurs disques.
  • RAID 1 (mirroring) : 2 disques ou plus, chaque donnée écrite sur un des disques et copiée sur tous les autres disques. Perte d'espace, seule la capacité d'un disque est utilisable. Aucun impact sur la rapidité d'écriture mais augmentation des performances en lecture. Tolérance aux pannes de disques.
  • RAID 5 : 3 disques ou plus, répartition des données sur l'ensemble des disques et calcul d'un bloc de parité. Tolérance de pannes plus rapidité. Le volume disque exploitable est celui de tous les disques moins 1 et moins un éventuel disque de secours.
  • RAID 01 : Construction d'un RAID 0, puis combinaison avec un RAID 1.
  • RAID 10 : Construction d'un RAID 1, puis combinaison avec un RAID 0.
  • JBOD : Simple concaténation de disques qui peuvent être de tailles différentes. Aucune amélioration des performances, aucune tolérance aux pannes, le JBOD est juste un moyen simple et économique d'augmenter l'espace disque mis à disposition d'une machine (serveur, NAS, PC). Souvent mis en place pour remettre en service des disques disparates sans acheter de carte contrôleur spécifique.
  • RAID 3, 4, 6, 7 ... : Non abordés ici car obsolètes, contraignants ou trop onéreux à mettre en place.

Gestion du RAID par Gnu/Linux

MD (Multiple Devices) est le pilote Gnu-Linux qui permet de gérer le Raid logiciel.
Les volumes raid son nommés /dev/md0, /dev/md1, /dev/md2 ..
Les commandes utiles à la manipulation de volumes RAID sont :
mdadm, mount, mke2fs. mdadm est la principale commande et son fichier de configuration est /etc/mdadm.conf Pour obtenir des infos complètes sur un volume RAID :

# mdadm -D /dev/md0            
........................

Pour estimer l'espace occupé :

$ df -h                              
 filesystem           size   Used  Avail   Use%  Monted on
  /dev/md0            32G    6.1G  26G     23%   /
  /dev/sdc1           4G     2G    2G      50%   /mnt/archos
  ..........

Pour examiner une partition appartenant à un volume RAID :

# mdadm -examine /dev/sdb2
................

Exemple de mise en place d'un RAID 10 sur un système Gnu/Linux

Le RAID 10 ou RAID 1+0 consiste à d'abord mettre en place un Raid 1 puis Raid 0 avec la possibilité de mixer technologies matérielles et logicielles comme le montre le schéma ci-dessous.
Raid10.png

Exemple : à partir de 4 disques de 250 Go chacun, mise en place de deux Raid 1 matériels (mirroring pour sécuriser les données en les écrivant sur 2 disques différents) gérés par un composant de la carte mère ou une carte contrôleur spécialisée ; ces 2 volumes Raid seront vus comme 2 disques par le système Gnu/Linux ce qui nous permettra d'installer un Raid 0 logiciel (stripping afin d'augmenter les performances) par dessus le Raid 1 matériel. La capacité utilisable sera donc de 2 x 250 Go moins l'espace perdu par le formatage en fonction des systèmes de fichiers choisis.

La mise en place du Raid 1 matériel dépendant de la carte mère ou de la carte contrôleur spécialisée n'est pas abordée ici : considérons que nous avons nos 2 volumes ou agrégats de type "Raid 1 matériel", le premier composé des disques 1 et 2, le second composé des disques 3 et 4. Ici commence l'installation du Raid 0 logiciel.

  1. cas numéro 1 : mise en place du Raid 0 dès l'installation du système d'exploitation Gnu/Linux. Dans ce cas la mise en place du Raid 0 se fait au travers de l'assistant "utilitaire de disques" appelé pendant l'installation et qui permet de choisir quels disques seront utilisés par le système, de quelle manière (bruts, raid logiciel, LVM), comment seront ils formatés (combien de partitions et leurs tailles, quels systèmes de fichiers), sur quel disque sera installé le secteur de boot, où seront positionnés les points de montage (/,/usr, /var/, /home...) avec chiffrement (Dm-crypt / LUKS) ou pas.
  2. cas numéro 2 : mise en place du Raid 0 sur un système Gnu/Linux déjà opérationnel.

Nos 2 volumes ou agrégats Raid 1 sont détectés par le système en tant que par exemple /dev/sda1 et /dev/sdc1

# mdadm --create /dev/md0 --level=linear --raid-devices=2 /dev/sda1 /dev/sdc1

création du volume de raid nommé /dev/md0 de type raid 0 option linear, composé des 2 volumes (raid-devices) /dev/sda1 et /dev/sdc1.

# mke2fs -j /dev/md0

Formatage de notre Raid 0

# mdadm /dev/md0 
/dev/md0 4881102.87MiB raid0 2 devices .................
................................

Pour visualiser les informations du Raid. Utiliser l'option --detail pour un résultat beaucoup plus verbeux.

Logical Volume Management (LVM)

http://fr.wikipedia.org/wiki/LVM Couche d'abstraction entre les supports physiques de stockage et les systèmes de fichiers, initialement développée par IBM. LVM utilise la notion d' extents, c'est à dire que chaque disque dur ou partition attribuée à LVM va être découpé en blocs de 4 MiO, les physical extents (PE), ce qui de fait supprime toute l'organisation logique précédente, toutes les données sont perdues. Les groupes de volumes vont être aussi découpés en logical extents (LE) de même taille (4 MiO) ; des pointeurs feront le lien entre les PE et les LE.
Lvm.jpg

  • Utilisation de plusieurs disques.
  • Création d'une ou de plusieurs partitions sur chaque disque, ou utilisation des partitions existantes. Dans le schéma ci-dessus il y a 1 partition par disque physique.
  • Création d'un volume physique (PV) par partition.
  • Regroupement des PV en 1 ou plusieurs Groupes de Volumes (VG).
  • Au sein de ces VG, création de Volumes Logiques (LV), sortes de partitions virtuelles LVM.
  • Chaque LV reçoit un point de montage et un type de système de fichiers.

Sur certains systèmes, /bin, /etc ou même /boot, ne sont pas gérés par LVM mais reposent sur une partition standard.

Fonctionnalités de LVM

Les principaux avantages et fonctionnalités de LVM sont :

  • Pas de carte matérielle RAID à acheter.
  • Les disques peuvent être disparates (modèle, taille, volumétrie) tout en sachant qu'affecter dans le même VG des volumes physiques issus de disques au performances hétérogènes aura un impact sur les performances : les vitesses d'écriture et de lecture auront tendance à se caler sur celles du disque le plus lent du VG.
  • Le stockage en miroir.
  • Les snapshots, possibilité de copier à l'identique le contenu d'un volume logique dans un autre périphérique.

Voici un autre exemple de configuration LVM (un seul volume physique dans un seul VG) au dessus d'un raid 1 logiciel :
LVM-RAID.png

Ci-dessous encore une variante de configuration LVM avec :

  • Une partition non gérée par LVM (ici /home mais cela aurait pu être une autre).
  • Différentes partitions dans 2 VG

LXF112.tut adv.2.png

Stockage en mirroir

Permet de réaliser un double enregistrement des données, à l'instar du RAID1. Pour cela il vaut mieux créer au miniumum 3 PV qui devront appartenir au même VG.

  • 1 PV pour les données originales
  • 1 PV pour la copie des données
  • 1 PV pour les logs

Pour un vraie sécurité, les 2 PV des données originales et de leur copie doivent se trouver sur des disques différents.

# pvs  (affichage des PV)
PV            VG         Fmt      Attr    PSize       PFree
/dev/sda2     systeme    lvm2     a-      400,00m     400,00m
/dev/sda3     systeme    lvm2     a-      900,00m     900,00m
/dev/sda4     donnees    lvm2     a-        4,00g       4,00g
/dev/sdb1     donnees    lvm2     a-        8,00g       8,00g
# lvcreate -L 2G -m 1 -n journaux1 donnees

(création du LV "journaux1" dans le VG "donnees", taille 2 Go, avec 1 mirroir)

Snapshots

Etat d'un LV, "photographie" à un instant t. Le snapshot est crée dans la VG auquel appartient le LV.

# lvcreate -n snap1Journaux1 -l 15%ORIGIN --snapshot /dev/donnees/journaux1
Outils personnels
Espaces de noms

Variantes
Actions
Navigation
Outils