Instalacija i konfiguracija NFS poslužitelja i NFS klijenta. Montiranje datotečnog sustava Network Files System pomoću naredbe mount. Gdje je sve počelo

Dakle, što je sljedeće? Kako gledati i slušati filmove glazbene datoteke, koji je skinuo? Je li ih stvarno potrebno snimiti na diskove i tako prebaciti na računalo s GUI-jem? Ili ću ih morati kopirati putem sporog SFTP-a? Ne! NFS stiže u pomoć! Ne, ovo nije serija trkaćih igara, ali Mrežna datoteka Sustav (mrežni datotečni sustav).
Network File System (NFS) mrežni je datotečni sustav koji korisnicima omogućuje pristup datotekama i direktorijima koji se nalaze na udaljenim računalima kao da su te datoteke i direktoriji lokalni. Glavna prednost takvog sustava je da pojedinačne radne stanice mogu koristiti manje vlastitog diskovnog prostora, budući da se zajednički podaci pohranjuju na zasebnom računalu i dostupni su drugim strojevima na mreži. NFS je aplikacija klijent-poslužitelj. To jest, NFS klijent mora biti instaliran na sustavu korisnika, a NFS poslužitelj mora biti instaliran na računalima koja daju svoj prostor na disku.

Instalacija i konfiguracija NFS poslužitelja (192.168.1.2)

1. Instalirajte. Nakon spajanja putem SSH-a na poslužiteljsko računalo ili jednostavno u njegovu konzolu unesite:

Sudo apt-get install nfs-kernel-server nfs-common portmap

Ovo će instalirati NFS poslužitelj kao i potrebni portmap paket.

2. Postavite. Da bismo konfigurirali popis direktorija koje želimo otvoriti i popis kome ih želimo otvoriti, uredit ćemo datoteku /etc/exports :

Sudo nano /etc/exports /data 192.168.1.1/24(rw,no_root_squash,async)

U gornjem primjeru otvorili smo direktorij na poslužitelju /podaci i njegove poddirektorije za zajedničku upotrebu svim računalima s IP-om: 192.168.1.1 - 192.168.1.255 s pravima čitanja i pisanja.

Još jedan primjer:

/home/serg/ 192.168.1.34(ro,async)

Ovaj primjer čini početni direktorij korisnika serg dostupnim u načinu rada samo za čitanje računalu s IP-om 192.168.1.34. Sva ostala računala na mreži neće imati pristup ovom direktoriju.

Dostupne opcije:

  • ro - prava samo za čitanje. Ne morate ga navesti jer je instaliran prema zadanim postavkama;
  • rw - daje klijentima dozvolu pisanja;
  • no_root_squash - zadani korisnik je root na klijentski stroj neće imati pristup otvorenim imenicima na poslužitelju. Ovom opcijom uklanjamo to ograničenje. Iz sigurnosnih razloga, bolje je to ne činiti;
  • noaccess - odbija pristup navedenom direktoriju. Može biti korisno ako ste prethodno postavili pristup svim korisnicima mreže određenom direktoriju, a sada želite ograničiti pristup poddirektoriju samo nekim korisnicima.

Sada morate ponovno pokrenuti nfs-kernel-server:

Ponovno pokretanje Sudo /etc/init.d/nfs-kernel-server

Ako nakon ovoga želite nešto promijeniti u datoteci /etc/exports , a zatim da bi promjene stupile na snagu, samo pokrenite sljedeću naredbu:

Sudo exportfs -a

Svi. NFS poslužitelj je instaliran i konfiguriran. Možete se prebaciti na NFS klijent.

Instalacija i konfiguracija NFS klijenta

1. Instalacija. U terminalu računala, koji će se povezati, izvodimo sljedeće:

Sudo apt-get instaliraj portmap nfs-common

2. Postavljanje. Prvo, kreirajmo direktorij u koji će biti montirana udaljena mapa:

Cd ~ mkdir podaci

Možete montirati na dva načina - svaki put ručno ili pisanjem opcija montiranja u datoteku /etc/fstab.

Metoda 1: Ručna montaža
Napravite tekstualnu datoteku na radnoj površini ili u nekoj drugoj mapi:

Nano ~/Desktop/nfs-server-connect

U njemu pišemo:

#! /bin/bash sudo mount -t nfs -o ro,soft,intr 192.168.1.2:/podaci ~/podaci

Učinimo to izvršnim:

Chmod +x ~/Desktop\nfs-server-connect

Sada, kada se trebam spojiti na poslužitelj, pokrenem ovu skriptu na terminalu kako bih mogao unijeti lozinku za sudo.

Metoda 2: Dodajte u /etc/fstab
Otvorite /etc/fstab:

Sudo nano /etc/fstab

I dodajte redak na kraj datoteke:

192.168.1.2:/podaci ~/podaci nfs rw,hard,intr 0 0

Pažnja! Umjesto 192.168.1.2:/data, unesite IP ili naziv poslužitelja i putanju direktorija dijeljenje. Opcije montiranja mogu se mijenjati.

Opcija teško striktno povezuje direktorij na klijentu s poslužiteljem, a ako poslužitelj padne, vaše se računalo također može zamrznuti. Opcija mekan, kao što mu ime govori, nije tako kategoričan.

Nakon spremanja datoteke, možete montirati udaljenu mapu.

