Dela via


Hantera SMB Multichannel

Gäller för: Azure Stack HCI, versionerna 22H2 och 21H2; Windows Server 2022, Windows Server 2019, Windows Server 2016, Windows Server 2012 R2, Windows Server 2012, Windows 10

SMB Multichannel är en del av SMB 3.0-protokollet (Server Message Block), vilket ökar nätverksprestanda och tillgängligheten för filservrar.

Med SMB Multichannel kan filservrar använda flera nätverksanslutningar samtidigt. Det underlättar aggregering av nätverksbandbredd och feltolerans när flera sökvägar är tillgängliga mellan SMB 3.0-klienten och SMB 3.0-servern. Detta gör att serverprogram kan dra full nytta av all tillgänglig nätverksbandbredd och göra dem mer motståndskraftiga mot nätverksfel.

SMB Multichannel har följande funktioner:

  • Ökad genomströmning. Filservern kan samtidigt överföra ytterligare data med hjälp av flera anslutningar för höghastighetsnätverkskort eller flera nätverkskort.

  • Feltolerans för nätverk. När klienter samtidigt använder flera nätverksanslutningar kan klienterna fortsätta utan avbrott trots att en nätverksanslutning går förlorad.

  • Automatisk konfiguration. SMB Multichannel identifierar automatiskt flera tillgängliga nätverkssökvägar och lägger dynamiskt till anslutningar efter behov.

Krav för SMB Multichannel

Eftersom SMB Multichannel är aktiverat som standard behöver du inte installera ytterligare roller, rolltjänster eller funktioner. SMB-klienten identifierar och använder automatiskt flera nätverksanslutningar när konfigurationen identifieras. SMB Multichannel har dock följande krav:

  • Minst två datorer som kör operativsystemet Azure Stack HCI, Windows Server eller Windows 10.

  • Minst en av följande konfigurationer:

    • Flera nätverkskort

    • Ett eller flera nätverkskort som stöder rss-skalning (Receive Side Scaling)

    • Flera nätverkskort som är grupperade (se NIC-teamindelning)

    • Ett eller flera nätverkskort som stöder fjärråtkomst till direkt minne (RDMA)

Konfigurera SMB Multichannel

I det här avsnittet beskrivs några konfigurationsalternativ för att distribuera SMB Multichannel med en matris med nätverkskort. Dessa konfigurationer är bara exempelkonfigurationer. Det finns många andra möjliga konfigurationer som inte ingår i det här avsnittet.

Enda RSS-kompatibelt nätverkskort

I den här typiska konfigurationen konfigureras en SMB-klient och en SMB-server med hjälp av ett enda 10 gigabit Ethernet-nätverkskort (10 GbE). När SMB distribueras utan SMB Multichannel, och om det bara finns en upprättad SMB-session, skapar SMB en enda TCP/IP-anslutning. Med bara en enda CPU-kärna leder den här konfigurationen till överbelastning, särskilt när många små I/O-åtgärder utförs. Därför är risken för en prestandaflaskhals betydande.

De flesta aktuella nätverkskort erbjuder en funktion som kallas RSS (Receive Side Scaling), som gör att flera anslutningar automatiskt kan spridas över flera CPU-kärnor. Men om du använder en enda anslutning kan RSS inte hjälpa. När du använder SMB Multichannel med ett RSS-kompatibelt nätverkskort skapar SMB flera TCP/IP-anslutningar för den specifika sessionen. Den här konfigurationen undviker en potentiell flaskhals på en enda CPU-kärna om många små I/O-åtgärder krävs.

Flera nätverkskort

I den här konfigurationen konfigureras en SMB-klient och SMB-server med flera 10 GbE-nätverkskort. När SMB distribueras utan SMB Multichannel och om det bara finns en upprättad SMB-session använder SMB ett av de tillgängliga nätverkskorten för att skapa en enda TCP/IP-anslutning. I det här scenariot går det inte att aggregera bandbredden för flera nätverkskort. Du kan till exempel inte uppnå 2 gigabit per sekund (Gbit/s) när du använder två 1 GbE-nätverkskort. Det finns också en risk för fel om det valda nätverkskortet är frånkopplat eller inaktiverat.

När SMB distribueras med SMB Multichannel skapar SMB flera TCP/IP-anslutningar för en enskild session med minst en eller flera anslutningar per gränssnitt om nätverkskorten är RSS-kompatibla. Den här konfigurationen gör det möjligt för SMB att använda den kombinerade bandbredden för nätverkskortet som är tillgänglig och gör det möjligt för SMB-klienten att fortsätta utan avbrott om ett nätverkskort misslyckas.

NIC-teamindelning

Azure Stack HCI och Windows Server stöder möjligheten att kombinera flera nätverkskort till ett nätverkskort med hjälp av en funktion som kallas NIC-teamindelning. Även om ett team alltid tillhandahåller feltolerans, när SMB distribueras utan SMB Multichannel, skapar SMB bara en TCP/IP-anslutning per team. Den här konfigurationen leder till begränsningar i både antalet processorkärnor som är engagerade och den maximala användningen av teamets bandbredd.

