J'ai un système de fichiers FUSE auto-écrit que je monte sur mon serveur NFS sur le point de montage /export/example/mount
. Ensuite, j'exporte un répertoire parent du FUSE via NFS. Le /etc/exports
contient les options nohide,crossmnt,subtree_check,ro,no_root_squash
et permet un accès gratuit à tout le monde:
/export/example *(nohide,crossmnt,subtree_check,ro,no_root_squash)
Je peux monter cette exportation sur mon client NFS et y accéder. Dès que j'accède au FUSE dans le NFS, mon client se bloque jusqu'à ce que je umount
le NFS (et j'ai besoin d'utiliser l'option -f
pour accomplir cela).
J'ai essayé de monter le FUSE en tant qu'utilisateur actif et en tant que root. Les résultats sont les mêmes.
Le serveur exécute un Ubuntu 12.04, le client un SuSE 9.3. Le FUSE est écrit en Python et fonctionne localement sans aucun problème. Seule l'exportation via NFS échoue. Je n'ai aucune restriction de sécurité car tout cela se fait sur un réseau privé avec uniquement des utilisateurs de confiance.
Quelqu'un at-il une idée de ce qui pourrait causer mes problèmes ou (encore mieux) comment résoudre le problème?
J'ai pensé à remplacer le NFS par SSHFS pour contourner le problème, mais cela ne fonctionne pas car le système client est trop ancien pour prendre en charge SSHFS (car il est basé sur FUSE et FUSE n'est pas pris en charge).
allow_other
option de montage sshfs?crossmnt
? Et le côté fusible (le s3fs) permet-il d'être utilisé par d'autres utilisateurs (il existe également une option de montage). N'oubliez pas que le fusible est l'espace utilisateur (destiné à être utilisé par un seul utilisateur) tandis que nfs est multi-utilisateur.Réponses:
La plupart des distributions Linux sont livrées avec un noyau qui ne permet pas d'exporter un système de fichiers monté FUSE à l'aide de NFSv2 ou NFSv3. Vos choix sont: 1. Implémentez votre système de fichiers dans l'espace noyau. 2. Exportez-le en NFSv4, ce qui nécessiterait un fsid =
J'utilise moi-même 2. Dans l'illustration ci-dessous, les commandes commençant par
#
sont exécutées sur le serveur, les commandes commençant par$
sont exécutées sur le client.Voici ma configuration de serveur, comme vous pouvez le voir, j'exporte un point de montage FUSE:
Voici ce que j'ai fait sur mon client:
Pour vérifier que votre échec est causé par l'exportation de fusible dans NFS v2 / v3, exportez ce point de montage spécifiquement sans NFS v4 (fsid) et voyez si vous obtenez une erreur:
Si sur le serveur vous exportez le point de montage démonté et que vous le montez avec un fusible ultérieurement, vous devriez voir dans votre journal si vous essayez d'utiliser le client nfs:
la source
par défaut, l'exportation de sous-montages sur nfs est désactivée. Il est recommandé d'exporter également le sous-montage et de le faire également monter par le client.
la source