korisnik može raditi u različito vrijeme na različitim računalima. Pomoću poslužitelja datoteka rješava se nekoliko zadataka odjednom:
  1. redovito sigurnosna kopija svih podataka: nerealno je izvesti ovu operaciju za nekoliko desetaka ili stotina računala, ali je sasvim moguće - s jednog poslužitelja ili više poslužitelja.
  2. povećanje pouzdanosti pohrane podataka: nerazumno je svako računalo na mreži opremiti RAID poljem, jer velika većina datoteka na računalu, kao npr. instaliranih paketa programe koje je lakše ponovno instalirati nego zaštititi od kvara; ali bilo bi sasvim razumno opremiti datotečni poslužitelj hardverskim RAID nizom ili tamo organizirati softverski RAID niz ili barem jednostavno zrcaljenje diska.
  3. smanjenje troškova pohrane podataka: skupo je i neučinkovito instalirati ogroman disk u svako računalo u slučaju da trebate pohraniti puno podataka, ali sasvim je moguće instalirati skalabilni disk na poslužitelju diskovni podsustav veliki volumen.
  4. omogućavajući pristup istim podacima s bilo kojeg računala.

Opis NFS-a

NFS usluga omogućuje poslužitelju dijeljeni pristup navedeni direktoriji svoj lokalni sustav datoteka i klijent da montira te direktorije kao da su klijentovi lokalni direktoriji.

NFS verzije

NFS, koji je razvio Sun Microsystems, pokazao se toliko uspješnim da su njegove implementacije implementirale različite tvrtke u gotovo svim operativnim sustavima. Postoji nekoliko temeljnih različite implementacije NFS. Verzija NFS 2.0 prilično je uobičajena, iako je NFS 3.0 već predstavljen u Solarisu 2.5. Naknadne verzije Solarisa, uključujući Solaris 9, napravile su značajne dodatke NFS-u, ali je sam protokol ostao kompatibilan s implementacijama NFS 3.0 na drugim sustavima. Počevši od NFS 3.0, podržan je prijenos paketa putem TCP-a i UDP-a; prije je bio podržan samo UDP.

budi oprezan! Mreža bi trebala koristiti NFS klijente i poslužitelje iste verzije. NFS 2.0 može se naći u starijim sustavima, na primjer, u HP-UX 10.0. Suradnja između sustava koji koriste različite verzije NFS se ne preporučuje.

Kompatibilnost NFS-a i drugih dijeljenih imeničkih usluga

NFS je po značenju i organizaciji rada sličan zajednički imenici(dijeljene mape) u Windows sustavi, ali te usluge koriste potpuno različite operativne protokole i nisu međusobno kompatibilne. Međutim, postoji nekoliko softverski proizvodi, koji instaliraju NFS podršku na Windows sustave, tako da korištenje NFS-a na mreži s različitim operativnim sustavima nije problem, samo trebate zapamtiti da koristite iste verzije NFS-a.

NFS radi u modelu klijent-poslužitelj, pri čemu računala klijenta i poslužitelja pokreću različite programe za omogućavanje pristupa dijeljenim direktorijima na poslužitelju.

Budući da računalima na radnim mjestima zaposlenika u Rusiji obično upravljaju Windows sustavi, Windows sustavi se često koriste i kao poslužitelji datoteka. Međutim, često postoji želja da se UNIX instalira na datotečni poslužitelj kako bi se povećala pouzdanost, smanjili troškovi hardvera ili koristio isti poslužitelj za niz drugih korporativnih potreba: kao web poslužitelj, poslužitelj baze podataka itd. Kako ne biste instalirali dodatni softver za podršku NFS-u, u ovom slučaju dovoljno je instalirati samba paket na UNIX stroj. Omogućit će mu da se "pretvara" da je Windows poslužitelj tako da ga sva klijentska računala percipiraju kao običan datotečni poslužitelj ili ispisni poslužitelj na Windows mreži. Samba paket pruža podršku za izvorni SMB protokol za Windows mreže.

U slučajevima kada više UNIX računala radi na mreži i trebaju pristupiti jednom datotečnom poslužitelju, ima smisla koristiti NFS (mrežni datotečni sustav) mehanizam.

NFS nije baš otporan na mrežne kvarove, zahtijeva neprekinuti mrežni rad i zahtijeva brzu vezu između klijenta i poslužitelja. Korištenje NFS-a za montiranje datotečnih sustava izvan lokalne mreže, poput interneta, tehnički je izvedivo, ali nije baš praktično i nesigurno.

NFS terminologija

Nakon postavljanja NFS poslužitelja, UNIX računalo će omogućiti pristup vanjskim korisnicima nekim svojim direktorijima sustav datoteka. Ovo pružanje pristupa naziva se "izvoz": kaže se da sustav izvozi svoje direktorije. Točno kako će se imenici izvoziti određuje popis koji navodi administrator sustava. U većini UNIX sustavi ovaj popis je sadržan u datoteci /etc/exports, ali na Solarisu je u drugoj datoteci - /etc/dfs/dfstab.

NFS radi putem mehanizma poziva udaljene procedure ( RPC - Remote Procedure Call).

Što je RPC

Ideologija RPC-a vrlo je jednostavna i privlačna programerima. Kao i obično radi mrežna aplikacija? Slijedi protokol (na primjer, HTTP): generira paket zahtjeva, poziva funkciju sustava za uspostavljanje veze, zatim funkciju za slanje paketa, zatim čeka na paket odgovora i poziva funkciju za zatvaranje veze. To znači da je sav rad s mrežom briga programera koji piše aplikaciju: on mora zapamtiti pozvati mrežne funkcije API sustava, razmislite o akcijama u slučaju kvarova na mreži.

RPC uključuje drugačiji način razmjene podataka između klijenta i poslužitelja. Sa gledišta programera, klijentska aplikacija koja se izvodi koristeći RPC poziva funkciju na poslužitelju, ona se izvršava i vraća rezultat. Prosljeđivanje funkcionalnog zahtjeva preko mreže i vraćanje rezultata s poslužitelja na klijenta je besprijekorno za aplikaciju, tako da potonja ne mora brinuti o mrežnim kvarovima ili detaljima implementacije transportni protokol.

