行业动态

了解最新公司动态及行业资讯

当前位置:首页>新闻中心>行业动态
全部 4048 公司动态 912 行业动态 3136

NFS协议NFS服务工作原理及工作流程介绍-苏州安嘉

时间:2022-06-20   访问量:2809

一、NFS 协议

NFS 服务工作在 TCP 的 2049 端口和 UDP 的 2049 端口。

NFS是File的缩写,即 File ,是分布式文件系统中使用的一种协议。作用是让不同的机器和不同的操作系统通过网络共享各自的数据,使客户端可以通过网络访问位于服务器磁盘中的数据,是Unix之间实现磁盘文件共享的一种方法类系统。.

此 NFS 服务器允许您的 PC 将网络上远程 NFS 服务器共享的目录挂载到本地计算机。在本地机器上,远程主机的目录看起来就像它自己的磁盘分区槽。

1.1 工作原理

因为NFS支持的功能相当多,而且不同的功能会使用不同的程序来启动,所以每次启动一个功能,都会启用一些端口来传输数据。因此,NFS功能对应的端口不是固定的,而是随机选择一些小于1024的未使用端口进行传输。但这在客户端要连接服务器的时候也会带来麻烦,因为客户端必须知道服务器的相关端口才能连接!

NFS 在文件传输或信息传输过程中依赖于 RPC 协议。RPC 是 Call 的缩写,是一种使客户端能够在其他系统中执行程序的机制。RPC的主要作用是指定每个NFS函数对应的端口号,并上报给客户端,以便客户端连接到正确的端口。

NFS本身不提供信息传输的协议和功能,但是NFS允许我们通过网络共享数据,因为NFS使用了一些其他的传输协议。而这些传输协议使用这个 RPC 功能。可以说NFS本身就是一个使用RPC的程序服务器运维,或者说NFS也是一个RPC。所以只要使用了NFS,就必须启动RPC服务,不管是NFS还是NFS。这样就可以通过RPC来实现PORT的对应。RPC和NFS的关系可以这样理解:NFS是一个文件系统,RPC负责信息的传递。

事实上,很多这样的服务器都注册了RPC,例如NIS()也是RPC的一种。

Linux 系统实战之 部署 NFS 服务器

RPC 是如何知道每个 NFS 的端口的?

客户端如何与 NFS 服务器交换数据?

1.2 激活 NFS 服务

NFS 服务需要激活几个重要的 RPC 守护进程

工作过程

nfs— => => => nfs-(nfsd)

Linux 系统实战之 部署 NFS 服务器

(1)rpc.nfsd

(2)rpc.

主要功能

请求过程

注意:NFS 需要两个套件

NFS 服务的主要套件

为两个 NFS 守护程序 rpc.nfsd 和 rpc. 以及其他相关文档和文档、可执行文件等提供包。

主要负责RPC端口与守护进程的映射关系,即

在激活任何 RPC 之前,我们需要激活它

1.3 版本比较

NFS 是一个网络文件系统。自 1985 年推出以来,已经发布了三个版本:NFSv2、NFSv3、NFSv4,NFSv4 包含两个次要版本 NFSv4.0 和 NFSv4.1。经过20多年的发展,NFS发生了很大的变化。最大的变化是发起人已经从Sun改变了。NFSv2和NFSv3基本由Sun起草,从NFSv4.0参与,主导NFSv4.1标准制定过程,Sun已被收购。

Linux 系统实战之 部署 NFS 服务器

1. 。NFSv3

协议特性

区分差异

3. NFSv4.0 协议特性差异

(1) NFSv4 增加了安全性并支持 -GSS 身份验证。

(2) NFSv4被设计成有状态协议,实现了文件锁功能和获取文件系统根节点的功能。

(3) NFSv4 只提供了 NULL 和 2 个请求,所有操作都集成在其中。客户端可以根据实际请求将多个操作封装成一个请求,增加了灵活性。

(4)NFSv4文件系统的命令空间发生变化服务器运维,服务器必须设置根文件系统(fsid=0),其他文件系统挂载导出到根文件系统上)。

(5) NFSv4 支持。由于多个客户端可以挂载同一个文件系统,为了保持文件同步,NFSv3 中的客户端需要频繁向服务器发起请求,请求文件属性信息,并判断其他客户端是否有修改如果文件系统是只读的,或者客户端不经常修改文件,频繁向服务器请求文件属性信息会降低系统性能,NFSv4可以依靠文件同步的实现。

(6) NFSv4修改了文件属性的表示。由于NFS是Sun公司开发的文件系统,设计的NFS文件属性指的是UNIX中的文件属性,可能没有某些属性,所以NFS与操作系统的兼容性系统不是很好。

4. NFSv4.1

二、NFS 服务

以 NFSv4 作为默认版本,NFSv4 使用 TCP 协议(​​端口号为 2049) 与 NFS 服务器建立连接。

# 系统环境
系统平台:CentOS release 7.0 (Final)
NFS Server IP:192.168.10.10
防火墙已关闭/iptables: Firewall is not running.
SELINUX=disabled

