El servidor A
exporta el directorio a /srv
través de NFS con la opción nohide
. Un subdirectorio dentro de /srv
, /srv/foo
es un punto de montaje para otra ubicación en el servidor NFS usando la --bind
opción, como
server# mount --bind /bar/foo/ /srv/foo/
El cliente lo B
importa A:/srv
y lo monta /mnt/srv
usando NFS. Los contenidos de /mnt/srv
son los contenidos de A:/srv
.
El problema es que /mnt/srv/foo
está vacío, mientras espero ver el contenido de A:/bar/foo/
allí.
¿Cómo exportar e importar correctamente recursos compartidos NFS que tienen subdirectorios como puntos de montaje también?
/srv/foo --> /bar/foo
?/bar/foo
máquina del clienteB
, no al servidorA
.Respuestas:
crossmnt
es tu amigo.fuente
Me había tropezado con este problema mientras seguía la guía Diskless Arch , y realmente me detuvo. Voy a compartir mis hallazgos aquí, ya que tengo curiosidad por saber si esto funcionará para alguien más.
Según la guía Diskless, tengo el sistema de archivos raíz del cliente sin disco (los datos reales que necesito exportar) en una imagen de bucle invertido, que se ha montado en
/srv/des1
:Luego creé un punto de montaje,
/nfs/des1
luego ejecuté el montaje y confirmo que puedo ver todo:Refiriéndome a la guía Arch NFS , pongo lo siguiente en
/etc/exports
el servidor:Luego ejecuté un
exportfs -rav
en el servidor para aplicar estos cambios.Sin embargo, luego monté el recurso compartido en el cliente de prueba con:
mount server:/des1 /mnt/tmp
solo para encontrar que es un directorio vacío, cuando esperaba que el sistema de archivos raíz sin disco estuviera allí.En esta etapa, probé casi todo hasta que algo me llevó a esta opción en la
exports
página de manual:Entonces, después de haber intentado todo lo demás, cambié esto para que se
/etc/exports
viera así:Después de leer la entrada de la página de manual, pensaría que esto tendría el mismo efecto que el código anterior, pero cuando corrí
exportfs -rav
nuevamente para registrar los cambios, ¡intenté volver a montarlo desde el cliente y funcionó!fuente
Parece que todos los subpuntos de montaje deben ser exportados por el servidor NFS para que los clientes puedan verlos. En la situación anterior, el
/etc/exports
archivo debería tener el siguiente aspecto:A continuación, la importación
/srv
en el cliente con opción-t nfs
hará que tanto/srv
y/srv/foo
adecuadamente disponible.editar por OP
esta línea
ha trabajado en mi caso en lugar de
fuente
Realmente quería hacer esto también, pero parece que hay problemas con esta idea porque los clientes NFS esperan que los números de inodo de archivos sean únicos dentro de la vista del cliente de un solo montaje.
Los problemas se detallan en esta publicación de blog (no por mí): http://utcc.utoronto.ca/~cks/space/blog/unix/MultiFilesystemNFSIssue
Decidí montar los sistemas de archivos por separado y vincularlos juntos, lo que debería funcionar para todos los clientes NFS.
fuente
NOTA: solo un usuario habilitado
Lo que agrega es un conjunto de ediciones en el lado del servidor y el lado del cliente. Del lado del servidor
/etc/exports
y/etc/fstab
del lado del cliente.Lado del servidor
Asus eeepc
Lado del cliente
Kernel Linux 4.15.0-38-generic x86_64
fuente