Linux实战教学笔记22:企业级NFS网络文件共享服务无情站长

标签(空格分隔):Linux实战教学笔记-陈思齐

1)什么是NFS?

2)NFS在企业中的应用场景

3)企业生产集群为什么需要共享存储角色。

上图是企业生产集群没有NFS共享存储访问的示意图。下图是企业生产集群有NFS共享存储的情况

下图是企业工作中的NFS服务器与客户端挂载情况结构图

客户端挂载NFS后,本地挂载基本信息显示如下:

当访问程序通过NFS客户端向NFS服务端存取文件时,其请求数据流程大致如下:

1)首先用户访问网站程序,由程序在NFS客户端上发出存取NFS文件的请求,这时NFS客户端(即执行程序的服务器)的RPC服务(rpcbind服务)就会通过网络向NFS服务器端的RPC服务(rpcbind服务)的111端口发出NFS文件存取功能的询问请求。

2)NFS服务端的RPC服务(rpcbind服务)找到对应的已注册的NFS端口后,通知NFS客户端的RPC服务(rpcbind服务)

3)此时NFS客户端获取到正确的端口,并与NFSdaemon联机存取数据

4)NFS客户端把数据存取成功后,返回给前端访问程序,告知给用户存取结果,作为网站用户,就完成了一次存取操作。

因为NFS的各项功能都需要向RPC服务(rpcbind服务)注册,所以只有RPC服务(rpcbind服务)才能获取到NFS服务的各项功能对应的端口号(portnumber),PID,NFS在主机所监听的IP等信息,而NFS客户端也只能通过向RPC服务(rpcbind服务)询问才能找到正确的端口。也就是说,NFS需要有RPC服务(rpcbind服务)的协助才能成功对外提供服务。从上面的描述,我们不难推断,无论是NFS客户端还是NFS服务器端,当要使用NFS时,都需要首先启动RPC服务(rpcbind服务),NFS服务必须在RPC服务启动之后启动,客户端无需启动NFS服务,但需要启动RPC服务。

注意:NFS的RPC服务,在CentOS5.X下名称为portmap,在CentOS6.x下名称为rpcbind

要部署NFS服务,需要安装下面的软件包:

注意:有关RPC协议知识这里大家不必细究,详细说明可见本章结尾命令部分。

可使用如下命令查看默认情况下CentOS6.x里NFS软件的安装情况。

rpm-qanfs-utilsrpcbind

当不知道软件名字时候,可以用rpm-qa|grep-E"nfs-|rpcbind"来过滤包含在引号内的字符串。grep-E这里相当于egrep。grep,egrep这两个命令在运维工作中非常常用并且很好用。CentOS6.8默认没有安装NFS软件包,可以使用yum-yinstallnfs-utilsrpcbind命令来安装NFS软件。

root@nfs01~]#yum-yinstallnfs-utilsrpcbind...忽略软件显示信息...[root@nfs01~]#rpm-qanfs-utilsrpcbindnfs-utils-1.2.3-70.el6_8.2.x86_64rpcbind-0.2.0-12.el6.x86_64如果出现rpcbind和nfs-utils开头的两个软件包,表示NFS服务端软件安装完毕

查看某个命令属于已经安装的哪个rpm包

[root@nfs01backup]#whichrpcinfo#查询命令绝对路径/usr/sbin/rpcinfo[root@nfs01backup]#rpm-qf/usr/sbin/rpcinfo#查询某个命令属于已经安装的哪个rpm包rpcbind-0.2.0-12.el6.x86_64[root@nfs01backup]#rpm-qf`whichshowmount`nfs-utils-1.2.3-70.el6_8.2.x86_641.4.1.1启动rpcbind因为NFS及其辅助程序都是基于RPC(remoteProcedureCall)协议的(使用的端口为111),所以首先要确保系统中运行了rpcbind服务。启动的实际操作如下:

[root@nfs01backup]#/etc/init.d/rpcbindstatus#检查rpcbind服务状态rpcbind已停[root@nfs01backup]#/etc/init.d/rpcbindstart#启动rpcbind服务正在启动rpcbind:[确定][root@nfs01backup]#rpcinfo-plocalhost#查看NFS服务向rpc服务注册的端口信息,因为NFS还没有启动,因此,没有太多注册的端口影射信息。programversprotoportservice1000004tcp111portmapper1000003tcp111portmapper1000002tcp111portmapper1000004udp111portmapper1000003udp111portmapper1000002udp111portmapper#提示:111端口为rpcbind服务对外提供服务的主端口1.4.3.2启动NFS服务[root@nfs01backup]#/etc/init.d/nfsstart#启动nfs服务启动NFS服务:[确定]关掉NFS配额:[确定]启动NFSmountd:[确定]启动NFS守护进程:[确定]StartingRPCidmapd:[OK]特别提示:如果不启动rpcbind服务直接启动nfs服务的会启动时失败。

