服务器 10.23.241.97
客户端 10.23.241.177

1 NFS简介

(1)什么是NFS

NFS就是Network File System的缩写,它最大的功能就是可以通过网络,让不同的机器、不同的操作系统可以共享彼此的文件。

NFS服务器可以让PC将网络中的NFS服务器共享的目录挂载到本地端的文件系统中,而在本地端的系统中来看,那个远程主机的目录就好像是自己的一个磁盘分区一样,在使用上相当便利。

NFS一般用来存储共享视频,图片等静态数据。
(2)NFS挂载原理

centos nfs 查看状态 centos nfs server_客户端


当我们在NFS服务器设置好一个共享目录/home/public后,其他的有权访问NFS服务器的NFS客户端就可以将这个目录挂载到自己文件系统的某个挂载点,这个挂载点可以自己定义,如上图客户端A与客户端B挂载的目录就不相同。

并且挂载好后我们在本地能够看到服务端/home/public的所有数据。如果服务器端配置的客户端只读,那么客户端就只能够只读。如果配置读写,客户端就能够进行读写。

挂载后,NFS客户端查看磁盘信息命令:#df –h。

既然NFS是通过网络来进行服务器端和客户端之间的数据传输,那么两者之间要传输数据就要有想对应的网络端口,NFS服务器到底使用哪个端口来进行数据传输呢?基本上NFS这个服务器的端口开在2049,但由于文件系统非常复杂。因此NFS还有其他的程序去启动额外的端口,这些额外的用来传输数据的端口是随机选择的,是小于1024的端口;既然是随机的那么客户端又是如何知道NFS服务器端到底使用的是哪个端口呢?这时就需要通过远程过程调用(Remote Procedure Call,RPC)协议来实现了!

2 安装nfs服务

需要安装nfs服务器
(1)第一步:安装NFS和rpc,每台机器都需要安装
#yum install -y nfs-utils #安装nfs服务
#yum install -y rpcbind#安装rpc服务
(2)第二步:启动服务和设置开启启动,每台机器都启动
注意:先启动rpc服务,再启动nfs服务。
#systemctl start rpcbind #先启动rpc服务
#systemctl enable rpcbind #设置开机启动
#systemctl start nfs-server #启动nfs服务
#systemctl enable nfs-server #设置开机启动

systemctl start rpcbind
systemctl enable rpcbind
systemctl start nfs-server
systemctl enable nfs-server

(3)第三步:配置共享文件目录,编辑配置文件
首先创建共享目录,然后在/etc/exports配置文件中编辑配置即可。
#mkdir -p /some/path
#vi /etc/exports

/some/path *(no_root_squash,rw,sync,no_subtree_check)

参数说明

其中,rw:读/写权限,只读权限的参数为ro;
其中,sync:数据同步写入内存和硬盘,也可以使用async,此时数据会先暂存于内存中,而不立即写入硬盘。
其中,no_root_squash:NFS 服务器共享目录用户的属性,如果用户是 root,那么对于这个共享目录来说就具有 root 的权限。

例如/some/path 10.23.241.0/24(rw)
如上,共享目录为/some/path , 允许访问的客户端为10.23.241.0/24网络用户,权限为读写。
请注意,NFS客户端地址与权限之间没有空格
(4)重新加载NFS服务,使配置文件生效
#systemctl reload nfs#重新加载NFS服务,使配置文件生效

3 测试使用

验证测试是否可用

3.1 客户端挂载

(5-1)客户端挂载

#mount -t nfs 10.23.241.97:/some/path /mnt

(5-2)查看挂载情况

#df -h查看挂载情况

centos nfs 查看状态 centos nfs server_客户端_02

3.2 查看挂载情况

centos nfs 查看状态 centos nfs server_centos nfs 查看状态_03

使用showmount命令查看nfs服务器共享信息。-e或–exports显示NFS服务器的输出清单。输出格式为“共享的目录名称 允许使用客户端地址”。

3.3 取消客户端挂载

#umount /mnt 或者
#umount -l /mnt
第二个命令中加了 -l ,是强制执行的命令,对于出现device is busy 时才可以使用
#df -h查看挂载情况