NFSv4 poskytuje jednotný prístup k sieti. Pripojte zdieľané adresáre na klientovi NFS. NFS je RPC

  • 23.06.2019

Protokol NFS (Network File Server) je otvorený štandard, ktorý používateľom poskytuje vzdialený prístup k súborovým systémom. Jeho centralizované súborové systémy uľahčujú vykonávanie každodenných úloh, ako je zálohovanie alebo skenovanie vírusov, a konsolidované diskové oddiely sa udržiavajú jednoduchšie ako mnohé malé a distribuované.

Okrem poskytovania možností centralizovaného úložiska sa NFS ukázalo ako veľmi užitočné pre iné aplikácie, vrátane bezdiskových a tenkých klientov, sieťového klastrovania a kolaboratívneho middlewaru.

Lepšie pochopenie samotného protokolu a detailov jeho implementácie uľahčí zvládnutie praktických úloh. Tento článok sa zameriava na NFS a pozostáva z dvoch logických častí: po prvé popisuje samotný protokol a ciele stanovené pri jeho vývoji a potom implementáciu NFS na Solaris a UNIX.

KDE TO VŠETKO ZAČALO...

NFS bol vyvinutý spoločnosťou Sun Microsystems a objavil sa na internete v roku 1989 ako RFC 1094 pod názvom Network File System Protocol Specification (NFS). Je zaujímavé poznamenať, že vtedajšou stratégiou Novellu bolo ďalšie zlepšovanie súborových služieb. Až donedávna, kým sa hnutie s otvoreným zdrojovým kódom rozmohlo, Sun nechcel odhaliť tajomstvá svojich sieťových riešení, ale už vtedy spoločnosť pochopila dôležitosť interoperability s inými systémami.

RFC 1094 obsahovalo dve pôvodné špecifikácie. V čase jej zverejnenia Sun už vyvíjal ďalšiu, tretiu verziu špecifikácie, ktorá je uvedená v špecifikácii protokolu RFC 1813 NFS verzie 3. Verzia 4 tohto protokolu je definovaná v protokole RFC 3010 NFS Version 4 Protocol.

NFS sa široko používa na všetkých typoch hostiteľov UNIX, sieťach Microsoft a Novell a riešeniach IBM, ako sú AS400 a OS / 390. Neznámy mimo sieťového kráľovstva, NFS je možno najrozšírenejším sieťovým súborovým systémom nezávislým na platforme.

PROFESOR BOL UNIX

Hoci je NFS platformovo nezávislý systém, UNIX je jeho predchodcom. Inými slovami, hierarchia architektúry a metódy prístupu k súborom, vrátane štruktúry súborového systému, spôsobu identifikácie používateľov a skupín a spôsobu práce so súbormi, sú všetky veľmi podobné súborovému systému UNIX. Napríklad súborový systém NFS, ktorý má rovnakú štruktúru ako súborový systém UNIX, je pripojený priamo naň. Pri práci s NFS na iných operačných systémoch sú priradené používateľské poverenia a oprávnenia súborov.

NFS

NFS je navrhnutý na použitie v architektúre klient-server. Klient pristupuje k súborovému systému exportovanému serverom NFS prostredníctvom bodu pripojenia na klientovi. Tento prístup je zvyčajne pre klientsku aplikáciu transparentný.

Na rozdiel od mnohých systémov klient/server používa NFS na výmenu informácií vzdialené volania procedúr (RPC). Klient zvyčajne vytvorí spojenie s vopred určeným portom a potom v súlade so špecifikami protokolu odošle požiadavku na vykonanie konkrétnej akcie. V prípade vzdialeného volania procedúry klient vytvorí volanie procedúry a potom ho odošle na server na vykonanie. Podrobný popis NFS bude uvedený nižšie.

Predpokladajme napríklad, že klient pripojil adresár usr2 na lokálny koreňový súborový systém:

/ root / usr2 / -> remote: / root / usr /

Ak klientska aplikácia potrebuje prostriedky tohto adresára, jednoducho odošle požiadavku do operačného systému naň a na názov súboru a ten udelí prístup cez klienta NFS. Ako príklad uveďme jednoduchý UNIXový príkaz cd, ktorý „nevie nič“ o sieťových protokoloch. Príkaz

Cd / root / usr2 /

umiestni pracovný adresár na vzdialený súborový systém, "bez toho, aby vedel" (používateľ to tiež nepotrebuje), že súborový systém je vzdialený.

Po prijatí požiadavky NFS server skontroluje, či má daný užívateľ právo vykonať požadovanú akciu a v prípade kladnej odpovede ju vykoná.

POĎME BLIŽŠIE

Z pohľadu klienta proces lokálneho pripojenia vzdialeného súborového systému pomocou NFS zahŕňa niekoľko krokov. Ako už bolo spomenuté, klient NFS vydá vzdialené volanie procedúry na vykonanie na serveri. Všimnite si, že v systéme UNIX je klientom jeden program (príkaz mount), zatiaľ čo server je v skutočnosti implementovaný ako niekoľko programov s nasledujúcou minimálnou sadou: mapovač portov, démon pripojenia a server NFS ...

Na začiatku príkaz klientskeho pripojenia interaguje so službou prekladu portov servera, ktorá počúva požiadavky na porte 111. Väčšina implementácií pripojenia klienta podporuje viacero verzií NFS, čo zvyšuje pravdepodobnosť nájdenia spoločnej verzie protokolu medzi klientom a serverom. Vyhľadávanie sa vykonáva od najstaršej verzie, takže keď sa nájde zdieľaná, automaticky sa stane najnovšou verziou podporovanou klientom a serverom.

(Predložený materiál je zameraný na tretiu verziu NFS, keďže je v súčasnosti najrozšírenejšia. Väčšina implementácií zatiaľ štvrtú verziu nepodporuje.)

Služba prekladu portov servera odpovedá na požiadavky na základe podporovaného protokolu a portu, na ktorom beží démon pripojenia. Klientsky program mount sa najskôr pripojí k démonovi pripojenia servera a potom mu RPC odošle príkaz mount. Ak je tento postup úspešný, klientska aplikácia sa pripojí k serveru NFS (port 2049) a pomocou jednej z 20 vzdialených procedúr definovaných v RFC 1813 a uvedených v tabuľke 1 získa prístup k vzdialenému súborovému systému.

Význam väčšiny príkazov je intuitívny a správcom systému nespôsobuje žiadne ťažkosti. Nižšie uvedený zoznam tcdump ilustruje príkaz read generovaný príkazom UNIX cat na čítanie súboru s názvom test-file:

10:30: 16.012010 eth0> 192.168.1.254. 3476097947> 192.168.1.252.2049: 144 vyhľadávanie fh 32.0 / 224145 "test-file" 10: 30: 16.012010 eth0> 192.168.1.254. 3476097947> 192.168.1.252.2049: 144 vyhľadávania fh 32,0 / 224145 "testovací súbor" 10: 30: 16.012729 eth0 192.168.1.254.3476097947: odpoveď ok 128 vyhľadávací FH 32,0 / 224307 (DF) 10:30: 16.012729 eth0 192.168. 1.254.3476097947: odpoveď v poriadku 128 vyhľadávanie fh 32.0 / 224307 (DF) 10: 30: 16.013124 eth0> 192.168.1.254. 3492875163> 192.168.1.252.2049: 140 prečítaných fh 32.0 / 224307 4096 bajtov @ 0 10: 30: 16.013124 eth0> 192.1548.1.2 3492875163> 192.168.1.252.2049: 140 prečítať FH 32,0 / 224307 4096 bajtov @ 0 10: 30: 16,013650 eth0 192.168.1.254.3492875163: odpoveď ok 108 read (DF) 10: 30: 16,013650 eth0 192.168.1.254.3492875163: odpoveď ok 108 čítaní (DF)

NFS sa tradične implementuje cez UDP. Niektoré verzie NFS však podporujú TCP (podpora TCP je definovaná v špecifikácii protokolu). Hlavnou výhodou TCP je efektívnejší mechanizmus retransmisie v nespoľahlivých sieťach. (V prípade UDP, ak sa vyskytne chyba, potom sa znova odošle kompletná RPC správa pozostávajúca z niekoľkých UDP paketov. Ak existuje TCP, znova sa odošle iba zlomený kus.)

PRÍSTUP V NFS

Implementácie NFS vo všeobecnosti podporujú štyri spôsoby udeľovania prístupových práv: prostredníctvom atribútov používateľa/súboru, na úrovni zdieľaných prostriedkov, na úrovni hlavného uzla a kombináciou iných metód prístupu.

Prvá metóda sa spolieha na vstavaný systém oprávnení súborov pre jednotlivých používateľov alebo skupinu v systéme UNIX. Aby sa zjednodušila údržba, identity používateľov a skupín by mali byť konzistentné naprieč všetkými klientmi a servermi NFS. Bezpečnosť by sa mala starostlivo zvážiť: NFS môže neúmyselne poskytnúť prístup k súborom, ktoré neboli zamýšľané pri ich vytváraní.

Prístup k zdieľaným prostriedkom vám umožňuje obmedziť práva, aby ste povolili iba konkrétne akcie, bez ohľadu na vlastníctvo súboru alebo privilégiá UNIX. Napríklad práca so súborovým systémom NFS môže byť obmedzená len na čítanie. Väčšina implementácií NFS vám umožňuje ďalej obmedziť prístup k zdieľaným prostriedkom na konkrétnych používateľov a/alebo skupiny. Napríklad skupina „Ľudské zdroje“ môže zobrazovať informácie a nič viac.

Prístup k hlavnému uzlu umožňuje iba pripojenie súborového systému na konkrétne uzly, čo je vo všeobecnosti dobrý nápad, pretože súborové systémy možno ľahko vytvoriť na akomkoľvek uzle s podporou NFS.

Kombinovaný prístup jednoducho kombinuje vyššie uvedené typy (napríklad prístup na úrovni zdieľaných zdrojov s prístupom udeleným konkrétnemu používateľovi) alebo umožňuje používateľom pracovať s NFS iba z konkrétneho uzla.

NFS V ŠTÝLE Tučniaka

Prezentovaný materiál týkajúci sa Linuxu je založený na Red Hat 6.2 s jadrom 2.4.9, ktorý sa dodáva s balíkom 0.1.6 nfs-utils. Existujú novšie verzie: v čase písania tohto článku je najnovšia aktualizácia balíka nfs-utils 0.3.1. Dá sa stiahnuť na:.

Balík nfs-utils obsahuje nasledujúce binárne súbory: exportfs, lockd, mountd, nfsd, nfsstat, nhfsstone, rquotad, showmount a statd.

Bohužiaľ, niekedy je podpora NFS pre linuxových administrátorov mätúca, keďže dostupnosť tej či onej funkcionality priamo závisí od čísla verzie jadra aj balíka nfs-utils. Našťastie sa situácia v tejto oblasti momentálne zlepšuje: najnovšie distribučné súpravy obsahujú najnovšie verzie oboch. Pre predchádzajúce vydania sekcia 2.4 NFS-HOWTO poskytuje úplný zoznam systémových funkcií dostupných pre každú kombináciu jadra a balíka nfs-utils. Vývojári zachovávajú spätnú kompatibilitu balíka so staršími verziami so silným zameraním na bezpečnosť a opravy chýb.

Podpora NFS by mala byť spustená v čase kompilácie jadra. V prípade potreby by sa do jadra mala pridať aj schopnosť NFS verzie 3.

Pre distribúcie, ktoré podporujú linuxconf, je ľahké nakonfigurovať služby NFS pre klientov aj servery. Rýchly spôsob inštalácie NFS pomocou linuxconf však neposkytuje informácie o tom, ktoré súbory boli vytvorené alebo upravené, čo je pre administrátora veľmi dôležité vedieť, aby pochopil situáciu v prípade zlyhania systému. Linuxová architektúra NFS voľne súvisí s BSD, takže potrebné súbory a podporné programy môžu správcovia s BSD, Sun OS 2.5 alebo staršími verziami NFS ľahko nájsť.

