企业级网络文件共享服务_第1页
企业级网络文件共享服务_第2页
企业级网络文件共享服务_第3页
企业级网络文件共享服务_第4页
企业级网络文件共享服务_第5页
已阅读5页,还剩69页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、企业级 NFS 网络文件共享服务作者:归档:学习笔记/博客整理2019/4/3格式说明:字体:注释黄色背景:重要绿色背景:注意老男孩 linux 运维实战教育-目录老男孩教育教学思想 6 重:重目标、重思路、重方法、重实践、重习惯、重总结学无止境,老男孩教育成就你人生的起点!方式:目录第 10 章 企业级 NFS 网络文件共享服务110.1 NFS 介绍110.1.1 什么是 NFS?110.1.2 NFS 的历史介绍110.1.3 NFS 在企业中的应用场景210.1.4 企业生产集群为什么需要共享. 410.2 NFS 系统原理介绍510.2.1 NFS 系统挂载结构图解与介绍510.2.

2、2 什么是 RPC(Remote Procedure Call)810.2.3 NFS 的工作流程原理910.3 NFS 服务端部署环境准备1110.3.1 NFS 服务部署服务器准备1110.3.2 修改主机名 xshell. 1110.3.3 必须的优化(统一使用模板机)1110.3.4 CentOS6.6 x86_64 模拟环境信息1210.4 NFS SERVER 端的设置1210.4.1 NFS 软件列表12I运维:Linux385168604架构师 390642196Python 29215534大数据 421358633:老男孩 linux 运维实战教育-目录10.4.2 查看

3、NFS 软件包1310.4.3 启动 NFS 相关服务1310.4.4 NFS 服务常见进程详解说明1610.4.5 配置 NFS 服务端服务开机自启动1910.5实战配置 NFS 服务端2010.5.1 NFS 服务端配置文件路径2010.5.2 nfs 服务端配置过程2010.5.3 nfs 客户端配置过程-web012310.5.4 exports 配置文件格式2510.5.5 创建共享目录/data2710.5.6 创建配置文件2710.5.7 优雅重启,平滑重启-不影响正在使用的客户27自我检查2710.5.810.5.9 服务端(nfs01)挂载测试2710.6 客户的配置2810

4、.6.1 回顾整体流程2810.6.2 启动 rpcbind 服务并加入开机自启动2810.6.3 检查远端 showmount2810.6.4 客户端挂在2810.6.5 创建文件进试2910.6.6 客户的创建 . . . . 2910.6.7 服务创建或删除2910.7【详细】nfs 配置流程2910.7.1 服务端2910.7.2 客户端3010.8【补充错误集合中】nfs 遇到的错误集合3110.8.2 没安装 nfs-utils3110.8.3 配置文件括号与 ip 地址没有空格3210.8.4 selinux3210.8.5 iptables3210.8.6 共享目录没有. 32

5、II服务端老男孩 linux 运维实战教育-目录10.8.7 网段写错了3210.8.8 网络不通3210.8.9 rpcbind nfs 顺序3210.9 rpcbind 服务重启后 不认识 nfs 了。3210.9.1 rpcbind 服务没有启动(portmap)3310.9.2 重启 rpcbind 服务导致的问题- RPC: Program not registered3310.9.3 Stale file handle3510.10 排查故障=>ssh 连接或服务器无法上网排查步骤3610.10.1 企业生产场景 NFS exports 配置实例3610.11 NFS 配置参

6、数权限3710.11.1 NFS 配置文件权限参数说明3710.12 NFS 服务企业案例配置实践3910.12.1 实例一:共享/data 目录给 10.0.0.0/24 整个网段的主机读写3910.12.2 实例二4010.13 NFS 服务的重点知识梳理4510.14 指定压缩用户的 uid,gid4610.15. . . 4710.16 NFS 客户端 mount 挂载命令4710.16.1 10.9.1 NFS 客户端挂载令4710.16.2 NFS 客户端挂载排错思路4810.16.3 【nfs 挂载加入 fs ab 案例】NFS 客户端开机自启动挂载5010.17 生产环境高级案

