待办事项¶
截至 6.7 内核。有关按版本添加的功能列表,请参阅 https://wiki.samba.org/index.php/LinuxCIFSKernel
缺少功能的局部列表¶
欢迎投稿。 此模块有很多机会进行可见的、重要的贡献。 这是已知问题和缺失功能的局部列表
SMB3(和 SMB3.1.1)缺少可选功能:多通道性能优化、算法通道选择、目录租约优化、对更快的数据包签名(GMAC)的支持、对网络压缩的支持、T10 复制卸载,即“ODX”(复制块和“复制扩展”ioctl 是目前仅有的两种服务器端复制机制)
针对稀疏文件支持的更好优化复合和错误处理,也许会添加新的可选 SMB3.1.1 fsctl 以使折叠范围和插入范围更具原子性
通过 QUIC(以及其他基于套接字的协议(如 SCTP))支持 SMB3.1.1
配额支持(需要较小的内核更改,因为配额调用否则不会到达网络文件系统或无设备文件系统)。
可以优化其他用例以使用“复合”(例如 open/query/close 和 open/setinfo/close)来减少与服务器的往返次数并提高性能。 各种情况(stat、statfs、create、unlink、mkdir、xattrs)已经通过使用复合得到改进,但仍有改进空间。 此外,我们可以通过使用延迟关闭(带有句柄缓存租约)并更好地利用文件句柄上的引用计数器来显著减少冗余打开。
完成 inotify 支持,以便 kde 和 gnome 文件列表窗口将自动刷新(Asser 部分完成)。 需要较小的内核 vfs 更改以支持删除文件上的 D_NOTIFY。
添加 GUI 工具以配置 /proc/fs/cifs 设置并显示 CIFS 统计信息(已启动)
实现对 xattrs 的安全和受信任类别的支持(需要较小的协议扩展)以更好地支持 SELINUX
添加对树连接上下文的支持(请参阅 MS-SMB2),这是新的 SMB3.1.1 协议功能(可能对虚拟化特别有用)。
创建 UID 映射工具,以便服务器 UID 可以按每个挂载或每个服务器映射到客户端 UID,或者如果没有映射,则映射到 nobody。 还与 winbind 更好地集成以解析 SID 所有者
添加工具以利用更多 smb3 特定的 ioctl 和功能(passthrough ioctl/fsctl 现在已在 cifs.ko 中实现,允许直接从用户空间发送各种 SMB3 fsctl 和查询信息以及设置信息调用)添加工具以使从工具设置各种非 POSIX 元数据属性更容易(例如,扩展 smb-info 工具中所做的工作)。
加密文件支持(当前报告了在服务器上显示文件已加密的属性,但不支持更改该属性)。
改进的统计信息收集工具(或许与 nfsometer 集成?)以扩展和更容易使用当前在 /proc/fs/cifs/Stats 中的内容
添加对基于声明的 ACL (“DAC”) 的支持
挂载辅助 GUI(以简化挂载上的各种配置选项)
扩展对见证协议的支持,以允许通知共享移动和服务器网络适配器更改。 当前,Linux 客户端仅支持见证协议对服务器移动的通知。
允许 mount.cifs 在报告方言错误或不支持的功能错误时更加详细。 由于新挂载 API 的实现,现在可以更容易地实现这一点。
更新 cifs 文档和用户指南。
解决通过在标准文件系统 xfstest 套件中运行更广泛的 xfstests 而发现的错误。
将 cifs 和 smb3 支持拆分为单独的模块,以便可以在不需要旧版(且不太安全)CIFS 方言的环境中禁用它,并简化代码。
对 SMB3.1.1 的 POSIX 扩展进行额外测试
支持 Mac SMB3.1.1 扩展以改进与 Apple 服务器的互操作性
支持其他身份验证选项(例如 IAKERB、点对点 Kerberos、SCRAM 以及现有服务器支持的其他选项)
改进的跟踪、更多的 eBPF 跟踪点、用于性能分析的更好的脚本
已知错误¶
请参阅 https://bugzilla.samba.org - 在产品“CifsVFS”上搜索当前错误列表。 另请查看 http://bugzilla.kernel.org (产品 = 文件系统,组件 = CIFS) 和 xfstest 结果,例如 https://wiki.samba.org/index.php/Xfstest-results-smb3
要做的其他测试¶
针对各种服务器类型检查最大路径名和最大路径名组件。 尝试嵌套符号链接(8 层深)。 在 stat -f 信息中返回最大路径名
改进 xfstest 的 cifs/smb3 启用,并在需要时调整 xfstests 以更好地测试 cifs/smb3
使用 iozone 和类似工具进行额外的性能测试和优化 - 可以进行一些简单的更改来并行化顺序写入,并且当禁用签名时,可以请求更大的读取大小(大于协商的大小)并向现代服务器发送更大的写入大小。
针对不太常见的服务器进行更全面的测试
继续扩展 smb3“构建机器人”,该机器人目前对 Windows、Samba 和 Azure 执行自动 xfstesting,以添加其他测试并允许构建机器人更快地执行测试。 构建机器人的 URL 为:http://smb3-test-rhel-75.southcentralus.cloudapp.azure.com
解决各种 Coverity 警告(大多数本身不是错误,但解决的警告越多,就越容易发现静态分析器将来会指出的真正问题)。