Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

3.4. Gestion des volumes intégrés de plusieurs périphériques

Un système de fichiers btrfs peut être créé par dessus plusieurs périphériques, et des périphériques supplémentaires peuvent être ajoutés une fois que le système de fichiers a été créé. Par défaut, les métadonnées seront mises en miroir sur deux périphériques, et les données seront réparties sur tous les périphériques présents. Cependant, si un seul périphérique est présent, les métadonnées seront dupliquées sur ce périphérique.

3.4.1. Création de système de fichiers avec plusieurs périphériques

La commande mkfs.btrfs détaillée dans Section 3.1, « Création d'un système de fichiers btrfs » accepte les options -d pour les données, et -m pour les métadonnées. Les spéfifications acceptées sont :
  • raid0
  • raid1
  • raid10
  • dup
  • single
L'option -m single indique qu'aucun duplicata de métadonnées n'a lieu. C'est souhaitable quand on utilise un raid de matériel.

Note

Raid 10 exige quatre périphériques au moins exécutant correctement.

Exemple 3.1. Créer un système de fichiers btrfs Raid 10

Créer un système de fichiers sur quatre périphériques (métadonnées mises en miroir, données réparties).
# mkfs.btrfs /dev/device1 /dev/device2 /dev/device3 /dev/device4
Répartir les données sans les mettre en miroir.
# mkfs.btrfs -m raid0 /dev/device1 /dev/device2
Utiliser Raid 10 pour les données et les métadonnées à la fois.
# mkfs.btrfs -m raid10 -d raid10 /dev/device1 /dev/device2 /dev/device3 /dev/device4
Ne pas dupliquer les métadonnées sur un seul disque.
# mkfs.btrfs -m single /dev/device
Utiliser l'option single pour utiliser toute la capacité de chaque disque quand les disques sont de tailles différentes.
# mkfs.btrfs -d single /dev/device1 /dev/device2 /dev/device3
Pour ajouter un nouveau périphérique à un système de fichiers multi périphériques déjà créé, utiliser la commande suivante :
# btrfs device add /dev/device1 /mount-point
Après le redémarrage ou le chargement à nouveau du module btrfs, utiliser la commande btrfs device scan pour découvrir tous les systèmes de fichiers multi-périphériques. Voir Section 3.4.2, « btrfs device scan pour périphériques multiples » pour obtenir plus d'informations.

3.4.2. btrfs device scan pour périphériques multiples

Utilisez btrfs device scan pour scanner tous les périphériques blocs sous /dev et cherchez les volumes btrfs. Cela doit être effectué après le chargement du module btfrs si vous exécutez plus d'un périphérique dans un système de fichiers.
Pour scanner tous les périphériques, utiliser la commande suiavnte :
# btrfs device scan
Pour scanner un seul périphérique, utiliser la commande suiavnte :
# btrfs device scan /dev/device

3.4.3. Ajouter des nouveaux périphériques à un système de fichiers btrfs

Utiliser la commande btrfs filesystem show pour faire la liste de tous les systèmes de fichiers btrfs et des périphériques qu'ils incluent.
La commande btrfs device add est utilisée pour ajouter des nouveaux périphériques à un système de fichiers monté.
La commande btrfs filesystem balance équilibre (redistribue) les extensions allouées à tous les périphériques existants.
Voici un exemple de toutes ces commandes pour ajouter un nouveau périphérique :

Exemple 3.2. Ajouter un nouveau périphérique à un système de fichiers btrfs

Vous devez tout d'abord monter un système de fichiers btrfs. Voir Section 3.1, « Création d'un système de fichiers btrfs » pour plus d'informations sur la façon de créer un système de fichiers btrfs, et Section 3.2, « Monter un système de fichiers btrfs » pour obtenir plus d'informations sur la façon de monter un système de fichiers btrfs.
# mkfs.btrfs /dev/device1
# mount /dev/device1
Puis, ajouter un second périphérique au système de fichiers btrfs monté.
# btrfs device add /dev/device2 /mount-point
Les métadonnées et données stockées sur ces périphériques ne sont stockées que sur /dev/device1. Elles doivent maintenant être réparties équitablement entre les périphériques.
# btrfs filesystem balance /mount-point
Équilibrer un système de fichiers peut prendre un certain temps car il lit toutes les données et métadonnées du système de fichiers et les ré-écrit à travers le nouveau périphérique.