7、例配置实战5210.17.1 指定固定 UID 用户配置 NFS 共享实例5210.17.2 NFS Server 端的操作步骤5210.17.3 NFS Client 端操作步骤5310.18 【未解决】删除客户端 zuma 用户不影响 nfs 数据写入。5410.19 NFS 客户端 mount 挂载深入5410.19.1 NFS 客户端 mount 挂载参数说明5410.20 nfs 挂载 rsize wsize 没有改变 centos 6.7 2.6.32 x86_64(内存大小问题)5610.21 【企业案例】 提示文件系统只读(read-only file system)5910.

8、21.1 NFS 客户端 mount 挂载优化5910.21.2 【表达】企业生产场景 NFS 共享优化小结62III老男孩 linux 运维实战教育-目录10.22 NFS 系统应用的优缺点说明6310.23 本章涉及的相关知识6410.23.1 showmount 命令说明6410.23.2 exportfs 命令说明6410.23.3 RPC6510.23.4 NFS Server 端的. 6710.24 NFS 常见故障排查6710.25 本章重点回顾6910.26 NFS 章节参考文献69IV1老男孩 linux 运维实战教育第10章 企业级 NFS 网络文件共享服务跟老男孩学 Li

9、nux 运维:Web 集群实战(运维必备书籍)10.1 NFS 介绍10.1.1 什么是 NFS?文件系统(装修的风格)-怎么来存放文件磁盘-raid-分区-格式化(文件系统)-挂载使用centosext2,3,4centos 7 xfs reisersfs(suse)分布式文件系统 mfs gfs fastdfsNFS 是 Network File System 的缩写,中文意思是网络文件系统。它的主要功能是通过网络(一般是局域网)让不同的主机系统之间可以共享文件或目录。NFS 客户端(一般为应用服务器,例如web)可以通过挂载(mount)的方式将 NFS 服务器端共享的数据目录挂载到 N

10、FS 客户端本地系统中(就是某一个挂载点下)。从客户端本地看,NFS 服务器端共享的目录就好像是客户端盘分区或者目录一样,而实际上却是远端的 NFS 服务器的目录。的磁NFS 网络文件系统很像 Windows 系统的网络共享、安全功能、网络驱动器,这也和 Linux系统里的 samba 服务类似。只不过一般情况下,Windows 网络共享服务或 samba 服务用于办公局域网共享,而互联网中小型集群架构后端常用 NFS 进行数据共享,如果是大型,那么有可能还会用到更复杂的分布式文件系统,例如:Moosefs(mfs)、GlusterFS、FastDFS,这些不在本书讨论内容之列,有的读者可以去

11、阅读老男孩的其他书或者相关教学。10.1.2 NFS 的历史介绍第一个网络文件系统被称为 File Access Listener,由 Digital Equipment Corporation(DEC)在1976 年开发。NFS 是第一个构建于 IP 协议之上的现代网络文件系统。在 20 世纪 80 年代,它首先作为实验的2老男孩 linux 运维实战教育文件系统,由 Sun Microsystems 在内部完成开发。NFS 协议归属于 Request for Comments(RFC)标准,并且随后演化为了 NFSv2。作为一个标准,由于 NFS 与其他客户端和服务器的互操作能力很好而发展

