Metodtips för Linux NFS-monteringsalternativ för Azure NetApp Files
Den här artikeln hjälper dig att förstå monteringsalternativ och metodtips för att använda dem med Azure NetApp Files.
Nconnect
Med monteringsalternativet nconnect
kan du ange antalet anslutningar (nätverksflöden) som ska upprättas mellan NFS-klienten och NFS-slutpunkten upp till en gräns på 16. Traditionellt använder en NFS-klient en enda anslutning mellan sig själv och slutpunkten. Om du ökar antalet nätverksflöden ökar de övre gränserna för I/O och dataflödet avsevärt. Testningen har visat nconnect=8
sig vara den mest högpresterande.
När du förbereder en SAS GRID-miljö med flera noder för produktion kanske du ser en upprepningsbar minskning på 30 % av körningstiden från 8 timmar till 5,5 timmar:
Monteringsalternativ | Körningstider för jobb |
---|---|
Nej nconnect |
8 timmar |
nconnect=8 |
5,5 timmar |
Båda testuppsättningarna använde samma E32-8_v4 virtuella dator och RHEL8.3, med read-ahead inställt på 15 MiB.
Tänk på följande regler när du använder nconnect
:
nconnect
stöds av Azure NetApp Files på alla större Linux-distributioner men endast på nyare versioner:Linux-version NFSv3 (lägsta version) NFSv4.1 (lägsta version) Redhat Enterprise Linux RHEL8.3 RHEL8.3 SUSE SLES12SP4 eller SLES15SP1 SLES15SP2 Ubuntu Ubuntu18.04 Kommentar
SLES15SP2 är den lägsta SUSE-versionen som
nconnect
stöds av Azure NetApp Files för NFSv4.1. Alla andra versioner som anges är de första versionerna som introduceradenconnect
funktionen.Alla monteringar från en enskild slutpunkt ärver inställningen för den
nconnect
första exportmonterade, som du ser i följande scenarier:Scenario 1:
nconnect
används av den första monteringen. Därför användernconnect=8
alla monteringar mot samma slutpunkt .mount 10.10.10.10:/volume1 /mnt/volume1 -o nconnect=8
mount 10.10.10.10:/volume2 /mnt/volume2
mount 10.10.10.10:/volume3 /mnt/volume3
Scenario 2:
nconnect
används inte av den första monteringen. Därför kan inga monteringar mot samma slutpunkt användasnconnect
även omnconnect
det kan anges därpå.mount 10.10.10.10:/volume1 /mnt/volume1
mount 10.10.10.10:/volume2 /mnt/volume2 -o nconnect=8
mount 10.10.10.10:/volume3 /mnt/volume3 -o nconnect=8
Scenario 3:
nconnect
inställningarna sprids inte över separata lagringsslutpunkter.nconnect
används av monteringen som kommer från10.10.10.10
men inte av monteringen som kommer från10.12.12.12
.mount 10.10.10.10:/volume1 /mnt/volume1 -o nconnect=8
mount 10.12.12.12:/volume2 /mnt/volume2
nconnect
kan användas för att öka samtidigheten i lagringen från en viss klient.
Mer information finns i Metodtips för samtidighet i Linux för Azure NetApp Files.
Nconnect
Överväganden
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.
Rsize
och Wsize
Exempel i det här avsnittet innehåller information om hur du närmar dig prestandajustering. Du kan behöva göra justeringar för att passa dina specifika programbehov.
Flaggorna rsize
och wsize
anger den maximala överföringsstorleken för en NFS-åtgärd. Om rsize
eller wsize
inte anges på monteringen förhandlar klienten och servern om den största storlek som stöds av de två. För närvarande stöder både Azure NetApp Files och moderna Linux-distributioner läs- och skrivstorlekar så stora som 1 048 576 byte (1 MiB). För bästa övergripande dataflöde och svarstid rekommenderar Azure NetApp Files dock att du anger både rsize
och wsize
inte större än 262 144 byte (256 K). Du kan observera att både ökad svarstid och minskat dataflöde vid användning rsize
och wsize
större än 256 KiB.
Distribuera till exempel ett SAP HANA-utskalningssystem med väntelägesnod på virtuella Azure-datorer med hjälp av Azure NetApp Files på SUSE Linux Enterprise Server visar 256-KiB rsize
och wsize
maximalt enligt följande:
sudo vi /etc/fstab
# Add the following entries
10.23.1.5:/HN1-data-mnt00001 /hana/data/HN1/mnt00001 nfs rw,vers=4,minorversion=1,hard,timeo=600,rsize=262144,wsize=262144,noatime,_netdev,sec=sys 0 0
10.23.1.6:/HN1-data-mnt00002 /hana/data/HN1/mnt00002 nfs rw,vers=4,minorversion=1,hard,timeo=600,rsize=262144,wsize=262144,noatime,_netdev,sec=sys 0 0
10.23.1.4:/HN1-log-mnt00001 /hana/log/HN1/mnt00001 nfs rw,vers=4,minorversion=1,hard,timeo=600,rsize=262144,wsize=262144,noatime,_netdev,sec=sys 0 0
10.23.1.6:/HN1-log-mnt00002 /hana/log/HN1/mnt00002 nfs rw,vers=4,minorversion=1,hard,timeo=600,rsize=262144,wsize=262144,noatime,_netdev,sec=sys 0 0
10.23.1.4:/HN1-shared/shared /hana/shared nfs rw,vers=4,minorversion=1,hard,timeo=600,rsize=262144,wsize=262144,noatime,_netdev,sec=sys 0 0
SAS Viya rekommenderar till exempel en läs- och skrivstorlek på 256 KiB, och SAS GRID begränsar r/wsize
till 64 KiB samtidigt som läsprestanda utökas med ökad läsning framåt för NFS-monteringarna. Mer information finns i Metodtips för läsning i NFS för Azure NetApp Files .
Följande överväganden gäller för användning av rsize
och wsize
:
- Slumpmässiga I/O-åtgärdsstorlekar är ofta mindre än monteringsalternativen
rsize
ochwsize
. Därför är de inte begränsningar. - När du använder filsystemcachen sker sekventiell I/O vid den storlek som baseras på alternativen och monteringen
rsize
, såvida inte filstorleken är mindre änrsize
ochwsize
.wsize
- Åtgärder som kringgår filsystemcacheminnet, även om de
rsize
fortfarande begränsas av alternativen ochwsize
monteringen, är inte lika stora som det högsta som anges avrsize
ellerwsize
. Det här är viktigt när du använder arbetsbelastningsgeneratorer som har alternativetdirectio
.
Bästa praxis med Azure NetApp Files är att för bästa övergripande dataflöde och svarstid ange rsize
och wsize
inte större än 262 144 byte.
Nära öppen konsekvens och cache-attributtimers
NFS använder en lös konsekvensmodell. Konsekvensen är lös eftersom programmet inte behöver gå till delad lagring och hämta data varje gång för att använda den, ett scenario som skulle ha en enorm inverkan på programmets prestanda. Det finns två mekanismer som hanterar den här processen: cacheattributtimers och nära öppen konsekvens.
Om klienten har fullständigt ägarskap för data, dvs. den inte delas mellan flera noder eller system, finns det garanterad konsekvens. I så fall kan du minska åtkomståtgärderna getattr
till lagring och påskynda programmet genom att stänga av konsekvensen från nära till öppen (cto
) (nocto
som monteringsalternativ) och genom att aktivera tidsgränserna för cachehantering av attribut (actimeo=600
som ett monteringsalternativ ändras timern till 10 m jämfört med standardvärdena acregmin=3,acregmax=30,acdirmin=30,acdirmax=60
). I vissa tester nocto
minskar cirka 65–70 % av åtkomstanropen getattr
, och om du justerar actimeo
minskar dessa anrop ytterligare 20–25 %.
Så här fungerar attributcachetimers
Attributen acregmin
, acregmax
, acdirmin
och acdirmax
styr cachens samtidighet. De två tidigare attributen styr hur länge attributen för filer är betrodda. De två senare attributen styr hur länge attributen för själva katalogfilen är betrodda (katalogstorlek, katalogägarskap, katalogbehörigheter). Attributen min
och max
definierar minsta och högsta varaktighet för vilka attribut för en katalog, attribut för en fil och cacheinnehåll i en fil anses vara tillförlitliga. Mellan min
och max
används en algoritm för att definiera hur lång tid en cachelagrad post är betrodd.
Tänk till exempel på standardvärdena acregmin
och acregmax
värdena, 3 respektive 30 sekunder. Attributen utvärderas till exempel upprepade gånger för filerna i en katalog. Efter 3 sekunder efterfrågas NFS-tjänsten för färskhet. Om attributen bedöms vara giltiga fördubblar klienten den betrodda tiden till 6 sekunder, 12 sekunder, 24 sekunder, då det maximala värdet är 30, 30 sekunder. Från och med då, tills de cachelagrade attributen anses vara inaktuella (då cykeln börjar om), definieras pålitlighet som 30 sekunder som det värde som anges av acregmax
.
Det finns andra fall som kan dra nytta av en liknande uppsättning monteringsalternativ, även om det inte finns något fullständigt ägarskap av klienterna, till exempel om klienterna använder data som skrivskyddade och datauppdateringen hanteras via en annan sökväg. För program som använder rutnät av klienter som EDA, webbvärd och filmrendering och har relativt statiska datamängder (EDA-verktyg eller bibliotek, webbinnehåll, texturdata) är det vanliga beteendet att datauppsättningen till stor del cachelagras på klienterna. Det finns få läsningar och inga skrivningar. Det finns många getattr
/access-samtal som kommer tillbaka till lagringen. Dessa datauppsättningar uppdateras vanligtvis via en annan klient som monterar filsystemen och skickar regelbundet innehållsuppdateringar.
I dessa fall finns det en känd fördröjning i att hämta nytt innehåll och programmet fungerar fortfarande med potentiellt inaktuella data. I dessa fall nocto
och actimeo
kan användas för att styra den period där inaktuellt datum kan hanteras. I EDA-verktyg och - actimeo=600
bibliotek fungerar det till exempel bra eftersom dessa data vanligtvis uppdateras sällan. För små webbvärdar där klienter behöver se sina datauppdateringar i rätt tid när de redigerar sina webbplatser kan actimeo=10
det vara acceptabelt. För storskaliga webbplatser där innehåll skickas till flera filsystem actimeo=60
kan det vara acceptabelt.
Om du använder de här monteringsalternativen minskar arbetsbelastningen avsevärt till lagring i dessa fall. (Till exempel har en nyligen genomförd EDA-upplevelse minskat IOPs till verktygsvolymen från >150 K till ~6 K.) Program kan köras betydligt snabbare eftersom de kan lita på data i minnet. (Minnesåtkomsttiden är nanosekunder jämfört med hundratals mikrosekunder för getattr
/access i ett snabbt nätverk.)
Konsekvens nära öppen
Nära-till-öppen konsekvens (monteringsalternativet cto
) säkerställer att oavsett cachens tillstånd, visas alltid de senaste data för en fil för programmet när de öppnas.
- När en katalog crawlas (
ls
tillls -l
exempel) utfärdas en viss uppsättning RPC:er (fjärrproceduranrop). NFS-servern delar sin vy över filsystemet. Så länge som används av alla NFS-klienter somcto
har åtkomst till en viss NFS-export, ser alla klienter samma lista över filer och kataloger däri. Aktualiteten för attributen för filerna i katalogen styrs av attributcachetimers. Så länge somcto
används visas filer med andra ord för fjärrklienter så snart filen har skapats och filen hamnar på lagringen. - När en fil öppnas garanteras innehållet i filen från NFS-serverns perspektiv.
Om det finns ett konkurrenstillstånd där innehållet inte har rensats från dator 1 när en fil öppnas på dator 2, tar Machine 2 bara emot data som finns på servern vid tidpunkten för öppningen. I det här fallet hämtar inte Machine 2 mer data från filen förrän timern har nåtts
acreg
, och Machine 2 kontrollerar cachesammansekvensen från servern igen. Det här scenariot kan observeras med hjälp av en svans-f
från dator 2 när filen fortfarande skrivs till från dator 1.
Ingen nära-till-öppen konsekvens
När ingen nära-till-öppen konsekvens (nocto
) används, litar klienten på färskheten i den aktuella vyn av filen och katalogen tills tidsinställda cacheattribut har brutits.
När en katalog crawlas (
ls
tillls -l
exempel) utfärdas en viss uppsättning RPC:er (fjärrproceduranrop). Klienten utfärdar endast ett anrop till servern för en aktuell lista över filer näracdir
cachetimerns värde har överträtts. I det här fallet visas inte nyligen skapade filer och kataloger. Nyligen borttagna filer och kataloger visas.När en fil öppnas, så länge filen fortfarande finns i cacheminnet, returneras dess cachelagrade innehåll (om det finns något) utan att verifiera konsekvensen med NFS-servern.