Forum Linux.debian/ubuntu Partage de fichiers NFS entre VM

Posté par  . Licence CC By‑SA.
Étiquettes :
0
26
avr.
2016

Bonjour,

J'ai un soucis concernant le partage de fichiers NFS entre machines virtuelles.

Ce que je cherche à faire est assez simple, j'ai un serveur dédié OVH avec une distribution Proxmox, et des machines virtuelles qui tournent principalement sur Debian Jessie.

Afin d'avoir une souplesse en partage d'espace disque et en partage de fichier, j'ai créé une VM avec OpenMediaVault (serveur NFS sur Debian Jessie), qui contient plusieurs dossiers partagés, avec des quotas sur l'utilisation de l'espace disque.

Les VM qui utilisent ces partages sont par exemple :

  • Serveur mail BlueMind
  • Serveur cloud OwnCloud
  • Serveur torrent Transmission

Le soucis est en rapport avec les propriétaires et permissions sur les fichiers.

Je connais bien la problématique des ID user et group pour le partage NFS, mais malgrès plusieurs jours d'essais je ne trouve pas de solutions.

Le NFS géré par OpenMediaVault est du NFSv4 (le dernier).

Par exemple, le serveur Transmission écrit des fichiers avec l'utilisateur "debian-transmission".

Pour que cela fonctionne il faut que l'utilisateur "debian-transmission" existe sur le serveur NFS et ai le même UID / GID.

J'ai donc créé cet utilisateur sur OMV (OpenMediaVault), avec un UID et GID identique mais cela ne fonctionne pas.

Pour simplifier, j'ai fais un autre test :

Création d'un user "test" sur OMV et sur une VM de test :

Commande "useradd -u 5000 test" sur les deux VM.

On a donc un UID identique sur le serveur et le client.

Les permissions sur le dossier de partage sont bien en R/W pour le user "test", et pourtant lorsque je créé un fichier dans le dossier partagé, par défaut le propriétaire est "nobody", et la commande "chown test fichier" échoue.

Donc les différentes VM ne peuvent pas écrire dans ces dossiers partagés.

Par exemple le serveur mail BlueMind enregistre les mails avec le user "cyrus", même problématique.

J'ai essayé la plupart des options NFS coté serveur et client, sans réussite.

Avez-vous déjà été confrontés à ce genre de problèmes ?

Y a-t-il d'autres solutions que le NFS pour du partage de fichiers / espace disque partagé ?

  • # proxmox, conteneur, et NFS

    Posté par  . Évalué à 3.

    quelle techno utilises-tu pour tes VMs ?
    des VMs en QEMU/KVM ou des VMs en conteneur (openvz/lxc) ?

    je demande ca car avec openvz, il faut que le serveur NFS soit aussi activé sur le proxmox afin que les modules noyaux soit prechargés, puis il faut autoriser la VM à se servir de ces modules.

    normalement entre 2 machines KVM/QEMU cela devrait fonctionner

    bon je viens de relire le post, le service NFS est bien dispo.
    tu as un probleme avec les droits d'acces.
    il te faut verifier :
    - les droits dans le dossier sur OMV
    - les options de partage de ce dossier sur OMV
    - les options de montage de ce dossier dans la VM

    • [^] # Re: proxmox, conteneur, et NFS

      Posté par  . Évalué à 1.

      J'utilise QEMU/KVM pour toutes mes VM.

      Pour les options de montage je laisse celles par défault :

      • Serveur : rw,subtree_check,secure
      • Client : rw,relatime,vers=4.0,rsize=524288,wsize=524288,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=192.168.0.2,local_lock=none,addr=192.168.0.7

      Je créé un dossier partagé sur le serveur NFS avec propriétaire "test".

      Je le monte coté client.

      ls -al ./TEST/ : "drwxrwsrwx+ 2 test test 19 avril 26 17:47 ."

      Le propriétaire du dossier est bien "test.

      Je créé un fichier à partir du client :
      echo test > ./TEST/azerty
      ls -al ./TEST/azerty : "-rw-r--r--+ 1 nobody test 5 avril 26 17:47 azerty"

      Le fichier créé a pour owner "nobody"

      Si je fais sur le client "chown test azerty", j'obtiens (je le fais avec le compte root) :

      chown: changing ownership of 'azerty': Operation not permitted

      Si je fais le chown à partir du serveur, ça fonctionne.

      Donc un problème sur la modification des droits coté client.

      J'ai aussi fait un autre test coté client :

      echo test > ./querty
      chown test ./querty
      chgrp test ./querty
      ls -al
      -rw-r--r-- 1 test test 0 avril 26 17:59 querty
      cp -p ./querty ./TEST/
      cp: failed to preserve ownership for 'TEST/a': Operation not permitted

      Concernant les droits sur le dossier OMV, on a bien le propriétaire "test" sur ce dossier, et j'ai reglé les ACL pour permettre la lecture écriture de "test" dans ce dossier (777).

  • # idmapd

    Posté par  (site web personnel) . Évalué à 3.

    idmapd est actif sur tes VM client ?

    quels sont les options de montages de tes partages NFS ?

    • [^] # Re: idmapd

      Posté par  . Évalué à 1. Dernière modification le 26 avril 2016 à 18:10.

      Par défaut idmapd est désactivé :

      cat /sys/module/nfs/parameters/nfs4_disable_idmapping : Y

      Si je l'active (echo N > /sys/module/nfs/parameters/nfs4_disable_idmapping), j'ai les mêmes problèmes.

      J'ai fais un test avec des UID user identiques (voir message précédent), j'ai quand même un soucis de droits.

      Pour les options de montage :

      Serveur : rw,subtree_check,secure
      Client : rw,relatime,vers=4.0,rsize=524288,wsize=524288,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=192.168.0.2,local_lock=none,addr=192.168.0.7

      J'ai déjà essayé les diverses options du NFSv4, sans améliorations. Donc je suis repassé aux options par défaut.

      • [^] # Re: idmapd

        Posté par  (site web personnel) . Évalué à 4.

        Pour idmapd, il faut aussi que le domain corresponde au domain name, côté client et côté serveur, est-ce le cas ?

        Des pistes: http://users.suse.com/~sjayaraman/nfs4_howto.txt

        Python 3 - Apprendre à programmer dans l'écosystème Python → https://www.dunod.com/EAN/9782100809141

        • [^] # Re: idmapd

          Posté par  . Évalué à 1.

          Problème résolu, effectivement c'était à cause du paramètre "Domain" dans /etc/idmapd.conf.

          J'ai également activé le paramètre Verbosity et on voit bien les échanges d'ID user / groupes apparaître dans /var/log/syslog.

          Merci pour l'aide

  • # maitrise des solutions linux

    Posté par  . Évalué à -2. Dernière modification le 27 avril 2016 à 10:23.

    Bonjour,
    Je te conseille vivement de suivre la formation sur http://www.alphorm.com/tutoriel/formation-en-ligne-linux-lpic-2 .Tu y trouveras tout les informations nécessaires pour bien maitriser des solutions Linux.

    • [^] # Re: maitrise des solutions linux

      Posté par  (site web personnel) . Évalué à 3.

      Et en plus ils font des promos sur leur tarif de formation en ce moment !!! Tu en as de la chance, peut-être même qu'après tu auras une jolie certification.

      Python 3 - Apprendre à programmer dans l'écosystème Python → https://www.dunod.com/EAN/9782100809141

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.