12、快速。之后,标准继续演化,成为 NFSv3,在 RFC1813 中有定义。这一新的协议比以前的版本具有更好的可扩展性,支持大文件(超过 2GB),异步写入,并且将 TCP 作为了传输协议,为文件系统在更广泛的网络中使用铺平了道路。在 2000 年,RFC 3010(由 RFC 3530 修订)将 NFS 带入企业级应用。此时,Sun 引入了具有较高安全性带有状态协议的 NFSv4(NFS 之前的版本都是无状态的)。今天,NFS 版本的 4.1(由 RFC 5661 定义)增加了对为 PNFS extension)。分布式服务器并行的支持(称NFS 系统发展的时间表,包括其特性的特定 RFC,可

13、用图 10-1 来展示。图 10-1NFS 协议发展时间表NFS 系统已经历了近 30 年的发展。它代表了一个非常稳定的(及可移植)网络文件系统,具备可扩展、高性能等特性,并达到了企业级应用质量标准。由于网络速度的增加和延迟的降低,NFS 系统一直是通过网络提供文件系统服务的有竞争力的选择,特别是在中小型互联网企业中,应用十分广泛。10.1.3 NFS 在企业中的应用场景在企业集群架构的工作场景中,NFS 网络文件系统一般被用来共享、图片、附件等静的图片、附件、头像态文件,通常用户上传的文件都会放到 NFS 共享里,例如:BBSBBS 程序不要放 NFS 共享里),然后前端所有的节点(注意NF

14、S这些静态时都会上的。NFS 是当前互联网系统架构中最常用的数据服务之一,前面说过,中小型公司应用频率更高,大公司或门户除了使用 NFS 外,还可能会使用更为复杂的分布式文件系统,比如 Moosefs(mfs)、GlusterFS、FastDFS 等。3老男孩 linux 运维实战教育4老男孩 linux 运维实战教育图 10-2 NFS 服务在企业生产集群架构中的位置在企业生产集群架构中,图 10-2 右边的实线框里带圆点的就是 NFS 系统工作的位置,NFS 作为所有前端 Web 服务的共享,的内容一般包括用户上传的图片、附件、头像等,注意,的程序代码不要放 NFS 共享里,因为程序是开发

15、运维统一发布的,不存在发布延迟问题,直接批量发布到 Web 节点提供比共享到 NFS 里效率更高。10.1.4 企业生产集群为什么需要共享这里通过图解给大家展示一下集群架构需要共享服务的理由。例如:A 用户传图片到 Web1的请求分发到了 Web2,因为 Web2 上没有服务器,然后让 B 用户这张图片,结果 B 用户这张图片,这就导致它无法看到 A 用户上传的图片,如果此时有一个共享,A 用户上传图片的请求无论是分发到 Web1 还是 Web2 上,最终都会到共享上,而在 B 用户图片时,无论请求分发到 Web1 还是 Web2 上,最终也都会去共享上找,这样就可以到需要的了。这个共享的位置

16、可以通过开源软件和商业硬件实现,互联网中小型集群架构会用普通 PC服务器配置 NFS 网络文件系统实现。当集群中没有 NFS 共享图片的情况如图 10-3 所示。时,用户5老男孩 linux 运维实战教育图 10-3 企业生产集群没有 NFS 共享示意图如果集群中有 NFS 共享,用户图片的情况如图 10-4 所示。图 10-4 企业生产集群有 NFS 共享示意图IOE IBMOracleEMC中小型互联网企业一般买硬件,因为太贵,大公司如果业务发展很快的话,可能会临时买硬件顶一下的,当并发继续加大时,硬件的扩展相对就会很费劲,且价格成几何级数增加。例如:淘宝网就曾替换掉了很多硬件设备,比如,

17、用 lvs+haproxy 替换了netscaler 负载均衡设备,用 FastDFS、TFS 配合 PC 服务器替换了 netapp、emc 等商业IOE 正在成为互联网公司的主流。浪潮之巅设备,去10.2 NFS 系统原理介绍10.2.1 NFS 系统挂载结构图解与介绍图 10-5 是企业工作中的 NFS 服务器与客户端挂载情况结构。6老男孩 linux 运维实战教育7老男孩 linux 运维实战教育图 10-5 NFS 服务器共享与客户端挂载结构图如图 10-5 所示,在 NFS 服务器端设置好一个共享目录/NFS 服务器后,其他限端的客户端都可以将这个共享目录/挂载到客户端本地的某个挂

18、载点(其实就是一个目录,这随意指定)图 10-5 中的两个 NFS 客户端本地的挂载点分别为/v/个挂载点目录可以和/,不同客户端的挂载点可以不相同。客户端正确挂载完毕后,就进入到了 nfs 客户端的挂载点所在的/v/或/目录,此时就可以看到 NFS 服务器端/共享出来的目录下的所有数据。在客户端上查看时,NFS 服务器端的/目录就相当于客户端本地的磁盘分区或目录,几乎感觉不到使用上的区别,根据 NFS 服务端授予的 NFS 共享权限以及共享目录的本地系统权限,只要在指定的 NFS 客户端操作挂载/v/或/的目录,就可以将数据轻松地存取到 NFS 服务器端上的/客户端挂载 NFS 后,本地挂载

19、基本信息显示如下:目录中了。提示:mount 源 目标mount 10.0.0.31:/app/root# df -hFilesystemSizeUsed Avail Use% Mounted on/dev/sda11.1T467G544G47% /nfs-client8老男孩 linux 运维实战教育从挂载信息来看,和本地的磁盘分区几乎没什么差别,只是文件系统对应列的开头是以 IP 地址开头的形式了。经过前面的介绍,我们知道 NFS 系统是通过网络来进行数据传输的(所以叫做网络文件系统嘛!),因此,NFS 会使用一些端口来传输数据,那么,NFS 到底使用哪些端口来进行数据传输呢?下面是 NF

20、S 服务两次重启向 rpc 服务的端口列表结果对比,如图 10-6 所示。图 10-6 NFS 服务启动后的端口对比由上面的实际测试得知,NFS 在传输数据时使用的端口会随机选择。可能有读者会纳闷,既然这样,NFS 客户端是怎么知道 NFS 服务端使用的是哪个端口呢?:就是通过 RPC(中文意思过程调用,英文 Remote Procedure Call 简称 RPC)协议/服务来实现,这个 RPC 服务的应用在门户级的RPC 协议/服务。有很多,例如:。接下来,就来谈谈什么是10.2.2 什么是 RPC(Remote Procedure Call)因为 NFS 支持的功能相当多,而不同的功能都

21、会使用不同的程序来启动,每启动一个功能就会启用一些端口来传输数据,因此,NFS 的功能所对应的端口无法固定,它会随机取用一些未被使用的端口来作为传输之用,其中 CentOS5.x 的随机端口都小于 1024,而 CentOS6.x 的随机端口都是较大的,见图 10-6。因为端口不固定,这样一来就会造成 NFS 客户端与 NFS 服务端的通信必须要知道 NFS 服务器端的数据传输端口才能进行通信,才能交互数据。,因为 NFS 客户端要解决上面的困扰,就需要通过过程调用 RPC 服务来帮忙了,NFS 的 RPC 服务最主要的tmpfs7.9G07.9G0% /dev/shm10.0.0.7:/10

22、02G59G 892G7% /app/#<=10.0.0.7 为 nfs server 的ip 地址9老男孩 linux 运维实战教育功能就是每个 NFS 功能所对应的端,并且在 NFS 客户端请求时将该端口和功能对应的信息传递给请求数据的 NFS 客户端,从而确保客户端可以连接到正确的 NFS 端口上去,达到实现数据传输交互数据目的。这个 RPC 服务类似 NFS 服务端和 NFS 客户端之间的一个中介,流程如图10-7 所示。图 10-7 NFS 工作流程图拿房屋中介打个比喻吧:假设我们要找房子,这里的我们就相当于 NFS 客户端,中介介绍房子,中介就相当于 RPC 服务,房子所有者

23、房东就相当于 NFS 服务,租房的人找房子,就要找中介,中介要预先存有房子房东的信息,才能将房源信息告诉租房的人。那么 RPC 服务又是如何知道每个 NFS 的端口呢?这是因为,当 NFS 服务端启动服务时会随机取用若干端口,并主RPC 服务取用的相关端口及功能信息,如此一来,RPC 服务就知道 NFS 每个端口对应的 NFS 功能了,然后 RPC 服务使用固定的 111 端口来NFS 客户端提交的请求,并将正确的 NFS 端口信息回复给请求的 NFS客户端,这样一来,NFS 客户端就可以与 NFS 服务端进行数据传输了。在启动 NFS SERVER 之前,首先要启动 RPC 服务(CentO

24、S5.8 下为 portmap 服务,CentOS6.6下为 rpcbind 服务,下同),否则 NFS SERVER 就无法向 RPC 服务了。另外,如果 RPC 服务重新启动,原来已经好的 NFS 端口数据就会丢失,因此,此时 RPC 服务管理的 NFS 程序也需要重新启动以重新向 RPC。要特别注意的是,一般修改 NFS 配置文件后,是不需要重启 NFS的,直接在命令行执行/etc/init.d/nfs reload 或exportfs -rv 即可使修改的/etc/exports 生效。10.2.3 NFS 的工作流程原理前文描述的整个启动过程如图 10-8 所示。10老男孩 linu

25、x 运维实战教育图 10-8 NFS 工作原理流程简图当程序通过 NFS 客户端向 NFS 服务端存取文件时,其请求数据流程大致如下:1)首先用户程序,由程序在 NFS 客户端上发出存取 NFS 文件的请求,这时 NFS 客户端(即执行程序的服务器)的 RPC 服务(rpcbind 服务)就会通过网络向 NFS 服务器端的 RPC服务(rpcbind 服务)的 111 端口发出 NFS 文件存取功能的询问请求。2)NFS 服务器端的 RPC 服务(rpcbind 服务)找到对应的已端的 RPC 服务(rpcbind 服务)。的 NFS 端口后,通知 NFS 客户3)4)此时 NFS 客户端获取

