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 :
- monter en mode dégradé,
- ajouter un nouveau périphérique,
- 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.