Sarcini NFS
Sistemul de fișiere de rețea (NFS) este utilizat pentru a oferi computerului de rețea acces la directoarele partajate de pe server. Stocarea centralizată a fișierelor de pe server facilitează organizarea muncii într-o rețea mare, în special în cazul în care același utilizator poate lucra la momente diferite pe computere diferite. Cu ajutorul serverului de fișiere sunt rezolvate simultan mai multe sarcini:
Descrierea NFS
Serviciul NFS permite serverului să ofere acces partajat la directoarele specificate ale sistemului său de fișiere local și clientul - pentru a monta aceste directoare în același mod ca și când ar fi directoare locale ale clienților.
Versiuni NFS
NFS a fost dezvoltat de Sun Microsystems și a fost atât de reușit încât implementările sale au fost implementate de diferite companii pentru aproape toate sistemele de operare. Există mai multe implementări fundamentale diferite ale SNF. Versiunea NFS 2.0 este destul de comună, deși NFS 3.0 a fost deja introdus pe Solaris 2.5. In versiunile ulterioare ale Solaris, inclusiv Solaris 9, NFS au fost făcute completări substanțiale, dar protocolul rămâne compatibil cu NFS 3.0 realizatsiyaim în alte sisteme. Începând cu NFS 3.0, acceptă transferul de pachete prin TCP și UDP, anterior numai UDP a fost acceptată.
Fii atent! Rețeaua ar trebui să utilizeze clienți și servere NFS de aceeași versiune. NFS 2.0 poate fi găsit în sisteme mai vechi, de exemplu în HP-UX 10.0. Colaborarea între sistemele care utilizează diferite versiuni ale sistemului de operare nu este de dorit.
Compatibilitate între NFS și alte servicii de directoare partajate
NFS în ceea ce privește organizarea și organizarea muncii este similară cu folderele partajate de pe sistemele Windows, însă aceste servicii utilizează protocoale de lucru complet diferite și între ele ele nu sunt compatibile. Cu toate acestea, există mai multe produse software care instalează suportul NFS pe sistemele Windows, astfel încât utilizarea NFS într-o rețea cu sisteme de operare diferite nu este o problemă, trebuie doar să vă amintiți să utilizați aceleași versiuni de NFS.
Serviciul NFS presupune lucrul unui model client-server, iar diferite programe se execută pe computerele client și pe computerele server pentru a oferi acces la directoarele partajate de pe server.
Deoarece calculatoarele de pe stațiile de lucru ale angajaților din Rusia sunt de obicei gestionate de sistemele bazate pe Windows, sistemele Windows sunt adesea folosite ca servere de fișiere. Cu toate acestea, există deseori dorința de a instala UNIX pe un server de fișiere pentru a îmbunătăți fiabilitatea, a reduce costurile hardware sau pentru a utiliza același server pentru alte nevoi corporative: un server web, un server de baze de date și așa mai departe. Pentru a nu instala software suplimentar pentru a suporta NFS în acest caz, este suficient să instalați pachetul samba pe o mașină UNIX. Acesta îi va permite să "pretindă" serverul Windows NT, astfel încât toate computerele client să o trateze ca fiind cel mai des întâlnit server de fișiere sau server de imprimare pentru servere Windows. Samba pachet poate oferi suport pentru "nativ" pentru rețelele de protocol SMB bazate pe Windows.
În cazul în care mai multe computere UNIX rulează în rețea și au nevoie să acceseze un server de fișiere, este logic să utilizați mecanismul NFS (sistem de fișiere de rețea).
NFS nu este foarte rezistent la erorile de rețea, necesită o funcționare fără probleme și presupune o conexiune rapidă între client și server. Utilizarea NFS pentru montarea sistemelor de fișiere în afara rețelei locale, de exemplu, prin Internet, este fezabilă din punct de vedere tehnic, însă nu este foarte rațională și nesigură.
Terminologie NFS
După configurarea serverului NFS, computerul UNIX va oferi utilizatorilor externi acces la anumite directoare ale sistemului lor de fișiere. Această dispoziție de acces se numește "export": se spune că sistemul exportă cataloagele sale. Modul în care directoarele vor fi exportate este determinată de lista stabilită de administratorul de sistem. În majoritatea sistemelor UNIX, această listă este inclusă în fișierul / etc / exports. dar pe Solaris se află într-un alt fișier - / etc / dfs / dfstab.
NFS funcționează prin intermediul mecanismului Call Remote Procedure Call (RPC).
Ce este RPC
Ideologia RPC este foarte simplă și atractivă pentru programator. Cum funcționează aplicația de rețea? Urmează un anumit protocol (de exemplu, HTTP): generează un pachet cu o solicitare, apelează funcția de sistem pentru stabilirea unei conexiuni, apoi funcția de trimitere a unui pachet, așteaptă apoi pachetul de răspuns și apelează funcția pentru a închide conexiunea. Acest lucru înseamnă că toți cei care lucrează cu rețeaua sunt îngrijorați de programatorul care scrie aplicația: trebuie să-și amintească de a apela funcțiile API-ului de rețea al sistemului, gândindu-se la acțiunile în caz de eșecuri de rețea.
RPC presupune o altă modalitate de schimb de date între client și server. Din punctul de vedere al unui programator, o aplicație client care utilizează RPC apelează o funcție pe server, execută și returnează rezultatul. Redirecționarea unei solicitări de a efectua o funcție prin rețea și de returnare a rezultatelor de la server la client este invizibilă aplicației, astfel încât aceasta din urmă să nu se îngrijoreze de eșecurile rețelei sau de detaliile implementării protocolului de transport.
Pentru a asigura transparența transferului de date prin rețea, a fost elaborată o procedură în două etape. Pe server, orice aplicație care dorește să furnizeze serviciul prin RPC este înregistrată într-un program numit mapper port. Funcția acestui program este de a stabili o corespondență între numărul de procedură RPC cerut de client și numărul portului TCP sau UDP pe care așteaptă aplicația server pentru solicitări. În general vorbind, RPC poate lucra nu numai cu TCP sau UDP, Solaris realizat doar de lucru bazat pe mecanismul de TI (Transport-independent), astfel încât în Solaris porturi Translator numit rpcbind. nu o portmap. ca în Linux sau FreeBSD.
Cererea, înregistrată la traducătorul portului, îl informează despre numărul programului, numărul versiunii și numerele de procedură care pot fi procesate de acest program. Aceste proceduri vor fi ulterior numite de către client prin număr. În plus, aplicația raportează numerele de porturi TCP și UDP care vor fi utilizate pentru a primi solicitări de proceduri.
Un client care dorește să invocieze procedura pe server trimite mai întâi o solicitare către traducătorul de port la server pentru a afla care port TCP sau UDP trebuie trimis solicitarea. Traducătorul de port pornește de la pornirea sistemului și funcționează întotdeauna pe portul standard 111. După primirea unui răspuns de la acesta, clientul trimite o solicitare portului care corespunde aplicației solicitate. De exemplu, serverul NFS rulează pe portul 2049.
Procedura de montare a unui director partajat prin NFS
Înainte de a continua să descriem setările serverului și ale clientului NFS, trebuie să înțelegeți cum să montați sistemele de fișiere la distanță în principiu.
Clientul NFS trimite o cerere de instalare la un computer la distanță care furnizează un sistem de fișiere (de obicei o parte din acesta) unui utilizator comun. În același timp, se spune că serverul NFS "exportă" un anumit director (implicit - cu subdirectoare). Cererea de la clientul NFS este aplicată pe daemonul mountd. Clientul emite o cheie specială pentru clientul NFS. Această cheie este un identificator care identifică în mod unic directorul montat pe rețea.
Pe NFS, aveți posibilitatea să montați sisteme de fișiere întregi, precum și directoare individuale. Din motive de securitate, este interzisă instalarea directoarelor "prin partiție". Acest lucru înseamnă că, în cazul în care directorul / var este situat pe o secțiune a discului, iar directorul / var / adm - pe de altă parte, atunci când montați directorul / var / var / adm nu este instalat automat. Dacă doriți să montați aceste directoare director exportate, care sunt situate într-un alt sistem de fișiere (într-o altă secțiune), ar trebui să le exportați separat și să indice în / etc / DFS / dfstab un alt director partajat - aceeași subdirectorul de o altă secțiune.
Cheia care a fost emisă clientului în timpul montării și identificării sesiunii cu acest director la distanță este reținută atunci când serverul NFS este repornit. astfel încât, după restabilirea activității sale, clienții care au înghețat în așteptare, au continuat să lucreze cu serverul de la distanță ca și când nu s-ar fi întâmplat nimic. Când dezasamblați și reconstruiți un sistem de fișiere prin NFS, cheia este de obicei modificată. În practică, repornirea serverului NFS poate provoca în continuare un accident în aplicația client, mai ales dacă aplicația citește sau scrie un fișier în directorul la distanță în timpul rebootării.
După ce sistemul de fișiere este instalat prin NFS, clientul trimite cereri către server pentru trimiterea și primirea fișierelor, aceste cereri sunt procesate de daemonul nfsd.
Demontarea sistemului de fișiere este efectuată precum și demontarea oricărui alt sistem de fișiere prin comanda umount.
Următoarele aspecte privind configurarea serviciului client-server în rețea vor fi discutate mai jos:
- Determinați lista directoarelor de pe server care trebuie partajate;
- definirea drepturilor de acces la aceste directoare;
- Autentificarea și atribuirea drepturilor de acces la NFS;
- configurarea serverului NFS, rularea programelor necesare;
- configurați clienții NFS, montați directoarele la distanță.
Configurarea serverului NFS
Pentru a configura serverul NFS, trebuie să configurați cel puțin trei aplicații: rpcbind. mountd și nfsd. Mai întâi, creați fișierul / etc / dfs / dfstab. în care vom descrie cataloagele exportate; spre deosebire de alte sisteme UNIX. Solaris vă cere să specificați aici nu doar o listă de directoare cu parametrii mount, ci un set de comenzi de partajare. care începe de fapt exportul de cataloage. Astfel, se pare că / etc / dfs / dfstab este un script. care este efectuată în scopul de a face directoarele partajate disponibile pentru montarea într-o rețea.
Mai întâi, executați programul rpcbind. dacă nu se execută deja. Cel mai probabil, începe de la începutul sistemului dvs., dacă este într-adevăr Solaris. Acest program, după cum ne amintim, convertește numerele de apel pentru procedurile RPC la numerele porturilor TCP și UDP. La pornirea oricărui server RPC, adică program de lucru cu RPC, programul rpcbind primește aceste informații RPC-server pe care numerele de proceduri RPC care intenționează să mențină, și care portul TCP (UDP), acesta trebuie să trimită cereri.
Când clientul șterge un apel RPC, primul lucru pe care trebuie să-l faceți este să aflați numărul de port necesar pe serverul de la rpcbind.
Prin urmare, rpcbind trebuie pornit înainte ca oricare dintre serverele RPC să fie pornite. Dacă rpcbind se blochează, reporniți mai întâi rpcbind. apoi reporniți toate serverele RPC.
Pentru a verifica disponibilitatea tuturor serviciilor NFS de a lucra prin rpcbind, utilizați comanda rpcinfo -p:
La pornirea sistemului în modul multi-utilizator 3 rpcbind pornește automat și serviciile NFS - în cazul în care există un fișier / etc / dfs / dfstab.