待辦事項

截至 6.7 核心。請參見 https://wiki.samba.org/index.php/LinuxCIFSKernel 獲取按版本新增的功能列表

部分缺失功能列表

歡迎貢獻。有許多機會為該模組做出可見且重要的貢獻。以下是已知問題和缺失功能的部分列表

  1. SMB3(和 SMB3.1.1)缺失可選功能:多通道效能最佳化、演算法通道選擇、目錄租約最佳化、支援更快的報文簽名 (GMAC)、支援網路壓縮、T10 複製解除安裝即“ODX”(目前僅支援複製塊和“重複擴充套件”ioctl 這兩種伺服器端複製機制)

  2. 更好的稀疏檔案支援複合操作和錯誤處理最佳化,可能需要新增新的可選 SMB3.1.1 fsctl 以使摺疊範圍和插入範圍更具原子性

  3. 支援基於 QUIC(以及其他基於套接字的協議如 SCTP)的 SMB3.1.1

  4. 配額支援(需要對核心進行少量修改,否則配額呼叫無法到達網路檔案系統或無裝置檔案系統)。

  5. 可以最佳化其他用例以使用“複合操作”(例如 open/query/close 和 open/setinfo/close),以減少到伺服器的往返次數並提高效能。各種情況(stat、statfs、create、unlink、mkdir、xattrs)已透過使用複合操作得到改進,但還有更多工作要做。此外,我們可以透過使用延遲關閉(帶有控制代碼快取租約)和更好地使用檔案控制代碼上的引用計數器來顯著減少冗餘的開啟操作。

  6. 完成 inotify 支援,以便 KDE 和 Gnome 檔案列表視窗能夠自動重新整理(Asser 已部分完成)。需要對核心 VFS 進行少量修改以支援移除檔案上的 D_NOTIFY。

  7. 新增 GUI 工具以配置 /proc/fs/cifs 設定並顯示 CIFS 統計資訊(已啟動)

  8. 實現對 xattrs 的安全和可信類別支援(需要少量協議擴充套件),以更好地支援 SELinux

  9. 新增對樹連線上下文的支援(參見 MS-SMB2),這是一個新的 SMB3.1.1 協議功能(可能對虛擬化特別有用)。

  10. 建立 UID 對映功能,以便伺服器 UID 可以按掛載點或按伺服器對映到客戶端 UID,如果不存在對映則對映到 nobody。同時更好地與 winbind 整合以解析 SID 所有者

  11. 新增工具以利用更多 SMB3 特定 ioctl 和功能(cifs.ko 中現已實現直通 ioctl/fsctl,允許直接從使用者空間傳送各種 SMB3 fsctl 以及查詢資訊和設定資訊呼叫)。新增工具以便更輕鬆地從工具設定各種非 POSIX 元資料屬性(例如,擴充套件 smb-info 工具中已完成的工作)。

  12. 加密檔案支援(目前報告檔案在伺服器上已加密的屬性,但不支援更改該屬性)。

  13. 改進的統計資訊收集工具(或許與 nfsometer 整合?),以擴充套件和簡化目前在 /proc/fs/cifs/Stats 中的內容的使用

  14. 新增對基於宣告的 ACL (“DAC”) 的支援

  15. 掛載助手 GUI(簡化掛載時的各種配置選項)

  16. 擴充套件對 witness 協議的支援,以允許共享移動和伺服器網絡卡更改的通知。目前 Linux 客戶端僅支援 witness 協議的伺服器移動通知。

  17. 允許 mount.cifs 在報告方言或不支援的功能錯誤時提供更詳細的資訊。由於新的掛載 API 的實現,現在這將更容易實現。

  18. 更新 CIFS 文件和使用者指南。

  19. 解決在標準檔案系統 xfstests 套件中執行更廣泛的 xfstests 發現的錯誤。

  20. 將 CIFS 和 SMB3 支援拆分為單獨的模組,以便在不需要的環境中停用舊版(和安全性較低的)CIFS 方言,並簡化程式碼。

  1. 對 SMB3.1.1 的 POSIX 擴充套件進行額外測試

  2. 支援 Mac SMB3.1.1 擴充套件以改善與 Apple 伺服器的互操作性

  3. 支援額外的認證選項(例如 IAKERB、點對點 Kerberos、SCRAM 以及現有伺服器支援的其他選項)

  4. 改進的跟蹤、更多的 eBPF 跟蹤點、更好的效能分析指令碼

已知錯誤

請參見 https://bugzilla.samba.org - 搜尋產品“CifsVFS”以獲取當前錯誤列表。另請檢視 http://bugzilla.kernel.org (產品 = File System, 元件 = CIFS) 和 xfstest 結果,例如 https://wiki.samba.org/index.php/Xfstest-results-smb3

雜項測試待辦事項

  1. 檢查針對各種伺服器型別的最大路徑名和最大路徑名元件。嘗試巢狀符號連結(8 層深)。在 stat -f 資訊中返回最大路徑名

  2. 改進 xfstest 的 CIFS/SMB3 啟用,並根據需要調整 xfstest 以更好地測試 CIFS/SMB3

  3. 使用 iozone 及類似工具進行額外的效能測試和最佳化——有一些簡單的更改可以並行化順序寫入,並在停用簽名時請求更大的讀取大小(大於協商大小)並向現代伺服器傳送更大的寫入大小。

  4. 針對不常見伺服器進行更徹底的測試

  5. 繼續擴充套件 SMB3“buildbot”,該機器人目前對 Windows、Samba 和 Azure 進行自動化 xfstesting——以新增更多測試並允許 buildbot 更快地執行測試。buildbot 的 URL 是:http://smb3-test-rhel-75.southcentralus.cloudapp.azure.com

  6. 解決各種 Coverity 警告(大多數本身並非錯誤,但解決的警告越多,就越容易發現靜態分析器未來會指出的真正問題)。