NFS-återexport över ett VPN är inte paketvidarebefordran
Maskinen i mitten är klient och server, inte router. Filsystems-ID:n, inpackade filhandtag och saknat låsstöd ändrar var för sig designen.
En Linux-maskin ansluter till ett VPN, monterar en fjärr-NFS-export och betjänar sedan den monteringen till en annan uppsättning klienter. Den här ordningen ser ut som routning med extra steg, och det är det första felaktiga antagandet. Maskinen i mitten är klient mot den överordnade servern och server för de underordnade klienterna, och den deltar i båda filserviceförhållandena. Paketvidarebefordran har ingen åsikt om filhandtag, låsning eller filsystemets identitet; en återexport har.
Börja med att fråga om de underordnade klienterna kunde nå den ursprungliga servern direkt. Om de kan är maskinen i mitten valfri.
Tre modeller, tre berättelser om konsistens
Direkt montering är enklast: varje klient monterar den ursprungliga servern genom tunneln, och den serverns exportpolicy styr åtkomsten. Återexport är maskinen i mitten som presenterar en annan tjänstegräns, vilket är användbart när nätet mot klienterna inte får nå servern direkt. Replikering är en tredje modell, och den flyttar frågan från konsistens till synkronisering och konfliktlösning.
Beskriv inte en replikerad kopia som om den vore en levande återexport. Fellägena skiljer sig, och en användare som förväntar sig att varje operation når det ursprungliga filsystemet blir överraskad vid ett länkavbrott.
Identiteten överlever monteringskommandot
Återexporter behöver ett explicit filsystems-ID, och den identiteten måste överleva omstarter och konfigurationsombyggnader. Kärndokumentationen är tydlig om kravet, och den varnar också för att crossmnt inte tar bort behovet av att exportera underordnade filsystem med egna ID:n. Ett katalogträd som verkar sammanhängande för en användare kan korsa flera filsystemgränser. Nuvarande nfs-utils kan tilldela ID:n automatiskt för konfigurationer som stöds, och när de gör det blir deras databas en del av gatewayens tillstånd. Behandla dessa ID:n som tjänsteidentitet i stället för engångsfiler.
Filhandtag är den andra identitetsgränsen: en återexport packar in det ursprungliga handtaget, vilket gör det större och kan överskrida en klients gräns. En lyckad montering bevisar inte att varje exportlayout är kompatibel.
Inte varje NFS-funktion överlever maskinen i mitten
Kärnans guide för återexport anger att servern som återexporterar inte stöder låsning eller delegeringsförfrågningar. Program som är beroende av dessa operationer behöver en annan väg eller en design som verifierats mot dem. En lyckad montering och en fungerande kataloglista visar inte att programmets verkliga operationer fungerar.
Användaridentitet och exportpolicy spelar också roll vid varje hopp. En VPN-inloggning bevisar att en nätverksdeltagare är autentiserad; den auktoriserar inte en NFS-användare och vidarebefordrar inte en klients inloggningsuppgifter genom gatewayen.
Gatewayen har två överordnade beroenden
Gatewayen är beroende av VPN:et för den överordnade monteringen och av den överordnade servern för själva filsystemet. En lokal exportprocess som fortfarande körs kan inte göra otillgänglig lagring frisk. Planera startordning, återanslutningsbeteende och serveromstarter, inklusive vad som händer med filhandtag som klienterna redan har. En klient som monterade genom gatewayen och förlorade sitt handtag behöver en ny montering, och det är en driftshändelse snarare än en transparent återställning.
Om allt kravet någonsin behövde var nåbarhet för privata IP-adresser, är direkt routning till den ursprungliga servern den enklare arkitekturen. Återexporten bör finnas av ett skäl som överlever att skrivas ned.
Testa arbetsbelastningen, inte monteringen
Öva den verkliga filarbetsbelastningen i en kontrollerad miljö: operationerna som programmet utför, filstorlekarna som det använder och den samtidighet som det förväntar sig. Håll utkik efter funktionsluckorna och inte bara transportfel. Anteckna sedan vilken modell du valde och varför, annars kommer nästa person att anta att gatewayen är en router.
En återexport är legitim när den finns av en medveten anledning, som ett isolerat klientnät eller en kontrollerad versionsgräns. Det är en dålig olycka, och skillnaden är om någon bestämde det.