[root@nfs01~]#ps-ef|egrep"rpc|nfs"root21792007:3800:00:00[rpciod/0]rpc25601007:4200:00:00rpcbindroot26051007:4200:00:00rpc.rquotad#磁盘配额进程(remotequotaserver)root26101007:4200:00:00rpc.mountd#权限管理验证等(NFSmountdaemon)root26172007:4200:00:00[nfsd4]root26182007:4200:00:00[nfsd4_callbacks]root26192007:4200:00:00[nfsd]#nfs主进程root26202007:4200:00:00[nfsd]#nfs主进程root26212007:4200:00:00[nfsd]#nfs主进程root26222007:4200:00:00[nfsd]#nfs主进程root26232007:4200:00:00[nfsd]#nfs主进程root26242007:4200:00:00[nfsd]#nfs主进程root26252007:4200:00:00[nfsd]#nfs主进程root26262007:4200:00:00[nfsd]#nfs主进程root26571007:4200:00:00rpc.idmapd#namemappingdaemonroot27281525008:06pts/000:00:00egreprpc|nfsNFS服务的主要任务是共享文件系统数据,而文件系统数据的共享离不开权限问题。所以NFS服务器启动时最少需要两个不同的进程,一个是管理NFS客户端是否能够登入的rpc.nfsd主进程,另一个用于管理NFS客户端是否能够取得对应权限的rpc.mountd进程。如果还需要管理磁盘配额,则NFS还要再加载rpc.rquotad进程。

[root@nfs01~]#tail-3/etc/rc.local#startupnfsservicebychensiqiat20170309/etc/init.d/rpcbindstart/etc/init.d/nfsstart1.5实战配置NFS服务端1.5.1NFS服务端配置文件路径NFS服务的默认配置文件路径为:/etc/exports,并且默认是空的。

[root@nfs01~]#ls-l/etc/exports-rw-r--r--.1rootroot01月122010/etc/exports[root@nfs01~]#cat/etc/exports提示:NFS默认配置文件/etc/exports其实是存在的,但是没有内容,需要用户自行配置。

/etc/exports文件位置格式为:

NFS共享的目录NFS客户端地址1(参1,参2...)客户端地址2(参1,参2...)

NFS共享的目录NFS客户端地址(参1,参2...)

查看exports语法文件格式帮助的方法为:执行manexports命令,然后切换到文件结尾,可以快速看如下样例格式:

[root@nfs01~]#cat/etc/exports/data172.16.1.0/24(rw,sync)命令说明:/data:nfs的共享目录路径172.16.1.0/24:允许挂载我的共享目录的IP地址段(rw):可读可写(sync):实时同步修改配置文件以后,必须重启nfs服务

[root@nfs01~]#touch/mnt/atouch:无法创建"/data/a":权限不够1.5.4进行本地挂载测试[root@nfs01~]#mount172.16.1.31:/data/mnt提示:没有报错就说明挂载成功了。

[root@nfs01~]#ls/data#查看目录[root@nfs01~]#ls/mnt#查看目录[root@nfs01~]#touch/data/a#在data目录创建文件a[root@nfs01~]#ls/data#data共享目录有aa[root@nfs01~]#ls/mnt#mnt挂载目录也有aa[root@nfs01~]#touch/mnt/b#在mnt目录创建文件b[root@nfs01~]#ls/data#data共享目录有bab[root@nfs01~]#ls/mnt#mnt挂载目录也有bab提示:当配置文件exports里设定了(rw,rsync)后,表示目录可读写,并且是实时同步的。也就是说,在其中任意一个挂载目录里改变了里面的内容信息,那么所有挂载目录包含源共享目录的内容信息同步改变。

至此NFS服务器端配置完毕

[root@web01~]#yum-yinstallnfs-utils提示:不安装则不能挂载nfs共享目录

[root@web01~]#showmount-e172.16.1.31Exportlistfor172.16.1.31:/data172.16.1.0/241.6.4客户端挂载[root@web01~]#mount-tnfs172.16.1.31:/data/mnt提示:-tnfs可以省略