Súbor / etc / exports, ako v starších verziách BSD, definuje súborové systémy, ku ktorým majú klienti NFS povolený prístup. Okrem toho obsahuje množstvo dodatočných funkcií súvisiacich so správou a bezpečnostnými otázkami, ktoré správcovi poskytujú prostriedky na jemné ladenie. Je to textový súbor pozostávajúci zo záznamov, prázdnych alebo zakomentovaných riadkov (komentáre začínajú znakom #).

Povedzme, že chceme poskytnúť klientom prístup len na čítanie do / domovského adresára v uzle Lefty. Nasledujúca položka tomu bude zodpovedať v / etc / exports:

/ domov (ro)

Tu musíme systému povedať, ktoré adresáre sprístupníme pomocou démona pripojenia rpc.mountd:

# exportfs -r exportfs: Nie je zadaný žiadny názov hostiteľa v / home (ro), napíšte * (ro), aby ste sa vyhli varovaniu #

Po spustení príkaz exportfs vypíše varovanie, že export / etc / neobmedzuje prístup ku konkrétnemu uzlu, a vytvorí zodpovedajúcu položku v / var / lib / nfs / etab z / etc / exports, ktorá hovorí, ktoré zdroje je možné zobraziť pomocou cat :

# cat / var / lib / nfs / etab / home (ro, async, wdelay, hide, secure, root_ squash, no_all_squash, subtree_check, secure_locks, mapping = identita, anonuid = -2, anongid = -2)

Ďalšie možnosti uvedené v etab zahŕňajú predvolené hodnoty používané systémom NFS. Podrobnosti budú popísané nižšie. Na udelenie prístupu k domovskému adresáru je potrebné spustiť príslušné služby NFS:

# portmap # rpc.mountd # rpc.nfsd # rpc.statd # rpc.rquotad

Kedykoľvek po spustení démona pripojenia (rpc.mountd) sa môžete dozvedieť o jednotlivých súboroch dostupných na výstup tak, že sa pozriete na obsah súboru / proc / fs / nfs / exports:

# cat / proc / fs / nfs / exports # Verzia 1.0 # Klient cesty (príznaky) # IP adresy / domov 192.168.1.252 (ro, root_squash, async, wdelay) # 192.168.1.252 #

To isté možno zobraziť pomocou príkazu showmount s parametrom -e:

# showmount -e Exportovať zoznam pre ľavákov: / home (všetci) #

Trochu pred sebou, príkaz showmount možno použiť aj na identifikáciu všetkých pripojených súborových systémov, alebo inými slovami, na zistenie, ktoré uzly sú klientmi NFS pre systém, na ktorom je spustený príkaz showmount. Príkaz showmount -a zobrazí zoznam všetkých bodov pripojenia klienta:

# showmount -a Všetky body pripojenia vľavo: 192.168.1.252:/home #

Ako je uvedené vyššie, väčšina implementácií NFS podporuje rôzne verzie tohto protokolu. Implementácia Linuxu vám umožňuje obmedziť zoznam verzií NFS na spustenie zadaním prepínača -N pre démona pripojenia. Ak chcete napríklad spustiť NFS verzie 3 a iba verzie 3, zadajte nasledujúci príkaz:

# rpc.mountd -N 1 - N 2

Nároční používatelia môžu považovať za nepohodlné, že démon NFS (rpc.nfsd) v systéme Linux čaká na balíky verzie 1 a verzie 2, hoci sa tým dosiahne požadovaný efekt nepodporovania príslušného protokolu. Dúfajme, že vývojári ďalších verzií urobia potrebné opravy a budú schopní dosiahnuť väčšiu konzistenciu komponentov balíka vo vzťahu k rôznym verziám protokolu.

"PLÁVAŤ S TUČŇAČMI"

Prístup k vyššie nakonfigurovanému Lefty, exportovanému súborovému systému NFS založenému na Linuxe, závisí od operačného systému klienta. Štýl inštalácie pre väčšinu operačných systémov UNIX je rovnaký ako v prípade pôvodných systémov Sun OS a BSD, alebo novších systémov Solaris. Keďže sa tento článok zameriava na systémy Linux aj Solaris, pozrime sa na konfiguráciu klienta Solaris 2.6 z hľadiska nadviazania pripojenia k linuxovej verzii NFS, ktorú sme opísali vyššie.

Funkcie prevzaté zo systému Solaris 2.6 uľahčujú jeho konfiguráciu, aby fungoval ako klient NFS. Vyžaduje si to iba jeden príkaz:

# mount -F nfs 192.168.1.254:/home / tmp / tmp2

Za predpokladu, že predchádzajúci príkaz mount bol úspešný, potom príkaz mount bez parametrov vypíše nasledovné:

# mount / on / dev / dsk / c0t0d0s0 čítanie / zápis / setuid / largefiles v pondelok 3. septembra 10:17:56 2001 ... ... / tmp / tmp2 na 192.168.1.254:/home čítanie / zápis / diaľkové ovládanie na Pon 3. september 23:19:25 2001

Poďme analyzovať výstup tcpdump z uzla Lefty po tom, čo používateľ zadá príkaz ls / tmp / tmp2 na uzle Sunny:

# tcpdump hostiteľ ľavý a hostiteľ slnečný -s512 06: 07: 43.490583 sunny.2191983953> lefty.mcwrite.n.nfs: 128 getattr fh Neznámy / 1 (DF) 06: 07: 43.49.mcs. left. 2191983953: odpoveď ok 112 getattr DIR 40755 ids 0/0 sz 0x000001000 (DF) 06: 07: 43.491397) slnečno.2191983954> lefty.mcwrite: 01yh neznámy: 01yh 7. prístup doľava: 01yh 0413 /04116DF mcwrite.n.nfs> sunny.2191983954: odpoveď je v poriadku 120 prístup c0001 (DF) 06: 07: 43,492296 sunny.2191983955> lefty.mcwrite.n.nfs: 152 readdir /1xfh 000, @0820108740 06: 07: 43,492417 lefty.mcwrite.n.nfs> sunny.2191983955: odpoveď ok 1000 readdirplus (DF)

Vidíme, že Sunny žiada ls o deskriptor súboru (fh), na čo Lefty odpovie OK a vráti adresárovú štruktúru. Sunny potom skontroluje oprávnenie pre právo k obsahu adresára (132 prístup fh) a dostane odpoveď na povolenie od Lefty. Sunny potom načíta celý obsah adresára pomocou rutiny readdirplus. Vzdialené volania procedúr sú opísané v RFC 1813, na ktorý sme odkazovali na začiatku tohto článku.

Hoci postupnosť príkazov na prístup k vzdialeným súborovým systémom je veľmi jednoduchá, množstvo okolností môže viesť k nesprávnemu pripojeniu systému. Bod pripojenia už musí existovať pred pripojením adresára, inak sa musí vytvoriť pomocou príkazu mkdir. Zvyčajne jedinou príčinou chýb na strane klienta je nedostatok lokálneho adresára pripojenia. Väčšina problémov s NFS je spôsobená nesúladom medzi klientom a serverom alebo nesprávnou konfiguráciou servera.

Najjednoduchší spôsob riešenia problémov so serverom je z lokality, na ktorej server beží. Ak však server namiesto vás spravuje niekto iný, nie je to vždy možné. Rýchlym spôsobom, ako zabezpečiť, aby boli príslušné služby servera správne nakonfigurované, je použiť príkaz rpcinfo s parametrom -p. Z hostiteľa Solaris Sunny môžete určiť, ktoré procesy RPC sú zaregistrované na hostiteľovi Linux:

# Rpcinfo -p 192.168.1.254 programu vers preto prístavné služby 100000 2 tcp 111 rpcbind 100000 2 udp 111 rpcbind 100.024 1 692 udp status 100.024 1 694 tcp stavu 100005 3 udp 1024 mountd / 100005 3 tcp 1024 mountd 100003 2 udp 2049 NFS 100003 3 udp 2049 nfs 100021 1 udp 1026 nlockmgr 100021 3 udp 1026 nlockmgr 100021 4 udp 1026 nlockmgr #

Všimnite si, že sú tu uvedené aj informácie o verziách, čo je celkom užitočné, keď systém vyžaduje podporu pre rôzne protokoly NFS. Ak na serveri nie je spustená nejaká služba, táto situácia by mala byť opravená. Ak pripojenie zlyhá, nasledujúci príkaz rpcinfo -p bude indikovať, že pripojená služba na serveri nefunguje:

# rpcinfo -p 192.168.1.254 program verzus služba portu proto 100000 2 tcp 111 rpcbind ... ... 100021 4 udp 1026 nlockmgr #

Príkaz rpcinfo je veľmi užitočný na zistenie, či je aktívny konkrétny vzdialený proces. Voľba -p je najdôležitejšia z možností. Úplný prehľad funkcií rpcinfo nájdete v manuálovej stránke.

Ďalším užitočným nástrojom je príkaz nfsstat. Dá sa použiť na zistenie, či klienti skutočne pristupujú k exportovanému súborovému systému, ako aj na zobrazenie štatistických informácií podľa verzie protokolu.

Nakoniec, tcpdump je ďalší užitočný nástroj na určenie príčiny zlyhania systému:

# tcpdump hostiteľ ľavý a hostiteľ slnečný -s512 tcpdump: počúvanie na eth0 06: 29: 51.773646 sunny.2191984020> lefty.mcwrite.n.nfs: 140 vyhľadávanie fh Neznáme / 1 "test.c" (519.7) lefty.mcwrite.n.nfs> sunny.2191984020: odpoveď ok CHYBA vyhľadávania 116: Žiadny takýto súbor alebo adresár (DF) 06: 29: 51.774593 sunny.2191984021> lefty.mcwrite.n.nfs: 128 neznámy DF) 06: 29: 51,774670 lefty.mcwrite.n.nfs> sunny.2191984021: odpoveď ok 112 getattr DIR 40755 ids 0/0 sz 0x000001000 (DF) 06:21> vľavo 29.m. : 140 vyhľadávanie fh Neznáme / 1 "test.c" (DF) 06: 29: 51.775357 lefty.mcwrite.n.nfs> sunny.2191984022: odpoveď ok 116 CHYBA vyhľadávania: Žiadny takýto súbor alebo adresár (DF) 06:29: 51.776029 sunny.2191984023> lefty.mcwrite.n.nfs: 184 vytvoriť fh Neznámy / 1 "test.c" (DF) 06: 29: 51.776169 lefty.mcwrite.n.nfs> sunny.2191910 create E21919840 Povolenie odmietnuté (DF)

Vyššie uvedený zoznam, získaný po vykonaní príkazu touch test.c, odráža nasledujúcu postupnosť akcií: najprv sa dotykový príkaz pokúsi získať prístup k súboru s názvom test.c, potom hľadá adresár s rovnakým názvom a po neúspešnom pokuse pokúsi sa vytvoriť súbor test.c , čo tiež nevedie k úspechu.

Keď je súborový systém pripojený, väčšina bežných chýb súvisí s normálnymi povoleniami UNIX. Sun používa uid alebo NIS+, aby sa zabránilo globálnemu nastaveniu povolení na všetkých súborových systémoch. Niektorí správcovia praktizujú „otvorené“ adresáre, kde sú povolenia na čítanie udelené „celému svetu“. Z bezpečnostných dôvodov sa tomu však treba vyhnúť. Odhliadnuc od bezpečnostných problémov, stále musíte pripustiť, že je to zlý postup, pretože používatelia zriedka vytvárajú údaje so zámerom, aby ich mohol ktokoľvek prečítať.

Prístup superužívateľa (root) k pripojeným súborovým systémom NFS sa rieši odlišne. Aby sa predišlo udeleniu neobmedzeného prístupu privilegovanému užívateľovi, s požiadavkami od užívateľa root sa zaobchádza, ako keby boli od užívateľa nikto. Tento výkonný mechanizmus obmedzuje prístup privilegovaných používateľov ku globálne čitateľným a zapisovateľným súborom.

VERZIA NFS SERVER SOLARIS

Konfigurácia Solarisu, aby fungoval ako server NFS, je rovnako jednoduchý ako Linux. Príkazy a umiestnenie súborov sa však mierne líšia. Keď sa Solaris spustí, keď dosiahne úroveň spustenia 3, automaticky sa spustia služby NFS a exportujú sa všetky súborové systémy. Ak chcete tieto procesy spustiť manuálne, zadajte príkaz:

# / usr / lib / nfs / mountd

Ak chcete spustiť démona pripojenia a server NFS, zadajte:

# / usr / lib / nfs / nfsd

Počnúc verziou 2.6 už Solaris nepoužíva exportný súbor na špecifikovanie exportovaných súborových systémov. Súbory sa teraz exportujú pomocou príkazu share. Povedzme, že chceme povoliť vzdialeným hostiteľom pripojiť sa / exportovať / domov. Zadáme na to nasledujúci príkaz:

Share -F nfs / export / home

Bezpečnostné opatrenia

BEZPEČNOSŤ V LINUXE

Niektoré systémové služby NFS založené na Linuxe majú ďalší mechanizmus na obmedzenie prístupu prostredníctvom kontrolných zoznamov alebo tabuliek. Interne je tento mechanizmus implementovaný pomocou knižnice tcp_wrapper, ktorá používa dva súbory na generovanie zoznamov riadenia prístupu: /etc/hosts.allow a /etc/hosts/deny. Komplexný prehľad pravidiel pre prácu s tcp_wrapper presahuje rámec tohto článku, ale základný princíp je nasledovný: mapovanie sa vykonáva najprv pomocou etc / hosts.allow a potom pomocou / etc / hosts. poprieť. Ak sa pravidlo nenájde, potom sa požadovaná systémová služba nezobrazí. Ak chcete obísť druhú požiadavku a poskytnúť veľmi vysokú úroveň zabezpečenia, môžete na koniec súboru /etc/hosts.deny pridať nasledujúci záznam:

VŠETCI: Všetky

Potom môžete pomocou / etc / hosts.allow nastaviť tento alebo ten režim prevádzky. Napríklad súbor / etc / hosts. Povolenie, ktoré som použil pri písaní tohto článku, obsahovalo nasledujúce riadky:

Zamknuté: 192.168.1.0/255.255.255.0 pripevnené: 192.168.1.0/255.255.255.0 portmap: 192.168.1.0/255.255.255.0/255.255.255.0 rquotad: 25165.255.0 rquotad: 25165215.5.56521255.5.5.0.

To umožňuje určitý druh prístupu k uzlom pred udelením prístupu na aplikačnej úrovni. V systéme Linux je prístup na úrovni aplikácie riadený súborom / etc / exports. Pozostáva zo záznamov v nasledujúcom formáte:

Uzol exportovaného adresára (medzera) | sieť (možnosti)

"Exportovaný adresár" je adresár, pre ktorý môže démon nfsd spracovávať požiadavky. „Hostiteľ | sieť“ je uzol alebo sieť, ktorá má prístup k exportovanému systému súborov a „možnosti“ definujú obmedzenia, ktoré démon nfsd kladie na používanie tohto zdieľaného zdroja – prístup len na čítanie alebo mapovanie ID používateľa ...

V nasledujúcom príklade má celá doména mcwrite.net prístup iba na čítanie k /home/mcwrite.net:

/home/mcwrite.net * .mcwrite.net (ro)

Viac príkladov možno nájsť na manuálovej stránke exportov.

ZABEZPEČENIE NFS V SOLARISE

V systéme Solaris je schopnosť poskytovať prístup NFS podobná ako v systéme Linux, ale v tomto prípade sú obmedzenia nastavené pomocou špecifických parametrov v príkaze share s prepínačom -o. Nasledujúci príklad ukazuje, ako povoliť pripojenie /export/mcwrite.net len ​​na čítanie na ľubovoľnom hostiteľovi v doméne mcwrite.net:

#share -F nfs -o ro = .mcwrite.net / export / mcwrite.net

Man stránka pre share_nfs podrobne popisuje, ako udeliť prístup pomocou riadiacich zoznamov v systéme Solaris.

internetové zdroje

NFS a RPC nie sú bez dier. Vo všeobecnosti by sa NFS nemalo používať na internete. Firewally by nemali byť „dierami“ tým, že poskytujú akýkoľvek druh prístupu NFS. Dávajte pozor na všetky opravy RPC a NFS, ktoré sa objavia, a mnohé zdroje bezpečnostných informácií vám môžu pomôcť. Dva najpopulárnejšie zdroje sú Bugtraq a CERT:

Prvý z nich je možné pravidelne prezerať pri hľadaní potrebných informácií alebo využiť odber pravidelného newslettera. Druhý poskytuje, možno nie tak rýchle, v porovnaní s inými, informácie, ale v celkom úplnom objeme a bez štipky senzácie, ktorá je vlastná niektorým stránkam venovaným informačnej bezpečnosti.

NFS: Pohodlný a do budúcnosti odolný sieťový súborový systém

Sieťový súborový systém Je sieťová abstrakcia nad bežným súborovým systémom, ktorá umožňuje vzdialenému klientovi pristupovať k nemu cez sieť rovnakým spôsobom ako pri prístupe k lokálnym súborovým systémom. Hoci NFS nebol prvý sieťový súborový systém, vyvinul sa tak, aby sa stal dnes najfunkčnejším a najžiadanejším sieťovým súborovým systémom v systéme UNIX®. NFS umožňuje viacerým používateľom zdieľať spoločný súborový systém a centralizuje údaje, aby sa minimalizovalo množstvo miesta na disku potrebné na ich uloženie.

Tento článok začína krátkym prehľadom histórie NFS a potom pokračuje skúmaním architektúry NFS a toho, ako sa bude vyvíjať.

Stručná história NFS

Prvý sieťový súborový systém sa nazýval FAL (File Access Listener) a bol vyvinutý v roku 1976 spoločnosťou DEC (Digital Equipment Corporation). Išlo o implementáciu Data Access Protocol (DAP) a bola súčasťou sady protokolov DECnet. Rovnako ako v prípade TCP / IP, DEC zverejnil špecifikácie pre svoje sieťové protokoly, vrátane DAP.

NFS bol prvý moderný sieťový súborový systém vybudovaný cez IP. Jeho prototyp možno považovať za experimentálny súborový systém vyvinutý spoločnosťou Sun Microsystems na začiatku 80. rokov. Vzhľadom na popularitu tohto riešenia bol protokol NFS predstavený ako špecifikácia RFC a následne sa vyvinul do NFSv2. NFS sa rýchlo etabloval ako štandard vďaka svojej schopnosti spolupracovať s inými klientmi a servermi.

Štandard bol následne aktualizovaný na verziu NFSv3 definovanú v RFC 1813. Táto verzia protokolu bola škálovateľnejšia ako predchádzajúce verzie a podporovala väčšie súbory (nad 2 GB), asynchrónny zápis a TCP ako transportný protokol. NFSv3 udáva smer pre súborové systémy pre rozľahlé (WAN) siete. V roku 2000 bol v rámci špecifikácie RFC 3010 (revidovaný vo verzii RFC 3530) portovaný NFS do podnikového prostredia. Sun predstavil bezpečnejší NFSv4 so stavovou podporou (predchádzajúce verzie NFS nepodporovali stav, t. j. boli bez stavu). V súčasnosti je najnovšou verziou NFS verzia 4.1, definovaná v RFC 5661, v ktorej protokol pomocou rozšírenia pNFS bola pridaná podpora paralelného prístupu pre distribuované servery.

História vývoja NFS vrátane špecifických RFC popisujúcich jeho verzie je znázornená na obrázku 1.


Prekvapivo sa NFS vyvíja už takmer 30 rokov. Ide o extrémne stabilný a prenosný sieťový súborový systém s vynikajúcou škálovateľnosťou, výkonom a kvalitou služieb. So zvyšujúcou sa rýchlosťou a klesajúcou latenciou výmeny údajov v rámci siete je NFS naďalej obľúbeným spôsobom implementácie súborového systému v sieti. Dokonca aj v prípade sietí LAN virtualizácia podporuje ukladanie údajov v sieti, aby sa virtuálnym počítačom poskytla dodatočná mobilita. NFS tiež podporuje najnovšie výpočtové prostredia určené na optimalizáciu virtuálnych infraštruktúr.

architektúra NFS

NFS používa štandardný model architektúry klient-server (ako je znázornené na obrázku 2). Server je zodpovedný za implementáciu systému zdieľaných súborov a úložného priestoru, ku ktorému sa klienti pripájajú. Klient implementuje užívateľské rozhranie do zdieľaného súborového systému pripojeného do lokálneho súborového priestoru klienta.

Obrázok 2. Implementácia modelu klient-server v architektúre NFS

V systéme Linux® poskytuje prepínač virtuálneho systému súborov (VFS) prostriedky na podporu viacerých súborových systémov na jednom hostiteľovi (napríklad súborový systém ISO 9660 na disku CD-ROM a súborový systém ext3fs na lokálnom pevnom disku). Virtuálny prepínač určuje, na ktorý disk sa požiadavka odošle, a teda ktorý súborový systém by sa mal použiť na spracovanie požiadavky. Preto má NFS rovnakú kompatibilitu ako ostatné súborové systémy používané v Linuxe. Jediný rozdiel oproti NFS je v tom, že I/O požiadavky, namiesto toho, aby boli spracovávané lokálne na hostiteľovi, môžu byť smerované do siete na vykonanie.

VFS určí, že požiadavka, ktorú dostane, je NFS a odovzdá ju obsluhe NFS v jadre. Obsluha NFS spracuje I/O požiadavku a preloží ju do NFS procedúry (OPEN, ACCESS, CREATE, READ, CLOSE, REMOVE, atď.). Tieto postupy, popísané v samostatnej špecifikácii RFC, definujú správanie protokolu NFS. Požadovaný postup je vybraný na základe požiadavky a vykonaný pomocou technológie RPC (Remote Procedure Call). Ako už názov napovedá, RPC umožňuje volanie procedúr medzi rôznymi systémami. Služba RPC prepojí požiadavku NFS s jej argumentmi a odošle výsledok príslušnému vzdialenému hostiteľovi a potom monitoruje príjem a spracovanie odpovede, aby ju vrátil žiadateľovi.

RPC tiež obsahuje dôležitú vrstvu XDR ( externá reprezentácia údajov- nezávislá prezentácia údajov), ktorá zaisťuje, že všetci používatelia NFS používajú rovnaký formát pre rovnaké typy údajov. Keď platforma zadá požiadavku, typ údajov, ktorý používa, sa môže líšiť od typu údajov použitého na hostiteľovi, ktorý žiadosť spracúva. XDR preberá prácu konverzie typu na štandardnú reprezentáciu (XDR), aby platformy využívajúce rôzne architektúry mohli interagovať a zdieľať súborové systémy. XDR definuje bitový formát pre typy ako float a poradie bajtov pre typy, ako sú polia s pevnou a variabilnou dĺžkou. Hoci je XDR primárne známe pre svoje použitie v NFS, táto špecifikácia môže byť užitočná vždy, keď musíte pracovať v rovnakom prostredí s rôznymi architektúrami.

Potom, čo XDR prevedie dáta na štandardnú reprezentáciu, požiadavka sa odošle cez sieť pomocou špecifického transportného protokolu. Prvé implementácie NFS používali UDP, ale dnes sa pre väčšiu robustnosť používa TCP.

Na strane servera NFS sa používa podobný algoritmus. Požiadavka stúpa cez sieťový zásobník cez vrstvu RPC / XDR (na konverziu dátových typov podľa architektúry servera) a smeruje na server NFS, ktorý je zodpovedný za spracovanie požiadavky. Tam sa požiadavka odovzdá démonovi NFS, aby určil cieľový súborový systém, ktorému je adresovaná, a potom znova vstúpi do VFS, aby získal prístup k tomuto súborovému systému na lokálnom disku. Úplný diagram tohto procesu je znázornený na obrázku 3. Lokálny súborový systém servera je štandardný súborový systém Linux, napríklad ext4fs. V skutočnosti NFS nie je súborový systém v tradičnom zmysle slova, ale protokol pre vzdialený prístup k súborovým systémom.


Pre siete s dlhou latenciou ponúka NFSv4 špeciálnu zloženú procedúru ( zložený postup). Tento postup vám umožňuje zabaliť viacero volaní RPC do jednej požiadavky, aby ste minimalizovali réžiu odosielania požiadaviek cez sieť. Tento postup tiež implementuje mechanizmus funkcií spätného volania na prijímanie odpovedí.

protokol NFS

Keď sa klient spustí s NFS, prvým krokom je operácia pripojenia, ktorou je pripojenie vzdialeného súborového systému do priestoru lokálneho súborového systému. Tento proces začína volaním procedúry pripojenia (jedna z funkcií systému Linux), ktorá je presmerovaná cez VFS na komponent NFS. Potom sa pomocou RPC volania funkcie get_port na vzdialenom serveri určí číslo portu, ktorý sa použije na pripojenie, a klient odošle požiadavku na pripojenie cez RPC. Túto požiadavku na strane servera spracuje špeciálny démon rpc.mountd zodpovedný za protokol pripojenia ( montážny protokol). Démon overí, či je súborový systém požadovaný klientom v zozname systémov dostupných na danom serveri. Ak požadovaný systém existuje a klient má k nemu prístup, deskriptor súborového systému je špecifikovaný v odpovedi procedúry pripojenia RPC. Klient si uchováva informácie o lokálnych a vzdialených bodoch pripojenia a môže zadávať I/O požiadavky. Protokol pripojenia nie je bezchybný z hľadiska bezpečnosti, takže NFSv4 namiesto toho používa interné volania RPC, ktoré môžu tiež manipulovať s bodmi pripojenia.

Ak chcete čítať súbor, musíte ho najskôr otvoriť. V RPC neexistuje žiadna procedúra OPEN, namiesto toho klient jednoducho overí, že zadaný súbor a adresár existujú v pripojenom súborovom systéme. Klient začína požiadavkou RPC GETATTR pre adresár, ktorá vráti atribúty adresára alebo indikátor, že adresár neexistuje. Ďalej, aby skontroloval existenciu súboru, klient odošle požiadavku RPC LOOKUP. Ak súbor existuje, odošle sa mu požiadavka RPC GETATTR, aby zistil atribúty súboru. Pomocou informácií získaných z úspešných volaní LOOKUP a GETATTR klient vytvorí deskriptor súboru, ktorý je prezentovaný používateľovi pre budúce požiadavky.

Po identifikácii súboru vo vzdialenom súborovom systéme môže klient zadávať požiadavky RPC READ. Táto požiadavka pozostáva z deskriptora súboru, stavu, posunu a počtu bajtov na čítanie. Klient používa stav ( štát) určiť, či je možné operáciu v súčasnosti vykonať, t.j. či je súbor uzamknutý. Offset ( offset) označuje, kde začať čítať, a počítadlo bajtov ( počítať) určuje, koľko bajtov sa má čítať. V dôsledku volania RPC READ server nie vždy vráti toľko bajtov, koľko sa požaduje, ale vždy spolu s vrátenými údajmi odošle, koľko bajtov bolo odoslaných klientovi.

Inovácia v NFS

Najväčší záujem sú o dve najnovšie verzie NFS – 4 a 4.1, ktoré možno použiť na štúdium najdôležitejších aspektov vývoja technológie NFS.

Pred príchodom NFSv4 na vykonávanie úloh správy súborov, ako je pripojenie, uzamknutie atď. existovali špeciálne doplnkové protokoly. V NFSv4 bol proces správy súborov zjednodušený na jeden protokol; okrem toho, od tejto verzie sa už UDP nepoužíva ako transportný protokol. NFSv4 obsahuje podporu pre UNIX a Windows® sémantiku prístupu k súborom, ktorá umožňuje NFS prirodzene sa integrovať do iných operačných systémov.

NFSv4.1 predstavil koncept paralelný NFS(paralelný NFS - pNFS). Na zabezpečenie väčšej škálovateľnosti implementuje NFSv4.1 architektúru, v ktorej sú údaje a metadáta ( značkovanie) sú distribuované medzi zariadeniami podobným spôsobom ako klastrované súborové systémy. Ako je znázornené, pNFS rozdeľuje ekosystém na tri piliere: klient, server a úložisko. V tomto prípade sa objavia dva kanály: jeden na prenos dát a druhý na prenos riadiacich príkazov. pNFS oddeľuje údaje od metadát, ktoré ich opisujú, a poskytuje tak dvojkanálovú architektúru. Keď chce klient získať prístup k súboru, server mu odošle „značkové“ metadáta. Metadáta obsahujú informácie o umiestnení súboru na úložných zariadeniach. S týmito informáciami môže klient pristupovať priamo k úložisku bez nutnosti interakcie so serverom, čo zlepšuje škálovateľnosť a výkon. Keď klient dokončí prácu na súbore, potvrdí vykonané zmeny v súbore a jeho „označenie“. Ak je to potrebné, server si môže vyžiadať metadáta značiek od klienta.

So zavedením pNFS bolo do protokolu NFS pridaných niekoľko nových operácií na podporu tohto mechanizmu. Metóda LayoutGet sa používa na získanie metadát zo servera, metóda LayoutReturn „uvoľňuje“ metadáta „zachytené“ klientom a metóda LayoutCommit načítava „značky“ prijaté od klienta do úložiska, takže sú dostupné pre ostatných. používateľov. Server môže odvolať metaúdaje z klienta pomocou metódy LayoutRecall. „Označené“ metadáta sú rozložené na viacerých úložných zariadeniach, aby sa zabezpečil súčasný prístup a vysoký výkon.


Údaje a metadáta sú uložené v úložných zariadeniach. Klienti môžu vytvárať priame I/O požiadavky na základe výsledného označenia a server NFSv4.1 ukladá a spravuje metadáta. Táto funkcia sama o sebe nie je novinkou, no do pNFS bola pridaná podpora pre rôzne spôsoby prístupu k úložným zariadeniam. Dnes pNFS podporuje použitie blokových protokolov (Fibre Channel), objektových protokolov a samotného NFS (dokonca ani vo forme pNFS).

NFS sa neustále vyvíja a požiadavky NFSv4.2 boli zverejnené v septembri 2010. Niektoré z noviniek súvisia s pozorovanou migráciou úložných technológií smerom k virtualizácii. Napríklad vo virtuálnych prostrediach s hypervízorom je duplikácia údajov vysoko pravdepodobná (viaceré operačné systémy čítajú / zapisujú a vyrovnávajú rovnaké údaje). Preto je žiaduce, aby úložný systém ako celok chápal, kde dochádza k duplicite. Tento prístup môže pomôcť šetriť miesto vo vyrovnávacej pamäti klienta a celkovú úložnú kapacitu. NFSv4.2 navrhuje použiť na vyriešenie tohto problému „blokovú mapu zdieľaných blokov“. Keďže moderné úložné systémy sú čoraz viac vybavené vlastným interným výpočtovým výkonom, zavádza sa kopírovanie na strane servera, aby sa znížilo bremeno kopírovania údajov vo vnútornej sieti, keď sa to dá efektívne vykonať na samotnom úložnom zariadení. Medzi ďalšie inovácie patrí ukladanie podsúborov do vyrovnávacej pamäte pre flash a odporúčania na prispôsobenie I/O na strane klienta (napríklad pomocou mapadvise).

Alternatívy NFS

Hoci je NFS najpopulárnejším sieťovým súborovým systémom na UNIX a Linux, okrem neho existujú aj iné sieťové súborové systémy. Platforma Windows® najčastejšie využíva SMB, známe tiež ako CIFS; Windows však tiež podporuje NFS, rovnako ako Linux podporuje SMB.

Jeden z najnovších distribuovaných súborových systémov podporovaných Linuxom, Ceph, je od základov navrhnutý tak, aby bol súborový systém kompatibilný s POSIX a odolný voči chybám. Viac informácií o Ceph nájdete v sekcii.

Za zmienku tiež stoja súborové systémy OpenAFS (Open Source verzia Andrew Distributed File System vyvinutá na Carnegie Mellon University a IBM), GlusterFS (univerzálny distribuovaný súborový systém na organizovanie škálovateľných dátových úložísk) a Luster (masívne paralelný sieťový súbor systém pre klastrové riešenia). Všetky tieto systémy s otvoreným zdrojovým kódom možno použiť na vytvorenie distribuovaného úložiska.

Záver

Vývoj súborového systému NFS pokračuje. Podobne ako Linux, vhodný na podporu rozpočtových, vstavaných a vysokovýkonných riešení, NFS poskytuje architektúru škálovateľných úložných riešení vhodných pre jednotlivcov aj organizácie. Pri pohľade na cestu NFS a jeho budúci vývoj je jasné, že tento súborový systém bude naďalej meniť spôsob, akým uvažujeme o implementácii a používaní technológií ukladania súborov.

"A už máte predstavu o" sieťovom súborovom systéme ", jeho schopnostiach a stupni bezpečnosti. Avšak v tomto článku bolo všetko pochopené hlavne z pohľadu klienta ... ale čo keby ste chceli mať vlastný NFS server? (poznámka: „mať“ neznamená „rozbiť“, ale znamená „nainštalovať a nakonfigurovať“).

No, ak máte takú túžbu, tak prvá otázka, ktorú by ste si mali položiť, je: "Čo koza, gombíková harmonika?" Na umiestnenie servera NFS doma
skôr zbytočné - nikto to neocení, ale ak máte to šťastie, že spravujete „ľudí v čiernom“ v kancelárii alebo v novej „domácej sieti“ - potom je to úplne iná vec ...

Samotné spustenie servera je celkom jednoduchá záležitosť, ak si prečítate predchádzajúci článok, tak to zvládnete celkom dobre. Takže potrebujete nasledujúcich démonov:

  • nfsd - priamy servis protokolu
    NFS;
  • mountd - servisné operácie montáže;
  • rpc.portmap - démon portov RPC; potrebné, pretože požiadavky na server NFS sa odosielajú ako pakety
    RPC;

Ako to spraviť? Veľmi jednoduché - prejdite do súboru "/etc/rc.d/rc.inet2" a odkomentujte príslušné riadky. Všetko sa dá považovať za spustenie prvého spustenia, bude to trochu náročnejšie všetko nastaviť ...
Prvá vec, ktorú treba rozhodnúť, je, kto má aké práva v súvislosti s tými alebo onými informáciami. Toto sa konfiguruje pomocou súboru / etc / exports. Povolenia sú „čítanie“ a „čítanie a zápis“. Ako sa to nastavuje, je popísané v časti „Základy
NFS ".

Druhým je, samozrejme, zaťaženie servera, t.j. počet aktívnych používateľov a ich približné požiadavky. Požiadavky na server NFS sú zvyčajne rozdelené do dvoch typov: prvý je, keď klient pracuje s atribútmi, a druhý, keď klient požaduje údaje priamo. Požiadavky prvého typu sú vyhľadávanie súboru, čítanie zoznamu oprávnení atď., samozrejme chápete, že sieť veľmi nezaťažujú. Požiadavky druhého typu sú prenos a príjem obsahu súborov priamo od klienta; a tu vzniká otázka: "čo sa bude vysielať a ako často?" Toto je obzvlášť dôležité, ak máte sieť 10 Mbps (inými slovami, štandardná ruská sieť). Ak viete, 10 Mbps je niečo viac ako 1 Mb za sekundu; prirodzene, ak sa neustále prenášajú súbory s veľkosťou desiatok megabajtov, sieť jednoducho zomrie. Ak je to vaša situácia, potom budete musieť nastaviť ukladanie údajov do vyrovnávacej pamäte na klientskom počítači (démon biod). Potom, po vyžiadaní súboru a opätovnom odkaze naň, ho klient znova „nestiahne“ zo servera, ale vezme ho z vyrovnávacej pamäte; zároveň bude pravidelne kontrolovať, či sa súbor na serveri zmenil, ak sa skutočnosť zmeny odhalí, súbor vo vyrovnávacej pamäti bude nahradený „čerstvou verziou“
(ako si viete predstaviť, kontrola „má zmenený súbor“ je dotaz „podľa atribútov“, ktorý je často stokrát menší ako samotný súbor).

Nuž: spustili sme NFS server, určili prístupové oprávnenia, vytriedili záťaž... Teraz zostáva zaskrutkovať potrebné informácie a použiť
Možnosti NFS naplno...

Namiesto záveru:

Ak stojíte pred otázkou organizácie výmeny dát na sieti, potom neváhajte a zvoľte NFS - NFS je o tri hlavy vyššie ako o hlavu vyššie ako
FTP je hlava a ramená nad Windows "gule", ale nie je tak ťažké nastaviť ...

NFS (sieťový súborový systém)- sieťový protokol na prístup k súborom a súborovému systému servera NFS, populárny v rodine OS Linux / UNIX, ako aj v rôznych úložných systémoch. Spoločnosť Microsoft, ktorá nechce zaostávať za konkurenciou, zaviedla základnú funkčnosť servera NFS späť vo Windows Server 2003 R2. V ďalších verziách serverových platforiem Microsoft sa rozšírili možnosti vstavaného servera NFS Windows, objavili sa nové funkcie a nástroje na správu. Server NFS v systéme Windows Server 2012 je ďalším míľnikom vo vývoji tejto technológie.

Čo nové ponúka vývojárom spoločnosti Microsoft v tomto produkte? Nové funkcie servera NFS v systéme Windows Server 2012:

  1. Podpora NFS v4.1... Podpora najnovšej verzie NFS 4.1 je jednou z hlavných inovácií v systéme Windows Server 2012. V porovnaní s NFS v3 poskytuje tento protokol vylepšené zabezpečenie, výkon a interoperabilitu, pričom plne implementuje všetky aspekty RFC 5661.
  2. Mimoriadny výkon. Využitím novej transportnej infraštruktúry RPC-XDR možno dosiahnuť optimálny výkon servera NFS hneď po vybalení bez potreby ladenia systému. Optimálny výkon sa dosahuje pomocou automatického ladenia vyrovnávacej pamäte, združovania pracovných procesov a dynamickej správy fondu na základe ich zaťaženia.
  3. Zjednodušené nasadenie a správa... Táto skutočnosť bola dosiahnutá vďaka:
    • - 40+ rutin prostredia PowerShell na konfiguráciu servera NFS a správu zdieľaných priečinkov
    • - jednoduché grafické rozhranie na správu, ktoré vám umožňuje súčasne spravovať zdieľania SMB aj NFS, ako aj nastavenia skríningu súborov atď.
    • - oprava RPC portu (port 2049) pre jednoduchú konfiguráciu firewallov
    • - nový poskytovateľ WMI v2
    • - zjednodušená identifikácia vďaka plochému mapovaciemu súboru
  4. Vylepšenia NFSv3... Vďaka rýchlemu odosielaniu upozornení na zlyhanie klientom pomocou Network Status Monitor (NSM) starší klienti NFS zvládajú zlyhanie rýchlejšie a lepšie, čo znamená menej prestojov.

Server NFS v systéme Windows Server 2012 bol teda výrazne vylepšený z hľadiska jednoduchosti nasadenia, škálovateľnosti, stability, dostupnosti, spoľahlivosti, zabezpečenia a kompatibility. K zdieľaným priečinkom je možné súčasne pristupovať cez SMB a NFS, čo znamená, že Windows Server 2012 možno použiť ako úložisko v heterogénnych sieťach.

Server NFS v systéme Windows Server 2012 je možné nainštalovať pomocou GUI a Powershell. Ak chcete nainštalovať server NFS pomocou grafického rozhrania, otvorte a v role Súborové a úložné služby začiarknite komponent Server pre NFS.

Po dokončení inštalácie komponentu NFS je potrebné reštartovať server.

Inštalácia rovnakej role pomocou Powershell je tiež jednoduchá, stačí spustiť príkaz:

Pridať funkciu systému Windows „FS-NFS-Service“

Konfigurácia zdieľaného priečinka NFS v systéme Windows Server 2012

Ďalej si ukážeme, ako pomocou roly, ktorú sme nainštalovali, vytvoriť zdieľanie NFS (zdieľaný priečinok) na serveri Windows. Existuje niekoľko spôsobov, ako znova vytvoriť zdieľanie NFS: pomocou grafického rozhrania alebo Powershell.

Vytvorte zdieľanie NFS pomocou konzoly Server Manager Console

Otvorte konzolu Správca servera, prejdite do sekcie Správa zdieľania(je vo vnútri roly Súborové a úložné služby).
V kontextovej ponuke spustite Sprievodcu novým zdieľaným adresárom - Nové zdieľanie...

Vyberte typ loptičiek NFSZdieľam -Rýchlo

Potom musíte nastaviť typ autentifikácie pre klientov NFS: prípadne použite autentifikáciu Kerberos aj anonymnú.

Predpokladajme, že spotrebiteľom vytvoreného prostriedku NFS bude virtualizačný server ESXi, v ktorom nie je možné autentifikovať pripojenia NFS (ESXi nepodporuje NFSv4). Preto bude typ autentifikácie Žiadna autentifikácia servera, berieme na vedomie aj možnosti Povoliť prístup nezmapovaného používateľa a Povoliť prístup nezmapovaného používateľa pomocou UID / GID.

Aby sme mierne ochránili vytvorenú zdieľanú zložku NFS pred prístupom tretích strán, obmedzíme prístup k prostriedku NFS podľa IP adresy klienta.

Hostiteľ: 192.168.1.100
Kódovanie jazyka: VEĽKÁ5
Povolenia na zdieľanie: Čítaj píš
Povoliť prístup root: Áno

Ďalej zostáva skontrolovať, či na úrovni NTFS má používateľ, ku ktorému je pripájaný používateľ namapovaný, prístup na čítanie/zápis (ak sa rozhodnete použiť anonymný prístup, budete musieť dať používateľovi Everyone plné práva na r/w na NTFS úroveň).

Ako vytvoriť zdieľanie NFS pomocou Powershell

Poďme vytvoriť novú zdieľanú zložku NFS:

New-NfsShare -Názov "NFS" -Cesta "d: \ zdieľania \ nfr" -AllowRootAccess $ true -Povolenie na čítanie -Autentifikácia sys

Povolme prístup k loptičke pre IP adresu 192.168.1.100 a nastavme kódovanie na BIG5 (možnosť prezerania obsahu loptičiek NFS pre klienta ESXi).

Grant-NfsSharePermission -Name “NFS” -ClientName 192.168.1.100 -ClientType hostiteľ -LanguageEncoding BIG5

Vytvorená NFS guľa môže byť použitá napríklad ako NFS-datastore vo virtualizačnom prostredí alebo na prístup k dátam z iných Unixových klientov. Ako pripojiť zdieľanie NFS v systéme Windows - klienti je popísané v článku.

# image.jpg Nie je to zlý čas, čitatelia a hostia môjho blogu. Medzi príspevkami bola veľmi dlhá prestávka, ale som späť v boji). V dnešnom článku zvážim Prevádzka protokolu NFS a konfigurácia servera NFS a klienta NFS v systéme Linux.

Úvod do NFS

NFS (Sieťový súborový systém- sieťový súborový systém) podľa mňa - ideálne riešenie v lokálnej sieti, kde potrebujete rýchlu (rýchlejšie ako SAMBA a menej náročné na zdroje v porovnaní so vzdialenými súborovými systémami so šifrovaním - sshfs, SFTP atď...) výmenu dát a základným kameňom nie je bezpečnosť prenášaných informácií. protokol NFS umožňuje pripojenie vzdialených súborových systémov cez sieť do lokálneho adresárového stromu, ako keby to bol pripojený systém súborov na disku.

Lokálne aplikácie však môžu pracovať so vzdialeným súborovým systémom ako s lokálnym. Ale musíte byť opatrní (!). nastavenie NFS, pretože s určitou konfiguráciou je možné pozastaviť operačný systém klienta a čakať na nekonečné I / O.

protokol NFS na základe práce protokol RPC, čo je stále v rozpore s mojím chápaním)), takže materiál v článku bude trochu vágny ... Skôr ako budete môcť použiť NFS, či už ide o server alebo klienta, musíte sa uistiť, že vaše jadro podporuje súborový systém NFS . Môžete skontrolovať, či jadro podporuje súborový systém NFS, vyhľadaním príslušných riadkov v súbore / proc / filesystems:

ARCHIV ~ # grep nfs / proc / súborové systémy nodev nfs nodev nfs4 nodev nfsd

Ak sa uvedené riadky nezobrazujú v súbore / proc / filesystems, musíte nainštalovať balíky popísané nižšie. To s najväčšou pravdepodobnosťou umožní inštaláciu závislých modulov jadra na podporu príslušných súborových systémov.

Ak sa po nainštalovaní balíkov v uvedenom súbore nezobrazí podpora NFS, bude potrebné prekompilovať jadro s povolenou touto funkciou.

História Sieťový súborový systém

protokol NFS vyvinutý spoločnosťou Sun Microsystems a vo svojej histórii má štyri verzie. NFSv1 bol vyvinutý v roku tisíc deväťsto osemdesiat deväť a bol experimentálny a bežal na protokole UDP. Verzia jedna je opísaná v RFC 1094.

NFSv2 bol vydaný v rovnakom tisícdeväťstoosemdesiatdeväť, opísaný rovnakým RFC1094 a tiež založený na protokole UDP, pričom vám umožňuje čítať aspoň 2 GB zo súboru. NFSv3 bol dokončený v One K995 a opísaný v RFC 1813.

Hlavnými inováciami tretej verzie bola podpora veľkých súborov, pridaná podpora protokolu TCP a veľké pakety TCP, čo výrazne urýchlilo fungovanie technológie. NFSv4 bol vylepšený v Two Thousand a opísaný v RFC 3010, v Two Thousand Years revidovaný a opísaný v RFC 3530.

