待办事项¶
截至 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 和功能(cifs.ko 中现已实现直通 ioctl/fsctl,允许直接从用户空间发送各种 SMB3 fsctl 以及查询信息和设置信息调用)。添加工具以便更轻松地从工具设置各种非 POSIX 元数据属性(例如,扩展 smb-info 工具中已完成的工作)。
加密文件支持(目前报告文件在服务器上已加密的属性,但不支持更改该属性)。
改进的统计信息收集工具(或许与 nfsometer 集成?),以扩展和简化目前在 /proc/fs/cifs/Stats 中的内容的使用
添加对基于声明的 ACL (“DAC”) 的支持
挂载助手 GUI(简化挂载时的各种配置选项)
扩展对 witness 协议的支持,以允许共享移动和服务器网卡更改的通知。目前 Linux 客户端仅支持 witness 协议的服务器移动通知。
允许 mount.cifs 在报告方言或不支持的功能错误时提供更详细的信息。由于新的挂载 API 的实现,现在这将更容易实现。
更新 CIFS 文档和用户指南。
解决在标准文件系统 xfstests 套件中运行更广泛的 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 (产品 = File System, 组件 = CIFS) 和 xfstest 结果,例如 https://wiki.samba.org/index.php/Xfstest-results-smb3
杂项测试待办事项¶
检查针对各种服务器类型的最大路径名和最大路径名组件。尝试嵌套符号链接(8 层深)。在 stat -f 信息中返回最大路径名
改进 xfstest 的 CIFS/SMB3 启用,并根据需要调整 xfstest 以更好地测试 CIFS/SMB3
使用 iozone 及类似工具进行额外的性能测试和优化——有一些简单的更改可以并行化顺序写入,并在禁用签名时请求更大的读取大小(大于协商大小)并向现代服务器发送更大的写入大小。
针对不常见服务器进行更彻底的测试
继续扩展 SMB3“buildbot”,该机器人目前对 Windows、Samba 和 Azure 进行自动化 xfstesting——以添加更多测试并允许 buildbot 更快地执行测试。buildbot 的 URL 是:http://smb3-test-rhel-75.southcentralus.cloudapp.azure.com
解决各种 Coverity 警告(大多数本身并非错误,但解决的警告越多,就越容易发现静态分析器未来会指出的真正问题)。