Prestandapåverkan av Kerberos på Azure NetApp Files NFSv4.1-volymer
Azure NetApp Files stöder NFS-klientkryptering i Kerberos-lägen (krb5, krb5i och krb5p) med AES-256-kryptering. I den här artikeln beskrivs kerberos prestandapåverkan på NFSv4.1-volymer. Prestandajämförelser som refereras i den här artikeln görs mot sec=sys
säkerhetsparametern och testas på en enda volym med en enda klient.
Tillgängliga säkerhetsalternativ
De säkerhetsalternativ som för närvarande är tillgängliga för NFSv4.1-volymer är följande:
- sec=sys använder lokala UNIX-användargränssnitt och GID:er med hjälp av AUTH_SYS för att autentisera NFS-åtgärder.
- sec=krb5 använder Kerberos V5 i stället för lokala UNIX-användargränssnitt och GID:er för att autentisera användare.
- sec=krb5i använder Kerberos V5 för användarautentisering och utför integritetskontroll av NFS-åtgärder med hjälp av säkra kontrollsummor för att förhindra datamanipulering.
- sec=krb5p använder Kerberos V5 för användarautentisering och integritetskontroll. Den krypterar NFS-trafik för att förhindra trafiksniffning. Det här alternativet är den säkraste inställningen, men det innebär också mest prestandakostnader.
Prestandavektorer testade
I det här avsnittet beskrivs prestandapåverkan på klientsidan för de olika sec=*
alternativen.
- Prestandapåverkan testades på två nivåer: låg samtidighet (låg belastning) och hög samtidighet (övre gränser för I/O och dataflöde).
- Tre typer av arbetsbelastningar testades:
- Slumpmässig läsning/skrivning av liten åtgärd (med FIO)
- Stor åtgärd sekventiell läsning/skrivning (med FIO)
- Hög arbetsbelastning för metadata som genereras av program som git
Förväntad prestandapåverkan
Det finns två fokusområden: ljus belastning och övre gräns. I följande listor beskrivs säkerhetsinställningen för prestandapåverkan efter säkerhetsinställning och scenario efter scenario.
Testomfång
- Alla jämförelser görs mot
sec=sys
säkerhetsparametern. - Testet gjordes på en enda volym med hjälp av en enda klient.
Prestandapåverkan för krb5:
- Genomsnittlig IOPS minskade med 53 %
- Genomsnittligt dataflöde minskade med 53 %
- Genomsnittlig svarstid ökade med 0,2 ms
Prestandapåverkan för krb5i:
- Genomsnittlig IOPS minskade med 55 %
- Genomsnittligt dataflöde minskade med 55 %
- Genomsnittlig svarstid ökade med 0,6 ms
Prestandapåverkan för krb5p:
- Genomsnittlig IOPS minskade med 77 %
- Genomsnittligt dataflöde minskade med 77 %
- Genomsnittlig svarstid ökade med 1,6 ms
Prestandaöverväganden med nconnect
Vi rekommenderar inte att du använder nconnect
och sec=krb5*
monterar alternativ tillsammans. Prestandaförsämring har observerats när du använder de två alternativen i kombination.
GSS-API (Generic Security Standard Application Programming Interface) är ett sätt för program att skydda data som skickas till peer-program. Dessa data kan skickas från en klient på en dator till en server på en annan dator.
När nconnect
används i Linux delas GSS-säkerhetskontexten nconnect
mellan alla anslutningar till en viss server. TCP är en tillförlitlig transport som stöder paketleverans utan beställning för att hantera out-of-order-paket i en GSS-ström med hjälp av ett skjutfönster med sekvensnummer. När paket som inte finns i sekvensfönstret tas emot ignoreras säkerhetskontexten och en ny säkerhetskontext förhandlas. Alla meddelanden som skickas med i den nu borttagna kontexten är inte längre giltiga, vilket kräver att meddelandena skickas igen. Ett större antal paket i en nconnect
konfiguration orsakar ofta utgående paket, vilket utlöser det beskrivna beteendet. Inga specifika försämringsprocent kan anges med det här beteendet.