Kako podesiti pametne telefone i računare. Informativni portal
  • Dom
  • U kontaktu sa
  • Instaliranje i konfigurisanje NFS servera i NFS klijenta. Testiranje ponašanja NFS instalacije

Instaliranje i konfigurisanje NFS servera i NFS klijenta. Testiranje ponašanja NFS instalacije

Evo, šta je sljedeće? Kako da gledam filmove i slušam preuzete muzičke fajlove? Da li ih zaista trebate srezati na diskove i na ovaj način prenijeti na računar sa GUI? Ili ćete ih morati kopirati preko sporog SFTP-a? Ne! NFS dolazi u pomoć! Ne, ovo nije serija trkačkih igara, već mrežni sistem datoteka.
Mrežni sistem datoteka (NFS) je mrežni sistem datoteka koji korisnicima omogućava pristup datotekama i direktorijima koji se nalaze na udaljenim računarima kao da su datoteke i direktoriji lokalni. Glavna prednost ovakvog sistema je što pojedinačne radne stanice mogu koristiti manje vlastitog prostora na disku, budući da se zajednički podaci pohranjuju na posebnoj mašini i dostupni su drugim mašinama na mreži. NFS je klijent/server aplikacija. Odnosno, NFS klijent mora biti instaliran na korisnikovom sistemu, a NFS server na računarima koji im obezbjeđuju prostor na disku.

Instaliranje i konfigurisanje NFS servera (192.168.1.2)

1. Instalirajte. Nakon povezivanja preko SSH-a na računar preko servera, ili jednostavno u njegovoj konzoli, unesite:

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

Ovo će instalirati NFS server kao i potreban paket mape portova.

2. Konfiguriranje. Da konfigurišemo listu direktorijuma koje želimo da otvorimo i listu kojima želimo da ih otvorimo, uredimo datoteku / etc / izvoz :

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

U gornjem primjeru otvorili smo direktorij na serveru / data i njegove poddirektorije za zajedničko korištenje od strane svih računara sa IP-om: 192.168.1.1 - 192.168.1.255 sa pravima čitanja i pisanja.

Drugi 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čunar sa IP 192.168.1.34. Svi ostali računari na mreži neće imati pristup ovom direktorijumu.

Dostupne opcije:

  • ro - dozvola samo za čitanje. Ne morate ga specificirati, pošto je instaliran po defaultu;
  • rw - daje klijentima pristup za pisanje;
  • no_root_squash - po defaultu, root korisnik na klijentskoj mašini neće imati pristup otvorenim direktorijumima na serveru. Ovom opcijom uklanjamo ovo ograničenje. Iz sigurnosnih razloga, najbolje je to ne raditi;
  • 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 poddirektorijumu 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 / izvoz , zatim da bi promjene stupile na snagu, samo pokrenite sljedeću naredbu:

Sudo exportfs -a

Sve. NFS server je instaliran i konfigurisan. Možete otići do NFS klijenta.

Instaliranje i konfigurisanje NFS klijenta

1. Instalacija. Na terminalu računara koji će se povezati vršimo sljedeće:

Sudo apt-get install portmap nfs-common

2. Podešavanje. Prvo, napravimo direktorij u koji će biti montiran udaljeni folder:

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 tekstualni fajl na radnoj površini ili u nekom drugom folderu:

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 trebam da se povežem sa serverom, pokrećem ovu skriptu u terminalu tako da mogu da unesem lozinku za sudo.

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

Sudo nano / etc / fstab

I dodajte red na kraj datoteke:

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

Pažnja! Zamijenite 192.168.1.2:/data sa IP ili imenom servera i putanjom do dijeljenog direktorija. Opcije montiranja se mogu mijenjati.

Opcija teškočvrsto vezuje direktorijum na klijentu za server, a ako server padne, može se i vaš računar zamrznuti. Opcija soft, kao što mu naziv govori, nije tako kategoričan.

Nakon što sačuvate datoteku, možete montirati udaljeni folder.

Sistem datoteka NFS (Network File System) kreirao je Sun Microsystems. To je trenutno standardni mrežni sistem datoteka za UNIX-bazirane operativne sisteme, a NFS klijenti i serveri su implementirani za mnoge druge operativne sisteme. Principi njegove organizacije su trenutno standardizovani od strane Internet zajednice, najnovija verzija NFS v.4 je opisana RFC specifikacijom ZOJ, objavljenom u decembru 2000. godine.

NFS je sistem koji podržava šemu udaljenog pristupa datotekama. Rad korisnika sa udaljenim datotekama nakon operacije montiranja postaje potpuno transparentan - podstablo sistema datoteka NFS servera postaje podstablo lokalnog sistema datoteka.

Jedan od ciljeva NFS programera bio je da podrže heterogene sisteme sa klijentima i serverima koji rade na različitim operativnim sistemima na različitim hardverskim platformama. Ovaj cilj je potpomognut Sun-ovom RFC-baziranom implementacijom NFS-a, koja podržava zadanu XDR mogućnost za objedinjeno predstavljanje argumenata udaljenih procedura.

Kako bi osigurao otpornost klijenta na greške servera, NFS je usvojio pristup bez stanja, odnosno kada rade sa datotekama, serveri ne pohranjuju podatke o datotekama koje su otvorili klijenti.

Osnovna ideja iza NFS-a je da se dozvoli proizvoljnoj grupi korisnika da dijele zajednički sistem datoteka. Najčešće svi korisnici pripadaju istoj lokalnoj mreži, ali ne nužno. Takođe možete pokrenuti NFS na WAN-u. Svaki NFS server pruža jedan ili više svojih direktorija za daljinski pristup klijentu. Direktorij je proglašen pristupačnim sa svim njegovim poddirektorijumima. Lista direktorijuma koje server prosleđuje nalazi se u datoteci / etc / exports, tako da se ovi direktorijumi izvoze automatski čim se server pokrene. Klijenti pristupaju izvezenim direktorijumima montiranjem. Mnoge Sun radne stanice su bez diska, ali čak i tada je moguće montirati udaljeni sistem datoteka u korijenski direktorij sa cijelim sistemom datoteka na serveru. Izvršavanje 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, onda mogu komunicirati cijepanjem datoteke.

NFS sistem datoteka u svom radu koristi dva protokola.

Prvi NFS protokol kontroliše montiranja. Klijent šalje serveru potpuno kvalificirano ime direktorija i traži dozvolu za montiranje tog direktorija negdje u svom vlastitom stablu direktorija. U ovom slučaju, server nije naznačen gdje će se serverski direktorij montirati. Nakon što primi ime, server potvrđuje zahtjev i vraća deskriptor datoteke klijentu koji je udaljena točka montiranja. Deskriptor uključuje deskriptor tipa sistema datoteka, broj diska, inode broj direktorija koji je udaljena točka montiranja i sigurnosne informacije. Čitanje i pisanje datoteka iz montiranih sistema datoteka koriste deskriptore datoteka umjesto simboličkog imena.


Montaža se može obaviti automatski koristeći batch fajlove pri pokretanju. Postoji još jedna opcija za automatsko montiranje: kada se OS pokrene na radnoj stanici, udaljeni sistem datoteka se ne montira, ali kada se udaljena datoteka otvori prvi put, OS šalje zahtjeve svakom serveru i, nakon što otkrije ovu datoteku, montira direktorij servera na kojem se nalazi pronađena datoteka.

Drugi NFS protokol se koristi za pristup udaljenim datotekama i direktorijumima. Klijenti mogu poslati zahtjev serveru da izvrši neku radnju u direktoriju ili da pročita ili upiše datoteku. Osim toga, mogu tražiti atribute datoteke kao što su tip, veličina, vrijeme kreiranja i modifikacije. NFS je podržan od strane većine UNIX sistemskih poziva, sa izuzetkom otvaranja i zatvaranja. Izuzeci otvaranja i zatvaranja nisu slučajni. Umjesto otvaranja udaljene datoteke, klijent šalje serveru poruku koja sadrži ime datoteke, tražeći pretragu i vraćajući deskriptor datoteke. Za razliku od otvorenog poziva, poziv traženja ne kopira nikakve informacije u interne sistemske tabele. Poziv za čitanje sadrži deskriptor datoteke za čitanje, pomak u datoteci koja se čita i broj bajtova za čitanje. Prednost ove šeme je što server ne pamti ništa o otvorenim datotekama. Na ovaj način, ako se server sruši i zatim vrati, informacije o otvorenim datotekama neće biti izgubljene, jer nisu podržane.

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

