NFS部署
Network File System(NFS)网络文件系统
进行nfs部署实验需要两台linux系统的机器,一个作为服务端一个作为客户端
这篇笔记中使用的是两台CentOS7的虚拟机
服务端
先用
yum install nfs-utils
命令安装nfs
再用
systemctl enable 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
到此为止服务端的配置完成
客户端
也是需要先安装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
命令检查防火墙状态
出现
即可,推荐用这种方法,毕竟是做实验,倒是无所谓
另一种方法则是在防火墙上开启相关服务要用的端口,这里不赘述
测试
可以在客户端的data目录下新建文件并往里面写入内容,接着在服务端查看,如果服务端的data目录中也出现了改变则证明nfs服务部署成功。