Kako postaviti pametne telefone i računala. Informativni portal
  • Dom
  • U kontaktu s
  • Instaliranje i konfiguriranje NFS poslužitelja i NFS klijenta. Testiranje ponašanja instalacije NFS-a

Instaliranje i konfiguriranje NFS poslužitelja i NFS klijenta. Testiranje ponašanja instalacije NFS-a

Evo, što je sljedeće? Kako mogu gledati filmove i slušati preuzete glazbene datoteke? Trebate li ih stvarno snimiti na diskove i na taj način prenijeti na računalo s GUI-jem? Ili ih morate kopirati preko sporog SFTP-a? Ne! NFS dolazi u pomoć! Ne, ovo nije serija trkaćih igara, već mrežni datotečni sustav.
Mrežni datotečni sustav (NFS) je mrežni datotečni sustav koji korisnicima omogućuje pristup datotekama i direktorijima koji se nalaze na udaljenim računalima kao da su datoteke i direktoriji lokalni. Glavna prednost ovakvog sustava je što pojedine radne stanice mogu koristiti manje vlastitog prostora na disku, budući da se zajednički podaci pohranjuju na zasebnom stroju i dostupni su drugim strojevima na mreži. NFS je klijent/poslužiteljska aplikacija. Odnosno, NFS klijent mora biti instaliran na sustavu korisnika, a NFS poslužitelj na računalima koja im osiguravaju prostor na disku.

Instalacija i konfiguracija NFS poslužitelja (192.168.1.2)

1. Instalirajte. Nakon povezivanja putem SSH-a na računalo od strane poslužitelja, ili jednostavno u njegovoj konzoli, unesite:

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

Time će se instalirati NFS poslužitelj kao i potrebni paket mape portova.

2. Konfiguriranje. Za konfiguriranje popisa direktorija koje želimo otvoriti i popisa kojima ih želimo otvoriti, uredite datoteku / etc / izvozi :

Sudo nano / etc / izvozi / podaci 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čko korištenje od strane svih računala 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 korisničkog serga dostupnim u načinu samo za čitanje za računalo s IP 192.168.1.34. Sva ostala računala na mreži neće imati pristup ovom direktoriju.

Dostupne opcije:

  • ro - dopuštenje samo za čitanje. Ne morate ga navesti, budući da je instaliran prema zadanim postavkama;
  • rw - daje klijentima pristup za pisanje;
  • no_root_squash - prema zadanim postavkama, root korisnik na klijentskom stroju neće imati pristup otvorenim direktorijima na poslužitelju. Ovom opcijom uklanjamo ovo ograničenje. Iz sigurnosnih razloga, najbolje je to ne činiti;
  • noaccess - odbija pristup navedenom direktoriju. Može biti korisno ako ste prethodno za sve korisnike mreže postavili pristup određenom direktoriju, a sada želite ograničiti pristup u poddirektoriju samo na neke korisnike.

Sada morate ponovo pokrenuti nfs-kernel-server:

Sudo /etc/init.d/nfs-kernel-server restart

Ako nakon toga želite nešto promijeniti u datoteci / etc / izvozi , zatim kako bi promjene stupile na snagu, samo pokrenite sljedeću naredbu:

Sudo exportfs -a

Sve. NFS poslužitelj je instaliran i konfiguriran. Možete otići na NFS klijent.

Instalacija i konfiguracija NFS klijenta

1. Instalacija. U terminalu računala koje će se spojiti provodimo sljedeće:

Sudo apt-get install portmap nfs-common

2. Postavljanje. Prvo, napravimo direktorij u koji će se montirati 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. Montaža ručno
Napravite tekstualnu datoteku na radnoj površini ili u nekoj drugoj mapi:

Nano ~ / desktop \ desktop / nfs-server-connect

Pišemo mu:

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

Činimo ga izvršnim:

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

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

Metoda 2. Dodavanje u / etc / fstab
Otvori / etc / fstab:

Sudo nano / etc / fstab

I dodajte redak na kraj datoteke:

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

Pažnja! Zamijenite 192.168.1.2:/data s IP-om ili imenom poslužitelja i stazom do dijeljenog direktorija. Mogućnosti postavljanja se mogu mijenjati.

Opcija teškočvrsto veže direktorij na klijentu za poslužitelj, a ako poslužitelj otpadne, može se i vaše računalo zamrznuti. Opcija mekana, kao što mu naziv govori, nije tako kategoričan.

Nakon spremanja datoteke, možete montirati udaljenu mapu.

Sustav datoteka NFS (Network File System) kreirao je Sun Microsystems. Trenutno je to standardni mrežni datotečni sustav za operacijske sustave temeljene na UNIX-u, a NFS klijenti i poslužitelji implementirani su za mnoge druge operacijske sustave. Načela njegove organizacije trenutno su standardizirana od strane internetske zajednice, najnovija verzija NFS v.4 opisana je RFC specifikacijom ZOJ, objavljenom u prosincu 2000. godine.

NFS je sustav koji podržava shemu udaljenog pristupa datotekama. Rad korisnika s udaljenim datotekama nakon operacije montiranja postaje potpuno transparentan - podstablo datotečnog sustava NFS poslužitelja postaje podstablo lokalnog datotečnog sustava.

Jedan od ciljeva NFS programera bio je podržati heterogene sustave s klijentima i poslužiteljima koji rade na različitim operativnim sustavima na različitim hardverskim platformama. Ovom cilju pomaže Sunova implementacija NFS-a temeljena na RFC-u, koja podržava zadanu XDR mogućnost za objedinjeni prikaz argumenata udaljenih procedura.

Kako bi osigurao otpornost klijenta na kvarove poslužitelja, NFS je usvojio pristup bez stanja, to jest, kada rade s datotekama, poslužitelji ne pohranjuju podatke o datotekama koje su otvorili klijenti.

Osnovna ideja iza NFS-a je dopustiti proizvoljnoj skupini korisnika da dijele zajednički datotečni sustav. Najčešće svi korisnici pripadaju istoj lokalnoj mreži, ali ne nužno. Također možete pokrenuti NFS na WAN-u. Svaki NFS poslužitelj osigurava jedan ili više svojih direktorija za daljinski pristup klijentu. Direktorij se deklarira pristupačnim sa svim njegovim poddirektorijima. Popis direktorija koje prosljeđuje poslužitelj nalazi se u datoteci / etc / exports, tako da se ti direktoriji izvoze automatski čim se poslužitelj pokrene. Klijenti pristupaju izvezenim imenicima montiranjem. Mnoge Sunčeve radne stanice su bez diska, ali čak i tada je moguće montirati udaljeni datotečni sustav u korijenski direktorij s cijelim datotečnim sustavom na poslužitelju. Izvršenje programa gotovo je neovisno o tome gdje se datoteka nalazi: lokalno ili na udaljenom disku. Ako su dva ili više klijenata montirala isti direktorij u isto vrijeme, tada mogu komunicirati dijeljenjem datoteke.

NFS datotečni sustav u svom radu koristi dva protokola.

Prvi NFS protokol kontrolira montiranja. Klijent šalje poslužitelju potpuno kvalificirano ime direktorija i traži dopuštenje za montiranje tog direktorija negdje u vlastitom stablu direktorija. U ovom slučaju, poslužitelj nije naznačen gdje će se direktorij poslužitelja montirati. Nakon što primi ime, poslužitelj potvrđuje zahtjev i vraća deskriptor datoteke klijentu koji je udaljena točka montiranja. Deskriptor uključuje deskriptor tipa datotečnog sustava, broj diska, inode broj direktorija koji je udaljena točka montiranja i sigurnosne informacije. Čitanje i pisanje datoteka iz montiranih datotečnih sustava koriste deskriptore datoteka umjesto simboličkog naziva.


Montaža se može izvršiti automatski pomoću batch datoteka pri pokretanju. Postoji još jedna opcija za automatsko montiranje: kada se OS pokrene na radnoj stanici, udaljeni datotečni sustav se ne montira, ali kada se udaljena datoteka otvori prvi put, OS šalje zahtjeve svakom poslužitelju i, nakon što otkrije ovu datoteku, montira direktorij poslužitelja na kojem se nalazi pronađena datoteka.

Drugi NFS protokol koristi se za pristup udaljenim datotekama i direktorijima. Klijenti mogu poslati zahtjev poslužitelju da izvrši neku radnju u direktoriju ili pročita ili upiše datoteku. Osim toga, mogu tražiti atribute datoteke kao što su vrsta, veličina, vrijeme kreiranja i izmjene. NFS podržava većina UNIX sistemskih poziva, s izuzetkom otvaranja i zatvaranja. Otvorene i zatvorene iznimke nisu slučajne. Umjesto otvaranja udaljene datoteke, klijent šalje poslužitelju poruku koja sadrži naziv datoteke, tražeći traženje i vraćajući deskriptor datoteke. Za razliku od otvorenog poziva, poziv traženja ne kopira nikakve informacije u interne tablice sustava. Poziv za čitanje sadrži deskriptor datoteke za čitanje, pomak u datoteci koja se čita i broj bajtova za čitanje. Prednost ove sheme je u tome što poslužitelj ne pamti ništa o otvorenim datotekama. Na ovaj način, ako se poslužitelj sruši i zatim vrati, podaci o otvorenim datotekama neće biti izgubljeni jer nisu podržani.

Ako poslužitelj ne uspije, klijent jednostavno nastavlja slati naredbe za čitanje ili pisanje u datoteke, ali bez primanja odgovora i nakon što je istekao vrijeme čekanja, klijent ponavlja svoje zahtjeve. Nakon ponovnog pokretanja, poslužitelj prima još jedan ponovljeni zahtjev od klijenta i odgovara na njega. Dakle, pad poslužitelja uzrokuje samo pauzu u klijentskoj usluzi, ali nisu potrebne dodatne radnje od klijenata za vraćanje veza i ponovno otvaranje datoteka.

Nažalost, NFS otežava zaključavanje datoteka. Na mnogim operativnim sustavima datoteka se može otvoriti i zaključati tako da joj drugi procesi ne mogu pristupiti. Kada se datoteka zatvori, zaključavanje se otpušta. Na sustavima bez stanja kao što je NFS, blokiranje se ne može povezati s otvaranjem datoteke, budući da poslužitelj ne zna koja je datoteka otvorena. Stoga NFS zahtijeva posebne dodatne kontrole zaključavanja.

NFS koristi predmemoriju na strani klijenta, podaci se prenose u predmemoriju blok po blok, a koristi se čitanje unaprijed, pri čemu blok koji aplikacija čita u predmemoriju na zahtjev uvijek prati čitanje sljedećeg bloka koji je pokrenuo sustav. Metoda NFS predmemorije ne čuva UNIX semantiku za dijeljenje datoteka. Umjesto toga, koristi se kritički kritizirana semantika, u kojoj su promjene podataka u datoteci koju je predmemorirao klijent vidljiv drugom klijentu, ovisno o vremenu. Prilikom sljedećeg otvaranja datoteke u njezinoj predmemoriji, klijent provjerava kod poslužitelja kada je datoteka zadnji put modificirana. Ako se to dogodi nakon što je datoteka stavljena u predmemoriju, datoteka se uklanja iz predmemorije i nova kopija datoteke se prima s poslužitelja. Klijenti distribuiraju izmjene napravljene u predmemoriji svakih 30 sekundi, tako da poslužitelj može primati ažuriranja s velikim odgodom. Kao rezultat mehanizama za brisanje podataka iz predmemorije i distribucije izmjena, podaci koje prima bilo koji klijent nisu uvijek najnoviji.

NFS replikacija nije podržana.

Usluga imenika

Svrha i načela organizacije

Poput velike organizacije, velika računalna mreža treba centralno pohraniti što više referentnih informacija o sebi. Rješenje mnogih problema u mreži oslanja se na podatke o korisnicima mreže - njihova imena koja se koriste za logičku prijavu, lozinke, prava pristupa mrežnim resursima, kao i resurse i mrežne komponente: poslužitelje, klijentska računala, usmjerivače, pristupnike, volumene datoteka sustavi, pisači itd.

Evo primjera najvažnijih zadataka koji zahtijevaju centraliziranu bazu podataka referentnih informacija na mreži:

  • Jedan od najčešće obavljanih zadataka u sustavu, na temelju referentnih podataka o korisnicima, je njihova autentifikacija, na temelju koje se zatim vrši autorizacija pristupa. Mreža mora nekako centralno pohraniti korisničke račune koji sadrže imena i lozinke.
  • Posjedovanje neke vrste centralizirane baze podataka zahtijeva podršku transparentnosti pristupa mnogim mrežnim resursima. Takva bi baza podataka trebala pohraniti nazive tih resursa i mapiranje imena u numeričke identifikatore (na primjer, IP adrese), omogućujući vam da pronađete ovaj resurs na mreži. Transparentnost se može osigurati za pristup poslužiteljima, volumenima datotečnog sustava, sučeljima RPC procedura, objektima distribuiranih aplikacijskih programa i mnogim drugim mrežnim resursima.
  • E-pošta je još jedan popularan primjer usluge koja želi web-based help desk koji pohranjuje podatke o imenima korisnika pošte.
  • Mreže su u posljednje vrijeme sve više počele koristiti alate za upravljanje kvalitetom prometa (QoS) koji također zahtijevaju informacije o svim korisnicima i aplikacijama sustava, njihovim zahtjevima za parametrima kvalitete prometa, kao i o svim mrežnim uređajima s kojima se može koristiti za upravljanje prometom (usmjerivači, prekidači, pristupnici, itd.).
  • Organizacija distribuiranih aplikacija može se značajno pojednostaviti ako mreža ima bazu podataka koja pohranjuje informacije o dostupnim programskim modulima-objektima i njihovoj lokaciji na mrežnim poslužiteljima. Aplikacija koja treba izvesti neku standardnu ​​radnju postavlja zahtjev takvoj bazi podataka i prima adresu programskog objekta koji može izvesti traženu radnju.
  • Sustav upravljanja mrežom mora imati bazu za pohranjivanje informacija o topologiji mreže i karakteristikama svih mrežnih elemenata kao što su usmjerivači, preklopnici, poslužitelji i klijentska računala. Posjedovanje potpunih informacija o sastavu mreže i njezinim vezama omogućuje automatiziranom sustavu upravljanja mrežom da ispravno identificira poruke o hitnim događajima i pronađe njihov temeljni uzrok. Organizirane po poslovnim jedinicama, informacije o instaliranom mrežnom hardveru i softveru korisne su same po sebi, jer pomažu administratorima da steknu čvrstu sliku zdravlja mreže i planiraju njezin razvoj.

Takvi primjeri se mogu nastaviti, ali nije teško navesti protuargument koji dovodi u sumnju potrebu korištenja centralizirane baze referentnih informacija u mreži – dugo su vremena mreže radile bez jedinstvene referentne baze podataka, a mnoge mreže još uvijek su raditi bez toga. Doista, postoje mnoga privatna rješenja koja omogućuju učinkovitu organizaciju rada mreže na temelju privatnih referentnih baza podataka, koje mogu biti predstavljene običnim tekstualnim datotekama ili tablicama pohranjenim u tijelu aplikacije. Na primjer, UNIX tradicionalno koristi passwd datoteku za pohranu korisničkih imena i lozinki, što pokriva samo korisnike na jednom računalu. Također možete pohraniti imena primatelja e-pošte u lokalnu datoteku na računalu klijenta. I takvi privatni sustavi pomoći dobro funkcioniraju - praksa to potvrđuje.

Međutim, ovaj prigovor vrijedi samo za male i srednje mreže; u velikim mrežama pojedinačne lokalne referentne baze podataka gube svoju učinkovitost. DNS na Internetu dobar je primjer koji se pokazao neprimjenjivim na lokalna rješenja za velike mreže. Nakon što je veličina Interneta premašila određenu granicu, postalo je neučinkovito pohranjivati ​​informacije o podudarnosti imena i IP adresa računala na mreži u lokalnim tekstualnim datotekama. Bilo je potrebno stvoriti distribuiranu bazu podataka koju podržavaju hijerarhijski povezani poslužitelji imena i centralizirani servis na vrhu te baze podataka kako bi razlučivanje simboličkog imena na Internetu radilo brzo i učinkovito.

Za veliku mrežu također je neučinkovito koristiti veliki broj usluga pomoći uske namjene: jednu za provjeru autentičnosti, drugu za upravljanje mrežom, treću za razrješavanje imena računala, itd. Čak i ako je svaka od ovih usluga dobro organizirana i kombinira centralizirano sučelje s distribuiranom bazom podataka, veliki broj servisa pomoći dovodi do dupliciranja velikih količina informacija i komplicira administraciju i upravljanje mrežom. Na primjer, Windows NT ima najmanje pet različitih tipova referentnih baza podataka. Glavni imenik domene (NT Domain Directory Service) pohranjuje podatke o korisnicima, koji su potrebni prilikom organiziranja njihove logičke prijave na mrežu. Podaci o istim korisnicima mogu se nalaziti u drugom direktoriju koji koristi e-pošta Microsoft Mail. Još tri baze podataka podržavaju razlučivanje adresa: WINS mapira Netbios imena u IP adrese, DNS (Domain Name Server) direktorij je koristan kada se NT mreža povezuje s Internetom, i konačno, DHCP direktorij se koristi za automatsko dodjeljivanje IP adresa računalima na mreži .... Očito, takva raznolikost usluga pomoći komplicira administratoru život i dovodi do dodatnih pogrešaka kada se vjerodajnice istog korisnika trebaju unijeti u više baza podataka. Stoga, u novoj verziji sustava Windows 2000, većinu informacija pomoći o sustavu može pohraniti Active Directory, jedinstvena, centralizirana usluga pomoći koja koristi distribuiranu bazu podataka i integrirana je s DNS-om.

Rezultat razvoja sustava za pohranu referentnih informacija bila je pojava u mrežnim operativnim sustavima posebne usluge - tzv. Directory Services, koja se također naziva referentna usluga (imenik). Usluga imenika pohranjuje informacije o svim korisnicima i mrežnim resursima u obliku objedinjenih objekata s određenim atributima, a također vam omogućuje da odražavate odnose između pohranjenih objekata, kao što su pripadnost korisnika određenoj skupini, prava korisnika pristupa računalima, ulazak nekoliko čvorova u jednu podmrežu, komunikacijske veze između podmreža, proizvodnja poslužitelja itd. Usluga imenika omogućuje vam izvođenje nekih osnovnih operacija nad pohranjenim objektima, kao što je dodavanje i uklanjanje objekta, uključujući objekt u drugom objektu, mijenjanje vrijednosti atributa objekta, atributa čitanja i nekih drugih. Obično su razne specifične mrežne aplikacije izgrađene na vrhu usluge imenika, koje koriste informacije usluge za određene zadatke: upravljanje mrežom, provjeru autentičnosti korisnika, transparentnost usluge i druge gore navedene. Usluga imenika obično je izgrađena na modelu klijent-poslužitelj: poslužitelji pohranjuju bazu podataka referentnih informacija koje klijenti koriste slanjem zahtjeva poslužiteljima preko mreže. Za klijenta usluge imenika čini se da je to jedan centralizirani sustav, iako većina dobrih usluga imenika ima distribuiranu strukturu koja uključuje veliki broj poslužitelja, ova struktura je transparentna za klijente.

Važno pitanje je organizacija referentne baze podataka. Jedna baza podataka koja pohranjuje veliku količinu referentnih informacija stvara iste probleme kao i svaka druga velika baza podataka. Implementacija help deska kao lokalne baze podataka pohranjene kao jedna kopija na nekom od mrežnih poslužitelja nije prikladna za veliki sustav iz više razloga, prvenstveno zbog niske performanse i niske pouzdanosti takvog rješenja. Performanse će biti niske zbog činjenice da će zahtjevi prema bazi podataka od svih korisnika i aplikacija na mreži ići na jedan poslužitelj, koji će uz veliki broj zahtjeva zasigurno prestati nositi se s njihovom obradom. Odnosno, takvo rješenje nije dobro skalirano u smislu broja posluženih korisnika i zajedničkih resursa. Pouzdanost također ne može biti visoka u sustavu s jednom kopijom podataka. Osim uklanjanja ograničenja u pogledu performansi i pouzdanosti, poželjno je da struktura baze podataka omogućuje logično grupiranje resursa i korisnika po strukturnim odjelima poduzeća i dodjeli administratora za svaku takvu grupu.

Izazovi održavanja performansi i pouzdanosti kako mreža raste obično se rješavaju putem distribuiranih referentnih baza podataka. Dijeljenje podataka na više poslužitelja smanjuje opterećenje na svakom poslužitelju, istovremeno održavajući pouzdanost korištenjem više replika svakog dijela baze podataka. Za svaki dio baze podataka možete dodijeliti vlastitog administratora, koji ima prava pristupa samo objektima svog dijela informacija o cijelom sustavu. Za korisnika (i za mrežne aplikacije) takva se distribuirana baza podataka čini jedinstvenom bazom podataka koja omogućuje pristup svim mrežnim resursima, bez obzira s koje radne stanice dolazi zahtjev.

Postoje dva popularna standarda za usluge imenika. Prvo, to je standard X.500 koji je razvio ITU-T (u vrijeme razvoja standarda ta se organizacija zvala CCITT). Ovaj standard definira funkcije, organizaciju help deska i protokol za pristup. Dizajniran prvenstveno za korištenje s poštanskim uslugama X.400, standard X.500 omogućuje vam da učinkovito organizirate pohranu svih referentnih informacija i služi kao dobra osnova za univerzalnu uslugu imenika na mreži.