[root@web01~]#ls/mntab[root@web01~]#touch/mnt/chensiqi#创建文件[root@web01~]#ls/mntabchensiqi[root@web01~]#sshroot@172.16.1.31"ls/data"#远程看一下nfs服务器端共享目录root@172.16.1.31'spassword:abchensiqi1.6.6配置开机自动挂载nfs共享目录(/etc/fstab)配置客户端mount挂载命令使挂载开机自动执行,这里有两种方法,如下:

第一种方法:将挂载命令放在/etc/rc.local里缺点:偶尔开机挂载不上,工作中除了开机自启动配置,还要对是否挂载做监控

echo"mount-tnfs172.16.1.31:/data/mnt"第二种方法,将挂载命令放在/etc/fstab里

[root@web01~]#tail-1/etc/fstab172.16.1.31:/data/mntnfsdefaults00其实所谓配置方法,这里有一个误区,如下:

例如:

[root@web01~]#chkconfig--listnetfsnetfs0:关闭1:关闭2:关闭3:关闭4:关闭5:关闭6:关闭[root@web01~]#chkconfignetfson[root@web01~]#chkconfig--listnetfsnetfs0:关闭1:关闭2:启用3:启用4:启用5:启用6:关闭如此一来,我们也可以通过fstab进行开机挂载了nfs网络文件系统了。同学们可以自行仿照测试。

至此NFS客户端配置完毕

实例一:共享/data目录给10.0.0.0/24整个网段可读可写。

实例二:nfs服务器:172.16.1.31共享下面两个目录:/app/w:要求可读可写,同步数据,所有用户压缩为匿名用户/app/r:要求只读,同步数据,所有用户都压缩为匿名用户

客户端上面的要求:backup服务器,把nfs服务器的/app/r挂载到/data/r

web01服务器,把nfs服务器的/app/w挂载到/data/w

EXAMPLE#sample/etc/exportsfile/master(rw)trusty(rw,no_root_squash)/projectsproj*.local.domain(rw)/usr*.local.domain(ro)@trusted(rw)/home/joepc001(rw,all_squash,anonuid=150,anongid=100)/pub*(ro,insecure,all_squash)上述各个列的参数含义如下:

1)(rw,sync):可读可写,同步传输2)(ro,async):只读,异步传输。

详细说明:rw或者ro,主要控制的是所有客户端用户(包含root)的读写权限。如果设置成ro,就算root也只有读权限。它是NFS权限设置的第一道总闸阀门。sync:同步传输,实时进行。async:异步传输:攒一会在传输。

3)root_squash:将root账户在共享目录里的身份降低为匿名者(默认nfsnobody)身份4)no_root_squash:不降低root账户在共享目录的身份,身份还是root5)all_squash:将所有访问用户在共享目录里的身份都降低为匿名者(默认nfsnobody)身份

详细说明:

6)anonuid和anongid:指定NFS虚拟账户的uid或gid

1)NFS客户端挂载后,往共享目录写入数据时卡住了2)NFS服务端,重启restart服务,客户端如果写入数据卡住了。

通过如下命令在NFS客户端测试挂载获取的默认挂载参数:

[root@backup~]#grepmnt/proc/mountsnfs01:/data//mntnfs4rw,relatime,vers=4,rsize=131072,wsize=131072,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=172.16.1.41,minorversion=0,local_lock=none,addr=172.16.1.3100NFSClientmount挂载参数列表

mount-o参数对应的选项:

|参数|参数意义|系统默认值||suid;nosuid|当挂载的文件系统上有任何SUID的程序时,只要使用nosuid就能够取消设置SUID的功能。|suid||--|--|--||rw;ro|可以指定文件系统是只读(ro)或可写(rw)|rw||dev;nodev|是否可以保留装置文件的特殊功能?一般来说只有/dev才会有特殊的装置,因此可以选择nodev|dev||exec;noexec|是否具有执行文件的权限?如果想要挂载的仅是普通资源数据区(例如:图片,附件),那么可以选择noexec|exec||user;nouser|是否允许用户进行文件的挂载与卸载功能?如果要保护文件系统,最好不要提供用户进行挂载与卸载|nouser||auto;noauto|这个auto指的是“mount-a”时会不会被卸载的项目,如果不需要这个分区随时被挂载,可以设置为noauto|auto|

某网友问:在企业生产环境中,NFS客户端挂载有没有必须要加的参数,比如,加noexec,nosuid,nodev,bg,soft,rsize,wsize等参数。

解答:这个问题属于mount挂载优化内容(有些参数也适合其他文件系统),一般来说要适当加挂载参数,但是,最好是先做好测试,用数据来说话,才能更好的确定到底是挂载还是不挂载。

