LWN: NFS和Samba对Linux kernel还有什么新功能需求吗?

栏目: 服务器 · 发布时间: 6年前

内容简介:全文完极度欢迎将文章分享到朋友圈长按下面二维码关注:Linux News搬运工,希望每周的深度文章以及开源社区的各种新近言论,能够让大家满意~

Common needs for Samba and NFS

By Jake Edge

May 15, 2019

LSFMM

Amir Goldstein在2019 Linux Storage, Filesystem, and Memory-Management Summit的最后一天,主持了Samba和NFS的相关讨论。Samba和NFS是 Linux 生态中两个最主要的网络文件系统。这个讨论会议主要想了解,Samba和NFS是否还迫切希望kernel增加哪些功能?Amir已经有一些想法,也想听听会议上聚集的这些文件系统专家的意见。

他最近开始研究kernel NFS daemon (knfsd),他的公司提供的NAS device的客户很少有人用NFS,大多数都是在用Samba (也就是常说的SMB)。他希望这两个文件系统都能对其他操作系统有更好的支持。

LWN: NFS和Samba对Linux kernel还有什么新功能需求吗?

他首先问一些Samba开发者,他们有没有觉得让Linux kernel增加他们需要的功能很困难?从反馈上来看,他感觉Samba开发者好像都被kernel社区开发者给吓退了。他认为最后一次Samba开发者提出功能需求的时候,“他们采用的方法不对”。那次提出的是希望VFS层增加一些Samba特有的功能,例如阻止对某个特定文件的读、写。VFS maintainer(维护者)认为这种改动不合理,无法接受。

而跟NFS开发者进行的讨论中,大家都认为Samba和NFS应该多交流,找到共同点,来推动kernel支持。有些功能,要么是只能在kernel实现,要么是在kernel实现会具有巨大的优势。这样如果能提出一组能实现大家目的的较少的改动,就很有可能被kernel community接受并合入。

他举得第一个例子是opportunistic locks (OpLocks)。Samba文件系统里,当一个用户使用到某个文件的时候,就会申请OpLocks。获取到这个锁之后,就意味着这个用户可以持续不断的操作这个文件,不需要把它的改动随时flush回server端。当其他客户端也访问这个文件的时候,server会收回OpLock。之中模式可以让拥有OpLocks的文件访问非常高效,对系统性能很重要。

Samba使用OpLocks是有严格条件的,就是这块文件系统只用samba暴露出去的情况。比如说,如果同时也有一个NFS server把相同的一片filesystem区域export出去了,那么Samba就不会利用OpLocks机制来加速。这样非常合理,为了数据一致性损失了性能。此外,OpLocks也有two levels,Samba要用的话就两个level都用。

Steve French也提到了一些类似的限制。OpLocks是利用一个key来做区分的,也允许level-1的lock升级到level 2,不过Linux根本不支持这种升级。他不清楚NFS会不会升级lock。Trond Myklebust补充说NFS协议也支持升级,不过Linux同样没有实现这个功能。

Goldstein就在想怎样能让Samba和NFS都支持level 2的OpLocks。他想六月份先去Samba conference (sambaXP)搜集一下大家的反馈。如果要做的话,至少要像Bruce Fields此前在NFS会议中讲的那样,能够跟踪文件系统操作中的各个client客户端,管理好他们拥有的OpLocks以及租期。

针对目录来说,情况更加复杂一些。Goldstein在开发一个能让目录的改动触发通知的机制。他利用了一些hook来发出同步通知消息(synchronous notification)。不过有开发者担心暴露这些信息会有一些安全问题。所以最后可能会用类似OpLocks的租约管理的方式,增加一个timeout,在对端没有回应的时候能够关闭。

Myklebust介绍了NFS使用租期(leases)方式碰到的一个问题,就是time out超时之后不会自动被监测到。这样如果错过了通知时间窗(notification window),文件描述符(file descriptor)就会被关闭,或者被系统拒绝所有对这个文件的访问。这时候就需要采取一些恢复措施。Goldstein说他没有定下来用什么方案解决,只是先把问题提出来,希望大家有更好方案。

接下来,就是文件被打开时候如果指明了share modes,该怎么办。share modes有好几种设置,可以让其他打开这个文件的用户不能读或者写。5年前就有一组patch为了支持这个功能,在VFS层来检查并确保这些share modes生效。而Goldstein认为NFS和Samba应该能创造一组仅有它们两个文件系统使用的lock,来确保两者更好的兼容。可以像是BSP的flock()接口一样。每当调用open()接口的时候,可以用O_DENYWRITE和O_DENYREAD等flag来请求专有访问权限,但是只有在支持这些flag的文件系统上才会强制实行。

Ted Ts'o觉得还是需要有个文档来介绍一下目前碰到的各种问题。尤其是能帮助大家理解,如果不支持这些新功能,就会有什么大麻烦。Samba目前运行的挺不错的,所以更要跟kernel developer好好仔细介绍清楚,为什么Samba需要那些新功能,才能让patch被接受。

Goldstein觉得目前主要是跟其他文件系统介绍一下他的想法和计划,短期内并不指望有很多工作展开。希望能收集到更多可行的建议。

全文完

极度欢迎将文章分享到朋友圈 

长按下面二维码关注:Linux News搬运工,希望每周的深度文章以及开源社区的各种新近言论,能够让大家满意~

LWN: NFS和Samba对Linux kernel还有什么新功能需求吗?


以上所述就是小编给大家介绍的《LWN: NFS和Samba对Linux kernel还有什么新功能需求吗?》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Web Security Testing Cookbook

Web Security Testing Cookbook

Paco Hope、Ben Walther / O'Reilly Media / 2008-10-24 / USD 39.99

Among the tests you perform on web applications, security testing is perhaps the most important, yet it's often the most neglected. The recipes in the Web Security Testing Cookbook demonstrate how dev......一起来看看 《Web Security Testing Cookbook》 这本书的介绍吧!

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具