Comment sauvegarder les instantanés BTRFS aux lecteurs externes

Comment sauvegarder les instantanés BTRFS aux lecteurs externes

Par défaut, vous pouvez stocker les instantanés que vous prenez de vos sous-volumes BTRFS dans le même système de fichiers BTRFS, mais il n'est pas possible de stocker les instantanés d'un système de fichiers BTRFS directement vers un autre système de fichiers BTRFS. Cependant, le système de fichiers BTRFS vous fournit les outils nécessaires pour sauvegarder les instantanés d'un système de fichiers BTRFS à un autre système de fichiers BTRFS. Cet article vous montre comment sauvegarder les instantanés BTRFS à un système de fichiers BTRFS externe sur un lecteur externe.

Conditions préalables

Pour essayer les exemples inclus dans cet article, vous devez remplir les conditions suivantes:

  • Le système de fichiers BTRFS est installé sur votre ordinateur.
  • Avoir un disque dur ou un SSD avec au moins 2 partitions libres (de toute taille).

J'ai le disque dur de 20 Go, SDB, Sur ma machine Ubuntu. J'ai créé deux partitions, sdb1 et sdb2, Sur ce disque dur.

$ sudo lsblk -e7

Note: Votre disque dur ou SSD aura un nom différent de la mienne, tout comme les partitions. Alors, assurez-vous de remplacer ces noms par le vôtre à partir de maintenant.


Je vais créer des systèmes de fichiers BTRFS sur le sdb1 et le sdb2 partitions. Les instantanés créés sur le système de fichiers BTRFS (sdb1) sera sauvegardé au système de fichiers BTRFS créé sur le sdb2 cloison. Le système de fichiers BTRFS créé sur le sdb2 la partition agira comme le lecteur externe. Vous pouvez également utiliser un lecteur de pouce USB ou un disque dur externe; Assurez-vous simplement de le formater avec le système de fichiers BTRFS.

Pour obtenir de l'aide pour installer le système de fichiers BTRFS à Ubuntu, consultez mon article Installer et utilisez BTRFS sur Ubuntu 20.04 LTS.

Pour obtenir de l'aide pour l'installation du système de fichiers BTRFS dans Fedora, consultez mon article Installer et utilisez BTRFS sur Fedora 33.

Création de systèmes de fichiers BTRFS requis

Je formaterai à la fois le sdb1 et sdb2 partitions comme btrfs. J'utiliserai le sdb1 partition pour stocker les données et les instantanés BTRFS. J'utiliserai le sdb2 partition pour sauvegarder les instantanés du système de fichiers BTRFS créé sur le sdb1 cloison.

Pour créer un système de fichiers BTRFS sur le sdb1 partition et donnez-lui les données d'étiquette du système de fichiers, exécutez la commande suivante:

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

Un système de fichiers BTRFS doit désormais être créé sur le sdb1 cloison.

Pour créer un système de fichiers BTRFS sur le sdb2 partition et donnez-lui les instantanés d'étiquette de système de fichiers, exécutez la commande suivante:

$ sudo mkfs.Btrfs -l Snapshots / dev / sdb2

Un système de fichiers BTRFS doit désormais être créé sur le sdb2 cloison.

Créer les répertoires /données et / instantané pour le montage du sdb1 et sdb2 Partitions, respectivement, comme suit:

$ sudo mkdir -v / data, instantanés

Montez le système de fichiers BTRFS que vous avez créé sur le sdb1 partition sur le répertoire / données, comme suit:

$ sudo mont / dev / sdb1 / data

De la même manière, montez le système de fichiers BTRFS que vous avez créé sur le sdb2 partition sur le / instantané Répertoire, comme suit:

$ sudo mont / dev / sdb2 / instantanés

Comme vous pouvez le voir dans la capture d'écran ci-dessous, les deux systèmes de fichiers BTRFS (sdb1 et sdb2 partitions) ont été montées correctement.

$ df -h -t btrfs

Prendre des instantanés d'un système de fichiers BTRFS

Dans cette section, nous créerons le projet factice web1 sur le / Data / Projects / web1 BTRFS Sous-volume. Nous prendrons un instantané de ce sous-volume dans cette section, ainsi que d'autres instantanés dans les sections ultérieures de cet article.

