nfs

Cómo configurar NFS en GnuLinux

NFS es una de las formas más fáciles y transparentes de manejar el almacenamiento compartido dentro de una organización o en una red local casera. El Sistema de archivos de red (NFS) es un protocolo que permite configurar ubicaciones de almacenamiento en tu red. Cuando tienes NFS configurado, los usuarios pueden tratar un disco duro remoto como si estuviera conectado a su computador, tal como lo harían con una memoria USB. Originalmente fue desarrollado en 1984 por Sun Microsystems, con el objetivo de que sea independiente de la máquina, el sistema operativo y el protocolo de transporte (modelo OSI), esto fue posible gracias a que está implementado sobre los protocolos XDR (presentación) y ONC RPC (sesión).​ El protocolo, está incluido por defecto en los Sistemas Operativos UNIX y la mayoría de distribuciones Linux.

Instalación y Configuración Server

Para esto, me enfocare en 2 distros, Debian y Rocky Linux, pero podría ser en cualquiera, estas harán de servidor, y necesitaremos un cliente. No olviden tener actualizados los sistemas, antes de comenzar.

DebianRocky Linux
Instalacionsudo apt install nfs-kernel-server rpcbindsudo dnf install nfs-utils
Habilita e inicia el servicio NFSsudo systemctl enable –now nfs-serversudo systemctl enable –now nfs-server
Habilita e inicia el servicio rpcbindsudo systemctl enable –now rpcbind

A continuación, nos tocara crear una carpeta que compartir. En el host NFS, cree una ubicación en el sistema de archivos para compartir con los guest. Esto podría ser una unidad separada, una partición separada o simplemente un lugar. Para asegurarse de que el almacenamiento pueda escalar según sea necesario, se recomiendo usar LVM (infórmate sobre volúmenes lógicos, visita LVM y particionamiento estándar), pero ya queda a criterio y consideración de cada quien, con su disponibilidad de hardware.

Suponiendo que su red es 192.168.122.0/24 (siendo la primera dirección posible 192.168.122.1 y la final 192.168.122.254), podría hacer esto:

DebianRocky Linux
Crea una ubicacionsudo mkdir –p /mnt/carpeta_compartidasudo mkdir -p /nfs/exports/carpeta_compartida
Exportar la ubicación compartidaecho «/mnt/carpeta_compartida 192.168.122.0/24(rw)» > /etc/exportsecho «/nfs/exports/carpeta_compartida 192.168.122.0/24(rw)» > /etc/exports

Para que el servicio NFS sepa transmitir la existencia de su ubicación compartida (carpeta_compartida), debe agregar la ubicación al archivo /etc/exports, así como la subred a la que desea tener acceso y los permisos de acceso global.

  1. Establecer propiedad

Dependiendo de dónde hayas creado esta ubicación compartida, es posible que sus permisos no sean adecuados para todos los usuarios de su red. Por ejemplo, /nfs/exports/carpeta_compartida en la partición raíz del disco duro de mi servidor, por lo que todos los directorios son propiedad del usuario raíz, y el grupo raíz tiene permisos de lectura y ejecución. A menos que sus usuarios sean miembros del grupo raíz, esta exportación es de poca utilidad para ellos.

La forma en que establezca los permisos de directorio depende de usted y depende de cómo defina los usuarios y grupos en sus sistemas. Es común administrar directorios por permisos de grupo, agregando usuarios que requieren acceso a directorios específicos al grupo correspondiente. Por ejemplo, si un usuario es miembro del grupo de personal, puede configurar su exportación al personal con permisos 775:

Esto otorga a carpeta_compartida, permisos de lectura, escritura y ejecución para todos los miembros del grupo personal. Mientras que para el otro caso (Debian) como cualquier usuario desde los clientes utilizarán el recurso compartido de NFS, el permiso se establece en el usuario nobody y el grupo nogroup.

Haga que la carpeta compartida, tenga permisos suficientes para leer y escribir los archivos que contiene. Sin embargo, puede configurar según tus requisitos, por ejemplo: sudo chmod 755 /mnt/carpeta_compartida.

Te recomiendo agregar al final del archivo /etc/exports, la siguiente linea, según sea tu caso de distribucion:

Donde:

  • rw: operaciones de lectura y escritura
  • sync: escriba cualquier cambio en el disco antes de aplicarlo
  • no_subtree_check: deshabilita la verificación de subárboles

El servidor NFS mantiene una tabla de sistemas de archivos disponibles para los clientes. Para actualizar la tabla, ejecute el comando exportfs junto con el comando -r para exportar todos los directorios de forma recursiva:

  1. Configura el Firewall

Para que los clientes lleguen al servidor NFS, agrega el servicio NFS al firewall (se supone que lo tienes activo en tu distro). Para el caso de Rocky Linux, con el comando firewall-cmd:

Mientras que si estas en Debian:

Con estos pocos ya tenemos el servidor NFS activo y configurado para el tráfico.

Configuración del lado Cliente

Ahora que haz establecido una ubicación de almacenamiento compartido en tu red, debes configurar sus máquinas cliente para usarla. Dependiendo de la distro, que sea tu maquina clientes, necesitaras el paquete nfs-common Comienza, por crear un punto de montaje para el recurso compartido NFS:

Y luego monta el volumen NFS:

Puede hacer que este sea un proceso permanente y automático agregando el volumen NFS al archivo /etc/fstab del cliente:

Donde:

  • IP:carpeta_compartida = carpeta compartida proveniente del servidor nfs
  • /mnt/compartiendo = directorio de montaje en la máquina cliente
  • nfs4 = significa nfs versión 4
  • defaults,user,exec,rw = Permitir que cualquier usuario monte el sistema de archivos y también permitirles ejecutar archivos binarios, Ademas de operaciones de lectura y escritura.

Puedes verificar que un volumen NFS está montado con el comando de montaje:

Oh un df -h. Si tienes una red local mayor, en cuanto a numero de equipos, no es eficiente configurar sus máquinas cliente para que reconozcan los volúmenes NFS a mano. En su lugar, use Ansible, Terraform, Chef, entre otras opciones del mercado (aunque depende del caso especifico, elegir una u otra), para automatizar la configuración de sus máquinas cliente, tanto para configurar recursos compartidos de NFS como para actualizar configuraciones cuando sea necesario.

Conclusión

Pues listo lector, ya con esto, podrás desplegar de forma idónea NFS con herramientas propias del sistema, <sarcasmo> ya si quieres después te haces/compras un NAS y te libras de ver tanto comando </sarcasmo>.

Hasta otro post, buenas vibras,

Happy Hacking!

Deja un comentario