Configurar un servidor y un cliente NFS en CentOS 8
NFS significa «Sistema de Archivos en Red» y es un protocolo de sistema de archivos distribuido que se utiliza para compartir archivos y carpetas entre sistemas operativos basados en Linux. Con NFS puedes montar un sistema de archivos remoto localmente a través de una red. Con NFS, puedes compartir archivos y directorios con varias máquinas y actualizar los archivos a través del recurso compartido. NFS es la mejor opción si buscas una solución de almacenamiento centralizado.
En este tutorial te mostraremos cómo configurar un servidor y un cliente NFS en CentOS 8.
Requisitos
- Dos servidores que ejecuten CentOS 8.
- Se configura una dirección IP estática 172.20.10.4 en el servidor NFS y 172.20.10.3 en el cliente NFS.
- Se ha configurado una contraseña de root en ambos servidores.
Cómo empezar
Por defecto, SELinux está activado en el servidor CentOS 8. Así que primero tendrás que desactivarlo.
Puedes hacerlo editando el archivo /etc/selinux/config:
nano /etc/selinux/config
Realiza los siguientes cambios:
SELINUX=disabled
Guarda y cierra el archivo. A continuación, reinicia el sistema para aplicar los cambios.
Instalar el servidor NFS
Por defecto, el paquete NFS está disponible en el repositorio por defecto de CentOS 8. Puedes instalarlo ejecutando el siguiente comando:
dnf install nfs-utils
Tras instalar el servidor NFS, inicia el servicio NFS y habilítalo para que se inicie tras reiniciar el sistema:
systemctl start nfs-server systemctl enable --now nfs-server
También puedes comprobar el estado del servicio NFS con el siguiente comando:
systemctl status nfs-server
Deberías ver la siguiente salida:
? 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 2019-11-07 02:07:09 EST; 1s ago Process: 9721 ExecStart=/bin/sh -c if systemctl -q is-active gssproxy; then systemctl reload gssproxy ; fi (code=exited, status=0/SUCCESS) Process: 9699 ExecStart=/usr/sbin/rpc.nfsd (code=exited, status=0/SUCCESS) Process: 9698 ExecStartPre=/usr/sbin/exportfs -r (code=exited, status=0/SUCCESS) Main PID: 9721 (code=exited, status=0/SUCCESS) Nov 07 02:07:09 centos8 systemd[1]: Starting NFS server and services... Nov 07 02:07:09 centos8 systemd[1]: Started NFS server and services.
Crear recurso compartido NFS
En esta sección, crearemos dos directorios /nfsshare/data y /nfsshare/backup, y los compartiremos con NFS.
En primer lugar, crea los directorios necesarios con los siguientes comandos:
mkdir -p /nfsshare/data mkdir -p /nfsshare/backup
A continuación, da permiso total al directorio con el siguiente comando:
chmod -R 777 /nfsshare
A continuación, tendrás que exportar los directorios creados editando el archivo /etc/exports:
nano /etc/exports
Añade las siguientes líneas:
/nfsshare/data 172.20.10.0/24(rw,sync,no_subtree_check) /nfsshare/backup 172.20.10.0/24(ro,sync,no_subtree_check,no_root_squash)
Guarda y cierra el archivo. A continuación, ejecuta el siguiente comando para que tu directorio se pueda compartir en la red:
exportfs -ra
Tendrás que ejecutar el comando anterior cada vez que modifiques el archivo /etc/exports.
Puedes ver las exportaciones activas con el siguiente comando:
exportfs -v
Deberías ver la siguiente salida:
/nfsshare/data 172.20.10.0/24(sync,wdelay,hide,no_subtree_check,sec=sys,rw,secure,root_squash,no_all_squash) /nfsshare/backup 172.20.10.0/24(sync,wdelay,hide,no_subtree_check,sec=sys,ro,secure,no_root_squash,no_all_squash)
Configurar cortafuegos
A continuación, tendrás que permitir SSH (para fines de administración) y el servicio NFS a través de firewalld para acceder al recurso compartido NFS desde el sistema remoto. Ejecuta el siguiente comando para permitir SSH y el servicio NFS a través de firewalld:
firewall-cmd --permanent --zone=public --add-service=ssh firewall-cmd --permanent --zone=public --add-service=nfs firewall-cmd --reload
Instalar Cliente NFS
Ahora, inicia sesión en el sistema Cliente NFS e instala el paquete cliente NFS con el siguiente comando:
dnf install nfs-utils
Una vez finalizada la instalación, puedes comprobar los recursos compartidos NFS disponibles en el servidor NFS con el siguiente comando:
showmount -e 172.20.10.4
Deberías ver la siguiente salida:
Export list for 172.20.10.4: /nfsshare/backup 172.20.10.0/24 /nfsshare/data 172.20.10.0/24
Montar los recursos compartidos NFS en el cliente
A continuación, crea dos directorios en la máquina cliente donde quieras montar los recursos compartidos NFS.
mkdir /home/backup mkdir /home/data
A continuación, monta los directorios compartidos en el servidor NFS con los siguientes comandos:
mount -t nfs4 172.20.10.4:/nfsshare/data /home/data mount -t nfs4 172.20.10.4:/nfsshare/backup /home/backup
Ahora puedes comprobar los recursos compartidos NFS montados con el siguiente comando:
df -h
Deberías ver la siguiente salida:
Filesystem Size Used Avail Use% Mounted on /dev/sda1 92G 36G 51G 42% / none 4.0K 0 4.0K 0% /sys/fs/cgroup none 5.0M 0 5.0M 0% /run/lock none 1.9G 65M 1.9G 4% /run/shm none 100M 44K 100M 1% /run/user /dev/sda5 184G 104G 71G 60% /home 172.20.10.4:/nfsshare/data 13G 1.8G 11G 14% /home/data 172.20.10.4:/nfsshare/backup 13G 1.8G 11G 14% /home/backup
Si quieres desmontar los recursos compartidos NFS ejecuta los siguientes comandos:
umount /home/data umount /home/backup
Automontar recursos compartidos NFS
Si quieres montar los recursos compartidos NFS automáticamente en cada reinicio, edita el archivo /etc/fstab en la máquina cliente:
nano /etc/fstab
Añade las siguientes líneas:
172.20.10.4:/nfsshare/data /home/data nfs4 rw,sync,hard,intr 0 0 172.20.10.4:/nfsshare/backup /home/backup nfs4 rw,sync,hard,intr 0 0
Guarda y cierra el archivo cuando hayas terminado.
Ahora puedes reiniciar la máquina y los puntos de montaje serán permanentes incluso después del reinicio.
Conclusión
Enhorabuena! has instalado y configurado correctamente el servidor y el cliente NFS en CentOS 8. Tu servidor ya está listo para servir archivos. Recuerda que NFS no tiene mucha seguridad, por lo que se recomienda activar la autenticación Kerberos.