NFS-i edasisaatmine VPN-i kaudu ei ole pakettide edastamine
Keskmine masin on klient ja server, mitte ruuter. Failisüsteemi ID-d, pakitud failikäepidemed ja puuduv lukustustugi muudavad igaüks disaini.
Linuxi masin liitub VPN-iga, mountib kaugema NFS-i ekspordi ja teenindab seejärel seda mounti teisele kliendirühmale. See lahendus näeb välja nagu marsruutimine lisasammudega, ja see on esimene vale eeldus. Keskmine masin on ülemvoolu serveri klient ja allavoolu klientide server ning osaleb mõlemas failiteenuse suhtes. Pakettide edastamine ei arva midagi failikäepidemete, lukustuse ega failisüsteemi identiteedi kohta; edasisaatmine arvab.
Alustage küsimusega, kas allavoolu kliendid pääseksid algse serverini otse. Kui pääsevad, on keskmine masin valikuline.
Kolm mudelit, kolm järjepidevuse lugu
Otsene mount on kõige lihtsam: iga klient mountib algse serveri tunnelist läbi ja selle serveri ekspordipoliitika juhib juurdepääsu. Edasisaatmine on keskmine masin, mis esitab erineva teenusepiiri, mis on kasulik siis, kui kliendipoolne võrk ei tohi serverini otse jõuda. Replikatsioon on kolmas mudel ja muudab küsimuse järjepidevusest sünkroonimiseks ja konfliktide lahendamiseks.
Ärge kirjeldage replikeeritud koopiat nii, nagu oleks see elav edasisaatmine. Tõrkerežiimid erinevad ja kasutaja, kes ootab, et iga toiming jõuaks algse failisüsteemini, on lüliti katkemise ajal üllatunud.
Identiteet elab mount-käsklusest kauem
Edasisaatmine vajab selget failisüsteemi ID-d ja see identiteet peab üle elama taaskäivitused ja konfiguratsiooni ülesehitamised. Kerneli dokumentatsioon on nõude osas selge ja hoiatab ka, et crossmnt ei kõrvalda vajadust eksportida alamsüsteeme nende endi ID-dega. Kasutajale pidevana näiv kataloogipuu võib ületada mitut failisüsteemi piiri. Praegused nfs-utils suudavad toetatud konfiguratsioonide jaoks ID-sid automaatselt eraldada ja kui ta seda teeb, saab selle andmebaasist lüüsi oleku osa. Käsitlege neid ID-sid teenuse identiteedina, mitte ühekordsete failidena.
Failikäepidemed on teine identiteedipiir: edasisaatmine pakib algse käepideme, mistõttu see muutub suuremaks ja võib ületada kliendi piiri. Õnnestunud mount ei tõesta, et iga ekspordipaigutus on ühilduv.
Mitte iga NFS-i funktsioon ei ela keskmisest masinast üle
Kerneli edasisaatmise juhend märgib, et edasisaatev server ei toeta lukustust ega delegeerimispäringuid. Nendest toimingutest sõltuvad rakendused vajavad teist teed või nende suhtes kontrollitud disaini. Õnnestunud mount ja töötav kataloogiloend ei näita, et rakenduse tegelikud toimingud töötavad.
Kasutaja identiteet ja ekspordipoliitika loevad ka igal hüppel. VPN-i sisselogimine tõestab, et võrguosaleja on autenditud; see ei volita NFS-i kasutajat ega edasta kliendi mandaate lüüsist läbi.
Lüüsil on kaks ülemvoolu sõltuvust
Lüüs sõltub VPN-ist ülemvoolu mounti jaoks ja ülemvoolu serverist failisüsteemi enda jaoks. Kohalik ekspordiprotsess, mis veel töötab, ei saa kättesaamatut salvestust terveks muuta. Planeerige käivitamise järjekord, ühenduse taastamise käitumine ja serveri taaskäivitused, sealhulgas see, mis juhtub failikäepidemetega, mida kliendid juba hoiavad. Klient, kes mountis lüüsi kaudu ja kaotas oma käepideme, vajab uuesti mountimist ja see on operatiivne sündmus, mitte läbipaistev taastamine.
Kui nõue vajas kunagi ainult privaatsete IP-de kättesaadavust, on otse algsele serverile marsruutimine lihtsam arhitektuur. Edasisaatmine peaks olema olemas põhjusel, mis elab üle kirjapaneku.
Testige töökoormust, mitte mounti
Harjutage tegelikku failitöökoormust kontrollitud keskkonnas: toimingud, mida rakendus teeb, failisuurused, mida see kasutab, ja paralleelsus, mida see ootab. Jälgige funktsioonilünki, mitte ainult transpordivigu. Seejärel kirjutage üles, millise mudeli valisite ja miks, sest muidu eeldab järgmine inimene, et lüüs on ruuter.
Edasisaatmine on õigustatud, kui see on olemas tahtlikul põhjusel, näiteks isoleeritud kliendivõrk või kontrollitud versioonipiir. See on halb juhus ja vahe on selles, kas keegi otsustas nii.