NFS

Linux.fista
Versio hetkellä 18. maaliskuuta 2006 kello 00.30 – tehnyt Heikki (keskustelu | muokkaukset) (yhdistelyä NFSv4-artikkelin kanssa)
Siirry navigaatioon Siirry hakuun

NFS eli Network Filesystem on Sun Microsystemsin kehittämä menetelmä tiedostojärjestelmien käyttämiseen UNIX-järjestelmien välillä. Linuxissa vaihtoehtoina on käyttäjäpuolen ja kernel-puolen nfs-palvelimet.

Palvelin

Palomuuri

Oletuksena NFS käyttää porttia 2049, joten avaa kyseinen portti palomuurista lisäämällä tiedostoon /etc/sysconfig/iptables rivi:

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 2049 -j ACCEPT 

Tämän jälkeen iptables on käynnistettävä uudelleen:

service iptables restart

tai

/etc/init.d/iptables restart

/etc/exports

/etc/exports -tiedoston avulla määritellään, mitkä paikalliset tiedostojärjestelmät on mahdollista liittää muualla sijaitsevien koneiden tiedostojärjestelmiin. Tiedoston syntaksi on yksinkertainen:

/hakemisto      sallitut_koneet(liitosparametrit)

Esimerkiksi:

/varasto        192.168.0.0/255.255.255.0(rw,sync)

Sallisi /varasto -niminen paikallinen hakemiston liittämisen verkosta 192.168.0.0/255.255.255.0 (eli koneet, joiden ip on välillä 192.168.0.0 - 255.255.255.255.0 saavat tehdä liitoksen). Kun /etc/exports -tiedosto on kirjoitettu halutunlaiseksi, käynnistetään nfs-palvelin (vaikkapa /etc/init.d/nfs-kernel-server start). Liitosparametrit:

  • rw = Luku- ja kirjoitusoikeudet
  • ro = Vain lukuoikeudet
  • no_root_squash = Oletuksena kun asiakaskoneen root-käyttäjä hakee tiedostoja, käsitellään ne nobody-käyttäjänä palvelimella. Jos no_root_squash on käytössä, on asiakaskoneen root-käyttäjällä samat oikeudet jakoon kuin palvelinkoneen root-käyttäjällä.
  • no_subtree_check = Jos vain osa tallennusmediasta (esim. levyasema) on jaettu, "subtree checking" tarkistaa että asiakaskoneelta pyydetty tiedosto on osa jaettua hakemistoa. no_subtree_checkin nopeuttaa toimintaa jos koko tallennusmedia on jaettu.
  • sync = Pakottaa paikallisen koneen synkronoimaan tiedostojärjestelmän levylle aina, kun nfs saa kirjoitusoperaation valmiiksi.


Kun tiedostoa on muutettu, otetaan muutokset käyttöön komennolla

exportfs -rv

/etc/hosts.allow ja /etc/hosts.deny

/etc/hosts.allow on tiedosto, jossa listataan koneet joilla on oikeus yhdistää palvelimelle ja vastaavasti denyssä listataan ne, joilla ko. oikeutta ei ole. Oletuksena kaikilla koneilla paitsi hosts.denyssä listatuilla on yleensä oikeus yhdistämiseen.

Jos systeemi on kuitenkin toisinpäin, seuraavat rivit /etc/hosts.allowissa sallivat nfs:n käytön tietyille koneille:

portmap:  ip,ip2
lockd:  ip,ip2
rquotad: ip,ip2
mountd: ip,ip2
statd: ip,ip2

Samalla tavalla voi hosts.denyssä estää tiettyjä koneita käyttämästä nfs:ää.

NFS-palvelun käynnistäminen

NFS:ää käytettäessä on oltava käynnistettynä seuraavat palvelut:

  1. nfs (tai nfs-common)
  2. portmap
  3. nfslock
  4. rpcidmapd

Palvelun käynnistäminen onnistuu yleensä komennolla /etc/init.d/palvelunnimi, esimerkiksi

/etc/init.d/nfs start

Joissain jakeluissa toimii myös

service nfs start

Käynnissä olevat palvelut voi tarkistaa komennolla

rpcinfo -p

Tarkempia tietoja mm. palveluiden käyttämistä porteista saa komennolla

netstat -tupa

Jaossa olevat hakemistot voi tarkistaa komennolla

showmount -e

Liittäminen asiakaskoneessa

Aluksi asiakaskoneesa on käynnistettävä portmap-palvelu esimerkiksi komennolla

/etc/init.d/portmap start

tai

service portmap start

NFS-jaot ovat siitä mukavia, että ne voidaan liittää kuin mikä tahansa muukin tiedostojärjestelmä. Tiedostojärjestelmän tyyppi on nfs ja siihen viitataan muodossa palvelin:/polku, esimerkiksi palvelimelta, jonka ip on 192.168.0.1 liitettäisiin hakemisto /varasto seuraavasti:

mount -tnfs 192.168.0.1:/varasto /mnt/varasto

Vastaavasti liitoksen voi tehdä /etc/fstabissa seuraavasti:

192.168.0.2:/varasto  /mnt/varasto  nfs   user,rw,auto   0 0

Kirjoitusoikeudet

Pelkä tiedostojärjestelmän liittäminen kirjoutsoikeuksin ei anna tavallisille käyttäjille kirjoitusoikeuksia, vaan ne vaativat että sekä asiakas- että palvelinkoneessa on saman uid:n (tunnistenumeron) ja nimen omaava käyttäjä, joka on merkitty tiedostojen omistajaksi.

Tietyn tunnistenumeron omaavan käyttäjän voi luoda useradd-komennolla seuraavasti:

useradd -u numero nimi

Jonka jälkeen salasana asetetaan komennolla passwd:

passwd nimi