Drugi standard je Light-weight Directory Access Protocol (LDAP) standard koji je razvila internetska zajednica. Ovaj standard definira pojednostavljeni protokol pristupa servisu imenika jer su se usluge izgrađene na standardu X.500 pokazale previše glomazne. LDAP je postao široko rasprostranjen i postao je de facto standard kao protokol za pristup klijentima za resurse službe za pomoć.

Također postoji nekoliko praktičnih implementacija usluga imenika za mrežne operacijske sustave. Najraširenija je usluga Novell NDS, razvijena 1993. godine za mrežni operativni sustav NetWare 4.0, a danas je implementirana i za Windows NT/2000. Od velikog je interesa Microsoftov Active Directory za Windows 2000. Obje ove usluge podržavaju LDAP pristupni protokol i mogu raditi u vrlo velikim mrežama zbog svoje distribucije.

NDS usluga imenika

NetWare Directory Services (NDS) je globalna referentna usluga koja se temelji na distribuiranoj objektno orijentiranoj bazi podataka mrežnih resursa. NDS baza podataka sadrži informacije o svim mrežnim resursima, uključujući informacije o korisnicima, korisničkim grupama, pisačima, svezacima i računalima. NetWare OS (i drugi NDS klijenti koji rade na drugim platformama) koristi NDS informacije za pružanje pristupa tim resursima.

NDS je zamijenio bindery direktorij prethodnih verzija NetWarea. Bindery imenik je "ravna" ili jednoslojna baza podataka dizajnirana za podršku jednom poslužitelju. Također je koristio koncept "objekta" za mrežni resurs, no tumačenje ovog pojma bilo je drugačije od općeprihvaćenog. Vezivni objekti identificirani su jednostavnim numeričkim vrijednostima i imali su specifične atribute. Međutim, za te objekte nije postojao eksplicitni odnos nasljeđivanja za klase objekata, pa je odnos između objekata vezanja bio proizvoljno uspostavljen od strane administratora, što je često dovodilo do kršenja integriteta podataka.

NDS baza podataka je razina baze podataka koja održava informacije o resursima za sve poslužitelje na mreži. Za kompatibilnost s NetWareom unatrag, NDS nudi mehanizam emulacije povezivanja.

NDS je značajno poboljšanje u odnosu na prethodne verzije:

  • distribucija;
  • replikacija;
  • transparentnost;
  • globalnost.

Distribucija znači da se informacije ne pohranjuju na jednom poslužitelju, već su podijeljene na dijelove koji se nazivaju particijama. NetWare pohranjuje ove particije na više poslužitelja u mreži (slika 10.8). Ovo svojstvo uvelike pojednostavljuje administraciju i upravljanje velikom mrežom, budući da se administratoru čini kao jedan sustav. Također omogućuje brži pristup bazi podataka mrežnih resursa pristupom najbližem poslužitelju.

Riža. 10.8. NDS particije baze podataka

Replika je kopija informacija o NDS particiji. Možete stvoriti neograničen broj replika svake particije i pohraniti ih na različite poslužitelje. Ako se jedan poslužitelj zaustavi, tada se kopije ovih informacija mogu dohvatiti s drugog poslužitelja. To povećava otpornost sustava jer nijedan poslužitelj nije odgovoran za sve informacije u NDS bazi podataka.

Transparentnost je da NDS automatski stvara veze između softverskih i hardverskih komponenti koje korisniku omogućuju pristup mrežnim resursima. NDS ne zahtijeva od korisnika da zna fizičku lokaciju tih resursa. Određivanjem mrežnog resursa imenom, dobit ćete ispravan pristup njemu čak i ako se njegova mrežna adresa ili lokacija promijeni.

Globalna priroda NDS-a je da nakon što se prijavite, dobivate pristup resursima na cijeloj mreži, a ne samo na jednom poslužitelju, kao što je bio slučaj u prethodnim verzijama. To se postiže globalnim postupkom prijave. Umjesto prijave na poseban poslužitelj, korisnik NDS-a se prijavljuje na mrežu, a zatim dobiva pristup mrežnim resursima koji su mu dopušteni. Podaci dobiveni tijekom logičke prijave koriste se za identifikaciju korisnika. Kasnije, kada korisnik pokuša pristupiti resursima kao što su poslužitelji, svezaci ili pisači, proces pozadinske provjere autentičnosti provjerava ima li korisnik prava na resurs.

Mrežni datotečni sustav (NFS)- protokol mrežnog pristupa datotečnim sustavima, omogućuje povezivanje udaljenih datotečnih sustava.
Izvorno razvijen od strane Sun Microsystemsa 1984. godine, temelji se na Sun RPC: Remote Procedure Call. NFS je neovisan o tipovima datotečnog sustava poslužitelja i klijenta. Postoji mnogo implementacija NFS poslužitelja i klijenata za različite operacijske sustave. Trenutno se koristi NFS v.4, koji podržava različite alate za provjeru autentičnosti (osobito, Kerberos i LIPKEY koji koriste RPCSEC GSS protokol) i liste kontrole pristupa (i tipovi POSIX i Windows).
NFS klijentima pruža transparentan pristup datotekama i datotečnom sustavu poslužitelja. Za razliku od FTP-a, NFS pristupa samo dijelovima datoteke kojima je proces pristupio, a njegova glavna prednost je što taj pristup čini transparentnim. Zahvaljujući tome, svaka klijentska aplikacija koja može raditi s lokalnom datotekom može jednako dobro raditi i s NFS datotekom, bez promjene samog programa.
NFS klijenti pristupaju datotekama na NFS poslužitelju slanjem RPC zahtjeva poslužitelju. To 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. Detalji implementacije definirani su u RFC 1094.
NFSv2 (RFC 1094, ožujak 1989.) izvorno je u potpunosti radio preko UDP-a.
NFSv3 (RFC 1813, lipanj 1995.). Deskriptori datoteka u verziji 2 su niz fiksne veličine od 32 bajta. U verziji 3, to je niz varijabilne veličine do 64 bajta. Niz promjenjive duljine u XDR-u definiran je 4-bajtnim brojačem nakon kojeg slijede stvarni bajtovi. To smanjuje veličinu deskriptora datoteke na implementacijama kao što je UNIX, koji zahtijevaju samo oko 12 bajtova, ali omogućuje implementacijama koje nisu Unix da razmjenjuju dodatne informacije.
Verzija 2 ograničava broj bajtova po RPC-u za 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 u veličini IP datagrama (65535 bajtova). To omogućuje korištenje velikih paketa prilikom čitanja i pisanja na brzim mrežama.
Veličine datoteka i početni pomak bajta za procedure READ i WRITE počele su koristiti 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.
Upisi (WRITE) mogu biti asinkroni, dok su u verziji 2 trebali biti sinkroni.
Jedna procedura je uklonjena (STATFS) i dodano sedam: ACCESS (provjera dopuštenja datoteka), MKNOD (kreiranje posebne Unix datoteke), READDIRPLUS (vraća nazive datoteka u direktoriju zajedno s njihovim atributima), FSINFO (vraća statističke podatke o datotečni sustav ), FSSTAT (vraća podatke o dinamičkom datotečnom sustavu), PATHCONF (vraća informacije o datoteci POSIX.1) i COMMIT (prenosi prethodno napravljeno asinkrono upisivanje 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 za NFS verziju 3. To je učinilo korištenje NFS-a putem Interneta izvedivnijim.
NFSv4 (RFC 3010, prosinac 2000., RFC 3530, revidiran u travnju 2003.), pod utjecajem AFS-a i CIFS-a, uključio je poboljšanja performansi, visoku sigurnost i pojavio se kao punopravni protokol. Verzija 4 bila je prva verzija razvijena u suradnji s Internet Engineering Task Force (IETF) nakon što je Sun Microsystems prenio razvoj NFS protokola. NFS v4.1 je odobrio IESG u siječnju 2010. i dobio je RFC 5661. Važna inovacija u verziji 4.1 je pNFS specifikacija – Parallel NFS, mehanizam za paralelni NFS klijentski pristup podacima s više distribuiranih NFS poslužitelja. Prisutnost takvog mehanizma u standardu mrežnog datotečnog sustava pomoći će u izgradnji distribuiranih "oblačnih" skladišta i informacijskih sustava.

NFS struktura
NFS struktura ima tri komponente na različitim razinama:
Aplikacijski sloj (sam NFS) su pozivi udaljenih procedura (rpc) koji izvode potrebne operacije nad datotekama i direktorijima na strani poslužitelja.
Funkcije sloja prezentacije obavlja XDR (eXternal Data Representation) protokol, koji je standard za apstrakciju podataka na više platformi. Protokol XDR opisuje unificirani, kanonski oblik prikaza podataka koji ne ovisi o arhitekturi računalnog sustava. Prilikom prijenosa paketa, RPC klijent pretvara lokalne podatke u kanonski oblik, a poslužitelj radi suprotno.
Usluga Remote Procedure Call (RPC) koja omogućuje klijentu da zatraži udaljene procedure i izvrši ih na poslužitelju, funkcija je na razini sesije. Povezivanje mrežnih resursa
Postupak povezivanja mrežnog resursa pomoću NFS-a naziva se "izvoz". Klijent može zatražiti od poslužitelja popis izvezenih resursa koje predstavlja. Sam NFS poslužitelj ne emitira popis svojih izvezenih resursa.
Ovisno o navedenim opcijama, izvezeni resurs može se montirati (priložiti) "samo za čitanje", možete definirati popis hostova koji se smiju montirati, specificirati korištenje sigurnog RPC-a (secureRPC) itd. Jedna od opcija određuje način montiranja: "tvrdo" (tvrdo) ili "meko" (meko).
S "tvrdim" montiranjem, klijent će pokušati montirati datotečni sustav pod svaku cijenu. Ako poslužitelj ne radi, to će dovesti do činjenice da se cijela NFS usluga zamrzava: procesi koji pristupaju datotečnom sustavu preći će u stanje čekanja na dovršetak RPC zahtjeva. Sa stajališta korisničkih procesa, datotečni sustav će se pojaviti kao vrlo spor lokalni disk. Kada se poslužitelj vrati na mrežu, NFS usluga će nastaviti funkcionirati.
Kod mekog montiranja, NFS klijent će se nekoliko puta pokušati povezati s poslužiteljem. Ako poslužitelj ne odgovori, sustav izdaje poruku o pogrešci i prestaje pokušavati montirati. Sa stajališta logike operacija s datotekama, kada poslužitelj ne uspije, meki mount emulira kvar lokalnog diska.
Izbor načina rada ovisi o situaciji. Ako se podaci na klijentu i poslužitelju moraju sinkronizirati u slučaju privremenog prekida usluge, tada je poželjniji "tvrdi" mount. Ovaj način rada je također nezamjenjiv u slučajevima kada montirani datotečni sustavi sadrže programe i datoteke koji su od vitalnog značaja za rad klijenta, posebno za strojeve bez diska. U drugim slučajevima, posebno kada su u pitanju sustavi samo za čitanje, prikladniji je način mekog montiranja.

Dijeljenje mješovite mreže
NFS je idealan za mreže temeljene na UNIX-u jer se isporučuje 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. Čini se da je u takvim mrežama poželjnija upotreba alata za dijeljenje temeljenih na SMB / CIFS, posebice softvera Samba.

Standardi
RFC 1094 NFS: Specifikacija protokola mrežnog datotečnog sustava] (ožujak 1989.)
Specifikacija protokola RFC 1813 NFS verzije 3] (lipanj 1995.)
RFC 2224 NFS URL shema
RFC 2339 Ugovor između Internet društva, IETF-a i Sun Microsystems, Inc. u pitanju NFS V.4 protokola
RFC 2623 NFS verzija 2 i verzija 3 Sigurnosni problemi i upotreba RPCSEC_GSS i Kerberos V5 NFS protokolom
RFC 2624 NFS verzija 4 Razmatranja o dizajnu
Protokol RFC 3010 NFS verzija 4
RFC 3530 Protokol mrežnog datotečnog sustava (NFS) verzija 4
RFC 5661 Mrežni datotečni sustav (NFS) Verzija 4 Minor Verzija 1 Protokol

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

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 sigurnosno kopiranje svih podataka: ovu operaciju je nerealno izvesti za nekoliko desetaka ili stotina računala, ali je sasvim moguće - s jednog poslužitelja ili nekoliko poslužitelja.
  2. povećanje pouzdanosti pohrane podataka: nerazumno je opremiti svako računalo u mreži RAID poljem, jer je veliku većinu datoteka u računalu, poput instaliranih softverskih paketa, lakše ponovno instalirati nego ih zaštititi od kvara; ali bilo bi sasvim razumno opremiti datotečni poslužitelj hardverskim RAID-nizom ili tamo organizirati softverski RAID-niz, barem jednostavno zrcaljenje diska.
  3. Smanjeni troškovi pohrane: Skupo je i neučinkovito instalirati ogroman disk u svako računalo u slučaju da trebate pohraniti puno podataka, ali je sasvim moguće instalirati skalabilni podsustav velikog diska na poslužitelju.
  4. pružanje pristupa istim podacima s bilo kojeg računala.

