共用方式為


管理 SMB 多重通道

適用於:Azure Stack HCI 版本 22H2 和 21H2;Windows Server 2022、Windows Server 2019、Windows Server 2016、Windows Server 2012 R2、Windows Server 2012、Windows 10

重要

Azure Stack HCI 現在是 Azure 本機的一部分。 產品檔案重新命名正在進行中。 不過,舊版的 Azure Stack HCI,例如 22H2 會繼續參考 Azure Stack HCI,而且不會反映名稱變更。 深入了解

SMB 多重通道是伺服器訊息塊 (SMB) 3.0 通訊協定的一部分,可提升網路效能和檔案伺服器的可用性。

SMB 多重通道可讓檔案伺服器同時使用多個網路連線。 當 SMB 3.0 用戶端與 SMB 3.0 伺服器之間提供多個路徑時,它有助於匯總網路頻寬和網路容錯。 這可讓伺服器應用程式充分利用所有可用的網路頻寬,並讓它們更能復原網路失敗。

SMB 多重通道提供下列功能:

  • 增加輸送量。 檔伺服器可以使用高速網路適配器或多個網路適配器的多個連線,同時傳輸其他數據。

  • 網路容錯。 當用戶端同時使用多個網路連線時,即使失去網路連線,用戶端仍可繼續,而不會中斷。

  • 自動設定。 SMB 多重通道會自動探索多個可用的網路路徑,並視需要動態新增連線。

SMB 多重通道的需求

由於預設會啟用SMB多重通道,因此您不需要安裝其他角色、角色服務或功能。 SMB 用戶端會在識別組態時自動偵測並使用多個網路連線。 不過,SMB 多重通道具有下列需求:

  • 至少執行 Azure Stack HCI、Windows Server 或 Windows 10 操作系統的兩部電腦。

  • 至少下列其中一個組態:

    • 多個網路介面卡

    • 支援接收端調整 (RSS) 的一或多個網路介面卡

    • 已進行小組的多個網路適配器(請參閱 NIC 小組

    • 一或多個支援遠端直接記憶體存取的網路配接器 (RDMA)

設定SMB多重通道

本節說明使用網路適配器陣列部署SMB多重通道的一些組態選項。 這些組態只是範例組態。 本主題中未包含許多其他可能的組態。

支援單一 RSS 的網路適配器

在此一般設定中,SMB 用戶端和SMB伺服器是使用單一10 GB乙太網路 (10 GbE) 網路適配器來設定。 在沒有SMB多重通道的情況下部署SMB時,如果只建立一個SMB會話,則SMB會建立單一 TCP/IP 連線。 只有單一 CPU 核心,此設定原本就會導致壅塞,尤其是在執行許多小型 I/O 作業時。 因此,效能瓶頸的潛在意義重大。

最新的網路適配器提供稱為「接收端調整」(RSS)的功能,可讓多個連線自動分散到多個 CPU 核心。 不過,如果您使用單一連線,RSS 無法協助。 當您搭配支援 RSS 的網路適配器使用 SMB 多重通道時,SMB 會為該特定會話建立多個 TCP/IP 連線。 如果需要許多小型 I/O 作業,此設定可避免單一 CPU 核心的潛在瓶頸。

多個網路介面卡

在此設定中,SMB 用戶端和SMB伺服器是使用多個10 GbE網路配接器來設定。 在沒有SMB多重通道的情況下部署SMB時,如果只建立一個SMB會話,SMB會使用其中一個可用的網路適配器來建立單一 TCP/IP 連線。 在此案例中,無法匯總多個網路適配器的頻寬;例如,當您使用兩張 1 GbE 網路適配器時,無法達到每秒 2 Gbs 的 Gb。 如果選取的網路適配器已中斷連線或停用,也可能發生失敗。

使用SMB多重通道部署SMB時,如果網路適配器具備 RSS 功能,則 SMB 會針對具有至少一或多個連線的單一工作階段建立多個 TCP/IP 連線。 此設定可讓SMB使用可用的合併網路適配器頻寬,並在網路適配器失敗時讓SMB用戶端能夠繼續,而不會中斷。

NIC Teaming

Azure Stack HCI 和 Windows Server 支援使用稱為 NIC 小組的功能,將多個網路適配器合併成一張網路適配器。 雖然小組一律會提供容錯,但當SMB部署時沒有SMB多重通道時,SMB只會為每個小組建立一個TCP/IP連線。 此設定會導致參與的CPU核心數目和小組頻寬使用量上限的限制。

使用SMB多重通道部署SMB時,SMB會為單一會話建立多個TCP/IP連線,以在CPU核心之間取得更好的平衡,並更妥善地使用可用的頻寬。 NIC 小組會繼續提供故障轉移功能,其運作速度比單獨使用SMB多重通道更快。 我們也建議 NIC 小組,因為它提供故障轉移功能給其他不依賴 SMB 的工作負載,因為這些工作負載無法受益於 SMB 多重通道的故障轉移功能。

如果您使用一組專用的網路適配器來 儲存空間直接存取 流量,如同 Azure Stack HCI 有時所做的,將這些記憶體網路適配器組合在一起是絕對選擇性的,它不會提供任何重大優點或缺點。

重要

如果您想要使用網路適配器的 RDMA 功能,請在 Windows Server 2012 R2 和更早版本上使用 NIC 小組。 在這些操作系統上,支援 RDMA 的網路適配器小組一律會回報為非 RDMA 功能,因為小組會停用網路適配器的 RDMA 功能。

單一或多個支援 RDMA 的網路適配器

SMB 多重通道會偵測網路適配器的 RDMA 功能,以啟用稱為 SMB Direct over RDMA 的 SMB 直接存取功能。 若沒有SMB多重通道,SMB 會搭配支援 RDMA 的網路適配器使用一般 TCP/IP 連線,其中所有網路適配器都會提供與新的 RDMA 堆疊並存的 TCP/IP 堆棧。

使用SMB多重通道部署SMB時,SMB會偵測網路適配器的 RDMA 功能,並為該單一會話建立多個 RDMA 連線,每個介面有兩個 RDMA 連線。 此組態可讓SMB利用支援 RDMA 的網路適配器所提供的高輸送量、低延遲和低 CPU 使用率。 當您使用多個 RDMA 介面時,它也提供容錯功能。

重要

建立 RDMA 連線之後,不再使用原始通訊協定交涉的 TCP/IP 連線。 不過,如果不同的 RDMA 連線失敗,則會維護該連線。

SMB 多重通道、支援 RDMA 的網路適配器和 NIC 小組相容性

下表摘要說明結合SMB多重通道、RDMA(SMB Direct) 和 NIC 小組時可用的不同功能。

組態 輸送量 SMB 的容錯 非SMB的容錯 較低的CPU使用率
單一網路介面器 (無 RSS) *
多個網路配接器(無 RSS) ** *
具有 NIC 小組的多個網路適配器 (無 RSS) ** ** *
具有 RSS 的單一網路適配器 *
具有 RSS 的多個網路適配器 ** *
具有 RSS 和 NIC 小組的多個網路適配器 ** ** *
支援單一 RDMA 的網路適配器 * *
多個支援 RDMA 的網路適配器 *** * *
具有 NIC 小組功能的多個支援 RDMA 的網路適配器 *** ** * *

如果您正在執行 Windows Server 2016 或更新版本,理想的解決方案是使用多個支援 RDMA 的網路適配器,並將 NIC 小組與 SMB 多重通道結合。 此組合提供最佳的輸送量、為使用SMB和其他通訊協定的應用程式提供容錯,而且對CPU的影響最低。

如前所述,在 Windows Server 2012 R2 或更早版本上使用支援 RDMA 的網路適配器時,NIC 小組不是不錯的選擇,因為它會停用網路適配器的 RDMA 功能。

沒有SMB多重通道的範例設定

如果您打算使用不含 RSS 的單一網路適配器,則不會受益於多個網路連線,因此不會使用 SMB 多重通道。 此外,如果您打算使用不同速度的網路適配器,SMB 多重通道會自動選取最快的網路適配器。 這是因為相同類型的網路適配器(例如 RDMA、RSS 或兩者都沒有),且 SMB 多重通道會同時使用相同的速度。 較慢的網路適配器閑置。

停用 SMB 多重通道

一般而言,您不需要停用SMB多重通道。 不過,如果您想要停用SMB多重通道,例如在測試環境中,請使用下列 Windows PowerShell 程式。

首先,開啟 PowerShell 會話以連線到其中一部伺服器:

Enter-PSSession <server-name>

若要停用伺服器端的SMB多重通道,請使用下列 Cmdlet:

Set-SmbServerConfiguration -EnableMultiChannel $false

若要停用用戶端上的SMB多重通道,請使用下列 Cmdlet:

Set-SmbClientConfiguration -EnableMultiChannel $false

注意

在用戶端或伺服器上停用SMB多重通道會封鎖這兩個系統使用它。

重新啟用SMB多重通道

如果您已停用SMB多重通道並想要重新啟用它,請使用下列程式。

若要在伺服器端重新啟用 SMB 多重通道,請使用下列 Cmdlet:

Set-SmbServerConfiguration -EnableMultiChannel $true

若要在用戶端重新啟用 SMB 多重通道,請使用下列 Cmdlet:

Set-SmbClientConfiguration -EnableMultiChannel $true

注意

您必須在用戶端和伺服器上重新啟用SMB多重通道,才能再次使用它。

測試SMB多重通道

本節說明測試 SMB 多重通道的一些案例,包括比較檔案複本與 ,然後沒有 SMB 多重通道,並故意在檔案複製作業期間造成網路適配器失敗。

比較檔案複本與沒有SMB多重通道

若要測量SMB多重通道所提供的輸送量增加,請執行下列測試。 在每次測試之前,請重新啟動伺服器和用戶端,以確保它們以類似的條件運作。

  1. 使用先前所述的設定來設定SMB多重通道。

  2. 使用SMB多重通道測量執行長時間執行檔案複製作業所需的時間量。

  3. 停用SMB多重通道。 如需指示,請參閱 停用SMB多重通道

  4. 測量在沒有SMB多重通道的情況下執行相同檔案複製所需的時間量。

  5. 重新啟用SMB多重通道。 如需指示,請參閱 重新啟用SMB多重通道

  6. 比較兩個結果。

重要

若要避免快取的效能影響,請先複製超過可用記憶體大小的大量數據。 然後再次執行複製作業,第一個複製作業會做為熱身。 只有第二個複製作業的時間。

在具有SMB多重通道的檔案複製期間,造成其中一張網路適配器失敗

若要確認SMB多重通道的故障轉移功能:

  1. 請確定SMB多重通道在多個網路適配器組態中運作。

  2. 執行長時間執行的檔案複製作業。

  3. 當檔案複製作業執行時,請藉由中斷其中一條纜線或停用其中一張網路適配器來模擬其中一個網路路徑的失敗。

  4. 確認檔案複本會繼續使用剩餘的網路適配器,且不會發生任何檔案複製錯誤。

請確定沒有其他使用已中斷連線網路連線路徑的工作負載。 此預防措施可避免未利用SMB多重通道的工作負載發生可能失敗。

確認SMB多重通道可運作

使用下列程式來確認SMB多重通道可運作。

  1. 若要確認網路適配器組態正確,請在SMB伺服器和SMB用戶端的Windows PowerShell 中輸入下列內容。

    Get-NetAdapter
    Get-NetAdapterRSS
    Get-NetAdapterRDMA
    Get-NetAdapterHardwareInfo
    
  2. 若要確認已啟用SMB多重通道,請確認SMB正確識別網路配接器,並正確識別網路適配器的 RSS 和 RDMA 功能,請執行下列動作:

    在 SMB 用戶端上,在 Windows PowerShell 中輸入下列內容:

    Get-SmbClientConfiguration | Select EnableMultichannel
    Get-SmbClientNetworkInterface
    

    在SMB伺服器上,在 Windows PowerShell 中輸入下列內容:

    Get-SmbServerConfiguration | Select EnableMultichannel
    Get-SmbServerNetworkInterface
    
  3. 在SMB用戶端上,執行長時間執行的檔案複製作業,以使用SMB伺服器建立進行中的會話。 當複製作業執行時,請在 Windows PowerShell 中輸入下列命令,以確認連線使用正確的 SMB 版本,且 SMB 多重通道可運作。

    Get-SmbConnection
    Get-SmbMultichannelConnection
    Get-SmbMultichannelConnection -IncludeNotSelected
    

下一步

如需相關資訊,另請參閱: