GNU/Linux >> Tutoriels Linux >  >> Linux

Comment créer et interroger un système de fichiers BTRFS

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


Linux
  1. Comment créer un swap sous Linux

  2. Comment créer un fichier d'échange sous Linux

  3. Comment créer et monter un système de fichiers Btrfs (expliqué avec des exemples)

  4. Comment créer et monter des systèmes de fichiers sous Linux

  5. Comment monter et démonter un système de fichiers sous Linux

Qu'est-ce qu'EFS (Elastic File System) dans AWS et comment l'utiliser

Comment créer et exécuter un fichier Playbook Ansible

Comment ajouter un nouveau périphérique au système de fichiers BTRFS sous Linux

Comment vérifier et réparer un système de fichiers dans RHEL Linux

Comment créer et utiliser un fichier d'échange sous Linux

Comment créer un gros fichier de 1 Go ou 10 Go dans le système Linux