Opis NFS-a

NFS usluga omogućuje poslužitelju da omogući zajednički pristup određenim direktorijima na svom lokalnom sustav datoteka a klijent treba montirati te direktorije baš kao da su klijentovi lokalni imenici.

NFS verzije

NFS, koji je razvio Sun Microsystems, bio je toliko uspješan da su implementacije implementirale razne tvrtke u gotovo svim operativnim sustavima. Postoji nekoliko fundamentalno različitih NFS implementacija. NFS 2.0 je prilično čest, iako je NFS 3.0 predstavljen u Solarisu 2.5. Naknadna izdanja Solarisa, uključujući Solaris 9, donijela su značajna poboljšanja NFS-a, ali je sam protokol ostao kompatibilan s implementacijama NFS-a 3.0 na drugim sustavima. Počevši od NFS 3.0, TCP i UDP prijenos paketa je podržan, prije je bio podržan samo UDP.

budi oprezan! Koristite istu verziju NFS klijenata i poslužitelja na mreži. NFS 2.0 se može naći na starijim sustavima kao što je HP-UX 10.0. Suradnja između sustava koji koriste različite verzije NFS-a nije poželjna.

Kompatibilnost NFS-a i ostalih usluga dijeljenog imenika

NFS je po značenju i organizaciji rada sličan zajednički imenici(dijeljene mape) u Windows sustavima, ali te usluge koriste potpuno različite operativne protokole i međusobno nisu kompatibilne. Međutim, postoji nekoliko softverskih proizvoda koji instaliraju podršku za NFS na Windows sustave, tako da korištenje NFS-a na mreži s različitim operativnim sustavima nije problem, samo ne zaboravite koristiti istu verziju NFS-a.

NFS je model klijent-poslužitelj, gdje se različiti programi izvode na klijentskim i poslužiteljskim računalima kako bi se omogućio pristup zajedničkim direktorijima na poslužitelju.

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

U slučajevima kada nekoliko UNIX računala radi na mreži i trebaju pristupiti istom poslužitelju datoteka, ima smisla koristiti mehanizam NFS (mrežni datotečni sustav).

NFS nije jako otporan na prekide mreže, zahtijeva neprekidan rad i pretpostavlja brze veze između klijenta i poslužitelja. Korištenje NFS-a za montiranje datotečnih sustava izvan lokalne mreže, na primjer, preko Interneta, tehnički je izvedivo, ali ne previše racionalno i nesigurno.

NFS terminologija

Nakon postavljanja NFS poslužitelja, UNIX računalo će vanjskim korisnicima omogućiti pristup nekim od svojih direktorija. sustav datoteka... Ovakva odredba pristupa naziva se "izvozom": kaže se da sustav izvozi svoje kataloge. Kako se točno imenici izvoze određuje popis koji je postavio administrator sustava. Na većini UNIX sustava ovaj se popis nalazi u datoteci / etc / exports, ali na Solarisu je u drugoj datoteci, / etc / dfs / dfstab.

NFS radi putem mehanizma udaljenog poziva procedure ( RPC - Poziv udaljenog postupka).

Što je RPC

RPC ideologija je vrlo jednostavna i privlačna programeru. Kako obično radi mrežna aplikacija? Prati određeni protokol (na primjer HTTP): generira paket sa zahtjevom, poziva funkciju sustava za uspostavljanje veze, zatim funkciju slanja paketa, zatim čeka paket odgovora i poziva funkciju za zatvaranje vezu. To znači da je sav rad s mrežom briga programera koji piše aplikaciju: mora se sjetiti pozivanja funkcija mrežnog API-ja sustava, razmisliti što učiniti u slučaju kvarova na mreži.

RPC pretpostavlja drugačiji način razmjene podataka između klijenta i poslužitelja. Sa stajališta programera, RPC klijentska aplikacija poziva funkciju na poslužitelju, ona izvršava i vraća rezultat. Prosljeđivanje zahtjeva za izvršavanje funkcije preko mreže i vraćanje rezultata od poslužitelja do klijenta je nevidljivo za aplikaciju, tako da se potonji ne mora brinuti o mrežnim kvarovima ili detaljima implementacije transportnog protokola.

Kako bi se osigurala transparentnost prijenosa podataka preko mreže, 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 čeka zahtjeve. Općenito govoreći, RPC može raditi s više od samo TCP ili UDP. Solaris implementira rad na temelju TI (TransportIndependent) mehanizma, pa se u Solarisu port prevoditelj naziva rpcbind, ali ne mapa portova poput Linuxa ili FreeBSD-a.

Aplikacija koja se registrira s prevoditeljem portova govori joj broj programa, broj verzije i brojeve procedura koje program može obraditi. Ove procedure će klijent naknadno pozvati na broj. Dodatno, aplikacija izvještava o brojevima TCP i UDP portova koji će se koristiti za primanje zahtjeva za izvršavanje procedura.

Klijent koji želi pozvati izvršenje procedure na poslužitelju najprije šalje zahtjev prevoditelju portova na poslužitelju da sazna na koji TCP ili UDP port treba poslati zahtjev. Prevoditelj portova počinje pri pokretanju sustava i uvijek radi na standardnom portu 111. Nakon što dobije odgovor od njega, klijent šalje zahtjev portu koji odgovara traženoj aplikaciji. Na primjer, NFS poslužitelj radi na portu 2049.

Kako montirati zajednički direktorij putem NFS-a

Prije nego što prijeđemo na opisivanje postavki za NFS poslužitelj i klijente, potrebno je razumjeti kako se u principu montiraju udaljeni datotečni sustavi.

NFS klijent šalje zahtjev za montiranje na udaljeno računalo, koje osigurava njegov sustav datoteka(obično neki njegov dio) za opću upotrebu. Kaže se da NFS poslužitelj "izvozi" ovaj ili onaj direktorij (što znači - s poddirektorijumima). Zahtjev klijenta

Dobro vrijeme, čitatelji i gosti. Bila je jako duga pauza između postova, ali opet sam u borbi). U današnjem članku ću razmotriti Rad NFS protokola, i konfiguriranje NFS poslužitelja i NFS klijenta na Linuxu.

Uvod u NFS

NFS (Mrežni datotečni sustav - mrežni datotečni sustav) po mom mišljenju - idealno rješenje u lokalnoj mreži, gdje je potrebna brza (brža od SAMBA-e i manje zahtjevna u odnosu na udaljene datotečne sustave s enkripcijom - sshfs, SFTP, itd...) razmjena podataka i nije na prednjači sigurnost prenesenih informacija. NFS protokol dopušta montirati udaljene datotečne sustave preko mreže u lokalno stablo direktorija kao da se radi o montiranom datotečnom sustavu diska. Dakle, lokalne aplikacije mogu raditi s udaljenim datotečnim sustavom kao i s lokalnim. Ali morate biti oprezni (!) S postavljanje NFS-a, jer je uz određenu konfiguraciju moguće suspendirati klijentov operativni sustav, čekajući beskonačan I/O. NFS protokol na temelju rada RPC protokol, što još ne odgovara mom razumijevanju)) pa će materijal u članku biti malo nejasan... Prije nego što možete koristiti NFS, bilo da se radi o poslužitelju ili klijentu, morate se uvjeriti da vaša kernel ima podršku za NFS datotečni sustav. Možete provjeriti podržava li kernel datotečni sustav NFS tražeći prisutnost odgovarajućih redaka u datoteci /proc / datotečni sustavi:

ARHIV ~ # grep nfs / proc / datotečni sustavi nodev nfs nodev nfs4 nodev nfsd

Ako su navedeni redovi u datoteci /proc / datotečni sustavi ne uspije, tada morate instalirati dolje opisane pakete. Ovo će najvjerojatnije instalirati ovisne module kernela koji podržavaju željene datotečne sustave. Ako se nakon instaliranja paketa podrška za NFS ne prikaže u navedenoj datoteci, tada će to biti potrebno s uključenom ovom funkcijom.

Povijest Mrežni datotečni sustav