26、到正确的端口,并与 NFS daemon 联机存取数据。NFS 客户端把数据存取后,返回给前端程序,告知给用户存取结果,作为用户,11老男孩 linux 运维实战教育就完成了一次存取操作。因为 NFS 的各项功能都需要向 RPC 服务(rpcbind 服务),所以只有 RPC 服务(rpcbind服务)才能获取到 NFS 服务的各项功能对应的端(port number)、PID、NFS 在主机所的IP 等信息,而 NFS 客户端也只能通过向 RPC 服务(rpcbind 服务)询问才能找到正确的端口。也就是说,NFS 需要有 RPC 服务(rpcbind 服务)的协助才能对外提供服务。从上面的

27、描述,我们不难推断,无论是 NFS 客户端还是 NFS 服务器端,当要使用 NFS 时,都需要首先启动 RPC 服务(rpcbind 服务),NFS 服务必须在 RPC 服务启动之后启动,客户端无需启动 NFS 服务,但需要启动 RPC 服务。注意:NFS 的 RPC 服务,在 CentOS5.X 下名称为 portmap,在 CentOS6.X 下名称为 rpcbind。的 NFS 相关信息可以参考:10.3 NFS 服务端部署环境准备10.3.1 NFS 服务部署服务器准备表 10-1 给出了部署 NFS 服务的准备信息,包括系统版本、各服务IP 列表、IP 地址等,NFS 服务部署服务器