Tout d'abord, créez le nouveau répertoire / Données / Projets, comme suit:

$ sudo mkdir -v / data / projets

Ensuite, créez le nouveau subvolume web1 dans le / Répertoire des données / projets, comme suit:

$ sudo btrfs subvolume Create / data / projects / web1

Enfin, créez le nouvel index de fichiers.html dans le / data / projets / web1 sous-volume avec l'éditeur de texte nano, comme suit:

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

Tapez les lignes de code suivantes dans l'index.Fichier HTML:




Site Web de démonstration



Bonjour le monde




Une fois que vous avez terminé, appuyez sur <Ctrl> + X suivie par Y et <Entrer> pour sauver le indice.fichier html.

De la même manière, créez le nouveau fichier style.CSS dans le / Data / Projects / Sous-volume web1 comme suit:

$ sudo nano / data / projets / web1 / style.CSS


Tapez les lignes de code suivantes dans le style.CSS déposer:

H1
la couleur verte;

Une fois que vous avez terminé, appuyez sur <Ctrl> + X suivie par Y et <Entrer> pour sauver le style.CSS déposer.

Maintenant le / Data / Projects / Sous-volume web1 contient le indice.html et style.Fichier CSS.

$ ls -lh / data / projets / web1

Nous garderons tous les instantanés de ce système de fichiers BTRFS dans le /données/.instantanés annuaire.

Tout d'abord, créez le /données/.instantanés Répertoire avec la commande suivante:

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

Ensuite, créez l'instantané en lecture seule /données/.instantanés / web1-2020-12-30 de la / Data / Projects / Sous-volume web1 avec la commande suivante:

$ sudo btrfs Sous-volume instantanée -r / data / projets / web1 / data /.instantanés / web1-2020-12-30

Comme vous pouvez le voir, le nouveau instantané /données/.instantanés / web1-2020-12-30 a été créé.

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

Sauvegarde des instantanés vers le lecteur externe

Pour sauvegarder l'instantané /données/.instantanés / web1-2020-12-30 à un autre système de fichiers BTRFS (entraînement externe SDB2, dans ce cas) monté sur le / instantané répertoire, exécutez la commande suivante:

$ sudo btrfs Send / data /.Instantané / web1-2020-12-30 | sudo btrfs reçoit / instantanés

L'instantané /données/.instantanés / web1-2020-12-30 doit être sauvegardé au système de fichiers BTRFS externe (sdb2) monté sur le / instantané annuaire.

Comme vous pouvez le voir, le Nouveau sous-volume web1-2020-12-30 a été créé sur le système de fichiers BTRFS externe.

$ sudo btrfs Liste des sous-volumes / instantanés

Le Snapshot Web1-2020-12-30 devrait avoir les mêmes fichiers/ répertoires comme le /données/.instantanés / web1-2020-12-30 instantané.

$ arbre -a / instantanés

Vous pouvez obtenir plus d'informations sur l'instantané sauvegardé / instantanés / web1-2020-12-30 comme suit:

$ sudo btrfs subvolume show / snapshots / web1-2020-12-30

Sauvegarde incrémentielle des instantanés au lecteur externe

S'il y a beaucoup de fichiers dans les instantanés pour sauvegarder à un lecteur externe, alors les sauvegardes incrémentielles vous aideront à accélérer l'opération de sauvegarde. Dans ce cas, BTRFS ne metra à jour les fichiers qui ont changé depuis le dernier instantané et copieront de nouveaux fichiers qui n'étaient pas disponibles dans le dernier instantané.

Dans cette section, je vais vous montrer comment effectuer des sauvegardes incrémentielles des instantanés BTRFS aux systèmes de fichiers BTRFS externes.

Tout d'abord, ouvrez le indice.fichier html du / Data / Projects / Sous-volume web1, comme suit:

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

Apporter les modifications que vous souhaitez à la indice.fichier html. Une fois que vous avez terminé, appuyez sur <Ctrl> + X suivie par Y et <Entrer> pour sauver le indice.html déposer.