Kako bi se osigurala transparentnost prijenosa podataka kroz mrežu, osmišljen je postupak u dva koraka. Na poslužitelju, svaka aplikacija koja pruža svoju uslugu putem RPC-a mora se registrirati u programu koji se zove port mapper. Funkcija ovog programa je uspostaviti korespondenciju između broja RPC procedure koju je klijent zatražio i broja TCP ili UDP porta na kojem poslužiteljska aplikacija osluškuje zahtjeve. Općenito govoreći, RPC može raditi s više od samog TCP-a ili UDP-a. Solaris implementira rad temeljen na TI (TransportIndependent) mehanizmu, pa se u Solarisu port translator zove rpcbind, ali ne portmap, kao u Linuxu ili FreeBSD-u.

Aplikacija koja se registrira s port translatorom govori mu broj programa, broj verzije i brojeve postupaka koje program može obraditi. Ove postupke klijent će naknadno pozvati brojem. Osim toga, aplikacija javlja brojeve TCP i UDP portova koji će se koristiti za primanje zahtjeva za izvođenje procedura.

Klijent koji želi pokrenuti proceduru koja se izvršava na poslužitelju prvo šalje zahtjev port prevoditelju na poslužitelju da sazna na koji TCP ili UDP port poslati zahtjev. Port translator se pokreće pri pokretanju sustava i uvijek radi standardni priključak 111. Nakon što od njega dobije odgovor, klijent šalje zahtjev na port koji odgovara traženoj aplikaciji. Na primjer, NFS poslužitelj radi na portu 2049.

Procedura za montiranje dijeljenog imenika putem NFS-a

Prije nego što prijeđemo na opisivanje postavki za NFS poslužitelj i klijente, trebali biste razumjeti kako u načelu montirati udaljene datotečne sustave.

NFS klijent šalje zahtjev za montiranje udaljeno računalo, koji pruža svoje sustav datoteka(obično neki njegov dio) za uobičajena uporaba. U ovom slučaju kažu da NFS poslužitelj "izvozi" ovaj ili onaj direktorij (što znači s poddirektorijima). Zahtjev klijenta

Mrežni datotečni sustav NFS ili Network File System popularan je protokol mrežnog datotečnog sustava koji korisnicima omogućuje daljinsko povezivanje mrežni imenici na svom računalu i prenositi datoteke između poslužitelja. Možete koristiti prostor na disku na drugom računalu za svoje datoteke i raditi s datotekama koje se nalaze na drugim poslužiteljima. U biti, ovo je alternativa Windows dijeljenju za Linux, za razliku od Sambe, implementirano je na razini kernela i radi stabilnije.

Ovaj članak će raspravljati nfs instalacija u Ubuntu 16.04. Analizirat ćemo instalaciju svih potrebne komponente, postavljanje zajedničke mape, kao i povezivanje mrežnih mapa.

Kao što je već spomenuto, NFS je mrežni datotečni sustav. Za rad vam je potreban poslužitelj na kojem ćete hostirati dijeljenu mapu i klijenti koji mogu montirati mrežnu mapu Kako regularni disk u sustavu. Za razliku od drugih protokola, NFS omogućuje transparentan pristup izbrisane datoteke. Programi će vidjeti datoteke kao u običnom datotečnom sustavu i raditi s njima kao s lokalnim datotekama, nfs vraća samo traženi dio datoteke, umjesto cijele datoteke, tako da će ovaj datotečni sustav savršeno raditi na sustavima s brzim internetom ili na lokalna mreža.

Instaliranje NFS komponenti

Prije nego što možemo raditi s NFS-om, morat ćemo instalirati nekoliko programa. Na stroju koji će biti poslužitelj potrebno je instalirati paket nfs-kernel-server koji će se koristiti za otvaranje nfs shareova u ubuntu 16.04. Da biste to učinili, pokrenite:

sudo apt instalirajte nfs-kernel-server

Sada provjerimo je li poslužitelj ispravno instaliran. NFS usluga osluškuje veze za TCP i UDP na portu 2049. Možete vidjeti jesu li ti portovi stvarno u upotrebi pomoću naredbe:

rpcinfo -p | grep nfs

Također je važno provjeriti je li NFS podržan na razini kernela:

cat /proc/datotečni sustavi | grep nfs

Vidimo da radi, ali ako ne radi, morate ručno učitati nfs kernel modul:

Dodajmo i nfs u pokretanje:

sudo systemctl omogući nfs

Morate instalirati paket nfs-common na klijentskom računalu da biste mogli raditi s ovim datotečnim sustavom. Ne morate instalirati komponente poslužitelja, dovoljan je samo ovaj paket:

sudo apt instalirajte nfs-common

Postavljanje NFS poslužitelja na Ubuntu

Možemo otvoriti NFS pristup bilo kojoj mapi, ali napravimo novu za tu svrhu:

klijentska mapa_adresa (opcije)

Adresa mape je mapa kojoj treba omogućiti pristup preko mreže. Klijent - IP adresa ili mrežna adresa s koje se ovoj mapi može pristupiti. Ali s opcijama je malo kompliciranije. Pogledajmo neke od njih:

  • rw- dopustiti čitanje i pisanje u ovoj mapi
  • ro- dopustiti samo čitanje
  • sinkronizacija- odgovori na sljedeće zahtjeve samo kada su podaci spremljeni na disk (zadano)
  • asinkroni- nemojte blokirati veze dok se podaci zapisuju na disk
  • siguran- koristite samo portove ispod 1024 za povezivanje
  • nesiguran- koristite bilo koje priključke
  • nohide- nemojte skrivati ​​poddirektorije kada otvarate pristup nekoliko direktorija
  • korijen_tikve- zamijenite zahtjeve od korijena anonimnim
  • sve_squash- pretvorite sve zahtjeve u anonimne
  • anonuid I anongid- specificira uid i gid za anonimnog korisnika.

