NFS significa Network File System, lo ayuda a compartir archivos y carpetas entre sistemas Linux/Unix, desarrollado por SUN Microsystems en 1990. NFS le permite montar un recurso compartido remoto localmente.
Esta guía lo ayuda a configurar el servidor NFS en CentOS 7 / RHEL 7.
Beneficios de NFS
- Compartir archivos/carpetas entre sistemas *nix
- Permite montar sistemas de archivos remotos localmente
- Puede actuar como sistema de almacenamiento centralizado
- Se puede utilizar como dominio de almacenamiento (almacén de datos) para VMware y otras plataformas de virtualización.
- Permite que las aplicaciones compartan archivos de configuración y datos con múltiples nodos.
- Permite tener archivos actualizados en todo el recurso compartido.
Servicios importantes
Los siguientes son los servicios NFS importantes, incluidos en los paquetes nfs-utils.
rpcbind :El servidor rpcbind convierte números de programa RPC en direcciones universales.
servidor nfs :permite a los clientes acceder a los recursos compartidos de NFS.
nfs-lock / rpc-statd :Bloqueo de archivos NFS. Implemente la recuperación de bloqueo de archivos cuando un servidor NFS falla y se reinicia.
nfs-idmap :Traduce las identificaciones de usuarios y grupos en nombres, y traduce los nombres de usuarios y grupos
en identificaciones
Archivos de configuración importantes
Estaría trabajando principalmente en los archivos de configuración a continuación para configurar el servidor NFS y los clientes.
/etc/exports:es el archivo de configuración principal, controla qué sistemas de archivos se exportan a hosts remotos y especifica opciones.
/etc/fstab:este archivo se usa para controlar qué sistemas de archivos, incluidos los directorios NFS, se montan cuando se inicia el sistema.
/etc/sysconfig/nfs:este archivo se usa para controlar en qué puertos se ejecutan los servicios RPC requeridos.
/etc/hosts.allow y /etc/hosts.deny:estos archivos se denominan contenedores TCP y controlan el acceso al servidor NFS. NFS lo utiliza para decidir si acepta o no una conexión procedente de otra dirección IP.
Medio ambiente
Aquí, usaré CentOS 7 mínimo para esta demostración. Esta guía también debería funcionar en los sistemas Oracle Linux y Fedora.
Servidor NFS
Nombre de host: servidor.itzgeek.local (CentOS 7)
Dirección IP: 192.168.1.10/24
Cliente NFS
Nombre de host: cliente.itzgeek.local (CentOS 7)
Dirección IP: 192.168.1.20/24
Configurar servidor NFS
Instalar servidor NFS
Instale el siguiente paquete para el servidor NFS usando el comando yum.
yum install -y nfs-utils
Una vez que los paquetes estén instalados, habilite e inicie los servicios NFS.
systemctl start nfs-server rpcbind systemctl enable nfs-server rpcbind
Crear recurso compartido NFS
Ahora, creemos un directorio para compartir con el cliente NFS. Aquí crearé un nuevo directorio llamado nfsfileshare en la partición /.
También puede compartir su directorio existente con NFS.
mkdir /nfsfileshare
Permita que el cliente NFS lea y escriba en el directorio creado.
chmod 777 /nfsfileshare/
Tenemos que modificar el archivo /etc/exports para hacer una entrada del directorio /nfsfileshare que desea compartir.
vi /etc/exports
Cree un recurso compartido NFS similar al que se muestra a continuación.
/nfsfileshare 192.168.1.20(rw,sync,no_root_squash)
/nfsfileshare :directorio compartido
192.168.1.20 :dirección IP de la máquina cliente. También podemos usar el nombre de host en lugar de una dirección IP. También es posible definir el rango de clientes con subred como 192.168.1.0/24.
rw :permiso de escritura en la carpeta compartida
sincronizar :Todos los cambios en el sistema de archivos correspondiente se descargan inmediatamente en el disco; se están esperando las respectivas operaciones de escritura.
no_root_squash
Puede conocer todas las opciones en la página man export man o aquí.
Exporte los directorios compartidos usando el siguiente comando.
exportfs -r
Extras:
exportfs -v:muestra una lista de archivos compartidos y opciones de exportación en un servidor.
exportfs -a:exporta todos los directorios enumerados en /etc/exports.
exportfs -u:Desexportar uno o más directorios.
exportfs -r:Reexportar todos los directorios después de modificar /etc/exports.
Después de configurar el servidor NFS, necesitamos montar ese directorio compartido en el cliente NFS.
Configurar cortafuegos
Necesitamos configurar el firewall en el servidor NFS para permitir que el cliente NFS acceda al recurso compartido NFS. Para hacerlo, ejecute los siguientes comandos en el servidor NFS.
firewall-cmd --permanent --add-service mountd firewall-cmd --permanent --add-service rpc-bind firewall-cmd --permanent --add-service nfs firewall-cmd --reload
Configurar cliente NFS
Instalar cliente NFS
Necesitamos instalar paquetes NFS en el cliente NFS para montar un recurso compartido NFS remoto. Instale paquetes NFS usando el siguiente comando.
yum install -y nfs-utils
Comprobar el uso compartido de NFS
Antes de montar el recurso compartido NFS, le pido que verifique los recursos compartidos NFS disponibles en el servidor NFS ejecutando el siguiente comando en el cliente NFS.
Reemplace la dirección IP con la dirección IP o el nombre de host de su servidor NFS.showmount -e 192.168.1.10
Salida:
Export list for 192.168.1.10: /nfsfileshare 192.168.1.20
Según el resultado, /nfsfileshare está disponible en el servidor NFS (192.168.1.10) para el cliente NFS (192.168.1.20).
Extras:
showmount -e :muestra los recursos compartidos disponibles en su máquina local (servidor NFS).
showmount -e
Montar recurso compartido NFS
Ahora, cree un directorio en el cliente NFS para montar el recurso compartido NFS /nfsfileshare que hemos creado en el servidor NFS.
mkdir /mnt/nfsfileshare
Use el siguiente comando para montar un recurso compartido NFS /nfsfileshare desde el servidor NFS 192.168.1.10 en /mnt/nfsfileshare en el cliente NFS.
mount 192.168.1.10:/nfsfileshare /mnt/nfsfileshare
Verifique el recurso compartido montado en el cliente NFS usando el comando de montaje.
mount | grep nfs
Salida:
ssunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw,relatime) nfsd on /proc/fs/nfsd type nfsd (rw,relatime) 192.168.1.10:/nfsfileshare on /mnt/nfsfileshare type nfs4 (rw,relatime,vers=4.1,rsize=131072,wsize=131072,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=192.168.1.20,local_lock=none,addr=192.168.1.10)
Además, puede usar el comando df -hT para verificar el recurso compartido NFS montado.
df -hT
Salida:
Filesystem Type Size Used Avail Use% Mounted on /dev/mapper/centos-root xfs 50G 1.2G 49G 3% / devtmpfs devtmpfs 485M 0 485M 0% /dev tmpfs tmpfs 496M 0 496M 0% /dev/shm tmpfs tmpfs 496M 6.7M 490M 2% /run tmpfs tmpfs 496M 0 496M 0% /sys/fs/cgroup /dev/mapper/centos-home xfs 47G 33M 47G 1% /home /dev/sda1 xfs 1014M 154M 861M 16% /boot tmpfs tmpfs 100M 0 100M 0% /run/user/0 192.168.1.10:/nfsfileshare nfs4 50G 1.2G 49G 3% /mnt/nfsfileshare
Cree un archivo en el directorio montado para verificar el acceso de lectura y escritura en el recurso compartido NFS.
touch /mnt/nfsfileshare/test
Si el comando anterior no devuelve ningún error, tiene una configuración de NFS en funcionamiento.
Automontar recursos compartidos de NFS
Para montar los recursos compartidos automáticamente en cada reinicio, deberá modificar el archivo /etc/fstab de su cliente NFS.
vi /etc/fstab
Agregue una entrada similar a la siguiente.
# # /etc/fstab # Created by anaconda on Wed Jan 17 12:04:02 2018 # # Accessible filesystems, by reference, are maintained under '/dev/disk' # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info # /dev/mapper/centos-root / xfs defaults 0 0 UUID=60a496d0-69f4-4355-aef0-c31d688dda1b /boot xfs defaults 0 0 /dev/mapper/centos-home /home xfs defaults 0 0 /dev/mapper/centos-swap swap swap defaults 0 0 192.168.1.10:/nfsfileshare /mnt/nfsfileshare nfs nosuid,rw,sync,hard,intr 0 0
Guarde y cierre el archivo.
Reinicie la máquina cliente y verifique si el recurso compartido se monta automáticamente o no.
reboot
Verifique el recurso compartido montado en el cliente NFS usando el comando de montaje.
mount | grep nfs
Salida:
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw,relatime) 192.168.1.10:/nfsfileshare on /mnt/nfsfileshare type nfs4 (rw,nosuid,relatime,sync,vers=4.1,rsize=131072,wsize=131072,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=192.168.1.20,local_lock=none,addr=192.168.1.10)
Si desea desmontar ese directorio compartido de su cliente NFS una vez que haya terminado de compartir archivos, puede desmontar ese directorio en particular usando el comando desmontar.
umount /mnt/nfsfileshare
Conclusión
Ha configurado el servidor NFS y el cliente NFS en CentOS 7/RHEL 7 correctamente. Si no desea utilizar montajes estáticos, puede configurar AutoFS en CentOS 7 para montar NFS compartidos solo cuando un usuario acceda a ellos.