28、10.3.2 修改主机名 xshell10.3.3 必须的优化(统一使用模板机)常用软件yum install -y lrzsz nc dos2unix unix2dos nmap tree nc telnethostname web01sed -i 's#oldboy#web01#g'/etc/sysconfig/network主机名IP()内网(IP)NFS 服务器端(nfs-server)nfs0110.0.0.31172.16.1.31NFS 客户端 1(nfs-client1)backup10.0.0.41172.16.1.41NFS 客户端 2(nfs-client

29、2)web0110.0.0.8172.16.1.8服务器操作系统:CentOS 6.x x86_64 2.6.3212老男孩 linux 运维实战教育#yum 时候保持 rpm 包#修改配置文件10.3.4 CentOS6.6 x86_64 模拟环境信息NFS 服务端操作系统及内核版本信息如下:NFS 客户端操作系统及内核版本信息如下:提示经常有朋友和学生抱怨,在网上找到的文档都不好用,照着做都做不出来。其中的一个可能就是网上的文档大部分未留下当前系统环境,导致读者操作时因环境不一致而出现问题。当然也和所写内容是不是真的在生产环境经受过考验有直接关系,此上的文章大多都是跳跃性的,作者会的就会不

30、自觉的略过,写的不是那么详细,导致大家搞不定部署。建议读者多考虑有教学经验的作者写的书,一般对于知识的描述会好很多。10.4 NFS SERVER 端的设置10.4.1 NFS 软件列表要部署 NFS 服务,需要安装下面的软件包:rootnfs-client1 # cat /etc/redhat-release CentOS release 6.6 (Final)rootnfs-client1 # uname -r 2.6.32-504.el6.x86_64rootnfs-client1 # uname -m x86_64rootnfs-server # cat /etc/redhat-rel

