Postavljanje standardnih Linux sistema datoteka i konfiguriranje NFSv4 servera - 2. dio


Certificirani inženjer Linux Foundation (LFCE) je obučen za postavljanje, konfiguraciju, upravljanje i rješavanje problema mrežnih usluga u Linux sistemima, a odgovoran je za dizajn i implementaciju arhitekture sistema i rješavanje svakodnevnih pitanja.

Predstavljamo Linux Foundation Certification Program (LFCE).

U prvom dijelu ove serije objasnili smo kako instalirati NFS (mrežni sistem datoteka) server i postaviti servis da se automatski pokreće pri pokretanju. Ako to već niste učinili, pogledajte taj članak i slijedite navedene korake prije nego što nastavite.

  1. Instaliranje mrežnih usluga i konfiguracija automatskog pokretanja pri pokretanju – 1. dio

Sada ću vam pokazati kako pravilno konfigurirati vaš NFSv4 server (bez sigurnosti autentifikacije) tako da možete postaviti mrežne dijeljenja za korištenje u Linux klijentima kao da su ti sistemi datoteka instalirani lokalno. Imajte na umu da možete koristiti LDAP ili NIS za potrebe provjere autentičnosti, ali obje opcije su izvan opsega LFCE certifikata.

Konfiguriranje NFSv4 servera

Kada NFS server bude pokrenut i pokrenut ćemo svoju pažnju fokusirati na:

  1. specificiranje i konfiguriranje lokalnih direktorija koje želimo dijeliti preko mreže, i
  2. automatsko montiranje tih mrežnih dionica u klijente, bilo putem datoteke /etc/fstab ili uslužnog programa baziranog na jezgru automount (autofs).

Kasnije ćemo objasniti kada odabrati jednu ili drugu metodu.

Prije nego što budemo, moramo biti sigurni da je demon idmapd pokrenut i konfiguriran. Ova usluga izvodi mapiranje NFSv4 imena (user@mydomain) u ID-ove korisnika i grupe i potrebna je za implementaciju NFSv4 servera.

Uredite /etc/default/nfs-common da omogućite idmapd.

NEED_IDMAPD=YES

I uredite /etc/idmapd.conf sa imenom vašeg lokalnog domena (podrazumevano je FQDN hosta).

Domain = yourdomain.com

Zatim pokrenite idmapd.

service nfs-common start 	[sysvinit / upstart based systems]
systemctl start nfs-common 	[systemd based systems]

Izvoz mrežnih dionica

Datoteka /etc/exports sadrži glavne konfiguracijske direktive za naš NFS server, definira sisteme datoteka koji će biti izvezeni na udaljene hostove i specificira dostupne opcije. U ovoj datoteci, svaki mrežni dio je označen posebnim redom, koji ima sljedeću strukturu prema zadanim postavkama:

/filesystem/to/export client1([options]) clientN([options])

Gdje je /filesystem/to/export apsolutna putanja do izvezenog sistema datoteka, dok client1 (do clientN) predstavlja određenog klijenta (ime hosta ili IP adresa) ili mrežu (dozvoljeni su zamjenski znakovi) u koji se dionica izvozi. Konačno, opcije su lista vrijednosti (opcija) razdvojenih zarezima koje se uzimaju u obzir prilikom izvoza udjela, respektivno. Imajte na umu da nema razmaka između svakog imena hosta i zagrada koje mu prethode.

Evo liste najčešćih opcija i njihovog opisa:

  1. ro (skraćeno od samo za čitanje): Udaljeni klijenti mogu montirati izvezene sisteme datoteka samo sa dozvolama za čitanje.
  2. rw (skraćeno za čitanje-pisanje): Dozvoljava udaljenim domaćinima da izvrše izmjene u zapisima u izvezene sisteme datoteka.
  3. wdelay (skraćeno za odlaganje pisanja): NFS server odgađa upisivanje promjena na disk ako sumnja da je neminovan drugi srodni zahtjev za pisanje. Međutim, ako NFS server primi više malih nepovezanih zahtjeva, ova opcija će smanjiti performanse, tako da se opcija no_wdelay može koristiti za isključivanje.
  4. sinhronizacija: NFS server odgovara na zahtjeve samo nakon što su promjene unesene u trajnu pohranu (tj., hard disk). Njegova suprotnost, opcija async, može povećati performanse, ali po cijenu gubitka podataka ili oštećenja nakon ponovnog pokretanja nečistog servera.
  5. root_squash: Sprečava udaljene root korisnike da imaju privilegije superkorisnika na serveru i dodjeljuje im korisnički ID za korisnika niko. Ako želite “squash” sve korisnike (a ne samo root), možete koristiti opciju all_squash.
  6. anonuid/anongid: Eksplicitno postavlja UID i GID anonimnog naloga (niko).
  7. subtree_check: Ako se izvozi samo poddirektorij sistema datoteka, ova opcija potvrđuje da se tražena datoteka nalazi u tom izvezenom poddirektoriju. S druge strane, ako se eksportuje cijeli sistem datoteka, onemogućavanje ove opcije sa no_subtree_check će ubrzati prijenose. Zadana opcija je danas no_subtree_check jer provjera podstabla obično uzrokuje više problema nego što vrijedi, prema man 5 izvozima.
  8. fsid=0 | root (nula ili root): Određuje da je navedeni sistem datoteka korijen višestrukih izvezenih direktorija (primjenjuje se samo u NFSv4).

