GNU/Linux >> Tutoriels Linux >  >> Linux

Linux - Fusionner les modifications du système de fichiers supérieur vers le système de fichiers inférieur dans le montage de la superposition Linux (overlayfs) ?

J'aimerais pouvoir fusionner les modifications du système de fichiers supérieur d'un montage superposé vers un système de fichiers inférieur.

Je suis intéressé à la fois en ligne (c'est-à-dire fusionner tandis que la superposition est montée) et hors ligne (démonter la superposition puis fusionner) solutions.

J'ai trouvé quelques solutions hors ligne, que j'ai ajoutées comme réponses.

Est-ce que quelqu'un connaît un site en ligne solutions? Ce serait bien d'avoir une commande de type "commit" que vous pourriez exécuter pour fusionner les couches pendant que la superposition est toujours montée.

Quelque chose comme ça a été posé dans les questions suivantes sans réponse :

  • Est-il possible de modifier un fichier et de le synchroniser avec le répertoire inférieur dans OverlayFs ?
  • Comment modifier un fichier inférieur via un répertoire OverlayFS ?
  • OverlayFS modifie de manière transparente le fichier dans le répertoire inférieur
  • OverlayFS – Comment rendre persistantes les modifications apportées au système de fichiers supérieur sans démonter ?

Les commentaires dans ces messages suggèrent diversement fusionfs et bcache, qui résolvent tous deux des cas d'utilisation spécifiques, mais pas le cas d'utilisation générique indépendant du système de fichiers fourni par les superpositions.

Mon objectif est d'avoir un bac à sable de système de fichiers sécurisé avec des instantanés pouvant être utilisés avec n'importe quelle application Linux sur n'importe quel système de fichiers sous-jacent (si possible), vous permettant d'annuler les modifications ou de les valider manuellement lorsque vous êtes prêt.

Je soupçonne que Linux principal moderne a toutes les fonctionnalités nécessaires pour faire cela intégré, grâce à toutes les innovations de sandboxing/virtualisation de ces dernières années, si seulement je savais comment les utiliser.

Réponse acceptée :

Une tentative de connexion en ligne solution, mais ce n'est pas tout à fait ça.

La configuration (par exemple, /tmp répertoire, en tant que root):

LOWER=$HOME
mkdir u1 w1 o1 O
mount -t overlay overlay -o lowerdir=$LOWER,upperdir=u1,workdir=w1 o1
mount --bind o1 O

Ensuite, vous pouvez travailler en O répertoire, qui est une superposition sur $LOWER . Lorsque vous voulez faire l'instantané :

mkdir u2 w2 o2
mount -t overlay overlay -o lowerdir=o1,upperdir=u2,workdir=w2 o2

(Notez que les superpositions imbriquées comme celle-ci ne fonctionneront pas sur les anciens noyaux).

Mais alors je veux un moyen de changer atomiquement le montage de liaison à O pointer vers o2 au lieu de o1 . Je ne sais pas comment faire autrement que :

umount O
mount --bind o2 O

(Non atomique; il y a une fenêtre où O est démonté).

Idéalement, les processus en cours d'exécution pourraient continuer à s'exécuter sans savoir que le système de fichiers sous-jacent de O avait changé de o1 à o2 . Je ne sais pas si cela est possible, ou si changer le système de fichiers sous-jacent de O comme cela perturbera trop les applications ouvertes. Je dois enquêter plus avant.

Puis, une fois O a été redirigé vers o2 , nous pouvons remonter o1 en lecture seule par précaution, puis effectuez une fusion hors ligne en utilisant par exemple rdiffdir ou overlayfs-tools.

En relation:Aide-mémoire Holy Sheet

Enfin, nous voudrions un moyen de remonter atomiquement o2 comme lowerdir=$HOME,upperdir=u2,workdir=w2 de sorte que o1 , u1 et w1 (tous les répertoires maintenant vides) pourraient être supprimés. Encore une fois, je ne sais pas si c'est possible.

Sinon, nous pouvons obtenir des instantanés en imbriquant simplement des superpositions de plus en plus profondes et en laissant la superposition et les répertoires supérieurs pour chaque montage sans tenter de fusionner ou de nettoyer. Mais il y a probablement une limite au nombre de superpositions imbriquées qui peuvent être montées. Et à un moment donné, nous devons encore fusionner les calques vers le bas si nous voulons conserver les modifications.


Linux
  1. Lier les montages sous Linux

  2. Comment monter et démonter un système de fichiers/partition sous Linux (exemples de commandes Mount/Umount)

  3. Options de montage NFS courantes sous Linux

  4. Quelles sont les options de montage pour améliorer les performances du système de fichiers ext4 sous Linux

  5. mount Exemples de commandes sous Linux

Comment monter un partage NFS sous Linux

Comment monter un fichier ISO sur Linux

Personnalisation des commandes du système de fichiers Linux

Comment chiffrer un seul système de fichiers Linux

Comment monter un système de fichiers Linux distant à l'aide de SSHFS

Linux :système de fichiers insensible à la casse