版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第4章
NFS存储集群4.1NFS介绍4.2
NFS系统原理4.3NFS存储实战训练4.4
NFS共享数据实时推送备份案例熟悉NFS服务了解NFS服务的工作原理掌握NFS服务的构建方法掌握部署NFS存储集群的方法引言在企业生产集群架构中,Web集群对外提供服务,但是随着业务的发展,用户的增加,网站功能的不断扩展完善,随之产生的视频、图片、附件等静态资源文件占用硬盘资源的空间也越来越大。比如大众点评或者微信中“晒”的朋友圈,会产生用户头像以及用户发布的图片、视频等大量文件,这就需要使用网络文件共享服务解决这一问题。第3章学习的数据库实现的是数据存储,无法实现文件存储。本章将讲解NFS共享存储集群相关知识。4.1NFS介绍存储类型NFS简介NFS在集群中的位置NFS共享存储的优点存储类型一般为3种,分别为直连式存储(DAS,DirectAttachedStorage)、网络附加存储(NAS,NetworkAttachedStorage)和存储区域网络(SAN,StorageAreaNetwork)。直连式存储是指直接连接主机系统的存储设备,直连式存储设备一般采用SCSI连接服务器主机,比如磁盘阵列(RAID,RedundantArraysofIndependentDisks)、磁盘簇(JBOB,JustaBunchofDisks)、本地硬盘等。网络附加存储是指通过网络拓扑结构添加到主机上的存储设备,常用于文档共享、图片共享、视频共享等,如今云计算发展迅速,一些NAS厂商也相继推出云存储功能。存储区域网络是指使用高速网络或者子网络连接存储阵列和服务器主机,最后形成一个专用的存储网络,可轻易实现物理分离的存储。4.1
NFS介绍NFS网络文件系统在企业级集群架构中,通常用于存储共享视频、图片、附件等静态资源文件,比如博客的用户头像、发布的图片、视频等网站用户上传的文件,都会放在NFS共享中。将NFS服务端需要共享的目录挂载到NFS客户端本地系统中。当NFS客户端(应用服务器,如Web服务器节点)通过远程访问NFS服务端共享的目录时,就像访问本地的磁盘分区或者目录一样。在第2章Web集群中可以了解,当用户登录论坛网站发布图片等文件时,这些文件数据是一般上传到某台Web服务器的upload文件夹下,也就是本地的文件夹下。当用户下次继续访问这个图片时,可能被调度到其他Web服务器上,也就无法访问到该图片了。4.1
NFS介绍当企业集群中没有NFS文件共享存储式时,用户访问图片的流程如图所示。4.1
NFS介绍用户A上传图片到Web1服务器,用户B发送访问图片的请求,该请求被分发至Web2,由于Web2没有A用户上传的图片,这就造成B用户无法看到A用户上传的图片。为了解决这个问题,可以在Web服务器集群后端搭建NFS共享存储服务器,使得用户上传图片都会存储到共享存储上,如此一来,所有用户访问图片会在共享存储上查找,具体如图所示。4.1
NFS介绍NFS共享存储的优点如下所示。(1)部署简单、快速,且易于后期维护。(2)实现了透明文件的访问以及数据传输,数据的可靠性高。(3)占用更少的本地磁盘空间,不用改变已有的工作环境就可以实现新资源和文件的扩充。(4)性能高,数据可靠性高,配置灵活,易于掌握。4.2NFS系统原理NFS系统挂载认识RPCNFS工作原理在NFS服务器端设置一个共享目录/video,对NFS服务端有权限访问的客户端可将共享目录/video挂载在客户端本地的目录/video(自定义目录)中。挂载完成后,客户端就可以访问到NFS服务端共享目录中的所有数据。需要注意的是,NFS服务端可以设置客户端访问的权限,若配置客户端只读,则客户端只能读取共享文件内容;若配置客户端可读可写,则客户端就能读取和添加共享文件的内容。NFS服务器与客户端挂载的结构图,如图所示。4.2
NFS系统原理4.2.1
NFS系统挂载由于NFS支持很多功能,且不同的功能需要启动不同的端口,因此端口无法固定,产生NFS服务器端无法与客户端通信的问题。使用RPC服务记录数据传输端口即可解决这一问题,NFS本身并没有提供数据传输的协议和功能,数据传输基于RPC(RemoteProcedureCallProtocol远程过程调用)协议实现。4.2
NFS系统原理4.2.2
认识RPC在NFS工作流程中,RPC服务主要用于记录NFS各功能对应的端口信息,然后将该信息传输在服务端和客户端之间。NFS工作流程图如图所示。NFS工作流程如下所示。(1)在启动NFS服务之前,需要先启动RPC服务。(2)RPC采用C/S模式,当NFS服务开启后,会随机地开启一些端口,并主动向RPC注册这些端口的相关信息,RPC则会记录下相关端口及功能信息。(3)这时,RPC会开启固定的111端口等待客户端提交的请求,并把记录的NFS服务端的端口信息发送给客户端,这样客户端就能够与服务端正常通信了。需要注意的是,若RPC重新启动,那么已经注册好的端口信息也会丢失。4.2
NFS系统原理4.2.2
认识RPC首先在NFS服务器端启动RPC服务,并开启111端口。然后NFS服务器端启动NFS服务,并向RPC注册端口信息。客户端启动RPC服务,向服务端的RPC服务请求服务端的NFS端口。服务端的RPC服务反馈NFS端口信息给客户端。NFS的工作原理流程简图如图所示。4.2
NFS系统原理4.2.3
NFS工作原理对NFS工作原理的流程图做大致的介绍。(1)用户访问网站业务程序,该程序由NFS客户端发送存取NFS共享文件的请求,然后NFS客户端的RPC服务通过网络向NFS服务端的RPC服务的111端口发送该请求。(2)NFS服务端的RPC服务通过已注册的端口信息查找NFS端口,然后通知NFS客户端的RPC服务。(3)NFS客户端收到正确的端口信息后,开始与NFSdeamon通信并存取文件数据。(4)NFS客户端成功获取文件数据后,然后返回给前端访问程序,向用户显示读取结果,到此为止,完成了一次存取操作。4.2
NFS系统原理4.2.3
NFS工作原理NSF主要文件结构及说明如下所示。(1)/etc/exports:NFS的主配置文件。(2)/usr/sbin/exportfs:用于维护NFS共享资源的配置文件,常在NFS服务端进行配置,如重新分享/etc/exports更新的目录资源,把NFS服务端共享的目录卸载或重新分享等。(3)/usr/sbin/showmount:客户端查看NFS服务端共享出来的目录资源。(4)/var/lib/nfs/*tab:/var/lib/nfs/目录存放了NFS服务器的登录文件。xtab文件是NFS的日志文件,主要记录了NFS服务器的相关客户端数据;etab文件主要记录了NFS分享出来的目录的完整权限设定值。4.2
NFS系统原理4.2.3
NFS工作原理4.3NFS存储实战训练理NFS存储实验准备服务端配置客户端配置前端测试本章之前的内容已经讲解了NFS相关知识,本节将讲解为集群中的WebServer配置后端存储NFS服务。NFS存储案例中服务器部署的结构如图所示。4.3
NFS存储实战训练4.3.1
NFS存储实验准备准备4台VM虚拟机(或者物理服务器),一台作为存储端(nfs-server),三台作为Web集群,具体如表所示。4.3
NFS存储实战训练4.3.1
NFS存储实验准备服务器系统IP主机名CentOS7.6x86_6428nfs-serverCentOS7.6x86_6429web1CentOS7.6x86_6430web2CentOS7.6x86_6431web3说明:提前关闭防火墙及SELinux(过程不再赘述)1.在实验开始前,建议为这4台服务器互相做域名解析,便于通信。域名解析可以使用修改本地hosts文件的方式,也可以使用DNS服务器解析。这里采取修改hosts文件的方式,分别在4台服务器的/etc/hosts文件中添加以下代码。2.为了保证各服务器的时间一致,对所有服务器进行时间校对。28nfs-server29web130web231web3[root@qfedu~]#ntpdate-u14.3
NFS存储实战训练4.3.1
NFS存储实验准备做完域名解析之后,可以使用ping命令进行检测,若无丢包现象,说明解析成功。为了便于读者观察实验操作对象,这里分别将4台服务器的主机名修改为nfs-server、web1、web2、web3。在NFSServer端使用NFS之前,首先了解安装NFS所需要的软件。配置NFS服务器需要有两个软件,分别是rpcbind和nfs-utils,具体如下所示。rpcbind:RPC的主程序NFS其实可以理解为一个RPC服务,在启动任何一个RPC服务之前,需要做好port(端口)的对应功能的工作,而这个工作是rpcbind这个服务来完成的。由此可知,在启动NFS服务之前需要先启动rpcbind程序。nfs-utils:NFS主程序提供了rpc.nfsd和rpc.mountd这两个NFSdaemons,以及其他相关文件和说明文件、执行文件。4.3
NFS存储实战训练4.3.2
服务端配置1.查看NFS软件包。3.下载软件。[root@nfs-server~]#rpm-qa|egrep"nfs|rpcbind"[root@nfs-server~]#yum-yinstallnfs-utilsrpcbind……省略部分代码……已安装:nfs-utils.x86_641:1.3.0-0.68.el7.2rpcbind.x86_640:0.2.0-49.el7完毕!4.3
NFS存储实战训练4.3.2
服务端配置2.CentOSrelease7是最小化安装,默认情况下没有安装nfs和rpcbind,此处使用Yum搜寻安装包是否存在。[root@nfs-server~]#yumsearchnfs-utilsrpcbind4.再次使用rpm命令查看NFS软件的安装情况。5.查看rpcbind启动状态。[root@nfs-server~]#rpm-qa|egrep"nfs|rpcbind"rpcbind-0.2.0-49.el7.x86_64libnfsidmap-0.25-19.el7.x86_64nfs-utils-1.3.0-0.68.el7.2.x86_64[root@nfs-serverwebdata]#systemctlstatusrpcbind●rpcbind.service-RPCbindserviceLoaded:loaded(/usr/lib/systemd/system/rpcbind.service;enabled;vendorpreset:enabled)Active:inactive(dead)4.3
NFS存储实战训练4.3.2
服务端配置软件安装完成。6.启动rpcbind服务。7.设置开机自启。[root@nfs-serverwebdata]#systemctlstartrpcbind[root@nfs-serverwebdata]#systemctlstatusrpcbind●rpcbind.service-RPCbindserviceLoaded:loaded(/usr/lib/systemd/system/rpcbind.service;enabled;vendorpreset:enabled)Active:active(running)since二2022-02-1510:33:04CST;35sagoProcess:68570ExecStart=/sbin/rpcbind-w$RPCBIND_ARGS(code=exited,status=0/SUCCESS)MainPID:68571(rpcbind)CGroup:/system.slice/rpcbind.service└─68571/sbin/rpcbind-w2月1510:33:04nfs-serversystemd[1]:StartingRPCbi...2月1510:33:04nfs-serversystemd[1]:StartedRPCbin...Hint:Somelineswereellipsized,use-ltoshowinfull.[root@nfs-serverwebdata]#systemctlenablerpcbind4.3
NFS存储实战训练4.3.2
服务端配置8.查看111端口是否开启。9.查看NFS服务向rpc服务注册的端口信息。[root@nfs-serverwebdata]#lsof-i:111COMMANDPIDUSERFDTYPEDEVICESIZE/OFFNODENAMErpcbind68571rpc6uIPv453734870t0UDP*:sunrpcrpcbind68571rpc8uIPv453734890t0TCP*:sunrpc(LISTEN)rpcbind68571rpc9uIPv653734900t0UDP*:sunrpcrpcbind68571rpc11uIPv653734920t0TCP*:sunrpc(LISTEN)[root@nfs-serverwebdata]#netstat-lntup|greprpcbindtcp00:111:*LISTEN68571/rpcbindtcp600:::111:::*LISTEN68571/rpcbindudp00:111:*68571/rpcbindudp00:906:*68571/rpcbindudp600:::111:::*68571/rpcbindudp600:::906:::*68571/rpcbind[root@nfs-serverwebdata]#rpcinfo-plocalhostprogramversprotoportservice1000004tcp111portmapper1000003tcp111portmapper1000002tcp111portmapper1000004udp111portmapper1000003udp111portmapper1000002udp111portmapper4.3
NFS存储实战训练4.3.2
服务端配置rpcbind服务对外提供服务的主端口即111端口,由于NFS服务还未启动,上述命令返回的结果显示的端口映射信息较少。10.启动nfs-server服务之前,首先查看nfs-server启动状态。11.启动nfs-server服务。[root@nfs-serverwebdata]#systemctlstatusnfs-server●nfs-server.service-NFSserverandservicesLoaded:loaded(/usr/lib/systemd/system/nfs-server.service;disabled;vendorpreset:disabled)Active:inactive(dead)[root@nfs-serverwebdata]#systemctlstartnfs-server[root@nfs-serverwebdata]#systemctlstatusnfs-server●nfs-server.service-NFSserverandservices……Active:active(exited)since二2022-02-1511:07:37CST;7sago
……[root@nfs-serverwebdata]#systemctlenablenfs-server4.3
NFS存储实战训练4.3.2
服务端配置12.nfs-sever启动成功后,再次查看NFS服务向RPC注册的端口信息。[root@nfs-server~]#rpcinfo-plocalhostprogramversprotoportservice1000004tcp111portmapper1000003tcp111portmapper1000002tcp111portmapper1000004udp111portmapper1000003udp111portmapper1000002udp111portmapper1000241udp57033status1000241tcp42941status1000051udp20048mountd1000051tcp20048mountd1000052udp20048mountd1000052tcp20048mountd1000053udp20048mountd1000053tcp20048mountd1000033tcp2049nfs1000034tcp2049nfs1002273tcp2049nfs_acl1000033udp2049nfs1000034udp2049nfs1002273udp2049nfs_acl1000211udp46639nlockmgr1000213udp46639nlockmgr1000214udp46639nlockmgr1000211tcp34798nlockmgr1000213tcp34798nlockmgr1000214tcp34798nlockmgr4.3
NFS存储实战训练4.3.2
服务端配置13.查看NFS服务相关进程。[root@nfs-server~]#ps-ef|egrep"rpc|nfs"rpc685711010:33?00:00:00/sbin/rpcbind-wrpcuser994531011:07?00:00:00/usr/sbin/rpc.statd#检查文件一致性root994712011:07?00:00:00[rpciod]root994831011:07?00:00:00/usr/sbin/rpc.idmapd#namemappingdeamonroot995191011:07?00:00:00/usr/sbin/rpc.mountd#权限管理验证等(NFSmountdeamon)root995312011:07?00:00:00[nfsd4_callbacks]root995402011:07?00:00:00[nfsd]#NFS主进程root995412011:07?00:00:00[nfsd]root995422011:07?00:00:00[nfsd]root995432011:07?00:00:00[nfsd]root995442011:07?00:00:00[nfsd]root995452011:07?00:00:00[nfsd]root995462011:07?00:00:00[nfsd]root995472011:07?00:00:00[nfsd]root11535810775011:25pts/000:00:00grep-E--color=autorpc|nfs4.3
NFS存储实战训练4.3.2
服务端配置对NFS服务相关进程进行说明。(1)nfsd(rpc.nfsd):主要用于管理NFS客户端是否能登入NFS服务端主机,包含ID身份判定等。(2)mountd(rpc.mountd):主要用于管理NFS文件系统,包括客户端是否可获取对应权限。(3)rpc.statd:检查文件一致性。(4)rpc.idmapd:名字映射后台进程。。4.3
NFS存储实战训练4.3.2
服务端配置NFS服务的主配置文件/etc/exports默认是空的,需要自行配置。/etc/exports文件配置格式如下。NFS共享目录NFS客户端地址1[权限参数]NFS客户端地址2[权限参数]4.3
NFS存储实战训练4.3.2
服务端配置对关键词进行相应的说明,如下所示。NFS共享目录:是指NFS服务端要共享的实际目录,要使用绝对路径。同时要对本地的共享目录设置合适的权限,使得客户端可以进行读写。NFS客户端地址:是指经NFS服务端授予权限访问的共享目录的客户端,可以是主机名、IP地址、网段、域名、通配符*(所有客户端主机)等。权限参数如表所示。4.3
NFS存储实战训练4.3.2
服务端配置权限参数说明rw表示Read-write允许客户端读写ro表示Read-only,只能读取共享文件sync表示请求或写入数据时,数据同步写入NFS服务端的磁盘中async表示请求或写入数据时,数据先存入内存缓冲区,直到硬盘有空间时再写入all_squash用于将客户端所有用户的UID和GID映射到匿名用户root_squash如果客户端用户是root,将root用户的权限压缩为匿名用户no_root_squash如果客户端用户是root,则对共享文件具有root权限anonuid匿名的UID(用户ID),表示客户端以某些权限访问服务端,在默认情况下是nfsnobodyanongid匿名的GID(组ID),表示客户端以某些权限访问服务端,在默认情况下是nfsnobady在配置文件中写入共享目录,具体要求如下所示。(1)/webdata/share目录可读写且不限制用户身份,共享给Web客户端。(2)/webdata/upload目录作为Web客户端的数据上传目录,并将所属组和所属用户设置为nfs_upload,UID和GID设置为2000。(3)/webdata/nfs目录设置为只读,向Web客户端提供数据内容,具体如下所示。[root@nfs-server~]#vim/etc/exports/webdata/share/24(rw,sync,no_root_squash)/webdata/upload/24(rw,all_squash,anonuid=2000,anongid=2000)/webdata/nfs/24(ro)4.3
NFS存储实战训练4.3.2
服务端配置本例中的web1、web2和web3在同一网段,客户端地址写其所在的网段即可。13.根据要求创建对应的共享目录/webdata/share。14.根据要求创建对应的共享目录/webdata/upload之前,创建对应用户的UID和GID。[root@nfs-server~]#mkdir-p/webdata/share[root@nfs-server~]#chmod777/webdata/share/[root@nfs-server~]#groupadd-g2000nfs_upload[root@nfs-server~]#useradd-g2000-u2000-Mnfs_upload#查看创建的nfs_upload用户和属组信息[root@nfs-server~]#cat/etc/passwd|grepnfsrpcuser:x:29:29:RPCServiceUser:/var/lib/nfs:/sbin/nologinnfsnobody:x:65534:65534:AnonymousNFSUser:/var/lib/nfs:/sbin/nologinnfs_upload:x:2000:2000::/home/nfs_upload:/bin/bash4.3
NFS存储实战训练4.3.2
服务端配置15.创建对应的共享目录/webdata/upload,并修改属主。16.根据要求创建对应的共享目录/webdata/nfs。[root@nfs-server~]#mkdir-p/webdata/upload[root@nfs-server~]#chown-Rnfs_upload:nfs_upload/webdata/upload/[root@nfs-server~]#ll-d/webdata/upload/drwxr-xr-x2nfs_uploadnfs_upload62月1616:42/webdata/upload/[root@nfs-server~]#ll-d/webdata/nfs/drwxr-xr-x2rootroot62月1616:42/webdata/nfs/[root@nfs-server~]#mkdir-p/webdata/nfs4.3
NFS存储实战训练4.3.2
服务端配置17.一般修改NFS配置文档后,无需重启NFS,直接执行exportfs-rv命令即可使修改的/etc/exports生效。18.查看NFS服务器共享出来的目录。[root@nfs-server~]#exportfs-v/webdata/share/24(sync,wdelay,hide,no_subtree_check,sec=sys,rw,secure,no_root_squash,no_all_squash)/webdata/upload/24(sync,wdelay,hide,no_subtree_check,anonuid=2000,anongid=2000,sec=sys,rw,secure,root_squash,all_squash)/webdata/nfs/24(sync,wdelay,hide,no_subtree_check,sec=sys,ro,secure,root_squash,no_all_squash)[root@nfs-server~]#showmount-elocalhostExportlistforlocalhost:/webdata/nfs/24/webdata/upload/24/webdata/share/244.3
NFS存储实战训练4.3.2
服务端配置至此NFS服务端的配置已完成。1.查看客户端系统环境。2.在Web客户端安装nfs-utils和rpcbind,以web1为例。[root@web1~]#cat/etc/redhat-releaseCentOSLinuxrelease7.6.1810(Core)[root@web1~]#uname-r3.10.0-957.el7.x86_64[root@web1~]#uname-mx86_64[root@web1~]#yum-yinstallnfs-utilsrpcbind……安装步骤省略……已安装:nfs-utils.x86_641:1.3.0-0.68.el7.2rpcbind.x86_640:0.2.0-49.el7……完毕!4.3
NFS存储实战训练4.3.3
客户端配置3.启动rpcbind,并设置为开机自启。#查看rpcbind启动状态[root@web1~]#systemctlstatusrpcbind●rpcbind.service-RPCbindserviceLoaded:loaded(/usr/lib/systemd/system/rpcbind.service;enabled;vendorpreset:enabled)Active:inactive(dead)#启动rpcbind服务[root@web1~]#systemctlstartrpcbind4.3
NFS存储实战训练4.3.3
客户端配置#设置开机自启[root@web1~]#systemctlenablerpcbind[root@web1~]#systemctlstatusrpcbind●rpcbind.service-RPCbindserviceLoaded:loaded(/usr/lib/systemd/system/rpcbind.service;enabled;vendorpreset:enabled)Active:active(running)since三2022-02-1617:42:20CST;11sagoMainPID:19815(rpcbind)CGroup:/system.slice/rpcbind.service└─19815/sbin/rpcbind-w2月1617:42:20web1systemd[1]:StartingRPCbindser...2月1617:42:20web1systemd[1]:StartedRPCbindserv...Hint:Somelineswereellipsized,use-ltoshowinfull.4.启动nfs服务,并设置为开机自启。#查看nfs启动状态[root@web1~]#systemctlstatusnfs●nfs-server.service-NFSserverandservicesLoaded:loaded(/usr/lib/systemd/system/nfs-server.service;disabled;vendorpreset:disabled)Active:inactive(dead)#启动nfs服务[root@web1~]#systemctlstartnfs4.3
NFS存储实战训练4.3.3
客户端配置#设置开机自启[root@web1~]#systemctlenablenfsCreatedsymlinkfrom/etc/systemd/system/multi-user.target.wants/nfs-server.serviceto/usr/lib/systemd/system/nfs-server.service.[root@web1~]#systemctlstatusnfs●nfs-server.service-NFSserverandservicesLoaded:loaded(/usr/lib/systemd/system/nfs-server.service;enabled;vendorpreset:disabled)Active:active(exited)since三2022-02-1617:43:44CST;12sagoMainPID:21221(code=exited,status=0/SUCCESS)CGroup:/system.slice/nfs-server.service……省略部分代码5.在Web客户端查看NFS服务端的共享目录。挂载NFS服务端的共享目录至NFS客户端并测试。[root@web1~]#showmount-enfs-serverExportlistfornfs-server:/webdata/nfs/24/webdata/upload/24/webdata/share/24[root@web1~]#mkdir-p/webdata/nfs1#挂载[root@web1~]#mount-tnfs28:/webdata/nfs/webdata/nfs1/4.3
NFS存储实战训练4.3.3
客户端配置6.挂载NFS服务端的/webdata/nfs到客户端本地的/webtata/nfs1。(1)挂载NFS服务端的/webdata/nfs到客户端本地的/webtata/nfs1。6.(2)查看磁盘分区的使用情况。[root@web1~]#df-h文件系统容量已用可用已用%挂载点/dev/mapper/centos-root17G1.3G16G8%/devtmpfs475M0475M0%/devtmpfs487M0487M0%/dev/shmtmpfs487M7.7M479M2%/runtmpfs487M0487M0%/sys/fs/cgroup/dev/sda11014M133M882M14%/boottmpfs98M098M0%/run/user/028:/webdata/nfs17G1.3G16G8%/webdata/nfs14.3
NFS存储实战训练4.3.3
客户端配置6.(3)创建文件测试nfs1目录的权限。[root@web1~]#touch/webdata/nfs1/test1touch:无法创建"/webdata/nfs1/test1":只读文件系统已成功挂载nfs共享目录。由于共享目录nfs的权限是只读,所以目录下无法创建文件。[root@web1~]#mkdir-p/webdata/upload1#挂载[root@web1~]#mount-tnfs28:/webdata/upload//webdata/upload1/4.3
NFS存储实战训练4.3.3
客户端配置7.挂载NFS服务端的/webdata/upload到客户端本地的/webtata/upload1。(1)在本地创建要挂载的目录。[root@web1~]#df-h文件系统容量已用可用已用%挂载点/dev/mapper/centos-root17G1.3G16G8%/devtmpfs475M0475M0%/devtmpfs487M0487M0%/dev/shmtmpfs487M7.7M479M2%/runtmpfs487M0487M0%/sys/fs/cgroup/dev/sda11014M133M882M14%/boottmpfs98M098M0%/run/user/028:/webdata/nfs17G1.3G16G8%/webdata/nfs128:/webdata/upload17G1.3G16G8%/webdata/upload1(2)查看磁盘分区的使用情况。7.(3)Web客户端创建nfs_upload用户和属组。[root@web1~]#groupadd-g2000nfs_upload[root@web1~]#useradd-g2000-u2000-mnfs_upload4.3
NFS存储实战训练4.3.3
客户端配置7.(4)Web客户端的数据上传upload目录测试。[root@web1upload1]#pwd/webdata/upload1[root@web1upload1]#ls[root@web1upload1]#ll总用量07.(5)创建测试文件。[root@web1upload1]#touchtest.txt7.(6)创建目录测试。[root@web1upload1]#mkdirtestdir[root@web1upload1]#ll-a总用量0drwxr-xr-x3nfs_uploadnfs_upload372月1710:48.drwxr-xr-x4rootroot332月1710:18..drwxr-xr-x2nfs_uploadnfs_upload62月1710:47testdir-rw-r--r--1nfs_uploadnfs_upload02月1710:48test.txt在upload1创建的目录及文件默认属主为nfs_upload。4.3
NFS存储实战训练4.3.3
客户端配置7.(7)为了进一步验证,在NFS服务端查看/webdata/upload共享目录。[root@nfs-server~]#ll/webdata/upload/总用量0drwxr-xr-x2nfs_uploadnfs_upload62月1710:47testdir-rw-r--r--1nfs_uploadnfs_upload02月1710:48test.txtWeb客户端成功上传文件到NFS服务端的/webdata/upload共享目录,且默认属主为nfs_upload。[root@web1~]#mkdir-p/webdata/share1#挂载[root@web1~]#mount-tnfs28:/webdata/share/webdata/share1/8.挂载NFS服务端的/webdata/share到客户端本地的/webtata/share1。(1)在本地创建要挂载的目录。4.3
NFS存储实战训练4.3.3
客户端配置[root@web1~]#df-h文件系统容量已用可用已用%挂载点/dev/mapper/centos-root17G1.3G16G8%/devtmpfs475M0475M0%/devtmpfs487M0487M0%/dev/shmtmpfs487M7.7M479M2%/runtmpfs487M0487M0%/sys/fs/cgroup/dev/sda11014M133M882M14%/boottmpfs98M098M0%/run/user/028:/webdata/nfs17G1.3G16G8%/webdata/nfs128:/webdata/upload17G1.3G16G8%/webdata/upload128:/webdata/share17G1.3G16G8%/webdata/share18.(2)查看磁盘分区的使用情况。8.(3)在NFS服务端的/webdata/share添加测试文件test.jpg。[root@nfs-servershare]#pwd/webdata/share[root@nfs-servershare]#lstest.jpg[root@nfs-servershare]#chmod777test.jpg4.3
NFS存储实战训练4.3.3
客户端配置8.(4)回到Web客户端,查看/webdata/share1中的文件,并重命名为a.jpg。[root@web1~]#ll/webdata/share1/总用量172-rwxrwxrwx1rootroot1751322月1510:00test.jpg#重命名[root@web1~]#mv/webdata/share1/test.jpg/webdata/share1/a.jpg[root@web1~]#ll/webdata/share1/总用量172-rwxrwxrwx1rootroot1751322月1510:00a.jpg可以对share目录中的文件进行读写。在Web客户端创建一个网页,模拟生产环境下,用户点击网页链接读取NFS共享存储文件。[root@web1~]#yum-yinstallnginx[root@web1~]#systemctlstartnginx4.3
NFS存储实战训练4.3.4
前端测试2.浏览器访问web1的IP,查看是否启动成功。1.在Web客户端安装nginx。4.3
NFS存储实战训练4.3.4
前端测试[root@web1~]#vim/etc/nginx/nginx.conf……省略部分代码……server{listen80;listen[::]:80;server_name_;
root/webdata;#Loadconfigurationfilesforthedefaultserverblock.include/etc/nginx/default.d/*.conf;error_page404/404.html;location=/404.html{}error_page500502503504/50x.html;location=/50x.html{}
}3.修改配置文件的server模块,使得默认网页指向/webdata挂载目录。[root@web2~]#systemctlrestartnginx4.重启nginx,使配置文件生效。4.3
NFS存储实战训练4.3.4
前端测试[root@web1webdata]#vim/webdata/index.html<head><metacharset="utf-8"><title>风景图</title></head><body><ahref="share1/a.html">林间小路</a><ahref="share1/b.html">晚霞</a><ahref="share1/c.html">海边</a></body>[root@web1webdata]#vim/webdata/share1/a.html<imgsrc="a.jpg">5.通过一个简单的前端页面,实现共享文件的访问。6.浏览器访问web1的IP。4.3
NFS存储实战训练4.3.4
前端测试7.单击“林间小路”链接。可正常访问共享文件。此处需要注意,web1主机中/webdata/share1/中的a.jpg实际上是NFS服务端/webdata/share中a.jpg的映射。4.4NFS共享数据实时推送备份案例环境准备部署Rsync服务端—backup备份服务器部署Rsync客户端—nfs-server存储服务器为了防止数据存储节点发生单点故障,需要将数据进行同步备份,比如在第3章学过MySQL的主从复制就是一种同步机制,把主服务器的数据同步到从节点,这就是数据库的同步备份。那么,如何在网络中实现文件的同步备份呢?NFS作为Web服务器的共享存储,就需要将存储的数据同步到备份服务器上,实现文件的同步备份,以保证数据的安全性。4.4
NFS共享数据实时推送备份案例Rsync(Remotesynchronization)是一款优秀的远程复制工具,它不但开源、快速、功能多,而且适用于多种操作系统。利用rsync服务结合监控服务Inotify机制(inotify-tools、sersync、lrsyncd)做实时的数据备份,即根据存储服务器上目录的变化,把变化的数据通过inotify或sersync结合rsync命令实时同步到备份服务器,还可以通过drbd方案以及双写的方案实现双机数据同步。本节的案例要求NFS服务器以Rsync守护进程的方式部署Rsync服务,然后把本地的数据通过Rsync的方式传输到备份服务器backup上,最后通过notify-tools插件实现数据的实时推送备份。4.4
NFS共享数据实时推送备份案例4.4.1
环境准备4.4
NFS共享数据实时推送备份案例4.4.1
环境准备NFS数据备份案例中服务器部署的结构。4.4
NFS共享数据实时推送备份案例4.4.1
环境准备准备1台VM虚拟机(或者物理服务器)作为备份服务器(backup),继续使用nfs-server存储服务器作为Rsync客户端,具体如表所示。说明:提前关闭防火墙及SELinux(过程不再赘述)服务器系统IP主机名CentOS7.6x86_6428nfs-serverCentOS7.6x86_6432backup4.4
NFS共享数据实时推送备份案例4.4.1
环境准备1.在实验开始前,建议为这2台服务器互相做域名解析,便于通信。域名解析可以使用修改本地hosts文件的方式,也可以使用DNS服务器解析。这里采取修改hosts文件的方式,分别在2台服务器的/etc/hosts文件中添加以下代码。2.为了保证各服务器的时间一致,对备份服务器进行时间校对。28nfs-server32backup[root@qfedu~]#ntpdate-u1做完域名解析之后,可以使用ping命令进行检测,若无丢包现象,说明解析成功。为了便于读者观察实验操作对象,这里将备份服务器的主机名配置为backup。4.4
NFS共享数据实时推送备份案例4.4.2
部署Rsync服务端—backup备份服务器3.首先查看备份主机是否安装了rsync工具。4.安装rsync服务。[root@backup~]#rpm-qa|grep"rsync"[root@backup~]#yum-yinstallrsync……部分步骤已省略……已安装:rsync.x86_640:3.1.2-10.el7完毕![root@backup~]#rpm-qa|grep"rsync"rsync-3.1.2-10.el7.x86_644.4
NFS共享数据实时推送备份案例4.4.2
部署Rsync服务端—backup备份服务器[root@backup~]#vim/etc/rsyncd.conf#/etc/rsyncd:configurationfileforrsyncdaemonmode#Seersyncd.confmanpageformoreoptions.#configurationexample:uid=rsync#用户gid=rsync#用户组usechroot=no#程序安全设置maxconnections=200 #客户端连接数pidfile=/var/run/rsyncd.pid#进程号文件位置logfile=/var/log/rsync.log #日志文件位置timeout=300 #超时时间#exclude=lost+found/#transferlogging=yes#ignorenonreadable=yes#dontcompress=*.gz*.tgz*.zip*.z*.Z*.rpm*.deb*.bz2#[ftp]5.修改/etc/rsyncd.conf配置文件,添加nfsbackup模块,模块名可根据NFS服务端的备份目录自定义。4.4
NFS共享数据实时推送备份案例4.4.2
部署Rsync服务端—backup备份服务器#path=/home/ftp#comment=ftpexportareaignoreerrors #忽略错误readonly=false #只读false,即可读可写list=false #阻止远程列表hostsallow=28/24 #允许IPhostsdeny=/32 #禁止IP,如果IP有冲突,可注释掉该句authusers=rsync_backup #虚拟用户,用来在客户端和服务端传输数据,非系统内真正的虚拟用户secretsfile=/etc/rsync.password #用于存放虚拟用户的用户名和密码fakesuper=yes #不需要daemon以root运行,就可以存储文件的完整属性######[multi_module_1]path=/multi_module_1/#[nfsbackup]path=/nfsbackup/####rsync_config____end##4.4
NFS共享数据实时推送备份案例4.4.2
部署Rsync服务端—backup备份服务器6.创建rsync属主和属组。7.根据对配置文件的新模块的描述,创建相应目录。[root@backup~]#useradd-M-s/sbin/nologinrsync[root@backup~]#tail-1/etc/passwdrsync:x:1000:1000::/home/rsync:/sbin/nologin[root@backup~]#idrsyncuid=1000(rsync)gid=1000(rsync)组=1000(rsync)[root@backup~]#mkdir-p/nfsbackup8.设置目录的属主和属组,使得rsync客户端通过用户连接时对/nfsbackup/目录获得相关权限。[root@backup~]#chown-Rrsync.rsync/nfsbackup/[root@backup~]#ll-d/nfsbackup/drwxr-xr-x2rsyncrsync62月1817:24/nfsbackup/9.查看rsync服务的启动状态。[root@backup~]#systemctlstatusrsyncd●rsyncd.service-fastremotefilecopyprogramdaemonLoaded:loaded(/usr/lib/systemd/system/rsyncd.service;disabled;vendorpreset:disabled)Active:inactive(dead)4.4
NFS共享数据实时推送备份案例4.4.2
部署Rsync服务端—backup备份服务器10.启动rsync服务,并且设置开机自启。11.默认情况下rsync的端口都是873,查看端口是否开启。[root@backup~]#systemctlstartrsyncd[root@backup~]#systemctlenablersyncd[root@backup~]#systemctlstatusrsyncd●rsyncd.service-fastremotefilecopyprogramdaemonLoaded:loaded(/usr/lib/systemd/system/rsyncd.service;disabled;vendorpreset:disabled)Active:active(running)since五2022-02-1817:18:00CST;2sagoMainPID:118026(rsync)CGroup:/system.slice/rsyncd.service└─118026/usr/bin/rsync--daemon--no-detach...[root@backup~]#lsof-itcp:873COMMANDPIDUSERFDTYPEDEVICESIZE/OFFNODENAMErsync118026root3uIPv46161130t0TCP*:rsync(LISTEN)rsync118026root5uIPv66161140t0TCP*:rsync(LISTEN)4.4
NFS共享数据实时推送备份案例4.4.2
部署Rsync服务端—backup备份服务器12.将虚拟用户及密码写入密码配置文件。13.为提高密码安全性,修改密码文件的权限。[root@backup~]#echo"rsync_backup:123456">/etc/rsync.password[root@backup~]#ll/etc/rsync.password-rw-r--r--1rootroot202月2115:23/etc/rsync.password[root@backup~]#chmod600/etc/rsync.password[root@backup~]#ll/etc/rsync.password-rw1rootroot202月2115:23/etc/rsync.password(1)查看备份主机是否安装了rsync工具。4.4
NFS共享数据实时推送备份案例4.4.3
部署Rsync客户端—nfs-server存储服务器(2)安装rsync服务。[root@nfs-server~]#rpm-qa|grep"rsync"[root@nfs-server~]#yum-yinstallrsync……部分步骤已省略……已安装:rsync.x86_640:3.1.2-10.el7完毕![root@nfs-server~]#rpm-qa|grep"rsync"rsync-3.1.2-10.el7.x86_641.实现rsync数据推送(3)添加虚拟用户的密码文件,只写入密码即可。[root@nfs-server~]#echo"123456">/etc/rsync.password(4)更改密码文件的权限,以提高安全性。[root@nfs-server~]#chmod600/etc/rsync.password[root@nfs-server~]#ll-d/etc/rsync.password-rw1rootroot72月2115:58/etc/rsync.password4.4
NFS共享数据实时推送备份案例4.4.3
部署Rsync客户端—nfs-server存储服务器1.实现rsync数据推送(5)本节案例使用push推送测试rsync工具是否能传输文件。首先在rsync客户端创建测试目录/nfsbackup以及测试文件。[root@nfs-server~]#mkdir/nfsbackup[root@nfs-server~]#touch/nfsbackup/{1,2,3}_file[root@nfs-server~]#ls/nfsbackup/1_file2_file3_fileRsync同步包括两种方式,push推送和pull拉取。push推送是指把本地的文件同步到指定的主机目录下,pull拉取是指将指定主机目录下的文件同步到本地。(6)在备份服务器backup中的/nfsbackup目录中创建测试文件,表示已有的数据。[root@backup~]#touch/nfsbackup/{a,b,c}_test[root@backup~]#ls/nfsbackup/a_testb_testc_test4.4
NFS共享数据实时推送备份案例4.4.3
部署Rsync客户端—nfs-server存储服务器1.实现rsync数据推送[root@nfs-server~]#rsync-avH--port=873--progress--delete/nfsbackup/rsync_backup@32::nfsbackup/--password-file=/etc/rsync.passwordsendingincrementalfilelistdeletingc_testdeletingb_testdeletinga_test./1_file0
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年教育行业工匠精神测试题及详细解析
- 2026年高职就业质量报告测评含答案
- 2026年交通运输职称考试强化题库含答案
- 2026年基层造价员入门测验含答案
- 2026年物流成本核算员运费计算与成本分摊方法测试含答案
- 2026年甘肃省武威地区单招职业适应性测试题库附答案解析
- 2026年户外遭遇野兽时的非攻击性应对策略试题含答案
- 2026年贵州省黔东南苗族侗族自治州单招职业倾向性测试题库附答案解析
- 2026年黔东南民族职业技术学院单招职业适应性考试模拟测试卷附答案解析
- 2026年通化医药健康职业学院单招职业技能测试模拟测试卷附答案解析
- 部编人教版4年级上册语文期末复习(单元复习+专项复习)教学课件
- 2024-2025学年云南省玉溪市八年级(上)期末英语试卷(含答案无听力原文及音频)
- 《赢在责任心,胜在执行力》心得体会
- 凉山州 2024 年教师综合业务素质测试试卷初中物理
- 他汀不耐受的临床诊断与处理中国专家共识(2024)解读课件
- 学校石材工程投标书
- 宿舍楼建筑工程施工组织设计方案
- 低压电工证题库低压电工证考试题
- GB 5009.11-2024食品安全国家标准食品中总砷及无机砷的测定
- 全面风险清单-采购与业务外包管理风险(2023年11月-雷泽佳编制)
- copepe低熔点皮芯型复合短纤维生产工艺的开发
评论
0/150
提交评论