NFS proto 和 mountproto 的区别

NFS proto 和 mountproto 的区别

在 RHEL 8.8 中,当我尝试测试 NFS tcp 与 udp 以及版本 3 与 4.0、4.1 和 4.2 时,mountproto=除了proto=键入mount.这有什么意义和意义呢?

在 RHEL 8.8 中,我是否可以在 nfs 客户端上专门vers=3显示NFS 操作?proto=udp

proto=tcp在 nfs 客户端上,当我看到和 时,这意味着什么mountproto=udp

答案1

在较旧的 NFS 版本(v2 和 v3)中,有两种不同的 RPC 服务由单独的软件处理:“MOUNT”协议仅用于从 rpc.mountd 获取初始文件系统句柄,“NFS”协议用于其他所有操作。

因此,该mountproto=选项定义了每当挂载 NFSv3 文件系统时用于访问 rpc.mountd 的传输。它对性能没有影响,只影响兼容性(较旧的 mountd 不支持 TCP)。 NFSv4 不再有mountproto=,因为与挂载相关的操作已集成到核心协议中。

同时proto=定义了用于传输文件数据的协议(实际的 NFS 操作)。 NFSv3 支持 UDP,所以是的,proto=udp,vers=3 是可能的,但请记住手册页中的警告消息 – NFS via UDP over a千兆位或更快的连接存在数据损坏的风险,连接速度越快,腐败的风险就越高。 NFSv4 仅支持 TCP 和 RDMA – 不再支持 UDP。

答案2

man 5 nfs

       mountproto=netid
                      The  transport  the NFS client uses to transmit requests
                      to the NFS server's mountd service when performing  this
                      mount  request,  and  when  later  unmounting this mount
                      point.
...
       proto=netid    The  netid determines the transport that is used to com-
                      municate with the NFS  server.   Available  options  are
                      udp,  udp6,  tcp,  tcp6, and rdma.  Those which end in 6
                      use IPv6 addresses and are only available if support for
                      TI-RPC is built in. Others use IPv4 addresses.

换句话说,仅确定和请求mountproto的协议,并在安装该区域后确定其余 NFS 操作的协议。mountumountproto

对于 NFSv3,您可以使用proto=tcpmountproto=udp

但是,NFSv4 仅支持 tcp,无法与 udp 配合使用。

                      All  NFS  version 4 servers are required to support TCP,
                      so if this mount option is not specified, the  NFS  ver-
                      sion  4  client  uses  the  TCP  protocol.  Refer to the
                      TRANSPORT METHODS section for more details.

而对于 NFSv4 则mountproto没有影响。

   Using the mountproto mount option
       This section applies only to NFS version 2 and version 3  mounts  since
       NFS version 4 does not use a separate protocol for mount requests.

相关内容