U ovom članku ćemo koristiti direktorije /NFS-SHARE i /NFS-SHARE/mydir na 192.168.0.10 (NFS server) kao naše test sistem datoteka.

Uvijek možemo navesti dostupne mrežne dionice na NFS serveru koristeći sljedeću naredbu:

showmount -e [IP or hostname]

U izlazu iznad, možemo vidjeti da su /NFS-SHARE i /NFS-SHARE/mydir dionice na 192.168.0.10 izvezene klijentu sa IP adresom 192.168.0.17.

Naša početna konfiguracija (pogledajte /etc/exports direktorij na vašem NFS serveru) za izvezeni direktorij je sljedeća:

/NFS-SHARE  	192.168.0.17(fsid=0,no_subtree_check,rw,root_squash,sync,anonuid=1000,anongid=1000)
/NFS-SHARE/mydir    	192.168.0.17(ro,sync,no_subtree_check)

Nakon uređivanja konfiguracijske datoteke, moramo ponovo pokrenuti NFS servis:

service nfs-kernel-server restart 		[sysvinit / upstart based system]
systemctl restart nfs-server			[systemd based systems]
Montiranje izvezenih mrežnih dionica pomoću autofs-a

Možda ćete htjeti pogledati dio 5 serije LFCS (“Kako montirati/demontirati lokalne i mrežne (Samba & NFS) datotečne sisteme u Linuxu”) za detalje o montiranju udaljenih NFS dijeljenja na zahtjev koristeći naredbom mount ili trajno kroz datoteku /etc/fstab.

Nedostatak montiranja mrežnog datotečnog sistema korištenjem ovih metoda je taj što sistem mora dodijeliti potrebne resurse kako bi dijeljeni dio bio montiran u svakom trenutku, ili barem dok ne odlučimo da ih ručno isključimo. Alternativa je da automatski montirate željeni sistem datoteka na zahtjev (bez korištenja naredbe mount) preko autofs, koji može montirati sistem datoteka kada se koriste i demontirati ih nakon period neaktivnosti.

Autofs čita /etc/auto.master, koji ima sljedeći format:

[mount point]	[map file]

Gdje se [datoteka mape] koristi za označavanje više tačaka montiranja unutar [tačke montiranja].

Ova datoteka glavne mape (/etc/auto.master) se zatim koristi za određivanje koje su točke montiranja definirane, a zatim pokreće proces automatskog montiranja sa navedenim parametrima za svaku točku montiranja.

Montiranje izvezenih NFS dijeljenja pomoću autofs-a

Uredite svoj /etc/auto.master na sljedeći način:

/media/nfs	/etc/auto.nfs-share	--timeout=60

i kreirajte datoteku mape pod nazivom /etc/auto.nfs-share sa sljedećim sadržajem:

writeable_share  -fstype=nfs4 192.168.0.10:/
non_writeable_share  -fstype=nfs4 192.168.0.10:/mydir

Imajte na umu da je prvo polje u /etc/auto.nfs-share ime poddirektorija unutar /media/nfs. Svaki poddirektorijum se kreira dinamički od strane autofs-a.

Sada ponovo pokrenite autofs uslugu:

service autofs restart 			[sysvinit / upstart based systems]
systemctl restart autofs 			[systemd based systems]

i konačno, da omogućite autofs pokretanje pri pokretanju, pokrenite sljedeću naredbu:

chkconfig --level 345 autofs on
systemctl enable autofs 			[systemd based systems]
Ispitivanje montiranih sistema datoteka nakon pokretanja autofs demona

Kada ponovo pokrenemo autofs, naredba mount nam pokazuje da je datoteka mape (/etc/auto.nfs-share) montirana na specificiranom direktorij u /etc/auto.master:

Imajte na umu da nijedan direktorij još nije montiran, ali će biti automatski kada pokušamo pristupiti dijeljenjima navedenim u /etc/auto.nfs-share:

Kao što vidimo, autofs servis “montira” datoteku mape, da tako kažemo, ali čeka dok se sistemima datoteka ne postavi zahtjev da ih stvarno montira.

Izvođenje testova pisanja u izvezenim sistemima datoteka

Opcije anonuid i anongid, zajedno sa root_squash kao što je postavljeno u prvom dijeljenju, omogućavaju nam da mapiramo zahtjeve koje izvršava root korisnik u klijenta na lokalni nalog na serveru.

Drugim riječima, kada root u klijentu kreira datoteku u tom izvezenom direktoriju, njeno vlasništvo će se automatski mapirati na korisnički račun sa UID-om i GID=1000, pod uslovom da takav nalog postoji na serveru:

Zaključak

Nadam se da ste uspeli da uspešno podesite i konfigurišete NFS server koji odgovara vašem okruženju koristeći ovaj članak kao vodič. Možda ćete također htjeti da se obratite relevantnim man stranicama za dodatnu pomoć (man exports i man idmapd.conf, na primjer).

Slobodno eksperimentirajte s drugim opcijama i testnim slučajevima kao što je ranije navedeno i ne ustručavajte se koristiti obrazac ispod da pošaljete svoje komentare, prijedloge ili pitanja. Bit će nam drago čuti od vas.