GNU/Linux >> Tutoriels Linux >  >> Cent OS

Comment créer et monter des instantanés Btrfs

Btrfs est un système de fichiers open source à usage général pour Linux. Le nom dérive de l'utilisation de B-trees pour stocker les structures internes du système de fichiers. Différents noms sont utilisés pour le système de fichiers, notamment "Butter F S" et "B-tree F S". Le développement de Btrfs a commencé chez Oracle en 2007, et maintenant un certain nombre d'entreprises (dont Red Hat, Fujitsu, Intel, SUSE et bien d'autres) contribuent à l'effort de développement. Btrfs est inclus dans le noyau Linux principal.

Instantanés Btrfs

Les sous-volumes Btrfs peuvent être instantanés et clonés, ce qui crée des arbres B supplémentaires. Un instantané commence par une copie d'un sous-volume prise à un moment donné. Vous pouvez rendre un instantané accessible en écriture et l'utiliser comme un clone évolutif du sous-volume d'origine. Vous pouvez également utiliser l'instantané comme image stable d'un sous-volume à des fins de sauvegarde ou de migration vers d'autres systèmes. Les instantanés peuvent être créés rapidement et consomment initialement très peu d'espace disque.

Utilisez la commande btrfs subvolume snapshot pour créer un instantané inscriptible/lisible d'un sous-volume. L'exemple suivant crée un instantané du sous-volume SV1 :

# btrfs subvolume snapshot /btrfs/SV1 /btrfs/SV1/SV1-snap
Create a snapshot of '/btrfs/SV1' in '/btrfs/SV1/SV1-snap'

Utilisez l'instantané de sous-volume btrfs -r option pour créer un instantané en lecture seule :

# btrfs subvolume snapshot -r /btrfs/SV1 /btrfs/SV1-rosnap
Create a readonly snapshot of '/btrfs/SV1' in '/btrfs/SV1-rosnap'

Les instantanés apparaissent sous la forme d'un répertoire normal lorsque la commande ls est utilisée. Les instantanés apparaissent également dans la sortie de la commande btrfs subvolume list.

# btrfs subvolume list /btrfs
ID 257 gen 10 top level 5 path SV1
ID 258 gen 9 top level 257 path SV1/SV1-snap
ID 259 gen 10 top level 5 path SV1-rosnap

Prendre un instantané d'un fichier

Vous pouvez utiliser le "cp –reflink ” commande pour prendre un instantané d'un fichier. Avec cette option, le système de fichiers ne crée pas de nouveau lien pointant vers un inode existant, mais crée à la place un nouvel inode qui partage les mêmes blocs de disque que la copie d'origine. Le nouveau fichier semble être une copie du fichier d'origine, mais les blocs de données ne sont pas dupliqués. Cela permet à la copie d'être presque instantanée et économise également de l'espace disque. À mesure que le contenu du fichier diverge au fil du temps, sa quantité de stockage requise augmente. Une restriction est que cette opération ne peut fonctionner que dans les limites du même système de fichiers et dans le même sous-volume.

L'exemple suivant copie un fichier à l'aide de la commande cp –reflink. L'espace utilisé est donné à la fois avant et après l'opération de copie. Notez que l'espace utilisé n'augmente pas.

# df -hP /btrfs
Filesystem       Size  Used   Avail  Use%   Mounted on
/dev/sda         10G   23M    8.0G    1%    /btrfs
# cp --reflink /btrfs/SV1/vmlinuz-3.10.0-693.17.1.el7.x86_64 /btrfs/SV1/copy_of_vmlinuz
# df -h /btrfs
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda         10G   23M  8.0G   1% /btrfs

Monter un sous-volume ou un instantané

Par défaut, Linux monte le volume parent Btrfs, qui a un ID de 0. Dans cet exemple, la commande de montage suivante a été émise avant de créer des sous-volumes et des instantanés :

# mount /dev/sdb /btrfs

Le sous-volume SV1 a été créé dans /btrfs. La commande ls affiche le sous-volume :

# ls -l /btrfs
total 0
drwxr-xr-x. 1 root root 84 Mar 29 11:01 SV1

L'exemple suivant copie les fichiers dans SV1, crée un instantané de SV1 et vérifie que le sous-volume et l'instantané contiennent les mêmes fichiers :

# cp -p /boot/vmlinuz-3.10.0-693.17.1.el7.x86_64 /btrfs/SV1
# btrfs sub snapshot /btrfs/SV1 /btrfs/SV1-snap
Create a snapshot of '/btrfs/SV1' in '/btrfs/SV1-snap'
# ls /btrfs/SV1*
/btrfs/SV1:
vmlinuz-3.10.0-693.17.1.el7.x86_64

/btrfs/SV1-snap:
vmlinuz-3.10.0-693.17.1.el7.x86_64

Si vous démontez /btrfs et le remontez, le volume parent Btrfs est monté par défaut :

# ls /btrfs/
SV1  SV1-snap
# umount /btrfs
# mount /dev/sda /btrfs/
# ls /btrfs/
SV1  SV1-snap

Vous pouvez cependant monter un sous-volume ou un instantané btrfs comme s'il s'agissait d'un périphérique de disque. Si vous montez un instantané au lieu de son sous-volume parent, vous restaurez en fait l'état du système de fichiers au moment où l'instantané a été pris. L'exemple suivant copie un fichier vers SV1 afin que le contenu soit différent de SV1-snap :

# cp testfile /btrfs/SV1
# ls -l /btrfs/SV1*
/btrfs/SV1:
total 5760
-rw-r--r--. 1 root root      19 Mar 29 11:44 testfile
-rwxr-xr-x. 1 root root 5890720 Jan 25 20:26 vmlinuz-3.10.0-693.17.1.el7.x86_64

/btrfs/SV1-snap:
total 5756
-rwxr-xr-x. 1 root root 5890720 Jan 25 20:26 vmlinuz-3.10.0-693.17.1.el7.x86_64

Pour monter un sous-volume ou un instantané, vous devez d'abord déterminer le numéro d'identification du sous-volume que vous souhaitez monter. Utilisez la commande btrfs subvolume list pour afficher les numéros d'identification. Dans l'exemple suivant, l'ID du sous-volume racine est 257 :

# btrfs sub list /btrfs
ID 257 gen 12 top level 5 path SV1
ID 258 gen 9 top level 5 path SV1-snap

Utilisez le btrfs "set-default de sous-volume ” pour définir le sous-volume par défaut d'un système de fichiers. Par exemple, pour monter le sous-volume SV1 Btrfs, qui a un ID de 257 :

# btrfs subvolume set-default 257 /btrfs

Vous devez ensuite démonter et remonter le système de fichiers Btrfs. Le niveau racine contient alors le contenu du sous-volume SV1 et le sous-volume racine n'est plus visible :

# ls -l /btrfs
total 5760
-rw-r--r--. 1 root root      19 Mar 29 11:44 testfile
-rwxr-xr-x. 1 root root 5890720 Jan 25 20:26 vmlinuz-3.10.0-693.17.1.el7.x86_64

Vous pouvez également utiliser le "-o subvolid ” à la commande mount pour monter le sous-volume racine ou un sous-volume ou un instantané. Par exemple, pour monter le sous-volume racine :

# umount /btrfs
# mount -o subvolid=5 /dev/sda /btrfs
# ls -l /btrfs
total 0
drwxr-xr-x. 1 root root 84 Mar 29 11:44 SV1
drwxr-xr-x. 1 root root 68 Mar 29 11:17 SV1-snap
Comment créer et monter un système de fichiers Btrfs (expliqué avec des exemples)
Comment redimensionner/étendre un volume/système de fichiers Btrfs


Cent OS
  1. Comment créer et activer la partition d'échange sur Centos / RHEL 8

  2. Comment créer un utilisateur Sudo sur Rocky Linux et CentOS

  3. Comment monter et démonter des lecteurs sous Linux

  4. Sous-volumes Btrfs Vs Dossiers ?

  5. Comment créer et monter des instantanés Btrfs

Comment créer un utilisateur MariaDB et accorder des privilèges

Comment créer et utiliser des sous-domaines

Comment créer et exécuter un script Shell dans CentOS 8

Comment créer et restaurer des instantanés de machine virtuelle dans VirtualBox

Comment créer un fichier et le monter en tant que système de fichiers ?

Comment créer, restaurer et supprimer des instantanés d'images de machines virtuelles dans RedHat Virtualization