3.4.4. Convertir un système de fichiers btrfs

Pour convertir un système de fichiers non-raid en raid, ajouter un périphérique et exécutez un filtre d'équilibrage qui change le profil d'allocation du bloc.

Exemple 3.3. Convertir un système de fichiers btrfs

Pour convertir un système de périphérique unique existant, /dev/sdb1 dans un tel cas, et en deux périphériques, un système raid 1 pour se protéger des défaillances du disque, utiliser la commande suivante :
# mount /dev/sdb1 /mnt
# btrfs device add /dev/sdc1 /mnt
# btrfs balance start -dconvert=raid1 -mconvert=raid1 /mnt

Important

Si les métadonnées ne sont pas converties à partir d'un seul périphérique par défaut, il demeure DUP. Cela ne garantit pas que les copies du bloc sont sur des périphériques séparés. Si les données ne sont pas converties, il n'aura pas de copies obsolètes dutout.

3.4.5. Suppression des périphériques btrfs

Utiliser la commande btrfs device delete pour supprimer un périphérique en ligne. Redistribue toute extension utilisée par d'autres périphériques du système de fichiers pour une suppression en toute sécurité.

Exemple 3.4. Supprimer un périphérique sur un système de fichiers btrfs

Commencez par créer et monter quelques systèmes de fichiers btrfs.
# mkfs.btrfs /dev/sdb /dev/sdc /dev/sdd /dev/sde
# mount /dev/sdb /mnt
Ajouter certaines données au système de fichiers.
Finalement, supprimer le périphérique requis.
# btrfs device delete /dev/sdc /mnt

3.4.6. Remplacer les périphériques qui ont échoué sur le système de fichiers btrfs

Section 3.4.5, « Suppression des périphériques btrfs » peut être utilisé pour supprimer un périphérique ayant échoué, dans la mesure où le super bloc puisse être lu. Cependant, si un périphérique venait à manquer, ou si le super bloc était corrompu, le système de fichiers devra être monté en mode dégradé :
# mkfs.btrfs -m raid1 /dev/sdb /dev/sdc /dev/sdd /dev/sde


  ssd is destroyed or removed, use -o degraded to force the mount
  to ignore missing devices


# mount -o degraded /dev/sdb /mnt


  'missing' is a special device name


# btrfs device delete missing /mnt
La commande btrfs device delete missing supprime le premier périphérique qui est décrit dans les métadonnées du système de fichiers, mais qui n'était pas présent quand le système de fichiers a été monté.

Important

Il est impossible d'aller en dessous du nombre minimum de périphériques requis dans la structure de raids spécifique, même en en incluant celui qui manque. Il faut sans doute ajouter un nouveau périphérique pour pouvoir supprimer celui qui a échoué.
Par exemple, pour une structure de raid1 avec deux périphériques, si un périphérique échoue, il lui faudra :
  1. monter en mode dégradé,
  2. ajouter un nouveau périphérique,
  3. et, supprimer le périphérique manquant.

3.4.7. Enregistrer un système de fichiers btrfs dans /etc/fstab

Si vous n'avez pas un initrd ou si le périphérique btrfs ne peut avoir lieu, il est possible de monter un système de fichiers btrfs multi volumes en passant tous les périphériques du système de fichiers explicitement à la commande mount.

Exemple 3.5. Exemple de saisie /etc/fstab

Exemple de saisie /etc/fstab qui conviendrait :
/dev/sdb    /mnt    btrfs    device=/dev/sdb,device=/dev/sdc,device=/dev/sdd,device=/dev/sde    0
Notez qu'en utilisant des UUID (Universally Unique Identifiers), ce sera plus stable qu'avec des chemins de périphériques.