nfs安装和使用

发布时间 2023-11-09 17:47:34作者: 大司徒

1. NFS介绍

  NFS(Network File System) 即网络文件系统,它允许网络中服务器之间通过TCP/IP网络共享资源,NFS的一个最大优点是可以节省本地存储空间,一台NFS服务器和若干台客户机。

2. 环境准备

#准备两台服务器一台做客户端,一台做服务器,根据自己的电脑网段来做
A:192.168.0.101 	#做服务端
B:192.168.0.102		#做客户端

3. 在A服务端机器安装nfs-utils和rpcbind包

yum install -y nfs-utils rpcbind

#  nfs-utils:提供了NFS服务器程序和对应的管理工具
#  rpcbind:获取nfs服务器端的端口等信息

4. 启动rpcbind检查是否启动了rpcbind服务并监听111端口

systemctl start rpcbind
netstat -tunlp | grep 111

5. 配置NFS服务的配置文件

参数配置:vi /etc/exports

# NO.01
/data/NFSdata 192.168.0.0/24(rw,sync)

/data/NFSdata	#表示要共享文件的目录
192.168.0.0/24	#表示所有允许访问的客户端IP网段,也可以写成指定的ip,只允许当前客户机访问
(rw,sync)		#rw:表示读写权限,sync:表示数据同步写入内存硬盘
=============================================================================
# NO.02 (推荐)
/data/NFSdata *(insecure,rw,sync,no_root_squash,no_subtree_check)
#参数	    表示含义
/data/NFSdata	#是需要共享的目录
*	#表示允许所有客户端访问
rw	#表示允许读写访问
sync	#表示数据同步写入内存和硬盘中,保证数据的安全性
rsync	#数据暂存于内存中,而非直接写入硬盘
no_root_squash	#表示允许 root 用户访问共享目录
no_all_squash	#不论NFS客户端连接服务端时使用什么用户,对服务端分享的目录来说都不会拥有匿名用户权限。

数据同步与数据异步的区别

  • 数据同步:

  当系统从内存中向磁盘中持久化数据时,同步发送表示只有当内存中的数据全部同步到磁盘中的时候,才会返回给服务器标识,确认数据已经持久化到磁盘,这时运维人员或者程序才可以继续进行别的操作,同步操作保证数据的一致性,不被丢失,但是效率性能会有所下降,适用于数据必须一致性的场景。

  • 数据异步:

  同样是内存中向磁盘中持久化数据,异步发送表示当发起异步持久化时,系统会开启一个fork线程,将内存中的数据持久化到磁盘,系统不会关注持久化的结果,这时运维人员或是程序可以继续进行别的操作,但是在传输的过程中,可能会数据丢失,数据一致性不能做保证,但是效率很快,适用于数据必须一致性要求不高,但是性能要高的场景。

6. 启动NFS

#创建目录
mkdir -p /data/NFSdata
#启动
systemctl start nfs

#设置开机启动
systemctl enable rpcbind.service
systemctl enable nfs.service
#更新配置文件
exportfs -r
#.配置防火墙 (按需)
#如果 CentOS 7 上的防火墙(firewalld)正在运行,需要允许 NFS 流量通过防火墙
#执行以下命令开放 NFS 服务的端口:
sudo firewall-cmd --permanent --zone=public --add-service=nfs
sudo firewall-cmd --permanent --zone=public --add-service=rpc-bind
sudo firewall-cmd --permanent --zone=public --add-service=mountd
sudo firewall-cmd --reload

7. 客户端安装

在 B服务器 安装

yum -y install nfs-utils
#设置开机启动
systemctl enable rpcbind.service

#挂载
mount -t nfs 192.168.0.101:/data/NFSdata /NFS #挂在文件系统

showmount -e 192.168.0.101  #查看是否挂载上
df -h  #查看磁盘目录