Blog ENI : Toute la veille numérique !
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
Black Friday: -25€ dès 75€ sur les livres en ligne, vidéos... avec le code BWEEK25. J'en profite !
  1. Livres et vidéos
  2. LINUX
  3. Partitionnement avancé : RAID, LVM et BTRFS
Extrait - LINUX Préparation à la certification LPIC-1 (examens LPI 101 et LPI 102) - [6e édition]
Extraits du livre
LINUX Préparation à la certification LPIC-1 (examens LPI 101 et LPI 102) - [6e édition]
5 avis
Revenir à la page d'achat du livre

Partitionnement avancé : RAID, LVM et BTRFS

Prérequis et objectifs

1. Prérequis

Disposer d’un accès root.

Avoir un ou plusieurs disques inutilisés.

Ou, à défaut, un espace libre non partitionné sur un disque.

2. Objectifs

À la fin de ce chapitre, vous serez en mesure :

De comprendre les différences entre les niveaux de RAID.

De créer et modifier des matrices RAID.

De gérer les pannes et les modes dégradés.

De mettre en place un LVM.

De modifier à volonté la taille de vos volumes logiques.

D’agrandir et de réduire vos systèmes de fichiers.

De gérer des subvolumes BTRFS et d’effectuer des snapshots.

D’étendre et de réduire des systèmes de fichiers BTRFS sur un ou plusieurs disques.

Partitionnement avancé RAID logiciel�

1. Définitions

Le RAID (Redundant Array of Independent Disks) 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. Le but est 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). Aujourd’hui le mot Independent a remplacé Inexpensive. Une matrice apparaît comme une unité logique de stockage unique.

Le MTBF (Mean Time Between Failure - temps moyen entre pannes) de l’ensemble est égal au MTBF d’un disque individuel divisé par le nombre de disques dans l’ensemble : si un disque a une durée de vie de 10000 heures, vous avez une chance sur 10000 qu’il tombe en panne au bout de ce temps. Avec deux disques, 2 chances sur 10000, donc une chance sur 5000. Donc théoriquement, une solution RAID peut être inadaptée pour des tâches critiques. Heureusement, le RAID peut être tolérant aux fautes en stockant de manière redondante ses informations selon plusieurs méthodes, dont trois sont présentées ici :

  • RAID-0 (appelé stripe mode) : deux disques au moins forment un seul volume. Les deux disques ont en principe la même taille. Chaque opération de lecture/écriture sera fractionnée et effectuée sur chacun des disques. Par exemple, 4 ko seront écrits sur le disque 0, 4 ko sur le disque 1, 4 ko sur le disque 2, puis 4 ko sur le disque 0, etc. Ainsi, les performances sont accrues puisque les opérations de lecture et d’écriture sont effectuées en parallèle sur les disques. Si N est le nombre de disques et P la vitesse de transfert, la vitesse de transfert du volume RAID est en principe proche de N*P mbps. Le RAID-0 n’a aucune redondance. En cas de panne d’un des disques l’ensemble des données est perdu.

  • RAID-1 (appelé mirroring) : premier mode redondant. Il peut être utilisé à partir de deux disques ou plus avec d’éventuels disques de secours (Spare Disk). Chaque information écrite sur un disque...

Initiation au LVM

1. Principe

Le Logical Volume Manager est un système de gestion très perfectionné des supports de stockage. Le but est de dépasser, voire transcender la gestion physique des disques, et leur organisation logique basique (les partitions) pour étendre la capacité globale des supports, à l’aide d’une gestion entièrement logique de celle-ci.

Un LVM permet, tout comme le RAID-0 par exemple, de créer des espaces de données logiques sur plusieurs disques. Il permet aussi de faire du mirroring, comme le RAID-1. Mais la comparaison s’arrête là. Le RAID logiciel se contente de créer une « partition » dans un espace de stockage défini par le RAID lui-même (par exemple une partition de 100 Go dans un RAID-0 de deux disques de 50 Go).

Le LVM regroupe les disques physiques, ou tout autre support de stockage dit physique (disque, RAID matériel, RAID logiciel, support de stockage en provenance d’un SAN), 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é.

  • 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 VG.

  • Volume logique LV : un découpage logique au sein d’un VG.

Un volume logique est vu comme une partition, et est utilisable comme telle. Il peut contenir des données, il suffit de créer un système de fichiers ordinaire (ext4 par exemple) et de le monter de manière tout à fait classique.

images/chap10_04.png

Contrairement au RAID-0 Logiciel où la partition de données doit occuper tout l’espace, il est possible de créer autant de volumes logiques de toute taille que souhaité. Mais cela va bien plus loin.

Le LVM est dynamique. Il est possible d’ajouter et de supprimer des volumes physiques d’un groupe de volumes. En ajoutant des volumes physiques, la capacité, et donc l’espace disponible du groupe augmente. Le nouvel espace disponible peut permettre de créer des nouveaux volumes logiques, mais aussi d’agrandir un volume logique existant.

Un volume logique est dynamique...

Utilisation étendue de BTRFS

1. Les subvolumes

a. Un système de fichiers dans un autre système de fichiers

Les subvolumes sont souvent comparés aux volumes logiques de LVM. C’est un raccourci rapide pour expliquer une chose pourtant différente. Un subvolume BTRFS peut être vu comme un espace de noms (namespace) POSIX différencié. En pratique, la création d’un subvolume s’apparente à celle d’un « sous-système de fichiers » au sein d’un système de fichiers : il fait partie du système de fichiers où il a été créé, mais est utilisable comme s’il était un système de fichiers à part entière : il peut être monté (ailleurs), disposer de ses propres droits et quotas, et on peut en faire un instantané (un snapshot).

