Btrfs

Comment utiliser les instantanés Btrfs

Comment utiliser les instantanés Btrfs
Le système de fichiers Btrfs a une prise en charge intégrée des instantanés au niveau du système de fichiers. Vous pouvez créer un sous-volume dans votre système de fichiers Btrfs et prendre des instantanés des fichiers/répertoires dans ce sous-volume. Prendre un instantané d'un sous-volume enregistrera l'état des fichiers/répertoires dans ce sous-volume. Vous pouvez récupérer tous les fichiers/répertoires du sous-volume à partir de l'instantané au cas où vous en auriez besoin.

La fonction d'instantané du système de fichiers Btrfs utilise le principe Copy-on-Write (CoW). Ainsi, cela ne prend pas beaucoup d'espace disque et vous pouvez prendre des instantanés d'un sous-volume instantanément.

Le système de fichiers Btrfs prend en charge 2 types d'instantanés.

  1. Instantanés inscriptibles : Si vous prenez un instantané inscriptible, vous pouvez modifier les fichiers/répertoires de cet instantané plus tard. C'est le type d'instantané par défaut du système de fichiers Btrfs.
  2. Instantanés en lecture seule : Si vous prenez un instantané en lecture seule, vous ne pouvez pas modifier les fichiers/répertoires de cet instantané ultérieurement.

Cet article vous montrera comment prendre des instantanés inscriptibles et en lecture seule de vos sous-volumes de système de fichiers Btrfs. Je vais également vous montrer comment mettre à jour un instantané inscriptible et récupérer des fichiers à partir d'un instantané. Je vais également vous montrer comment supprimer un instantané. Alors, commençons.

Conditions préalables

Pour essayer les exemples de cet article,

j'ai un disque dur de 20 Go sdb sur ma machine Ubuntu. j'ai créé 2 partitions sdb1 et sdb2 sur ce disque dur. je vais utiliser la partition sdb1 dans cet article.

$ sudo lsblk -e7

Votre disque dur ou SSD peut avoir un nom différent du mien, les partitions aussi. Alors, assurez-vous de les remplacer par les vôtres à partir de maintenant.

Si vous avez besoin d'aide pour installer le système de fichiers Btrfs sur Ubuntu, consultez mon article Installer et utiliser Btrfs sur Ubuntu 20.04 LTS.

Si vous avez besoin d'aide pour installer le système de fichiers Btrfs sur Fedora, consultez mon article Installer et utiliser Btrfs sur Fedora 33.

Création d'un système de fichiers Btrfs

Pour expérimenter avec les sous-volumes Btrfs, vous devez créer un système de fichiers Btrfs.

Pour créer un système de fichiers Btrfs avec l'étiquette Les données sur le sdb1 partition, exécutez la commande suivante :

$ sudo mkfs.btrfs -L données /dev/sdb1

Un système de fichiers Btrfs doit être créé.

Créer un répertoire /Les données avec la commande suivante :

$ sudo mkdir -v /données

Pour monter le système de fichiers Btrfs créé sur le sdb1 partition dans le /Les données répertoire, exécutez la commande suivante :

$ sudo mount /dev/sdb1 /data

Le système de fichiers Btrfs doit être monté comme vous pouvez le voir dans la capture d'écran ci-dessous.

$ df -h /données

Préparation du système de fichiers Btrfs pour les instantanés

Dans Btrfs, vous pouvez uniquement prendre des instantanés des sous-volumes Btrfs. La racine principale d'un système de fichiers Btrfs est également un sous-volume. Ainsi, vous pouvez effectuer la sauvegarde de l'ensemble du système de fichiers Btrfs ainsi que de sous-volumes spécifiques.

Cette section va créer un sous-volume Btrfs /données/projets/web1 et créez les fichiers nécessaires pour les sections suivantes de cet article ci-dessous. Je vais également créer un répertoire où vous pourrez conserver vos instantanés. Dans les sections suivantes, je vais vous montrer comment prendre des instantanés (inscriptibles et en lecture seule), mettre à jour un instantané inscriptible et récupérer des fichiers à partir de l'instantané. Alors, commençons.