När SMB distribueras med SMB Multichannel skapar SMB flera TCP/IP-anslutningar för en enda session för att uppnå en bättre balans mellan processorkärnor och bättre användning av den tillgängliga bandbredden. NIC-teamindelningen fortsätter att erbjuda redundansfunktionen, vilket fungerar snabbare än att använda SMB Multichannel på egen hand. Vi rekommenderar också NIC-teamindelning eftersom det erbjuder redundansfunktioner till andra arbetsbelastningar som inte är beroende av SMB, eftersom dessa arbetsbelastningar inte kan dra nytta av redundansfunktionerna i SMB Multichannel.

Om du använder en dedikerad uppsättning nätverkskort för lagringsdirigeringstrafik, vilket ibland görs med Azure Stack HCI, är det helt valfritt att samarbeta med dessa lagringsnätverkskort– det ger inga betydande fördelar eller nackdelar.

Viktig

I Windows Server 2012 R2 och tidigare ska du inte använda NIC-teamindelning om du tänker använda RDMA-funktionerna i nätverkskorten. På dessa operativsystem rapporteras alltid ett team med RDMA-kompatibla nätverkskort som icke-RDMA-kompatibla eftersom teamindelning inaktiverar RDMA-funktionen för nätverkskortet.

Ett eller flera RDMA-kompatibla nätverkskort

SMB Multichannel identifierar RDMA-funktionerna i nätverkskort, vilket möjliggör SMB Direct-funktionen SMB Direct via RDMA. Utan SMB Multichannel använder SMB vanliga TCP/IP-anslutningar med RDMA-kompatibla nätverkskort där alla nätverkskort tillhandahåller en TCP/IP-stack som finns sida vid sida med den nya RDMA-stacken.

När SMB distribueras med SMB Multichannel identifierar SMB RDMA-funktionen för ett nätverkskort och skapar flera RDMA-anslutningar för den enskilda sessionen, med två RDMA-anslutningar per gränssnitt. Den här konfigurationen gör det möjligt för SMB att dra nytta av det höga dataflödet, den låga svarstiden och den låga CPU-användningen som erbjuds av DE RDMA-kompatibla nätverkskorten. Den erbjuder också feltolerans när du använder flera RDMA-gränssnitt.

Viktig

När en RDMA-anslutning har skapats används inte längre TCP/IP-anslutningen för den ursprungliga protokollförhandlingen. Den anslutningen underhålls dock om en annan RDMA-anslutning misslyckas.

SMB Multichannel, RDMA-kompatibla nätverkskort och NIC-teamkompatibilitet

I följande tabell sammanfattas de olika funktioner som är tillgängliga när du kombinerar SMB Multichannel, RDMA (SMB Direct) och NIC-teamindelning.

Konfiguration Genomströmning Feltolerans för SMB Feltolerans för icke-SMB Lägre CPU-användning
Enskilt nätverkskort (ingen RSS) *
Flera nätverkskort (ingen RSS-funktionalitet) ** *
Flera nätverksadaptrar (ingen RSS) med NIC-teamning ** ** *
Enkelt nätverkskort med RSS *
Flera nätverkskort med RSS ** *
Flera nätverkskort med RSS och NIC-teamning ** ** *
Enkelt RDMA-kompatibelt nätverkskort * *
Flera RDMA-kompatibla nätverkskort *** * *
Flera RDMA-kompatibla nätverkskort med NIC-teaming *** ** * *

Om du kör Windows Server 2016 eller senare är den perfekta lösningen att använda flera RDMA-kompatibla nätverkskort och kombinera NIC-teamindelning med SMB Multichannel. Den här kombinationen ger det bästa dataflödet, ger feltolerans för program som använder SMB och andra protokoll och har den lägsta CPU-effekten.

Som nämnts ovan är NIC-teamindelning inte ett bra alternativ när du använder RDMA-kompatibla nätverkskort på Windows Server 2012 R2 eller tidigare, eftersom det inaktiverar RDMA-funktionen för nätverkskortet.

Exempelkonfigurationer utan SMB Multichannel

Om du planerar att använda ett enda nätverkskort utan RSS kan du inte dra nytta av flera nätverksanslutningar och därför används inte SMB Multichannel. Om du planerar att använda nätverkskort med olika hastigheter väljer SMB Multichannel automatiskt det snabbaste nätverkskortet. Detta beror på att nätverkskort som är av samma typ (till exempel RDMA, RSS eller ingetdera) och har samma hastighet används samtidigt av SMB Multichannel. De långsammare nätverkskorten är inaktiva.

Inaktivera SMB Multichannel

Vanligtvis behöver du inte inaktivera SMB Multichannel. Men om du vill inaktivera SMB Multichannel, till exempel i en testmiljö, använder du följande Windows PowerShell-procedurer.

