Rocky Linux 8 es compatible con NFS versión 3 (NFSv3) y 4 (NFSv4). La versión predeterminada de NFS es 4.2, que incluye compatibilidad con Listas de control de acceso (ACL), copia del lado del servidor, archivos dispersos, reserva de espacio, NFS etiquetado, mejoras de diseño y mucho más.
En esta guía, aprenderemos cómo instalar y configurar el servidor NFS y el cliente NFS en Rocky Linux 8.
Requisitos
- Servidor Rocky Linux actualizado para ser utilizado como servidor y otro para el cliente
- Conectividad desde los servidores
- Acceso a Sudo desde los servidores
Tabla de contenido
- Asegúrese de que el servidor esté actualizado
- Instalar los paquetes NFS
- Inicio y activación del servidor NFS
- Habilitación del servicio NFS en Firewall
- Configuración de exportaciones en el servidor NFS
- Configuración de sistemas cliente NFS
1. Asegurarse de que el servidor esté actualizado
Antes de continuar, asegurémonos de que el servidor esté actualizado. Use este comando para lograr esto:
sudo dnf -y update
2. Instale los paquetes NFS
El paquete nfs-utils
proporciona un demonio para el servidor kernel NFS y herramientas relacionadas, como contiene el showmount
programa. Use este comando para instalar el paquete:
sudo dnf install -y nfs-utils
3. Iniciar y habilitar el servidor NFS
Una vez que los paquetes NFS se hayan instalado correctamente, podemos iniciar y habilitar el servidor NFS. Utilice este comando systemctl para iniciar el servidor:
sudo systemctl start nfs-server
Confirme el estado del servicio con este comando:
$ sudo systemctl status nfs-server
● nfs-server.service - NFS server and services
Loaded: loaded (/usr/lib/systemd/system/nfs-server.service; disabled; vendor preset: disabled)
Active: active (exited) since Thu 2022-01-13 17:54:19 UTC; 36s ago
Process: 59320 ExecStart=/bin/sh -c if systemctl -q is-active gssproxy; then systemctl reload gssproxy ; fi (code=exited, status=0/SUCCESS)
Process: 59308 ExecStart=/usr/sbin/rpc.nfsd (code=exited, status=0/SUCCESS)
Process: 59305 ExecStartPre=/usr/sbin/exportfs -r (code=exited, status=0/SUCCESS)
Main PID: 59320 (code=exited, status=0/SUCCESS)
Jan 13 17:54:18 dev-rockysrv.inv.re systemd[1]: Starting NFS server and services...
Jan 13 17:54:19 dev-rockysrv.inv.re systemd[1]: Started NFS server and services.
El resultado anterior muestra que el servicio se inició correctamente. Para permitir que el servicio se inicie en el arranque del sistema, use este comando:
sudo systemctl enable nfs-server
Tenga en cuenta que los demás servicios necesarios para ejecutar un servidor NFS o montar recursos compartidos NFS, como nfsd
, nfs-idmapd
, rpcbind
, rpc.mountd
, lockd
, rpc.statd
, rpc.rquotad
y rpc.idmapd
se iniciará automáticamente.
4. Habilitación del servicio NFS en Firewall
Si tiene firewalld instalado y habilitado, debe habilitar los servicios NFS. Debe permitir el tráfico a los servicios NFS necesarios (mountd , nfs , rpc-bind ) a través del cortafuegos, luego vuelva a cargar las reglas del cortafuegos para aplicar los cambios, de la siguiente manera.
sudo firewall-cmd --permanent --add-service=nfs sudo firewall-cmd --permanent --add-service=rpc-bind sudo firewall-cmd --permanent --add-service=mountd sudo firewall-cmd --reload
5. Configuración de exportaciones en el servidor NFS
Los archivos de configuración para el servidor NFS se encuentran en estas rutas:
/etc/nfs.conf
– este es el archivo de configuración principal para los demonios y herramientas NFS/etc/nfsmount.conf
– este es el archivo de configuración de montaje NFS
Vamos a crear sistemas de archivos para exportar o compartir en el servidor NFS. Crearemos dos sistemas de archivos para mirar, /mnt/nfs_shares/files
para archivos compartidos y /mnt/nfs_shares/backup
para copias de seguridad.
Vamos a crear los directorios en el servidor
sudo mkdir -p /mnt/nfs_shares/files
sudo mkdir -p /mnt/nfs_shares/backup
Confirmar
$ sudo ls /mnt/nfs_shares
backup files
Luego agregue los sistemas de archivos anteriores en el archivo de exportación /etc/exports
en el servidor NFS para determinar los sistemas de archivos locales que se exportan a los clientes NFS.
Abra el archivo de exportación con su editor de texto
sudo vim /etc/exports
Luego agrega este contenido:
/mnt/nfs_shares/files 10.70.5.170(rw,sync)
/mnt/nfs_shares/backup 10.70.5.0/24(rw,sync,no_all_squash,root_squash)
Estas son las opciones de exportación que se pueden utilizar:
- rw – permite el acceso de lectura y escritura en el sistema de archivos.
- sincronizar – le dice al servidor NFS que escriba operaciones (escribir información en el disco) cuando se le solicite (se aplica de forma predeterminada).
- all_squash – asigna todos los UID y GID de las solicitudes del cliente al usuario anónimo.
- no_all_squash:se utiliza para asignar todos los UID y GID de las solicitudes de los clientes a UID y GID idénticos en el servidor NFS.
- raíz_calabaza – asigna solicitudes del usuario raíz o UID/GID 0 del cliente al UID/GID anónimo.
Una vez que los sistemas de archivos están definidos en el archivo de exportaciones, debemos ejecutar exportfs
comando para que sean exportados. El exportfs se puede ejecutar con -a
bandera que significa exportar o anular la exportación de todos los directorios, -r
lo que significa volver a exportar todos los directorios, sincronizando /var/lib/nfs/etab con /etc/exportaciones y archivos en /etc/exports.d y -v habilita la salida detallada.
sudo exportfs -arv
Esta es la salida en mi servidor
$ sudo exportfs -arv
exporting 10.70.5.170:/mnt/nfs_shares/files
exporting 10.70.5.0/24:/mnt/nfs_shares/backup
Para mostrar la lista de exportación actual, ejecute el siguiente comando. Tenga en cuenta que la tabla exportfs también aplica algunas opciones predeterminadas que no están definidas explícitamente:
$ sudo exportfs -s
/mnt/nfs_shares/files 10.70.5.170(sync,wdelay,hide,no_subtree_check,sec=sys,rw,secure,root_squash,no_all_squash)
/mnt/nfs_shares/backup 10.70.5.0/24(sync,wdelay,hide,no_subtree_check,sec=sys,rw,secure,root_squash,no_all_squash)
6. Configuración de sistemas cliente NFS
Ahora que hemos configurado las exportaciones en el servidor, podemos acceder a ellas desde el sistema cliente. Inicie sesión en el sistema cliente e instale los paquetes necesarios para permitir el acceso a los recursos compartidos de NFS.
En sistemas basados en RHEL:
sudo dnf install -y nfs-utils nfs4-acl-tools
En distribuciones basadas en Debian/Ubuntu:
sudo apt install nfs-common nfs4-acl-tools
Luego podemos ejecutar el comando showmount para mostrar la información de montaje para el servidor NFS. El comando genera sistemas de archivos exportados en el servidor
showmount -e 10.70.5.221
Salida
$ showmount -e 10.70.5.221
Export list for 10.70.5.221:
/mnt/nfs_shares/backup 10.70.5.0/24
/mnt/nfs_shares/files 10.70.5.170
Cree un directorio de sistema de archivos local para montar los sistemas de archivos NFS remotos y móntelo como un sistema de archivos nfs
mkdir -p ~/backups
mkdir -p ~/nfs_files
sudo mount -t nfs 10.70.5.221:/mnt/nfs_shares/backup ~/backups
sudo mount -t nfs 10.70.5.221:/mnt/nfs_shares/files ~/nfs_files
Entonces podemos confirmar que el sistema de archivos remoto se ha montado ejecutando el mount comando y filtro nfs monturas.
sudo mount | grep nfs
Salida en mi máquina
$ sudo mount | grep nfs
rpc_pipefs on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw,relatime)
10.70.5.221:/mnt/nfs_shares/backup on /home/rocky/backups type nfs4 (rw,relatime,vers=4.2,rsize=524288,wsize=524288,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=10.70.5.170,local_lock=none,addr=10.70.5.221)
10.70.5.221:/mnt/nfs_shares/files on /home/rocky/nfs_files type nfs4 (rw,relatime,vers=4.2,rsize=524288,wsize=524288,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=10.70.5.170,local_lock=none,addr=10.70.5.221)
Para permitir que el montaje sea persistente incluso después de reiniciar el sistema, agregue las entradas a /etc/fstab
expediente. Use estos comandos (como root) para lograr eso:
echo "10.70.5.221:/mnt/nfs_shares/backup /home/rocky/backups nfs defaults 0 0" >> /etc/fstab
echo "10.70.5.221:/mnt/nfs_shares/files /home/rocky/nfs_files nfs defaults 0 0" >> /etc/fstab
Por último, prueba si NFS la configuración funciona bien al crear un archivo en el servidor y verificar si el archivo se puede ver en el cliente.
En el servidor:
sudo touch /mnt/nfs_shares/files/file_on_server.txt
Luego, en la máquina cliente, confirme
$ ls ~/nfs_files/
file_on_server.txt
También puedes hacer lo contrario. En el cliente:
touch ~/nfs_files/file_on_client.txt
Luego en el servidor confirme:
$ ls /mnt/nfs_shares/files/
file_on_client.txt file_on_server.txt
Para desmontar el sistema de archivos remoto en el lado del cliente.
sudo umount /mnt/nfs_shares/files
sudo umount /mnt/nfs_shares/backup
Tenga en cuenta que no puede unmount
el sistema de archivos remoto si está operando dentro de él.
Conclusión
En esta guía logramos instalar y configurar un servidor y cliente NFS en Rocky Linux 8.