A Network File System (NFS) állományok és könyvtárak megosztását teszi lehetővé a hálózaton keresztül. Az NFS alkalmazásával a programok és a felhasználók képesek szinte úgy elérni a távoli rendszereken található készleteket, mintha helyben lennének. Az NFS a fogyasztói réteg szolgáltatása, ami bármiféle kapcsolatrendszerben funkcionál, ami TCP és UDP protokollokat használ. A NIS-től teljesen különálló, de ha együtt használjuk vele, a NIS adatbázisait, szolgáltatásait kihasználja.
Íme az NFS néhány legjelentősebb előnye:
- A lokális munkaállomások kevesebb tárterületet használnak, mivel az együttes adatok csak egyetlen gépen tárolódnak és megoszthatók mindenki között.
- A felhasználóknak nem kell a hálózat minden gépén külön felhasználói könyvtárral rendelkezniük, ugyanis az NFS segítségével akár egy szerveren is beállíthatóak és elérhetővé tehetőek a hálózaton keresztül.
- A különböző háttértárak, például CD-ROM és USB-meghajtók más gépek által is használhatók a hálózaton keresztül. Ezzel csökkenthető a hálózatban elengedhetetlen cserélhető lemezes eszközök száma.
Az NFS a Unix-alapú struktúrákhoz létrehozott első hálózati fájlrendszer eredmények egyike. A legtöbb Unix-típus, továbbá a Microsoft Windows, Mac OS X, OpenVMS is támogatja. Megjelenésekor (1980-as évek) a Unix-alapú rendszereknél TFTP vagy egyéb, nem túl könnyen alkalmazható protokollok szolgáltak a fájlcserélésre. Az NFS elsődleges célpontja a helyi és a távoli fájlok használati módja közti határ elmosása, a távoli fájlok elérésének egyszerűsítése volt. Ennek tulajdonságaként a Unix-rendszerek sajátosságaira építkeztek a korai verziók, olyan elméleteket és módszereket vettek igénybe, amik más operációs rendszerek alatt észszerűtlennek vagy nehezen implementálhatónak tűnhetnek.
A fájlrendszer előállításának alapötlete egyszerű volt: vegyünk egy távoli eljáráshívó szerkezetet, ami felett biztosítsunk olyan felületet, mint a kernel VFS interfésze. A szerveroldal aránylag egyszerű, olyan hívásokat kell implementálnunk mint a LOOKUP (fájlnév–inode konverzió), GETATTR (fájltulajdonságok lekérése), stb. A kliensoldal is könnyen implementálható, ugyanis illeszkedik a felépítés a Unix rendszerek VFS interfészéhez. Csak a zárolás és a gyorstárazás okoz kisebb fennakadásokat.
Történet
1. verzió
Az NFS 1-es verzióját a Sun Microsystems fejlesztette ki, és csak házon belüli kísérletezésre alkalmazták. Sosem adtak ki belőle mindenki által elérhető verziót.
2. verzió
A 2-es verzió UDP-alapú megoldás volt. A fejlesztők célul tűzték ki, hogy a protokoll állapot nélküli legyen, így a zárolást a protokollon kívül oldották meg, az úgynevezett NLM (network lock manager, hálózati zároláskezelő) segítségével.
3. verzió
A 3-as verzió leginkább az akkori technológia által megkövetelt újdonságokkal való kiegészítése volt a korábbi protokollnak. Támogatta a 64 bites offszet és méret értékeket, így 4 GB-nál nagyobb fájlokat is megvalósíthattunk. Lehetséges továbbá aszinkron írások végrehajtása a szerver felé, így a rendszer kicsit helyre jött. Az addigi csomag definíciókat kiegészítették extra fájl- és könyvtárattribútumok visszatérésének képességével, hogy azokat ne kelljen külön lekérdezni. Ez könyvtárlistázások esetén okozott problémákat a korábbi típusú protokollok használatakor, ugyanis minden egyes fájl esetén külön le kellett kérni a fájl attribútumait, ami fájlonként egy RPC-hívást takart.
Ebben a verzióban vált hivatalosan is elérhetővé a TCP feletti működés, melyet több gyártó már a 2-es verzióhoz is implementált. A protokollspecifikáció eddig erősen Unix-specifikus fogalmakat használt. A 4-es verzióban a platformfüggetlenségre való törekvés miatt ügyeltek arra, hogy minél általánosabb fogalmakat használjanak.
Ezen verzió ráadásul a portmapper szolgáltatást is használta, ami nagyon nehézkessé tette a tűzfalakon való áthaladást. A portmapper gyakorlatilag egy olyan adatbázist tartott nyilván, hogy mely szolgáltatások, milyen porton figyelnek. A kliens először a portmapperhez fordult, hogy megkérdezze a portszámot, majd a válasz alapján csatlakozott a távoli géphez. Ezen megoldás hátránya az, hogy egy NAT tűzfalnak az összes csomagot elemeznie kell, és csak átírás után továbbíthatja azokat a kérők felé. Ezen karakterisztikák miatt az NFSv3 főleg kisméretű hálózatokban terjedt el. A WAN-alapú használat feltételeit az NFSv4 teremtette meg.
4. verzió
A 4-es verzió szakított az állapot nélküliség gondolatával, így tartalmaz egy csatolással (mount) és egy zárolással (locking) kapcsolatos alrendszert is. A fejlesztők kölcsönöztek elképzeléseket mind az AFS, mint a CIFS fájlrendszerektől, például a sebesség optimalizációkat, erős biztonság megkövetelését. Ez a protokoll elvileg képes a több szerveren replikált fájlok hibatűrő elérésére is.
Források