Búsqueda de sitios web

Cómo instalar el servidor y el cliente NFS en distribuciones RHEL


En Linux, existen un par de protocolos para compartir archivos que se utilizan para compartir almacenamiento y archivos a través de una red. Los más utilizados son Samba y NFS.

Samba es un popular conjunto de aplicaciones de código abierto que funciona en una arquitectura cliente-servidor. Ofrece compatibilidad multiplataforma que permite compartir archivos sin problemas en los sistemas operativos Linux, Windows y macOS. Se puede acceder a un recurso compartido de archivos alojado en un sistema Linux desde diversas plataformas, fomentando así la colaboración.

Otro protocolo para compartir archivos muy utilizado es NFS, abreviatura de Network File Share. Al igual que Samba, funciona en un modelo cliente-servidor y permite al usuario compartir directorios y archivos a través de una red con múltiples usuarios clientes remotos.

En esta guía, veremos cómo instalar el servidor y el cliente NFS en distribuciones basadas en RHEL como Fedora, CentOS Stream, Rocky Linux y AlmaLinux.

Servicios NFS

Actualmente, existen 3 versiones de NFS, la última es NFSv4, que incluye funciones como la capacidad de trabajar a través de Internet y a través de un firewall. Además, existe NFSv3 y NFSv2 que es el protocolo más antiguo.

El servicio NFS está compuesto por el Servidor NFS y el cliente. El servidor NFS consta de los siguientes archivos clave:

  • nfs-server: esto permite que los sistemas cliente accedan a los archivos compartidos por NFS.
  • rpcbind: convierte programas RPC en direcciones universales.
  • nfs-idmap: lleva a cabo la traducción de los ID de usuarios y grupos a nombres y de los nombres de usuarios y grupos a ID.
  • portmap: este es un servidor que convierte números de programas RPC en números de puertos IP.
  • nfslock: en caso de una falla del servidor NFS, nfslock inicia los procesos RPC requeridos.

Servicios de configuración NFS

Estos son algunos de los archivos de configuración clave para NFS:

  • /etc/exports: el archivo de configuración principal, que estipula los sistemas de archivos o directorios que se exportarán y a los que accederán los usuarios remotos.
  • /etc/fstab: este es un archivo que contiene entradas de particiones montadas. En NFS, el archivo contiene entradas de directorios compartidos o sistemas de archivos NFS que están montados permanentemente y pueden persistir después del reinicio.
  • /etc/sysconfig/nfs: define los puertos necesarios durante la ejecución de los servicios RPC.

Configuración del servidor y cliente NFS

Para configurar recursos compartidos NFS, necesitaremos al menos dos máquinas Linux/Unix. Aquí, en este tutorial, usaré dos servidores.

  • Servidor NFSRHEL 9 con IP 10.128.15.213
  • Cliente NFSRHEL 9 con IP 10.128.15.214

Instalar NFS en el servidor y el cliente

Para comenzar, debe iniciar sesión en ambos nodos (servidor NFS y cliente) e instalar los servicios NFS. Primero, actualice la información del paquete como se muestra. El siguiente comando dnf también actualizará todos los paquetes interesantes a sus últimas versiones.

sudo dnf update 

Una vez que se complete la actualización, continúe e instale los servicios NFS necesarios.

sudo dnf install rpcbind nfs-utils -y

El siguiente paso es habilitar los servicios NFS como se muestra.

sudo systemctl enable nfs-server
sudo systemctl enable rpcbind

Asegúrese de iniciar también los servicios NFS.

sudo systemctl enable nfs-server
sudo systemctl enable rpcbind

Es fundamental verificar que todos los servicios NFS se estén ejecutando.

sudo systemctl status nfs-server
sudo systemctl status rpcbind

Asegúrese de configurar también el firewall para permitir servicios NFS entrantes de la siguiente manera.

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

Crear un directorio compartido NFS

Con todos los servicios NFS instalados y ejecutándose como se esperaba, es hora de crear el directorio compartido NFS, que es el directorio que contendrá los archivos a los que accederán los clientes NFS en la red.