31、ease CentOS release 6.6 (Final)rootnfs-server # uname -r 2.6.32-504.el6.x86_64rootnfs-server # uname -m x86_64tree/var/cache/yum/x86_64/6/ |grep "*.rpm"find /var/cache/yum/x86_64/6/ -type f -name "*.rpm"grepkeepcache /etc/yum.conf13老男孩 linux 运维实战教育qnfs-utils :NFS 服务的主程序,包括 rpc.nf

32、sd、rpc.mountd 这两个 daemons 和相关文档说明,以及执行命令文件等。qrpcbind :CentOS6.X 下面 RPC 的主程序。NFS 可以视为一个 RPC 程序,在启动任何一个 RPC 程序之前,工作,这个工作就是由 rpcbind 服务来完成的。因此,在提供 NFS 服需要做好端口和功能的对应务之前必须先启动 rpcbind 服务才行。(centos 5.x portmap)注意:有关 RPC 协议知识这里大家不必细究,详细说明可见本章结尾命令部分。10.4.2 查看 NFS 软件包可使用如下命令查看默认情况下 CentOS5.8/6.6 里 NFS 软件的安装情况

33、。当不知道软件名字时候,可以用 rpm -aq |grep -E "nfs-|rpcbind"来过滤包含在引号内的字符串。grep - E 在这里相当于 egrep。grep、egrep 这两个命令在运维工作中非常常用并且很好用,需要读者掌握。CentOS6.6 默认没有安装 NFS 软件包(CentOS5 默认会安装),可以使用 yum install nfs-utils rpcbindy 命令来安装 Nfs 软件。如果出现 rpcbind 和 nfs-utils 开头的两个软件包,表示 NFS 服务端软件安装完毕。10.4.3 启动 NFS 相关服务10.4.3.1 启

34、动 rpcbind 服务因为 NFS 及其辅助程序都是基于 RPC(Remote Procedure Call)协议的(使用的端口为 111), 所以首先要确保系统中运行了 rpcbind 服务。有关 RPC 协议的介绍请见后文。启动的实际操作如下(是 CentOS6.6 环境下的操作):rootnfs-server # LANG=en#<=临时调整系统为英文字符集,便于 grep 过滤。#安装完成 rpcbind nfs-utils 后rootnfs-server # /etc/init.d/rpcbind status #<=检查 rpcbind 服务状态rpcbind is

35、stopped#查看本地是否有房源?rootnfs-server # yum install nfs-utils rpcbind -y忽略软件显示信息rootnfs-server # rpm -aq nfs-utils rpcbindrpcbind-0.2.0-11.el6.x86_64 #这个包在 5.8 名字为 portmap。nfs-utils-1.2.3-54.el6.x86_64rootnfs-server # rpm -aq nfs-utils rpcbind#这个不用管道令更有效率。14老男孩 linux 运维实战教育我们看到结果显示 rpcbind 服务已处于运行状态,并且随开

36、机自启动。提示:如果 rpcbind 服务未启动,执行命令 rpcinfo -p localhost 检查时,会报如下错误。rpcinfo: can't contact portmapper: RPC: Remote system error - Connection refusedrootnfs-server # rpcinfo -p localhost#<=rpcbind 服务未启动检查 rpcinfo 信息的报错rpcinfo: can't contact portmapper: RPC: Remote system error - rootnfs-server #

37、 /etc/init.d/rpcbind start #<=启动 rpcbind 服务Starting rpcbind:OK rootnfs-server # /etc/init.d/rpcbind status rpcbind (pid27835) is running.rootnfs-server # lsof -i :111COMMANDPID USERFDTYPE DEVICE SIZE/OFF NODE NAMErpcbind 1276rpc6uIPv4106650t0UDP *:sunrpcrpcbind 1276rpc8uIPv4106680t0TCP *:sunrpc (

