NFS(Network File System),即网络文件系统。NFS服务可以将远程Linux系统上的文件共享资源挂载到本地主机的目录上,从而使用本地主机(Linux客户端)像使用本地资源那样读写远程Linux系统上的共享资源。
表1:系统环境
主机名称 | 操作系统 | IP地址 |
---|---|---|
NFS服务器 | Centos 7 64位 | 192.168.2.211 |
NFS客户端 | Centos 7 64位 | 192.168.2.223 |
表2:NFS服务配置文件的参数
参数 | 作用 |
---|---|
ro | 只读 |
rw | 读写 |
root_squash | 当NFS客户端以root管理员访问时,映射为NFS服务器的匿名用户 |
no_root_squash | 当NFS客户端以root管理员访问时,映射为NFS服务器的root管理员 |
all_squash | 无论NFS客户端使用什么账户访问,均映射为NFS服务器的匿名用户 |
sync | 同时将数据写入到内存与硬盘中,保证不丢失数据 |
async | 优先将数据写入到内存,然后再写入硬盘;这样效率更高,但可能会丢失数据 |
NFS服务器操作
1、安装NFSyum -y install nfs-utils
2、创建用于NFS共享的目录
mkdir /nfsdata
chown -R nfsnobody /nfsdata/
3、编辑NFS的配置文件,添加如下内容
注:NFS的配置文件默认是没有内容的vim /etc/exports
/nfsdata 192.168.2.*(rw,sync,root_squash)
4、启动NFS服务,并加入开机启动项
NFS服务需要使用RPC(Remote Procedure Call,远程过程调用)服务将NFS服务器的IP地址和端口号等信息发送给客户端,因此,在启动NFS服务之前,还需要顺带启动rpcbind服务。
systemctl start rpcbind
systemctl enable rpcbind
systemctl start nfs-server
systemctl enable nfs-server
5、查看nfs向rpc注册的端口信息rpcinfo -p localhost
注:下图中用红框括起来的端口号需要防火墙允许
6、配置firewalld防火墙,允许nfs和rpc端口
firewall-cmd --permanent --add-service=nfs
firewall-cmd --permanent --add-service=mountd
firewall-cmd --permanent --add-port=111/tcp
firewall-cmd --permanent --add-port=111/udp
firewall-cmd --reload
NFS客户端操作
1、使用showmount命令查询NFS服务器的远程共享信息
表3:showmount命令可用的参数以及作用
参数 | 作用 |
---|---|
-e | 显示NFS服务器的共享列表 |
-a | 显示本机挂载的文件资源的情况 |
-v | 显示版本号 |
showmount -e 192.168.2.211
2、创建挂载目录,并挂载
mkdir /nfsdata
mount -t nfs 192.168.2.211:/nfsdata /nfsdata
3、将挂载信息写入/etc/fstab文件中,以便开机自动挂载vim /etc/fstab
192.168.2.211:/nfsdata /nfsdata nfs defaults 0 0
4、测试
往/nfsdata目录下写入一个文件echo "welcome to xuad.com" > /nfsdata/xuad.txt
在NFS服务器上查看/nfsdata目录下是否生成了此文件
原文地址:http://blog.51cto.com/andyxu/2171149