Na primjer, za našu mapu ovaj redak može izgledati ovako:

/var/nfs 127.0.0.1(rw,sync,no_subtree_check)

Nakon što je sve konfigurirano, sve što je preostalo je ažurirati NFS tablicu izvoza:

sudo exportfs -a

To je sve, otvaranje nfs shareova u ubuntu 16.04 je završeno. Pokušajmo sada konfigurirati klijenta i pokušati ga montirati.

NFS veza

U današnjem članku nećemo se detaljno baviti ovim pitanjem. Ovo je prilično velika tema koja zaslužuje svoj članak. Ali ipak ću reći nekoliko riječi.

Za montiranje mrežne mape ne treba vam nikakav Ubuntu nfs klijent, samo koristite naredbu montiranja:

sudo montiranje 127.0.0.1:/var/nfs/ /mnt/

Sada možete pokušati stvoriti datoteku u povezanom direktoriju:

Također ćemo pogledati montirane datotečne sustave pomoću df-a:

127.0.0.1:/var/nfs 30G 6.7G 22G 24% /mj.

Da biste onemogućili ovaj datotečni sustav, samo upotrijebite standardni umount:

sudo umount /mnt/

zaključke

Ovaj je članak pokrivao postavku nfs ubuntu 16.04, kao što vidite, sve je učinjeno vrlo jednostavno i transparentno. Povezivanje NFS shareova obavlja se u nekoliko klikova standardnim naredbama, a otvaranje nfs shareova u ubuntu 16.04 nije puno kompliciranije od povezivanja. Ako imate pitanja, napišite u komentarima!

Povezane objave:


Mrežni datotečni sustav (NFS)- Mrežni pristupni protokol za datotečne sustave, omogućuje povezivanje udaljenih datotečnih sustava.
Izvorno razvijen od strane Sun Microsystems 1984. Osnova je Sun RPC: Remote Procedure Call. NFS je neovisan o vrsti datotečnog sustava poslužitelja i klijenta. Postoje mnoge implementacije NFS poslužitelja i klijenata za različite operativne sustave. Verzija koja se trenutno koristi je NFS v.4, koja podržava raznim sredstvima provjera autentičnosti (posebno Kerberos i LIPKEY pomoću RPCSEC GSS protokola) i liste kontrole pristupa (i vrste POSIX i Windows).
NFS klijentima daje transparentan pristup datotekama i sustavu datoteka poslužitelja. Za razliku od FTP-a, NFS protokol pristupa samo onim dijelovima datoteke kojima proces pristupa, a njegova glavna prednost je što ovaj pristup čini transparentnim. Zahvaljujući tome, svaka klijentska aplikacija koja može raditi sa lokalna datoteka, može jednako dobro raditi s NFS datoteka, bez izmjena u samom programu.
NFS klijenti pristupaju datotekama na NFS poslužitelju slanjem RPC zahtjeva poslužitelju. Ovo se može implementirati korištenjem normalnih korisničkih procesa - naime, NFS klijent može biti korisnički proces koji upućuje specifične RPC pozive poslužitelju, što također može biti korisnički proces.

Verzije
NFSv1 je bio za internu upotrebu samo u eksperimentalne svrhe. Pojedinosti o implementaciji definirane su u RFC 1094.
NFSv2 (RFC 1094, ožujak 1989.) izvorno se u potpunosti izvodio preko UDP-a.
NFSv3 (RFC 1813, lipanj 1995.). Deskriptori datoteka u verziji 2 su niz fiksna veličina- 32 bajta. U verziji 3, to je polje promjenjive veličine s veličinom do 64 bajta. Niz promjenjive duljine u XDR-u definiran je 4-bajtnim brojačem iza kojeg slijede stvarni bajtovi. Ovo smanjuje veličinu deskriptora datoteke u implementacijama kao što je UNIX, gdje je potrebno samo oko 12 bajtova, ali omogućuje ne-Unix implementacijama razmjenu dodatnih informacija.
Verzija 2 ograničava broj bajtova po RPC-u READ ili WRITE na 8192 bajta. Ovo ograničenje ne vrijedi u verziji 3, što zauzvrat znači da će korištenjem UDP-a ograničenje biti samo veličina IP datagrama (65535 bajtova). To omogućuje korištenje velikih paketa za čitanje i pisanje na brzim mrežama.
Veličine datoteka i pomaci početnih bajtova za procedure READ i WRITE sada koriste 64-bitno adresiranje umjesto 32-bitnog, što omogućuje rad s većim datotekama.
Atributi datoteke vraćaju se u svakom pozivu koji može utjecati na atribute.
Zapisi (WRITE) mogu biti asinkroni, dok su u verziji 2 trebali biti sinkroni.
Jedna procedura je uklonjena (STATFS) i dodano ih je sedam: ACCESS (provjeri dopuštenja datoteke), MKNOD (kreiraj posebna datoteka Unix), READDIRPLUS (vraća nazive datoteka u direktoriju zajedno s njihovim atributima), FSINFO (vraća statističke informacije informacije o datotečnom sustavu), FSSTAT (vraća informacije o dinamičkom datotečnom sustavu), PATHCONF (vraća POSIX.1 informacije o datotečnom sustavu) i COMMIT (obvezuje prethodno napravljena asinkrona pisanja u trajnu pohranu).
U vrijeme uvođenja verzije 3 programeri su počeli više koristiti TCP kao transportni protokol. Iako su neki programeri već koristili TCP za NFSv2, Sun Microsystems je dodao TCP podršku u NFS verziji 3. To je korištenje NFS-a preko Interneta učinilo izvedivijim.
NFSv4 (RFC 3010, prosinac 2000., RFC 3530, revidirano travanj 2003.), pod utjecajem AFS-a i CIFS-a, uključio je poboljšanja performansi, visoka sigurnost, i pojavio se kao punopravni protokol. Verzija 4 bila je prva verzija razvijena zajedno s Internet Engineering Task Force (IETF) nakon što je Sun Microsystems prenio razvoj protokola na NFS. NFS v4.1 odobren je od strane IESG u siječnju 2010. godine i dobio je broj RFC 5661. Važna novina u verziji 4.1 je specifikacija pNFS - Parallel NFS, mehanizma za paralelni pristup NFS klijenta podacima s više distribuiranih NFS poslužitelja. Prisutnost takvog mehanizma u standardu mrežnog sustava datoteka pomoći će u izgradnji distribuiranih sustava za pohranu podataka i informacija u "oblaku".

