客户端缓存委派
在 NFSv3 中,客户端通常当作它们已打开的文件之间存在竞争(尽管通常不是这种情况)来处理。通过从客户端到服务器的频繁请求以查证是否打开的文件已被其他人修改,系统保持了较弱的一致性,这会导致不必要的网络流量并在高延迟的环境中造成延误。在客户端锁定文件的情况下,所有写 I/O 必须同步,这在很多情况下将进一步影响客户端性能。
NFSv4 与 NFS 以前的版本不同,它允许服务器将文件上的专门活动委派给客户端,以便实现更多积极的客户端数据缓存并允许缓存锁定状态。服务器通过委派放弃对文件更新和客户端的锁定状态的控制。通过允许客户端在本地执行不同的操作和缓存数据,减少了延迟。目前存在两种类型的委派:读和写。服务器在存在文件竞争时能够从客户端调回委派。
一旦客户端具有委派,它就能在已在本地缓存数据的文件上执行操作,以避免网络延迟并优化 I/O。由委派引起的更为积极的缓存在具有以下特点的环境中能发挥较大的作用:
l 频繁打开和关闭
l 频繁的 GETATTR
l 文件锁定
l 只读共享
l 高延迟
l 快客户端
l 具有多个客户端的重负荷服务器
Data ONTAP 支持读写委派,并且您可以单独调整 NFSv4 服务器以启用或禁用委派的一种或全部两种类型。打开委派时,Data ONTAP 会自动向客户端授予打开文件读取的读委派,或向客户端授予打开文件写入的写委派。
系统提供启用或禁用读写委派选项,以便您对委派影响具有一定水平的控制。理想情况下,服务器将确定是否向客户端提供委派。在读操作高度密集的环境中,打开读委派会很有用。在工程设计中写委派将构建这样的环境,环境中每个用户写入单独的构建文件并且性能还会由于不存在竞争而改善。但是,在同一文件具有多个写入者的情况中,写委派可能没有多大用处。
作者简介

Bikash R.Choudhury
Bikash 目前担任 NFS/技术应用程序解决方案架构师,他现在主要是为使用 NFS 的技术应用程序解决方案设计体系结构,执行功能测试和认证,以及为 NFS 非常好的实践提供全球合作伙伴联盟支持。Bikash 八年前在 NetApp 作为一名技术支持工程师开始自己的职业生涯,后来,他成为 NetApp 其中一位大客户的全球技术顾问 (TGA)。