Anslut först till en av servrarna genom att öppna en PowerShell-session:

Enter-PSSession <server-name>

Om du vill inaktivera SMB Multichannel på serversidan använder du följande cmdlet:

Set-SmbServerConfiguration -EnableMultiChannel $false

Om du vill inaktivera SMB Multichannel på klientsidan använder du följande cmdlet:

Set-SmbClientConfiguration -EnableMultiChannel $false

Notera

Om du inaktiverar SMB Multichannel på klienten eller servern blockeras båda systemen från att använda den.

Återaktivera SMB Multichannel

Om du har inaktiverat SMB Multichannel och vill återaktivera den använder du följande procedurer.

Om du vill återaktivera SMB Multichannel på serversidan använder du följande cmdlet:

Set-SmbServerConfiguration -EnableMultiChannel $true

Om du vill återaktivera SMB Multichannel på klientsidan använder du följande cmdlet:

Set-SmbClientConfiguration -EnableMultiChannel $true

Not

Du måste återaktivera SMB Multichannel på både klienten och servern för att börja använda den igen.

Testa SMB Multikanal

I det här avsnittet beskrivs några scenarier för att testa SMB Multichannel, vilket innefattar att jämföra en filkopia med och sedan utan SMB Multichannel och avsiktligt orsaka att ett nätverkskort misslyckas under en filkopieringsåtgärd.

Jämför en filkopia med och utan SMB Multichannel

Utför följande tester för att mäta det ökade dataflöde som tillhandahålls av SMB Multichannel. Starta om både servern och klienten före varje test för att se till att de fungerar under liknande förhållanden.

  1. Konfigurera SMB Multichannel med en tidigare beskriven konfiguration.

  2. Mät hur lång tid det tar att utföra en tidskrävande filkopieringsåtgärd med hjälp av SMB Multichannel.

  3. Inaktivera SMB Multichannel. Se anvisningar i Inaktivera SMB Multichannel.

  4. Mät hur lång tid det tar att utföra samma filkopia utan SMB Multichannel.

  5. Återaktivera SMB Multichannel. För anvisningar, se Återaktivera SMB Multichannel.

  6. Jämför de två resultaten.

Viktig

För att undvika prestandapåverkan av cachelagring kopierar du först en stor mängd data som överskrider storleken på tillgängligt minne. Utför sedan kopieringsåtgärden igen, med den första kopieringsåtgärden som en uppvärmning. Tidsätt endast den andra kopieringsåtgärden.

Orsaka att ett av nätverkskorten misslyckas under en filkopia med SMB Multichannel

Så här bekräftar du redundansfunktionen för SMB Multichannel:

  1. Kontrollera att SMB Multichannel fungerar i en konfiguration med flera nätverkskort.

  2. Utför en tidskrävande filkopieringsåtgärd.

  3. När filkopieringsåtgärden körs simulerar du ett fel på en av nätverksvägarna genom att koppla från en av kablarna eller genom att inaktivera ett av nätverkskorten.

  4. Bekräfta att filkopian fortsätter att använda det återstående nätverkskortet och fungerar utan några filkopieringsfel.

Kontrollera att det inte finns några andra arbetslaster som nyttjar den frånkopplade nätverksvägen. Den här försiktighetsåtgärden undviker ett eventuellt fel i arbetsbelastningar som inte utnyttjar SMB Multichannel.

Kontrollera att SMB Multichannel fungerar

Använd följande procedur för att kontrollera att SMB Multichannel fungerar.

  1. Kontrollera att nätverkskortkonfigurationen är korrekt genom att skriva följande i Windows PowerShell på både SMB-servern och SMB-klienten.

    Get-NetAdapter
    Get-NetAdapterRSS
    Get-NetAdapterRDMA
    Get-NetAdapterHardwareInfo
    
  2. Kontrollera att SMB Multichannel är aktiverat genom att bekräfta att SMB identifierar nätverkskorten korrekt och att nätverkskortets RSS- och RDMA-funktioner är korrekt identifierade gör du följande:

    På SMB-klienten skriver du följande i Windows PowerShell:

    Get-SmbClientConfiguration | Select EnableMultichannel
    Get-SmbClientNetworkInterface
    

    På SMB-servern skriver du följande i Windows PowerShell:

    Get-SmbServerConfiguration | Select EnableMultichannel
    Get-SmbServerNetworkInterface
    
  3. På SMB-klienten utför du en tidskrävande filkopieringsåtgärd som skapar en pågående session med SMB-servern. När kopieringsåtgärden körs skriver du följande i Windows PowerShell för att kontrollera att anslutningen använder rätt version av SMB och att SMB Multichannel fungerar.

    Get-SmbConnection
    Get-SmbMultichannelConnection
    Get-SmbMultichannelConnection -IncludeNotSelected
    

Nästa steg

Relaterad information finns också: