Procedure consigliate per le prestazioni SMB per Azure NetApp Files
Questo articolo illustra le prestazioni e le procedure consigliate per SMB per Azure NetApp Files.
SMB multicanale
SMB multicanale è abilitato per impostazione predefinita nelle condivisioni SMB. Tutte le condivisioni SMB preesistenti ai volumi SMB esistenti hanno la funzionalità abilitata; Tutti i volumi appena creati hanno anche la funzionalità abilitata al momento della creazione.
Qualsiasi connessione SMB stabilita prima dell'abilitazione della funzionalità deve essere reimpostata per sfruttare la funzionalità SMB multicanale. Per reimpostare, è possibile disconnettere e riconnettere la condivisione SMB.
Windows supporta SMB multicanale da Windows 2012 per garantire prestazioni ottimali. Per informazioni dettagliate, vedere Distribuire SMB multicanale e Le nozioni di base di SMB multicanale.
Vantaggi di SMB multicanale
La funzionalità SMB multicanale consente a un client SMB3 di stabilire un pool di connessioni tramite una singola scheda di interfaccia di rete (NIC) o più schede di interfaccia di rete e di usarle per inviare richieste per una singola sessione SMB. Al contrario, per impostazione predefinita, SMB1 e SMB2 richiedono al client di stabilire una connessione e inviare tutto il traffico SMB per una determinata sessione su tale connessione. Questa singola connessione limita le prestazioni complessive del protocollo che possono essere ottenute da un singolo client.
Prestazioni per SMB multicanale
I test e i grafici seguenti illustrano la potenza di SMB multicanale nei carichi di lavoro a istanza singola.
I/O casuale
Con SMB multicanale disabilitato nel client, sono stati eseguiti test di lettura e scrittura 4 KiB puri usando FIO e un working set da 40 GiB. La condivisione SMB è stata scollegata tra ogni test, con incrementi del numero di connessioni client SMB per ogni impostazione dell'interfaccia di rete RSS di 1
,4
,8
,16
e set-SmbClientConfiguration -ConnectionCountPerRSSNetworkInterface <count>
. I test mostrano che l'impostazione predefinita di è sufficiente per i carichi di lavoro con utilizzo intensivo di 4
I/O; l'incremento a 8
e 16
ha avuto effetti trascurabili.
Il comando netstat -na | findstr 445
ha dimostrato che sono state stabilite connessioni aggiuntive con incrementi da 1
a 4
, 4
a 8
e 8
a 16
. Quattro core CPU sono stati completamente usati per SMB durante ogni test, come confermato dalla statistica perfmon Per Processor Network Activity Cycles
(non inclusa in questo articolo).
La macchina virtuale di Azure non influisce sui limiti di I/O di archiviazione SMB (né NFS). Come illustrato nel grafico seguente, il tipo di istanza D32ds ha una velocità limitata di 308.000 per operazioni di I/O al secondo di archiviazione memorizzate nella cache e 51.200 per operazioni di I/O al secondo di archiviazione non memorizzate nella cache. Tuttavia, il grafico precedente mostra significativamente più I/O su SMB.
I/O sequenziale
Test simili ai test di I/O casuali descritti in precedenza sono stati eseguiti con operazioni di I/O sequenziali da 64 KiB. Anche se l'aumento del numero di connessioni client per ogni interfaccia di rete RSS oltre quattro non ha avuto effetti evidenti sull'I/O casuale, lo stesso non si applica alle operazioni di I/O sequenziali. Come illustrato nel grafico seguente, ogni aumento è associato a un aumento corrispondente della velocità effettiva in lettura. La velocità effettiva di scrittura è rimasta flat a causa delle restrizioni della larghezza di banda di rete poste da Azure per ogni tipo di istanza e dimensioni.
Azure inserisce limiti di frequenza di rete per ogni tipo di macchina virtuale e dimensioni. Il limite di velocità viene imposto solo al traffico in uscita. Il numero di schede di interfaccia di rete presenti in una macchina virtuale non ha alcun impatto sulla quantità totale di larghezza di banda disponibile per il computer. Ad esempio, il tipo di istanza D32ds ha un limite di rete imposto di 16.000 Mbps (2.000 MiB/s). Come illustrato nel grafico sequenziale precedente, il limite influisce sul traffico in uscita (scritture) ma non sulle letture multicanale.
Firma SMB
Il protocollo SMB fornisce la base per la condivisione di file e stampa e altre operazioni di rete, ad esempio l'amministrazione remota di Windows. Per evitare attacchi man-in-the-middle che modificano i pacchetti SMB in transito, il protocollo SMB supporta la firma digitale dei pacchetti SMB.
La firma SMB è supportata per tutte le versioni del protocollo SMB supportate da Azure NetApp Files.
Impatto sulle prestazioni della firma SMB
La firma SMB ha un effetto deleterio sulle prestazioni di SMB. Tra le altre possibili cause della riduzione delle prestazioni, la firma digitale di ogni pacchetto utilizza una CPU lato client aggiuntiva come illustrato nell'output di perfmon riportato di seguito. In questo caso, Core 0 viene visualizzato come responsabile per SMB, inclusa la firma SMB. Un confronto con i numeri di velocità effettiva di lettura sequenziale non multicanale nella sezione precedente mostra che la firma SMB riduce la velocità effettiva complessiva da 875MiB/s a circa 250MiB/s.
Prestazioni per una singola istanza con un set di dati da 1 TB
Per fornire informazioni più dettagliate sui carichi di lavoro con combinazioni di lettura/scrittura, i due grafici seguenti mostrano le prestazioni di un singolo volume cloud a livello di servizio Ultra di 50 TB con un set di dati da 1 TB e con SMB multicanale pari a 4. È stato utilizzato un valore ottimale IODepth
di 16; Sono stati usati parametri di I/O flessibili (FIO) per garantire l'uso completo della larghezza di banda di rete (numjobs=16
).
Il grafico seguente mostra i risultati per l'I/O casuale di 4k, con una singola istanza di macchina virtuale e una combinazione di lettura/scrittura a intervalli del 10%:
Il grafico seguente mostra i risultati per l'I/O sequenziale:
Prestazioni quando si aumenta il numero di istanze usando 5 macchine virtuali con un set di dati da 1 TB
Questi test con 5 macchine virtuali usano lo stesso ambiente di test della singola macchina virtuale, con ogni processo che scrive nel proprio file.
Il grafico seguente mostra i risultati per l'I/O casuale:
Il grafico seguente mostra i risultati per l'I/O sequenziale:
Come monitorare le schede Ethernet Hyper-V
Una strategia usata nei test con FIO consiste nell'impostare numjobs=16
. In questo modo, ogni processo viene inserito in 16 istanze specifiche per ottimizzare la scheda di rete Microsoft Hyper-V.
È possibile verificare la presenza di attività in ognuna delle schede in Windows Monitor prestazioni selezionando Monitor prestazioni > Aggiungi interfaccia di rete > contatori > Microsoft Hyper-V Network Adapter.
Dopo aver eseguito il traffico dati nei volumi, è possibile monitorare le schede in Windows Monitor prestazioni. Se non si usano tutte queste 16 schede virtuali, potrebbe non essere possibile ottimizzare la capacità della larghezza di banda di rete.
Crittografia SMB
Questa sezione illustra la crittografia SMB (SMB 3.0 e SMB 3.1.1)
La crittografia SMB fornisce la crittografia end-to-end dei dati SMB e protegge i dati dalle occorrenze di intercettazione su reti non attendibili. La crittografia SMB è supportata in SMB 3.0 e versioni successive.
Quando si invia una richiesta all'archiviazione, il client crittografa la richiesta, che viene quindi decrittografa. Le risposte vengono crittografate in modo analogo dal server e decrittografate dal client.
Windows 10, Windows 2012 e versioni successive supportano la crittografia SMB.
Crittografia SMB e Azure NetApp Files
La crittografia SMB è abilitata a livello di condivisione per Azure NetApp Files. SMB 3.0 usa l'algoritmo AES-CCM, mentre SMB 3.1.1 usa l'algoritmo AES-GCM.
La crittografia SMB non è necessaria. Di conseguenza, è abilitato solo per una determinata condivisione se l'utente richiede che Azure NetApp Files lo abiliti. Le condivisioni di Azure NetApp Files non vengono mai esposte a Internet. Sono accessibili solo dall'interno di una determinata rete virtuale, tramite VPN o expressroute, in modo che le condivisioni di Azure NetApp Files siano intrinsecamente sicure. La scelta di abilitare la crittografia SMB spetta interamente all'utente. Tenere presente la riduzione delle prestazioni prevista prima di abilitare questa funzionalità.
Impatto della crittografia SMB sui carichi di lavoro del client
Anche se la crittografia SMB ha un impatto sia sul client (sovraccarico della CPU per la crittografia e la decrittografia dei messaggi) che sull'archiviazione (riduzione della velocità effettiva), la tabella seguente evidenzia solo l'impatto sull'archiviazione. È necessario testare l'impatto sulle prestazioni della crittografia rispetto alle proprie applicazioni prima di distribuire i carichi di lavoro nell'ambiente di produzione.
Profilo di I/O | Impatto |
---|---|
Carichi di lavoro di lettura e scrittura | Dal 10% al 15% |
Uso intensivo dei metadati | %5 |
Rete accelerata
Per ottenere prestazioni massime, è consigliabile configurare la rete accelerata nelle macchine virtuali, laddove possibile. Tenere presente quanto segue:
- Il portale di Azure abilita la rete accelerata per impostazione predefinita per le macchine virtuali che supportano questa funzionalità. Tuttavia, altri metodi di distribuzione, ad esempio Ansible e strumenti di configurazione simili, non possono. L'impossibilità di abilitare la rete accelerata può evitare le prestazioni di un computer.
- Se la rete accelerata non è abilitata nell'interfaccia di rete di una macchina virtuale a causa della mancanza di supporto per un tipo o una dimensione di istanza, rimane disabilitata con tipi di istanza più grandi. In questi casi è necessario un intervento manuale.
- Non è necessario impostare la rete accelerata per le schede di interfaccia di rete nella subnet dedicata di Azure NetApp Files. La Rete accelerata è una funzionalità applicabile solo alle macchine virtuali di Azure. Le schede di interfaccia di rete di Azure NetApp Files sono ottimizzate per progettazione.
Ricevere il ridimensionamento laterale
Azure NetApp Files supporta il ridimensionamento laterale (RSS).
Con SMB multicanale abilitato, un client SMB3 stabilisce più connessioni TCP al server SMB di Azure NetApp Files tramite una scheda di interfaccia di rete (NIC) che è in grado di supportare rss singolo.
Per verificare se le schede di interfaccia di rete della macchina virtuale di Azure supportano RSS, eseguire il comando Get-SmbClientNetworkInterface
come indicato di seguito e controllare il campo RSS Capable
:
Più schede di interfaccia di rete nei client SMB
Non è consigliabile configurare più schede di interfaccia di rete nel client per SMB. Il client SMB non corrisponde al numero di schede di interfaccia di rete restituito dal server SMB. Ogni volume di archiviazione è accessibile da un solo endpoint di archiviazione, ovvero viene usata una sola scheda di interfaccia di rete per una determinata relazione SMB.
Come illustrato nell'output seguente Get-SmbClientNetworkInterace
, la macchina virtuale ha due interfacce di rete: 15 e 12. Come illustrato nel comando Get-SmbMultichannelConnection
seguente, anche se sono presenti due schede di interfaccia di rete che supportano RSS, viene usata solo l'interfaccia 12 in connessione con la condivisione SMB; l'interfaccia 15 non è in uso.