En este caso, crearemos un directorio compartido NFS llamado my_nfsshare en nuestro directorio de inicio.

mkdir -p /home/tecmint/my_nfsshare

A continuación, asigne permisos de directorio. Para fines de demostración, asignaremos permisos globales que otorgarán a los clientes NFS permisos de lectura, escritura y ejecución.

sudo chmod 777 -R /home/tecmint/my_nfsshare

Exportar un directorio compartido NFS

El siguiente paso es exportar el directorio compartido NFS. Para lograr esto, necesitamos hacer una entrada en el archivo /etc/exports. Por lo tanto, acceda al archivo utilizando su editor de texto preferido. En este caso usaremos el editor Vim.

sudo vim /etc/exports

Agregue la siguiente entrada. Asegúrese de reemplazar la IP del servidor con la dirección IP de su servidor NFS.

/home/tecmint/my_nfsshare server-ip/24(rw,no_root_squash)

Finalmente exporte el directorio compartido o sistema de archivos NFS.

sudo exportfs -rv

Ejecute el siguiente comando para ver los recursos compartidos NFS.

showmount -e localhost

Configurar el cliente NFS

La fase restante de este ejercicio es configurar el cliente NFS para acceder al directorio compartido. Primero, confirme que puede ver la lista de exportación o los recursos compartidos NFS en el servidor NFS.

showmount -e 10.128.15.213

El siguiente paso es montar el recurso compartido NFS desde el servidor al cliente. Para hacer esto, primero necesitamos crear un directorio de montaje. En este caso, crearemos un directorio llamado nfs_backup.

mkdir nfs_backup

A partir de entonces, montaremos el recurso compartido NFS en el directorio de montaje que acabamos de crear en el directorio raíz.

mount -t nfs 10.128.15.213:/home/tecmint/my_nfsshare  ~/nfs_backup 

Para conservar el recurso compartido NFS, edite el archivo /etc/fstab.

vim /etc/fstab

Luego agregue la siguiente entrada.

10.128.15.213:/home/tecmint/my_nfsshare    /root/nfs_backup  nfs     defaults 0 0

Guarde y salga del archivo de configuración.

Prueba de configuración NFS

El último paso es verificar si la configuración de NFS funciona como se esperaba. Crearemos algunos archivos en el servidor y verificaremos su disponibilidad en el lado del cliente NFS.

Del lado del servidor, crearemos los archivos en el directorio compartido de NFS.

sudo touch my_nfsshare/file{1..4}.txt

Para verificar que los archivos han sido creados ejecutaremos el comando ls:

ls -l my_nfsshare/

De regreso al lado del cliente, verifique que los archivos estén disponibles en el directorio de montaje sin ninguna actualización o reinicio de ningún servicio, como se ve en el siguiente resultado.

ls -l nfs_backup/

Quitar el montaje NFS

Si ya no necesita el directorio montado en su sistema, puede desmontarlos desde el lado del cliente usando el siguiente comando umount:

umount ~/nfs_backup

Comandos compartidos de NFS

Algunos comandos más importantes para NFS.

  • showmount -e: muestra los compartimientos disponibles en su máquina local
  • showmount -e ip-address: enumera los compartimientos disponibles en el servidor remoto
  • showmount -d: enumera todos los subdirectorios
  • exportfs -v: muestra una lista de archivos y opciones compartidos en un servidor.
  • exportfs -a: exporta todos los recursos compartidos enumerados en /etc/exports, o el nombre de pila.
  • exportfs -u: desexporta todas las acciones enumeradas en /etc/exports, o nombre de pila
  • exportfs -r: actualiza la lista del servidor después de modificar /etc/exports
Conclusión

Esto concluye nuestra guía sobre cómo instalar el servidor y el cliente NFS en distribuciones basadas en RedHat. Instalamos los servicios NFS en el servidor, creamos un directorio compartido NFS y finalmente montamos el directorio compartido en el cliente. Por último, verificamos la configuración de NFS accediendo al archivo creado en el servidor desde el lado del cliente.