Nažalost, NFS otežava zaključavanje datoteka. Na mnogim operativnim sistemima, 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 sistemima bez stanja kao što je NFS, blokiranje se ne može povezati sa otvaranjem datoteke, pošto server ne zna koja je datoteka otvorena. Stoga, NFS zahtijeva posebne dodatne kontrole zaključavanja.

NFS koristi keširanje na strani klijenta, podaci se prenose u predmemoriju blok po blok, a koristi se čitanje unaprijed, u kojem se blok čita u keš memoriju na zahtjev od strane aplikacije uvijek prati čitanje sljedećeg bloka iniciranog od strane sistem. Metoda NFS keširanja ne čuva UNIX semantiku za podjelu datoteka. Umjesto toga, koristi se kritički kritizirana semantika, u kojoj su promjene podataka u datoteci koju je keširao klijent vidljiv drugom klijentu, ovisno o vremenu. Prilikom sljedećeg otvaranja datoteke u njenoj keš memoriji, klijent provjerava sa serverom kada je datoteka posljednji put modificirana. Ako se to dogodi nakon što je datoteka stavljena u keš memoriju, datoteka se uklanja iz keša i nova kopija datoteke se prima sa servera. Klijenti distribuiraju modifikacije napravljene u kešu svakih 30 sekundi, tako da server može primati ažuriranja sa velikim zakašnjenjem. Kao rezultat mehanizama za brisanje podataka iz keša i distribucije modifikacija, podaci koje prima bilo koji klijent nisu uvijek najnoviji.

NFS replikacija nije podržana.

Usluga imenika

Svrha i principi organizacije

