Hantera SMB Multichannel

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

SMB Multichannel är en del av protokollet Server Message Block (SMB) 3.0, 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 nätverksfeltolerans 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ör dem mer motståndskraftiga mot nätverksfel.

SMB Multichannel har följande funktioner:

  • Ökat genomflöde: Filservern kan samtidigt överföra ytterligare data med hjälp av flera anslutningar för snabba nä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 har förlorats.

  • 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 Azure Stack HCI, Windows Server eller Windows 10 operativsystem.

  • Minst en av följande konfigurationer:

    • Flera virtuella nätverkskort

    • Ett eller flera nätverkskort som stöder skalning på mottagningssidan (RSS)

    • Flera nätverkskort som är team-indelade (se NIC-team)

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

Konfigurera SMB Multichannel

I det här avsnittet beskrivs några konfigurationsalternativ för att distribuera SMB Multichannel med hjälp av 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.

Ett RSS-kompatibelt nätverkskort

I den här typiska konfigurationen konfigureras en SMB-klient och en SMB-server med 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 processorkä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 har 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 dig. 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 processorkärna om många små I/O-åtgärder krävs.

Flera virtuella nätverkskort

I den här konfigurationen konfigureras en SMB-klient och SMB-server med hjälp av 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 enskild 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å 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 enda session med minst en eller flera anslutningar per gränssnitt om nätverkskorten är RSS-kompatibla. Den här konfigurationen gör att SMB kan använda den kombinerade nätverkskortbandbredd som är tillgänglig och gör det möjligt för SMB-klienten att fortsätta utan avbrott om ett nätverkskort slutar fungera.

NIC-teaming

Azure Stack HCI och Windows Server möjligheten att kombinera flera nätverkskort till ett nätverkskort med hjälp av en funktion som kallas NIC-teaming. Även om ett team alltid tillhandahåller feltolerans, skapar SMB bara en TCP/IP-anslutning per team när SMB distribueras utan SMB Multichannel. Den här konfigurationen leder till begränsningar i både antalet processorkärnor som är inkopplade 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 få en bättre balans mellan processorkärnor och bättre användning av den tillgängliga bandbredden. NIC-teamindelas fortsätter att erbjuda redundans, vilket fungerar snabbare än att använda SMB Multichannel på egen hand. Vi rekommenderar också NIC-teaming eftersom det erbjuder redundansfunktioner till andra arbetsbelastningar som inte förlitar sig på 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 Lagringsutrymmen Direct-trafik, vilket ibland görs med Azure Stack HCI, är teamindelar av dessa lagringsnätverkskort helt valfritt – det ger inga betydande fördelar eller nackdelar.

Viktigt

På Windows Server 2012 R2 och tidigare ska du inte använda NIC-teaminsamling 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 teamindejering inaktiverar RDMA-funktionen för nätverkskortet.

Ett eller flera RDMA-kompatibla nätverkskort

SMB Multichannel identifierar RDMA-funktionerna i nätverkskort, vilket aktiverar 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 enda sessionen, med två RDMA-anslutningar per gränssnitt. Den här konfigurationen gör att SMB kan dra nytta av det höga dataflöde, korta svarstider och låg CPU-användning som erbjuds av RDMA-kompatibla nätverkskort. Den erbjuder också feltolerans när du använder flera RDMA-gränssnitt.

Viktigt

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

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

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

Konfiguration Dataflöde Feltolerans för SMB Feltolerans för icke-SMB Lägre processoranvändning
Enskilt nätverkskort (inget RSS) *
Flera nätverkskort (ingen RSS) ** *
Flera nätverkskort (ingen RSS) med NIC-teaming ** ** *
Ett nätverkskort med RSS *
Flera nätverkskort med RSS ** *
Flera nätverkskort med RSS- och NIC-teaming ** ** *
Ett enda RDMA-kompatibelt nätverkskort * *
Flera RDMA-kompatibla nätverkskort *** * *
Flera RDMA-kompatibla nätverkskort med NIC-teaminsamling *** ** * *

Om du kör en Windows Server 2016 eller senare är den perfekta lösningen att använda flera RDMA-kompatibla nätverkskort och kombinera NIC-teaminsamling 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 lägst cpu-påverkan.

Som nämnts ovan är NIC-teaminsamling 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 drar du inte 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. Det beror på att nätverkskort av samma typ (till exempel RDMA, RSS eller ingendera) och har samma hastighet används samtidigt av SMB Multichannel. De långsammare nätverkskorten är inaktiva.

Inaktivera SMB Multichannel

Normalt 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

Anteckning

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

Anteckning

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

Testa SMB Multichannel

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öra en filkopia med och utan SMB Multichannel

Utför följande tester för att mäta det ökade dataflödet 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 av de tidigare beskrivna konfigurationerna.

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

  3. Inaktivera SMB Multichannel. Anvisningar finns 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. Anvisningar finns i Återaktivera SMB Multichannel.

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

Viktigt

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 kopieringen igen, med den första kopieringsåtgärden som uppvärmning. Tid endast den andra kopieringsåtgärden.

Gör så att ett av nätverkskorten misslyckas under en filkopia med SMB Multichannel

Så här bekräftar du redundansfunktionerna i SMB Multichannel:

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

  2. Utför en långvarig filkopieringsåtgärd.

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

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

Kontrollera att det inte finns några andra arbetsbelastningar som använder den frånkopplade nätverksanslutningssökvägen. Den här försiktighetsåtgärden förhindrar eventuella 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. Om du vill kontrollera att nätverkskortskonfigurationen är korrekt skriver du 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 identifieras korrekt genom att göra 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 långvarig 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 verifiera 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 även i: