Le serveur A
exporte le répertoire /srv
via NFS avec option nohide
. Un sous - répertoire /srv
, /srv/foo
est un point de montage pour un autre emplacement sur le serveur NFS en utilisant l' --bind
option, comme
server# mount --bind /bar/foo/ /srv/foo/
Le client l' B
importe A:/srv
et le monte à l' /mnt/srv
aide de NFS. Le contenu de /mnt/srv
est le contenu de A:/srv
.
Le problème est qu'il /mnt/srv/foo
est vide, alors que je m'attends à en voir le contenu A:/bar/foo/
.
Comment exporter et importer correctement des partages NFS qui ont également des sous-répertoires comme points de montage?
/srv/foo --> /bar/foo
?/bar/foo
machine clienteB
, pas au serveurA
.Réponses:
crossmnt
est votre ami.la source
J'étais tombé sur ce problème en suivant le guide Diskless Arch , et cela m'a vraiment ralenti. Je vais partager mes conclusions ici, car je suis curieux de savoir si cela fonctionnera pour quelqu'un d'autre.
Selon le guide sans disque, j'ai le système de fichiers racine du client sans disque (les données réelles que j'ai besoin d'exporter) dans une image de bouclage, qui a été montée sur
/srv/des1
:J'ai ensuite créé un point de
/nfs/des1
montage, puis exécuté le montage et confirmé que je peux tout voir:En me référant au guide Arch NFS , j'ai ensuite mis les éléments suivants
/etc/exports
sur le serveur:J'ai ensuite exécuté un
exportfs -rav
sur le serveur pour appliquer ces modifications.Cependant, j'ai ensuite monté le partage sur le client de test avec:
mount server:/des1 /mnt/tmp
seulement pour trouver que c'est un répertoire vide, quand je m'attendais à ce que le système de fichiers root sans disque soit là.À ce stade, j'ai tout essayé jusqu'à ce que quelque chose m'amène à cette option dans la
exports
page de manuel:Donc, après avoir essayé tout le reste, j'ai échangé ceci pour que mon
/etc/exports
apparence ressemble à ceci:Après avoir lu l'entrée de la page de manuel, vous penseriez que cela aurait le même effet que le code précédent, mais quand j'ai couru à
exportfs -rav
nouveau pour enregistrer les modifications, j'ai ensuite essayé de remonter à partir du client et cela a fonctionné!la source
Il semble que chaque sous-point de montage doit être exporté par le serveur NFS pour être visible pour les clients. Dans la situation ci-dessus, le
/etc/exports
fichier devrait ressembler à ceci:Ensuite, l'importation
/srv
sur le client avec option-t nfs
rendra les deux/srv
et/srv/foo
correctement disponibles.éditer par OP
cette ligne
a travaillé dans mon cas au lieu de
la source
Je voulais vraiment le faire aussi, mais il semble qu'il y ait des problèmes avec cette idée car les clients NFS s'attendent à ce que le nombre d'inodes de fichiers soit unique dans la vue du client d'un montage unique.
Les problèmes sont détaillés dans cet article de blog (pas par moi): http://utcc.utoronto.ca/~cks/space/blog/unix/MultiFilesystemNFSIssue
J'ai décidé de monter les systèmes de fichiers séparément et de les lier ensemble, ce qui devrait fonctionner pour tous les clients NFS.
la source
REMARQUE: un seul utilisateur activé
Ce qu'il ajoute, c'est un ensemble de modifications côté serveur et côté client. Côté serveur
/etc/exports
et/etc/fstab
côté client.Du côté serveur
Asus eeepc
Côté client
Kernel Linux 4.15.0-38-x86_64 générique
la source