NFS protokol razvio Sun Microsystems i ima 4 verzije u svojoj povijesti. NFSv1 razvijen je 1989. i bio je eksperimentalni, radeći na UDP protokolu. Verzija 1 je opisana u. NFSv2 objavljen je iste 1989. godine, opisan je istim RFC1094 i također se temeljio na UDP protokolu, dok vam je dopuštao čitanje ne više od 2 GB iz datoteke. NFSv3 revidiran 1995. i opisan u. Glavne inovacije treće verzije bile su podrška za velike datoteke, dodana podrška za TCP protokol i velike TCP pakete, što je značajno ubrzalo rad tehnologije. NFSv4 dovršeno 2000. i opisano u RFC 3010, revidirano 2003. i opisano u. Četvrta verzija uključivala je poboljšanja performansi, podršku za različite alate za provjeru autentičnosti (osobito, Kerberos i LIPKEY koji koriste RPCSEC GSS protokol) i popise kontrole pristupa (i tipovi POSIX i Windows). NFS v4.1 odobren od strane IESG-a 2010. i dobio je broj. Važna inovacija verzije 4.1 je specifikacija pNFS - Parallel NFS, mehanizam za paralelni pristup NFS klijenta podacima mnogih distribuiranih NFS poslužitelja. Prisutnost takvog mehanizma u standardu mrežnog datotečnog sustava pomoći će u izgradnji distribuiranih "oblačnih" skladišta i informacijskih sustava.

NFS poslužitelj

Pošto imamo NFS- ovo je mreža neophodan je datotečni sustav. (Također možete pročitati članak). Dalje je potrebno. Na Debianu je ovo paket nfs-kernel-server i nfs-zajednička, u RedHatu ovo je paket nfs-utils... Također, potrebno je omogućiti pokretanje demona na potrebnim razinama pokretanja OS-a (naredba u RedHatu je / sbin / chkconfig nfs uključen, u Debianu - /usr/sbin/update-rc.d nfs-kernel-server zadane postavke).

Instalirani paketi u Debianu izvode se sljedećim redoslijedom:

ARHIV ~ # ls -la /etc/rc2.d/ | grep nfs lrwxrwxrwx 1 korijen root 20. listopada 18. 15:02 S15nfs-common -> ../init.d/nfs-common lrwxrwxrwx 1 korijen root 27. listopada 22. 01:23 S16nfs-common -> . / nfs-kernel-server

Odnosno, prvo počinje nfs-zajednička zatim sam poslužitelj nfs-kernel-server... U RedHatu je situacija slična, s jedinom iznimkom da se zove prva skripta nfslock a poslužitelj se jednostavno zove nfs... Oko nfs-zajednička debian stranica doslovno nam govori sljedeće: uobičajene datoteke za NFS klijenta i poslužitelja, ovaj paket mora biti instaliran na stroj koji će djelovati kao NFS klijent ili poslužitelj. Paket uključuje programe: lockd, statd, showmount, nfsstat, gssd i idmapd... Pregledavanjem sadržaja skripte za pokretanje /etc/init.d/nfs-common možete pratiti sljedeći slijed rada: skripta provjerava prisutnost izvršne binarne datoteke /sbin/rpc.statd, provjerava prisutnost u datotekama / etc / default / nfs-common, / etc / fstab i / etc / izvozi parametri koji zahtijevaju pokretanje demona idmapd i gssd , pokreće demon /sbin/rpc.statd , zatim prije početka /usr/sbin/rpc.idmapd i /usr/sbin/rpc.gssd provjerava prisutnost ovih izvršnih binarnih datoteka, zatim za demon /usr/sbin/rpc.idmapd provjerava za sunrpc, nfs i nfsd, kao i podršku za datotečni sustav rpc_pipefs u kernelu (to jest, njegova prisutnost u datoteci /proc / datotečni sustavi), ako je sve uspješno, onda radi /usr/sbin/rpc.idmapd ... Dodatno, za demona /usr/sbin/rpc.gssd provjere modul kernela rpcsec_gss_krb5 i pokreće demon.

Ako pogledate sadržaj Skripta za pokretanje NFS poslužitelja na Debianu ( /etc/init.d/nfs-kernel-server), tada možete slijediti sljedeći slijed: pri pokretanju skripta provjerava postojanje datoteke / etc / izvozi, Dostupnost nfsd, dostupnost podrške NFS datotečni sustav u (odnosno u datoteci /proc / datotečni sustavi), ako je sve na svom mjestu, tada je demon pokrenut /usr/sbin/rpc.nfsd , zatim provjerava je li parametar postavljen NEED_SVCGSSD(postavljeno u datoteci postavki poslužitelja / etc / default / nfs-kernel-server) i, ako je dano, pokreće demon /usr/sbin/rpc.svcgssd , posljednji koji je pokrenuo demon /usr/sbin/rpc.mountd ... Iz ove skripte to možete vidjeti Rad NFS poslužitelja sastoji se od demoni rpc.nfsd, rpc.mountd i ako se koristi Kerberos provjera autentičnosti, tada demon rcp.svcgssd. Daemon rpc.rquotad i nfslogd još uvijek rade u crvenom šeširu (Iz nekog razloga nisam našao informacije o ovom demonu u Debianu i razloge njegove odsutnosti, očito izbrisane...).

Iz ovoga postaje jasno da poslužitelj mrežnog datotečnog sustava sastoji se od sljedećih procesa (čitaj - demoni) nalazi se u direktorijima /sbin i /usr/sbin:

U NFSv4, kada se koristi Kerberos, dodatno se pokreću demoni:

  • rpc.gssd- NFSv4 daemon pruža metode provjere autentičnosti putem GSS-API (Kerberos provjera autentičnosti). Radi na klijentu i serveru.
  • rpc.svcgssd- NFSv4 poslužiteljski demon koji pruža provjeru autentičnosti klijenta na strani poslužitelja.

portmap i RPC protokol (Sun RPC)

Uz gore navedene pakete, potreban je dodatni paket za ispravan rad NFSv2 i v3 mapa portova(u novijim distribucijama, zamijenjeno preimenovanim u rpcbind). Ovaj paket se obično automatski instalira uz NFS kao ovisni i implementira rad RPC poslužitelja, odnosno odgovoran je za dinamičku dodjelu portova za neke usluge registrirane na RPC poslužitelju. Doslovno, prema dokumentaciji, ovo je poslužitelj koji pretvara brojeve programa Remote Procedure Call (RPC) u brojeve TCP/UDP portova. portmap radi na nekoliko entiteta: RPC pozivi ili zahtjevi, TCP / UDP portovi,verzija protokola(tcp ili udp), brojevi programa i verzije softvera. Daemon portmap pokreće se skriptom /etc/init.d/portmap prije pokretanja NFS usluga.

Ukratko, posao RPC (Remote Procedure Call) poslužitelja je obrađivati ​​RPC pozive (aka RPC procedure) iz lokalnih i udaljenih procesa. Koristeći RPC pozive, usluge se registriraju ili uklanjaju u/iz mapera portova (aka port mapper, aka portmap, aka portmapper, aka rpcbind, u novijim verzijama), a klijenti koji koriste RPC pozive koji usmjeravaju zahtjeve na portmapper dobivaju informacije koje su im potrebne. Nazivi programskih usluga prilagođeni korisniku i njihovi odgovarajući brojevi definirani su u / etc / rpc. Čim usluga pošalje odgovarajući zahtjev i registrira se kod RPC poslužitelja u maper portova, RPC poslužitelj dodjeljuje TCP i UDP portove servisu na kojem je usluga pokrenuta i pohranjuje u kernel odgovarajuće informacije o pokrenuta usluga (naziv), usluga jedinstvenog broja (u skladu s / etc / rpc), o protokolu i portu na kojem je servis pokrenut te o verziji usluge, te pruža navedene podatke klijentima na zahtjev. Sam pretvarač portova ima broj programa (100000), broj verzije - 2, TCP port 111 i UDP port 111. Iznad sam, prilikom navođenja sastava demona NFS poslužitelja, naveo glavne brojeve RPC programa. Vjerojatno sam vas malo zbunio ovim paragrafom, pa ću reći glavnu frazu, koja bi trebala pojasniti: glavna funkcija mapera porta je vratiti njemu (klijentu) port na kojem se izvodi traženi program. Sukladno tome, ako klijent treba pristupiti RPC-u s određenim programskim brojem, prvo mora kontaktirati proces mape portova na poslužiteljskom stroju i odrediti broj porta za komunikaciju s RPC uslugom koja mu je potrebna.

Rad RPC poslužitelja može se predstaviti sljedećim koracima:

  1. Pretvarač portova mora se prvo pokrenuti, obično pri pokretanju sustava. Ovo stvara TCP krajnju točku i otvara TCP port 111. Također stvara UDP krajnju točku koja čeka da UDP datagram stigne na UDP port 111.
  2. Prilikom pokretanja, program koji radi preko RPC poslužitelja stvara TCP krajnju točku i UDP krajnju točku za svaku podržanu verziju programa. (RPC poslužitelj može podržavati više verzija. Klijent specificira potrebnu verziju kada upućuje RPC poziv.) Dinamički dodijeljeni broj porta dodjeljuje se svakoj verziji usluge. Poslužitelj registrira svaki program, verziju, protokol i broj porta odgovarajućim RPC pozivom.
  3. Kada RPC klijentski program treba informacije koje su mu potrebne, on poziva rutinu mapiranja porta da dobije dinamički dodijeljeni broj porta za dati program, verziju i protokol.
  4. Kao odgovor na ovaj zahtjev, sjever vraća broj porta.
  5. Klijent šalje poruku RPC zahtjeva na broj porta dobiven u koraku 4. Ako se koristi UDP, klijent jednostavno šalje UDP datagram koji sadrži poruku o RPC pozivu na broj UDP porta na kojem se izvodi tražena usluga. Kao odgovor, usluga šalje UDP datagram koji sadrži poruku RPC odgovora. Ako je TCP u upotrebi, klijent aktivno otvara broj TCP porta tražene usluge i zatim šalje poruku RPC poziva preko uspostavljene veze. Poslužitelj odgovara porukom RPC odgovora preko veze.

Za dobivanje informacija s RPC poslužitelja, koristite uslužni program rpcinfo... Prilikom određivanja parametara -p domaćin program navodi sve registrirane RPC programe na hostu. Bez navođenja hosta, program će prikazati usluge na lokalnom hostu. Primjer:

Archiv-# -p rpcinfo Prog-ma verzija proto luka 100000 2 TCP 111 portmapper 100000 2 UDP 111 portmapper 100.024 1 UDP 59.451 100.024 status 1 TCP 60.872 100.021 status 1 UDP 44,31 tisuća nlockmgr 100.021 3 UDP 44,31 tisuća nlockmgr 100.021 4 UDP 44,31 tisuća nlock 44.851 100.021 nlockmgr 3 TCP 44.851 100.021 nlockmgr 4 TCP 44.851 100.003 nlockmgr 2 TCP 2049 100003 NFS 3 TCP 2049 NFS 100.003 4 TCP 2049 100003 NFS 2 UDP 2049 100003 NFS 3 UDP 2049 100003 NFS 4 ud5 TCP 2049. NFS 1000030 1 montirati 41.405 mountd 100005 2 UDP 51306 montiran 100005 2 tcp 41405 montiran 100005 3 udp 51306 montiran 100005 3 tcp 41405 montiran

