O componentă cheie a oricărui sistem distribuit este un sistem de fișiere. Precum și sisteme centralizate, sistem distribuit, funcția de sistem de fișiere este de a stoca programe și date, și să ofere acces la ele atunci când este nevoie. Sistemul de fișiere este susținută de unul sau mai multe mașini, numite servere de fișiere. Înaintați solicitări de servere intercepteaza pentru a citi sau scrie fișiere primite de la alte mașini (nu servere). Aceste alte mașini numite clienți. Fiecare cerere a trimis verificat și executat, iar răspunsul este trimis înapoi. Serverele de fișiere conțin de obicei, un sistem de fișiere ierarhice, fiecare dintre care are un director rădăcină și niveluri mai scăzute. Stația de lucru se poate conecta și monta sistemul de fișiere în sistemul de fișiere local. În acest caz, sistemele de fișiere sunt montate pe serverele.
Este important să se înțeleagă diferența dintre un fișier și un serviciu de server de fișiere. Serviciul de fișiere - o descriere a funcțiilor pe care sistemul de fișiere oferă utilizatorilor săi. Această descriere include primitivele disponibile și parametrii acestora, precum și funcțiile pe care le îndeplinesc. Din punct de vedere al serviciilor de fișiere utilizatorilor determină ceea ce utilizatorii pot lucra, dar nu spune nimic despre modul în care toate acestea sunt puse în aplicare. De fapt, serviciul de fișiere specifică interfața sistemului de fișiere cu clienții.
File Server - un proces care se execută pe o mașină separată și ajută pentru a realiza serviciul de fișiere. Sistemul poate fi un server de fișiere, sau câteva, dar bine organizate, utilizatorii nu sunt conștienți de sistem distribuit, sistemul de fișiere este pus în aplicare. În special, ei nu știu numărul de servere de fișiere, locația și funcția lor. Ei știu doar că în cazul în care procedura este definită în serviciile de fișiere, munca necesară este oarecum mulțumiți, și se întorc rezultatele dorite. Mai mult decât atât, utilizatorii nu mai trebuie să știe ce este un serviciu de fișiere distribuit. În mod ideal, ar trebui să arate în același mod ca și în sistemul de fișiere centralizat.
Deoarece, de obicei, un server de fișiere - este doar un proces de utilizator (sau, uneori, un proces de nucleu), care rulează pe o mașină, sistemul poate fi de mai multe servere de fișiere, fiecare dintre care oferă un serviciu de fișier diferit. De exemplu, într-un sistem distribuit poate fi două servere care furnizează servicii de fișiere sisteme UNIX și MS-DOS, respectiv, precum și orice proces de utilizator utilizează cele mai bune servicii.
Servicii de fișier într-un sistem de fișiere distribuit (precum și în centralizat) are două părți distincte funcțional: serviciul de fișiere real și servicii de director. Prima se referă la operațiunile de fișiere individuale, cum ar fi citit, scrie, sau adăugați, iar al doilea - pentru crearea și gestionarea directoare, adăugarea și ștergerea de fișiere din directoare, etc.
Pentru orice serviciu de fișiere, indiferent dacă acesta este distribuit sau centralizat, cea mai importantă întrebare este ceea ce este un fișier? În multe sisteme, cum ar fi UNIX și MS DOS, fișier - ea uninterpreted secvență de octeți. Valoarea și structura informațiilor din dosarul este preocuparea de aplicații, sistemul de operare nu este interesat.
Un aspect important al fișierului modelului este abilitatea de a modifica fișierul după ce este creat. De obicei, fișierele pot fi modificate, dar în unele sisteme distribuite fișier numai operații sunt creeze și să citească. Aceste fișiere sunt numite imuabile. Pentru fișierele imuabile sunt mult mai ușor de implementat cache de fișiere și replicare (replicare), deoarece elimină toate problemele legate de actualizarea tuturor copiilor fișier atunci când se schimbă.
Serviciul de fișiere pot fi împărțite în două tipuri, în funcție de faptul dacă este un model de încărcare și descărcare sau model suportă accesul de la distanță. Modelul de încărcare-descărcare oferă utilizatorului citirea fișierului sau scrierea înseamnă în întregime. Acest model presupune următorul circuit de procesare a fișierelor: citirea unui fișier de pe server la masina client, procesarea fișierelor de pe masina client și înregistra fișierul actualizat la server. Avantajul acestui model este simplitatea ei conceptuală. În plus, întregul transfer de fișiere este foarte eficient. Principalul dezavantaj al acestui model sunt cerințe înalte pentru clienții discuri. În plus, ineficiente muta întregul fișier, dacă aveți nevoie de o mică bucată de său.
Un alt tip de serviciu de fișier corespunde modelului de acces de la distanță, ceea ce implică un sprijin pentru un număr mare de operații asupra fișierelor: deschiderea și închiderea de fișiere, citirea și scrierea unor porțiuni din dosar, poziționarea în fișierul, verificați și modificați atributele unui fișier, și așa mai departe. În timp ce în încărcarea și descărcarea serverul de fișiere de model prevede doar stocarea și circulația fișierelor, în acest caz, întregul sistem de fișiere care rulează pe un server, mai degrabă decât pe mașinile client. Avantajul acestei abordări este scăzută cerințele de spațiu pe disc pe mașinile client, precum si elimina necesitatea pentru transmiterea unui fișier atunci când aveți nevoie doar o parte din ea.
Serviciul director Natura nu depinde de tipul de serviciu de fișier model. În sistemele distribuite, utilizează aceleași principii de organizare director ca centralizat, inclusiv organizarea de director multi-nivel.
Problema principală asociată cu metodele de numire fișiere este acela de a asigura transparența. În acest context, transparența este înțeleasă în două moduri distincte, slab. În primul rând - Locul de amplasare transparență - ceea ce înseamnă că numele nu fac posibilă pentru a determina locația fișierului. De exemplu, numele / server1 / dir1 / dir2 / x spune că fișierul este localizat pe serverul x 1, dar nu specifică în care se află serverul. Serverul poate fi mutat în întreaga rețea, iar numele fișierului complet nu este schimbat. Prin urmare, acest sistem are o transparență locație.
În sistemele formate din clienți și servere, potențial, există patru locuri diferite pentru a stoca fișiere și părțile lor componente: o unitate de server, server de memorie, client disc (dacă este disponibilă) și memoria de client. Locul cel mai potrivit pentru a stoca toate fișierele este serverul de disc. Ea are, de obicei, o mare capacitate, și fișierele sunt disponibile pentru toți clienții. În plus, deoarece în acest caz, există doar o singură copie a fiecărui fișier, atunci nu există nici o problemă de potrivire a statului de copii.
Problema cu discul serverului este performanța. Înainte de clientul poate citi fișierul, fișierul trebuie să fie rescris pe disc în memoria sa de server, și apoi trimise prin rețea în memoria clientului. Ambele transmisii ia timp.
îmbunătățiri semnificative de performanță pot fi realizate prin cache fișierele din memoria serverului. algoritmii necesari pentru a determina care fișiere sau părți ale acestora ar trebui să fie stocate în memoria cache.
Atunci când alegeți un algoritm trebuie să rezolve două probleme. În primul rând, ce unități de cache-ul funcționează. Aceste unități pot fi fie blocuri de disc sau fișiere întregi. Dacă tot acest fișiere, acestea pot fi stocate pe un disc regiuni învecinate (cel puțin sub forma unor suprafețe mari), reducerea numărului de schimburi între memorie și disc și, prin urmare, asigură o înaltă performanță. bloc disc cache permite memoria cache și spațiu pe disc mai eficient.
În al doilea rând, trebuie să definiți o regulă de înlocuire a datelor atunci când se umple memoria cache. Puteți utiliza orice algoritm cache-ul standard, de exemplu, algoritmul LRU (utilizat cel recent), potrivit căruia blocul deplasat la care cel mai lung timp nu a existat nici un tratament.
Memoria cache pe server este ușor de implementat și este complet transparent pentru client. Deoarece serverul poate sincroniza activitatea de memorie și de disc, din perspectiva clienților, există doar o singură copie a fiecărui fișier, astfel încât coordonarea nu este o problemă.