Linux架构之NFS共享存储1

第35章 NFS共享存储

 

35.1 NFS基本概述

NFS是Network File System的缩写及网络文件系统。NFS主要功能是通过局域网络让不同的主机系统之间可以共享文件或目录。 常见的文件服务器有NFS、GFS(gluster fs)、FastDFS NFS系统和Windows网络共享、网络驱动器类似, 只不过windows用于局域网, NFS用于企业集群架构中, 如果是大型网站,会用到更复杂的分布式文件系统FastDFS、glusterfs、HDFS、ceph。

35.1.1 为什么要使用共享存储

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

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

35.1.2 NFS应用场景

实际应用中,共享存储是重要的组成部分。如果没有共享存储,网站就变成了单点的架构

应用场景1——集群没有共享存储

1、A用户上传图片经过负载均衡,负载均衡将上传请求调度至WEB1服务器上。

2、B用户访问A用户上传的图片,此时B用户被负载均衡调度至WEB2上,因为WEB2上没有这张图片,所以B用户无法看到A用户传的图片。

 

应用场景2——集群有共享存储

1、A用户上传图片无论被负载均衡调度至WEB1还是WEB2, 最终数据都被写入至共享存储。

2、B用户访问A用户上传图片时,无论调度至WEB1还是WEB2,最终都会上共享存储访问对应的文件,这样就可以访问到资源了。

 

35.1.3 NFS实现原理

1、假如访问的是NFS客户端,先调用不同的函数(例如Read()函数,读功能、Write()函数,写功能、Create()函数,创建功能、Remove()函数、删除功能、Rename()函数,重命名功能)对数据进行处理。

2、调用完函数后,首先NFS客户端会建立TCP连接,通过TCP/IP的方式传递给NFS服务端,连上远端的服务器。

3、接着NFS服务端接收到请求后,NFS服务器会做3步系列操作(环环相扣,先映射端口,然后验证是否能登录服务器,最后验证文件使用权限),如下: 首先,调用portmap进程进行端口映射。

接着,调用Rpc.nfsd进程来验证NFS客户端是否拥有对应的权限连接NFS服务端。

最后,调用Rpc.mount进程来验证客户端是否拥有对应的文件使用权限;

4、idmap进程实现用户映射和压缩

5、最后NFS服务端会将对应请求的函数转换为本地能识别的命令,传递至内核,由内核驱动硬件。

 

35.2 NFS共享实战
35.2.1环境准备
主机名角色外网IP内网IP
backupnfs的客户端10.0.0.41172.16.1.41
nfsnfs的服务端10.0.0.31172.16.1.31
web01nfs的客户端10.0.0.7172.16.1.7
35.2.2 服务端nfs01  关闭防火墙和selinux防火墙
#1.关闭Firewalld防火墙
[root@nfs ~]# systemctl disable firewalld
[root@nfs ~]# systemctl stop firewalld

#2.关闭selinux防火墙
[root@nfs ~]# sed -ri '#^SELINUX=#cSELINUX=Disabled' /etc/selinux/config
[root@nfs ~]# setenforce 0
35.2.3  服务端nfs01  安装rpcbind服务,服务端和客户端都要安装
#服务端nfs安装rpcbind服务
[root@nfs ~]# yum -y install nfs-utils rpcbind

#客户端web01安装rpcbind服务
[root@web01 ~]# yum -y install nfs-utils rpcbind

#客户端backup安装rpcbind服务
[root@backup ~]# yum -y install nfs-utils rpcbind
35.2.4  服务端nfs01   启动rpcbind
#服务端nfs启动rpcbind
[root@nfs01 ~]# systemctl start rpcbind

#客户端web01启动rpcbind
[root@web01 ~]# systemctl start rpcbind

#客户端backup启动rpcbind
[root@backup ~]# systemctl start rpcbind
35.2.5  服务端nfs01    开机自启rpcbind
#服务端nfs设置开机自启rpcbind
[root@nfs01 ~]# systemctl start rpcbind

#客户端web01设置开机自启rpcbind
[root@web01 ~]# systemctl start rpcbind

#客户端backup设置开机自启rpcbind
[root@backup ~]# systemctl start rpcbind
35.2.6   服务端nfs01   检查
[root@web01 ~]ll /etc/systemd/system/multi-user.target.wants/
[root@backup ~]# ll /etc/systemd/system/multi-user.target.wants/
[root@nfs01 ~]# ll /etc/systemd/system/multi-user.target.wants/

#检测端口和进程
[root@nfs ~]# ps -ef | grep rpc
rpc       9152     1 0 21:42 ?       00:00:00 /sbin/rpcbind -w
root       9173   8900 0 21:42 pts/0   00:00:00 grep --color=auto rpc
35.2.7   服务端nfs01    配置服务端配置文件
#统一客户端与服务端的用户
#服务端
[root@nfs01 ~]# vim /etc/exports
/data 172.16.1.0/24(rw,sync,all_squash,anonuid=666,anongid=666)

#服务端,创建/data目录
[root@nfs ~]# mkdir /data

#服务端,创建www用户和组(所有客户端)
[root@nfs ~]# groupadd www -g 666
[root@nfs ~]# useradd www -u 666 -g 666

#服务端,授权/data目录给www用户
[root@nfs ~]# chown -R www.www /data

#服务端,启动rpcbind服务和重启rpcbind nfs-server服务
[root@nfs ~]# systemctl start rpcbind
[root@nfs ~]# systemctl restart rpcbind nfs-server
35.2.8 部署客户端 web01
#创建目录
[root@web01 ~]# mkdir wxg1
35.2.9 客户端web01,查看可挂载点
[root@web01 ~]# showmount -e 172.16.1.31
Export list for 172.16.1.31:
/data 172.16.1.0/24
35.2.10 客户端web01,挂载共享目录
[root@web01 ~]# mount -t nfs 172.16.1.31:/data /root/wxg1