2.1 安装NFS服务服务器客户端

查看 NFS 服务端口

# 使用rpcinfo -P会发现rpc启动了很多监听端口
[root@localhost ~]# rpcinfo -p localhost
   program vers proto   port  service
    100000    4   tcp    111  portmapper
    100000    2   udp    111  portmapper
    100005    1   udp  49979  mountd
    100005    1   tcp  58393  mountd
    100003    2   tcp   2049  nfs
    100227    2   tcp   2049  nfs_acl
    ......
# 添加如下
[root@localhost ~]# vim /etc/sysconfig/nfs
RQUOTAD_PORT=30001
LOCKD_TCPPORT=30002
LOCKD_UDPPORT=30002
MOUNTD_PORT=30003
STATD_PORT=30004

启动服务

[root@localhost ~]# service nfs start
Starting NFS services:        [OK]
Starting NFS quotas:          [OK]
Starting NFS mountd:          [OK]
Starting NFS daemon:          [OK]
Starting NFS idmapd:          [OK]

2.2 服务文件配置

Linux 系统实战之 部署 NFS 服务器

我们可以定义要共享的目录和对应的权限,格式为“共享目录的路径允许访问NFS客户端(共享权限参数)”

Linux 系统实战之 部署 NFS 服务器

[root@localhost ~]# cat /etc/exports
/nfsfile 192.168.10.*(rw,sync,root_squash)
/tmp/serverdir 192.168.174.132(rw,sync,no_root_squash) 192.168.174.133(ro,sync,no_root_squash)

三、实战演示

有兴趣可以试试:两台web服务器,共享关系数据库,共享NFS服务器,使用DNS记录轮询提供负载均衡。

第 1 步:机器设置

主机名 操作系统 IP 地址 NFS 服务器 RHEL 7192.168.10.10NFS 客户端 RHEL 7192.168.10. 20

# 清空NFS服务器上面iptables防火墙的默认策略,以免默认的防火墙策略禁止正常的NFS共享服务
[root@localhost ~]# iptables -F
[root@localhost ~]# service iptables save
iptables: Saving firewall rules to /etc/sysconfig/iptables:[ OK ]

第二步:创建共享目录

[root@localhost ~]# mkdir /nfsfile
[root@localhost ~]# chmod -Rf 777 /nfsfile
[root@localhost ~]# echo "welcome to localhost.com" > /nfsfile/readme

第三步:编辑配置文件 /etc/

# 把/nfsfile目录共享给192.168.10.0/24网段内的所有主机,让这些主机都拥有读写权限
[root@localhost ~]# vim /etc/exports
/nfsfile 192.168.10.*(rw,sync,root_squash)

第四步:启动并启用 NFS 服务程序

[root@localhost ~]# systemctl restart rpcbind
[root@localhost ~]# systemctl enable rpcbind
[root@localhost ~]# systemctl start nfs-server
[root@localhost ~]# systemctl enable nfs-server
ln -s '/usr/lib/systemd/system/nfs-server.service' '/etc/systemd/system/nfs.target.wants/nfs-server.service'

第 5 步:配置 NFS 客户端

命令

参数功能 -e 显示 NFS 服务器的共享列表 -a 显示本机挂载的文件资源情况 NFS 资源情况 -v 显示版本号

命令

# 查看NFS服务器端共享的文件系统
# showmount -e NFSSERVER_IP
[root@localhost ~]# showmount -e 192.168.10.10
Export list for 192.168.10.10:
/nfsfile 192.168.10.*
# NFS客户端创建一个挂载目录,挂载服务端NFS文件系统到本地
# mount -t nfs SERVER:/path/to/sharedfs  /path/to/mount_point
[root@localhost ~]# mkdir /nfsfile
[root@localhost ~]# mount -t nfs 192.168.10.10:/nfsfile /nfsfile

# 挂载成功后就应该能够顺利地看到在执行前面的操作时写入的文件内容了
[root@localhost ~]# cat /nfsfile/readme
welcome to linuxprobe.com
# 如果希望NFS文件共享服务能一直有效,则需要将其写入到fstab文件中
# SERVER:/PATH/TO/EXPORTED_FS  /mount_point  nfs  defaults,_netdev  0  0
[root@localhost ~]# vim /etc/fstab
/dev/mapper/rhel-root / xfs defaults 1 1
UUID=812b1f7c-8b5b-43da-8c06-b9999e0fe48b /boot xfs defaults 1 2
/dev/mapper/rhel-swap swap swap defaults 0 0
/dev/cdrom /media/cdrom iso9660 defaults 0 0
192.168.10.10:/nfsfile /nfsfile nfs defaults 0 0

上一篇:IT外包运维服务(IT),就是企业核心业务

下一篇:上海网络运维工作工资是多少那么,你知道吗?

发表评论:

评论记录:

未查询到任何数据!

在线咨询

点击这里给我发消息 售前咨询专员

点击这里给我发消息 售后服务专员

在线咨询

免费通话

24小时免费咨询

请输入您的联系电话,座机请加区号

免费通话

微信扫一扫

微信联系
返回顶部