Cómo montar la carpeta nfsv4 directamente en lugar de la raíz

Cómo montar la carpeta nfsv4 directamente en lugar de la raíz

Ejecutando CentOS 8

server side: /etc/exports:
/home/share *(ro)

/home y /home/share son propiedad de root.root y tienen 755 permisos en directorios y 644 permisos en archivos.

 client side:
 mount -t nfs4 server:/ /sharefolder

¿Cómo monto directamente /home/share en /sharefolder en lugar de montar la raíz del fs? Si intento "mount -t nfs4 server:/home/share /sharefolder", aparece el error "Operación no permitida"

Respuesta1

mount -t nfs4 server:/home/share /sharefolderParece un comando correcto del lado del cliente y su configuración funciona para mí, ya que la acabo de probar.

Por supuesto, debes ingresar el comando como root, o usarlo sudocon él. El mensaje de error "Operación no permitida" sugiere que quizás accidentalmente ejecutó el comando como usuario no root o escribió mal el nombre del recurso compartido.

Tenga en cuenta que incluso si exporta y monta solo archivos server:/home/share, el servidor NFSv4 deberá generar automáticamenteexportaciones virtualesPara /y /home. Sin embargo, estos no serán los directorios reales /ni los del servidor NFS /home, sino directorios virtuales de solo lectura que solo contienen los subdirectorios mínimos necesarios para llegar a los directorios realmente exportados. Una vez que se haya montado el recurso compartido, podrá ver esto en /proc/fs/nfsd/exportsel servidor NFS:

cat /proc/fs/nfsd/exports
# Version 1.1
# Path Client(Flags) # IPs
/home   *(ro,insecure,no_root_squash,sync,no_wdelay,no_subtree_check,v4root,uuid=e4c0fcd4:00b94db3:b63bd9a8:0e705e29,sec=390003:390004:390005:1)
/home/share     *(ro,root_squash,sync,wdelay,no_subtree_check,uuid=e4c0fcd4:00b94db3:b63bd9a8:0e705e29,sec=1)
/       *(ro,insecure,no_root_squash,sync,no_wdelay,no_subtree_check,v4root,fsid=0,uuid=e4c0fcd4:00b94db3:b63bd9a8:0e705e29,sec=390003:390004:390005:1)

Respuesta2

Después de algunas pruebas, logré reproducir su problema y resulta ser un problema de firewall. Asegúrese de que el firewall esté desactivado y nfsluego verifique que su recurso compartido funcione.

Suponiendo que utilices firewalld:

sudo systemctl stop firewalld

Una vez que determine que nfsfunciona como se esperaba, querrá cambiar la configuración de su firewall. nfsdepende de otros procesos demonios, por lo que para que nfsfuncione correctamente, debe dejar pasar no solo nfs, sino también mountdyrpc-bind

sudo firewall-cmd --permanent --add-service=rpc-bind
sudo firewall-cmd --permanent --add-service=mountd
sudo firewall-cmd --permanent --add-service=nfs
sudo firewall-cmd --reload

También puede especificar una zona si desea que estos servicios se permitan solo para una zona específica agregando, por ejemplo--zone=nfszone

No he probado exhaustivamente esta solución y es posible que necesites abrir un puerto adicional para que todas las funcionalidades funcionen (es decir, bloqueo de archivos). Verhttps://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/6/html/storage_administration_guide/s2-nfs-nfs-firewall-config

información relacionada