Verzia 4 obsahovala vylepšenia výkonu, podporu rôznych autentifikačných nástrojov (konkrétne Kerberos a LIPKEY s implementáciou protokolu RPCSEC GSS) a ACL (typy POSIX aj Windows). NFS v4.1 bol schválený IESG v roku 2000 a dostal číslo RFC 5661.

Hlavnou inováciou verzie 4.1 je špecifikácia pNFS - Parallel NFS, mechanizmus pre paralelný prístup klienta NFS k údajom mnohých distribuovaných serverov NFS. Prítomnosť takéhoto mechanizmu vo vzorovom sieťovom súborovom systéme pomôže vybudovať distribuované „cloudové“ úložiská a informačné systémy.

NFS server

Odkedy máme NFS- toto je siete súborový systém, musíte nakonfigurovať siete v systéme Linux. (Môžete si prečítať aj článok o hlavných konceptoch sietí). Ďalej musíte nainštalovať príslušný balík. Na Debiane je to balík nfs-kernel-server a nfs-common a na RedHat je to balík nfs-utils.

A tiež je potrebné povoliť spustenie imp na vhodných úrovniach behu (príkaz v RedHat je / sbin / chkconfig nfs on, v Debiane - /usr/sbin/update-rc.d nfs-kernel-server defaults).