NFS struktura
NFS struktura uključuje tri komponente na različitim razinama:
Aplikacijski sloj (sam NFS) sastoji se od poziva udaljenih procedura (rpc), koji izvode potrebne operacije s datotekama i direktorijima na strani poslužitelja.
Funkcije prezentacijskog sloja obavlja XDR (eXternal Data Representation) protokol, koji je međuplatformski standard apstrakcije podataka. XDR protokol opisuje objedinjeni, kanonski, o arhitekturi neovisan oblik predstavljanja podataka računalni sustav. Prilikom prijenosa paketa, RPC klijent pretvara lokalne podatke u kanonski oblik, a poslužitelj izvodi obrnutu operaciju.
RPC (Remote Procedure Call) usluga, koja omogućuje klijentu da zahtijeva udaljene procedure i izvršava ih na poslužitelju, predstavlja funkcije na razini sesije. Povezivanje mrežnih resursa
Postupak za povezivanje mrežnog resursa pomoću NFS-a naziva se "izvoz". Klijent može zatražiti od poslužitelja da ispiše izvezene resurse koje predstavlja. Sam NFS poslužitelj ne emitira popis svojih izvezenih resursa.
Ovisno o navedenim opcijama, izvezeni resurs može biti montiran (priložen) “samo za čitanje”, možete definirati popis hostova kojima je dopušteno montiranje, odrediti korištenje sigurnog RPC-a (secureRPC), itd. Jedna od opcija određuje način montaže: "tvrdo" (tvrdo) ili "meko" (meko).
S "tvrdim" montiranjem, klijent će pod svaku cijenu pokušati montirati datotečni sustav. Ako poslužitelj ne radi, to će uzrokovati zamrzavanje cijele NFS usluge: procesi koji pristupaju datotečnom sustavu prijeći će u stanje čekanja da se RPC zahtjevi završe. Sa stajališta korisničkih procesa, datotečni sustav će izgledati kao vrlo spor lokalni disk. Kada se poslužitelj vrati na radni uvjeti NFS usluga će nastaviti funkcionirati.
Uz soft mount, NFS klijent će se nekoliko puta pokušati spojiti na poslužitelj. Ako poslužitelj ne odgovori, sustav prikazuje poruku o pogrešci i prestaje pokušavati montirati. S logičnog gledišta operacije s datotekama Ako poslužitelj zakaže, softversko montiranje oponaša kvar lokalnog diska.
Izbor načina ovisi o situaciji. Ako se podaci na klijentu i poslužitelju moraju sinkronizirati tijekom privremenog kvara usluge, tada je poželjno "tvrdo" montiranje. Ovaj način je također neophodan u slučajevima kada montirani datotečni sustavi sadrže programe i datoteke koji su vitalni za rad klijenta, posebno za strojeve bez diska. U drugim slučajevima, posebno kada je riječ o sustavima samo za čitanje, način mekog montiranja čini se praktičnijim.

Dijeljenje na mješovitoj mreži
NFS je idealan za mreže temeljene na UNIX-u budući da dolazi s većinom verzija operativnog sustava. Štoviše, podrška za NFS implementirana je na razini UNIX kernela. Korištenje NFS-a na Windows klijentskim računalima stvara određene probleme povezane s potrebom instaliranja specijaliziranog i prilično skupog klijentskog softvera. U takvim mrežama, korištenje alata za dijeljenje resursa temeljenih na SMB/CIFS protokolu, posebno softvera Samba, čini se poželjnijim.

Standardi
RFC 1094 NFS: Specifikacija protokola mrežnog datotečnog sustava] (ožujak 1989.)
RFC 1813 NFS verzija 3 specifikacija protokola] (lipanj 1995.)
RFC 2224 NFS URL shema
RFC 2339 Ugovor između Internet društva, IETF-a i Sun Microsystems, Inc. u vezi s NFS V.4 protokolima
RFC 2623 NFS verzija 2 i verzija 3 Sigurnosni problemi i korištenje NFS protokola RPCSEC_GSS i Kerberos V5
RFC 2624 NFS verzija 4 Razmatranja dizajna
RFC 3010 NFS verzija 4 protokola
RFC 3530 Protokol mrežnog sustava datoteka (NFS) verzija 4
RFC 5661 Network File System (NFS) Verzija 4 Minor Version 1 Protocol

