NFS部署

Network File System(NFS)网络文件系统

进行nfs部署实验需要两台linux系统的机器,一个作为服务端一个作为客户端

这篇笔记中使用的是两台CentOS7的虚拟机

服务端

先用

yum install nfs-utils

命令安装nfs

再用

systemctl enable nfs

命令设置自启动

这时可能会出现问题

autofs nfs 挂载失败 nfs挂载nobody_autofs nfs 挂载失败

 网上给出了很多解决方法,我的建议是别用太新的版本(尤其是CentOS8)

随后开启nfs服务

systemctl start nfs

接着准备一个目录

mkdir data

并设置权限

chmod 755 data

然后写配置文件

vi /etc/exports

范例

/data/ [IP地址] (rw,sync,no_root_squash,no_all_squash,,anonuid=1000,anongid=1000))

其中:

rw:可读写权限。

ro:只读权限。

no_root_squash:当登录NFS主机使用共享目录的使用者是root时,其权限将被转换成为匿名使用者,通常它的UID与GID都会变成nobody身份。、

root_squash;如果登录NFS主机使用共享目录的使用者是root,那么对于这个共享的目录来说,它具有root的权限。

all_squash:忽略登录NFS使用者的身份,其身份都会被转换为匿名使用者,通常即nobody。

anonuid:通常为nobody,也可以自行设定这个UID的值,UID必须存在于/etc/passwd中。

anongid:同anonuid,但是变为Group ID。

写完配置文件后重启nfs服务

systemctl restart nfs

查看挂载

showmount -e localhost

autofs nfs 挂载失败 nfs挂载nobody_运维开发_02

 到此为止服务端的配置完成

客户端

也是需要先安装nfs

yum -y install nfs-utils

然后开启RPC服务,RPC提供了存取远程文件的操作

systemctl start rpcbind

然后查看服务端的共享目录

showmount -e [ip地址]

然后也新建一个目录

mkdir data

并挂载服务端的目录

mount -t nfs [ip地址]:/data /data

在做这几步的时候是最容易出错的

clnt_create: RPC: Port mapper failure - Unable to receive: errno 113 (No route to host)

出现这个错误是因为服务端的防火墙上默认没有开启nfs服务相应的端口

有两种方法解决,一种是直接关闭防火墙

先用

systemctl status firewalld

命令查看防火墙运行状态

然后用

systemctl stop firewalld

命令关闭防火墙

可以再用

systemctl status firewalld

命令检查防火墙状态

出现

autofs nfs 挂载失败 nfs挂载nobody_linux_03

 即可,推荐用这种方法,毕竟是做实验,倒是无所谓

另一种方法则是在防火墙上开启相关服务要用的端口,这里不赘述

测试

可以在客户端的data目录下新建文件并往里面写入内容,接着在服务端查看,如果服务端的data目录中也出现了改变则证明nfs服务部署成功。