Tout d'abord, créez un nouveau répertoire /données/projets comme suit:

$ sudo mkdir -v /données/projets

Créer un nouveau sous-volume web1 dans le /données/projets répertoire comme suit :

$ sudo btrfs subvolume create /data/projects/web1

Créer un nouveau fichier indice.html dans le /données/projets/web1 sous-volume comme suit :

$ sudo nano /data/projects/web1/index.html

Tapez les lignes de codes suivantes dans le indice.html déposer.




Site de démonstration



Bonjour le monde 4



Une fois que vous avez terminé, appuyez sur + X suivie par Oui et pour sauver le indice.html déposer.

Créer un nouveau fichier style.css dans le /données/projets/web1 sous-volume comme suit :

$ sudo nano /data/projects/web1/style.css

Tapez les lignes de codes suivantes dans le style.css déposer.

h1
la couleur verte;

Une fois que vous avez terminé, appuyez sur + X suivie par Oui et pour sauver le style.css déposer.

Maintenant le /données/projets/web1 sous-volume a le indice.html et style.css déposer.

$ ls -lh /data/projects/web1

Je veux conserver tous les instantanés de ce système de fichiers Btrfs dans le /Les données/.instantanés annuaire.

Créer le /Les données/.instantanés répertoire avec la commande suivante :

$ sudo mkdir -v /données/.instantanés

Prendre des instantanés d'un sous-volume

Pour prendre un instantané de la /données/projets/web1 sous-volume dans le /Les données/.instantanés/web1-2020-12-25 répertoire (sera créé automatiquement), exécutez la commande suivante :

$ sudo btrfs instantané de sous-volume /data/projects/web1 /data/.instantanés/web1-2020-12-25

Un instantané de la /données/projets/web1 répertoire doit être créé sur le /Les données/.instantanés/web1-2020-12-25 annuaire.

Comme vous pouvez le voir dans la capture d'écran ci-dessous, un nouveau sous-volume .instantanés/web1-2020-12-25 est créé. Un instantané est en fait un sous-volume.

$ sudo btrfs liste de sous-volumes / données

Vous pouvez voir plus d'informations sur l'instantané que vous avez créé dans le /Les données/.instantanés/web1-2020-12-25 répertoire comme suit :

$ sudo btrfs sous-volume show /data/.instantanés/web1-2020-12-25

Comme vous pouvez le voir, tous les fichiers qui sont dans le /données/projets/web1 sous-volume sont dans le /Les données/.instantanés/web1-2020-12-25 instantané.

$ arbre -a /données

Récupération de fichiers à partir d'instantanés

Dans cette section, je vais vous montrer comment récupérer des fichiers à partir des instantanés Btrfs.

Tout d'abord, je vais vous montrer comment récupérer un seul fichier à partir de l'instantané.

Ouvrez le /data/projets/web1/index.html fichier avec l'éditeur de texte nano comme suit :

$ sudo nano /data/projects/web1/index.html

Apportez les modifications que vous souhaitez.

Une fois que vous avez terminé, appuyez sur + X suivie par Oui et pour enregistrer le fichier.

Comme vous pouvez le voir, le principal indice.html le fichier est différent du indice.html fichier dans l'instantané.

$ cat /data/projects/web1/index.html
$ chat /données/.instantanés/web1-2020-12-25/index.html

Nous avons apporté les modifications à la principale indice.html fichier sont indésirables, et nous voulons récupérer le indice.html fichier de l'instantané.

Vous pouvez restaurer le indice.html fichier de l'instantané comme suit :

$ sudo cp -v /données/.instantanés/web1-2020-12-25/index.html /data/projects/web1/index.html

Comme vous pouvez le voir, le indice.html le fichier est restauré à partir de l'instantané.

$ cat /data/projects/web1/index.html
$ chat /données/.instantanés/web1-2020-12-25/index.html

Voyons maintenant comment récupérer tous les fichiers/répertoires de l'instantané.

Supprimer tous les fichiers du /données/projets/web1 instantané comme suit :