Korišteni izvori
1. ru.wikipedia.org
2. ru.science.wikia.com
3. phone16.ru
4. 4stud.info
5. yandex.ru
6.google.com

NFS: zgodan i obećavajući mrežni datotečni sustav

Mrežni datotečni sustav je mrežna apstrakcija na vrhu uobičajenog datotečnog sustava koja omogućuje udaljenom klijentu pristup preko mreže na isti način kao kada pristupa lokalnim datotečnim sustavima. Iako NFS nije prvi mrežni sustav, razvio se u najsposobniji i najpopularniji mrežni datotečni sustav u UNIX®-u danas. NFS omogućuje većem broju korisnika dijeljenje zajedničkog datotečnog sustava i centralizira podatke kako bi se minimalizirao prostor na disku potreban za njihovu pohranu.

Ovaj članak počinje s kratak pregled povijest NFS-a, a zatim prelazi na istraživanje arhitekture NFS-a i njegovog budućeg razvoja.

Kratka povijest NFS-a

Prvi mrežni datotečni sustav zvao se FAL (File Access Listener) i razvio ga je 1976. DEC (Digital Equipment Corporation). Bila je to implementacija DAP protokola (Data Access Protocol) i dio je paketa protokola DECnet. Kao i za TCP/IP, DEC je objavio specifikacije za svoje mrežne protokole, uključujući DAP protokol.

NFS je bio prvi moderni mrežni datotečni sustav izgrađen na vrhu IP protokola. Njegov prototip može se smatrati eksperimentalnim datotečnim sustavom razvijenim u Sun Microsystemsu ranih 80-ih. S obzirom na popularnost ovog rješenja, NFS protokol uveden je kao RFC specifikacija i kasnije se razvio u NFSv2. NFS se brzo etablirao kao standard zahvaljujući svojoj sposobnosti međusobnog rada s drugim klijentima i poslužiteljima.

Standard je naknadno ažuriran na NFS verzije v3, definiran u RFC 1813. Ova verzija protokola bila je skalabilnija od prethodnih verzija i podržavala je veće veličine datoteka (veće od 2 GB), asinkrono pisanje i TCP kao transportni protokol. NFSv3 je postavio smjer razvoja datotečnih sustava za mreže širokog područja (WAN). Godine 2000. RFC 3010 (revidiran kao RFC 3530) uveo je NFS u poslovno okruženje. Sun je predstavio sigurniji NFSv4 s podrškom za praćenje stanja ( prethodne verzije NFS nije podržavao postojanost stanja, tj. pripadao kategoriji apatrida). Na ovaj trenutak Najnovija verzija NFS-a je verzija 4.1, definirana u RFC 5661, koja je dodana protokolu putem proširenja pNFS dodana je podrška za paralelni pristup za distribuirane poslužitelje.

Povijest NFS-a, uključujući specifične RFC-ove koji opisuju njegove verzije, prikazana je na slici 1.


Iznenađujuće, NFS se razvijao gotovo 30 godina. To je izuzetno stabilan i prenosiv mrežni datotečni sustav s izvanrednom skalabilnošću, performansama i značajkama kvalitete usluge. Kako se brzine povećavaju, a kašnjenje smanjuje pri komunikaciji unutar mreže, NFS je i dalje popularan način implementacije datotečnog sustava unutar mreže. Čak iu slučaju lokalne mreže Virtualizacija potiče pohranjivanje podataka na mreži kako bi se virtualnim strojevima pružila dodatna mobilnost. NFS također podržava najnovije modele računalnog okruženja usmjerene na optimizaciju virtualnih infrastruktura.

NFS arhitektura

NFS koristi standardni klijent-poslužitelj arhitektonski model (kao što je prikazano na slici 2). Poslužitelj je odgovoran za implementaciju zajedničkog datotečnog sustava i pohranu na koju se klijenti povezuju. Klijent implementira korisničko sučelje na zajednički datotečni sustav montiran unutar lokalnog datotečnog prostora klijenta.

Slika 2. Implementacija modela klijent-poslužitelj u NFS arhitekturi

U Linux® OS-u, virtualni prekidač sustava datoteka (VFS) pruža sredstvo za istodobna podrška više sustava datoteka na istom hostu (na primjer, sustav datoteka ISO 9660 na CD-ROM-u i sustav datoteka ext3fs na lokalnom tvrdom disku). Virtualni prekidač određuje kojem se pogonu šalje zahtjev i prema tome koji se datotečni sustav treba koristiti za obradu zahtjeva. Stoga NFS ima istu kompatibilnost kao i drugi datotečni sustavi koji se koriste u Linuxu. Jedina razlika s NFS-om je ta što umjesto da se obrađuju lokalno na glavnom računalu, I/O zahtjevi mogu biti poslani mreži na izvršenje.

VFS utvrđuje da je primljeni zahtjev NFS i prosljeđuje ga NFS rukovatelju koji se nalazi u kernelu. NFS rukovatelj obrađuje I/O zahtjev i prevodi ga u NFS proceduru (OTVORI, PRISTUP, STVORI, ČITAJ, ZATVORI, UKLONI, itd.). Ovi postupci, opisani u zasebnoj RFC specifikaciji, definiraju ponašanje NFS protokola. Neophodan postupak odabire se ovisno o zahtjevu i izvršava se korištenjem RPC (remote procedure call) tehnologije. Kao što ime sugerira, RPC dopušta pozivanje procedura između raznih sustava. RPC usluga spaja NFS zahtjev sa svojim argumentima i šalje rezultat odgovarajućem udaljeni host, a zatim nadzire primitak i obradu odgovora kako bi ga vratio podnositelju zahtjeva.