Poput velike organizacije, velika računarska mreža treba centralno da skladišti što je više moguće referentnih informacija o sebi. Rješenje mnogih problema u mreži oslanja se na informacije 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: servere, klijentske računare, rutere, gatewaye, volumene datoteka. sistemi, štampač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 sistemu, na osnovu referentnih informacija o korisnicima, je njihova autentifikacija, na osnovu 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 baza podataka treba da skladišti imena ovih resursa i mapiranje imena u numeričke identifikatore (na primer, IP adrese), omogućavajući vam da pronađete ovaj resurs na mreži. Transparentnost se može obezbijediti za pristup serverima, volumenima sistema datoteka, interfejsima RPC procedura, distribuiranim programskim objektima aplikacije i mnogim drugim mrežnim resursima.
  • E-pošta je još jedan popularan primjer usluge koja želi web-bazirani 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 saobraćaja (QoS) koji također zahtijevaju informacije o svim korisnicima i aplikacijama sistema, njihovim zahtjevima za parametrima kvalitete saobraćaja usluge, kao i o svim mrežnim uređajima s kojima se može koristiti za upravljanje prometom (ruteri, prekidači, gatewayi, 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 serverima. Aplikacija koja treba da izvrši neku standardnu ​​radnju postavlja zahtjev takvoj bazi podataka i prima adresu programskog objekta koji može izvršiti traženu akciju.
  • Sistem za upravljanje mrežom mora imati bazu za skladištenje informacija o topologiji mreže i karakteristikama svih elemenata mreže kao što su ruteri, svičevi, serveri i klijentski računari. Posjedovanje potpunih informacija o sastavu mreže i njenim vezama omogućava automatizovanom sistemu upravljanja mrežom da ispravno identifikuje poruke o hitnim događajima i pronađe njihov osnovni 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 njen 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 mreže radile bez jedinstvene referentne baze podataka, a mnoge mreže i dalje raditi bez toga. Zaista, postoje mnoga privatna rješenja koja omogućavaju učinkovito organiziranje rada mreže zasnovane na privatnim referentnim bazama podataka, koje mogu biti predstavljene običnim tekstualnim datotekama ili tabelama pohranjenim u tijelu aplikacije. Na primjer, UNIX tradicionalno koristi passwd datoteku za pohranjivanje korisničkih imena i lozinki, što pokriva samo korisnike na jednom računalu. Također možete pohraniti imena primalaca e-pošte u lokalnu datoteku na računaru klijenta. I takvi privatni sistemi pomoći dobro funkcioniraju - praksa to potvrđuje.

Međutim, ova zamjerka vrijedi samo za male i srednje mreže, u velikim mrežama pojedinačne lokalne referentne baze podataka gube na djelotvornosti. DNS na Internetu je dobar primjer koji se pokazao neprimjenjivim na lokalna rješenja za velike mreže. Kada je veličina Interneta premašila određenu granicu, postalo je neefikasno pohranjivanje informacija o podudarnosti imena i IP adresa računara na mreži u lokalnim tekstualnim datotekama. Bilo je neophodno kreirati distribuiranu bazu podataka koju podržavaju hijerarhijski povezani serveri imena i centralizovan servis na vrhu te baze podataka kako bi razlučivanje simboličkog imena na Internetu radilo brzo i efikasno.

Za veliku mrežu, takođe je neefikasno koristiti veliki broj usluga pomoći uske namjene: jednu za autentifikaciju, drugu za upravljanje mrežom, treću za rješavanje imena računara, itd. Čak i ako je svaki od ovih servisa dobro organiziran i kombinuje centralizovani interfejs sa distribuiranom bazom podataka, veliki broj servisa pomoći dovodi do dupliranja velikih količina informacija i otežava administraciju i upravljanje mrežom. Na primjer, Windows NT ima najmanje pet različitih tipova referentnih baza podataka. Glavni direktorij domene (NT Domain Directory Service) pohranjuje informacije o korisnicima, koje su potrebne prilikom organiziranja njihove logičke prijave na mrežu. Podaci o istim korisnicima mogu biti sadržani u drugom direktorijumu 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 na Internet, i konačno, DHCP direktorij se koristi za automatsko dodjeljivanje IP adresa računarima na mreži ... Očigledno, takva raznolikost servisa pomoći komplikuje život administratora i dovodi do dodatnih grešaka kada je potrebno unijeti akreditive istog korisnika u više baza podataka. Stoga, u novoj verziji Windowsa 2000, većinu informacija pomoći o sistemu može pohraniti Active Directory, jedinstvena, centralizirana usluga pomoći koja koristi distribuiranu bazu podataka i integrirana je sa DNS-om.

Rezultat razvoja sistema za skladištenje referentnih informacija bila je pojava u mrežnim operativnim sistemima posebne usluge - takozvanih usluga imenika, koje se nazivaju i referentnim servisom (imenikom). Usluga imenika pohranjuje informacije o svim korisnicima i mrežnim resursima u obliku objedinjenih objekata sa određenim atributima, a također vam omogućava da odražavate odnose između pohranjenih objekata, kao što su pripadnost korisnika određenoj grupi, prava korisnika na pristup računarima, ulazak nekoliko čvorova u jednu podmrežu, komunikacijske veze između podmreža, proizvodnja servera, itd. Usluga imenika vam omogućava da izvršite neke osnovne operacije na 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 različite specifične mrežne aplikacije izgrađene na vrhu usluge imenika, koje koriste informacije o usluzi za specifične zadatke: upravljanje mrežom, autentifikaciju korisnika, transparentnost usluge i druge gore navedene. Usluga direktorija je obično izgrađena na modelu klijent-server: serveri pohranjuju bazu podataka referentnih informacija koje klijenti koriste slanjem zahtjeva serverima preko mreže. Za klijenta usluge imenika, čini se da je to jedan centralizirani sistem, iako većina dobrih usluga imenika ima distribuiranu strukturu koja uključuje veliki broj servera, 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 servera nije pogodna za veliki sistem iz više razloga, prvenstveno zbog niskih performansi i niske pouzdanosti ovakvog 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 server, koji će uz veliki broj zahtjeva sigurno prestati da se nosi sa njihovom obradom. Odnosno, takvo rješenje nije dobro skalirano u smislu broja opsluženih korisnika i zajedničkih resursa. Pouzdanost takođe ne može biti visoka u sistemu sa jednom kopijom podataka. Pored uklanjanja ograničenja u pogledu performansi i pouzdanosti, poželjno je da struktura baze podataka omogućava logičko grupisanje resursa i korisnika po strukturnim podjelama preduzeća i dodjeli administratora za svaku takvu grupu.

Izazovi održavanja performansi i pouzdanosti kako mreža raste obično se rješavaju kroz distribuirane referentne baze podataka. Dijeljenje podataka na više servera smanjuje opterećenje na svakom serveru, uz održavanje pouzdanosti tako što ima 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 sistemu. Za korisnika (i za mrežne aplikacije), takva distribuirana baza podataka izgleda kao jedna baza podataka koja omogućava pristup svim mrežnim resursima, bez obzira na to s koje radne stanice je zahtjev došao.

Postoje dva popularna standarda za usluge imenika. Prvo, to je standard X.500 koji je razvio ITU-T (u vrijeme razvoja standarda ova organizacija se zvala CCITT). Ovaj standard definira funkcije, organizaciju help deska i protokol za pristup. Dizajniran prvenstveno za upotrebu sa poštanskom uslugom X.400, standard X.500 vam omogućava da efikasno organizujete skladištenje bilo koje referentne informacije 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 Internet 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ć.

Postoji i nekoliko praktičnih implementacija usluga imenika za mrežne operativne sisteme. Najrasprostranjenija je usluga Novell NDS, razvijena 1993. godine za mrežni operativni sistem 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 servis imenika

NetWare Directory Services (NDS) je globalni referentni servis zasnovan na distribuiranoj objektno orijentisanoj 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, štampačima, volumenima i računarima. NetWare OS (i drugi NDS klijenti koji rade na drugim platformama) koristi NDS informacije da bi omogućio pristup ovim resursima.

NDS je zamijenio bindery direktorij prethodnih verzija NetWarea. Bindery direktorij je "ravna" ili jednoslojna baza podataka dizajnirana da podrži jedan server. Takođe je koristio koncept "objekta" za mrežni resurs, ali se tumačenje ovog pojma razlikovalo od opšteprihvaćenog. Bindery objekti su identificirani jednostavnim numeričkim vrijednostima i imali su specifične atribute. Međutim, za ove objekte nisu definirani eksplicitni odnosi nasljeđivanja za klase objekata, tako da je odnos između objekata povezivanja bio proizvoljno uspostavljen od strane administratora, što je često dovodilo do kršenja integriteta podataka.

NDS baza podataka je višeslojna baza podataka koja održava informacije o resursima za sve servere na mreži. Za kompatibilnost unatrag sa NetWareom, NDS pruža mehanizam za emulaciju 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 serveru, već su podijeljene na dijelove koji se nazivaju particijama. NetWare pohranjuje ove particije na više servera na mreži (slika 10.8). Ovo svojstvo uvelike pojednostavljuje administraciju i upravljanje velikom mrežom, budući da se administratoru čini kao jedan sistem. Takođe omogućava brži pristup bazi podataka mrežnih resursa pristupom najbližem serveru.

Rice. 10.8. NDS particije baze podataka

Replika je kopija informacija o NDS particiji. Možete kreirati neograničen broj replika svake particije i pohraniti ih na različite servere. Ako se jedan server zaustavi, tada se kopije ovih informacija mogu preuzeti sa drugog servera. Ovo povećava otpornost sistema jer nijedan server 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ćavaju pristup mrežnim resursima. NDS ne zahtijeva od korisnika da zna fizičku lokaciju ovih resursa. Određivanjem mrežnog resursa po imenu, dobićete ispravan pristup njemu čak i ako se njegova mrežna adresa ili lokacija promijeni.

Globalna priroda NDS-a je da kada se jednom prijavite, dobijate pristup resursima na cijeloj mreži, a ne samo na jednom serveru, kao što je bio slučaj u prethodnim verzijama. Ovo se postiže globalnom procedurom prijave. Umjesto da se prijavljuje na poseban server, NDS korisnik se prijavljuje na mrežu, a zatim dobija pristup mrežnim resursima koji su mu dozvoljeni. Informacije koje se daju tokom logičke prijave koriste se za identifikaciju korisnika. Kasnije, kada korisnik pokuša da pristupi resursima kao što su serveri, volumeni ili štampači, proces pozadinske provjere autentičnosti provjerava da li korisnik ima prava na resurs.

Mrežni sistem datoteka (NFS)- protokol mrežnog pristupa fajl sistemima, omogućava povezivanje udaljenih sistema datoteka.
Prvobitno razvijen od strane Sun Microsystems-a 1984. godine, zasnovan je na Sun RPC: Remote Procedure Call. NFS je nezavisan od tipova serverskog i klijentskog sistema datoteka. Postoji mnogo implementacija NFS servera i klijenata za različite operativne sisteme. Trenutno se koristi NFS v.4, koji podržava različite alate za autentifikaciju (posebno Kerberos i LIPKEY koji koriste RPCSEC GSS protokol) i liste kontrole pristupa (i POSIX i Windows tipovi).
NFS omogućava klijentima transparentan pristup fajlovima servera i sistemu datoteka. Za razliku od FTP-a, NFS pristupa samo dijelovima datoteke kojima je proces pristupio, a njegova glavna prednost je što ovaj pristup čini transparentnim. Zahvaljujući tome, svaka klijentska aplikacija koja može raditi s lokalnom datotekom može jednako dobro raditi i sa NFS datotekom, bez promjene samog programa.
NFS klijenti pristupaju datotekama na NFS serveru tako što šalju RPC zahteve serveru. 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 serveru, što također može biti korisnički proces.

Verzije
NFSv1 je bio za internu upotrebu samo u eksperimentalne svrhe. Detalji implementacije su definirani u RFC 1094.
NFSv2 (RFC 1094, mart 1989) je prvobitno u potpunosti radio preko UDP-a.
NFSv3 (RFC 1813, jun 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 varijabilne dužine u XDR-u definiran je brojačem od 4 bajta iza kojeg slijede stvarni bajtovi. Ovo smanjuje veličinu deskriptora fajla na implementacijama kao što je UNIX, koji zahtevaju samo oko 12 bajtova, ali dozvoljava implementacijama koje nisu Unix da razmenjuju dodatne informacije.
Verzija 2 ograničava broj bajtova po RPC-u za READ ili WRITE na 8192 bajta. Ovo ograničenje se ne primjenjuje u verziji 3, što zauzvrat znači da će korištenjem UDP-a ograničenje biti samo u veličini IP datagrama (65535 bajtova). Ovo omogućava korištenje velikih paketa prilikom čitanja i pisanja na brzim mrežama.
Veličine datoteka i početni pomak bajtova za procedure READ i WRITE počele su koristiti 64-bitno adresiranje umjesto 32-bitnog, što omogućava rad sa većim datotekama.
Atributi datoteke se vraćaju u svakom pozivu koji može utjecati na atribute.
Upisi (WRITE) mogu biti asinhroni, dok su u verziji 2 trebali biti sinhroni.
Jedna procedura je uklonjena (STATFS) i dodato sedam: ACCESS (provjera dozvola za fajlove), MKNOD (kreiranje posebne Unix datoteke), READDIRPLUS (vraća imena datoteka u direktoriju zajedno sa njihovim atributima), FSINFO (vraća statističke informacije o sistem datoteka), FSSTAT (vraća informacije o dinamičkom sistemu datoteka), PATHCONF (vraća informacije o datoteci POSIX.1) i COMMIT (prenosi prethodno napravljeno asinhrono upisivanje u trajnu memoriju).
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. Ovo je učinilo korišćenje NFS-a preko Interneta izvodljivijim.
NFSv4 (RFC 3010, decembar 2000, RFC 3530, revidiran aprila 2003), pod uticajem AFS i CIFS, uključio je poboljšanja performansi, visoku sigurnost i pojavio se kao punopravni protokol. Verzija 4 je bila prva verzija razvijena u saradnji sa Internet Engineering Task Force (IETF) nakon što je Sun Microsystems prenio razvoj NFS protokola. NFS v4.1 je odobrio IESG u januaru 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 sa više distribuiranih NFS servera. Prisustvo takvog mehanizma u standardu mrežnog sistema datoteka pomoći će u izgradnji distribuiranih skladišta u oblaku i informacionih sistema.

NFS struktura
NFS struktura ima tri komponente na različitim nivoima:
Aplikacioni sloj (sama NFS) su pozivi udaljenih procedura (rpc) koji izvode neophodne operacije nad datotekama i direktorijumima na strani servera.
Funkcije sloja prezentacije obavlja XDR (eXternal Data Representation) protokol, koji je međuplatformski standard za apstrakciju podataka. XDR protokol opisuje objedinjeni, kanonski oblik predstavljanja podataka koji ne zavisi od arhitekture računarskog sistema. Prilikom prijenosa paketa, RPC klijent pretvara lokalne podatke u kanonski oblik, a server radi suprotno.
Usluga Remote Procedure Call (RPC), koja omogućava klijentu da zatraži udaljene procedure i izvrši ih na serveru, je funkcija na nivou sesije. Povezivanje mrežnih resursa
Procedura za povezivanje mrežnog resursa pomoću NFS-a naziva se "izvoz". Klijent može zatražiti od servera listu izvezenih resursa koje on predstavlja. Sam NFS server ne emituje listu svojih izvezenih resursa.
Ovisno o navedenim opcijama, izvezeni resurs se može montirati (prikačiti) "samo za čitanje", možete definirati listu hostova kojima je dozvoljeno montiranje, specificirati korištenje sigurnog RPC-a (secureRPC) itd. Jedna od opcija određuje način montiranja: "tvrdo" (tvrdo) ili "meko" (meko).
Sa "tvrdim" montiranjem, klijent će pokušati montirati sistem datoteka po svaku cijenu. Ako server ne radi, to će dovesti do činjenice da se cijeli NFS servis zamrzava: procesi koji pristupaju sistemu datoteka preći će u stanje čekanja na završetak RPC zahtjeva. Sa stanovišta korisničkih procesa, sistem datoteka će se pojaviti kao vrlo spor lokalni disk. Kada se server vrati na mrežu, NFS usluga će nastaviti da funkcioniše.
Kod mekog montiranja, NFS klijent će nekoliko puta pokušati da se poveže sa serverom. Ako server ne odgovori, sistem izdaje poruku o grešci i prestaje pokušavati montirati. Sa gledišta logike operacija datoteka, kada server pokvari, meko montiranje emulira neuspjeh lokalnog diska.
Izbor načina rada ovisi o situaciji. Ako se podaci na klijentu i serveru moraju sinkronizirati u slučaju privremenog prekida usluge, tada je poželjnije "tvrdo" montiranje. Ovaj način rada je također nezamjenjiv u slučajevima kada montirani sistem datoteka sadrži programe i fajlove koji su od vitalnog značaja za rad klijenta, posebno za mašine bez diska. U drugim slučajevima, posebno kada su u pitanju sistemi samo za čitanje, soft mount mod je praktičniji.

Mješovito mrežno dijeljenje
NFS je idealan za mreže zasnovane na UNIX-u jer se isporučuje sa većinom verzija operativnog sistema. Štaviše, NFS podrška je implementirana na nivou UNIX kernela. Upotreba NFS-a na Windows klijentskim računarima stvara određene probleme povezane sa potrebom za instaliranjem specijalizovanog i prilično skupog klijentskog softvera. U takvim mrežama, upotreba alata za dijeljenje zasnovanih na SMB / CIFS, posebno softvera Samba, čini se poželjnijim.

Standardi
RFC 1094 NFS: Specifikacija protokola mrežnog sistema datoteka] (mart 1989.)
RFC 1813 NFS verzija 3 specifikacija protokola] (jun 1995.)
RFC 2224 NFS URL šema
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 protokola
RFC 2624 NFS verzija 4 Razmatranje dizajna
RFC 3010 NFS verzija 4 protokol
RFC 3530 Mrežni sistem datoteka (NFS) verzija 4 Protokol
RFC 5661 Mrežni sistem datoteka (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čunarima. Pomoću servera datoteka rješava se nekoliko zadataka odjednom:
  1. redovno sigurnosno kopiranje svih podataka: nerealno je izvršiti ovu operaciju za nekoliko desetina ili stotina računara, ali je sasvim moguće - sa jednog servera ili više servera.
  2. povećanje pouzdanosti skladištenja podataka: nerazumno je opremiti svaki računar na mreži RAID nizom, jer je ogromnu većinu fajlova u računaru, kao što su instalirani softverski paketi, lakše ponovo instalirati nego zaštititi od kvara; ali bi bilo sasvim razumno opremiti fajl server hardverskim RAID-nizom ili tamo organizovati softverski RAID-niz, barem jednostavno preslikavanje diska.
  3. Smanjeni troškovi skladištenja: Skupo je i neefikasno instalirati ogroman disk u svaki računar u slučaju da treba da uskladištite mnogo podataka, ali je sasvim moguće instalirati skalabilni podsistem velikog diska na serveru.
  4. omogućavanje pristupa istim podacima sa bilo kog računara.

Opis NFS-a

NFS usluga omogućava serveru da omogući zajednički pristup određenim direktorijumima na svom lokalnom sistem podataka a klijent treba montirati ove direktorije baš kao da su klijentovi lokalni direktoriji.

NFS verzije

NFS, koji je razvio Sun Microsystems, bio je toliko uspješan da su implementacije implementirane od strane raznih kompanija u gotovo svim operativnim sistemima. Postoji nekoliko fundamentalno različitih NFS implementacija. NFS 2.0 je prilično uobičajen, iako je NFS 3.0 uveden u Solarisu 2.5. Naknadna izdanja Solarisa, uključujući Solaris 9, napravila su značajna poboljšanja NFS-a, ali je sam protokol ostao kompatibilan sa NFS 3.0 implementacijama na drugim sistemima. Počevši od NFS 3.0, podržan je TCP i UDP prenos paketa, ranije je bio podržan samo UDP.

Budi pazljiv! Koristite istu verziju NFS klijenata i servera na mreži. NFS 2.0 se može naći na starijim sistemima kao što je HP-UX 10.0. Nije poželjna saradnja između sistema koji koriste različite verzije NFS-a.

Kompatibilnost NFS i drugih usluga dijeljenog direktorija

NFS je sličan po značenju i organizaciji rada dijeljeni direktoriji(dijeljene mape) u Windows sistemima, ali ove 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 sistemima, tako da korištenje NFS-a na mreži s različitim operativnim sistemima nije problem, samo zapamtite da koristite istu verziju NFS-a.

NFS je klijent-server model, gde se različiti programi pokreću na klijentskim računarima i serverskim računarima kako bi se obezbedio pristup deljenim direktorijumima na serveru.

Budući da su računari na radnim mjestima zaposlenih u Rusiji obično kontrolirani Windows sistemima, Windows sistemi se često koriste i kao serveri datoteka. Međutim, često postoji želja da se UNIX instalira na server datoteka kako bi se poboljšala pouzdanost, smanjili troškovi hardvera ili se isti server koristio za niz drugih korporativnih potreba: kao web server, server baze podataka itd. Kako ne biste instalirali dodatni softver za NFS podršku, u ovom slučaju dovoljno je instalirati samba paket na UNIX mašinu. To će joj omogućiti da se "pretvara" da je Windows server tako da ga svi klijentski računari percipiraju kao najčešći fajl server ili server za štampanje na Windows mreži. Samba paket pruža podršku za Windows SMB protokol.

U slučajevima kada nekoliko UNIX računara radi na mreži i treba da pristupe istom serveru datoteka, ima smisla koristiti mehanizam NFS (mrežni sistem datoteka).

NFS nije previše otporan na prekide mreže, zahtijeva neprekidan rad i pretpostavlja brze veze između klijenta i servera. Korištenje NFS-a za montiranje sistema datoteka izvan lokalne mreže, na primjer, preko Interneta, tehnički je izvodljivo, ali ne baš racionalno i nesigurno.

NFS terminologija

Nakon postavljanja NFS servera, UNIX računar će omogućiti vanjskim korisnicima pristup nekim od svojih direktorija. sistem podataka... Ova odredba pristupa se zove "izvoz": kaže se da sistem izvozi svoje kataloge. Kako se tačno direktoriji izvoze određuje lista koju postavlja administrator sistema. Na većini UNIX sistema, ova lista se nalazi u datoteci / etc / exports, ali na Solarisu je u drugoj datoteci, / etc / dfs / dfstab.

NFS radi kroz mehanizam udaljenog poziva procedure ( RPC - Poziv udaljene procedure).

Šta je RPC

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

RPC pretpostavlja drugačiji način razmjene podataka između klijenta i servera. Sa tačke gledišta programera, RPC klijentska aplikacija poziva funkciju na serveru, ona izvršava i vraća rezultat. Prosljeđivanje zahtjeva za izvršavanje funkcije preko mreže i vraćanje rezultata sa servera klijentu je nevidljivo za aplikaciju, tako da ova potonja ne mora brinuti o mrežnim kvarovima ili detaljima implementacije transportnog protokola.

Kako bi se osigurala transparentnost prijenosa podataka preko mreže, osmišljena je procedura u dva koraka. Na serveru, svaka aplikacija koja pruža svoju uslugu putem RPC-a mora se registrovati u programu koji se zove port maper. Funkcija ovog programa je da uspostavi korespondenciju između broja RPC procedure koju je klijent zatražio i broja TCP ili UDP porta na kojem serverska aplikacija čeka zahtjeve. Uopšteno govoreći, RPC može raditi sa više od samo TCP ili UDP. Solaris implementira rad na osnovu TI (TransportIndependent) mehanizma, pa se u Solarisu port prevodilac zove rpcbind, ali ne portmap kao što je Linux ili FreeBSD.

Aplikacija koja se registruje kod prevodioca 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 prijavljuje brojeve TCP i UDP portova koji će se koristiti za primanje zahtjeva za izvršavanje procedura.

Klijent koji želi da pozove izvršenje procedure na serveru prvo šalje zahtev prevodiocu porta na serveru da sazna na koji TCP ili UDP port da pošalje zahtev. Prevoditelj portova počinje pri pokretanju sistema 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 server radi na portu 2049.

Kako montirati zajednički direktorij putem NFS-a

Prije nego što pređemo na opisivanje postavki za NFS server i klijente, potrebno je razumjeti kako se u principu montiraju udaljeni sistemi datoteka.

NFS klijent šalje zahtev za montiranje udaljenom računaru, koji ga obezbeđuje sistem podataka(obično neki njegov dio) za opću upotrebu. Kaže se da NFS server "izvozi" ovaj ili onaj direktorij (znači - sa poddirektorijumima). Zahtjev klijenta

Dobro vrijeme, čitaoci i gosti. Bila je jako duga pauza između postova, ali ja sam ponovo u borbi). U današnjem članku ću razmotriti Rad NFS protokola, kao i konfigurisanje NFS servera i NFS klijenta na Linuxu.