Prenez un nouvel instantané en lecture seule du / Data / Projects / Sous-volume web1, comme suit:

$ sudo btrfs Sous-volume instantanée -r / data / projets / web1 / data /.instantanés / web1-2020-12-31

Comme vous pouvez le voir, le nouveau instantané /données/.instantanés / web1-2020-12-31 de la / Data / Projects / Sous-volume web1 a été créé.

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

Maintenant, nous sommes prêts à prendre une sauvegarde incrémentielle.

Pour prendre une sauvegarde incrémentielle, vous aurez besoin d'un instantané commun de la source et de la destination (lecteur externe) BTRFS Systèmes. L'instantané commun est généralement le dernier instantané d'un sous-volume BTRFS. Lorsque vous prenez un nouvel instantané sur le système de fichiers BTRFS source, le nouveau instantané est comparé au dernier instantané (disponible sur le système de fichiers Source et de destination) du système de fichiers BTRFS source. BTRFS calculera la différence et n'enverra que les données requises au système de fichiers BTRFS de destination (le lecteur externe).

Par exemple, pour prendre une sauvegarde incrémentielle du /données/.instantanés / web1-2020-12-31 instantané, Vous devez spécifier l'instantané parent (le dernier instantané disponible sur les systèmes de fichiers Source et Destination BTRFS), /données/.instantanés / web1-2020-12-30, aussi.

Une sauvegarde incrémentielle du /données/.instantanés / web1-2020-12-31 Un instantané peut être apporté à un système de fichiers BTRFS externe, comme suit:

$ sudo btrfs Send -p / data /.instantanés / web1-2020-12-30 / data /.Instantané / web1-2020-12-31 | sudo btrfs reçoit / instantanés

Une sauvegarde incrémentielle du /données/.instantanés / web1-2020-12-31 L'instantané doit être pris.

Comme vous pouvez le voir, le Web1-2020-12-31 instantané a été sauvegardé au système de fichiers BTRFS externe monté sur le / instantané annuaire.

$ sudo btrfs Liste des sous-volumes / instantanés

Comme vous pouvez le voir dans la capture d'écran ci-dessous, les modifications que vous avez apportées au indice.fichier html sont disponibles dans le Web1-2020-12-31 instantané qui a été sauvegardé au système de fichiers BTRFS externe.

$ cat / snapshots / web1-2020-12-31 / index.html

De la même manière, vous pouvez prendre autant de sauvegardes incrémentielles de vos instantanés que vous le souhaitez.

Je vais vous montrer comment faire une sauvegarde incrémentielle une fois de plus. Je ne prendrai pas le temps de l'expliquer à nouveau. Au lieu de cela, je vais juste vous montrer le processus de clarté.

Ouvrir le indice.fichier html du / Data / Projects / Sous-volume web1, comme suit:

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

Apporter les modifications que vous souhaitez à la indice.fichier html. Une fois que vous avez terminé, appuyez sur <Ctrl> + X suivie par Y et <Entrer> pour sauver le indice.fichier html.

Prenez un nouvel instantané en lecture seule du / Data / Projects / Sous-volume web1, comme suit:

$ sudo btrfs Sous-volume instantanée -r / data / projets / web1 / data /.instantanés / web1-2020-12-31_2

Prendre une sauvegarde incrémentielle du /données/.instantanés / web1-2020-12-31_2 Instantané à un système de fichiers BTRFS externe, comme suit:

$ sudo btrfs Send -p / data /.instantanés / web1-2020-12-31 / data /.Instantané / web1-2020-12-31_2 | sudo btrfs reçoit / instantanés

Note: Maintenant, l'instantané parent auquel le /données/.instantanés / web1-2020-12-31_2 Instantané sera comparé est /données/.instantanés / web1-2020-12-31.

Comme vous pouvez le voir, le web1-2020-12-31_2 L'instantané a été sauvegardé au système de fichiers BTRFS externe monté sur le / instantané annuaire.

$ sudo btrfs Liste des sous-volumes / instantanés

