En Linux-maskin kobler seg til en VPN, monterer en ekstern NFS-eksport og betjener deretter denne monteringen til et annet sett klienter. Denne ordningen ligner på ruting med ekstra trinn, og det er den første feilaktige antakelsen. Maskinen i midten er klient for oppstrøms serveren og server for nedstrøms klientene, og den deltar i begge filtenesteforholdene. Pakkevideresending har ingen mening om filhåndtak, låsing eller filsystemidentitet; en gjenutførsel har.

Begynn med å spørre om nedstrøms klientene kunne nå den opprinnelige serveren direkte. Hvis de kan, er maskinen i midten valgfri.

Tre modeller, tre historier om konsistens

Direkte montering er den enkleste: hver klient monterer den opprinnelige serveren gjennom tunnelen, og denne serverens eksportpolicy styrer tilgangen. Gjenutførsel er maskinen i midten som presenterer en annen tjenestegrense, noe som er nyttig når nettverket mot klientene ikke må nå serveren direkte. Replikering er en tredje modell, og den flytter spørsmålet fra konsistens til synkronisering og konfliktløsning.

Ikke beskriv en replikert kopi som om den var en levende gjenutførsel. Feilmodusene er forskjellige, og en bruker som forventer at hver operasjon skal nå det opprinnelige filsystemet, blir overrasket under et linkutfall.

Identitet overlever monteringskommandoen

Gjenutførsler trenger en eksplisitt filsystem-ID, og denne identiteten må overleve omstarter og konfigurasjonsombygginger. Kjernedokumentasjonen er tydelig på kravet, og den advarer også om at crossmnt ikke fjerner behovet for å eksportere underordnede filsystemer med egne ID-er. Et mappetre som virker sammenhengende for en bruker, kan krysse flere filsystemgrenser. Dagens nfs-utils kan tildele ID-er automatisk for støttede konfigurasjoner, og når den gjør det, blir databasen dens en del av gatewayens tilstand. Behandle disse ID-ene som tjenesteidentitet i stedet for engangsfiler.

Filhåndtak er den andre identitetsgrensen: en gjenutførsel pakker inn det opprinnelige håndtaket, noe som gjør det større og kan overskride en klients grense. En vellykket montering beviser ikke at hver eksportoppsett er kompatibelt.

Ikke hver NFS-funksjon overlever maskinen i midten

Kjernens veiledning for gjenutførsel sier at serveren som gjenutfører, ikke støtter låsing eller delegeringsforespørsler. Applikasjoner som avhenger av disse operasjonene, trenger en annen vei eller et design som er verifisert mot dem. En vellykket montering og en fungerende mappeliste viser ikke at applikasjonens virkelige operasjoner fungerer.

Brukeridentitet og eksportpolicy betyr også noe ved hvert hopp. En VPN-innlogging beviser at en nettverksdeltaker er autentisert; den autoriserer ikke en NFS-bruker, og den videresender ikke en klients påloggingsinformasjon gjennom gatewayen.

Gatewayen har to oppstrømsavhengigheter

Gatewayen er avhengig av VPN-en for oppstrømsmonteringen og av oppstrøms serveren for selve filsystemet. En lokal eksportprosess som fortsatt kjører, kan ikke gjøre utilgjengelig lagring sunn. Planlegg startrekkefølge, gjenoppkoblingsatferd og serveromstarter, inkludert hva som skjer med filhåndtak som klienter allerede har. En klient som monterte gjennom gatewayen og mistet håndtaket sitt, trenger en ny montering, og det er en driftshendelse snarere enn en gjennomsiktig gjenoppretting.

Hvis alt kravet noen gang trengte var tilgjengelighet for private IP-er, er direkte ruting til den opprinnelige serveren den enklere arkitekturen. Gjenutførselen bør eksistere av en grunn som overlever å bli skrevet ned.

Test arbeidsbelastningen, ikke monteringen

Øv på den virkelige filarbeidsbelastningen i et kontrollert miljø: operasjonene applikasjonen utfører, filstørrelsene den bruker og samtidigheten den forventer. Se etter funksjonshullene og ikke bare transportfeil. Noter deretter hvilken modell du valgte og hvorfor, fordi den neste personen ellers vil anta at gatewayen er en ruter.

En gjenutførsel er legitim når den finnes av en bevisst grunn, som et isolert klientnettverk eller en kontrollert versjonsgrense. Det er et dårlig uhell, og forskjellen er om noen bestemte det.

Relaterte artikler