Inštalované balíky v Debiane sa spúšťajú v nasledujúcom poradí:

ARCHIV ~ # ls -la /etc/rc2.d/ | grep nfs lrwxrwxrwx Jeden koreňový koreň 20. okt 1811 15:02 S15nfs-common -> ../init.d/nfs-common lrwxrwxrwx Jeden koreňový koreň 20 sedem 20. okt dva> 01:23 S16nfs. .d / nfs-kernel-server

Inými slovami, beží ako prvý nfs-common, neskôr samotný server nfs-kernel-server.

V RedHate je situácia podobná, s jedinou výnimkou, že sa volá 1. skript nfslock a server sa jednoducho volá nfs... O nfs-common stránka debian nám doslova hovorí nasledovné: spoločné súbory pre klienta a server NFS, tento balík je potrebné nainštalovať na počítač, ktorý bude fungovať ako klient alebo server NFS.

Balík obsahuje programy: lockd, statd, showmount, nfsstat, gssd a idmapd. Pri pohľade na obsah spúšťacieho skriptu /etc/init.d/nfs-common môžete sledovať nasledujúcu postupnosť práce: skript kontroluje prítomnosť spustiteľného binárneho súboru /sbin/rpc.statd, kontroluje prítomnosť v súboroch / etc / default / nfs-common, / etc / fstab a / etc / exporty vlastností vyžadujúcich spustenie ims idmapd a gssd, spustí démona /sbin/rpc.statd, potom pred spustením /usr/sbin/rpc.idmapd a /usr/sbin/rpc.gssd skontroluje prítomnosť týchto spustiteľných binárnych súborov, potom diabolka /usr/sbin/rpc.idmapd skontroluje prítomnosť modulov jadra sunrpc , nfs a nfsd a tiež podpora pre súborový systém rpc_pipefs v jadre (inými slovami, jeho prítomnosť v súbore / proc / filesystems), ak je všetko úspešné, spustí sa /usr/sbin/rpc.idmapd... Navyše pre imp /usr/sbin/rpc.gssd skontroluje modul jadra rpcsec_gss_krb5 a spustí démona.

Ak si prezeráte obsah Spúšťací skript servera NFS na Debiane (/etc/init.d/nfs-kernel-server), potom môžete sledovať nasledujúcu postupnosť: pri spustení skript skontroluje existenciu súboru / etc / exports, prítomnosť modulu jadra nfsd, prítomnosť podpory súborového systému NFS v jadre Linuxu (inými slovami v súbore / proc / filesystems), ak je všetko na svojom mieste, spustí sa démon /usr/sbin/rpc.nfsd, potom skontroluje, či je nastavený parameter NEED_SVCGSSD (nastavený v súbore možností servera / etc / default / nfs-kernel-server) a ak je nastavený, spustí démona /usr/sbin/rpc.svcgssd, posledný spustí imp /usr/sbin/rpc.mountd... Z tohto skriptu to môžete vidieť Prevádzka NFS servera pozostáva z démoni rpc.nfsd, rpc.mountd a ak sa používa overenie Kerberos, potom démon rcp.svcgssd. V červenom klobúku stále beží diabol rpc.rquotad a nfslogd (z nejakého dôvodu som nenašiel informácie o tomto démonovi a dôvodoch jeho absencie v Debiane, zrejme vymazané ...).

