Servidor
IP: 10.10.0.1
Instalar el servicio NFS
yum install -y nfs-utils rpcbind
nfs-utils包提供了NFS服务器程序和相应的管理工具
rpc则是能够获得nfs服务器端的端口号等信息
Compruebe si el servicio rpcbind está iniciado y escuchando en el puerto 111
netstat -tunlp | grep 111
Crear un directorio compartido
Crear directorio /nfs en el lado del servidor
mkdir /nfs
Escribir un archivo de configuración
vim /etc/exports
#[任意主机所有权限]
/nfs *(rw,sync,insecure,no_subtree_check,no_root_squash)
Iniciar servicio NFS
systemctl start nfs
Establecer arranque
systemctl enable rpcbind.service
systemctl enable nfs-server.service
Herramienta de comando común
#在安装 NFS 服务器时,已包含常用的命令行工具,无需额外安装
#显示已经 mount 到本机 NFS 目录的客户端机器
sudo showmount -e localhost
#将配置文件中的目录全部重新 export 一次,无需重启服务
sudo exportfs -rv
#查看 NFS 的运行状态
sudo nfsstat
#查看 rpc 执行信息,可以用于检测 rpc 运行情况
sudo rpcinfo
cliente
IP: 10.10.0.2
Instale los paquetes nfs-utils y rpcbind en la máquina cliente
yum install -y nfs-utils rpcbind
Establecer arranque
systemctl enable rpcbind.service
Crear un directorio de montaje local
mkdir -p /data-ext/nfs
Ver el directorio compartido en el servidor NFS
showmount -e 10.10.0.1 #服务端IP
问题:clnt_create: RPC: Falla en el mapeador de puertos - Se agotó el tiempo de espera
Montar el directorio compartido
mount -t nfs 10.10.0.1:/nfs /data-ext/nfs
Problema: mount.nfs: se agotó el tiempo de espera de la conexión
3. Resuelve problemas
configuración de la política de firewall del servidor nfs
pregunta
El cliente no puede realizar operaciones showmount y mount.
Análisis de causa
El servidor nfs no ha abierto el puerto de acceso de los componentes de servicio relacionados
Ver la información de estado de rpc del servidor, donde los puertos de inicio del servicio mountd y nlockmgr no son fijos
rpcinfo-p
program vers proto port service
100000 4 tcp 111 portmapper
100000 3 tcp 111 portmapper
100000 2 tcp 111 portmapper
100000 4 udp 111 portmapper
100000 3 udp 111 portmapper
100000 2 udp 111 portmapper
100024 1 udp 35305 status
100024 1 tcp 39682 status
100005 1 udp 20048 mountd
100005 1 tcp 20048 mountd
100005 2 udp 20048 mountd
100005 2 tcp 20048 mountd
100005 3 udp 20048 mountd
100005 3 tcp 20048 mountd
100003 3 tcp 2049 nfs
100003 4 tcp 2049 nfs
100227 3 tcp 2049 nfs_acl
100003 3 udp 2049 nfs
100003 4 udp 2049 nfs
100227 3 udp 2049 nfs_acl
100021 1 udp 59811 nlockmgr
100021 3 udp 59811 nlockmgr
100021 4 udp 59811 nlockmgr
100021 1 tcp 34641 nlockmgr
100021 3 tcp 34641 nlockmgr
100021 4 tcp 34641 nlockmgr
Confirme que los puertos y los componentes de servicio relacionados con nfs estén ocupados de la siguiente manera
Nombre del Servicio |
nombre del puerto |
nombre del protocolo |
Observación |
nfs |
2049 |
TCP/UDP |
puerto fijo |
mapeador de puertos |
111 |
TCP/UDP |
puerto fijo |
montado |
20048 |
TCP/UDP |
El puerto no es fijo, necesita ser modificado y arreglado manualmente |
nlockmgr |
34641/59811 |
TCP/UDP |
El puerto no es fijo, necesita ser modificado y arreglado manualmente |
Cambiar servicios relacionados a puertos fijos
Cambie el puerto de servicio de mountd a 20048
echo "mountd 20048/tcp" >> /etc/services
echo "mountd 20048/udp" >> /etc/services
Cambie el puerto de servicio nlockmgr a 42315
echo "fs.nfs.nlm_udpport=42315" >> /etc/sysctl.conf
echo "fs.nfs.nlm_tcpport=42315" >> /etc/sysctl.conf
sysctl -p
Conclusión: la actualización del puerto de servicio nlockmgr no tiene efecto, lo que puede estar relacionado con la configuración de la dirección de origen, con verificación
problema resuelto
El firewall del servidor abre los puertos 2049 , 111 , 20048 , 59811 y 34641
puerto |
protocolo |
Dirección de la fuente |
111 |
TCP/UDP |
0.0.0.0/0 |
2049 |
TCP/UDP |
0.0.0.0/0 |
20048 |
TCP/UDP |
0.0.0.0/0 |
59811 |
upp |
0.0.0.0/0 |
34641 |
tcp |
0.0.0.0/0 |
remonta
mount -t nfs 10.10.0.1:/nfs /data-ext/nfs
showmount -e 10.10.0.1
Ver información de montaje del cliente
df-h
10.10.0.1:/nfs 40G 6.1G 32G 17% /data-ext/nfs