Best practices voor SMB-prestaties voor Azure NetApp Files

Dit artikel helpt u inzicht te hebben in de prestaties en aanbevolen procedures voor SMB voor Azure NetApp Files.

SMB Multikanaal

SMB Meerdere kanalen is standaard ingeschakeld in SMB-shares. Alle SMB-shares die vooraf overeenkomen met bestaande SMB-volumes hebben de functie ingeschakeld en alle nieuw gemaakte volumes hebben ook de functie ingeschakeld op het moment van maken.

Elke SMB-verbinding die tot stand is gebracht voordat de functie wordt ingeschakeld, moet opnieuw worden ingesteld om te profiteren van de SMB-functionaliteit voor meerdere kanalen. Als u het opnieuw wilt instellen, kunt u de verbinding met de SMB-share verbreken en opnieuw verbinden.

Windows ondersteunt SMB meerdere kanalen sinds Windows 2012 om de beste prestaties mogelijk te maken. Zie SMB meerdere kanalen en de basisprincipes van SMB meerdere kanalen implementeren voor meer informatie.

Voordelen van SMB meerdere kanalen

Met de functie SMB meerdere kanalen kan een SMB3-client een groep verbindingen tot stand brengen via één netwerkinterfacekaart (NIC) of meerdere NIC's en deze gebruiken om aanvragen voor één SMB-sessie te verzenden. SMB1 en SMB2 vereisen daarentegen dat de client één verbinding tot stand brengt en al het SMB-verkeer voor een bepaalde sessie via die verbinding verzendt. Deze enkele verbinding beperkt de algehele protocolprestaties die kunnen worden bereikt vanaf één client.

Prestaties voor SMB meerdere kanalen

In de volgende tests en grafieken ziet u de kracht van SMB Meerdere kanalen voor workloads met één exemplaar.

Willekeurige I/O

Met SMB Multichannel uitgeschakeld op de client werden pure 4 KiB-lees- en schrijftests uitgevoerd met fio en een 40 GiB-werkset. De SMB-share is tussen elke test losgekoppeld, met stappen van het aantal SMB-clientverbindingen per RSS-netwerkinterface-instellingen van 1,4,8,,16 . set-SmbClientConfiguration -ConnectionCountPerRSSNetworkInterface <count> De tests tonen aan dat de standaardinstelling 4 voldoende is voor I/O-intensieve werkbelastingen. 816 Dit heeft een verwaarloosbaar effect.

De opdracht netstat -na | findstr 445 heeft aangetoond dat er extra verbindingen tot stand zijn gebracht met stappen van 1 naar 48 en naar 16. Tijdens elke test zijn er vier CPU-kernen volledig gebruikt voor SMB, zoals bevestigd door de perfmonstatistiek Per Processor Network Activity Cycles (niet opgenomen in dit artikel.)

Chart that shows random I/O comparison of SMB Multichannel.

De virtuele Azure-machine heeft geen invloed op I/O-limieten voor SMB -opslag (noch NFS). Zoals wordt weergegeven in de volgende grafiek, heeft het exemplaartype D32ds een beperkte snelheid van 308.000 voor IOPS voor in de cache opgeslagen opslag en 51.200 voor IOPS voor niet-cacheopslag. In de bovenstaande grafiek ziet u echter aanzienlijk meer I/O via SMB.

Chart that shows random I/O comparison test.

Sequentiële IO

Tests die vergelijkbaar zijn met de eerder beschreven willekeurige I/O-tests zijn uitgevoerd met 64-KiB-sequentiële I/O. Hoewel de toename van het aantal clientverbindingen per RSS-netwerkinterface buiten 4' geen merkbaar effect had op willekeurige I/O, geldt hetzelfde niet voor sequentiële I/O. Zoals in de volgende grafiek wordt weergegeven, wordt elke toename gekoppeld aan een overeenkomstige toename van de leesdoorvoer. Schrijfdoorvoer bleef vlak vanwege netwerkbandbreedtebeperkingen die door Azure zijn ingesteld voor elk exemplaartype/elke grootte.

Chart that shows throughput test comparison.

Azure plaatst netwerksnelheidslimieten voor elk type/grootte van de virtuele machine. De frequentielimiet wordt alleen opgelegd aan uitgaand verkeer. Het aantal NIC's dat aanwezig is op een virtuele machine heeft geen invloed op de totale hoeveelheid bandbreedte die beschikbaar is voor de machine. Het exemplaartype D32ds heeft bijvoorbeeld een netwerklimiet van 16.000 Mbps (2000 MiB/s). Zoals in de bovenstaande sequentiële grafiek wordt weergegeven, is de limiet van invloed op het uitgaande verkeer (schrijfbewerkingen) maar niet op leesbewerkingen met meerdere kanalen.