RPC također uključuje važan XDR sloj ( vanjski prikaz podataka- neovisno predstavljanje podataka), osiguravajući da svi korisnici NFS-a koriste isti format za iste tipove podataka. Kada platforma pošalje zahtjev, vrsta podataka koju koristi može se razlikovati od vrste podataka koja se koristi na hostu koji obrađuje zahtjev. XDR tehnologija brine se za posao pretvaranja tipova u standardni prikaz (XDR) tako da platforme koje koriste različite arhitekture mogu međusobno raditi i dijeliti datotečne sustave. XDR definira bitni format za tipove kao što je float i poredak bajtova za tipove kao što su nizovi konstantne i promjenjive duljine. Iako je XDR prvenstveno poznat po svojoj upotrebi u NFS-u, ova specifikacija može biti korisna u svim slučajevima kada morate raditi u istom okruženju s različitim arhitekturama.

Nakon što je XDR preveo podatke u standardni prikaz, zahtjev se šalje preko mreže koristeći određeni transportni protokol. Korištene su rane implementacije NFS-a UDP protokol, ali danas se TCP koristi za pružanje veće pouzdanosti.

Na strani NFS poslužitelja koristi se sličan algoritam. Zahtjev putuje uz mrežni stog kroz RPC/XDR sloj (za pretvorbu tipova podataka u skladu s arhitekturom poslužitelja) i u NFS poslužitelj, koji je odgovoran za obradu zahtjeva. Tamo se zahtjev prosljeđuje NFS demonu da odredi ciljni datotečni sustav kojem je upućen, a zatim ponovno ide VFS-u za pristup tom datotečnom sustavu na lokalnom disku. Kompletan dijagram ovog procesa prikazan je na slici 3. U ovom slučaju, lokalni datotečni sustav poslužitelja je standardan za Linux datoteka sustav, na primjer ext4fs. U biti, NFS nije datotečni sustav u tradicionalnom smislu riječi, već protokol za udaljeni pristup datotečnim sustavima.


Za mreže sa veliko vrijemečekanje u NFSv4 nudi posebnu složenu proceduru ( složeni postupak). Ovaj postupak vam omogućuje postavljanje više RPC poziva unutar jednog zahtjeva kako biste smanjili troškove slanja zahtjeva preko mreže. Ova procedura također implementira mehanizam funkcije povratnog poziva za primanje odgovora.

NFS protokol

Kada klijent počne koristiti NFS, prva radnja je izvođenje operacije montiranja, a to je montiranje udaljenog sustava datoteka u prostor lokalnog sustava datoteka. Ovaj proces počinje pozivom procedure montiranja (jednog od sustava Linux funkcije), koji se preusmjerava putem VFS-a na NFS komponentu. Zatim, RPC poziv funkciji get_port na udaljenom poslužitelju određuje broj porta koji će se koristiti za montiranje, a klijent šalje zahtjev za montiranje putem RPC-a. Ovaj zahtjev na strani poslužitelja obrađuje poseban demon rpc.mountd, koji je odgovoran za protokol montiranja ( protokol montiranja). Daemon provjerava je li datotečni sustav koji je klijent zatražio na popisu dostupnih sustava ovaj poslužitelj. Ako traženi sustav postoji i klijent mu ima pristup, odgovor RPC procedure montiranja specificira deskriptor datotečnog sustava. Klijent zadržava informacije o lokalnim i udaljenim točkama montiranja i može postavljati I/O zahtjeve. Protokol montiranja nije siguran sa sigurnosnog stajališta, pa NFSv4 umjesto toga koristi interne RPC pozive, koji također mogu upravljati točkama montiranja.

Da biste pročitali datoteku, prvo je morate otvoriti. Ne postoji OPEN procedura u RPC-u, klijent to jednostavno provjerava navedena datoteka i direktorij postoje na montiranom datotečnom sustavu. Klijent započinje slanjem GETATTR RPC zahtjeva direktoriju, koji vraća atribute direktorija ili indikator da direktorij ne postoji. Zatim, kako bi provjerio prisutnost datoteke, klijent izdaje LOOKUP RPC zahtjev. Ako datoteka postoji, na njoj se postavlja GETATTR RPC zahtjev kako bi se saznali atributi datoteke. Koristeći informacije dobivene iz uspješnih LOOKUP i GETATTR poziva, klijent stvara rukovanje datotekom koja se daje korisniku za buduće zahtjeve.

Nakon što je datoteka identificirana na udaljenom datotečnom sustavu, klijent može izdati RPC READ zahtjeve. Ovaj se zahtjev sastoji od deskriptora datoteke, stanja, pomaka i broja bajtova za čitanje. Klijent koristi stanje ( država) kako bi se utvrdilo može li se operacija izvesti u ovom trenutku, tj. Je li datoteka zaključana? Pomak ( pomaknuti) pokazuje na kojoj poziciji započeti čitanje, a brojač bajtova ( računati) određuje koliko bajtova treba pročitati. Kao rezultat poziva RPC READ, poslužitelj ne vraća uvijek onoliko bajtova koliko je zatraženo, ali zajedno s vraćenim podacima uvijek izvještava koliko je bajtova poslano klijentu.

Inovacije u NFS-u

Od najvećeg interesa su dva najnovije verzije NFS – 4 i 4.1, na čijem primjeru možete najviše učiti važni aspekti evolucija NFS tehnologije.

