GNU/Linux >> Tutoriales Linux >  >> Cent OS

Cómo configurar el servidor NFS en CentOS 7 / RHEL 7

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 : De manera predeterminada, cualquier solicitud de archivo realizada por el usuario raíz en la máquina cliente se trata como si fuera un usuario nadie en el servidor. (Exactamente a qué UID se asigna la solicitud depende del UID del usuario "nadie" en el servidor, no del cliente). Si se selecciona no_root_squash, la raíz en la máquina cliente tendrá el mismo nivel de acceso a los archivos en el system como root en el servidor.

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 :enumera los recursos compartidos disponibles en el servidor remoto

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.


Cent OS
  1. Cómo configurar un servidor SFTP en CentOS

  2. Cómo instalar Puppet en CentOS 8 / RHEL 8

  3. Configurar el servidor SysLog en CentOS 6 / RHEL 6

  4. Cómo configurar el servidor SysLog en CentOS 7 / RHEL 7

  5. Cómo configurar un servidor proxy squid en CentOS/RHEL 7

Cómo configurar Jenkins en CentOS 8 / RHEL 8

Cómo configurar un servidor SVN en CentOS

Cómo configurar Icinga Web 2 en CentOS 8 / RHEL 8

Cómo instalar Zabbix Server 4.x en CentOS 6 / RHEL 6

Cómo configurar el servidor SysLog centralizado en CentOS 8 / RHEL 8

Cómo configurar HAProxy en CentOS 8