在 Windows Server 中使用 SMB 3 通訊協定進行檔案共用的概觀
本文提供 Windows Server 2019、Windows Server 2016、Windows Server 2012 R2 和 Windows Server 2012 中的伺服器消息塊 (SMB) 3 通訊協定概觀。 它涵蓋與舊版相比的實際應用程式、新功能和更新的功能,以及硬體需求。 此外,SMB 可作為 軟體定義資料中心 (SDDC) 解決方案的網狀架構通訊協定,例如儲存空間直接存取和儲存複本。 後續版本中會繼續執行SMB 3.0增強功能。
功能描述
SMB 通訊協定是網路檔案共享通訊協定,可讓電腦上的應用程式讀取和寫入檔案。 SMB 也會向計算機網路中的伺服器程式要求服務。 SMB 通訊協定可以用於其 TCP/IP 通訊協定或其他網路通訊協定的最上方。 使用 SMB 通訊協定,應用程式 (或應用程式的使用者) 可以存取遠端伺服器上的檔案或其他資源。 此通訊協定可讓應用程式讀取、建立及更新遠端伺服器上的檔案。 SMB 也可以與任何設定用來接收 SMB 用戶端要求的伺服器程式進行通訊。 SMB 是軟體定義資料中心 (SDDC) 計算技術 (例如儲存空間直接存取、儲存體複本) 所使用的網狀架構通訊協定。 如需詳細資訊,請參閱 Windows Server 軟體定義資料中心。
實際應用
本節討論一些使用新 SMB 3.0 通訊協定的新實用方法。
- 適用於虛擬化的檔案存放裝置 (透過 SMB 的 Hyper-V™)。 Hyper-V 可以透過 SMB 3.0 通訊協定,在檔案共用中儲存虛擬機器檔案,例如設定、虛擬硬碟 (VHD) 檔案及快照。 這適用於獨立式檔案伺服器和叢集檔案伺服器,這些伺服器會將 Hyper-V 與叢集的共用檔案存放裝置搭配使用。
- 透過 SMB 的 Microsoft SQL Server。 SQL Server 可將使用者資料庫檔案儲存在 SMB 檔案共用上。 目前,SQL Server 2008 R2 支援透過 SMB 的獨立 SQL Server。 即將推出的 SQL Server 版本新增對叢集 SQL 伺服器和系統資料庫的支援。
- 適用於使用者資料的傳統存放裝置。 SMB 3.0 通訊協定會為資訊工作者 (或用戶端) 工作負載提供增強功能。 這些增強功能包括透過廣域網路 (WAN) 存取資料和保護資料免於遭受竊聽攻擊時,減少分公司使用者感受到應用程式延遲。
注意
如果您需要保存 SMB 共用檔案上的儲存空間,可以考慮使用已經啟用雲端分層模式的 Azure 檔案同步。 Azure 檔案同步可讓您在本機快取最常存取的檔案,並將最不常存取的檔案分層至雲端,同時節省本機儲存空間,同時維持效能。 如需詳細資訊,請參閱 Azure 檔案同步部署規劃。
新功能和變更的功能
以下幾節說明在 SMB 3 中新增的功能以及後續的更新。
在 Windows Server 2019 和 Windows 10 (1809 版) 中新增的功能
特色/功能 | 新功能或更新功能 | 摘要 |
---|---|---|
在無法持續使用的檔案共用上要求直接寫入磁碟的能力 | 新增 | 為了額外提供一些保證,讓寫入檔案共用的操作在寫入作業返回為完成之前,能夠順利通過軟體和硬體堆疊一路流至實體磁碟,您可以使用 NET USE /WRITETHROUGH 命令或 New-SMBMapping -UseWriteThrough PowerShell Cmdlet 在檔案共用上啟用寫入穿透。 使用直接寫入時,效能會受到一些影響;如需進一步的討論,請參閱部落格文章控制 SMB 中的直接寫入行為。 |
Windows Server (1709 版) 和 Windows 10 (1709 版) 中新增的功能
特色/功能 | 新功能或更新功能 | 摘要 |
---|---|---|
已停用對檔案共用的來賓存取 | 新增 | SMB 客戶端不再允許以下動作:訪客帳戶對遠端伺服器的存取;提供無效認證後,退一步改為訪客帳戶。 如需詳細資訊,請參閱在 Windows 中依預設停用 SMB2 中的來賓存取。 |
SMB 全域對應 | 新增 | 將遠端 SMB 共用對應至本機主機 (包括容器) 上的所有使用者都可存取的磁碟機代號。 需要 SMB 全域對應,以便讓數據磁碟區上的容器 I/O 穿越遠端裝入點。 針對容器使用SMB全域對應時,容器主機上的所有使用者都可以存取遠端共用。 容器主機上執行的任何應用程式也都可以存取對應的遠端共用。 如需詳細資訊,請參閱叢集共用磁碟區 (CSV)、儲存空間直接存取、SMB 全域對應的相關容器儲存空間支援。 |
SMB 方言控制 | 新增 | 現在,您可以設定登錄值來控制使用的最低 SMB 版本 (方言) 和最高 SMB 版本。 如需詳細資訊,請參閱控制 SMB 方言。 |
在 Windows Server 2016 和 Windows 10 (1607 版) 的 SMB 3.11 中新增的功能
特色/功能 | 新功能或更新功能 | 摘要 |
---|---|---|
SMB 加密 | 已更新 | 具有進階加密標準 Galois/計數器模式 (AES-GCM) 的 SMB 3.1.1 加密,比使用 AES-CCM 的 SMB 簽署或舊版 SMB 加密更為快速。 |
目錄快取 | 新增 | SMB 3.1.1 包含目錄快取的增強功能。 Windows 客戶端現在可以快取較大的目錄,大約 500,000 項目。 Windows 用戶端嘗試使用 1 MB 緩衝區進行目錄查詢,以減少往返次數並改善效能。 |
預先驗證完整性 | 新增 | 在 SMB 3.1.1 中,預先驗證完整性提供更好的保護,以防止中間人攻擊者竄改 SMB 的連接建立和驗證訊息。 如需詳細資訊,請參閱 Windows 10 中的 SMB 3.1.1 預先驗證完整性。 |
SMB 加密的改進 | 新增 | SMB 3.1.1 提供了相關機制,可透過 AES-128-CCM 和 AES-128-GCM 的選項來交涉每個連線的加密演算法。 AES-128-GCM 是新 Windows 版本的預設值,而舊版則繼續使用 AES-128-CCM。 |
輪流叢集升級支援 | 新增 | 藉由讓 SMB 能夠在升級的過程中對叢集支援不同的 SMB 最高版本,來啟用輪流叢集升級。 如需讓 SMB 使用不同通訊協定版本(方言)進行通訊的詳細資訊,請參閱部落格文章 控制 SMB 方言。 |
Windows 10 中的 SMB 直接傳輸用戶端支援 | 新增 | Windows 10 企業版、Windows 10 教育版和 Windows 10 工作站專業版現在包含 SMB 直接傳輸用戶端支援。 |
FileNormalizedNameInformation API 呼叫的原生支援 | 新增 | 新增查詢檔案正規化名稱的原生支援。 如需詳細資訊,請參閱 FileNormalizedNameInformation。 |
如需詳細資訊,請參閱 Windows Server 2016 Technical Preview 2的部落格文章
在 Windows Server 2012 R2 和 Windows 8.1 的 SMB 3.02 中新增的功能
特色/功能 | 新功能或更新功能 | 摘要 |
---|---|---|
橫向擴充檔案伺服器客戶端的自動重新平衡 | 新增 | 改善向外延展檔案伺服器的延展性與管理性。 SMB 用戶端連線是以每個檔案共用 (而非每個伺服器) 的方式追蹤,接著再將用戶端重新導向至最方便存取檔案共用使用之磁碟區的叢集節點。 由於檔案伺服器節點之間的重新導向流量減少,因此可以提升效率。 起始一個連線和重新設定叢集存放裝置都會將用戶端重新導向。 |
透過 WAN 的效能 | 已更新 | 當您使用檔案總管從遠端電腦上的某個位置對相同伺服器上的另一個複本進行遠端複製時,可以利用 Windows 8.1 和 Windows 10 透過 SMB 支援提供的改良式 CopyFile SRV_COPYCHUNK。 您只會透過網路複製少量的元數據(每 16MiB 的檔案數據會傳輸 1/2KiB)。 這將可大幅改善效能。 這是 SMB 在 OS 層級和檔案總管層級上的差異。 |
SMB 直接傳輸 | 已更新 | 藉由託管 小型 I/O 工作負載時增加效益 (例如線上事務處理 (OLTP) 虛擬機器資料庫) 時,改善小型 I/O 工作負載的效能。 這些改良在使用較高速的網路介面時很明顯,例如 40 Gbps 乙太網路與 56 Gbps InfiniBand。 |
SMB 頻寬限制 | 新增 | 您現在可以使用 Set-SmbBandwidthLimit將頻寬限制設成三大類別:VirtualMachine (Hyper-V 在 SMB 的流量)、LiveMigration (Hyper-V 在 SMB 的即時遷移流量) 或預設 (所有其他 SMB 流量類型)。 |
若要進一步了解 Windows Server 2012 R2 中新增和變更的 SMB 功能,請參閱 Windows Server 中新增的 SMB 功能。
在 Windows Server 2012 和 Windows 8 的 SMB 3.0 中新增的功能
特色/功能 | 新功能或更新功能 | 摘要 |
---|---|---|
SMB 透明容錯移轉 | 新增 | 讓系統管理員能夠在叢集檔案伺服器中執行節點的硬體或軟體維護,而不需中斷正在這些檔案共用上儲存資料的伺服器應用程式。 此外,如果叢集節點上發生硬體或軟體失敗,SMB 用戶端會以透明的方式重新連線到其他叢集節點,而不需中斷正在這些檔案共用上儲存資料的伺服器應用程式。 |
SMB 向外延展 | 新增 | 在一部向外延展檔案伺服器上支援多個 SMB 執行個體。 使用叢集共用磁碟區 (CSV) 版本 2,系統管理員可以建立檔案共用,透過檔案伺服器叢集中的所有節點,利用直接 I/O 來提供資料檔案的同時存取。 SMB Scale Out 可提供更好的網路頻寬使用率和檔案伺服器用戶端的負載平衡,並優化伺服器應用程式的效能。 |
SMB 多重通道 | 新增 | 如果 SMB 用戶端與伺服器之間有多個路徑可供使用,則能彙總網路頻寬和網路容錯性。 這樣能讓伺服器應用程式可以充分利用所有可用的網路頻寬,並能彈性處理網路失敗。 相較於舊版的 SMB,SMB 3 中的 SMB 多重通道可促使效能大幅提升。 |
SMB 直接傳輸 | 新增 | 支援使用具有 RDMA 功能的網路適配器,而且可在低延遲的情況下以全速運作,同時使用很少的 CPU。 對於 Hyper-V 或 Microsoft SQL Server 等工作負載,SMB Direct 可讓遠端檔案伺服器類似於本機記憶體。 相較於舊版的 SMB,SMB 3 中的 SMB 直接傳輸可促使效能大幅提升。 |
伺服器應用程式的效能計數器 | 新增 | 新的 SMB 效能計數器可以針對每個共用提供有關輸送量、延遲及每秒 I/O (IOPS) 的詳細資訊,讓系統管理員能夠分析儲存資料所在的 SMB 檔案共用的效能。 這些計數器是專為伺服器應用程式所設計,例如 Hyper-V 和 SQL Server,其會將檔案儲存在遠端檔案共用上。 |
效能最佳化 | 已更新 | SMB 用戶端和伺服器都針對小型隨機讀取/寫入 I/O 進行優化,這在 SQL Server OLTP 等伺服器應用程式中很常見。 此外,預設會開啟大型傳輸單元最大值 (MTU),明顯增強大型循序傳輸的效能,例如 SQL Server 資料倉儲、資料庫備份或還原、部署或複製虛擬硬碟。 |
SMB 特定的 Windows PowerShell Cmdlet | 新增 | 利用適用於 SMB 的 Windows PowerShell Cmdlet,系統管理員可以從命令列,以端對端方式,在檔案伺服器上管理檔案共用。 |
SMB 加密 | 新增 | 提供 SMB 資料的端對端加密,並保護資料以免在不受信任的網路上遭到竊聽。 不需要新的部署成本,也不需要網際網路通訊協定安全性 (IPsec)、特定的硬體或 WAN 加速器。 它可以針對每個共享單獨設定,或整個文件伺服器設定,並且可以在數據通過不受信任的網路的各種情境中啟用。 |
SMB 目錄租用 | 新增 | 增強分公司的應用程式回應時間。 使用目錄租用,從用戶端到伺服器的來回時間會降低,因為中繼資料是從存留期間較長的目錄快取中所擷取。 快取的一致性可以維持,因為當伺服器上的目錄資料變更時,用戶端會收到通知。 目錄租用適用於主資料夾 (讀取/寫入且無共用) 和發行集 (唯讀且有共用) 的案例。 |
透過 WAN 的效能 | 新增 | 目錄隨機鎖定 (oplock) 和 oplock 租用是在 SMB 3.0 中導入的。 針對一般的辦公室/用戶端工作負載,oplock/租用可減少約 15% 的網路來回行程。 在 SMB 3 中,Windows 的 SMB 實作已被改進,以改善用戶端上的快取行為,並提升較高的輸送量能力。 SMB 3 功能可改善 CopyFile() API,以及 Robocopy 等相關工具,以透過網路推送更多數據。 |
安全方言交涉 | 新增 | 有助於防止攔截式攻擊者試圖降級方言交涉。 其概念是防止不法人士將用戶端與伺服器之間最初交涉的方言和功能降級。 如需詳細資訊,請參閱 SMB3 安全方言交涉。 Windows 10 中的 SMB 3.1.1 驗證前完整性 取代了 SMB 3.1.1 中的這項功能。 |
硬體需求
SMB 透明容錯移轉具備下列需求:
- 執行 Windows Server 2012 或 Windows Server 2016 且至少有兩個已設定節點的故障轉移叢集。 這個叢集必須傳遞驗證精靈中所含的叢集驗證測試。
- 檔案共用必須利用持續可用性 (CA) 屬性來建立,這是預設值。
- 檔案共用必須建立於 CSV 磁碟區路徑上,以達到 SMB 向外延展。
- 用戶端電腦必須執行 Windows® 8 或 Windows Server 2012,且兩者都必須包含支援持續可用性的更新 SMB 用戶端。
注意
下層用戶端可以連線到具有 CA 屬性的檔案共用,但這些用戶端不支援透明故障轉移。
SMB 多重通道具備下列需求:
- 至少有兩部執行 Windows Server 2012 的電腦。 不需要安裝任何其他的功能 - 預設會啟用這項技術。
- 如需建議的網路組態資訊,請參閱本概觀文章結尾的一節。
SMB 直接傳輸具備下列需求:
- 至少有兩部執行 Windows Server 2012 的電腦。 不需要安裝任何其他的功能 - 預設會啟用這項技術。
- 需要含有 RDMA 功能的網路介面卡。 這些介面卡目前可用於三種不同類型:iWARP、Infiniband 或 RoCE (透過聚合式乙太網路的 RDMA)。
其他相關資訊
下列清單提供網路上有關於 Windows Server 2012 R2、Windows Server 2012 和 Windows Server 2016 中的 SMB 和相關技術的資源。