Partitionnement avancé : RAID, LVM et BTRFS
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 est dupliquée...
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.

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