Contexte

Les services NFS ne sont pas activées par défaut dans les containers NFS.

Il est nécessaire d’ajouter des options dans la configuration des containers. Mais selon les configurations, le service « apparmor » doit aussi être mis à jour.

En montant un serveur NFS ou un partage NFS, on a ce type d’erreur :


# /etc/init.d/nfs-kernel-server start
mount: nfsd is write-protected, mounting read-only
mount: cannot mount nfsd read-only
Exporting directories for NFS kernel daemon....
Starting NFS kernel daemon: nfsdrpc.nfsd: Unable to access /proc/fs/nfsd errno 2 (No such file or directory).
Please try, as root, 'mount -t nfsd nfsd /proc/fs/nfsd' and then restart rpc.nfsd to correct the problem
 failed!

# mount -t nfsd nfsd /proc/fs/nfsd
mount: nfsd is write-protected, mounting read-only
mount: cannot mount nfsd read-only


Configuration du Container

L’activation du NFS se fait à l’aide des commandes suivantes :


#Activation du support NFS CLIENT
vzctl set $CTID --features nfs:on --save

#Activation du support NFS SERVEUR
vzctl set $CTID --features nfsd:on --save

Dans le fichier de configuration du container ( /etc/pve/lxc/xxx.conf ), on trouvera les paramètres suivants ajoutés.


FEATURES="nfs:on nfsd:on"

Dans le fichier de configuration du container, il faut définir un profil « apparmor » à utiliser.


lxc.aa_profile: lxc-container-default-with-nfs

A priori, l’entrée suivante ne necessitepasdecrééerun profil spécifique pour apparmor. Jen’ai pas testé.


lxc.aa_profile: unconfined


Création du profil

Création du du nouveau profil apparmor.


touch /etc/apparmor.d/lxc/lxc-default-with-nfs

On édite le fichier avec les informations suivantes :


# Do not load this file.  Rather, load /etc/apparmor.d/lxc-containers, which
# will source all profiles under /etc/apparmor.d/lxc

profile lxc-container-default flags=(attach_disconnected,mediate_deleted) {
  #include 

  # the container may never be allowed to mount devpts.  If it does, it
  # will remount the host's devpts.  We could allow it to do it with
  # the newinstance option (but, right now, we don't).
  deny mount fstype=devpts,

mount fstype=nfsd,
mount fstype=rpc_pipefs,
}

Il reste à recharger apparmor avec l’une des commandes suivantes:


apparmor_parser -r /etc/apparmor.d/lxc-containers
/etc/init.d/apparmor reload


Sources

http://openvz.org/NFS_server_inside_container

https://forum.proxmox.com/threads/is-it-possible-to-run-a-nfs-server-within-a-lxc.24403/

http://xavtech.blogspot.fr/2016/02/nfs-server-in-lxc-container-proxmox-41.html

Trackback

no comment until now

Add your comment now