Et surtout, contrairement à un volume logique, il n’y a aucune création de périphérique de type bloc. Quand on crée un subvolume, il apparaît comme un simple répertoire à l’endroit de sa création.

La racine d’un système de fichiers btrfs est elle-même un subvolume, celui par défaut.

Les subvolumes se manipulent avec la commande btrfs subvolume.

b. Création

On utilise la commande btrfs subvolume create. Voici un exemple de création d’un subvolume subvol1 et une étude de son comportement :

# df -Th .  
Sys. de fichiers Type  Taille Utilisé Dispo Uti% Monté sur  
/dev/sdh1        btrfs    10G     17M  9,5G   1% /my_btrfs   
# btrfs subvolume create subvol1  
      Create subvolume './subvol1'  
# ls  
      subvol1  

Vous pouvez lister les subvolumes comme ceci :

# btrfs subvolume list /my_btrfs  
ID 257 gen 7 top level 5 path subvol1 

c. Montage

Le premier intérêt des subvolumes est de pouvoir les monter ailleurs. Il est même possible d’utiliser des options de montage différentes. Certaines ne sont cependant pas supportées et il est possible que leur liste évolue selon les versions...

Validation des acquis : questions/réponses

1. Questions

Si l’état de vos connaissances sur ce chapitre vous semble suffisant, répondez aux questions ci-après.

RAID

1 Que signifie l’abréviation RAID ?

2 Soit un RAID-1 composé de trois disques ayant individuellement un MTBF de 30000 heures. Quel est le MTBF final ?

  • A - 10000 heures

  • B - 30000 heures

  • C - 90000 heures

3 Un RAID-5 est composé de 4 disques de 100 Go. Quelle est la capacité totale de stockage ?

4 Deux disques sont en RAID-0. Le second disque tombe en panne.

  • A - Les données encore présentes sur le premier disque sont conservées.

  • B - Les données sont réparties, donc tout est perdu.

  • C - Les données sont présentes sur le premier disque, le second peut être reconstruit.

5 Un RAID-5 est composé de trois disques ainsi que d’un disque de secours (spare). Deux disques tombent en panne, à quelque temps d’intervalle. Le RAID est-il encore fonctionnel ?

6 Quelle commande permet de manipuler du RAID logiciel ?

7 Est-il possible de créer un RAID-15 (1+5) de manière logicielle ?

8 La commande suivante a-t-elle un sens ?

mdadm --create /dev/md0 --level=raid0 --raid-devices=2 /dev/sdb1  
/dev/sdc1 -spare-devices=1 /dev/sdd1 

9 Un cat /proc/mdstat indique ceci, que se passe-t-il ?

md0 : active raid1 sdb10[2] sdb9[0]F sdb8[1] 

10 Est-il normalement possible de changer un disque IDE à chaud ?

LVM

11 Que signifie LVM ?

12 Un groupe de volumes peut-il être composé de volumes physiques de types différents ?

13 Quel est le type de partition à attribuer à un volume physique ?

  • A - fd ou fd00

  • B - 83 ou 8300

  • C - 82 ou 8200

  • D - 8e ou 8e00

14 Soit trois volumes physiques de 30, 70 et 100 Go. Quelle est la taille maximale d’un volume logique taillé dans le groupe de volumes constitué de ces trois PV ?

15 Un groupe de volumes vgLOCAL est constitué de PE d’une taille de 64 Mo. Quel est le paramètre à passer à la commande lvcreate pour créer un volume logique de 12 Go ?

16 On souhaite agrandir lv_L1 jusqu’à 20 Go. Or il n’y a plus de PE de libre dans le VG. Comment ajouter un volume physique /dev/sde de 20 Go ?

  • A - vgextend -L +20G /dev/sde vgLOCAL

  • B - pvextend /dev/sde...

Travaux pratiques

1. Gérer un RAID-1

But : utiliser les commandes fdisk et mdadm pour gérer un RAID-1

1.

Sur votre disque dur, créez deux partitions de taille identique. La taille n’a pas d’importance. Donnez-leur le type fd, comme dans l’exemple suivant. Reportez-vous au chapitre Les disques et le système de fichiers pour l’utilisation de fdisk. Éventuellement utilisez la commande partprobe pour rafraîchir la table des partitions du noyau.

# fdisk /dev/sdb 
Commande (m pour l'aide): p 
 
Disque /dev/sdb: 160.0 Go, 160041885696 octets 
255 heads, 63 sectors/track, 19457 cylinders 
Units = cylindres of 16065 * 512 = 8225280 bytes 
Disk identifier: 0x000eab03 
 
Périphérique Amorce    Début         Fin      Blocs    Id  Système 
/dev/sdb1               2       16846   135307462+  83  Linux 
/dev/sdb2           16847       18152    10490445   fd  Linux raid  
autodetect 
/dev/sdb3           18153       19457    10482412+  fd  Linux raid  
autodetect 
 
# partprobe /dev/sdb 

2.

Créez le RAID avec la commande mdadm. C’est la syntaxe courte qui est donnée ici :

# mdadm -C /dev/md0 -l 0 -n 2 /dev/sdb2 /dev/sdb3 
mdadm: array /dev/md/0 started. 

3.

Vérifiez l’état du RAID en regardant le contenu de /proc/mdstat :

# cat /proc/mdstat 
Personalities : [raid0] 
md0 : active raid0 sdb3[1] sdb2[0] 
      20972672 blocks 64k chunks 

4.

Comparez ce résultat avec celui de la commande mdstat pour un affichage détaillé. /proc/mdsta fournit un instantané de l’état du RAID vu du noyau. La sortie de mdstat fournit, outre l’état actuel, les informations sur la conception et le mode de fonctionnement du RAID :

slyserver:/home/seb...