|
NFS eli Network File System on Sun Microsystemsin vuonna 1985 kehittämä verkkopalvelu. Se on lähinnä UDP- tai TCP-kerroksen päällä toimiva tiedostojen jakoprotokolla, joka mahdollistaa tiedostojen käytön toisistaan riippumattomien työasemien ja käyttöjärjestelmien välillä. NFS:stä on käytännössä tulossa hajautettujen tiedostojärjestelmien standardi heterogeenisessä tietokoneympäristössä. NFS mahdollistaa sen, että osa palvelimen tiedostojärjestelmästä näkyy asiakkaan laitteena tai hakemistona riippuen asiakkaan tiedostojärjestelmästä, jolloin asiakas voi käsitellä tiedostoja aivan kuin ne olisivat asiakkaan omalla koneella. Vaikka NFS alunperin kehitettiin UNIX-järjestelmässä, se on myöhemmin levinnyt lukuisiin erilaisiin käyttöjärjestelmäympäristöihin. [2] |
|
NFS on ns. tilaton (stateless) järjestelmä, eli palvelin ei säilytä tietoja palveltavista asiakkaista ja niiden käytössä olevista tiedostoista. Jokainen asiakkaan lähettämä tiedostonkäsittelypyyntö sisältää kaiken tarvittavan tiedon mitä palvelin tarvitsee. Palvelin ei tunne käsiteltävän tiedoston tilaa. Tästä on hyötyä erilaisissa vikatilanteissa, koska esim. palvelimen kaatuessa asiakas lähettää tiedostopyynnön yhä uudelleen kunnes palvelin kykenee vastaamaan siihen. Tilattomuus ei aina ole ongelmatonta. Asiakas saattaa esimerkiksi tuhota tiedoston, jota toinen asiakas on parhaillaan käyttämässä. Tilattomuudesta johtuen myöskään tietokantojen käyttö ei onnistu ilman muita protokollia, kuten Network Lock Manageria. [2] NFS suunniteltiin käytettäväksi nopeissa paikallisissa verkoissa, joten se toimii huonosti hitaiden linkkien kautta. NFS ei myöskään sovellu kannettaviin tietokoneisiin niiden pitkien yhteyskatkojen takia. [4] NFS on tarkoitettu ns. ystävälliseen ympäristöön, eikä sen tietoturvaan kiinnitetty suurta huomiota. Se kärsii mm. huonosta tunnistusalgoritmista jolloin asiattomat henkilöt voivat päästä käsiksi NFS:ää käyttävään järjestelmään. Siihen on tehty lukuisia korjauksia, mutta mikäli tietoturva on erityisen tärkeää, kannattaa käyttää muita tiedostojärjestelmiä. [1] |
|
NFS toimii kuten tyypillinen palvelin-asiakas -sovellus. Palvelin vastaanottaa RPC (Remote Procedure Call) -kutsun asiakkaaltaan, joka odottaa kunnes kutsu on käsitelty. RPC-kutsua varten parametrit kootaan yhteen lähetyskelpoiseen viestiin. Viesti lähetetään palvelimelle, jossa se puretaan ja käsitellään paikallisen tiedostojärjestelmän operaationa. Tulos kootaan vastaavasti viestiksi, joka lähetetään takaisin asiakkaalle. Asiakas purkaa tuloksen ja käsittelee sen kuin se olisi peräisin asiakkaan paikallisesta proseduurikutsusta. NFS-protokollaa voidaan käyttää minkä tahansa stream- tai datagram-protokollan päällä. Tavallisimmat valinnat ovat TCP (stream) ja UDP (datagram) -protokollat. Jokainen RPC-viesti saatetaan joutua pilkkomaan useisiin paketteihin, jotka lähetetään verkon kautta. Suurin tehokkuusongelma UDP:n päällä toimivalla NFS:llä syntyy kun viesti voidaan joutua pilkkomaan useisiin osiin. Mikäli yksikin paketti hukataan, joudutaan koko viesti lähettämään uudelleen. Myös TCP:ssä voidaan viesti joutua pilkkomaan, mutta yksittäiset paketit voidaan lähettää uudelleen. [4] |
![]() NFS:n rakenne graafisesti. |
|
VFS (Virtual File System) erottaa käyttöjärjestelmän omat tiedosto-operaatiot yleisistä operaatioista mikä mahdollistaa läpinäkyvän yhteyden erilaisten käyttöjärjestelmien välillä. VFS-liitännässä tiedostot esitetään ns. v-solmuina, jotka ovat verkonlaajuisia yksikäsitteisiä numeerisia tunnistimia. V-solmu sisältää osoittimen sen isäntäjärjestelmään sekä tiedostojärjestelmään, johon tiedosto on mountattu. [3] |
|
NFS käyttää kahta protokollaa: protokollaa etätiedostojärjestelmän mounttaamiseen ja protokollaa hakemistojen ja tiedostojen käyttöön. Mounttausprotokollaa käytetään muodostettaessa yhteys palvelimen ja asiakkaan välille. Palvelin pitää yllä export-listaa jossa on tiedot mountattavista tiedostojärjestelmistä ja koneiden nimet jotka saavat mountata. Asiakkaan mounttauspyyntö palauttaa asiakkaalle tiedostokahvan. Se sisältää kaiken sen tiedon jonka palvelin tarvitsee erottaakseen paikalliset tiedostot. NFS-protokolla on kokoelma RPC-kutsuja tiedostojen etäkäytölle. Protokolla mahdollistaa seuraavat operaatiot: Tiedoston sulkeminen ja avaus eivät sisälly protokollaan. NFS-protokollan operaatioita voidaan kutsua vain jos palvelimella on tiedostokahva mountattuun etähakemistoon. [3] |
|
[1] Brown, Vicki; Egnor, Dan: NFS (in)security administration and information clearinghouse, http://www.cco.caltech.edu/~refguide/sheets/nfs-security.html [2] Olsen, Karen: Examples of Standards for Heterogeneous Computing Environments, 16.8.1995, http://hissa.ncsl.nist.gov/rbac/titlehce/node17.html [3] Zaslavsky, A.: Lecture 4: Distributed File Systems, http://broncho.ct.monash.edu.au/~azaslavs/cot3002_link/dcs-l-04/sld034.htm [4] NFS Backgrounder, http://www.floating.co.uk/netapp/technology/level3/nfsbook.html |