NFS网络文件系统

2022-01-18 分类:nfs和GlusterFS 阅读(247) 评论(0)

孙富阳, 江湖人称没人称。多年互联网运维工作经验,曾负责过孙布斯大规模集群架构自动化运维管理工作。擅长Web集群架构与自动化运维,曾负责国内某大型博客网站运维工作。

1.为什么要使用共享存储

在一个网站中,A用户上传的文件经过负载均衡,复制均衡将请求调度到了web1服务器上
B用户访问A上传的文件,此时B被负载均衡调度到了web2上,而web2上没有这张文件,所以B无法看到A上传的文件
但是如果有共享存储,A用户上传的文件无论被调度到那个web节点,最终都会写入共享存储
B用户访问A的文件时,无论调度到那个节点,最终也都是访问到共享存储的文件,这样就可以访问到对应的资源了

2.NFS实现原理

1.NFS客户端执行增删等操作,客户端会使用不同的函数对该操作进行封装
2.NFS客户端会通过TCP/IP的方式传递给NFS服务的
3.NFS服务端接收到请求后,会先调用portmap进程进行端口映射
4.nfsd进程用于判断NFS客户端是否拥有权限链接NFS服务器
5.Rpc.mount进程判断客户端是否有对应的权限进行验证
6.idmap进程实现用户映射和压缩
7.最后NFS服务端会将客户端的函数转换为本地能执行的命令,然后将命令传递给内核,由内核驱动硬件
ps: rpc是一个远程过程调用,使用nfs必须有rpc服务

3.NFS服务安装

1.环境准备

服务器系统角色外网IP内网IP
CentOS 7.9NFS服务端eth0:10.0.0.31eth1:172.16.1.31
CentOS 7.9 NFS客户端eth0:10.0.0.41eth1:172.16.1.41

2.关闭防火墙

systemctl disable firewalld.service
systemctl stop firewalld
sed -ri '/^SELINUX=/cSELINUX=Disabled' /etc/selinux/config
setenforce 0

3.安装nfs-server服务

yum -y install nfs-utils.x86_64

4.配置nfs服务

nfs服务程序的配置文件为/etc/exports,需要严格按照共享目录的路径 允许访问的NFS客户端(共享的参数)格式书写,定义许哟啊共享的目录与相应的权限

配置一:/test    *(ro)    --任何ip地址都能访问,但是权限为只读。
配置二:/test    172.16.1.0/24(ro)     --指定网段的地址都能访问,但是权限为只读。
配置三:/test 192.168.1.11(ro) 192.168.1.12(rw)   --第一个ip地址拥有只读权限,第二个ip地址拥有读写权限。

cat /etc/exports
/data 172.16.1.0/24(rw)

5.创建对用的共享目录

mkdir -p /data

6.启动服务并加入开机自启动,并检查是否注册信息成功

systemctl enable nfs
systemctl start nfs
rpcinfo -p

7.客户端安装rpcbind服务组件

yum -y install nfs-utils.x86_64

8.客户端通过命令查询服务端共享了那些目录

showmount -e 10.0.0.99

9.客户端挂载nfs存储

mount -t nfs 10.0.0.99:/data /mnt/

10.客户端检查挂载情况,并创建测试文件

df -h

4.NFS配置文件常用参数说明

rw 读写

ro只读

sync同步时将数据写入磁盘,保障数据不丢失

async同步时将数据优先写入内存在写入内存,这样效率更高,但数据容易丢失

root_squash当NFS客户端以root身份访问时,映射为NFS服务器的匿名用户

no_ root_squash当NFS客户端以root身份访问时,映射为NFS服务器的root用户

no_all_squash 无论NFS客户端是用什么身份登录,都不进行映射,注意此选项只对普通用户有效

all_squash无论NFS客户端使用什么账户访问,都映射为匿名用户

anonuid配置all_squash使用,指定NFS匿名用户的UID

anongid配置all_squash使用,指定NFS匿名用户的GID

评论已关闭

登录

忘记密码 ?

切换登录

注册

鲁ICP备2021019243号-1