Le 30 mai 2018 à 12:07 +0200, Remy Dernat <remy.dernat@univ-montp2.fr>, a écrit :

Nous utilisons ici singularity http://singularity.lbl.gov/ , dans un cadre de portage d'application vers du HTC/HPC sous forme de conteneur. Ce n'est pas du docker (pas de démon, images qui peuvent être lancées en tant que simple utilisateur...), mais vous pouvez importer des images docker. Singularity a son propre langage de recette, mais il existe des convertisseurs depuis/vers docker. Les images peuvent être transportées très facilement (soit par dépôt/registre, soit par (s)cp / ftp ...); une fois produite, l'image est un simple fichier exécutable.


Si j'ai bien compris ton besoin, cette solution permet d'avoir ce que tu recherches (même si, dans notre cas (HPC), nous portons rarement des applis type bdd) :
  - une image immuable en read-only par défaut au format squashfs (peut être transformé en sandbox ou ext3),
  - des overlayfs au besoin,
  - plusieurs formes de lancement (image en démon avec image.start ou bien le temps de l'exécution avec run ou exec).

Nous utilisons NFS pour partager nos images. Par contre, en cas d'installation de singularity par NFS, il faut penser à créer un dossier local (localstatedir) pour les données temporaires sur chaque client NFS.

J'ai produit un TP accessible ici pour se former rapidement à cette solution : http://mbb.univ-montp2.fr/ust4hpc/tpSingu.html

En terme de performances, il n'y a pas de perte et les recettes sont claires (le contenu est découpé en sections commençant par "%" et les les lignes qui suivent sont en bash).

En terme de répétabilité, c'est également assez appréciable d'avoir des recettes propres qui incluent des sections %test. Dans ce cadre, l'utilisation des overlayfs au-dessus de l'image (qui ne sont pas sous la forme d'une recette), diminuent la lisibilité du conteneur (attention à l'effet boîte noire avec le temps). 

Intéressant, merci !

Bilan rapide de la journée :
- overlayfs en local, ça marche bien
- monter un partage nfs en overlay : ça marche mais pour une raison étrange, je ne peux pas mettre à jour un fichier. Je peux par contre en supprimer un et en créer un nouveau
- monter un overlay puis le monter en nfs : KO pour le moment - il faut attendre le nfs_export dispo en 4.16 d’une part et d’autre part, pour créer un overlayfs de type lower, il faut agréger 2 chemins minimums et pas uniquement un.

Bonne soirée,
Nicolas