web-dev-qa-db-fra.com

Overlayfs recharger avec plusieurs couches (migration hors de aufs)

Je suis tombé sur un de ces aufs pour superposer des problèmes de migration. Avec aufs, vous pouvez spécifier plusieurs couches RO et la mise à jour de certains fichiers qui y sont a été actualisée avec remount.

fstab avec aufs:

aufs    /etc                       aufs    noauto,br:/rw-root/etc=rw:/ro-root/etc=ro:/etc=rr  0 0

Même fonctionnalité avec overlayfs:

none    /.tmp-root/etc              overlayfs  noauto,upperdir=/ro-root/etc,lowerdir=/etc      0 0 
none    /etc                       overlayfs  noauto,upperdir=/rw-root/etc,lowerdir=/.tmp-root/etc  0 0 

Monter le système dans l’ordre est correct et tout fonctionne. Le problème se pose lorsque je dois mettre à jour quelque chose sur la partition racine-racine. En exécutant remount sur qui voit/etc comme les superpositions déjà montées et non comme le répertoire racine d'origine. (Résolution du problème barré avec mount --bind)

Apparemment, le problème est avec inode numéros des fichiers. La modification d'un fichier fonctionne donc bien, mais si je copie un nouveau fichier par-dessus l'ancien, les modifications ne sont pas propagées. Donc, cela pourrait être un réel problème de superposition.

J'aimerais vraiment que cette configuration continue de fonctionner (tout restructurer implique beaucoup de travail et de tests que je préférerais éviter, car cela affecte plus de 50 machines virtuelles). Cela étant dit, j'accepterai également les réponses qui permettraient de déplacer en toute sécurité racine après initrd-stage en toute sécurité pour contourner ce problème et, si cela n’est pas possible, de suggérer le moyen le plus minimaliste de changer/modifier/créer initrd pour accomplir ce déplacement.

Il y a une autre question connexe, mais c'est la forme la plus simple de deux couches. question simple de rechargement de superpositions

3
Manwe

avez-vous essayé d'exécuter remount d'abord sur /.tmp-reoot/etc puis de remonter sur/etc

par exemple.:

 mount -o remount /.tmp-reoot/etc

 mount -o remount /etc
1
badgerhill