Uvod u NFS

NFS (Mrežni sistem datoteka - mrežni sistem datoteka) po mom mišljenju - idealno rješenje u lokalnoj mreži, gdje je potrebna brza (brža od SAMBA-e i manje resursno intenzivna u odnosu na udaljene fajl sisteme sa enkripcijom - sshfs, SFTP itd...) razmjena podataka i nije na prednjači sigurnost prenesenih informacija. NFS protokol dozvoljava montirati udaljene sisteme datoteka preko mreže u lokalno stablo direktorija kao da je montirani disk fajl sistem. Dakle, lokalne aplikacije mogu raditi sa udaljenim sistemom datoteka kao i sa lokalnim. Ali morate biti oprezni (!) sa postavljanje NFS-a, jer je uz određenu konfiguraciju moguće suspendovati operativni sistem klijenta, čekajući beskonačan I/O. NFS protokol na osnovu rada RPC protokol, što još nije pogodno za moje razumijevanje)) tako da će materijal u članku biti malo nejasan... Prije nego počnete koristiti NFS, bilo da se radi o serveru ili klijentu, morate se uvjeriti da vaše kernel ima podršku za NFS sistem datoteka. Možete provjeriti da li kernel podržava NFS sistem datoteka tražeći prisustvo odgovarajućih linija u datoteci /proc / filesystems:

ARHIV ~ # grep nfs / proc / filesystems nodev nfs nodev nfs4 nodev nfsd

Ako su navedeni redovi u datoteci /proc / filesystems ne uspije, tada morate instalirati dolje opisane pakete. Ovo će najvjerovatnije instalirati zavisne module kernela koji podržavaju željene sisteme datoteka. Ako se, nakon instaliranja paketa, podrška za NFS ne prikaže u navedenoj datoteci, onda će to biti potrebno s uključenom ovom funkcijom.

Priča Mrežni sistem datoteka

NFS protokol razvijen od strane Sun Microsystems i ima 4 verzije u svojoj istoriji. NFSv1 razvijen je 1989. godine 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 je bio zasnovan na UDP protokolu, dok vam je dozvoljavao da čitate 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, dodata podrška za TCP protokol i velike TCP pakete, što je značajno ubrzalo rad tehnologije. NFSv4 finaliziran 2000. i opisan u RFC 3010, revidiran 2003. i opisan u. Četvrta verzija je uključivala poboljšanja performansi, podršku za različite alate za autentifikaciju (posebno, Kerberos i LIPKEY koji koriste RPCSEC GSS protokol) i liste kontrole pristupa (i tipovi POSIX i Windows). NFS v4.1 odobren od strane IESG-a 2010. godine 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 servera. Prisustvo takvog mehanizma u standardu mrežnog sistema datoteka pomoći će u izgradnji distribuiranih skladišta u oblaku i informacionih sistema.

NFS server

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

Instalirani paketi u Debianu se pokreću sljedećim redoslijedom:

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

Odnosno, prvo počinje nfs-common zatim sam server nfs-kernel-server... U RedHatu je situacija slična, s tim da se zove prva skripta nfslock a server se jednostavno zove nfs... O nfs-common debian stranica nam doslovno govori sljedeće: Uobičajene datoteke za NFS klijent i server, ovaj paket mora biti instaliran na mašini koja će delovati kao NFS klijent ili server. Paket uključuje programe: lockd, statd, showmount, nfsstat, gssd i idmapd... Pregledom sadržaja skripte za pokretanje /etc/init.d/nfs-common možete pratiti sljedeći redoslijed rada: skripta provjerava prisustvo izvršne binarne datoteke /sbin/rpc.statd, provjerava prisustvo u datotekama / etc / default / nfs-common, / etc / fstab i / etc / izvoz 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ška za sistem datoteka rpc_pipefs u kernelu (tj. njegovo prisustvo u datoteci /proc / filesystems), 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 servera na Debianu ( /etc/init.d/nfs-kernel-server), tada možete pratiti sljedeći niz: pri pokretanju skripta provjerava postojanje datoteke / etc / izvoz, Dostupnost nfsd, dostupnost podrške NFS sistem datoteka u (odnosno u datoteci /proc / filesystems), ako je sve na svom mjestu, tada je demon pokrenut /usr/sbin/rpc.nfsd , zatim provjerava da li je parametar postavljen NEED_SVCGSSD(podesite u datoteci postavki servera / etc / default / nfs-kernel-server) i, ako je dano, pokreće demon /usr/sbin/rpc.svcgssd , posljednji koji je pokrenuo demona /usr/sbin/rpc.mountd ... Iz ove skripte to možete vidjeti Rad NFS servera se sastoji od demoni rpc.nfsd, rpc.mountd i ako se koristi Kerberos autentifikacija, onda demon rcp.svcgssd. Daemon rpc.rquotad i nfslogd još uvijek rade u crvenom šeširu (Iz nekog razloga nisam pronašao informacije o ovom demonu u Debianu i razloge njegovog odsutnosti, očito izbrisane...).

Iz ovoga postaje jasno da server mrežnog sistema datoteka sastoji se od sljedećih procesa (čitaj - demoni) koji se nalazi 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 autentikacija). Radi na klijentu i serveru.
  • rpc.svcgssd- NFSv4 serverski demon koji pruža autentifikaciju klijenta na strani servera.

portmap i RPC protokol (Sun RPC)

Pored gore navedenih paketa, potreban je dodatni paket da bi NFSv2 i v3 ispravno radili portmap(u novijim distribucijama, zamijenjeno preimenovanim u rpcbind). Ovaj paket se obično automatski instalira uz NFS kao zavisni i implementira rad RPC servera, odnosno odgovoran je za dinamičko dodeljivanje portova za neke servise registrovane na RPC serveru. Doslovno, prema dokumentaciji, ovo je server 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. Portmap daemon se pokreće skriptom /etc/init.d/portmap prije pokretanja NFS usluga.