$ sudo rm -rv /data/projects/web1/*

Pour récupérer tous les fichiers/répertoires de l'instantané, exécutez la commande suivante :

$ sudo rsync -avz /data/.snapshots/web1-2020-12-25/ /data/projects/web1/

Comme vous pouvez le voir, les fichiers/répertoires sont restaurés à partir de l'instantané.

$ ls -lh /data/projects/web1

Enfin, voyons comment récupérer des fichiers/répertoires à partir de l'instantané en mode miroir. En mode miroir, les fichiers/répertoires du sous-volume seront les mêmes que dans l'instantané. S'il y a des fichiers/répertoires dans le sous-volume qui ne sont pas disponibles dans l'instantané, ils seront supprimés.

Créons un nouveau fichier dans le sous-volume pour différencier l'arborescence des fichiers de l'instantané.

Créer un LISEZ-MOI.SMS fichier dans le /données/projets/web1 sous-volume comme suit :

$ echo "bonjour le monde 5" | sudo tee /data/projects/web1/README.SMS

Comme vous pouvez le voir, l'arborescence des fichiers du /données/projets/web1 le sous-volume est différent du /Les données/.instantanés/web1-2020-12-25 instantané.

$ arbre -a /données

Pour restaurer les fichiers/répertoires du /Les données/.instantanés/web1-2020-12-25 instantané à la /données/projets/web1 sous-volume en mode miroir, exécutez la commande suivante :

$ sudo rsync -avz --delete /data/.snapshots/web1-2020-12-25/ /data/projects/web1/

Tous les fichiers/répertoires du /données/projets/web1 le sous-volume doit être restauré (en mode miroir) à partir du /Les données/.instantanés/web1-2020-12-25 instantané.

L'arborescence des fichiers du /données/projets/web1 sous-volume et le /Les données/.instantanés/web1-2020-12-25 l'instantané doit être le même.

Comme vous pouvez le voir, l'indice.fichier html et style.le contenu du fichier css est le même dans le /données/projets/web1 sous-volume et le /Les données/.instantanés/web1-2020-12-25 instantané.

Contenu de la indice.html et style.css fichier dans le /données/projets/web1 sous-volume.

$ cat /data/projects/web1/index.html
$ cat /data/projects/web1/style.css

Contenu de la indice.html et style.css fichier dans le /Les données/.instantanés/web1-2020-12-25 instantané.

$ cat /data/projects/web1/index.html
$ cat /data/projects/web1/style.css

Mise à jour d'un instantané

Par défaut, le système de fichiers Btrfs prend des instantanés inscriptibles. Un instantané Btrfs est comme un sous-volume. Ainsi, vous pouvez modifier/mettre à jour les fichiers/répertoires d'un instantané inscriptible.

Mettons à jour le indice.html fichier dans le /données/projets/web1 sous-volume.

Tout d'abord, ouvrez le indice.html fichier de la /données/projets/web1 sous-volume avec le nano éditeur de texte comme suit :

$ sudo nano /data/projects/web1/index.html

Apportez les modifications que vous souhaitez. Une fois que vous avez terminé, appuyez sur + X suivie par Oui et pour sauver le indice.html déposer.

Comme vous pouvez le voir, l'indice.fichier html du /données/projets/web1 le sous-volume est différent du /Les données/.instantanés/web1-2020-12-25 instantané.

$ cat /data/projects/web1/index.html
$ chat /données/.instantanés/web1-2020-12-25/index.html

Vous voulez garder le indice.html dossier de la /données/projets/web1 sous-volume.

Pour mettre à jour le indice.html fichier dans le /Les données/.instantanés/web1-2020-12-25 instantané, exécutez la commande suivante :

$ sudo cp -v /data/projects/web1/index.html /données/.instantanés/web1-2020-12-25/index.html

Comme vous pouvez le voir, le indice.html dossier de la /Les données/.instantanés/web1-2020-12-25 l'instantané est mis à jour.

La mise à jour d'un instantané est aussi simple que de copier de nouveaux fichiers sur l'instantané.

Prendre des instantanés en lecture seule d'un sous-volume

Parfois, vous ne voulez pas que les instantanés que vous avez pris soient mis à jour de quelque façon que ce soit. Dans ce cas, vous pouvez créer des instantanés en lecture seule.

Par exemple, pour créer un instantané en lecture seule /Les données/.instantanés/web1-2020-12-26 du /données/projets/web1 sous-volume, exécutez la commande suivante :

$ sudo btrfs instantané de sous-volume -r /data/projects/web1 /data/.instantanés/web1-2020-12-26

Comme vous pouvez le voir, un nouveau sous-volume .instantanés/web1-2020-12-26 est créé.

$ sudo btrfs liste de sous-volumes / données

Comme vous pouvez le voir, l'instantané /Les données/.instantanés/web1-2020-12-26 est en lecture seule.

$ sudo btrfs sous-volume show /data/.instantanés/web1-2020-12-26

Mettons à jour le indice.html fichier de la /données/projets/web1 sous-volume.

Pour ce faire, ouvrez le indice.html fichier de la /données/projets/web1 sous-volume avec le nano éditeur de texte comme suit :

$ sudo nano /data/projects/web1/index.html

Apportez les modifications que vous souhaitez. Une fois que vous avez terminé, appuyez sur + X suivie par Oui et pour enregistrer les modifications.

Comme vous pouvez le voir, le indice.html dans le /données/projets/web1 le sous-volume est différent du /Les données/.instantanés/web1-2020-12-26 instantané.

$ cat /data/projects/web1/index.html
$ chat /données/.instantanés/web1-2020-12-26/index.html

Essayons de mettre à jour le indice.html fichier dans le /Les données/.instantanés/web1-2020-12-26 instantané.

$ sudo cp -v /data/projects/web1/index.html /données/.instantanés/web1-2020-12-26/index.html

Comme vous pouvez le voir, vous ne pouvez pas mettre à jour le indice.html dossier de la /Les données/.instantanés/web1-2020-12-26 instantané car l'instantané est en lecture seule.

Suppression d'un instantané

Je vous ai dit plus tôt qu'un instantané Btrfs est comme un sous-volume. Ainsi, vous pouvez supprimer un instantané Btrfs tout comme vous supprimez un sous-volume Btrfs. Même commande.

C'est ainsi que l'arborescence des fichiers du système de fichiers Btrfs est montée sur le /Les données le répertoire ressemble à l'instant.

$ arbre -a /données

Supprimons le .instantanés/web1-2020-12-25 instantané.

$ sudo btrfs liste de sous-volumes / données

Pour supprimer le /Les données/.instantanés/web1-2020-12-25 instantané, exécutez la commande suivante :

$ sudo btrfs sous-volume delete /data/.instantanés/web1-2020-12-25

Comme vous pouvez le voir, l'instantané .instantanés/web1-2020-12-25 n'est plus.

$ sudo btrfs liste de sous-volumes / données

Comme vous pouvez le voir, les fichiers/répertoires du /Les données/.instantanés/web1-2020-12-25 l'instantané est également supprimé.

$ arbre -a /données

Conclusion

Cet article vous a montré comment prendre des instantanés inscriptibles et en lecture seule de vos sous-volumes de système de fichiers Btrfs. Je vous ai également montré comment mettre à jour un instantané inscriptible et récupérer des fichiers à partir d'un instantané. Je vous ai également montré comment supprimer un instantané Btrfs. Cet article devrait vous aider à démarrer avec la fonction d'instantané Btrfs.

Meilleurs jeux de laboratoire d'applications Oculus
Si vous êtes propriétaire d'un casque Oculus, vous devez être au courant du chargement latéral. Le chargement latéral est le processus d'installation ...
Top 10 des jeux à jouer sur Ubuntu
La plate-forme Windows a été l'une des plates-formes dominantes pour les jeux en raison du pourcentage énorme de jeux qui se développent aujourd'hui p...
5 meilleurs jeux d'arcade pour Linux
De nos jours, les ordinateurs sont des machines sérieuses utilisées pour les jeux. Si vous ne pouvez pas obtenir le nouveau score élevé, vous saurez c...