本文分享自天翼云开发者社区《NFS v3及v4协议区别》,作者:章****凯

NFS v4相比v3,有部分功能的增强,如果应用需要实现如下功能,则必须使用NFS v4(建议和应用侧确实是否有NFS v4需求,一般情况下,应用侧会对是否采用NFS v4有明确需求):

ID Domain Mapping

NFS v4引入Domain概念,加强了权限管控的能力。访问NFS v4的卷需要授权,因此性能相比NFS v3略有下降。授权NFS V4访问,需要部署LDAP服务器做权限管控,并涉及操作系统部分配置文件修改

NFS v4.x Access Control Lists (ACLs)

NFS v4支持同一文件的不同用户权限控制,例如对文件1.txt,用户A是755权限,用户B是600权限,通常这类权限管控要求是业务侧决定的。而NFS V3是基于user ID实现的权限控制

locking model锁机制

(1)NFS v3通过操作系统的NLM对文件加锁,由操作系统加锁,无需NFS服务端控制,协议开销小; NFSv4设计成了一种有状态的协议,自身实现了文件锁功能和获取文件系统根节点功能,不需要NLM和MOUNT协议协助了。由NFS服务控制文件访问锁,NFS协议开销更高;

(2)NFS v4支持字节锁功能,不同客户端可同时对一个文件进行修改和操作,如果业务有此类场景,可以考虑使用NFS V4

并发访问

NFS v4.1相比v4.0和v3,支持多客户端、高并发并行访问存储。在之前的协议中,客户端直接与服务端连接,客户端直接将数据传输到存储中。当客户端数量较少时这种方式没有问题,但是如果大量的客户端要访问数据时,NFS服务端将会成为瓶颈,抑制了系统的性能。

delegation访问委派

NFS v4支持访问委派(delegation)功能,降低文件属性和状态的协议同步开销。

由于多个客户端可以挂载同一个文件系统,为了保持文件同步,NFSv3客户端需要经常向服务器发起请求,请求文件属性信息,判断其他客户端是否修改了文件。如果文件系统是只读的,或者客户端对文件的修改不频繁,频繁向服务器请求文件属性信息会降低系统性能。NFSv4可以依靠delegation实现文件同步。当客户端A打开一个文件时,服务器会分配给客户端A一个delegation。只要客户端A具有delegation,就可以认为与服务器保持了一致。如果另外一个客户端B访问同一个文件,则服务器会暂缓客户端B的访问请求,向客户端A发送RECALL请求。当客户端A接收到RECALL请求时将本地缓存刷新到服务器中,然后将delegation返回服务器,这时服务器开始处理客户端B的请求。

NFS v3相比v4,在实际生产环境中的应用时间长,稳定性更高,并且各个操作系统厂商对NFS v3的支持和补丁更完善,所以如果没有NFS v4特性的必要使用需求,还是建议采用NFS v3。

NFS v3及v4协议区别的更多相关文章

  1. react-router v3和v4区别

    1.默认路由 v3 <IndexRoute> v4 <Route exact> 2.授权路由 import Redirect from 'react-router-dom' & ...

  2. CoAP、MQTT、RESTful协议区别

    /********************************************************************** * CoAP.MQTT.RESTful协议区别 * 说明 ...

  3. ​Web(click and script) 与 Web(HTTP/HTML)协议区别

    Web(click and script) 与 Web(HTTP/HTML)协议区别 webjavascriptvbscript浏览器脚本login 先从最简单的说明上来看, Web(HTTP/HTM ...

  4. Inception V1、V2、V3和V4

    Inception模块分为V1.V2.V3和V4. V1(GoogLeNet)的介绍 论文:Going deeper with convolutions 论文链接:https://arxiv.org/ ...

  5. TCP协议与HTTP协议区别

    一.TCP协议与HTTP协议区别 1.直观认识 TCP协议对应于传输层,而HTTP协议对应于应用层,从本质上来说,二者没有可比性.Http协议是建立在TCP协议基础之上的,当浏览器需要从服务器获取网页 ...

  6. 如何确定一个NFS的mount是v3还是v4?

    命令如下: nfsstat –m nfsstat –m | grep /home/mymnt 参考资料 ============ https://unix.stackexchange.com/ques ...

  7. td-agent的v2,v3,v4版本区别

    官方地址:https://docs.fluentd.org/quickstart/td-agent-v2-vs-v3-vs-v4

  8. http、tcp、udp、OAUTH2.0网络协议区别

                    一.先来一个讲TCP.UDP和HTTP关系的 1.TCP/IP是个协议组,可分为三个层次:网络层.传输层和应用层. 在网络层有IP协议.ICMP协议.ARP协议.RAR ...

  9. HTTP/2.0与HTTP/1.1协议区别

    超文本传输协议(英文:HyperText Transfer Protocol,缩写:HTTP)是互联网上应用最为广泛的一种网络协议.设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法.通 ...

  10. HTTP协议与HTTPS协议区别

    HTTPS(Secure Hypertext Transfer Protocol)安全超文本传输协议:   它是一个安全通信通道,它基于HTTP开发,用于在客户计算机和服务器之间交换信息,它使用安全套 ...

随机推荐

  1. Abp vNext 入门到放弃系列

    文章目录 1.模块介绍 2.模块加载机制 3.依赖注入 4.AutoMapper-- 待定 5.本地化--待定 6.模型验证--待定 7.异常处理--待定 8.缓存 9.动态代理和拦截 10.分布式锁 ...

  2. python之在线书籍

    人生苦短,我用python, 这里罗列一些可以查看python电子书的相关链接,平时没事多看看,一定会大有裨益!!! python3-cookbook[https://python3-cookbook ...

  3. CudaSPONGE高性能GPU分子模拟

    技术背景 CudaSPONGE是基于CUDA C开发的一款纯GPU分子动力学模拟软件,具有模块化和高性能的特点.官方基本介绍内容如下: 分子动力学(Molecular Dynamics, MD)模拟是 ...

  4. InheritableThreadLocal 父子线程值传递

    最近项目中使用 @Async 异步远程调用的时候,发现主线程能拿到 token 值,子线程调用的时候 token 为 null.研究了一番,发现可以直接使用 InheritableThreadLoca ...

  5. Web API 控制器的行为和操作方法的属性

    ControllerBase 类 Web API 包含一个或多个派生自 ControllerBase 的控制器类. Web API 项目模板提供了一个入门版控制器 [ApiController] [R ...

  6. 【Amadeus原创】HP惠普笔记本重装系统无法引导无法进操作系统的终极解决方法

    F9进入BIOS-先进(Advanced)-安全引导配置- 启用传统支持和禁用安全引导

  7. 【Amadeus原创】更改docker run启动参数

    经过一整天的摸索,答案: 没法直接修改.只能另外创建. 但是还好不用完全重头来,用docker commit命令可以基于当前修改的内容创建一个新的image. 执行docker 看看帮助先: Comm ...

  8. 【Amadeus原创】Docker安装最新版wordpress

    0.安装docker curl -fsSL https://get.docker.com | bash -s docker --mirror aliyun service docker start 1 ...

  9. 中电金信:GienTech动态| 获奖、合作、与伙伴共谋数字化转型…

    ​ ​ -- -- GienTech动态 -- -- 中电金信携"源启"亮相第十二届中国电子信息博览会 ​ 4月11日,为期三天的"第十二届中国电子信息博览会" ...

  10. MySQL百万级数据量分页查询方法及其优化

    1. 直接用limit start, count分页语句, 也是我程序中用的方法: select * from product limit start, count 当起始页较小时,查询没有性能问题, ...