Chart that shows sequential I/O comparison test.

SMB-ondertekening

Het SMB-protocol biedt de basis voor het delen van bestanden en afdrukken en andere netwerkbewerkingen, zoals extern Windows-beheer. Om man-in-the-middle-aanvallen te voorkomen die SMB-pakketten in transit wijzigen, ondersteunt het SMB-protocol de digitale ondertekening van SMB-pakketten.

SMB-ondertekening wordt ondersteund voor alle SMB-protocolversies die worden ondersteund door Azure NetApp Files.

Invloed van de prestaties van SMB-ondertekening

SMB-ondertekening heeft een verwijderbaar effect op SMB-prestaties. Naast andere mogelijke oorzaken van de prestatievermindering verbruikt de digitale ondertekening van elk pakket extra CPU aan de clientzijde, zoals hieronder wordt weergegeven in de uitvoer van de prestatie. In dit geval wordt Core 0 verantwoordelijk weergegeven voor SMB, inclusief SMB-ondertekening. Een vergelijking met de niet-meerdere kanalen sequentiële leesdoorvoernummers in de vorige sectie laat zien dat SMB-ondertekening de totale doorvoer vermindert van 875MiB/s tot ongeveer 250MiB/s.

Chart that shows SMB Signing performance impact.

Prestaties voor één exemplaar met een gegevensset van 1 TB

Om gedetailleerder inzicht te krijgen in workloads met lees-/schrijfmixen, tonen de volgende twee grafieken de prestaties van één cloudvolume op ultraserviceniveau van 50 TB met een gegevensset van 1 TB en met SMB meerdere kanalen van 4. Er is een optimale IODepth van 16 gebruikt en FIO-parameters (Flexible IO) zijn gebruikt om het volledige gebruik van de netwerkbandbreedte (numjobs=16) te garanderen.

In de volgende grafiek ziet u de resultaten voor 4k willekeurige I/O, met één VM-exemplaar en een combinatie van lees-/schrijfbewerkingen met intervallen van 10%:

Chart that shows Windows 2019 standard _D32ds_v4 4K random IO test.

In de volgende grafiek ziet u de resultaten voor sequentiële I/O:

Chart that shows Windows 2019 standard _D32ds_v4 64K sequential throughput.

Prestaties bij het uitschalen met 5 VM's met een gegevensset van 1 TB

Deze tests met vijf VM's gebruiken dezelfde testomgeving als de enkele VM, waarbij elk proces naar een eigen bestand wordt geschreven.

In de volgende grafiek ziet u de resultaten voor willekeurige I/O:

Chart that shows Windows 2019 standard _D32ds_v4 4K 5-instance randio IO test.

In de volgende grafiek ziet u de resultaten voor sequentiële I/O:

Chart that shows Windows 2019 standard _D32ds_v4 64K 5-instance sequential throughput.

Hyper-V-ethernetadapters bewaken

Eén strategie die wordt gebruikt bij het testen met FIO, is om in te stellen numjobs=16. Als u dit doet, wordt elke taak in 16 specifieke exemplaren gesplitst om de Microsoft Hyper-V-netwerkadapter te maximaliseren.

U kunt controleren op activiteit op elk van de adapters in Windows Performance Monitor door Prestatiemeter prestatiemeter toevoegen > netwerkinterface > Microsoft Hyper-V-netwerkadapter te selecteren.>

Screenshot that shows Performance Monitor Add Counter interface.

Nadat u gegevensverkeer in uw volumes hebt uitgevoerd, kunt u uw adapters bewaken in Windows Performance Monitor. Als u niet al deze 16 virtuele adapters gebruikt, kunt u de netwerkbandbreedtecapaciteit mogelijk niet maximaliseren.

Screenshot that shows Performance Monitor output.

SMB-versleuteling

Deze sectie helpt u inzicht te hebben in SMB-versleuteling (SMB 3.0 en SMB 3.1.1)

SMB-versleuteling biedt end-to-end-versleuteling van SMB-gegevens en beschermt gegevens tegen het afluisteren van exemplaren op niet-vertrouwde netwerken. SMB-versleuteling wordt ondersteund in SMB 3.0 en hoger.