Ukratko, posao RPC (Remote Procedure Call) servera je da obrađuje RPC pozive (aka RPC procedure) iz lokalnih i udaljenih procesa. Koristeći RPC pozive, servisi se registruju 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 dobijaju informacije koje su im potrebne. Imena programskih usluga prilagođena korisniku i njihovi odgovarajući brojevi definirani su u / etc / rpc. Čim servis pošalje odgovarajući zahtjev i registruje se kod RPC servera u maper portova, RPC server dodeljuje TCP i UDP portove servisu na kojem je servis pokrenut i pohranjuje u kernel odgovarajuće informacije o pokrenut servis (ime), jedinstveni broj servisa (u skladu sa /etc/rpc), o protokolu i portu na kojem je servis pokrenut io verziji servisa, te pruža navedene informacije klijentima na zahtjev. Sam konvertor portova ima broj programa (100000), broj verzije - 2, TCP port 111 i UDP port 111. Iznad, kada sam specificirao sastav demona NFS servera, naveo sam glavne brojeve RPC programa. Vjerovatno sam vas malo zbunio ovim paragrafom, pa ću reći glavnu frazu, koja bi trebala pojasniti: glavna funkcija mapera porta je da vrati njemu (klijentu) port na kojem se radi traženi program. Shodno tome, ako klijent treba da pristupi RPC-u sa određenim brojem programa, on prvo mora da kontaktira proces mape portova na serverskoj mašini i odredi broj porta za komunikaciju sa RPC uslugom koja mu je potrebna.

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

  1. Konvertor portova se mora prvo pokrenuti, obično pri pokretanju sistema. Ovo kreira TCP krajnju tačku i otvara TCP port 111. Takođe kreira UDP krajnju tačku koja čeka da UDP datagram stigne na UDP port 111.
  2. Prilikom pokretanja, program koji radi preko RPC servera kreira TCP krajnju tačku i UDP krajnju tačku za svaku podržanu verziju programa. (RPC server može podržati više verzija. Klijent specificira potrebnu verziju kada upućuje RPC poziv.) Dinamički dodijeljeni broj porta se dodjeljuje svakoj verziji usluge. Server registruje svaki program, verziju, protokol i broj porta vršeći odgovarajući RPC poziv.
  3. Kada RPC klijentskom programu trebaju 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 dobivenog u koraku 4. Ako se koristi UDP, klijent jednostavno šalje UDP datagram koji sadrži poruku RPC poziva na broj UDP porta na kojem je tražena usluga pokrenuta. Kao odgovor, usluga šalje UDP datagram koji sadrži poruku RPC odgovora. Ako je TCP u upotrebi, klijent vrši aktivno otvaranje broja TCP porta tražene usluge i zatim šalje poruku RPC poziva preko uspostavljene veze. Server odgovara porukom RPC odgovora preko veze.

Da biste dobili informacije od RPC servera, koristite uslužni program rpcinfo... Prilikom specificiranja parametara -p domaćin program navodi sve registrovane RPC programe na hostu. Bez navođenja hosta, program će prikazati usluge na lokalnom hostu. primjer:

ARCHIV ~ # is naredbom rpcinfo -p prog-ma verzija proto port 100000 2 TCP 111 portmapperom 100000 2 UDP 111 portmapperom 100024 1 UDP 59451 statusa 100024 1 TCP 60872 statusa 100021 1 UDP 44310 nlockmgr 100021 3 UDP 44310 nlockmgr 100021 4 UDP 44310 nlock 44851 nlockmgr 100021 3 TCP 44851 nlockmgr 100021 4 TCP 44851 nlockmgr 100003 2 TCP 2049 NFS 100003 3 TCP 2049 NFS 100003 4 TCP 2049 NFS 100003 2 UDP 2049 NFS 100003 3 UDP 2049 NFS 100003 4 UD5 TCP 2049 NFS 1.000.030 1 mount 41405 mountd 100005 2 udp 51306 mountd 100005 2 tcp 41405 mountd 100005 3 udp 51306 mountd 100005 3 tcp 41405 mountd

Kao što vidite, rpcinfo prikazuje (u kolonama s lijeva na desno) registrovani broj programa, verziju, protokol, port i ime. Možete koristiti rpcinfo da uklonite registraciju programa ili dobijete informacije o pojedinačnoj RPC usluzi (pogledajte man rpcinfo za više opcija). Kao što vidite, portmapper verzija 2 demoni su registrovani 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 server (tačnije, rpc.nfsd demon) prima zahtjeve od klijenta u obliku UDP datagrama na portu 2049. Iako NFS radi sa maperom portova, koji omogućava serveru da koristi dinamički dodijeljene portove, UDP port 2049 je tvrdo kodirano na NFS u većini implementacija...

Rad protokola mrežnog sistema datoteka

Montirajte udaljeni NFS

Proces montiranja udaljenog NFS sistema datoteka može se predstaviti sljedećim dijagramom:

Opis NFS protokola prilikom montiranja udaljenog direktorija:

  1. RPC server se pokreće na serveru i klijentu (obično pri pokretanju), servisira portmapper proces i registruje se na tcp / 111 i udp / 111 portovima.
  2. Pokreću se servisi (rpc.nfsd, rpc.statd, itd.), koji su registrovani na RPC serveru i registrovani na proizvoljnim mrežnim portovima (osim ako je statički port naveden u postavkama servisa).
  3. naredba mount na klijentskom računaru šalje zahtjev kernelu da montira mrežni direktorij s naznakom tipa sistema datoteka, hosta i samog direktorija, kernel šalje RPC zahtjev portmap procesu na NFS serveru na udp / 111 port (ako klijent nema mogućnost rada preko tcp-a)
  4. Kernel NFS servera ispituje RPC za prisustvo demona rpc.mountd i vraća mrežni port na kojem demon radi u jezgro klijenta.
  5. mount šalje RPC zahtjev portu na kojem je pokrenut rpc.mountd. Sada NFS server može potvrditi klijenta na osnovu njegove IP adrese i broja porta da vidi da li klijent može montirati navedeni sistem datoteka.
  6. Daemon mount vraća opis traženog sistema datoteka.
  7. Naredba za montiranje klijenta izdaje sistemski poziv mount za povezivanje deskriptora datoteke dobivenog u koraku 5 za lokalnu točku montiranja na klijentskom hostu. Deskriptor datoteke je pohranjen u NFS klijentskom kodu, i od ove tačke, svaki pristup korisničkih procesa datotekama na sistemu datoteka servera koristit će deskriptor datoteke kao početnu tačku.

Komunikacija između klijenta i NFS servera

Tipičan pristup udaljenom sistemu datoteka može se opisati na sljedeći način:

Opis procesa pristupa datoteci koja se nalazi na NFS serveru:

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

Postavljanje NFS servera

Podešavanje servera općenito se sastoji od specificiranja lokalnih direktorija kojima je dozvoljeno da budu montirani udaljenim sistemima u datoteci / etc / izvoz... Ova akcija se zove izvoz hijerarhije direktorija... Glavni izvori informacija o izvezenim direktorijima su sljedeće datoteke:

  • / etc / izvoz- glavni konfiguracijski fajl koji pohranjuje konfiguraciju izvezenih direktorija. Koristi se prilikom pokretanja NFS-a i uslužnog programa exportfs.
  • / var / lib / nfs / xtab- sadrži listu direktorija montiranih od strane udaljenih klijenata. Koristi ga demon rpc.mountd kada klijent pokušava montirati hijerarhiju (kreira se zapis o montiranju).
  • / var / lib / nfs / etab- lista direktorija koje mogu montirati udaljeni sistemi, sa naznakom svih parametara izvezenih direktorija.
  • / var / lib / nfs / rmtab- lista direktorija koji se trenutno ne izvoze.
  • / proc / fs / nfsd- poseban sistem datoteka (kernel 2.6) za upravljanje NFS serverom.
    • izvoza- listu aktivnih izvezenih hijerarhija i klijenata kojima su izvezene, kao i parametre. Kernel dobija ove informacije iz / var / lib / nfs / xtab.
    • niti- sadrži broj niti (također se može promijeniti)
    • koristeći filehandle možete dobiti pokazivač datoteke
    • i sl...
  • / proc / net / rpc- sadrži sirove statistike koje se mogu dobiti pomoću nfsstata, kao i razne keš memorije.
  • / var / run / portmap_mapping- informacije o registrovanim u RPC servisima

Bilješka: generalno, na internetu ima dosta tumačenja i formulacija svrhe xtab, etab, rmtab fajlova, ne znam kome da verujem. Čak i na http://nfs.sourceforge.net/ tumačenje nije jednoznačno.

Konfiguriranje / etc / datoteke za izvoz

U najjednostavnijem slučaju, datoteka / etc / exports je jedina datoteka kojoj je potrebno uređivanje da bi se konfigurirao NFS server. Ovaj fajl kontrolira sljedeće aspekte:

  • Kakvi klijenti može pristupiti datotekama na serveru
  • Koje hijerarhije direktorijumima na serveru može pristupiti svaki klijent
  • Kako će biti prilagođena imena kupaca biti prikazano na lokalna korisnička imena

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

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

