NFS iza VPN-a: montiranje pri podizanju ili automatsko montiranje na zahtjev?
Montiranje pri podizanju blokira se na tunelu koji možda još nije podignut. Automatsko montiranje čeka prvi pristup, a ovisnost o VPN-u pripada montažnoj jedinici, a ne okidaču.
Dvije konfiguracije rješavaju isti problem i padaju u suprotnim smjerovima. Montiranje dijeljenog resursa pri podizanju daje svakoj usluzi datotečni sustav koji ili postoji ili objašnjava zašto se podizanje zaustavilo. Automatsko montiranje na zahtjev daje stroju brzo podizanje i predaje čekanje onome tko prvi dotakne putanju. Iza VPN-a drugo je obično bolja razmjena, a razlog je što tunel nameće redoslijed koji slijed podizanja ne može vidjeti.
Montiranje pri podizanju nasuprot automatskom montiranju
Montiranje pri podizanju lako je razumjeti. Cilj datotečnog sustava čeka montiranje, usluge koje iskažu ovisnost o njemu pokreću se poslije, a ako je poslužitelj nedostupan, stroj ili čeka ili pada ovisno o opcijama. Sve nizvodno nasljeđuje tu jednu odluku.
Automatsko montiranje to preokreće. Putanja postoji odmah, stvarno montiranje dogodi se kad je nešto otvori, a usluge koje se pokreću rano ne blokiraju se na tunelu koji još nije podignut.
Usporedba se svodi na to tko treba upiti kašnjenje. Radna stanica kojoj treba dijeljeni resurs prije nego korisnik može raditi vjerojatno treba čekati. Prijenosnik koji se podiže u torbi, ili poslužitelj čiji je dijeljeni resurs neobavezan, ne treba.
Nijedna opcija ne popravlja nedostajuću rutu. Obje samo odlučuju kada će se kvar primijetiti.
fstab linija, opcija po opciju
Pretpostavite da je postojeća klijentska instanca OpenVPN [email protected], poslužitelj files.corp.example, a točka montiranja /mnt/work. Zamijenite sve tri dopuštenim vrijednostima s vaše lokacije. Jedna upotrebljiva linija izgleda ovako:
files.corp.example:/export/work /mnt/work nfs _netdev,nofail,x-systemd.automount,[email protected],x-systemd.mount-timeout=30s 0 0
_netdev označava montiranje kao ono kojem treba mreža i ne imenuje nijedan tunel. nofail drži dijeljeni resurs neobaveznim za uobičajeni cilj datotečnog sustava. x-systemd.automount stvara okidač na zahtjev umjesto trenutačnog montiranja.
x-systemd.requires= je dio koji veže pokušaj montiranja uz VPN jedinicu i pripada montažnoj operaciji, a ne okidaču. Staviti širok redoslijed na samu jedinicu automatskog montiranja jest način na koji ljudi stvaraju cikluse na koje se systemd poslije žali jezikom koji nitko ne čita dvaput.
x-systemd.mount-timeout=30s ograničava početni nalog za montiranje. Ne ograničava ništa što se dogodi kasnije, i to je najčešći nesporazum o ovoj opciji.
Što „pokrenuto“ ne znači
Provjerite što aktivno stanje znači za VPN jedinicu koju ste naveli. Usluga tunela može se prijaviti kao pokrenuta prije nego što ruta do datotečnog poslužitelja postoji ili prije nego što se privatno ime razriješi, a redoslijed poslije nje tada vam ništa ne kupuje. U toj praznini živi gotovo svaki neuspjeli pokušaj. Ona je i nevidljiva osim ako gledate rutu i razrješivač, a ne stanje jedinice.
Koristite vlastiti signal spremnosti vlasnika veze kao dodatni preduvjet gdje postoji. Fiksno spavanje je nagađanje koje radi na vašem stolu i pada na sporijoj mreži ili nakon ponovnog spajanja.
Pregledajte generirane jedinice za putanju iz primjera: mnt-work.automount i mnt-work.mount. Nakon pregledane izmjene fstab-a ponovno učitajte systemd i upravljajte tim jedinicama izravno umjesto pokretanja sveobuhvatnog naloga za montiranje koji vježba nepovezane unose.
Ovdje spada još jedna napomena. Usluga koja dotakne /mnt/work pri pokretanju i dalje pokreće montiranje i dalje ga čeka, pa označavanje dijeljenog resursa neobaveznim ne čini svaku aplikaciju strpljivom.
Poslije montiranja kvar je drugi
Kad je NFS montiran, ponašanje datotečnog sustava pri ponovnom pokušaju i oporavku određuje što kasniji prekid čini s čitanjem ili pisanjem. Vremensko ograničenje montiranja koje ste postavili nema utjecaja na to.
Meko montiranje skraćuje neka čekanja i mijenja semantiku pogrešaka, s posljedicama po cjelovitost podataka koje je lako previdjeti kada je cilj brže podizanje. Biranje toga da osvojite dvije sekunde pokretanja rijetko je dobra razmjena. Ako je zahtjev zaista ograničena operacija tijekom prekida, to je odluka na razini aplikacije, a ne fstab zastavica.
Odlučite što treba biti s procesom koji je nasred pisanja kada tunel padne i zapišite to. Taj je odgovor korisniji od bilo kojeg niza opcija.
Testirajte četiri stanja, ne jedno
Normalno podizanje s dostupnim tunelom lak je slučaj i ne dokazuje gotovo ništa. Potvrđuje da je niz ispravno napisan i ništa više. Testirajte prvi pristup bez VPN-a, zatim oporavak kad se podigne, zatim kontrolirani prekid nakon uspješnog montiranja.
Četiri stanja, četiri zapažanja, a bilješke idu uz fstab unos. Sljedeća osoba nasljeđuje ponašanje umjesto konfiguracije koju mora obrnuto projektirati.