在企业工作场景,一般来说,NFS服务器共享的只是普通静态数据(图片,附件,视频),不需要执行suid,exec等权限,挂载的这个文件系统只能作为数据存取之用,无法执行程序,对于客户端来讲增加了安全性,例如:很多木马篡改站点文件都是由上传入口上传的程序到存储目录,然后执行的。

因此在挂载的时候,用下面的命令很有必要:

mount-tnfs-onosuid,noexec,nodev,rw172.16.1.31:/data/mnt

mount-tnfs-onoatime,nodiratime172.16.1.31:/data/mnt

2)安全加优化的挂载方式如下:

mount-tnfs-onosuid,noexec,nodev,noatime,nodiratime,intr,rsize=131072,wsize=131072172.16.1.31:/data/mnt

3)默认的挂载方式如下:

mount-tnfs172.16.1.31:/data/mnt

如果是本地文件系统,使用如下命令:

mount/dev/sdb1/mnt-odefaults,async,noatime,data=writeback,barrier=0

注意:如果本地文件系统挂载时,如果加入nodiratime会报错

在CentOS6.56.66.8等服务器端和客户端环境下,可使用如下命令参数:

mount-tnfs-onoatime,nodiratime,nosuid,noexec,nodev,rsize=131072172.16.1.31:/data/mnt

经过实际测试,CentOS6.66.8默认的挂载参数性能还是不错的。

注意:非性能的参数越多,速度可能会变慢

下面是优化选项说明:

NFS服务可以让不同的客户端挂载使用同一个共享目录,也就是将其作为共享存储使用,这样可以保证不同节点客户端数据的一致性,在集群架构环境中经常会用到。如果是windows和Linux混合环境的集群系统,可以用samba来实现。

优点:

局限:

应用建议:

大中小型网站(参考点2000万/日PV以下)线上应用,都有用武之地。门户站也会有应用,生产场景应该多把数据的访问往前推,即尽量把静态存储里的资源通过CDN或缓存服务器提供服务,如果没有缓存服务或架构不好,存储服务器数量再多也是扛不住压力的,而且用户体验会很差。

NFS客户端实现fstab开机自启动挂载

现象:nfs开机挂载卸载了/etc/fstab中,结果无法开机自动挂载nfs

解答:1,nfs客户对岸挂载命令放在/etc/rc.local实现自动挂载2,开机自启动netfs服务,然后才能实现fstab的开机自动挂载nfs文件系统(linux开机时在加载网络之前就会加载/etc/fstab)

1,fstab文件被错误修改,导致在开机启动linux时候出现错误,提示让你恢复系统设置。

4)退出/etc/fstab。在命令行输入命令

mount-oremount,rw/的意思是将整个根目录已可读可写rw的方式重新挂载一边remount

5)我们再打开/etc/fstab就会发现只读模式没了

6)赶紧修改fstab然后重启服务器。

2,光盘救援模式恢复(用linux光盘修复系统)1)调整开机bios设置光盘启动,然后挂载光盘