Gdje izvozna_tačka apsolutna putanja izvezene hijerarhije direktorija, klijent1 - br ime jednog ili više klijenata ili IP adresa, odvojenih razmacima, kojima je dozvoljeno montiranje izvozna_tačka . Opcije opišite pravila montiranja za klijent navedeno ranije opcije .

Evo tipičnog primjer konfiguracije datoteke za izvoz:

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

U ovom primeru, fajlovima i računarima 10.0.0.1 je dozvoljen pristup tački izvoza / archiv1, dok se host fajlova može čitati / pisati, a 10.0.0.1 host i 10.0.230.1/24 podmreža su samo za čitanje.

Opisi hosta u / etc / izvozi su dozvoljeni u sljedećem formatu:

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

Opće opcije izvoza za hijerarhiju direktorija

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

  • auth_nlm (ne_auth_nlm) ili sigurne_brave (nesigurne_brave)- specificira da server treba zahtijevati autentifikaciju zahtjeva za zaključavanje (koristeći NFS Lock Manager protokol).
  • ne sakriti (sakriti)- ako server 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)- Dozvoljava samo zahtjeve za čitanje (pisanje). (U konačnici, da li je moguće čitati/pisati ili ne, određuje se na osnovu dozvola sistema datoteka, dok server nije u mogućnosti da razlikuje zahtjev za čitanje datoteke od zahtjeva za izvršenje, pa dozvoljava čitanje ako korisnik ima dozvole za čitanje ili izvršavanje .)
  • siguran (nesiguran)- zahtijeva da NFS zahtjevi dolaze sa sigurnih portova (< 1024), чтобы программа без прав root не могла монтировать иерархию каталогов.
  • subtree_check (no_subtree_check)- Ako se eksportuje poddirektorijum sistema datoteka, ali ne i ceo sistem datoteka, server proverava da li se tražena datoteka nalazi u izvezenom poddirektorijumu. Onemogućavanje verifikacije smanjuje sigurnost, ali povećava brzinu prijenosa podataka.
  • sinhronizacija (asinhronizacija)- označava da server treba odgovoriti na zahtjeve samo nakon što se promjene koje su ti zahtjevi zapisali na disk. Async opcija govori serveru da ne čeka da se informacije zapišu na disk, što poboljšava performanse, ali smanjuje pouzdanost, jer gubitak informacija je moguć u slučaju prekida veze ili kvara opreme.
  • wdelay (ne_wdelay)- Kaže serveru da odgodi izvršenje zahtjeva za pisanjem ako je sljedeći zahtjev za pisanje na čekanju, zapisivanje podataka u veće blokove. Ovo poboljšava performanse pri slanju velikih redova za pisanje. no_wdelay označava da se ne odgađa izvršenje komande za pisanje, što može biti korisno ako server primi veliki broj komandi 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) sistemu, odnosno mora biti ispunjeno jedno od sljedećih pravila:

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

Podrazumevane opcije se mogu razlikovati od sistema do sistema, mogu se videti u datoteci / var / lib / nfs / etab. Nakon opisa izvezenog direktorija u / etc / exports i ponovnog pokretanja NFS servera, sve nedostajuće opcije (čitaj: zadane opcije) će se odraziti 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 Linux korisnik ima svoj UID i glavni GID, koji su opisani u datotekama / etc / passwd i / etc / grupa... NFS server pretpostavlja da je operativni sistem udaljenog hosta autentifikovao korisnike i dodijelio im ispravne UID-ove i GID-ove. Izvoz datoteka daje korisnicima na klijentskom sistemu isti pristup ovim datotekama kao da se prijavljuju direktno na server. Shodno tome, kada NFS klijent pošalje zahtjev serveru, server koristi UID i GID za identifikaciju korisnika na lokalnom sistemu, što može dovesti do nekih problema:

  • korisnik možda nema iste identifikatore u oba sistema i, shodno tome, može pristupiti datotekama drugog korisnika.
  • pošto Ako root 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)- Sa datom opcijom 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 all_squash 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 serverom

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

  • nfsstat
  • showmsecure (nesigurna) tačka

nfsstat: NFS i RPC statistika

Pomoćni program nfsstat vam omogućava da vidite statistiku RPC i NFS servera. Opcije komande se mogu pogledati u man nfsstat.

showmount: prikaz informacija o NFS statusu

Showmount uslužni program pita demona rpc.mountd na udaljenom hostu za montirane sisteme datoteka. Po defaultu, vraća se sortirana lista klijenata. Ključevi:

  • --sve- prikazuje se lista klijenata i tačaka montiranja, pokazujući gdje je klijent montirao direktorij. Ove informacije možda nisu pouzdane.
  • --direktorije- data je lista tačaka montiranja
  • --izvoz- daje listu izvezenih sistema datoteka sa stanovišta nfsd-a

Ako pokrenete showmount bez argumenata, konzola će prikazati informacije o sistemima kojima je dozvoljeno montiranje lokalni imenike. Na primjer, ARCHIV host nam daje listu izvezenih direktorija s IP adresama hostova kojima je dozvoljeno montiranje navedenih direktorija:

FILES ~ # showmount --exports archiv Izvozi listu za arhivu: / archiv-big 10.0.0.2 / archiv-small 10.0.0.2

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

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

exportfs: upravlja izvezenim direktorijumima

Ova naredba opslužuje izvezene direktorije navedene u datoteci / etc / izvoz, bit će tačnije pisati ne služi, već se sinhronizuje sa datotekom / var / lib / nfs / xtab i uklanja nepostojeće iz xtab-a. exportfs se izvršava kada se nfsd demon pokrene sa -r argumentom. Eksportfs uslužni program u režimu kernela 2.6 komunicira sa demonom rpc.mountd preko datoteka u / var / lib / nfs / direktorijumu i ne komunicira direktno sa kernelom. Bez parametara, navodi trenutno izvezene sisteme datoteka.

Exportfs opcije:

  • [klijent: ime-direktorija] - dodajte ili uklonite navedeni sistem datoteka za navedenog klijenta)
  • -v - prikaz više informacija
  • -r - ponovni izvoz svih direktorija (sinhronizacija / etc / izvoz i / var / lib / nfs / xtab)
  • -u - ukloniti sa liste izvezenih
  • -a - dodati ili ukloniti sve sisteme datoteka
  • -o - opcije razdvojene zarezima (slično opcijama koje se koriste u / etc / izvozima; tako da možete promijeniti opcije za već montirane sisteme datoteka)
  • -i - ne koristi / etc / izvoze prilikom dodavanja, samo parametre trenutne komandne linije
  • -f - resetirajte listu izvezenih sistema u kernelu 2.6;

NFS klijent

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

Na NFS klijenti ne treba pokretati demone, klijentske funkcije izvršava modul kernela kernel / fs / nfs / nfs.ko koji se koristi prilikom montiranja udaljenog sistema datoteka. Izvezeni direktoriji sa servera mogu se montirati na klijenta na sljedeće načine:

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

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

Montirajte sistem mrežnih datoteka pomoću naredbe mount

Primjer korištenja naredbe mount je predstavljen u postu. Evo primjera naredbe mount za montiranje NFS sistema datoteka:

FILES ~ # mount -t nfs arhiva: / archiv-small / archivs / archiv-small FILES ~ # mount -t nfs -o ro arhiva: / 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 tip nfs (ro, addr = 10.0.0.6)

Prva naredba montira izvezeni direktorij / archiv-small na serveru archiv na lokalnu tačku montiranja / archivs / archiv-small sa zadanim opcijama (tj. čitanje i pisanje). Mada mount komanda u najnovijim distribucijama, zna kako da shvati koji tip fajl sistema se koristi bez navođenja tipa, ipak specificira parametar -t nfs poželjno. Druga naredba montira izvezeni direktorij / archiv-big na serveru archiv u lokalni imenik / archivs / archiv-big sa opcijom samo za čitanje ( ro). Komanda za montiranje bez parametara, jasno nam prikazuje rezultat montiranja. Pored opcije samo za čitanje (ro), moguće je navesti i druge osnovne opcije prilikom montiranja NFS-a:

  • nosuid- Ova opcija zabranjuje izvršavanje programa iz montiranog direktorija.
  • nodev(bez uređaja - nije uređaj) - Ova opcija zabranjuje upotrebu znakova i blokira posebne datoteke kao uređaje.
  • zaključati (nolock)- Omogućava NFS zaključavanje (podrazumevano). nolock onemogućuje NFS zaključavanje (ne pokreće lockd demon) i koristan je za starije servere 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.
  • port = n- port koji se koristi za povezivanje sa NFS serverom (podrazumevano 2049 ako demon rpc.nfsd nije registrovan na RPC serveru). Ako je n = 0 (podrazumevano), tada će NFS upitati mapu portova na serveru da odredi port.
  • rsize = n(veličina bloka čitanja) - Broj bajtova koji se čitaju u jednom trenutku sa NFS servera. Standard - 4096.
  • wsize = n(veličina bloka pisanja) - Broj bajtova upisanih u jednom trenutku na NFS server. Standard - 4096.
  • tcp ili udp- Za montiranje NFS-a koristite TCP ili UDP protokol, respektivno.
  • bg- Ako izgubite pristup serveru, pokušajte ponovo u pozadini kako ne biste blokirali proces pokretanja sistema.
  • fg- Ako izgubite pristup serveru, pokušajte ponovo u režimu prioriteta. Ova opcija može blokirati proces pokretanja ponavljanjem pokušaja montiranja. Iz tog razloga, fg parametar se prvenstveno koristi u svrhu otklanjanja grešaka.

