Restaurer / restaurer des fichiers ou des dossiers uniques sur btrfs
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
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' --reflink
option 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' -r
indicateur 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
où config-name
est le nom de la configuration précédemment créée et description-content
peut ê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
où SNAPSHOT_ID
est l'ID de l'instantané à partir duquel effectuer la restauration (et ..0
indique que les fichiers sont restaurés sur le volume principal) et FILENAME
est 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)
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/fstab
donc il n'y a pas d'inconvénient.