Wanneer een aanvraag naar de opslag wordt verzonden, versleutelt de client de aanvraag, die vervolgens door de opslag wordt ontsleuteld. Reacties worden op dezelfde manier versleuteld door de server en ontsleuteld door de client.

Windows 10, Windows 2012 en latere versies ondersteunen SMB-versleuteling.

SMB-versleuteling en Azure NetApp Files

SMB-versleuteling is ingeschakeld op shareniveau voor Azure NetApp Files. SMB 3.0 maakt gebruik van het AES-CCM-algoritme, terwijl SMB 3.1.1 gebruikmaakt van het AES-GCM-algoritme.

SMB-versleuteling is niet vereist. Als zodanig is het alleen ingeschakeld voor een bepaalde share als de gebruiker vraagt dat Azure NetApp Files dit inschakelt. Azure NetApp Files-shares worden nooit blootgesteld aan internet. Ze zijn alleen toegankelijk vanuit een bepaald VNet, via VPN of expressroute, zodat Azure NetApp Files-shares inherent veilig zijn. De keuze om SMB-versleuteling in te schakelen, is volledig aan de gebruiker. Houd rekening met de verwachte prestatiestraf voordat u deze functie inschakelt.

Impact van SMB-versleuteling op clientworkloads

Hoewel SMB-versleuteling invloed heeft op zowel de client (CPU-overhead voor het versleutelen en ontsleutelen van berichten) als de opslag (vermindering van de doorvoer), wordt in de volgende tabel alleen de impact op de opslag gemarkeerd. U moet de impact van de versleutelingsprestaties op uw eigen toepassingen testen voordat u workloads in productie implementeert.

I/O-profiel Impact
Workloads lezen en schrijven 10% tot 15%
Metagegevensintensief %5

Versneld netwerken

Voor maximale prestaties is het raadzaam om waar mogelijk versneld netwerken op uw virtuele machines te configureren. Houd de volgende overwegingen in gedachten:

  • Azure Portal maakt versneld netwerken standaard mogelijk voor virtuele machines die deze functie ondersteunen. Andere implementatiemethoden, zoals Ansible en vergelijkbare configuratiehulpprogramma's, kunnen echter niet worden gebruikt. Als u versneld netwerken niet inschakelt, kunnen de prestaties van een machine worden gekrabbeld.
  • Als versneld netwerken niet is ingeschakeld op de netwerkinterface van een virtuele machine vanwege het gebrek aan ondersteuning voor een exemplaartype of -grootte, blijft deze uitgeschakeld met grotere exemplaartypen. In deze gevallen hebt u handmatige tussenkomst nodig.
  • Het is niet nodig om versneld netwerken in te stellen voor de NIC's in het toegewezen subnet van Azure NetApp Files. Versneld netwerken is een mogelijkheid die alleen van toepassing is op virtuele Azure-machines. NIC's voor Azure NetApp Files zijn standaard geoptimaliseerd.

RSS

Azure NetApp Files biedt ondersteuning voor schalen aan de ontvangstzijde (RSS).

Als SMB meerdere kanalen is ingeschakeld, brengt een SMB3-client meerdere TCP-verbindingen tot stand met de Azure NetApp Files SMB-server via een netwerkinterfacekaart (NIC) die geschikt is voor één RSS.

Als u wilt zien of NIC's van uw virtuele Azure-machine RSS ondersteunen, voert u de opdracht Get-SmbClientNetworkInterface als volgt uit en controleert u het veld RSS Capable:

Screenshot that shows RSS output for Azure virtual machine.

Meerdere NIC's op SMB-clients

U moet niet meerdere NIC's configureren op uw client voor SMB. De SMB-client komt overeen met het aantal NIC's dat wordt geretourneerd door de SMB-server. Elk opslagvolume is toegankelijk vanaf één en slechts één opslageindpunt. Dit betekent dat er slechts één NIC wordt gebruikt voor een bepaalde SMB-relatie.

Zoals in de onderstaande uitvoer Get-SmbClientNetworkInterace wordt weergegeven, heeft de virtuele machine 2 netwerkinterfaces--15 en 12. Zoals wordt weergegeven onder de volgende opdracht Get-SmbMultichannelConnection, hoewel er twee RSS-compatibele NIC's zijn, wordt alleen interface 12 gebruikt in verbinding met de SMB-share; interface 15 wordt niet gebruikt.

Screeshot that shows output for RSS-capable NICS.

Volgende stappen