需求

搭建nfs共享存储

准备

两台centos7服务器。一个做服务器端,一个做客户端

NFS服务器ip:172.16.77.40
客户端ip:172.16.77.189

NFS服务器配置

1、安装NFS服务

首先使用yum安装nfs服务

1
yum -y install rpcbind nfs-utils

2、创建共享目录

在服务器上创建共享目录,并设置权限

1
2
mkdir /data/share/
chmod 755 -R /data/share/

3、配置NFS

nfs的配置文件是etc/exports,在配置文件中加入一行

1
/data/share/ *(rw,sync,no_root_squash)
  • rw 表示设置目录可读写。
  • sync 表示数据会同步写入到内存和硬盘中,相反 rsync 表示数据会先暂存于内存中,而非直接写入到硬盘中。
  • no_root_squash NFS客户端连接服务端时如果使用的是root的话,那么对服务端分享的目录来说,也拥有root权限。
  • no_all_squash 不论NFS客户端连接服务端时使用什么用户,对服务端分享的目录来说都不会拥有匿名用户权限。

如果有多个共享目录配置,则使用多行,一行一个配置。保存好配置文件后,需要执行一下命令使配置生效:

1
exportfs -r

4、启动服务

按顺序启动rpcbind和nfs服务

1
2
systemctl start rpcbind
systemctl start nfs

加入开机启动

1
2
systemctl enable rpcbind
systemctl enable nfs

nfs服务器启动后,可以使用命令rpcinfo -p查看端口是否生效
服务启动后,我们可以使用showmount命令来查看服务端(本机)是否可连接

1
2
3
[root@k8s-77-40 ~]# showmount -e localhost
Export list for localhost:
/data/share *

客户端配置

1、安装rpcbind

客户端只需要安装rpcbind服务即可,无需安装nfs或开启nfs服务

1
yum -y install rpcbind 

2、查看远程nfs文件系统

查看服务端已共享的目录

1
2
3
[root@k8s-77-189 ~]# showmount -e 172.16.77.40
Export list for 172.16.77.40:
/data/share *

显示出远程共享的目录说明正常

3、创建挂载目录,执行挂载命令

1
2
mkdir -p /mnt/share
mount -t nfs 172.16.77.40:/data/share /mnt/share/ -o nolock,nfsvers=3,vers=3

如果不加 -onolock,nfsvers=3 则在挂载目录下的文件属主和组都是nobody,如果指定nfsvers=3则显示root。

如果需要解除挂载,可执行命令:

1
umount /mnt/share