Z toho je zrejmé, že server Network File System pozostáva z nasledujúcich procesov (čítanie - démoni) nachádza sa v adresároch / sbin a / usr / sbin:

  • rpc.statd- Démon monitorujúci stav siete (aka Network Status Monitor, aka NSM). Umožňuje vám elegantne uvoľniť zámok po havárii / reštarte. Na nahlásenie porušenia používa program / usr / sbin / sm-notify. Bes statd funguje na serveroch aj klientoch. Predtým bol tento server potrebný na fungovanie rpc.lockd, ale jadro je teraz zodpovedné za blokovanie (poznámka: ak sa nemýlim # image.jpg). (RPC program 100 tisíc 20 jedna a 100 tisíc 20 štyri - v nových verziách)
  • rpc.lockd- Uzamknutie imp lockd (známy ako správca zámkov NFS (NLM)) spracováva požiadavky na uzamknutie súborov. Blokovací démon funguje na serveroch aj klientoch. Klienti požadujú uzamknutie súborov a servery to umožňujú. (zastarané a v nových distribúciách nepoužívané ako diabol. Jeho funkcie v moderných distribúciách (s jadrom starším ako 2.2.18) plní jadro, presnejšie kernel modul (lockd).) (RPC program 100024)
  • rpc.nfsd- Hlavným démonom servera NFS je nfsd (v nových verziách sa niekedy nazýva nfsd4). Tento démon obsluhuje požiadavky klientov NFS. Parameter RPCNFSDCOUNT v súbore / etc / default / nfs-kernel-server v Debiane a NFSDCOUNT v súbore / etc / sysconfig / nfs v RedHat určuje počet imps, ktoré sa majú spustiť (štandardne - 8). (RPC program 100003)
  • rpc.mountd- Unmountable NFS mountd spracováva požiadavky klientov na pripojenie adresárov. Pripojený imp beží na serveroch NFS. (RPC program 100005)
  • rpc.idmapd- Bes idmapd pre NFSv4 na serveri konvertuje miestnych používateľov uid / gid na formát názov @ doména a služba na klientovi konvertuje názvy používateľov / skupín, ako napríklad názov @ doména, na lokálne identifikátory používateľov a skupín (podľa konfiguračného súboru / atď. /idmapd.conf, podrobnosti nájdete v man idmapd.conf) :.
  • navyše v starších verziách NFS sa používali démoni: nfslogd- žiadne žurnály NFS nezachytávajú aktivitu pre exportované súborové systémy, bežia na serveroch NFS a rquotad- server vzdialených kvót poskytuje informácie o používateľských kvótach vo vzdialených súborových systémoch, môže pracovať na serveroch aj na klientoch (RPC program 100011)

V NFSv4 sa pri používaní Kerberos navyše spúšťajú démoni:

  • rpc.gssd- Bes NFSv4 poskytuje metódy autentifikácie cez GSS-API (Kerberos Authentication). Funguje na klientovi a serveri.
  • rpc.svcgssd- NFSv4 server imp, ktorý poskytuje autentifikáciu klienta na strane servera.

portmap a protokol RPC (Sun RPC)

Okrem vyššie uvedených balíkov je pre správne fungovanie NFSv2 a v3 potrebný ďalší balík portmap(v novších distribúciách nahradené premenovaným v rpcbind). Tento balík sa zvyčajne inštaluje automaticky s NFS ako závislý a implementuje prevádzku servera RPC, inými slovami, je zodpovedný za dynamické prideľovanie portov pre niektoré služby registrované na serveri RPC.

Doslova podľa dokumentácie ide o server, ktorý konvertuje čísla programov Remote Procedure Call (RPC) na čísla portov TCP / UDP. portmap funguje na niekoľkých entitách: volania alebo požiadavky RPC, porty TCP / UDP, verzia protokolu (tcp alebo udp), čísla programov a verzie programu. Portmap imp sa spúšťa skriptom /etc/init.d/portmap pred spustením služieb NFS.

Stručne povedané, úlohou servera vzdialeného volania procedúr (RPC) je spracovávať volania RPC (aka procedúry RPC) z miestnych a vzdialených procesov.

Pomocou RPC volaní sa služby registrujú alebo odstraňujú do/z mapovača portov (aka mapovač portov, aka portmap, aka portmapper, aka rpcbind, v novších verziách) a klienti používajúci volania RPC smerujúce požiadavky na mapovač portov získajú správne informácie. Užívateľsky prívetivé názvy programových služieb a ich zodpovedajúce čísla sú definované v / etc / rpc.

Keď služba odoslala zodpovedajúcu požiadavku a zaregistrovala sa na serveri RPC v mapovači portov, server RPC priradí porty TCP a UDP službe, na ktorej bola služba spustená, a uloží v sebe zodpovedajúce informácie o spustenej službe (o názov), jedinečné číslo služby (po dohode s / etc / rpc), o protokole a porte, na ktorom služba beží a o verzii služby a na požiadanie poskytuje uvedené informácie klientom. Samotný prevodník portov má číslo programu (100000), číslo verzie 2, port TCP 100 jedenásť a port UDP 111.

Vyššie som pri špecifikovaní zloženia škriatkov servera NFS uviedol hlavné čísla programov RPC. Týmto odsekom som vás určite trochu zmiatol, preto poviem hlavnú frázu, ktorá by to mala objasniť: hlavnou funkciou mapovača portov je vrátiť mu (klientovi) port, na ktorom je požadovaný program beží. Ak teda klient potrebuje pristupovať k RPC so špecifickým číslom programu, musí najprv kontaktovať proces mapy portov na serveri a nájsť číslo komunikačného portu so službou RPC, ktorú potrebuje.

Činnosť servera RPC môže byť reprezentovaná nasledujúcimi krokmi:

Na získanie informácií zo servera RPC sa používa utilita rpcinfo. Ak zadáte vlastnosti -p hostiteľa, program zobrazí zoznam všetkých registrovaných programov RPC na hostiteľovi. Bez zadania hostiteľa program zobrazí služby na localhost. Príklad:

ARCHIV ~ # rpcinfo -p verzia prog-ma proto port 100 tisíc Dva tcp 100 jedenásť portmapper 100 tisíc Dva udp 100 jedenásť portmapper 100 tisíc 20 štyri Jeden udp 50 deväťtisíc štyristo 50 jeden stav 100 tisíc 20 štyri Jednosto osemsto tcp 70 stav dvoch 100 tisíc 20 jeden Jeden udp 40 štyri tisíc tristo 10 nlockmgr 100 tisíc 20 jeden Tri udp 40 štyri tisíc tristo 10 nlockmgr 100 tisíc 20 jeden Štyri udp 40 štyri tisíc tristo 10 nlockmgr 100 tisíccc 2000 tisíc osemsto 50 jeden nlockmgr 100 tisíc 20 jeden Tri tcp 40 štyri tisíce osemsto 50 jeden nlockmgr 100 tisíc 20 jeden Štyri tcp 40 štyri tisíc osemsto 50 jeden nlockmgr 100 tisíc tri Dva tcp dva tisíce 40 deväť nfs 100 tisíc nfs 100 tisíc tisíc 40 deväť nfs 100 tisíc tri Štyri tcp Dve tisícky 40 deväť nf 100 tisíc tri Dva udp Dve tisícky 40 deväť nfs 100 tisíc tri Tri udp Dve tisícky 40 deväť nfs 100 tisíc tri Štyri udp Dva tisícky 40 deväť nfs 100 pud 5 tisíc 5 tisíc tristo 6 namontovaný 100 tisíc 5 Jeden tcp 40 tisíc štyristo 5 mountd 100 tisíc 5 Dva udp 50 tisíc tristo 6 mountd 100 tisíc 5 Dva tcp 40 tisíc štyristo 5 mountd 100 tisíc 5 Tri udp 50 tisíc tristo 6 mountd 100 tisíc 5 Tri tcp 40 tisíc štyristo 5 mountd

Ako vidíte, rpcinfo označuje (v stĺpcoch zľava doprava) registrované číslo programu, verziu, protokol, port a názov.

Pomocou rpcinfo môžete odstrániť registráciu programu alebo získať informácie o jednotlivých službách RPC (ďalšie možnosti nájdete v časti man rpcinfo). Ako môžete vidieť, sú zaregistrovaní démoni, verzia portmapper dva na portoch udp a tcp, verzia rpc.statd jedna na portoch udp a tcp, správca zámkov NFS verzie 1,3,4, žiadna verzia servera nfs 2,3,4, ako ako aj verzie bez montáže 1,2,3.

NFS server (presnejšie bez rpc.nfsd) prijíma požiadavky od klienta vo forme UDP datagramov na porte 2049. Napriek tomu, že NFS pracuje s mapovačom portov, ktorý umožňuje serveru využívať dynamicky prideľované porty, UDP port 409 je vo väčšine implementácií pevne zakódovaný do NFS.

Prevádzka protokolu sieťového systému súborov

Pripojte vzdialený NFS

Proces pripojenia vzdialeného súborového systému NFS môže byť znázornený na nasledujúcom diagrame:

Popis protokolu NFS pri pripájaní vzdialeného adresára:

  1. RPC server je spustený na serveri a klientovi (zvyčajne pri zavádzaní), obsluhovaný procesom portmapper a zaregistrovaný na portoch tcp / 111 a udp / 111.
  2. Spustia sa služby (rpc.nfsd, rpc.statd atď.), ktoré sú zaregistrované na serveri RPC a zaregistrované na náhodných sieťových portoch (ak v nastaveniach služby nie je určený statický port).
  3. príkaz mount na klientskom počítači odošle do jadra požiadavku na pripojenie sieťového adresára s uvedením typu súborového systému, hostiteľa a prakticky - adresára, jadro odošle požiadavku RPC procesu mapy portov na serveri NFS na udp / 111 port (ak klient nemá funkciu na prácu cez tcp )
  4. Jadro servera NFS sa pýta RPC na prítomnosť imp rpc.mountd a vracia sieťový port, na ktorom beží imp, do jadra klienta.
  5. mount odošle požiadavku RPC na port, na ktorom beží rpc.mountd. V tomto bode môže server NFS overiť klienta na základe jeho IP adresy a čísla portu, aby zistil, či klient môže pripojiť určený súborový systém.
  6. Mountless vráti popis požadovaného súborového systému.
  7. Príkaz klienta mount vydá systémové volanie mount, aby naviazal deskriptor súboru získaný v kroku 5 na lokálny bod pripojenia na klientskom hostiteľovi. Deskriptor súboru je uložený v kóde klienta NFS a od tohto momentu bude akýkoľvek prístup používateľských procesov k súborom v súborovom systéme servera používať ako východiskový bod deskriptor súboru.

Komunikácia medzi klientom a serverom NFS

Bežný prístup k vzdialenému súborovému systému možno opísať takto:

Popis procesu prístupu k súboru umiestnenému na serveri NFS:

Nastavenie servera NFS

Ladenie servera vo všeobecnosti ide o špecifikáciu lokálnych adresárov, ktoré môžu byť pripojené vzdialenými systémami v súbore / etc / exports. Táto akcia sa nazýva hierarchia exportných adresárov... Hlavnými zdrojmi informácií o exportovaných adresároch sú nasledujúce súbory:

  • / etc / exportuje- hlavný konfiguračný súbor, ktorý ukladá konfiguráciu exportovaných adresárov. Používa sa pri spustení NFS a pomocného programu exportfs.
  • / var / lib / nfs / xtab- obsahuje zoznam adresárov pripojených vzdialenými klientmi. Používa ho súbor imp rpc.mountd, keď sa klient pokúša pripojiť hierarchiu (vytvorí sa záznam o pripojení).
  • / var / lib / nfs / etab- zoznam adresárov, ktoré môžu byť pripojené vzdialenými systémami, s uvedením všetkých funkcií exportovaných adresárov.
  • / var / lib / nfs / rmtab- zoznam adresárov, ktoré sa momentálne neexportujú.
  • / proc / fs / nfsd- špeciálny súborový systém (kernel 2.6) na správu servera NFS.
    • exportov- zoznam aktívnych exportovaných hierarchií a klientov, do ktorých boli exportované, tiež vlastnosti. Jadro získava tieto informácie z / var / lib / nfs / xtab.
    • vlákna- obsahuje počet vlákien (možno tiež zmeniť)
    • pomocou filehandle môžete získať ukazovateľ súboru
    • atď...
  • / prec / net / rpc- obsahuje nespracované štatistiky, ktoré je možné získať pomocou nfsstat, ako aj rôznych vyrovnávacích pamätí.
  • / var / run / portmap_mapping- informácie o zaregistrovaných v službách RPC

Poznámka: vo všeobecnosti je na internete veľa výkladov a formulácií účelu súborov xtab, etab, rmtab, neviem komu mám veriť # image.jpg Aj na http://nfs.sourceforge.net/ , výklad nie je jednoznačný.

Konfigurácia súboru / etc / exportuje súbor

Súbor / etc / exports je zvyčajne jediným súborom, ktorý potrebuje úpravu pre funkciu servera NFS. Tento súbor riadi nasledujúce vlastnosti:

  • Akí klienti môže pristupovať k súborom na serveri
  • Ktoré hierarchie k adresárom na serveri má prístup každý klient
  • Aké budú vlastné mená zákazníkov byť zobrazené na miestne používateľské mená

Nezáleží na tom, ktorý riadok v súbore exportov má nasledujúci formát:

export_point klient1 (funkcie) [klient2 (funkcie) ...]

Kde exportný_bod absolútnu cestu exportovanej hierarchie adresárov, klient1 - n názov 1 alebo viacerých klientov alebo IP adries oddelených medzerami, ktoré sa môžu pripojiť exportný_bod. Funkcie načrtnite pravidlá pripojenia pre klienta uvedené pred možnosťami.

Tu je jeden obyčajný príklad exportuje konfiguráciu súboru:

ARCHIV ~ # cat / etc / exporty / archiv1 súborov (rw, synchronizácia) 10.0.0.1 (ro, synchronizácia) 10.0.230.1/24 (ro, synchronizácia)

V tomto príklade majú súbory a počítače 10.0.0.1 povolený prístup k bodu exportu / archívu1, zatiaľ čo hostiteľ súborov je na čítanie/zápis a hostiteľ 10.0.0.1 a podsieť 10.0.230.1/24 sú len na čítanie.

Popisy hostiteľa v exportoch / etc / sú povolené v nasledujúcom formáte:

  • Názvy jednotlivých uzlov sú opísané ako súbory alebo súbory.DOMAIN.local.
  • Masky domén sú opísané v nasledujúcom formáte: * DOMAIN.local zahŕňa všetky uzly v doméne DOMAIN.local.
  • Podsiete sú špecifikované ako páry IP adresa / maska. Napríklad: 10.0.0.0/255.255.255.0 zahŕňa všetky uzly, ktorých adresy začínajú 10.0.0.
  • Nastavenie názvu skupiny siete @myclients, ktorá má prístup k prostriedku (pri použití servera NIS)

Bežné funkcie exportu pre hierarchiu adresárov

Súbor exportov používa nasledujúce všeobecné funkcie(funkcie používané štandardne vo väčšine systémov sú uvedené ako prvé v zátvorkách – nie štandardne):

  • auth_nlm (no_auth_nlm) alebo secure_locks (insecure_locks)- označuje, že server by mal vynútiť autentifikáciu žiadosti o uzamknutie (pomocou protokolu NFS Lock Manager).
  • nohide (skryť)- ak server exportuje dve hierarchie adresárov, pričom všetky sú vnorené (pripojené) v druhej. Klient musí samozrejme pripojiť druhú (podradenú) hierarchiu, inak bude bod pripojenia podradenej hierarchie vyzerať ako prázdny adresár. Výsledkom funkcie nohide je 2. hierarchia adresárov bez triviálneho pripojenia. (poznámka: Túto možnosť som nemohol vynútiť, aby fungovala ...)
  • ro (rw)- Umožňuje iba požiadavky na čítanie (zápis). (V konečnom dôsledku - či čítanie/zápis alebo nie, sa určuje na základe oprávnení systému súborov, zatiaľ čo server nedokáže rozlíšiť požiadavku na čítanie súboru od požiadavky na vykonanie, takže umožňuje čítanie, ak má používateľ oprávnenia na čítanie alebo spustenie.)
  • bezpečný (nezabezpečený)- žiada, aby požiadavky NFS prichádzali zo zabezpečených portov (< 1024), чтобы программа без прав root не могла монтировать иерархию каталогов.
  • subtree_check (no_subtree_check)- Ak sa exportuje podadresár súborového systému, ale nie celý súborový systém, server skontroluje, či sa požadovaný súbor nachádza v exportovanom podadresári. Vypnutím overenia sa zníži bezpečnosť, ale zvýši sa rýchlosť prenosu údajov.
  • synchronizácia (asynchrónna)- označuje, že server by mal odpovedať na požiadavky až po zapísaní konfigurácií vykonaných týmito požiadavkami na disk. Funkcia async hovorí serveru, aby nečakal na zápis informácií na disk, čo zvyšuje výkon, ale znižuje spoľahlivosť, pretože ak je spojenie prerušené alebo zariadenie zlyhá, informácie sa môžu stratiť.
  • wdelay (no_wdelay)- Informuje server, aby oddialil vykonanie požiadaviek na zápis, ak je čakajúca následná požiadavka na zápis, pričom údaje sa zapisujú do väčších blokov. To zlepšuje výkon pri odosielaní veľkých frontov na zápis. no_wdelay určuje, že sa nemá odložiť vykonanie príkazu na zápis, čo môže byť užitočné, ak server prijíma neobmedzený počet príkazov, ktoré nie sú navzájom prepojené.

Export symbolických odkazov a súborov zariadenia. Pri exporte hierarchie adresárov obsahujúcich symbolické odkazy musí byť objekt odkazu prístupný pre klientsky (vzdialený) systém, inými slovami, musí byť splnené jedno z nasledujúcich pravidiel:

  • odkazovaný objekt musí existovať v klientskom súborovom systéme
  • je potrebné exportovať a pripojiť objekt prepojenia

Súbor zariadenia odkazuje na rozhranie jadra Linuxu. Keď exportujete súbor zariadenia, exportuje sa toto rozhranie. Ak klientsky systém nemá zariadenie rovnakého typu, exportované zariadenie nebude fungovať.

V klientskom systéme môžete pri pripájaní objektov NFS použiť voľbu nodev, aby sa nepoužili súbory zariadení v pripojených adresároch.

Predvolené funkcie sa môžu líšiť od systému k systému, možno ich zobraziť v súbore / var / lib / nfs / etab. Po opísaní exportovaného adresára v exportoch / etc / a reštartovaní servera NFS sa všetky chýbajúce funkcie (čítaj: predvolené funkcie) prejavia v súbore / var / lib / nfs / etab.

Funkcie na zobrazenie (priraďovanie) ID používateľov

Pre lepšie pochopenie nasledujúceho by som vám odporučil prečítať si článok Správa používateľov systému Linux. Každý používateľ Linuxu má svoje vlastné UID a hlavné GID, ktoré sú popísané v súboroch / etc / passwd a / etc / group.

Server NFS predpokladá, že operačný systém vzdialeného hostiteľa overil používateľov a priradil im správne UID a GID. Exportovanie súborov poskytuje používateľom v klientskom systéme rovnaký prístup k týmto súborom, ako keby sa prihlasovali priamo na server. Preto, keď klient NFS odošle požiadavku na server, server použije UID a GID na identifikáciu používateľa v lokálnom systéme, čo môže viesť k niektorým problémom:


Nasledujúce funkcie nastavujú pravidlá pre mapovanie vzdialených používateľov na miestnych:

Príklad použitia súboru mapovania používateľov:

ARCHIV ~ # cat / etc / file_maps_users # Mapovanie používateľov # vzdialený lokálny komentár uid 0-50 Tisícdva # mapovanie používateľov na vzdialené UID 0-50 na miestne UID Tisícdva gid 0-50 Tisícdva # mapovanie používateľov na / rozpätie vzdialeného GID 0-50 až po miestny GID 1002

Správa servera NFS

Server NFS je spravovaný pomocou nasledujúcich nástrojov:

  • nfsstat
  • showmsecure (nezabezpečený) unt
  • exportfs

nfsstat: Štatistiky NFS a RPC

Pomôcka nfsstat vám umožňuje zobraziť štatistiky serverov RPC a NFS. Funkcie príkazov je možné zobraziť v man nfsstat.

showmount: zobrazenie informácií o stave NFS

Pomôcka Showmount spýta sa vzdialeného hostiteľa na rpc.mountd pre pripojené súborové systémy. Štandardne sa vráti zoradený zoznam klientov. kľúče:

  • --všetko- zobrazí sa zoznam klientov a bodov pripojenia s uvedením, kam klient pripojil adresár. Tieto informácie nemusia byť spoľahlivé.
  • --adresáre- je uvedený zoznam bodov pripojenia
  • -- vývoz- poskytuje zoznam exportovaných súborových systémov na základe presvedčení nfsd

Ak spustíte showmount bez argumentov, konzola zobrazí informácie o systémoch, ktoré sa môžu pripojiť miestne zbierky. Napríklad hostiteľ ARCHIV nám poskytuje zoznam exportovaných adresárov s IP adresami hostiteľov, ktorí majú povolené pripojiť určené kolekcie:

FILES ~ # showmount --exportuje archív Exportovať zoznam pre archív: / archiv-big 10.0.0.2 / archiv-small 10.0.0.2

Ak v argumente zadáte názov hostiteľa / IP, zobrazia sa informácie o tomto hostiteľovi:

ARCHIV ~ # súbory showmount clnt_create: RPC: Program nie je zaregistrovaný # táto správa nám hovorí, že démon NFSd nebeží na hostiteľovi FILES

exportfs: spravujte exportované adresáre

Tento príkaz slúži na exportované kolekcie, dáta v súbore / etc / exportuje, bude presnejšie zapisovať neslúži, ale synchronizuje sa so súborom / var / lib / nfs / xtab a odstráni neexistujúce z xtab. exportfs sa vykoná, keď sa nfsd imp spustí s argumentom -r. Nástroj exportfs v režime jadra 2.6 hovorí s démonom rpc.mountd prostredníctvom súborov v adresári / var / lib / nfs / a nehovorí priamo s jadrom. Vypíše aktuálne exportované súborové systémy bez riadkov.

Vlastnosti exportu:

  • [client: directory-name] - pridať alebo odstrániť určený súborový systém pre určeného klienta)
  • -v - zobrazí viac informácií
  • -r - znova exportovať všetky kompilácie (synchronizácia / etc / exports a / var / lib / nfs / xtab)
  • -u - odstrániť zo zoznamu exportovaných
  • -a - pridanie alebo odstránenie všetkých súborových systémov
  • -o - funkcie oddelené čiarkami (podobne ako možnosti používané v exportoch / etc /; teda môžete zmeniť funkcie už pripojených súborových systémov)
  • -i - pri pridávaní nepoužívať / etc / exporty, iba vlastnosti aktuálneho príkazového riadku
  • -f - vynuluje zoznam exportovaných systémov v jadre 2.6;