Kao što možete vidjeti, rpcinfo prikazuje (u stupcima s lijeva na desno) registrirani broj programa, verziju, protokol, port i naziv. Možete koristiti rpcinfo za uklanjanje registracije programa ili za dobivanje informacija o pojedinačnoj RPC usluzi (pogledajte man rpcinfo za više opcija). Kao što vidite, portmapper verzija 2 demoni su registrirani na udp i tcp portovima, rpc.statd verzija 1 na udp i tcp portovima, NFS lock manager verzije 1,3,4, nfs server daemon 2,3,4, kao i mount daemon verzije 1,2,3.

NFS poslužitelj (točnije, rpc.nfsd demon) prima zahtjeve od klijenta u obliku UDP datagrama na portu 2049. Iako NFS radi s maperom portova, koji poslužitelju omogućuje korištenje dinamički dodijeljenih portova, UDP port 2049 je tvrdo kodirano na NFS u većini implementacija...

Rad protokola mrežnog datotečnog sustava

Montirajte udaljeni NFS

Proces montiranja udaljenog NFS datotečnog sustava može se prikazati sljedećim dijagramom:

Opis NFS protokola prilikom montiranja udaljenog direktorija:

  1. RPC poslužitelj se pokreće na poslužitelju i klijentu (obično pri pokretanju), servisira proces portmapper i registrira se na tcp / 111 i udp / 111 portovima.
  2. Pokreću se servisi (rpc.nfsd, rpc.statd, itd.), koji su registrirani na RPC poslužitelju i registrirani na proizvoljnim mrežnim portovima (osim ako je statički port naveden u postavkama usluge).
  3. naredba mount na klijentskom računalu šalje zahtjev kernelu da montira mrežni direktorij s naznakom tipa datotečnog sustava, hosta i samog direktorija, kernel šalje RPC zahtjev procesu portmap na NFS poslužitelju na udp / 111 port (ako klijent nema mogućnost rada preko tcp-a)
  4. Kernel NFS poslužitelja ispituje RPC za prisutnost demona rpc.mountd i vraća mrežni port na kojem demon radi u jezgru klijenta.
  5. mount šalje RPC zahtjev portu na kojem je pokrenut rpc.mountd. Sada NFS poslužitelj može provjeriti valjanost klijenta na temelju njegove IP adrese i broja porta kako bi vidio može li klijent montirati navedeni datotečni sustav.
  6. Daemon mount vraća opis traženog datotečnog sustava.
  7. Naredba za montiranje klijenta izdaje sistemski poziv mount za vezanje deskriptora datoteke dobivenog u koraku 5 na lokalnu točku montiranja na klijentskom hostu. Deskriptor datoteke pohranjen je u NFS klijentskom kodu i od ove točke nadalje, svaki pristup korisničkih procesa datotekama na datotečnom sustavu poslužitelja koristit će deskriptor datoteke kao početnu točku.

Komunikacija između klijenta i NFS poslužitelja

Uobičajeni pristup udaljenom datotečnom sustavu može se opisati na sljedeći način:

Opis procesa pristupa datoteci koja se nalazi na NFS poslužitelju:

  1. Klijenta (korisničkog procesa) nije briga hoće li dobiti pristup lokalnoj datoteci ili NFS datoteci. Kernel se bavi interakcijom s hardverom kroz module kernela ili ugrađene sistemske pozive.
  2. Modul kernela kernel / fs / nfs / nfs.ko, koji djeluje kao NFS klijent i šalje RPC zahtjeve NFS poslužitelju preko TCP/IP modula. NFS obično koristi UDP, no novije implementacije mogu koristiti TCP.
  3. NFS poslužitelj prima zahtjeve od klijenta kao UDP datagrame na portu 2049. Iako NFS može raditi s maperom portova, koji poslužitelju omogućuje korištenje dinamički dodijeljenih portova, UDP port 2049 je tvrdo kodiran za NFS u većini implementacija.
  4. Kada NFS poslužitelj primi zahtjev od klijenta, on se prosljeđuje lokalnoj rutini za pristup datoteci, koja omogućuje pristup lokalnom disku na poslužitelju.
  5. Rezultat pristupa disku se vraća klijentu.

Postavljanje NFS poslužitelja

Podešavanje poslužitelja općenito se sastoji od specificiranja lokalnih direktorija koje udaljeni sustavi smiju montirati u datoteci / etc / izvozi... Ova radnja se zove izvoz hijerarhije direktorija... Glavni izvori informacija o izvezenim imenicima su sljedeće datoteke:

  • / etc / izvozi- glavna konfiguracijska datoteka koja pohranjuje konfiguraciju izvezenih direktorija. Koristi se prilikom pokretanja NFS-a i uslužnog programa exportfs.
  • / var / lib / nfs / xtab- sadrži popis direktorija montiranih od strane udaljenih klijenata. Koristi ga demon rpc.mountd kada klijent pokuša montirati hijerarhiju (kreira se zapis o montiranju).
  • / var / lib / nfs / etab- popis direktorija koje mogu montirati udaljeni sustavi, s naznakom svih parametara izvezenih direktorija.
  • / var / lib / nfs / rmtab- popis imenika koji se trenutno ne izvoze.
  • / proc / fs / nfsd- poseban datotečni sustav (kernel 2.6) za upravljanje NFS poslužiteljem.
    • izvoza- popis aktivnih izvezenih hijerarhija i klijenata kojima su izvezene, kao i parametre. Kernel dobiva ove informacije iz / var / lib / nfs / xtab.
    • niti- sadrži broj niti (također se može promijeniti)
    • pomoću filehandle-a možete dobiti pokazivač datoteke
    • i tako dalje...
  • / proc / net / rpc- sadrži neobrađene statistike koje se mogu dobiti pomoću nfsstata, kao i razne predmemorije.
  • / var / run / portmap_mapping- informacije o registriranim u RPC uslugama

Bilješka: općenito, na internetu ima puno tumačenja i formulacije namjene xtab, etab, rmtab datoteka, ne znam kome vjerovati. Čak i na http://nfs.sourceforge.net/ tumačenje nije jednoznačno.

Konfiguriranje / etc / datoteke za izvoz

U najjednostavnijem slučaju, datoteka / etc / exports jedina je datoteka koju treba urediti za konfiguriranje NFS poslužitelja. Ova datoteka kontrolira sljedeće aspekte:

  • Kakvi klijenti može pristupiti datotekama na poslužitelju
  • Koje hijerarhije direktoriji na poslužitelju mogu pristupiti svakom klijentu
  • Kako će biti prilagođena imena kupaca biti prikazani na lokalna korisnička imena

Svaki redak u datoteci za izvoz ima sljedeći format:

export_point klijent1 (opcije) [client2 (opcije) ...]

Gdje izvozna_točka apsolutni put izvezene hijerarhije direktorija, klijent1 - n naziv jednog ili više klijenata ili IP adresa, odvojenih razmacima, koje je dopušteno montirati izvozna_točka . Mogućnosti opišite pravila montiranja za klijent prije navedeno opcije .

Ovdje je tipično primjer konfiguracije datoteke za izvoz:

ARCHIV ~ # cat / etc / exports / archiv1 datoteke (rw, sync) 10.0.0.1 (ro, sync) 10.0.230.1/24 (ro, sync)

U ovom primjeru datotekama računala i 10.0.0.1 dopušten je pristup točki izvoza / archiv1, dok se datoteke hosta mogu čitati / pisati, a za host 10.0.0.1 i podmrežu 10.0.230.1/24 pristup samo za čitanje.

Opisi hosta u / etc / izvozi su dopušteni u sljedećem formatu:

  • Imena pojedinačnih čvorova opisana su kao datoteke ili datoteke.DOMAIN.local.
  • Maske domene opisane su u sljedećem formatu: * DOMAIN.local uključuje sve čvorove u domeni DOMAIN.local.
  • Podmreže su navedene kao parovi IP adresa/maska. Na primjer: 10.0.0.0/255.255.255.0 uključuje sve čvorove čije adrese počinju s 10.0.0.
  • Postavljanje naziva mrežne grupe @myclients koja ima pristup resursu (kada se koristi NIS poslužitelj)

Opće opcije izvoza za hijerarhije imenika

Datoteka za izvoz koristi sljedeće općenite opcije(opcije koje se prema zadanim postavkama koriste u većini sustava navedene su prve, u zagradama - ne prema zadanim postavkama):

  • auth_nlm (ne_auth_nlm) ili secure_locks (nesigurne_locks)- specificira da poslužitelj treba zahtijevati provjeru autentičnosti zahtjeva za zaključavanje (koristeći NFS Lock Manager protokol).
  • ne sakriti (sakriti)- ako poslužitelj izvozi dvije hijerarhije direktorija, s jednom ugniježđenom (montiranom) u drugu. Klijent treba eksplicitno montirati drugu (podređenu) hijerarhiju, inače će se točka montiranja podređene hijerarhije pojaviti kao prazan direktorij. Opcija nohide rezultira drugom hijerarhijom direktorija bez eksplicitnog montiranja. ( Bilješka: Nisam mogao natjerati ovu opciju da radi...)
  • ro (rw)- Omogućuje samo zahtjeve za čitanje (pisanje). (U konačnici, je li moguće čitati/pisati ili ne, određuje se na temelju dopuštenja datotečnog sustava, dok poslužitelj ne može razlikovati zahtjev za čitanje datoteke od zahtjeva za izvršenje, pa dopušta čitanje ako je korisnik pročitao ili izvršio dopuštenja.)
  • siguran (nesiguran)- zahtijeva da NFS zahtjevi dolaze sa sigurnih portova (< 1024), чтобы программа без прав root не могла монтировать иерархию каталогов.
  • provjera_podstabla (bez_provjere_podstabla)- Ako se izvozi poddirektorij datotečnog sustava, ali ne i cijeli datotečni sustav, poslužitelj provjerava nalazi li se tražena datoteka u izvezenom poddirektoriju. Onemogućavanje provjere smanjuje sigurnost, ali povećava brzinu prijenosa podataka.
  • sinkronizacija (asinkronizacija)- označava da poslužitelj treba odgovoriti na zahtjeve tek nakon što se promjene koje su ti zahtjevi zapisali na disk. Opcija async govori poslužitelju da ne čeka da se informacije zapišu na disk, što poboljšava performanse, ali smanjuje pouzdanost, jer gubitak informacija moguć je u slučaju prekida veze ili kvara opreme.
  • wdelay (ne_wdelay)- Govori poslužitelju da odgodi izvršenje zahtjeva za pisanje ako je sljedeći zahtjev za pisanje na čekanju, zapisivanje podataka u veće blokove. To poboljšava performanse pri slanju velikih redova za pisanje. no_wdelay označava da se ne odgađa izvršenje naredbe za pisanje, što može biti korisno ako poslužitelj primi veliki broj naredbi koje nisu međusobno povezane.

