Restaurer / restaurer des fichiers ou des dossiers uniques sur btrfs

Dec 08 2020

Je prévois d'utiliser btrfs pour un système NAS.

Maintenant, je me demande s'il est possible de restaurer des images instantanées au niveau d'un fichier / dossier. Je pose cette question parce que généralement, on veut uniquement restaurer des éléments uniques tout en conservant l'état du reste du lecteur.

Existe-t-il un moyen natif de le faire ou, sinon, comment y parvenir au mieux? J'ai lu Restaurer des fichiers uniques à partir d'un instantané btrfs sans faire une copie complète, ce qui semble être un moyen mais pas si pratique. Cela pourrait être la meilleure façon de le faire.

Réponses

1 clel Jan 02 2021 at 01:13

Prendre un instantané crée essentiellement un sous-volume accessible dans la structure de répertoires du volume de base. À partir de là, étant donné que l'on a les droits appropriés, on peut le parcourir et copier des fichiers ou des dossiers. L' --reflinkoption de copie ne semble pas nécessaire pour cela, bien que ce soit plus agréable, donc les choses ne sont pas dupliquées lors de leur copie.

avec les outils btrfs

Créer éventuellement un sous-volume pour les instantanés:

btrfs subvolume create .my_snapshots

Création de l'instantané:

btrfs subvolume snapshot -r /mnt_point /mnt_point/.my_snapshots/snapshot1

L'utilisation de l' -rindicateur rend l'instantané en lecture seule (https://wiki.archlinux.org/index.php/btrfs#Snapshots).

Sans créer d'abord un sous-volume et ne pas le rendre en lecture seule, cela pourrait simplement ressembler à ceci:

btrfs subvolume snapshot /mnt_point /mnt_point/snapshot1

La restauration peut être réalisée ensuite en copiant le (s) fichier (s) ou dossier (s) à partir de l'instantané:

cp /mnt_point/.my_snapshots/snapshot1/sub/dir/file /sub/dir/file

(Dérivé de https://lore.kernel.org/linux-btrfs/[email protected]/t/#m16db5d9f29d26f41a8adb4499ffe3e220a85d9b8)

outils externes (snapper utilisé comme exemple)

L'utilisation d'outils externes comme Snapper présente certains avantages, car ils rendent la gestion des instantanés un peu plus pratique et sont livrés avec des fonctionnalités utiles.

Tout d'abord, un fichier de configuration doit être créé pour le (sous) volume pour lequel vous souhaitez créer des instantanés:

snapper -c config-name create-config /mnt_point

Cela crée un fichier de configuration nommé config-name. Notez que cela permettra également généralement la création d'instantanés automatiques basés sur le temps ainsi que des règles pour les nettoyer après une certaine logique. Notez que les instantanés créés manuellement ne seront pas supprimés par de telles règles.

Un instantané peut ensuite être pris manuellement avec:

snapper -c config-name create --description description-content

config-nameest le nom de la configuration précédemment créée et description-contentpeut être rempli avec une description pour l'instantané.

(Dérivé de https://wiki.archlinux.org/index.php/Snapper)

La restauration fonctionne alors de la même manière que ci-dessus pour la section des outils btrfs avec l'accès à l'instantané monté et la copie des éléments.

De plus, snapper fournit une commande pour ce qui peut également être utilisée pour annuler les modifications du volume actuel selon la documentation openSUSE . Notez cependant que cela peut entraîner des incohérences dans les données. La documentation Red Hat déclare également de ne pas utiliser cette commande avec le système de fichiers racine.

En théorie, les fichiers peuvent être restaurés avec:

 snapper -c config-name -v undochange SNAPSHOT_ID..0 FILENAME

SNAPSHOT_IDest l'ID de l'instantané à partir duquel effectuer la restauration (et ..0indique que les fichiers sont restaurés sur le volume principal) et FILENAMEest le chemin d'accès au fichier à restaurer. On peut également spécifier plus d'un fichier.

(Dérivé de https://doc.opensuse.org/documentation/leap/archive/15.0/reference/html/book.opensuse.reference/cha.snapper.html#proc.snapper.restore.cmdl)

EmmanuelRosa Dec 09 2020 at 17:25

Les instantanés BTRFS fonctionnent au niveau du sous-volume. Cela signifie que vous pouvez "restaurer" des sous-volumes, mais pas des fichiers individuels.

Puisque les sous-volumes apparaissent comme des répertoires dans le système de fichiers, vous pourriez dire qu'il est possible de restaurer des répertoires.

Pour restaurer des fichiers individuels, j'utilise une copie de réflexion, comme indiqué dans le lien que vous avez fourni. Cependant, j'ai les sous-volumes pertinents montés automatiquement via /etc/fstabdonc il n'y a pas d'inconvénient.