NFS:n uusin versio 4 on suuri edistysaskel verrattuna NFS:n aikaisempiin versioihin. Sen tietoturvaa ja toiminnallisuutta on parannettu. Tosin usein mainitaan, että tämä parannus tuli "liian myöhään" NFS:n kannalta. Joka tapauksessa kyseessä on protokolla, jota kannattaa ilman muuta käyttää aina silloin kun se on mahdollista. "Mahdollista" tarkoittaa tässä tapauksessa sitä, että kernel on vähintään 2.6-sarjaa. Tähän tuli mukaan tuki NFSv4:lle.
Käyttäjän näkökulmasta eroja ei pahemmin ole, ellei parempaa toiminnallisuutta oteta huomioon, konfigurointi sen sijaan poikkeaa huomattavasti vanhempien versioiden konfiguroinnista.
Tämä dokumentti perustuu pitkälti Miles Brennanin sivustoon "Linux Home Server HOWTO", (http://www.brennan.id.au/index.html) ja sieltä sen NFS Version 4 -osuuteen, http://www.brennan.id.au/19-Network_File_System.html#nfs4.
Aluksi on syytä tarkistaa, että järjestelmässäsi on NFSv4-valmius.
Komento
rpcinfo -p
kertoo, mitä NFS-versioita järjestelmä tukee:
100003 2 udp 2049 nfs 100003 3 udp 2049 nfs 100003 4 udp 2049 nfs 100003 2 tcp 2049 nfs 100003 3 tcp 2049 nfs 100003 4 tcp 2049 nfs
Ylläolevan perusteella kaikki versiot 2, 3 ja 4 ovat tuetut. Sekä udp- että tcp-protokollilla. Tämän lisäksi seuraavat palvelut pitäisi näkyä mount -l -komennolla:
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw) /proc/fs/nfsd type nfsd (rw)
Jos nämä näkyvät, koneesi voi toimia NFSv4-palvelimena. Nyt voimmekin toteuttaa tarvittavat määritykset.
NFS:n versiot 2 ja 3 käyttivät nobody-tunnusta anonyymeissä jaoissa. Nykyisin joissakin distribuutioissa on NFSv4:ää varten toteutettu oma käyttäjänsä, nfsnobody. Tarkista seuraavalla komenolla, onko tällainen käyttäjä olemassa:
grep nfs /etc/passwd
Jos tällä ei tule mitään tuloksia, käytä nobody-käyttäjää seuraavissa määrityksissä nfsnobodyn sijasta.
Seuraavaksi tarkistetaan /etc/idmapd.conf:n sisältö. Siellä pitäisi olla jotakin seuraavanlaista:
[General] Verbosity = 0 Pipefs-Directory = /var/lib/nfs/rpc_pipefs Domain = localdomain [Mapping] Nobody-User = nfsnobody Nobody-Group = nfsnobody [Translation] Method = nsswitch
Huomaa käyttäjätunnukset nobody-käyttäjille! Jos koneet on määritelty samaan domainiin, sen voi määrittää domain-kohtaan, mutta pienessä verkossa näyttäisi tämäkin toimivan.
Aiemmissa versioissa kaikki jaot käsiteltiin omina yksittäisinä jakoinaan, NFSv4 määrittelee kaikki jaot saman liitoksen kautta. Sen takia järjestelmään joudutaan määrittelemään ns. pseudotiedostojärjestelmä (pseudofilesystem). Tämän alle liitetään kaikki jaot. Esimerkissämme luomme seuraavat hakemistot:
# mkdir /exports # mkdir /exports/home # mkdir /exports/opt
Tässä siis jaetaan käyttäjille hakemistot /home ja /opt.
Seuraavaksi määritellään tiedostoon /etc/fstab seuraavat rivit:
/home /exports/home none bind 0 0 /opt /exports/opt none bind 0 0
Tämän jälkeen liitetään nämä tiedostojärjestelmään
mount -a -t none
Nyt näiden tulisi näkyä mount -l -komennolla. Nyt on vielä jäljellä jakojen määrittely. Tässä määritellään, mille koneille jaot näkyvät. Esimerkissämme jaetaan levyt 192.168.0 -alkuisille verkko-osoitteille:
/exports 192.168.0.0/255.255.255.0(rw,insecure,sync,wdelay,fsid=0) /exports/home 192.168.0.0/255.255.255.0(rw,insecure,sync,wdelay,nohide) /exports/opt 192.168.0.0/255.255.255.0(rw,insecure,sync,wdelay,anonuid=65534,anongid=65534)
Huomaa ensimmäisen rivin määritys fsid=0. Se kertoo serverille, että tässä on pseudotiedostojärjestelmä, jonka alla on liitettävät hakemistot. opt-hakemisto on lisäksi jaettu siten, että sitä voi käyttää anonyymistikin. Tämä ei tosin ole mitenkään välttämätöntä, se on tässä mukana vain esimerkin vuoksi.
Sitten palvelut uudelleen käyntiin
service nfs restart service portmap restart
Ja nyt tulisi exportfs -v -komennolla näkyä jaettavina nämä hakemistot ja palvelin olisi valmiiksi konfiguroitu.
Nyt on sitten jäljellä enää työaseman konfigurointi käyttämään aiemmin määriteltyjä hakuja. Luodaan ensiksi hakemisto, johon liitos tehdään. NFSv4:ssä ei liitetä erikseen jokaista jaon hakemistoa erikseen, vaan pseudotiedostojärjestelmän juuri. Tämän alla sitten muut jaot ovat. Esimerkissä toteutetaan seuraavanlainen hakemisto:
mkdir /media/jako
Tämän jälkeen määritellään tiedostoon /etc/fstab tarvittavat määritykset:
palvelin:/ /media/jako nfs4 \ auto,rw,nodev,sync,_netdev,proto=tcp,retry=10,rsize=32768,wsize=32768,hard,intr 0 0
Huomaa, että esimerkissä on kenoviivalla katkaistu rivi! Nämä pitää laittaa ehdottomasti kaikki samalle riville /etc/fstab:ssa! Jako siis tehdään palvelimelta, jonka nimi on tässä esimerkissä "palvelin". Siihen paikalle kirjoitetaan joko palvelimen nimi taikka ip-osoite.
Ja lopuksi annetaan komento
mount /media/jako
Nyt jaon pitäisi toimia.