Reexportarea NFS printr-un VPN nu este redirecționare de pachete
Mașina din mijloc este client și server, nu un router. ID-urile sistemelor de fișiere, mânerele de fișier înfășurate și lipsa suportului de blocare schimbă fiecare proiectarea.
O mașină Linux se alătură unui VPN, montează o exportare NFS la distanță și apoi servește acea montare unui alt set de clienți. Această aranjare arată ca rutare cu pași în plus, și aceasta este prima presupunere greșită. Mașina din mijloc este client al serverului din amonte și server pentru clienții din aval, și participă la ambele relații de serviciu de fișiere. Redirecționarea pachetelor nu are nicio părere despre mânerele de fișier, blocare sau identitatea sistemului de fișiere; o reexportare are.
Începeți prin a întreba dacă clienții din aval ar putea ajunge direct la serverul original. Dacă pot, mașina din mijloc este opțională.
Trei modele, trei povești de consistență
Montarea directă este cea mai simplă: fiecare client montează serverul original prin tunel, iar politica de export a acelui server guvernează accesul. Reexportarea este mașina din mijloc care prezintă o altă frontieră de serviciu, ceea ce este util când rețeaua orientată spre clienți nu trebuie să ajungă direct la server. Replicarea este un al treilea model și mută întrebarea de la consistență la sincronizare și rezolvare a conflictelor.
Nu descrieți o copie replicată ca și cum ar fi o reexportare activă. Modurile de eșec diferă, iar un utilizator care așteaptă ca fiecare operație să ajungă la sistemul de fișiere original va fi surprins în timpul unei întreruperi a legăturii.
Identitatea supraviețuiește comenzii de montare
Reexportările au nevoie de un ID explicit al sistemului de fișiere, iar această identitate trebuie să supraviețuiască repornirilor și reconstruirilor de configurație. Documentația kernelului este clară cu privire la cerință și avertizează, de asemenea, că crossmnt nu elimină necesitatea de a exporta sistemele de fișiere copil cu propriile lor ID-uri. Un arbore de directoare care pare continuu unui utilizator poate traversa mai multe granițe de sistem de fișiere. nfs-utils actuale pot aloca ID-uri automat pentru configurații acceptate, iar când o fac, baza lor de date devine parte din starea gateway-ului. Tratați aceste ID-uri ca identitate de serviciu, nu ca fișiere de unică folosință.
Mânerele de fișier sunt cealaltă graniță de identitate: o reexportare înfășoară mânerul original, ceea ce îl face mai mare și poate depăși limita unui client. O montare reușită nu dovedește că fiecare aspect de export este compatibil.
Nu fiecare funcție NFS supraviețuiește mașinii din mijloc
Ghidul de reexportare al kernelului afirmă că serverul care reexportă nu acceptă blocare sau cereri de delegare. Aplicațiile care depind de aceste operații au nevoie de o altă cale sau de un proiect verificat împotriva lor. O montare reușită și o listare de directoare funcțională nu arată că operațiile reale ale aplicației funcționează.
Identitatea utilizatorului și politica de export contează și la fiecare salt. O autentificare VPN dovedește că un participant la rețea s-a autentificat; nu autorizează un utilizator NFS și nu transmite acreditările unui client prin gateway.
Gateway-ul are două dependențe în amonte
Gateway-ul depinde de VPN pentru montarea în amonte și de serverul din amonte pentru sistemul de fișiere în sine. Un proces de export local care încă rulează nu poate face sănătos un stoc indisponibil. Planificați ordinea de pornire, comportamentul de reconectare și repornirile serverului, inclusiv ce se întâmplă cu mânerele de fișier pe care clienții le dețin deja. Un client care a montat prin gateway și și-a pierdut mânerul are nevoie de o remontare, iar aceasta este un eveniment operațional, nu o recuperare transparentă.
Dacă tot ce a avut nevoie vreodată cerința a fost accesibilitatea IP privat, rutarea directă către serverul original este arhitectura mai simplă. Reexportarea ar trebui să existe dintr-un motiv care supraviețuiește scrierii.
Testați încărcarea de lucru, nu montarea
Exersați încărcarea reală de fișiere într-un mediu controlat: operațiile pe care le efectuează aplicația, dimensiunile fișierelor pe care le folosește și concurența pe care o așteaptă. Urmăriți lipsurile funcționale și nu doar erorile de transport. Apoi notați ce model ați ales și de ce, pentru că altfel următoarea persoană va presupune că gateway-ul este un router.
Reexportarea este legitimă când există dintr-un motiv deliberat, cum ar fi o rețea de clienți izolată sau o frontieră de versiune controlată. Este un accident prost, iar diferența este dacă cineva a decis acest lucru.