Les bases
Le système de fichiers btrfs est conçu pour répondre aux exigences croissantes d'évolutivité des grands sous-systèmes de stockage. Comme le système de fichiers btrfs utilise des arbres B dans son implémentation, son nom dérive du nom de ces structures de données, bien qu'il ne s'agisse pas d'un véritable acronyme. Un arbre B est une structure de données arborescente qui permet aux systèmes de fichiers et aux bases de données d'accéder et de mettre à jour efficacement de grands blocs de données, quelle que soit la taille de l'arbre.
Le système de fichiers btrfs fournit les fonctionnalités importantes suivantes :
- La fonctionnalité de copie sur écriture vous permet de créer des instantanés lisibles et inscriptibles, et de restaurer un système de fichiers à un état antérieur, même après l'avoir converti à partir d'un système de fichiers ext3 ou ext4.
- La fonctionnalité de somme de contrôle garantit l'intégrité des données.
- La compression transparente permet d'économiser de l'espace disque.
- La défragmentation transparente améliore les performances.
- La gestion intégrée des volumes logiques vous permet de mettre en œuvre des configurations RAID 0, RAID 1 ou RAID 10, et d'ajouter et de supprimer dynamiquement de la capacité de stockage.
À partir de CentOS/RHEL 6 Update 3, l'ISO de démarrage vous permet de configurer un système de fichiers racine btrfs. Avant CentOS/RHEL 6 Update 3, vous ne pouviez pas créer un système de fichiers racine btrfs lors de l'installation.
Avec UEK R3, btrfs prend en charge les fonctionnalités supplémentaires suivantes :
- La fonctionnalité d'envoi/réception vous permet d'enregistrer les différences entre deux sous-volumes, qui peuvent être soit des instantanés du même sous-volume, soit des sous-volumes parent et enfant.
- Les groupes de quotas (qgroups) vous permettent de définir différentes limites de taille pour un volume et ses sous-volumes.
- Vous pouvez remplacer des périphériques sans démonter ni perturber l'accès au système de fichiers.
Ce document explique comment créer un système de fichiers BTRFS dans un seul périphérique sur le système CentOS/RHEL. Les étapes suivantes ont été effectuées sur une machine virtuelle exécutant CentOS/RHEL 7 avec un disque virtuel de 5 Go.
Créer un système de fichiers BTRFS
Ajoutez le disque souhaité sur lequel le système de fichiers btrfs va être configuré et assurez-vous que le système reconnaît le disque :
# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT xvda 202:0 0 20G 0 disk ├─xvda1 202:1 0 1G 0 part /boot └─xvda2 202:2 0 19G 0 part ├─ol-root 251:0 0 17G 0 lvm / └─ol-swap 251:1 0 2G 0 lvm [SWAP] xvdb 202:16 0 5G 0 disk
Dans la sortie ci-dessus, notre disque sera "xvdb". Les périphériques peuvent être de simples partitions de disque, des périphériques de bouclage (c'est-à-dire des images de disque en mémoire), des périphériques multichemins ou des LUN qui implémentent RAID dans le matériel.
1. Installez le package btrfs-progs s'il n'est pas déjà installé sur votre système :
# yum install btrfs-progs
2. Créez le système de fichiers Btrfs à l'aide de la commande mkfs.brtfs :
# mkfs.btrfs /dev/xvdb btrfs-progs v4.9.1 See http://btrfs.wiki.kernel.org for more information. Detected a SSD, turning off metadata duplication. Mkfs with -m dup if you want to force metadata duplication. Label: (null) UUID: c7d1687d-fe91-4837-b14a-4870466d1a3f Node size: 16384 Sector size: 4096 Filesystem size: 5.00GiB Block group profiles: Data: single 8.00MiB Metadata: single 8.00MiB System: single 4.00MiB SSD detected: yes Incompat features: extref Number of devices: 1 Devices: ID SIZE PATH 1 5.00GiB /dev/xvdb
3. Utilisez la commande btrfs filesystem show pour vérifier que le système de fichiers a été créé sur l'appareil :
# btrfs filesystem show Label: none uuid: c7d1687d-fe91-4837-b14a-4870466d1a3f Total devices 1 FS bytes used 112.00KiB devid 1 size 5.00GiB used 20.00MiB path /dev/xvdb
La commande ci-dessus affiche tous les systèmes de fichiers btrfs du système
ou
# btrfs filesystem show /dev/xvdb Label: none uuid: c7d1687d-fe91-4837-b14a-4870466d1a3f Total devices 1 FS bytes used 112.00KiB devid 1 size 5.00GiB used 20.00MiB path /dev/xvdb
La commande ci-dessus affiche des informations sur le système de fichiers btrfs uniquement sur le périphérique spécifié nécessaire (/dev/xvdb)
4. Montez le système de fichiers correspondant :
# mount /dev/xvdb /btrfsTest
5. Assurez-vous que le système de fichiers btrfs est maintenant monté :
# mount | grep btrfs /dev/xvdb on /btrfsTest type btrfs (rw,relatime,seclabel,ssd,space_cache)
Interroger un système de fichiers BTRFS
Exécutez la commande btrfs filesystem df pour afficher des informations plus précises sur l'espace utilisé par un système de fichiers btrfs.
# btrfs filesystem df /btrfsTest/ Data, single: total=8.00MiB, used=64.00KiB System, single: total=4.00MiB, used=16.00KiB Metadata, single: total=264.00MiB, used=112.00KiB GlobalReserve, single: total=16.00MiB, used=0.00B
Nous pouvons utiliser la commande df standard pour interroger le système de fichiers, mais les informations affichées peuvent ne pas être exactes.
# df -h /btrfsTest/ Filesystem Size Used Avail Use% Mounted on /dev/xvdb 5.0G 17M 4.8G 1% /btrfsTest
Plus d'informations et d'options peuvent être trouvées sur la page de manuel de mkfs.btrfs :
# man mkfs.btrfs