1.什么是NFS?
NFS是Network File System的缩写,即网络文件系统,相当于不同网段的内容共享。FTP:本网段文件内容共享。
客户端通过挂载的方式将NFS服务器端共享的数据目录挂载到本地目录下。
为什么需要安装NFS服务?当服务器访问流量过大时,需要多台服务器进行分流,而这多台服务器可以使用NFS服务进行共享。(NFS服务是最基础的共享服务)
主要由如下2个RPM包提供。
①nfs-utils:包含NFS服务器端守护进程和NFS客户端相关工具。
②rpcbind:提供RPC的端口映射的守护进程及其相关文档、执行文件等。
RPC与NFS如何通讯
因为NFS支持的功能相当多,而不同的功能都会使用不同的程序来启动,每启动一个功能就会启用一些端口来传输数据,因此NFS的功能对应的端口并不固定,客户端要知道NFS服务器端的相关端口才能建立连接进行数据传输,而RPC就是用来统一管理NFS端口的服务,并且统一对外的端口是111,RPC会记录NFS端口的信息,如此我们就能够通过RPC实现服务端和客户端沟通端口信息。
2.规划节点
IP |
主机名 |
节点 |
192.168.223.22 |
nfs-server |
NFS服务节点 |
192.168.223.23 |
nfs-client |
NFS客户端节点 |
需要使用两台服务器,使用安装的Linux系统作为nfs-server节点,再安装一台CentOS 7.2的虚拟机(1核/2G内存/20G硬盘),作为nfs-client进行下述实验。
3.基础配置:
修改两个节点的主机名,第一台机器为nfs-server;第二台机器为nfs-client。命令如下:
nfs-server节点:服务器节点
[root@server ~]# hostnamectl set-hostname nfs-server
[root@server ~]# bash
nfs-client节点:客户端节点
[root@nfs-client ~]# hostnamectl set-hostname nfs-client
[root@nfs-client ~]# bash
4.安装NFS节点:
注意:要保证两台虚拟机的YUM源配置成功,并且已经启动。
如果未启用请参考之前的配置本地yum源。
两个节点安装NFS服务。命令如下:
[root@nfs-server ~]# yum -y install nfs-utils rpcbind //这是两个软件,
①nfs-utils:包含NFS服务器端守护进程和NFS客户端相关工具。
②rpcbind:提供RPC的端口映射的守护进程及其相关文档、执行文件等。
[root@nfs-client ~]# yum -y install nfs-utils rpcbind
注意:安装NFS服务必须要依赖RPC,所以运行NFS就必须要安装RPC
NFS服务使用
在nfs-server节点创建一个用于共享的目录
编辑NFS服务的配置文件/etc/exports,在配置文件中加入一行代码,命令如下
配置文件说明:
l /mnt/test:为共享目录(若没有这个目录,请新建一个)。
l 192.168.172.0/24:可以为一个网段,一个IP,也可以是域名。域名支持通配符,例如,*.qq.com。
l rw:read-write,可读写。
l ro:read-only,只读。
l sync:文件同时写入硬盘和内存。
l async:文件暂存于内存,而不是直接写入内存。
l wdelay:延迟写操作。
l no_root_squash:NFS客户端连接服务端时,如果使用的是root,那么对服务端共享的目录来说,也拥有root权限。显然开启这项是不安全的。
l root_squash:NFS客户端连接服务端时,如果使用的是root,那么对服务端共享的目录来说,拥有匿名用户权限,通常它将使用nobody或nfsnobody身份。
l all_squash:不论NFS客户端连接服务端时使用什么用户,对服务端共享的目录来说,都拥有匿名用户权限。
l anonuid:匿名用户的UID(User Identification,用户身份证明)值,可以在此处自行设定。
l anongid:匿名用户的GID(Group Identification,共享资源系统使用者的群体身份)值。
生效配置,命令如下
nfs-server端启动NFS服务
nfs-server端查看可挂载目录,命令如下
转到nfs-client端,在客户端挂载前,先要将服务器的SELinux服务和防火墙服务关闭,命令如下
关闭slinux
关闭防火墙并设置开机不启动
在nfs-client节点,进行NFS共享目录的挂载,命令如下
验证NFS共享存储
在nfs-client节点的/mnt目录下创建一个abc.txt的文件并计算MD5值
回到nfs-server节点进行验证
可以发现,在client节点创建的文件和server节点的文件是一样的