Izvoz simboličkih veza i datoteka uređaja. Prilikom izvoza hijerarhije direktorija koji sadrže simboličke veze, objekt veze mora biti dostupan klijentskom (udaljenom) sustavu, odnosno mora biti zadovoljeno jedno od sljedećih pravila:

Datoteka uređaja odnosi se na sučelje. Kada izvezete datoteku uređaja, izvozi se ovo sučelje. Ako klijentski sustav nema uređaj iste vrste, tada izvezeni uređaj neće raditi. Na klijentskom sustavu, kada montirate NFS objekte, možete koristiti opciju nodev tako da se datoteke uređaja u montiranim direktorijima ne koriste.

Zadane opcije mogu se razlikovati od sustava do sustava, mogu se vidjeti u datoteci / var / lib / nfs / etab. Nakon opisa izvezenog direktorija u / etc / exports i ponovnog pokretanja NFS poslužitelja, sve opcije koje nedostaju (čitaj: zadane opcije) odrazit će se u / var / lib / nfs / etab datoteci.

Opcije prikaza (podudaranja) korisničkog ID-a

Za bolje razumijevanje sljedećeg, savjetujem vam da pročitate članak. Svaki korisnik Linuxa ima svoj UID i glavni GID, koji su opisani u datotekama / etc / passwd i / itd / grupa... NFS poslužitelj pretpostavlja da je operativni sustav udaljenog hosta autentifikovao korisnike i dodijelio im ispravne UID-ove i GID-ove. Izvoz datoteka daje korisnicima na klijentskom sustavu isti pristup tim datotekama kao da se prijavljuju izravno na poslužitelj. Sukladno tome, kada NFS klijent pošalje zahtjev poslužitelju, poslužitelj koristi UID i GID za identifikaciju korisnika na lokalnom sustavu, što može dovesti do nekih problema:

  • korisnik možda neće imati iste identifikatore u oba sustava i, sukladno tome, može pristupiti datotekama drugog korisnika.
  • od Ako korijenski korisnik ima identifikator uvijek 0, tada se ovaj korisnik preslikava na lokalnog korisnika ovisno o navedenim opcijama.

Sljedeće opcije definiraju pravila za mapiranje udaljenih korisnika na lokalne:

  • root_squash (ne_root_squash)- Uz zadanu opciju root_squash, zahtjevi od root korisnika se mapiraju na anonimni uid / gid ili na korisnika navedenog u parametru anonuid / anongid.
  • ne_all_squash (sve_squash)- Ne mijenja UID / GID korisnika koji se povezuje. Opcija sve_tikva postavlja SVE korisnike (ne samo root) da budu prikazani kao anonimni ili navedeni u parametru anonuid / anongid.
  • anonuid = UID i anongid = GID - Eksplicitno postavlja UID/GID za anonimnog korisnika.
  • map_static = / etc / file_maps_users - Određuje datoteku u kojoj možete postaviti mapiranje udaljenog UID-a / GID-a - lokalnog UID-a / GID-a.

Primjer korištenja datoteke mapiranja korisnika:

ARCHIV ~ # cat / etc / file_maps_users # Mapiranje korisnika # udaljeni lokalni komentar uid 0-50 1002 # mapiranje korisnika na udaljeni UID 0-50 na lokalni UID 1002 gid 0-50 1002 # mapiranje korisnika na / span udaljeni GID 0-50 do lokalni GID 1002

Upravljanje NFS poslužiteljem

NFS poslužiteljem upravlja se pomoću sljedećih uslužnih programa:

  • nfsstat
  • showmsecure (nesigurna) točka

nfsstat: NFS i RPC statistika

Pomoćni program nfsstat omogućuje vam pregled statistike RPC i NFS poslužitelja. Opcije naredbi mogu se vidjeti u man nfsstat.

showmount: prikaz informacija o statusu NFS-a

Uslužni program Showmount pita demon rpc.mountd na udaljenom hostu za montirane datotečne sustave. Prema zadanim postavkama, vraća se sortirani popis klijenata. ključevi:

  • --svi- prikazuje se popis klijenata i točaka montiranja, koji pokazuje gdje je klijent montirao direktorij. Ove informacije možda nisu pouzdane.
  • -- imenici- dat je popis točaka montiranja
  • --izvoz- daje popis izvezenih datotečnih sustava sa stajališta nfsd-a

Ako pokrenete showmount bez argumenata, konzola će prikazati informacije o sustavima kojima je dopušteno montiranje lokalni imenike. Na primjer, ARCHIV host nam daje popis izvezenih direktorija s IP adresama hostova kojima je dopušteno montirati navedene direktorije:

FILES ~ # showmount --exports archiv Izvoz popisa za arhivu: / archiv-big 10.0.0.2 / archiv-small 10.0.0.2

Ako u argumentu navedete ime hosta/IP, prikazat će se informacije o ovom hostu:

ARCHIV ~ # showmount datoteke clnt_create: RPC: Program nije registriran # ova poruka nam govori da NFSd demon ne radi na FILES hostu

exportfs: upravljanje izvezenim imenicima

Ova naredba poslužuje izvezene direktorije navedene u datoteci / etc / izvozi, bit će točnije pisati ne služi, već se sinkronizira s datotekom / var / lib / nfs / xtab i uklanja nepostojeće iz xtaba. exportfs se izvršava kada se nfsd demon pokrene s argumentom -r. Eksportfs uslužni program u načinu kernela 2.6 komunicira s demonom rpc.mountd preko datoteka u direktoriju / var / lib / nfs / i ne komunicira izravno s kernelom. Bez parametara, navodi trenutno izvezene datotečne sustave.

Exportfs opcije:

  • [client: directory-name] - dodajte ili uklonite navedeni datotečni sustav za navedenog klijenta)
  • -v - prikaz više informacija
  • -r - ponovni izvoz svih direktorija (sinkronizacija / itd. / izvozi i / var / lib / nfs / xtab)
  • -u - ukloniti s popisa izvezenih
  • -a - dodati ili ukloniti sve datotečne sustave
  • -o - opcije odvojene zarezima (slično opcijama korištenim u / etc / izvozima; tako da možete promijeniti opcije za već montirane datotečne sustave)
  • -i - ne koristi / etc / izvoze prilikom dodavanja, samo parametre trenutnog retka za naredbe
  • -f - resetirajte popis izvezenih sustava u kernelu 2.6;

NFS klijent

Prije pristupa datoteci na udaljenom datotečnom sustavu, klijent (klijent OS) mora montiraj ga i dobiti s poslužitelja pokazivač na to. Montaža NFS-a može se napraviti sa ili uz pomoć jednog od plodnih automatskih asemblera (amd, autofs, automount, supermount, superpupermount). Proces montaže dobro je prikazan na gornjoj ilustraciji.

Na NFS klijenti ne treba pokretati demone, funkcije klijenta izvršava modul kernela kernel / fs / nfs / nfs.ko koji se koristi prilikom montiranja udaljenog datotečnog sustava. Izvezeni direktoriji s poslužitelja mogu se montirati na klijenta na sljedeće načine:

  • ručno pomoću naredbe mount
  • automatski pri pokretanju, prilikom montiranja datotečnih sustava opisanih u / etc / fstab
  • automatski koristeći autofs demon

U ovom članku neću razmatrati treću metodu s autofs-om, zbog obimnih informacija. Možda će u sljedećim člancima biti poseban opis.

Montirajte sustav mrežnih datoteka pomoću naredbe mount

Primjer korištenja naredbe mount predstavljen je u postu. Evo primjera naredbe mount za montiranje NFS datotečnog sustava:

FILES ~ # mount -t nfs archiv: / archiv-small / archivs / archiv-small FILES ~ # mount -t nfs -o ro archiv: / archiv-big / archivs / archiv-big FILES ~ # mount ..... .. archiv: / archiv-small on / archivs / archiv-small type nfs (rw, addr = 10.0.0.6) archiv: / archiv-big on / archivs / archiv-big type nfs (ro, addr = 10.0.0.6)

Prva naredba montira izvezeni direktorij / arhiv-mali na serveru arhiv do lokalne točke montiranja / archivs / archiv-small sa zadanim opcijama (tj. čitanje i pisanje). Iako naredba mount u najnovijim distribucijama, zna kako razumjeti koja se vrsta datotečnog sustava koristi bez navođenja vrste, ipak navedite parametar -t nfs poželjno. Druga naredba montira izvezeni direktorij / arhiv-big na serveru arhiv u lokalni imenik / archivs / archiv-big s opcijom samo za čitanje ( ro). Naredba za montiranje bez parametara, jasno nam prikazuje rezultat montiranja. Osim opcije samo za čitanje (ro), moguće je navesti i druge osnovne opcije pri montaži NFS-a:

  • nosuid- Ova opcija zabranjuje izvršavanje programa iz montiranog direktorija.
  • nodev(bez uređaja - nije uređaj) - Ova opcija zabranjuje korištenje znakova i blokira posebne datoteke kao uređaje.
  • zaključati (nolock)- Omogućuje NFS zaključavanje (zadano). nolock onemogućuje NFS zaključavanje (ne pokreće lockd demon) i koristan je za starije poslužitelje koji ne podržavaju NFS zaključavanje.
  • mounthost = ime- Ime hosta na kojem je pokrenut NFS demon za montiranje - mountd.
  • mountport = n - Port koji koristi demon mountd.
  • luka = ​​n- port koji se koristi za povezivanje s NFS poslužiteljem (prema zadanim postavkama 2049 ako demon rpc.nfsd nije registriran na RPC poslužitelju). Ako je n = 0 (zadano), tada će NFS upitati mapu portova na poslužitelju kako bi odredio port.
  • veličina = n(veličina bloka čitanja) - broj bajtova čitanih u jednom trenutku s NFS poslužitelja. Standard - 4096.
  • veličina = n(veličina bloka pisanja) - broj bajtova koji su upisani u jednom trenutku na NFS poslužitelj. Standard - 4096.
  • tcp ili udp- Za montiranje NFS-a koristite TCP ili UDP protokol.
  • bg- Ako izgubite pristup poslužitelju, pokušajte ponovno u pozadini kako ne biste blokirali proces pokretanja sustava.
  • fg- Ako izgubite pristup poslužitelju, pokušajte ponovo u načinu prioriteta. Ova opcija može blokirati proces pokretanja ponavljanjem pokušaja montiranja. Zbog toga se parametar fg prvenstveno koristi u svrhu otklanjanja pogrešaka.

Opcije koje utječu na predmemoriranje atributa kada se NFS montira