NFS klient

Pred prístupom k súboru na vzdialenom súborovom systéme musí klient (klient). namontovať ho a získajte zo servera ukazovateľ na to. Montáž NFS dá sa s tým urobiť mount príkazy alebo s pomocou 1 zo šľachtených automatických assemblerov (amd, autofs, automount, supermount, superpupermount). Proces montáže je dokonale znázornený na obrázku vyššie.

zapnuté Klienti NFS nepotrebuješ spúšťať žiadnych démonov, funkcie klienta vytvára modul jadra kernel / fs / nfs / nfs.ko, ktorý sa používa pri pripájaní vzdialeného súborového systému. Exportované kolekcie zo servera je možné nainštalovať na klienta nasledujúcimi spôsobmi:

  • manuálne pomocou príkazu mount
  • automaticky pri bootovaní, keď pripájate súborové systémy uvedené v / etc / fstab
  • automat s pomocou démona autofs

Tretiu metódu s autofs v tomto článku nebudem uvažovať kvôli veľkému množstvu informácií. Možno v ďalších článkoch bude samostatný popis.

Pripojte systém sieťových súborov pomocou príkazu mount

Príklad použitia príkazu mount je uvedený v príspevku Príkazy na ovládanie blokových zariadení. Tu je príklad príkazu mount na pripojenie súborového systému NFS:

SÚBORY ~ # mount -t nfs archív: / archiv-malý / archívy / archiv-malý SÚBORY ~ # mount -t nfs -o ro archív: / archív-veľký / archívy / archív-veľké SÚBORY ~ # mount ..... .. archív: / archív-malý na / archívy / archív-malý typ nfs (rw, addr = 10.0.0.6) archív: / archív-veľký na / archívy / archív-veľký typ nfs (ro, addr = 10.0.0.6)

Prvý príkaz pripojí exportovaný adresár / archiv-small na archívnom serveri do lokálneho bodu pripojenia / archivs / archiv-small s predvolenými možnosťami (inými slovami čítanie / zápis).

Predsa príkaz mount v posledných distribúciách vie uvažovať o tom, aký typ súborového systému sa používa bez udania typu, stále je lepšie zadať parameter -t nfs. 2. príkaz pripojí exportovaný adresár / archiv-big na archívnom serveri do lokálneho adresára / archivs / archiv-big s možnosťou iba na čítanie (ro). Príkaz Mount bez funkcií nám jasne ukazuje výsledok montáže. Okrem funkcie len na čítanie (ro), iné hlavné funkcie pri montáži NFS:

  • nosuid- Táto funkcia zabraňuje vykonávaniu programov setuid z pripojeného adresára.
  • nodev(žiadne zariadenie) – Táto funkcia zakazuje používanie špeciálnych súborov so znakmi a blokov ako zariadení.
  • zámok (nolock)- Umožňuje uzamknutie NFS (predvolené). nolock deaktivuje uzamykanie NFS (nebeží odomknuté) a je praktický pre staršie servery, ktoré nepodporujú uzamykanie NFS.
  • mounthost = meno- Názov hostiteľa, na ktorom je spustený nepripojený NFS, je pripojený.
  • mountport = n - Port používaný démonom namontovaný.
  • prístav = n- port používaný na pripojenie k serveru NFS (štandardne 2049, ak rpc.nfsd besp nie je zaregistrovaný na serveri RPC). Ak n = 0 (predvolená hodnota), potom NFS požiada mapu portov na serveri, aby našiel port.
  • veľkosť rs = n(veľkosť bloku čítania) – Počet bajtov prečítaných naraz zo servera NFS. Štandardná - 4096.
  • wsize = n(veľkosť bloku zápisu) – Počet bajtov zapísaných naraz na server NFS. Štandardná - 4096.
  • TCP alebo udp- Na pripojenie NFS použite protokol TCP alebo UDP.
  • bg- Ak stratíte prístup k serveru, zopakujte testy na pozadí, aby sa proces zavádzania systému neprekrýval.
  • fg- Ak sa stratí prístup k serveru, zopakujte testy v prioritnom režime. Táto možnosť môže zablokovať proces zavádzania opakovanými pokusmi o pripojenie. Z tohto dôvodu sa parameter fg používa predovšetkým na účely ladenia.

Funkcie ovplyvňujúce ukladanie atribútov do vyrovnávacej pamäte pri pripojení NFS

Atribúty súboru uložené v inodoch (inodes), ako je čas úpravy, veľkosť, pevné odkazy, vlastník, sa zvyčajne občas menia pre bežné súbory a ešte menej často pre adresáre. Mnohé programy, ako napríklad ls, pristupujú k súborom iba na čítanie a nemenia atribúty alebo obsah súborov, ale plytvajú systémovými zdrojmi na drahé sieťové operácie.

Aby ste predišli zbytočnému plytvaniu zdrojmi, môžete cache dané atribúty... Jadro používa čas úpravy súboru na zistenie, či je vyrovnávacia pamäť neaktuálna, porovnaním času úpravy vo vyrovnávacej pamäti s časom úpravy samotného súboru. Vyrovnávacia pamäť atribútov sa pravidelne aktualizuje v súlade s týmito parametrami:

  • ac (noac)(attrebute cache - cachovanie atribútov) - Umožňuje cachovanie atribútov (štandardne). Aj keď funkcia noac spomaľuje server, zabraňuje vypršaniu platnosti atribútu, keď viacerí klienti aktívne zapisujú informácie do zdieľanej hierarchie.
  • acdirmax = n(maximum súboru adresára vyrovnávacej pamäte atribútov) – maximálny počet sekúnd, počas ktorých NFS čaká pred aktualizáciou atribútov adresára (predvolená hodnota je 60 sekúnd)
  • acdirmin = n(minimum súboru adresára vyrovnávacej pamäte atribútov – minimum vyrovnávacej pamäte atribútov pre súbor adresára) – Malý počet sekúnd, ktoré NFS čaká pred aktualizáciou atribútov adresára (štandardne 30 sekúnd)
  • acregmax = n(maximum vyrovnávacej pamäte atribútov bežného súboru – maximum vyrovnávacej pamäte atribútov bežného súboru) – Maximálny počet sekúnd, počas ktorých NFS čaká pred aktualizáciou atribútov bežného súboru (predvolená hodnota je 60 sekúnd)
  • akregmín = n(minimum bežného súboru vo vyrovnávacej pamäti atribútov – minimum ukladania atribútov do vyrovnávacej pamäte pre obyčajný súbor) – Malý počet sekúnd, ktoré NFS čaká pred aktualizáciou atribútov bežného súboru (štandardne tri sekundy)
  • actimeo = n(časový limit vyrovnávacej pamäte atribútov - časový limit vyrovnávacej pamäte atribútov) - Prepíše hodnoty pre všetky vyššie uvedené možnosti. Ak nie je zadané actimeo, vyššie uvedené hodnoty sa nastavia na predvolené hodnoty.