Prije nego što je NFSv4 bio dostupan za obavljanje zadataka upravljanja datotekama kao što su montiranje, zaključavanje itd. postojali su posebni dodatni protokoli. U NFSv4, proces upravljanja datotekama je pojednostavljen na jedan protokol; Osim toga, počevši od ove verzije, UDP se više ne koristi kao transportni protokol. NFSv4 uključuje podršku za UNIX i Windows® semantiku pristupa datotekama, omogućujući NFS-u prirodnu integraciju u druge operativne sustave.

NFSv4.1 uveo je koncept paralelni NFS(paralelni NFS - pNFS). Za pružanje veće razine skalabilnosti, NFSv4.1 implementira arhitekturu u kojoj podaci i metapodaci ( obilježava) distribuiraju se po uređajima na sličan način kao što se to radi u klasteriranim datotečnim sustavima. Kao što je prikazano u , pNFS dijeli ekosustav u tri komponente: klijent, poslužitelj i pohrana. U tom slučaju pojavljuju se dva kanala: jedan za prijenos podataka, a drugi za prijenos upravljačkih naredbi. pNFS odvaja podatke od metapodataka koji ih opisuju, pružajući dvokanalna arhitektura. Kada klijent želi pristupiti datoteci, poslužitelj mu šalje metapodatke s "markupom". Metapodaci sadrže informacije o lokaciji datoteke na uređajima za pohranu. Jednom kada klijent dobije te informacije, može izravno pristupiti pohrani bez potrebe za interakcijom s poslužiteljem, poboljšavajući skalabilnost i performanse. Kada klijent završi s radom s datotekom, potvrđuje promjene napravljene na datoteci i njezinu "oznaku". Ako je potrebno, poslužitelj može od klijenta zatražiti metapodatke s oznakom.

S pojavom pNFS-a, NFS protokolu je dodano nekoliko novih operacija koje podržavaju takav mehanizam. Metoda LayoutGet koristi se za dohvaćanje metapodataka s poslužitelja, metoda LayoutReturn "oslobađa" metapodatke koje je "uhvatio" klijent, a metoda LayoutCommit učitava "izgled" primljen od klijenta u pohranu kako bi bio dostupan drugim korisnicima. Poslužitelj može opozvati metapodatke od klijenta pomoću metode LayoutRecall. "Označeni" metapodaci distribuiraju se na više uređaja za pohranu radi pružanja paralelnog pristupa i visokih performansi.


Podaci i metapodaci pohranjuju se na uređaje za pohranu. Klijenti mogu izvršavati izravne I/O zahtjeve na temelju primljene oznake, a NFSv4.1 poslužitelj pohranjuje i upravlja metapodacima. Ova funkcionalnost sama po sebi nije nova, ali pNFS je dodao podršku za različite metode pristupa uređajima za pohranu. Danas pNFS podržava korištenje blok protokola ( Fibre Channel), objektne protokole i sam NFS (čak ni u pNFS obliku).

Razvoj NFS-a se nastavlja, au rujnu 2010. objavljeni su zahtjevi za NFSv4.2. Neke od inovacija odnose se na stalnu migraciju tehnologija za pohranu podataka prema virtualizaciji. Na primjer, u virtualna okruženja S hipervizorom je dupliciranje podataka vrlo vjerojatno (više operativnih sustava čita/piše i sprema iste podatke). Zbog toga je poželjno da sustav pohrane kao cjelina razumije gdje dolazi do dupliciranja. Ovaj pristup pomoći će uštedjeti prostor predmemorije klijenta i ukupni kapacitet pohrane. Za rješavanje ovog problema, NFSv4.2 predlaže korištenje "mape blokova koji se nalaze u dijeljenje" (blokovna mapa zajedničkih blokova). Jer moderni sustavi sustavi za pohranu sve su više opremljeni vlastitom internom računalnom snagom, uvodi se kopiranje na strani poslužitelja kako bi se smanjilo opterećenje prilikom kopiranja podataka na interna mreža kada se to može učiniti učinkovito na samom uređaju za pohranu. Druge inovacije uključuju predmemoriju pod-datoteka za flash memoriju i preporuke za I/O podešavanje na strani klijenta (kao što je korištenje mapadvise).

NFS alternative

Iako je NFS najpopularniji mrežni datotečni sustav u UNIX-u i Linuxu, postoje i drugi mrežni datotečni sustavi. Na Windows platforma® najčešće korišteni SMB, također poznat kao CIFS; međutim, Windows OS također podržava NFS, kao što Linux podržava SMB.

Jedan od najnovijih distribuiranih datotečnih sustava podržanih na Linuxu, Ceph, osmišljen je od samog početka da bude sustav datoteka kompatibilan s POSIX-om otporan na pogreške. Više informacija o Cephu možete pronaći u odjeljku.

Vrijedno je spomenuti i datotečne sustave OpenAFS (Open Source verzija Andrew distribuiranog datotečnog sustava, razvijena na Sveučilištu Carnegie Mellon i IBM Corporation), GlusterFS (distribuirani datotečni sustav Opća namjena za organiziranje skalabilne pohrane podataka) i Luster (mrežni datotečni sustav s masivnim paralelizmom za klasterska rješenja). Svi ovi sustavi otvorenog koda mogu se koristiti za izgradnju distribuirane pohrane.

Zaključak

Razvoj datoteke NFS sustavi nastavlja. Slično Linux OS-u, pogodan za podršku nižim, ugrađenim i vrhunskim rješenjima, NFS pruža arhitekturu za skalabilna rješenja za pohranu prikladna za oba individualni korisnici, i organizacije. Kada pogledate put koji je NFS već prošao i izglede za njegov budući razvoj, postaje jasno da će ovaj datotečni sustav nastaviti mijenjati način na koji razmišljamo o tome kako se tehnologije za pohranu datoteka implementiraju i koriste.