Atributi datoteke pohranjeni u (inode), kao što su vrijeme izmjene, veličina, čvrste veze, vlasnik, obično se rijetko mijenjaju za obične datoteke, a još rjeđe za direktorije. Mnogi programi, kao što je ls, pristupaju datotekama samo za čitanje i ne mijenjaju atribute datoteke ili sadržaj, ali troše resurse sustava na skupe mrežne operacije. Kako biste izbjegli nepotrebno trošenje resursa, možete cache dane atribute... Kernel koristi vrijeme izmjene datoteke da odredi je li predmemorija zastarjela uspoređujući vrijeme izmjene u predmemoriji s vremenom izmjene same datoteke. Predmemorija atributa se povremeno ažurira prema navedenim parametrima:

  • ac (noac) (attrebute cache- atribut caching) - Omogućuje predmemoriju atributa (zadano). Iako opcija noac usporava poslužitelj, ona izbjegava istek atributa kada više klijenata aktivno zapisuje informacije u dijeljenu hijerarhiju.
  • acdirmax = n (atribut predmemorije direktorij datoteka maksimalno- maksimum predmemorije atributa za datoteku direktorija) - Maksimalni broj sekundi koji NFS čeka prije ažuriranja atributa direktorija (zadano 60 sekundi)
  • acdirmin = n (atribut predmemorije direktorij datoteka minimalno- predmemoriranje atributa barem za datoteku direktorija) - minimalni broj sekundi koji NFS čeka prije ažuriranja atributa direktorija (prema zadanim postavkama 30 sekundi)
  • acregmax = n (atribut cache obična datoteka maksimalno- maksimum predmemorije atributa za običnu datoteku) - Maksimalni broj sekundi koji NFS čeka prije ažuriranja atributa obične datoteke (zadano 60 sek.)
  • acregmin = n (predmemorija atributa redovna datoteka minimum- predmemoriranje atributa barem za običnu datoteku) - minimalni broj sekundi koje NFS čeka prije ažuriranja atributa obične datoteke (3 sekunde prema zadanim postavkama)
  • actimeo = n (vremensko ograničenje predmemorije atributa- vremensko ograničenje predmemorije atributa) - Poništava vrijednosti za sve gore navedene opcije. Ako acttimeo nije naveden, tada se gornje vrijednosti postavljaju na svoje zadane vrijednosti.

NFS opcije rukovanja pogreškama

Sljedeće opcije kontroliraju kako se NFS ponaša kada nema odgovora od poslužitelja ili kada se pojave I/O greške:

  • fg (bg) (prvi plan- prvi plan, pozadini- pozadina) - Pokušajte montirati neuspjeli NFS u prvi plan/pozadinu.
  • tvrdo (meko)- prikazuje poruku "poslužitelj ne reagira" na konzoli kada se istekne vremensko ograničenje i nastavlja s pokušajima montiranja. Uz zadanu opciju mekana- ako dođe do isteka vremena, obavještava program koji je pozvao operaciju o I/O pogrešci. (mekana opcija se ne preporučuje za korištenje)
  • nointr (intr) (bez prekida- ne prekidaj) - Sprječava signale da prekidaju operacije datoteka u tvrdo montiranoj hijerarhiji direktorija kada se dosegne dugo vremensko ograničenje. intr- omogućuje prekid.
  • retrans = n (vrijednost retransmisije- vrijednost ponovnog prijenosa) - Nakon n malih timeouta, NFS generira veliko vremensko ograničenje (3 prema zadanim postavkama). Dugi vremenski okvir zaustavlja operacije ili prikazuje poruku "poslužitelj ne odgovara" na konzoli, ovisno o specificiranoj opciji hard/soft.
  • ponoviti = n (vrijednost ponovnog pokušaja- vrijednost ponovnog pokušaja) - broj minuta u kojima NFS servis pokušava ponovno montirati operacije prije nego što odustane (10.000 prema zadanim postavkama).
  • timeo = n (vrijednost isteka vremena- timeout value) - Broj desetinki sekunde koje NFS usluga čeka prije ponovnog prijenosa u slučaju RPC-a ili kratkog vremenskog ograničenja (zadano 7). Ova vrijednost raste sa svakim timeoutom, do maksimalno 60 sekundi, ili dok ne nastupi dugo vrijeme. Na zauzetoj mreži, sporom poslužitelju ili kada zahtjev prolazi kroz više usmjerivača ili pristupnika, povećanje ove vrijednosti može poboljšati performanse.

Automatsko NFS montiranje pri pokretanju (opis datotečnih sustava u / etc / fstab)

Da biste pronašli optimalni timeo za određenu vrijednost prenesenog paketa (vrijednosti rsize / wsize), koristite naredbu ping:

FILES ~ # ping -s 32768 archiv PING archiv.DOMAIN.local (10.0.0.6) 32768 (32796) bajtova podataka. 32776 bajtova iz archiv.domain.local (10.0.0.6): icmp_req = 1 ttl = 64 vrijeme = 0,931 ms 32776 bajtova iz archiv.domain.local (10.0.0.6): icmp_req = 2 ttl = 64 puta = 0,931 ms. iz archiv.domain.local (10.0.0.6): icmp_req = 3 ttl = 64 vrijeme = 1,03 ms 32776 bajtova iz archiv.domain.local (10.0.0.6): icmp_req = 4 ttl = 64 vrijeme = 64 arch ms 3 od 1.07 .domain.local (10.0.0.6): icmp_req = 5 ttl = 64 vrijeme = 1,08 ms ^ C --- archiv.DOMAIN.local ping statistika --- 5 paketa preneseno, 5 primljeno, 0% gubitka paketa, vrijeme 4006ms rtt min / avg / max / mdev = 0,931 / 1,002 / 1,083 / 0,061 ms

Kao što možete vidjeti, kada se šalje paket veličine 32768 (32Kb), njegovo vrijeme putovanja od klijenta do poslužitelja i natrag pluta u području od 1 milisekundi. Ako ovo vrijeme pređe skalu za 200 ms, onda biste trebali razmisliti o povećanju vrijednosti timeo-a tako da premaši vrijednost razmjene za tri do četiri puta. U skladu s tim, preporučljivo je napraviti ovaj test tijekom jakog mrežnog opterećenja.

Pokretanje NFS-a i konfiguriranje vatrozida

Bilješka je kopirana s bloga http://bog.pp.ru/work/NFS.html, na čemu mu veliko hvala !!!

Pokrenite NFS poslužitelj, montirajte, zaključajte, kvotu i status s "ispravnim" portovima (za vatrozid)

  • preporučljivo je prvo demontirati sve resurse na klijentima
  • zaustavite i zabranite pokretanje rpcidmapd ako ne planirate koristiti NFSv4: chkconfig --level 345 rpcidmapd off service rpcidmapd stop
  • ako je potrebno, omogućite početak usluga portmap, nfs i nfslock: chkconfig --levels 345 portmap / rpcbind na chkconfig --levels 345 nfs na chkconfig --levels 345 nfslock na
  • ako je potrebno, zaustavite nfslock i nfs usluge, pokrenite portmap / rpcbind, učitajte module servis nfslock stop service nfs stop service portmap start # service rpcbind start umount / proc / fs / nfsd servis rpcidmapd zaustavi rmmod nfsd servis autofs kasnije mora stati # pokrenite rmmod nfs rmmod nfs_acl rmmod lockd
  • otvorite portove u
    • za RPC: UDP / 111, TCP / 111
    • za NFS: UDP / 2049, TCP / 2049
    • za rpc.statd: UDP / 4000, TCP / 4000
    • za zaključan: UDP / 4001, TCP / 4001
    • za montiranje: UDP / 4002, TCP / 4002
    • za rpc.rquota: UDP / 4003, TCP / 4003
  • za rpc.nfsd poslužitelj dodajte redak RPCNFSDARGS = "- port 2049" u / etc / sysconfig / nfs
  • za mount server dodajte redak MOUNTD_PORT = 4002 u / etc / sysconfig / nfs
  • da konfigurirate rpc.rquota za nove verzije, dodajte redak RQUOTAD_PORT = 4003 u / etc / sysconfig / nfs
  • za konfiguraciju rpc.rquota potrebno je za starije verzije (ipak, morate imati kvotu 3.08 ili noviji paket) dodati rquotad 4003 / tcp rquotad 4003 / udp u / etc / usluge
  • će provjeriti adekvatnost / etc / izvoza
  • pokrenite servise rpc.nfsd, mountd i rpc.rquota (istovremeno se pokreću rpcsvcgssd i rpc.idmapd, ako ih niste zaboravili ukloniti) servis nfsd start ili u novim verzijama servis nfs start
  • za poslužitelj zaključavanja za nove sustave dodajte linije LOCKD_TCPPORT = 4001 LOCKD_UDPPORT = 4001 u / etc / sysconfig / nfs
  • za poslužitelj zaključavanja za naslijeđene sustave dodajte izravno u /etc/modprobe [.conf]: opcije lockd nlm_udpport = 4001 nlm_tcpport = 4001
  • povežite statusni poslužitelj rpc.statd na port 4000 (za stare sustave pokrenite rpc.statd s prekidačem -p 4000 u /etc/init.d/nfslock) STATD_PORT = 4000
  • start services lockd i rpc.statd service nfslock start
  • provjerite jesu li svi portovi ispravno povezani s "lsof -i -n -P" i "netstat -a -n" (neke od portova koriste moduli kernela koje lsof ne vidi)
  • ako su prije "ponovne izgradnje" poslužitelj koristili klijenti i nisu se mogli demontirati, tada ćete morati ponovno pokrenuti usluge automatskog montiranja na klijentima (am-utils, autofs)

Primjer konfiguracije NFS poslužitelja i klijenta

Konfiguracija poslužitelja

Ako želite svoj NFS particionirani direktorij učiniti otvorenim i pisati, možete koristiti opciju sve_tikva u kombinaciji s opcijama anonuidni i anongidni... Na primjer, da biste postavili prava za korisnika "nobody" u grupi "nobody", možete učiniti sljedeće:

ARCHIV ~ # cat / etc / exports # Pristup za čitanje / pisanje za klijenta na 192.168.0.100, s pristupom rw za korisnika 99 s gid 99 / datoteke 192.168.0.100 (rw, sync, all_squash, anonuid = 99, anongid) = 99) # Pristup za čitanje / pisanje za klijenta na 192.168.0.100, s pristupom rw za korisnika 99 s gid 99 / datoteke 192.168.0.100 (rw, sinkronizacija, all_squash, anonuid = 99, anongid = 99))

To također znači da ako želite dopustiti pristup navedenom direktoriju, nobody.nobody mora biti vlasnik podijeljenog direktorija:

čovjek mount
čovjek izvozi
http://publib.boulder.ibm.com/infocenter/pseries/v5r3/index.jsp?topic=/com.ibm.aix.prftungd/doc/prftungd/nfs_perf.htm - NFS performanse od IBM-a.

Pozdrav, Mc.Sim!

Vrhunski povezani članci