Comment utiliser les instantanés btrfs

Comment utiliser les instantanés btrfs
Le système de fichiers BTRFS a une prise en charge de l'instantané de niveau de fichier intégré. 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 sauvera 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 de copie-écriture (vache). Donc, il 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 écrit: Si vous prenez un instantané écrit, vous pouvez modifier les fichiers / répertoires de ces instantanés plus tard. Il s'agit du type d'instantané par défaut du système de fichiers BTRFS.
  2. Instantané en lecture seule: Si vous prenez un instantané en lecture seule, vous ne pouvez pas modifier les fichiers / répertoires de cet instantané plus tard.

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

Conditions préalables

Pour essayer les exemples de cet article,

  • Vous devez avoir le système de fichiers BTRFS installé sur votre ordinateur.
  • Vous devez avoir un disque dur ou un SSD avec au moins 1 partition gratuite (de toute taille).

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. J'utiliserai la partition sdb1 dans cet article.

$ sudo lsblk -e7

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

Si vous avez besoin d'aide pour installer le système de fichiers BTRFS sur Ubuntu, consultez mon article Installez et utilisez des 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 données sur le sdb1 partition, exécutez la commande suivante:

$ sudo mkfs.BTRFS -L DATA / DEV / SDB1

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

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

$ sudo mkdir -v / data

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

$ sudo mont / 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éparer le système de fichiers BTRFS pour les instantanés

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

Cette section créera un sous-volume BTRFS / data / projets / web1 et créer les fichiers nécessaires pour les sections suivantes de cet article ci-dessous. Je vais également créer un répertoire où vous pouvez garder vos instantanés. Dans les sections suivantes, je vais vous montrer comment prendre des instantanés (écrivains et en lecture seule), mettre à jour un instantané à rédaction 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 / data / 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 / data / projets / web1 sous-volume comme suit:

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

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




Site Web de démonstration



Hello World 4



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

Créer un nouveau fichier style.CSS dans le / data / projets / web1 sous-volume comme suit:

$ sudo nano / data / projets / 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 Y et Pour sauver le style.CSS déposer.

Maintenant le / data / projets / web1 sous-volume a le indice.html et style.CSS déposer.

$ ls -lh / data / projets / web1

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

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

$ sudo mkdir -v / data /.instantanés

Prendre des instantanés d'un sous-volume

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

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

Un instantané du / data / projets / web1 Le répertoire doit être créé sur le /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 / données du sous-volume

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

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

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

$ arbre -a / données

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

Dans cette section, je vais vous montrer comment récupérer les fichiers des instantanés BTRFS.

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

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

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

Apporter les modifications que vous souhaitez.

Une fois que vous avez terminé, appuyez sur + X suivie par Y 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 / projets / web1 / index.html
$ cat / data /.Instantané / web1-2020-12-25 / index.html

Nous avons apporté les modifications au principal indice.html Les fichiers sont indésirables et nous voulons récupérer le indice.html fichier à partir de l'instantané.

Vous pouvez restaurer le indice.html Fichier à partir de l'instantané comme suit:

$ sudo cp -v / data /.Instantané / web1-2020-12-25 / index.html / data / projets / web1 / index.html

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

$ cat / data / projets / web1 / index.html
$ cat / data /.Instantané / web1-2020-12-25 / index.html

Maintenant, voyons comment récupérer tous les fichiers / répertoires à partir de l'instantané.

Supprimer tous les fichiers du / data / projets / web1 Instantané comme suit:

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

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

$ sudo rsync -avz / data /.instantanés / web1-2020-12-25 / / data / projets / web1 /

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

$ ls -lh / data / projets / web1

Enfin, voyons comment récupérer les 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 de fichier de l'instantané.

Créer un Réadmettre.SMS fichier dans le / data / projets / web1 sous-volume comme suit:

$ echo "Hello World 5" | Sudo Tee / Data / Projects / Web1 / Readme.SMS

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

$ arbre -a / données

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

$ sudo rsync -avz --delete / data /.instantanés / web1-2020-12-25 / / data / projets / web1 /

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

L'arborescence de fichier du / data / projets / web1 sous-volume et le /données/.instantanés / web1-2020-12-25 L'instantané devrait être le même.

Comme vous pouvez le voir, l'index.Fichier et style HTML.Le contenu du fichier CSS est le même dans le / data / projets / web1 sous-volume et le /données/.instantanés / web1-2020-12-25 instantané.

Contenu du indice.html et style.CSS fichier dans le / data / projets / web1 subvolume.

$ cat / data / projets / web1 / index.html
$ cat / data / projets / web1 / style.CSS

Contenu du indice.html et style.CSS fichier dans le /données/.instantanés / web1-2020-12-25 instantané.

$ cat / data / projets / web1 / index.html
$ cat / data / projets / web1 / style.CSS

Mise à jour d'un instantané

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

Mettons à jour le indice.html fichier dans le / data / projets / web1 subvolume.

Tout d'abord, ouvrez le indice.html fichier à partir du / data / projets / web1 sous-volume avec le nano Éditeur de texte comme suit:

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

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

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

$ cat / data / projets / web1 / index.html
$ cat / data /.Instantané / web1-2020-12-25 / index.html

Vous voulez garder le indice.html fichier du / data / projets / web1 subvolume.

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

$ sudo cp -v / data / projets / web1 / index.html / data /.Instantané / web1-2020-12-25 / index.html

Comme vous pouvez le voir, le indice.html fichier du /données/.instantanés / web1-2020-12-25 L'instantané est mis à jour.

La mise à jour d'un instantané est aussi simple que la copie 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 pour être mis à jour. Dans ce cas, vous pouvez créer des instantanés en lecture seule.

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

$ sudo btrfs Sous-volume instantanée -r / data / projets / 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 / données du sous-volume

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

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

Mettons à jour le indice.html fichier à partir du / data / projets / web1 subvolume.

Pour ce faire, ouvrez le indice.html fichier à partir du / data / projets / web1 sous-volume avec le nano Éditeur de texte comme suit:

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

Apporter les modifications que vous souhaitez. Une fois que vous avez terminé, appuyez sur + X suivie par Y et Pour enregistrer les modifications.

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

$ cat / data / projets / web1 / index.html
$ cat / data /.instantanés / web1-2020-12-26 / index.html

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

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

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

Supprimer 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 de fichier du système de fichiers BTRFS est monté sur le /données Le répertoire ressemble en ce moment.

$ arbre -a / données

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

$ sudo btrfs Liste / données du sous-volume

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

$ sudo btrfs subvolume 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 / données du sous-volume

Comme vous pouvez le voir, les fichiers / répertoires du /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 écrivains et en lecture seule de vos sous-volumes de système de fichiers BTRFS. Je vous ai également montré comment mettre à jour un instantané écrit et récupérer des fichiers à partir d'un instantané. Je vous ai montré comment supprimer également un instantané BTRFS. Cet article devrait vous aider à démarrer avec la fonction d'instantané BTRFS.