Opcije koje utiču na keširanje atributa kada se NFS montira

Atributi datoteke pohranjene 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 sistemske resurse na skupe mrežne operacije. Da biste izbjegli nepotrebno trošenje resursa, možete keširati date atribute... Kernel koristi vrijeme modifikacije datoteke da odredi da li je keš zastario tako što upoređuje vrijeme modifikacije u kešu sa vremenom modifikacije same datoteke. Keš atributa se periodično ažurira prema navedenim parametrima:

  • ac (noac) (attrebute cache- keširanje atributa) - Omogućuje keširanje atributa (podrazumevano). Iako opcija noac usporava server, ona izbjegava istek atributa kada više klijenata aktivno upisuje informacije u dijeljenu hijerarhiju.
  • acdirmax = n (atribut cache fajl direktorija maksimalno- maksimum keširanja atributa za datoteku direktorija) - Maksimalni broj sekundi koji NFS čeka prije ažuriranja atributa direktorija (podrazumevano 60 sekundi)
  • acdirmin = n (atribut cache direktorij fajl minimalno- keširanje atributa barem za datoteku direktorija) - Minimalni broj sekundi koje NFS čeka prije ažuriranja atributa direktorija (podrazumevano 30 sekundi)
  • acregmax = n (atribut cache regularni fajl maksimum- maksimum keširanja atributa za običan fajl) - Maksimalni broj sekundi koje NFS čeka prije ažuriranja atributa obične datoteke (podrazumevano 60 sek.)
  • acregmin = n (cache atributa redovan fajl minimum- keširanje atributa barem za običan fajl) - Minimalni broj sekundi koje NFS čeka prije ažuriranja atributa obične datoteke (3 sekunde prema zadanim postavkama)
  • actimeo = n (vremensko ograničenje keša atributa- vremensko ograničenje keširanja atributa) - Poništava vrijednosti za sve gore navedene opcije. Ako acttimeo nije naveden, tada se gornje vrijednosti postavljaju na svoje zadane vrijednosti.

Opcije rukovanja NFS greškama

Sljedeće opcije kontroliraju kako će se NFS ponašati kada nema odgovora sa servera ili kada se pojave I/O greške:

  • fg (bg) (prednji plan- prvi plan, pozadini- pozadina) - Pokušajte montirati neuspješni NFS u prvi plan/pozadinu.
  • tvrdo (meko)- prikazuje poruku "server ne reaguje" na konzoli kada se istekne vremensko ograničenje i nastavlja pokušaje montiranja. Uz datu opciju soft- ako dođe do isteka vremena, obavještava program koji je pozvao operaciju o I/O grešci. (mekana opcija se ne preporučuje za korištenje)
  • nointr (intr) (bez prekida- ne prekidaj) - Sprečava signale da prekidaju operacije datoteka u tvrdo montiranoj hijerarhiji direktorija kada se dostigne dugo vremensko ograničenje. intr- omogućava prekid.
  • retrans = n (vrijednost retransmisije- vrijednost ponovnog prijenosa) - Nakon n malih tajm-auta, NFS generiše veliko vremensko ograničenje (3 po defaultu). Dugo vremensko ograničenje zaustavlja operacije ili prikazuje poruku "server ne odgovara" na konzoli, u zavisnosti od specificirane hard/soft opcije.
  • pokušaj ponovo = n (vrijednost ponovnog pokušaja- vrijednost ponovnog pokušaja) - Broj minuta u kojima NFS servis pokušava ponovo pokrenuti operacije prije nego što odustane (10.000 prema zadanim postavkama).
  • timeo = n (timeout vrijednost- timeout value) - Broj desetinki sekunde koje NFS servis čeka prije ponovnog prijenosa u slučaju RPC-a ili malog vremena čekanja (podrazumevano 7). Ova vrijednost se povećava sa svakim timeoutom, do maksimalno 60 sekundi, ili dok ne nastupi dugo vrijeme. Na zauzetoj mreži, sporom serveru ili kada zahtjev prolazi kroz više rutera ili gatewaya, povećanje ove vrijednosti može poboljšati performanse.

Automatsko NFS montiranje pri pokretanju (opis sistema datoteka 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 arhiva 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 32 776 bajtova iz archiv.domain.local (10.0.0.6): icmp_req = 2 ttl = 64 puta ttl 7 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 = 60 ttl = 64 vrijeme = 1.07 ms 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 vidite, prilikom slanja paketa veličine 32768 (32Kb), njegovo vrijeme putovanja od klijenta do servera i nazad lebdi u području od 1 milisekunde. 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. Shodno tome, preporučljivo je uraditi ovaj test za vrijeme jakog mrežnog opterećenja.

Pokretanje NFS-a i konfigurisanje zaštitnog zida

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

Pokrenite NFS server, montirajte, zaključajte, kvotu i status sa "ispravnim" portovima (za firewall)

  • preporučljivo je prvo demontirati sve resurse na klijentima
  • zaustavite i zabranite pokretanje rpcidmapd-a ako ne planirate da koristite NFSv4: chkconfig --level 345 rpcidmapd off service rpcidmapd stop
  • ako je potrebno, omogućite početak portmap, nfs i nfslock servisa: chkconfig --nivoi 345 portmap / rpcbind na chkconfig --nivoi 345 nfs na chkconfig --nivoi 345 nfslock na
  • ako je potrebno, zaustavite nfslock i nfs usluge, pokrenite portmap / rpcbind, skinite module servis nfslock stop servis nfs stop servis portmap start # servis 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
    • 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 server dodajte red RPCNFSDARGS = "- port 2049" u / etc / sysconfig / nfs
  • za mount server dodajte red MOUNTD_PORT = 4002 u / etc / sysconfig / nfs
  • da konfigurišete rpc.rquota za nove verzije, dodajte red 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 server zaključavanja za nove sisteme dodajte linije LOCKD_TCPPORT = 4001 LOCKD_UDPPORT = 4001 u / etc / sysconfig / nfs
  • za server zaključavanja za stare sisteme dodajte direktno u /etc/modprobe [.conf]: opcije lockd nlm_udpport = 4001 nlm_tcpport = 4001
  • povežite status server rpc.statd na port 4000 (za stare sisteme u /etc/init.d/nfslock pokrenite rpc.statd sa -p 4000 prekidačem) STATD_PORT = 4000
  • start services lockd i rpc.statd service nfslock start
  • provjerite da li su svi portovi ispravno povezani sa "lsof -i -n -P" i "netstat -a -n" (neke od portova koriste moduli kernela koje lsof ne vidi)
  • ako su klijenti prije "ponovne izgradnje" koristili server i nisu mogli biti demontirani, tada ćete morati ponovo pokrenuti usluge automatskog montiranja na klijentima (am-utils, autofs)

Primjer konfiguracije NFS servera i klijenta

Konfiguracija servera

Ako želite da vaš NFS particionirani direktorij bude otvoren i da se može pisati, možete koristiti opciju all_squash u kombinaciji sa opcijama anonuid i anongid... Na primjer, da postavite 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, sa rw pristupom za korisnika 99 sa gid 99 / fajlovi 192.168.0.100 (rw, sync, all_squash, anonuid = 99, anongid) = 99) # Pristup za čitanje/pisanje za klijenta na 192.168.0.100, sa rw pristupom za korisnika 99 sa gid 99 / fajlovi 192.168.0.100 (rw, sync, all_squash, anonuid = 99, anongid = 99))

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

man 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!

Top srodni članci