#测试
[root@web01 ~]# echo 123 > wxg1/1.txt

#可以看到nfs服务端上已存在1.txt文件
[root@nfs ~]# ll /data
total 4
-rw-r--r-- 1 www www 4 Aug 6 22:06 1.txt
35.2.11 客户端backup,测试--文件共享
#两台客户端安装httpd服务
[root@web01 ~]# yum install -y httpd php
[root@backup ~]# yum install -y httpd php

#启动httpd服务
[root@backup ~]# systemctl start httpd

[root@backup ~]# rpm -ql httpd #查看httpd相关目录在哪儿
[root@backup ~]# cd /var/www/html #进入html目录

#接下来步骤是把目标压缩包上传至Linux系统(直接拖进去,此处省略具体命令)

#由于系统中没有unzip解压命令软件包,需要事先下载安装
[root@backup html]# yum install -y unzip
[root@backup html]# unzip windows-提交作业代码.zip #解压目标压缩包
[root@backup html]# systemctl start httpd #启动httpd服务

#修改配置文件
[root@backup html]# vim upload_file.php
修改保存路径,
vim [root@backup html]# vim upload_file.php
$wen="/var/www/html/tupian"; :wq 保存退出
[root@backup html]# systemctl restart httpd #重启httpd服务

#创建目录并授权
[root@backup html]# mkdir tupian

#修改httpd的配置文件
vim /etc/httpd/conf/httpd.conf
User www
Group www

[root@backup html]# systemctl restart httpd

[root@backup html]# mount -t nfs 172.16.1.31:/data /var/www/html/tupian

#创建www用户和组(客户端)
[root@backup html]# groupadd www -g 666
[root@backup html]# useradd www -u 666 -g 666

#重新授权
[root@backup html]# chown -R www.www /var/www/html/tupian

#重启httpd服务
[root@backup html]# systemctl restart httpd

打开浏览器,输入10.0.0.41,可以看到考试文件上传页面,上传一个文件

 

 
#检测是否成功
---客户端backup
[root@backup html]# ll tupian/
total 24
-rw-r--r-- 1 www www 19505 Aug 6 22:36 1_a1_a3.jpg
-rw-r--r-- 1 www www     4 Aug 6 22:06 1.txt


---服务端
[root@nfs ~]# ll /data
total 24
-rw-r--r-- 1 www www 19505 Aug 6 22:36 1_a1_a3.jpg
-rw-r--r-- 1 www www     4 Aug 6 22:06 1.txt
#另一台客户端web01重复上述操作
#启动httpd服务
[root@web01 ~]# systemctl start httpd

[root@web01 ~]# rpm -ql httpd #查看httpd相关目录在哪儿
[root@web01 ~]# cd /var/www/html #进入html目录

#接下来步骤是把目标压缩包上传至Linux系统(直接拖进去,此处省略具体命令)

#由于系统中没有unzip解压命令软件包,需要事先下载安装
[root@web01 html]# yum install -y unzip
[root@web01 html]# unzip windows-提交作业代码.zip
#解压目标压缩包
[root@web01 html]# systemctl start httpd #启动httpd服务
#修改配置文件
[root@web01 html]# vim upload_file.php
修改保存路径,
[root@web01 html]# vim upload_file.php
$wen="/var/www/html/tupian"; :wq 保存退出
[root@web01 html]# systemctl restart httpd #重启httpd服务


#创建目录并授权
[root@web01 html]# mkdir tupian

#修改httpd的配置文件
vim /etc/httpd/conf/httpd.conf
User www
Group www

[root@web01 html]# systemctl restart httpd

[root@web01 html]# mount -t nfs 172.16.1.31:/data /var/www/html/tupian

#创建www用户和组(客户端)
[root@web01 html]# groupadd www -g 666
[root@web01 html]# useradd www -u 666 -g 666

#重新授权
[root@web01 html]# chown -R www.www /var/www/html/tupian

#重启httpd服务
[root@web01 html]# systemctl restart httpd

打开浏览器,输入10.0.0.7,可以看到考试文件上传页面,上传一个文件

 

 

#检测是否成功
---客户端backup
[root@backup html]# ll tupian/
total 24
-rw-r--r-- 1 www www 19505 Aug 6 22:36 1_a1_a3.jpg
-rw-r--r-- 1 www www     4 Aug 6 22:06 1.txt


---服务端
[root@nfs ~]# ll /data
total 24
-rw-r--r-- 1 www www 19505 Aug 6 22:36 1_a1_a3.jpg
-rw-r--r-- 1 www www     4 Aug 6 22:06 1.txt

然后在浏览器输入网址,可以看到上传的图片,表明目录是共享的。

 

 

 

 

 

 

 

转载于:https://www.cnblogs.com/dabai-wang09/p/11312537.html

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合;、下 4载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合;、下载 4使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合;、下载 4使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
学校大创竞赛管理系统,学生上报项目内容,学院、教务处、评审专家评审。SpringBoot、SpringCloud、SpringSecurity、redis、Mysql、swagger、fastdfs、maven、vue、webpack.zip项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松复刻,拿到资料包后可轻松复现出一样的项目,本人系统开发经验充足(全领域),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助。 【资源内容】:包含完整源码+工程文件+说明(如有)等。答辩评审平均分达到96分,放心下载使用!可轻松复现,设计报告也可借鉴此项目,该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的。 【提供帮助】:有任何使用问题欢迎随时与我联系,我会及时解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 下载后请首先打开README文件(如有),项目工程可直接复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用。
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值