Gestire SMB multicanale
Si applica a: Azure Stack HCI, versioni 22H2 e 21H2; Windows Server 2022, Windows Server 2019, Windows Server 2016, Windows Server 2012 R2, Windows Server 2012, Windows 10
Importante
Azure Stack HCI is now part of Azure Local. La ridenominazione della documentazione del prodotto è in corso. Tuttavia, le versioni precedenti di Azure Stack HCI, ad esempio 22H2 continueranno a fare riferimento ad Azure Stack HCI e non rifletteranno la modifica del nome. Altre informazioni.
SMB multicanale fa parte del protocollo SMB (Server Message Block) 3.0, che aumenta le prestazioni di rete e la disponibilità dei file server.
SMB multicanale consente ai file server di usare più connessioni di rete contemporaneamente. Facilita l'aggregazione della larghezza di banda di rete e della tolleranza di errore di rete quando sono disponibili più percorsi tra il client SMB 3.0 e il server SMB 3.0. Ciò consente alle applicazioni server di sfruttare appieno tutta la larghezza di banda di rete disponibile e di renderle più resilienti agli errori di rete.
SMB multicanale offre le funzionalità seguenti:
Aumento della velocità. Il file server può trasmettere contemporaneamente dati aggiuntivi usando più connessioni per schede di rete ad alta velocità o più schede di rete.
Tolleranza di errore di rete. Quando i client usano simultaneamente più connessioni di rete, i client possono continuare senza interruzioni nonostante la perdita di una connessione di rete.
Configurazione automatica. SMB multicanale individua automaticamente più percorsi di rete disponibili e aggiunge dinamicamente le connessioni in base alle esigenze.
Requisiti per SMB multicanale
Poiché SMB multicanale è abilitato per impostazione predefinita, non è necessario installare ruoli, servizi ruolo o funzionalità aggiuntivi. Il client SMB rileva e usa automaticamente più connessioni di rete quando viene identificata la configurazione. Tuttavia, SMB multicanale presenta i requisiti seguenti:
Almeno due computer che eseguono Il sistema operativo Azure Stack HCI, Windows Server o Windows 10.
Almeno una delle configurazioni seguenti:
Più schede di rete
Una o più schede di rete che supportano Receive Side Scaling (RSS)
Più schede di rete con raggruppamento (vedere Gruppo NIC)
Una o più schede di rete che supportano l'accesso diretto alla memoria remota (RDMA)
Configurare SMB multicanale
Questa sezione descrive alcune opzioni di configurazione per la distribuzione di SMB multicanale usando una matrice di schede di rete. Queste configurazioni sono solo configurazioni di esempio. In questo argomento non sono incluse molte altre configurazioni possibili.
Scheda di rete con supporto per RSS singola
In questa configurazione tipica, un client SMB e un server SMB vengono configurati usando una singola scheda di rete Ethernet da 10 gigabit (10 GbE). Quando SMB viene distribuito senza SMB multicanale e se è stata stabilita una sola sessione SMB, SMB crea una singola connessione TCP/IP. Con un solo core CPU, questa configurazione comporta intrinsecamente una congestione, soprattutto quando vengono eseguite molte operazioni di I/O di piccole dimensioni. Di conseguenza, il potenziale per un collo di bottiglia delle prestazioni è significativo.
La maggior parte delle schede di rete correnti offre una funzionalità denominata Receive Side Scaling (RSS), che consente la distribuzione automatica di più connessioni tra più core CPU. Tuttavia, se si usa una singola connessione, RSS non può essere utile. Quando si usa SMB multicanale con una scheda di rete con supporto RSS, SMB crea più connessioni TCP/IP per tale sessione specifica. Questa configurazione evita un potenziale collo di bottiglia in un singolo core CPU se sono necessarie molte operazioni di I/O di piccole dimensioni.
Più schede di rete
In questa configurazione, un client SMB e un server SMB vengono configurati usando più schede di rete da 10 GbE. Quando SMB viene distribuito senza SMB multicanale e se è stata stabilita una sola sessione SMB, SMB usa una delle schede di rete disponibili per creare una singola connessione TCP/IP. In questo scenario non è possibile aggregare la larghezza di banda delle più schede di rete; Ad esempio, non è possibile ottenere 2 gigabit al secondo (Gbps) quando si usano due schede di rete da 1 GbE. Esiste anche un potenziale errore se la scheda di rete selezionata è disconnessa o disabilitata.
Quando SMB viene distribuito con SMB multicanale, SMB crea più connessioni TCP/IP per una singola sessione con almeno una o più connessioni per ogni interfaccia se le schede di rete sono in grado di supportare RSS. Questa configurazione consente a SMB di usare la larghezza di banda combinata della scheda di rete disponibile e consente al client SMB di continuare senza interruzioni in caso di errore di una scheda di rete.
Gruppo NIC
Azure Stack HCI e Windows Server supportano la possibilità di combinare più schede di rete in una scheda di rete usando una funzionalità denominata gruppo NIC. Anche se un team fornisce sempre la tolleranza di errore, quando SMB viene distribuito senza SMB multicanale, SMB crea una sola connessione TCP/IP per ogni team. Questa configurazione comporta limitazioni sia nel numero di core CPU coinvolti che nell'uso massimo della larghezza di banda del team.
Quando SMB viene distribuito con SMB multicanale, SMB crea più connessioni TCP/IP per una singola sessione per ottenere un migliore equilibrio tra core CPU e un uso migliore della larghezza di banda disponibile. Il gruppo NIC continua a offrire la funzionalità di failover, che funziona più velocemente rispetto all'uso di SMB multicanale da solo. È anche consigliabile raggruppare NIC perché offre funzionalità di failover ad altri carichi di lavoro che non si basano su SMB, perché tali carichi di lavoro non possono trarre vantaggio dalle funzionalità di failover di SMB multicanale.
Se si usa un set dedicato di schede di rete per il traffico Spazi di archiviazione diretta, come a volte accade con Azure Stack HCI, il raggruppamento di queste schede di rete di archiviazione è strettamente facoltativo, ma non offre vantaggi o svantaggi significativi.
Importante
In Windows Server 2012 R2 e versioni precedenti non usare il gruppo NIC se si intende usare le funzionalità RDMA delle schede di rete. In questi sistemi operativi, un team di schede di rete con supporto per RDMA viene sempre segnalato come non compatibile con RDMA perché il raggruppamento disabilita la funzionalità RDMA della scheda di rete.
Una o più schede di rete con supporto per RDMA
SMB multicanale rileva le funzionalità RDMA delle schede di rete, che abilita la funzionalità SMB diretta denominata SMB diretto su RDMA. Senza SMB multicanale, SMB usa normali connessioni TCP/IP con le schede di rete con supporto per RDMA in cui tutte le schede di rete forniscono uno stack TCP/IP esistente side-by-side con il nuovo stack RDMA.
Quando SMB viene distribuito con SMB multicanale, SMB rileva la funzionalità RDMA di una scheda di rete e crea più connessioni RDMA per tale singola sessione, con due connessioni RDMA per ogni interfaccia. Questa configurazione consente a SMB di sfruttare la velocità effettiva elevata, la bassa latenza e l'utilizzo ridotto della CPU offerto dalle schede di rete con supporto per RDMA. Offre anche la tolleranza di errore quando si usano più interfacce RDMA.
Importante
Dopo aver creato una connessione RDMA, la connessione TCP/IP per la negoziazione del protocollo originale non viene più usata. Tuttavia, tale connessione viene mantenuta in caso di errore di una connessione RDMA diversa.
Compatibilità dei gruppi SMB multicanale, con supporto per RDMA e gruppo NIC
La tabella seguente riepiloga le diverse funzionalità disponibili quando si combinano SMB multicanale, RDMA (SMB diretto) e gruppo NIC.
Impostazione | Velocità effettiva | Tolleranza di errore per SMB | Tolleranza di errore per non SMB | Riduzione dell'utilizzo della CPU |
---|---|---|---|---|
Scheda di rete singola (senza RSS) | * | |||
Più schede di rete (nessun RSS) | ** | * | ||
Più schede di rete (senza RSS) con gruppo NIC | ** | ** | * | |
Scheda di rete singola con RSS | * | |||
Più schede di rete con RSS | ** | * | ||
Più schede di rete con il raggruppamento RSS e NIC | ** | ** | * | |
Scheda di rete con supporto per RDMA singola | * | * | ||
Più schede di rete con supporto per RDMA | *** | * | * | |
Più schede di rete con supporto per RDMA con gruppo NIC | *** | ** | * | * |
Se si esegue Windows Server 2016 o versione successiva, la soluzione ideale consiste nell'usare più schede di rete con supporto per RDMA e combinare il raggruppamento NIC con SMB multicanale. Questa combinazione offre la massima velocità effettiva, fornisce la tolleranza di errore per le applicazioni che usano SMB e altri protocolli e ha l'impatto più basso sulla CPU.
Come accennato in precedenza, quando si usano schede di rete con supporto per RDMA in Windows Server 2012 R2 o versioni precedenti, il raggruppamento NIC non è una buona opzione, perché disabilita la funzionalità RDMA della scheda di rete.
Configurazioni di esempio senza SMB multicanale
Se si prevede di usare una singola scheda di rete senza RSS, non si traggono vantaggio da più connessioni di rete e pertanto SMB multicanale non viene usato. Inoltre, se si prevede di usare schede di rete di velocità diverse, SMB multicanale seleziona automaticamente la scheda di rete più veloce. Ciò è dovuto al fatto che le schede di rete che sono dello stesso tipo (ad esempio RDMA, RSS o nessuno dei due) e hanno la stessa velocità vengono usate contemporaneamente da SMB multicanale. Le schede di rete più lente sono inattive.
Abilitare SMB multicanale
In genere, non è necessario disabilitare SMB multicanale. Tuttavia, se si vuole disabilitare SMB multicanale, ad esempio in un ambiente di test, usare le procedure di Windows PowerShell seguenti.
Prima di tutto, connettersi a uno dei server aprendo una sessione di PowerShell:
Enter-PSSession <server-name>
Per disabilitare SMB multicanale sul lato server, usare il cmdlet seguente:
Set-SmbServerConfiguration -EnableMultiChannel $false
Per disabilitare SMB multicanale sul lato client, usare il cmdlet seguente:
Set-SmbClientConfiguration -EnableMultiChannel $false
Nota
La disabilitazione di SMB multicanale nel client o nel server impedisce a entrambi i sistemi di usarlo.
Riabilitare SMB multicanale
Se SMB multicanale è stato disabilitato e si vuole riabilitarlo, usare le procedure seguenti.
Per riabilitare SMB multicanale sul lato server, usare il cmdlet seguente:
Set-SmbServerConfiguration -EnableMultiChannel $true
Per riabilitare SMB Multicanale sul lato client, usare il cmdlet seguente:
Set-SmbClientConfiguration -EnableMultiChannel $true
Nota
È necessario riabilitare SMB multicanale sia nel client che nel server per avviarlo di nuovo.
Testare SMB multicanale
Questa sezione descrive alcuni scenari per il test di SMB multicanale, che include il confronto di una copia di file con e quindi senza SMB multicanale e causando intenzionalmente un errore di una scheda di rete durante un'operazione di copia file.
Confrontare una copia di file con e senza SMB multicanale
Per misurare la maggiore velocità effettiva fornita da SMB multicanale, eseguire i test seguenti. Riavviare sia il server che il client prima di ogni test per assicurarsi che funzionino in condizioni simili.
Configurare SMB multicanale usando una delle configurazioni descritte in precedenza.
Misurare il tempo necessario per eseguire un'operazione di copia file a esecuzione prolungata usando SMB multicanale.
Disabilitare SMB multicanale. Per istruzioni, vedere Disabilitare SMB multicanale.
Misurare il tempo necessario per eseguire la stessa copia di file senza SMB multicanale.
Riabilitare SMB multicanale. Per istruzioni, vedere Riabilitare SMB multicanale.
Confrontare i due risultati.
Importante
Per evitare l'impatto sulle prestazioni della memorizzazione nella cache, copiare prima una grande quantità di dati che superano le dimensioni della memoria disponibile. Eseguire quindi di nuovo l'operazione di copia, con la prima operazione di copia che funge da riscaldamento. Ora solo la seconda operazione di copia.
Causa l'esito negativo di una delle schede di rete durante una copia di file con SMB multicanale
Per verificare la funzionalità di failover di SMB multicanale:
Assicurarsi che SMB multicanale funzioni in una configurazione con più schede di rete.
Eseguire un'operazione di copia file a esecuzione prolungata.
Durante l'esecuzione dell'operazione di copia file, simulare un errore di uno dei percorsi di rete disconnettendo uno dei cavi o disabilitando una delle schede di rete.
Verificare che la copia del file continui a usare la scheda di rete rimanente e funzioni senza errori di copia file.
Assicurarsi che non siano presenti altri carichi di lavoro che usano il percorso di connessione di rete disconnesso. Questa precauzione evita un possibile errore nei carichi di lavoro che non sfruttano SMB multicanale.
Verificare che SMB multicanale funzioni
Usare la procedura seguente per verificare il funzionamento di SMB multicanale.
Per verificare che la configurazione della scheda di rete sia corretta, digitare quanto segue in Windows PowerShell sia nel server SMB che nel client SMB.
Get-NetAdapter Get-NetAdapterRSS Get-NetAdapterRDMA Get-NetAdapterHardwareInfo
Per verificare che SMB multicanale sia abilitato, verificare che SMB identifichi correttamente le schede di rete e che le funzionalità RSS e RDMA della scheda di rete siano identificate correttamente, eseguire le operazioni seguenti:
Nel client SMB digitare quanto segue in Windows PowerShell:
Get-SmbClientConfiguration | Select EnableMultichannel Get-SmbClientNetworkInterface
Nel server SMB digitare quanto segue in Windows PowerShell:
Get-SmbServerConfiguration | Select EnableMultichannel Get-SmbServerNetworkInterface
Nel client SMB eseguire un'operazione di copia file a esecuzione prolungata che crea una sessione in corso con il server SMB. Durante l'esecuzione dell'operazione di copia, digitare quanto segue in Windows PowerShell per verificare che la connessione usi la versione corretta di SMB e che SMB multicanale funzioni.
Get-SmbConnection Get-SmbMultichannelConnection Get-SmbMultichannelConnection -IncludeNotSelected
Passaggi successivi
Per ulteriori informazioni, vedere anche: