nfs中portmap的作用

Linux下RPC服务由portmap服务控制。

因为NFS支持的功能相当多,而不同的功能都会使用不同的程序来启动。每启动一个功能就会启用一些端口来传输数据,因此NFS的功能所对应的端口才没有固定,而是采用随机取用一些未被使用的小于724的端口来作为传输之用。但如此一来又造成客户端要连接服务器时的困扰,因为客户端要知道服务器端的相关端口才能够联机,此时我们需要远程过程调用(RPC)的服务。RPC最主要的功能就是指定每个NFS功能所对应的端口号,并且回报给客户端,让客户端可以连接到正确的端口上。当服务器在启动NFS时会随机选用数个端口,并主动地向RPC注册。因此RPC可以知道每个端口对应的NFS功能。然后RPC固定使用端口111来监听客户端的请求并回报客户端正确的端口,所以可以让NFS的启动更为容易。注意,启动NFS之前,要先启动RPC;否则NFS会无法向RPC注册。另外,重新启动RPC时原本注册的数据会不见,因此RPC重新启动后它管理的所有程序都需要重新启动以重新向RPC注册。
当客户端有NFS文件要存取请求时,它如何向服务器端要求数据?
(1)客户端会向服务器端的RPC(port 111)发出NFS文件存取功能的询问请求。
(2)服务器端找到对应的已注册的NFS daemon端口后会回报给客户端。
(3)客户端了解正确的端口后,就可以直接与NFS守护进程来联机。
由于NFS的各项功能都必须要向RPC注册,因此RPC才能了解NFS服务的各项功能的port number、PID和NFS在主机所监听的IP等,而客户端才能够通过RPC的询问找到正确对应的端口。即NFS必须要有RPC存在时才能成功地提供服务,因此我们称NFS为RPC Server的一种。事实上,有很多这样的服务器都向RPC注册。例如,NIS(Network Information Service)也是RPC Server的一种。不论是客户端还是服务器端,要使用NFS都需要启动RPC。

通常,为了能够正常使用NFS,还需要一些相关的服务来协同工作:
nfs:启动相应RPC服务进程来服务对于NFS文件系统的请求。
nfslock:一个可选的服务,用于启动相应的RPC进程,允许NFS客户端在服务器上对文件加锁。
portmap:Linux的RPC服务,它响应RPC服务的请求和与请求的RPC服务建立连接。

下面的RPC后台进程是为NFS提供服务的:
rpc.mountd:这个进程接受来自NFS客户端的加载请求和验证请求的文件系统正在被输出。这个进程由NFS服务自动启动,不需要用户的配置。
rpc.nfsd:这个进程是NFS服务器.它和Linux核心一起工作来满足NFS客户端的动态需求,例如提供为每个NFS客户端的每次请求服务器线程。这个进程对应于nfs服务。
rpc.lockd:一个可选的进程,它允许NFS客户端在服务器上对文件加锁。这个进程对应于nfslock服务。
rpc.statd:这个进程实现了网络状态监控(NSM)RPC协议,通知NFS客户端什么时候一个NFS服务器非正常重启动。这个进程被nfslock服务自动启动。不需要用户的配置。
rpc.rquotad:这个进程对于远程用户提供用户配额信息。这个进程被nfs服务自动启动,不需要用户的配置。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在 Linux 上部署 NFS(Network File System)可以使多个计算机共享文件系统。以下是在 Linux 上部署 NFS 的简单步骤: 1. 安装 NFS 服务端和客户端:在 Linux 服务器上安装 nfs-utils 和 portmap 包,例如在 CentOS 上可以使用以下命令: ``` sudo yum install nfs-utils portmap ``` 2. 创建共享目录:选择要共享的目录,并将其标记为可读写和可共享。例如,可以创建名为 /mnt/nfs_share 的目录并设置其权限: ``` sudo mkdir /mnt/nfs_share sudo chmod -R 777 /mnt/nfs_share sudo chown nfsnobody:nfsnobody /mnt/nfs_share ``` 3. 配置 NFS 服务器:编辑 /etc/exports 文件,添加要共享的目录和允许访问该目录的客户端的 IP 地址或主机名。例如,可以将以下行添加到 /etc/exports 文件: ``` /mnt/nfs_share client1(rw,sync,no_root_squash) client2(ro,sync,no_root_squash) ``` 其,/mnt/nfs_share 是要共享的目录,client1 和 client2 是允许访问该目录的客户端的 IP 地址或主机名。rw 和 ro 分别表示可读写和只读权限,sync 表示同步写入,no_root_squash 表示 root 用户具有 root 权限。 4. 启动 NFS 服务:启动 NFSportmap 服务并设置开机自启: ``` sudo systemctl start nfs-server sudo systemctl enable nfs-server sudo systemctl start rpcbind sudo systemctl enable rpcbind ``` 5. 配置客户端:在客户端上,安装 nfs-utils 包并创建一个本地目录以挂载共享目录。例如,在客户端上使用以下命令: ``` sudo yum install nfs-utils sudo mkdir /mnt/nfs_share ``` 6. 挂载共享目录:在客户端上,使用以下命令将服务器上的共享目录挂载到本地目录: ``` sudo mount -t nfs server:/mnt/nfs_share /mnt/nfs_share ``` 其,server 是 NFS 服务器的 IP 地址或主机名,/mnt/nfs_share 是要共享的目录,在客户端上也需要将其挂载到同样的目录。 以上是在 Linux 上部署 NFS 的简单步骤,你可以根据自己的需要进行相应的配置和调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值