测试

发布时间 2023-07-15 00:02:02作者: 汉斯小木屋

什么是NFS

共享存储,文件服务器

NFS基本概述

NFS是一种网络文件系统,主要功能是通过局域网让不同的主机系统之间可以共享文件或目录
NFS系统与windows网络共享,NFS用于企业集群架构 
大型网站会用到复制的分布式文件系统FastDFS(音频 小说 视频)
glusterfs 存放iso镜像
HDFS NFS(图片静态页)解决前端web共享
分布式:将多台机器,组成像一台机器一样使用
微服务:将一台机器,拆分成多台机器使用

为什么使用NFS

实现多台服务器之间数据共享

实现多台服务器之间数据一致

NFS原理

1.用户进程访问NFS客户端,使用不同的函数进行处理
2.NFS客户端通过TCP/IP连接服务端
3.NFS服务端接收请求,会先调用portmap进程进行端口映射
4.Rpc.nfsd进程用于判断NFS客户端能否连接服务端;#守护进程NFS
5.Rpc.mount进程用于判断客户端对服务端的操作权限
6.如果通过权限验证,可以对服务端进行操作,修改或读取

NFS实践

主机 IP 角色
web01 192.168.25.2 NFS客户端
NFS 192.168.25.1 NFS服务端

服务端配置

1.关闭防火墙
	#systemctl disable firewalld
2.关闭selinux
	#setenforce 0
3.安装NFS和rpcbind
	#yum install -y nfs-utils rpcbind
4.修改配置文件
	# vim /etc/exports
	#语法: NFS共享目录(/data)  NFS允许连接的客户端IP 允许操作的权限
	配置内容
	[root@nfs ~]# cat /etc/exports
	/data 192.168.25.0/24(rw,sync,all_squash)
5.创建共享目录
	#mkdir /data
6.启动nfs
	#systemctl start nfs rpcbind
7.验证nfs启动
	#showmount -e 或 netstat -lntp | grep rpc
8.验证NFS配置
[root@nfs ~]# cat /var/lib/nfs/etab
/data192.168.25.0/24(rw,sync,wdelay,hide,nocrossmnt,secure,root_squash,all_squash,no_subtree_check,secure_locks,acl,no_pnfs,anonuid=65534,anongid=65534,sec=sys,rw,secure,root_squash,all_squash)

客户端配置

1.关闭防火墙
	#systemctl disable firewalld
2.关闭selinux
	#setenforce 0
3.安装NFS和rpcbind
	#yum install -y nfs-utils rpcbind
4.查看挂载点
	[root@web1 ~]# showmount -e 192.168.25.1
	Export list for 192.168.25.1:
	/date 192.168.25.0/24
5.挂载
	[root@web1 ~]# mount -t nfs 192.168.25.1:/data /backup
  查看挂载
  [root@web1 ~]# df -h
    文件系统            容量  已用  可用 已用% 挂载点
    devtmpfs            476M     0  476M    0% /dev
    tmpfs               487M     0  487M    0% /dev/shm
    tmpfs               487M  7.7M  479M    2% /run
    tmpfs               487M     0  487M    0% /sys/fs/cgroup
    /dev/sda3            22G  2.1G   20G   10% /
    /dev/sda1          1014M  155M  860M   16% /boot
    tmpfs                98M     0   98M    0% /run/user/0
    192.168.25.1:/data   22G  2.1G   20G   10% /backup

写入数据测试

#第一次写入测试
[root@web1 backup]# cd ~
[root@web1 ~]# cd /backup/
[root@web1 backup]# touch 123.txt
touch: 无法创建"123.txt": 权限不够

#给目录授权
[root@nfs ~]# chown -R nfsnobody.nfsnobody /data/

#再次创建测试
[root@web1 backup]# touch 123.txt
[root@web1 backup]# ll
总用量 0
-rw-r--r-- 1 nfsnobody nfsnobody 0 7月  15 04:45 123.txt

#查看服务端
[root@nfs ~]# ll /data/
总用量 0
-rw-r--r-- 1 nfsnobody nfsnobody 0 7月  15 04:45 123.txt

同步完成

卸载

方式1:#umount /backup
方式2:#umount 192.168.25.1:/data

#强制取消挂载
umount -lf /backup

开机挂载

#编辑fstab文件
192.168.25.1:/data			  /backup		  nfs	  defaults	  0 0
#验证fstab写入正确与否
mount -a

方法2#####
echo  "mount -t nfs 192.128.25.1 /data /backup" >> /etc/rs.local

NFS配置详解

[root@nfs ~]# cat /etc/exports
/data 192.168.25.0/24(rw,sync,all_squash)
NFS共享参数 参数作用(加粗常用)
rw 读写权限
ro 只读权限
root_squash 当NFS客户端以root管理员访问时,映射为NFS服务器的匿名用户
no_root-squash 当NFS客户端以root管理员访问时,映射为NFS服务器的root管理员
all_squash 无论NFS客户端使用什么账户访问时,均映射为NFS服务器的匿名用户
no_all_sauash 无论NFS客户端使用什么账户访问时,都不进行压缩
sync 同时将数据写入内存与硬盘,保证不丢失数据
async 优先将数据保存到内存,再写入硬盘,效率高,但可能丢失数据
anonuid 配置all_squash使用,指定NFS的用户UID,必须存在于系统
anongid 配置all_squash使用,指定NFS的用户GID,必须存在于系统