38、LISTEN) rpcbind 1276rpc9uIPv6106700t0UDP *:sunrpcrpcbind 1276rpc11uIPv6106730t0TCP *:sunrpc (LISTEN) rootnfs-server # netstat -lntup|grep rpcbindtcp00 0.0.0.0:1110.0.0.0:*LISTEN1276/rpcbindtcp00 :111:*LISTEN1276/rpcbindudp00 0.0.0.0:6030.0.0.0:*1276/rpcbindudp00 0.0.0.0:1110.0.0.0:*1276/rpcbindudp00

39、 :603:*1276/rpcbindudp00 :111:*1276/rpcbindrootnfs-server # rpcinfo -p localhost#<=查看 NFS 服务向 rpc 服务的端口信息,因为 NFS服务还没起,因此,没太多的端口信息。请注意和后面启动 NFS 服务后这里的对比。program vers protoportservice 1000004tcp111portmapper1000003tcp111portmapper1000002tcp111portmapper1000004udp111portmapper1000003udp111portmapper

40、1000002udp111portmapper#提示:111 端口为 rpcbind 服务对外提供服务的主端口。rootnfs-server # chkconfig -list rpcbind#<=检查 rpcbind 开机是否自启动了rpcbind0:off1:off2:on3:on4:on5:on6:offConnection refused15老男孩 linux 运维实战教育中文解释为:rpcinfo:无法同 portmapper 交互: RPC:系统错误 - 拒绝连接。解决办法: 执行/etc/init.d/rpcbind start 启动 rpcbind 服务即可。10.4.3

41、.2 启动 NFS 服务启动令如下:rootnfs-server # LANG=enrootnfs-server # /etc/init.d/rpcbind status #<=检查 rpcbind 服务状态rpcbind (pid996) is running.rootnfs-server # /etc/init.d/nfs status #<=检查 NFS 服务状态rpc.svcgssd 已停rpc.mountd is stopped nfsd is stopped rpc.rquotad is stoppedrootnfs-server # /etc/init.d/nfs s

42、tart #<=启动 NFS 服务Starting NFS services:OK Starting NFS quotas:OKStarting NFS mountd:OK Starting NFS daemon:OK 正在启动 RPC idmapd:rootnfs-server # /etc/init.d/nfs status #<=检查 NFS 服务状态rpc.svcgssd 已停rpc.mountd (pid 1233) is running .nfsd (pid 1249 1248 1247 1246 1245 1244 1243 1242) is running. rpc

43、.rquotad (pid 1228) is running.#查看中介信息房源信息rootnfs-server # rpcinfo -p localhost #<=查看 NFS 服务向 rpc 服务的端口信息,NFS 服务启动后, 我们发现信息很多了,有很多端口和功能的对应。program vers protoportservice 1000004tcp111portmapper1000003tcp111portmapper1000002tcp111portmapper1000004udp111portmapper1000003udp111portmapper1000002udp111

44、portmapper1000241udp 45557status16老男孩 linux 运维实战教育10.4.4 NFS 服务常见进程详解说明从上面 NFS 服务启动的过程可以看出,运行 NFS 服务默认需要启动的服务或进程至少有:NFS quotas(rpc.rquotad)、NFS daemon(nfsd)、NFS mountd(rpc.mountd)。可以通过执行如下命令查看启动NFS 后,系统中运行的 NFS 相关进程:rootnfs-server # ps -ef|egrep "rpc|nfs"rpc9961 0 16:27 ?00:00:00 rpcbindrp

45、cuser10161 0 16:27 ?00:00:00 rpc.statd#<=检查文件一致性1000241tcp 55422status1000111udp875rquotad1000112udp875rquotad1000111tcp875rquotad1000112tcp875rquotad1000051udp 33050mountd1000051tcp 33405mountd1000052udp 34531mountd1000052tcp 60545mountd1000053udp 54527mountd1000053tcp 48669mountd1000032tcp2049n

46、fs1000033tcp2049nfs1000034tcp2049nfs1002272tcp2049nfs_acl1002273tcp2049nfs_acl1000032udp2049nfs1000033udp2049nfs1000034udp2049nfs1002272udp2049nfs_acl1002273udp2049nfs_acl1000211udp 39036nlockmgr1000213udp 39036nlockmgr1000214udp 39036nlockmgr1000211tcp 38820nlockmgr1000213tcp 38820nlockmgr1000214tc

47、p 38820nlockmgr17老男孩 linux 运维实战教育NFS 服务的主要任务是共享文件系统数据,而文件系统数据的共享离不开权限问题。所以 NFS服务器启动时最少需要两个不同的进程,一个是管理 NFS 客户端是否能够登入的 rpc.nfsd 主进程,另一个用于管理 NFS 客户端是否能够取得对应权限的 rpc.mountd 进程。如果还需要管理磁盘,则 NFS 还要再加载 rpc.rquotad 进程。表 10-2 给出了 NFS 服务启动的进程说明。表 10-2NFS 服务启动的进程说明服务或进程名用途说明nfsd (rpc.nfsd)rpc.nfsd 的主要功能是管理 NFS 客

48、户端是否能够登入 NFS服务端主机,其中还包含登入者的 ID 判别等。mountd(rpc.mountd)rpc.mountd 的主要功能则是管理 NFS 文件系统。当 NFS 客户端顺利通过 rpc.nfsd 登入 NFS 服务端主机时,在使用NFS 服务器提供数据之前,它会去读 NFS 的配置文件/etc/exports 来比对 NFS 客户端的权限,通过这一关之后, 还会经过 NFS 服务端本地文件系统使用权限(就是owner、group、other 权限)的认证程序。如果都通过了,NFS 客户端就可以取得使用 NFS 服务器端文件的权限。注意,这个/etc/exports 文件也是我们

49、用来管理 NFS 共享目录root12192 0 16:29 ?00:00:00 rpciod/0root15521 0 16:31 ?00:00:00 rpc.rquotad #<=磁盘进程(remote quota server)root15571 0 16:31 ?00:00:00 rpc.mountd #<=权限管理验证等(NFS mount daemon)root15642 0 16:31 ?00:00:00 nfsd4root15652 0 16:31 ?00:00:00 nfsd4_callbacksroot15662 0 16:31 ?00:00:00 nfsd#&

50、lt;=NFS 主进程 daemonroot15672 0 16:31 ?00:00:00 nfsd#<=NFS 主进程root15682 0 16:31 ?00:00:00 nfsd#<=NFS 主进程root15692 0 16:31 ?00:00:00 nfsd#<=NFS 主进程,管理登入,ID判别等。root15702 0 16:31 ?00:00:00 nfsd#<=NFS 主进程root15712 0 16:31 ?00:00:00 nfsd#<=NFS 主进程root15722 0 16:31 ?00:00:00 nfsd#<=NFS 主进程

51、root15732 0 16:31 ?00:00:00 nfsd#<=NFS 主进程root16001 0 16:31 ?00:00:00 rpc.idmapd #<=name mapping daemon 用户压缩/用户root:34 pts/000:00:00 egrep rpc|nfs18老男孩 linux 运维实战教育的使用权限与安全设置的地方,特别强调,NFS 本身设置的是网络共享权限,整个共享目录的权限还和目录自身的系统权限有关。rpc.lockd(非必要)可用来锁定文件,用于多客户端同时写入rpc.statd(非必要)检查文件的一致性,与 rpc.lockd 有关。c、d 两个服务需要客户端、服务器端同时开启才可以;rpc.statd:来自其它主机重启,并且管理当本地系统重启时主机列表rpc.idmapd名字进程19老男孩 linux 运维实战教育对以上进程查看,均可以执行“man 进程名”命令,例如:“man rpc.idmapd”,可查看有关NFS 服务进程的英文说明参考:NFS serving is taken care of by five daemons: rpc.nfsd, which

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论