THE END
1.十大房产网有哪些网站房地产信息网房产网站哪个靠谱乐有家leyoujia、乐居、房多多、天猫好房等,该名录是以大数据算法、人工智能、客观真实公正统计计算为基础,通过广泛收集整理汇编全球权威资料,综合多家机构媒体和网站公布的排行榜单数据,结合专业独立的调研测评以及人为根据市场和参数条件变化的分析研究,最终基于网络投票、评价评论、点赞口碑打分等因素在网站显示的结果https://www.cnpp.cn/china/list_7040.html
2.看房排行榜前十名APP推荐看房排行榜前十名下载通过查看看房app排行榜前十名,您可以更好地了解市场上的主流app,从而更有针对性地选择适合自己的看房工具。无论您是在寻找购房信息、租房信息还是投资信息,一款好的看房app都能为您提供便捷、准确的服务,帮助您轻松实现自己的置业梦想。 No.1 链家 生活休闲|158.51MBhttps://www.wandoujia.com/bangdan/1289049/
3.买房子app排行榜前十名偏玩手游盒子分享十大买房子app排行榜前十名手机应用,编辑为您推荐手机买房子app排行榜第一名到前5名到前十名的应用。找买房子app有哪些、买房子app哪个好用,上偏玩手游盒子https://m.pianwan.com/s/zj-21322410
4.开发者发展9心智模式如果你看过一些成功者早年的奋斗故事,你会听到他们常会说到这样一个词:“第一桶金”。实际上,很多年轻人买房子首付的钱比这些人所说的“第一桶金”要多 得多,为什么不可以拿这些钱去做更重要的事情呢?举个例子,我在深圳,想明白这些之前也打算买房子,我看中的房子200万,首付40万,我打算好好奋斗2 年然后就https://blog.csdn.net/weixin_30340745/article/details/97503213
5.买房app软件哪个好?买房app下载买房软件下载买房app可以为你提供购买房子最靠谱的信息,现在买房已经成为当今社会的一种潮流,因此越来越多的人因为买房而烦恼,买房软件也就随之越来越多,有了它,不管你在哪里,都能轻松查看最新的房产资讯信息,还能根据你的情况自动的筛选适合你的房屋信息,那么买房app哪个好呢?今天IT猫扑小编为大家提供几款不错的买房app,比如搜https://www.itmop.com/key/maifangapp
6.买房子的app哪个好口碑好的买房APP什么平台看房买房真实这期小编给大家带来几款非常好用的买房子软件,软件里面功能非常齐全,而且资源丰富,各种类型的房子都能在这里找到,满足不同用户对房子需求,给用户带来最优质的使用体验,软件每天都会更新大量的房产资源,有需要的小伙伴快来下载看看吧。http://www.ishaohuang.com/s/mfzdrjngh/
7.2024年我要买房子,用哪款免费房贷计算器软件比较好?软件介绍:她好房贷计算器,一款比较好用的房贷计算工具。贷款总额的计数单位为万,基准利率为年利率,利率折扣为打折 立即查看 5.明升买房按揭计算器 1.0 明升房贷按揭计算器是一款专业好用的房贷计算器,具有强大的功能和简单的操作。该软件能够快速准确地计算按揭金额,并比较等额法和递减法之间的差价。用户可以使用该软https://app.zol.com.cn/jiqiao/162387.html
8.看房软件app哪个好看房软件哪个比较靠谱好用的看房软件排行榜看房软件目前有很多,要说看房软件哪个比较靠谱,面对市场众多看房软件,很难推荐谁更好。但是靠谱的看房APP,一般都会具有如下的特点,因此能够满足如下要求的看房软件,一般都比较靠谱。 1、房源资源多 看房软件靠不靠谱,首先要看软件上可供选择的房源是否多,一个靠谱的看房软件,一般会为用户提供丰富的房产资源,可供用户https://www.qizuang.com/gonglue/xinwen/101369.html
9.看房子的软件哪个最好价格真实便宜最好的买房看房app排行榜365淘房网app是一款最好价格真实看房子的软件,提供全面真实的房源信息,包括新房、二手房出售和租房等,涵盖各种户型、价格、地段等,满足用户不同的购房需求。在本站下载365淘房网app后还会智能的为用户推荐最合适的房源,节省用户的时间和精力。 以上就是小编汇总的看房子的软件哪个最好价格真实,便宜最好的买房看房apphttps://www.win7zhijia.cn/jiaocheng/azzx_59348.html
10.买房子的app哪个好看房app排行榜目前可以买房的软件盘点买房子的app哪个好 (共9款) 买房子的app不仅提供了一个全新的购房平台,更改变了传统购房模式的繁琐与不便,这类软件以其独特的在线看房功能,让购房者无需走出家门,就能详细了解房源的每一个细节,软件界面简洁明了,操作便捷,用户只需通过几次点击,就能浏览到全国各地的房源信息,并且根据喜好选择不同的房屋进行交流https://m.ali213.net/tag/mfzdappngh.html
11.同城租房哪个软件好真实靠谱的同城租房软件大全同城租房哪个软件好,精挑细选了多款优质正规的租房软件,支持短租、长租等多种租赁方式,汇聚了海量真实的房源信息,让你不用中介费租房,直接与房东进行交流。真实靠谱的同城租房软件大全还有着极速找房服务,根据多种条件进行房源筛选。有需要的小伙伴就来选择你需要的同https://m.xyzs.com/special/tczf/
12.房产评估软件哪个好?房子价格评估最好的app房子评估用什么软件?房产评估软件哪个最好?哪个软件可以评估房子?小编今天就为大家整理了一些非常好用的手机评估房子的app,包括有云查勘、房易勘、易勘、易评、V估价、智慧估价、寓估、房产专家、每日评估、易房易估、房地产估价、房价管家、蜗牛有房网、咚咚房产管家等,欢迎有需要的朋友到绿色资源网下载使用! http://www.downcc.com/k/fangchanpingguapp/