Funkcie spracovania chýb NFS

Nasledujúce funkcie riadia, čo má NFS robiť, keď server neodpovedá alebo keď sa vyskytnú I/O chyby:

  • fg (bg)(popredie - popredie, pozadie - pozadie) - Vytvorte sondy na pripojenie popredia / pozadia neúspešného NFS.
  • tvrdá mäkká)- po dosiahnutí časového limitu zobrazí konzole správu "server neodpovedá" a pokračuje v pokusoch o pripojenie. S touto funkciou mäkké- keď nastane časový limit, hlási I/O chybu volajúcemu programu. (softvér sa neodporúča používať)
  • nointr (intr)(bez prerušenia) - Zabraňuje signálom prerušovať operácie so súbormi v pevne namontovanej adresárovej hierarchii, keď sa dosiahne dlhý časový limit. intr- umožňuje prerušenie.
  • retrans = n(hodnota opätovného prenosu) - Po n malých časových limitoch NFS vygeneruje veľký časový limit (štandardne 3). Dlhý časový limit zastaví vykonávanie operácií alebo zobrazí na konzole správu „server neodpovedá“ v závislosti od indikácie funkcie tvrdá / mäkká.
  • zopakovať = n(hodnota opakovania) – Počet minút, počas ktorých sa služba NFS pokúša o operácie pripojenia, kým sa vzdá (predvolene 10 000).
  • timeo = n(hodnota časového limitu) – Počet 10 sekúnd sekundy, ktoré služba NFS čaká pred opakovaným prenosom v prípade RPC alebo nízkeho časového limitu (predvolené 7). Táto hodnota sa zvyšuje s každým časovým limitom na vyššiu hodnotu 60 sekúnd alebo kým nedôjde k veľkému časovému limitu. V rušnej sieti, pomalom serveri alebo keď požiadavka prechádza cez viacero smerovačov alebo brán, zvýšenie tejto hodnoty môže zlepšiť výkon.

Automatické pripojenie NFS pri zavádzaní (popis súborových systémov v / etc / fstab)

Dotkol som sa popisu súboru / etc / fstab v príslušnom článku. V aktuálnom príklade zvážim niekoľko príkladov pripojenia súborových systémov NFS s popisom možností:

SÚBORY ~ # cat / etc / fstab | grep nfs archív: / archiv-small / archivs / archiv-small nfs rw, timeo = 4, rsize = 16384, wsize = 16384 Zero Nula nfs-server: / archiv-big / archívy / archiv-big nfs rw, timeo = 5 , tvrdý, fg nula 0

1. príklad pripojí súborový systém / archiv-small z hostiteľského archívu do bodu pripojenia / archívy / archiv-small, typ súborového systému je nfs (pre tento typ musí byť vždy zadaný), súborový systém sa pripojí pomocou možnosť čítania/zápisu (rw) ...

Hostiteľ archívu je pripojený cez rýchle lokálne prepojenie, takže parameter timeo bol znížený, aby sa zlepšil výkon, a hodnoty rsize a wsize sa výrazne zvýšili. Polia dump a fsck sú nastavené na nulu, aby tieto programy nemohli používať súborový systém pripojený k NFS.

2. príklad pripojí súborový systém / archiv-big z hostiteľského nfs-servera. Pretože sme pripojení k hostiteľovi nfs-server cez pomalé pripojenie, parameter timeo sa zvýši na 5 sekúnd (50 10 sekúnd) a parameter hard je tiež napevno zakódovaný, takže NFS pokračuje v prepájaní súborového systému po dlhom časovom limite , je nastavený aj parameter fg, takže keď sa systém nabootuje a hostiteľský nfs-server nie je dostupný, nezasekne sa.

Pred uložením konfigurácií do / etc / fstab sa uistite, že ste vyskúšali manuálnu montáž a uistite sa, že všetko funguje !!!

Zlepšenie výkonu NFS

Výkon NFS môže ovplyvniť niekoľko funkcií, najmä pri pomalých pripojeniach. Pri práci s pomalými a vysoko zaťaženými pripojeniami je lepšie použiť parameter hard, aby časové limity nespôsobili ukončenie programov. Musíte však vziať do úvahy, že ak pripojíte súborový systém cez NFS s parametrom hard cez fstab a vzdialený hostiteľ je nedostupný, systém sa pri zavádzaní zablokuje.

Jedným z najjednoduchších spôsobov, ako zlepšiť výkon NFS, je zvýšiť počet bajtov prenesených naraz. Veľkosť štyritisíc deväťdesiat 6 b je veľmi malá pre moderné rýchle pripojenia, zvýšením tejto hodnoty na osemtisíc 100 deväťdesiat dva alebo viac môžete experimentálne nájsť najlepšiu rýchlosť.

Tiež neprehliadnite a funkcie časového limitu... NFS čaká na odozvu na prenos dát po dobu uvedenú vo funkcii timeo, ak počas tejto doby nepríde žiadna odpoveď, vykoná sa opätovný prenos.

Pri vyťažených a pomalých pripojeniach však môže byť tento čas kratší ako čas odozvy servera a kapacita komunikačných kanálov, čo môže v konečnom dôsledku viesť k zbytočným opakovaným prenosom, ktoré spomaľujú prácu. Predvolene je čas 0,7 sekundy (700 milisekúnd) . po neodpovedaní do 700 ms server znova odošle a zdvojnásobí čakaciu dobu na 1,4 sekundy, nárast času bude pokračovať na vyššiu hodnotu 60 sekúnd. Ďalej, v závislosti od parametra tvrdý / mäkký, prebehne určitá akcia (pozri vyššie).

Ak chcete nájsť najlepší časo pre konkrétnu hodnotu prenášaného paketu (hodnoty rsize / wsize), použite príkaz ping:

SÚBORY ~ # ping -s 30 dvetisícsedemstošesťdesiatosem archív PING archív.DOMÉNA.miestne (10.0.0.6) 32768 (32796) bajtov dát. 30 dvetisíc sedemsto 70 6 bajtov z archiv.domena.local (10.0.0.6): icmp_req = 1 ttl = 64 čas = 0,931 ms 30 dvetisíc sedemsto 70 6 bajtov z archiv.domena.miestne (10.0.0.6): icmp_req = 2 ttl = 64 čas = 0,958 ms 30 dvetisíc sedemsto 70 6 bajtov z archiv.domena.local (10.0.0.6): icmp_req = 3 ttl = 64 čas = 1,03 ms 30 dvetisíc sedemsto z archívu 70 6 .domain.local (10.0.0.6): icmp_req = 4 ttl = 64 čas = 1,00 ms 30 dvetisíc sedemsto 70 6 bajtov z archiv.domain.local (10.0.0.6): icmp_req = 5 ttl = 64 ms = 1. ^ C --- archiv.DOMAIN.local ping statistics --- 5 odoslaných paketov, 5 prijatých, 0 % strata paketov, čas 4006 ms rtt min / avg / max / mdev = 0,931 / 1,002 / 1,083 / 0,061 ms

Ako vidíte, pri odosielaní paketu s veľkosťou 30 dvetisícsedemstošesťdesiatosem (32Kb) sa jeho čas cesty od klienta k serveru a späť pohybuje v oblasti jednej milisekúnd. Ak sa tento čas vychýli zo stupnice o dvesto ms, potom by ste mali popremýšľať o zvýšení hodnoty timeo tak, aby troj- až štvornásobne prevyšovalo hodnotu výmeny. Preto je tento test najlepšie vykonať pri silnom zaťažení siete.

Spustenie NFS a konfigurácia brány firewall

Poznámka skopírovaná z blogu http://bog.pp.ru/work/NFS.html, za ktorý veľmi pekne ďakujem !!!

Spustenie servera NFS, pripojenie, uzamknutie, kvóta a stav so „správnymi“ portami (pre bránu firewall)

  • je lepšie vopred odpojiť všetky prostriedky na klientoch
  • zastaviť a zakázať spustenie rpcidmapd, ak nie je plánované nasadenie NFSv4: chkconfig --level Tristo 40 5 rpcidmapd vypnutá služba rpcidmapd stop
  • ak je to potrebné, povoľte spustenie služieb portmap, nfs a nfslock: chkconfig --levels Tristo 40 5 portmap / rpcbind na chkconfig --levels Tristo 40 5 nfs na chkconfig --levels Tristo 40 5 nfslock on
  • ak je to potrebné, zastavte služby nfslock a nfs, spustite portmap / rpcbind, uvoľnite službu modulov nfslock zastavte službu nfs stop službu portmap start # service rpcbind start umount / proc / fs / nfsd službu rpcidmapd stop rmmod nfsd službu autofs stop # niekde neskôr to potrebuje spustiť rmmod nfs rmmod nfs_acl rmmod lockd
  • otvorené porty v iptables
    • pre RPC: UDP / 111, TCP / 111
    • pre NFS: UDP / 2049, TCP / 2049
    • pre rpc.statd: UDP / 4000, TCP / 4000
    • pre uzamknuté: UDP / 4001, TCP / 4001
    • pre namontované: UDP / 4002, TCP / 4002
    • pre rpc.rquota: UDP / 4003, TCP / 4003
  • pre server rpc.nfsd pridajte riadok RPCNFSDARGS = "- port 2049" do / etc / sysconfig / nfs
  • pre mount server pridajte riadok MOUNTD_PORT = 4002 do / etc / sysconfig / nfs
  • pre funkciu rpc.rquota pre nové verzie pridajte riadok RQUOTAD_PORT = 4003 do / etc / sysconfig / nfs
  • pre funkciu rpc.rquota je potrebné pre staršie verzie (veď musíte mať kvótu 3.08 alebo novší balík) pridať rquotad 4003 / tcp rquotad 4003 / udp do / etc / služieb
  • skontroluje primeranosť / etc / exportov
  • spustenie služieb rpc.nfsd, mountd a rpc.rquota (súčasne sa spustia rpcsvcgssd a rpc.idmapd, ak ste ich nezabudli odstrániť) služba nfsd štart alebo v nových verziách služba nfs start
  • pre server zámkov pre nové systémy pridajte riadky LOCKD_TCPPORT = 4001 LOCKD_UDPPORT = 4001 do / etc / sysconfig / nfs
  • pre lock server pre staršie systémy pridajte priamo do /etc/modprobe [.conf]: options lockd nlm_udpport = 4001 nlm_tcpport = 4001
  • naviazať stavový server rpc.statd na port Štyri tisícky (pre staré systémy spustite rpc.statd s prepínačom -p 4000 v /etc/init.d/nfslock) STATD_PORT = 4000
  • start services lockd a rpc.statd service nfslock start
  • uistite sa, že všetky porty sú správne prepojené s "lsof -i -n -P" a "netstat -a -n" (niektoré porty používajú moduly jadra, ktoré lsof nevidí)
  • ak pred „prestavbou“ server používali klienti a nebolo možné ich odpojiť, potom budete musieť reštartovať služby automatického pripojenia na klientoch (am-utils, autofs)

Príklad konfigurácie servera a klienta NFS

Konfigurácia servera

Ak chcete, aby bol váš NFS rozdelený adresár otvorený a zapisovateľný, môžete použiť možnosť all_squash v kombinácii s možnosťami anonuid a anongid. Ak chcete napríklad nastaviť práva pre používateľa „nikto“ v skupine „nikto“, môžete urobiť nasledovné:

ARCHIV ~ # cat / etc / exportuje # Prístup na čítanie / zápis pre klienta na 192.168.0.100, s prístupom rw pre používateľa Deväťdesiatdeväť s gid Deväťdesiatdeväť / súbory 192.168.0.100 (rw, synchronizácia, all_squash, anongid = 99, anongid = 99)) # Prístup na čítanie/zápis pre klienta na 192.168.0.100, s prístupom rw pre používateľa Deväťdesiat deväť s gid Deväťdesiat deväť / súbory 192.168.0.100 (rw, synchronizácia, all_squash, anonuid = 99, anongid = 99))

To tiež znamená, že ak chcete povoliť prístup k určenému adresáru, nikto. nikto nesmie byť vlastníkom zdieľaného adresára:

# chown -R nikto.nikto / súbory

Konfigurácia klienta

Na klientovi musíte pripojiť vzdialený adresár pohodlným spôsobom, napríklad pomocou príkazu mount:

SÚBORY ~ # mount -t archív nfs: / súbory / archívy / súbory

Zhrnutie

Fuh... Článok je ukončený. Momentálne sme študovali čo je sieťový súborový systém a s čím sa to žerie, v ďalšom článku skúsim spraviť HOWTO s autentifikáciou Kerberos. Dúfam, že materiál vyšiel zrozumiteľný a potrebný.

Budem rád, ak dostanem vaše dodatky a komentáre!

NFS AKO, nfs.sourceforge, man nfs? človek hora, človek vyváža

RFC Tisíc deväťdesiatštyri - NFSv1, v2
RFC Tisíc osemsto trinásť - NFSv3
RFC Tritisíc 500 30 - NFSv4
RFC 5 tisíc 600 šesťdesiat jedna - NFSv4.1
NÁVOD NA NFS
nfs.sourceforge.net
man mount
človek vyváža