Comme vous pouvez le voir dans la capture d'écran ci-dessous, les modifications récentes apportées au indice.fichier html sont disponibles sur le Web1-2020-12-31_2 instantané sauvegardé au système de fichiers BTRFS externe.

$ cat / snapshots / web1-2020-12-31_2 / index.html

Garder les choses propres

Si vous sauvegardez fréquemment vos instantanés BTRFS, vous vous retrouverez avec beaucoup de clichés, et il peut devenir difficile de les gérer. Heureusement, vous pouvez supprimer tout instantané du système de fichiers BTRFS.

Si vous utilisez un lecteur externe suffisamment grand pour garder les sauvegardes des instantanés BTRFS, vous pouvez conserver quelques instantanés sur votre système de fichiers BTRFS et sauvegarder tous les instantanés de votre lecteur externe.

Si vous utilisez un lecteur externe plus petit, vous pouvez ne garder sélectivement que les instantanés les plus importants sauvegardés sur le lecteur externe.

Pour effectuer des sauvegardes de vos instantanés BTRFS, vous devez conserver au moins le dernier instantané sur la source (/données/.instantanés) et la destination (/ instantanés - lecteur externe) Systèmes de fichiers BTRFS. Alors, n'hésitez pas à supprimer tous les instantanés autres que le dernier instantané aux deux extrémités.

Par exemple, dans ce cas, le dernier instantané est web1-2020-12-31_2. Ainsi, pour effectuer des sauvegardes incrémentielles, cet instantané doit être conservé sur la source et la destination (lecteur externe) BTRFS Systèmes.

Supposons que vous souhaitez supprimer le /données/.instantanés / web1-2020-12-30 instantané.

Pour ce faire, exécutez la commande suivante:

$ sudo btrfs subvolume delete / data /.instantanés / web1-2020-12-30

L'instantané BTRFS /données/.instantanés / web1-2020-12-30 devrait maintenant être supprimé.

De la même manière, vous pouvez supprimer le /données/.instantanés / web1-2020-12-31 instantané, comme suit:

$ sudo btrfs subvolume delete / data /.instantanés / web1-2020-12-31

Maintenant, seul le dernier instantané, /données/.instantanés / web1-2020-12-31_2, est disponible sur le système de fichiers BTRFS, monté sur le /données annuaire. Les autres instantanés sont sauvegardés sur le lecteur externe, monté sur le / instantané annuaire.

$ sudo btrfs Liste / données du sous-volume
$ sudo btrfs Liste des sous-volumes / instantanés

Restauration d'instantanés à partir du lecteur externe

Si vous avez reculé vos instantanés sur le lecteur externe, vous pouvez les restaurer à tout moment à partir du lecteur externe.

Par exemple, j'ai supprimé le Instantané Web1-2020-12-30 de mon système de fichiers BTRFS, monté sur le /données annuaire. Mais, cet instantané est sauvegardé sur le lecteur externe, monté sur le / instantané annuaire. Laissez-nous restaurer cet instantané.

$ sudo btrfs Liste des sous-volumes / instantanés

Pour restaurer le Instantané Web1-2020-12-30 À partir du lecteur externe, exécutez la commande suivante:

$ sudo btrfs Send / Snapshots / web1-2020-12-30 | sudo btrfs reçoit / data /.instantanés

Le Snapshot Web1-2020-12-30 doit être restauré sur le système de fichiers BTRFS monté sur le /données annuaire.

Comme vous pouvez le voir, le Instantané Web1-2020-12-30 est restauré sur le système de fichiers BTRFS monté sur le /données annuaire.

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

Et, comme vous pouvez le voir, le contenu du indice.html fichier à partir du Instantané Web1-2020-12-30. Ceci est la première version du indice.html fichier d'avant.

$ cat / data /.Snapshots / web1-2020-12-30 / index.html

Conclusion

Dans cet article, vous avez appris à sauvegarder des instantanés de votre système de fichiers BTRFS à un lecteur externe. Vous avez également appris à prendre des sauvegardes incrémentielles de vos instantanés BTRFS à un lecteur externe. Enfin, vous avez appris à supprimer les instantanés existants d'un système de fichiers BRTFS et à restaurer les instantanés du lecteur externe, ainsi que.