Ero sivun ”NFS” versioiden välillä

Linux.fista
Siirry navigaatioon Siirry hakuun
(typoja, ym)
p (nfsv4-artikkelin sisältöä tänne + yleistä wikitystä + malline pois)
Rivi 1: Rivi 1:
{{Yhdistettävä|NFSv4}}
[[wikipedia:Network_File_System_(protocol)|NFS]] eli Network Filesystem on [[Sun Microsystems]]in kehittämä menetelmä tiedostojärjestelmien jakamiseen Unix-järjestelmien välillä. Linuxissa vaihtoehtoina on [[käyttäjä]]tason ja [[ydin]]tason nfs-palvelimet. NFS-protokollasta on olemassa kolme eri versiota, 2, 3 ja 4.


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 ==


= Palvelin =
=== Palomuuri ===
NFS käyttää oletuksena porttia 2049, joten avaa kyseinen portti [[palomuuri]]sta komennoilla
iptables -A INPUT -p tcp --dport 2049 -j ACCEPT
iptables -A INPUT -p udp --dport 2049 -j ACCEPT
Portin avauskomennot on hyvä lisätä sopivaan käynnistystiedostoon, jotta se suoritettaisiin aina järjestelmän käynnistyessä.


== Palomuuri ==
=== /etc/exports ===
Oletuksena NFS  käyttää porttia 2049, joten avaa kyseinen portti palomuurista lisäämällä tiedostoon /etc/sysconfig/iptables rivi:
/etc/exports -[[asetustiedosto]]n avulla määritellään, mitkä paikalliset tiedostojärjestelmät on mahdollista liittää muualla sijaitsevien koneiden tiedostojärjestelmiin. Tiedoston syntaksi on yksinkertainen:
-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)
  /hakemisto      sallitut_koneet(liitosparametrit)
Esimerkiksi:
Esimerkiksi:
Rivi 25: Rivi 21:
*<tt>no_subtree_check</tt> = 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.
*<tt>no_subtree_check</tt> = 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.
*sync = Pakottaa paikallisen koneen synkronoimaan tiedostojärjestelmän levylle aina, kun nfs saa kirjoitusoperaation valmiiksi.
<br>
 
Jaettavalle hakemistolle voi jossain tapauksissa olla järkevää asettaa [[sticky bit]] esimerkiksi komennolla
[[chmod]] 1777 /home/nfsjako
jossa asetetaan kaikille kaikki oikeudet ja lisäksi sticky bit. Hakemistoon asetettu sticky bit tarkoittaa että vain tiedoston omistaja voi poistaa tiedoston kyseisestä hakemistosta.
 
Kun tiedostoa on muutettu, otetaan muutokset käyttöön komennolla
Kun tiedostoa on muutettu, otetaan muutokset käyttöön komennolla
  exportfs -rv
  [[exportfs]] -rv
Jaon parametrit saa näkyviin komennolla
exportfs -v


== /etc/hosts.allow ja /etc/hosts.deny ==
=== /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.
/etc/[[hosts.allow]] on asetustiedosto, jossa listataan koneet joilla on oikeus yhdistää palvelimelle ja vastaavasti [[hosts.deny]]ssä 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:
Jos systeemi on kuitenkin toisinpäin, seuraavat rivit /etc/hosts.allowissa sallivat nfs:n käytön tietyille koneille:
Rivi 41: Rivi 43:
Samalla tavalla voi hosts.denyssä estää tiettyjä koneita käyttämästä nfs:ää.
Samalla tavalla voi hosts.denyssä estää tiettyjä koneita käyttämästä nfs:ää.


== NFS-palvelun käynnistäminen ==
=== NFS-palvelun käynnistäminen ===
NFS:ää käytettäessä on oltava käynnistettynä seuraavat palvelut:
NFS:ää käytettäessä on oltava käynnistettynä seuraavat palvelut:
#nfs  (tai nfs-common)
#nfs  (tai nfs-common)
#portmap
#[[portmap]]
#nfslock
#[[nfslock]]
#rpcidmapd
#[[rpcidmapd]]
Palvelun käynnistäminen onnistuu yleensä komennolla /etc/init.d/palvelunnimi, esimerkiksi
Palvelun käynnistäminen onnistuu [[init]]in tyypistä riippuen komennolla /etc/init.d/palvelunnimi tai /etc/rc.d/palvelunnimi esimerkiksi
  /etc/init.d/nfs start
  /etc/init.d/nfs start
Joissain [[Jakelu|jakeluissa]] toimii myös
Joissain [[Jakelu|jakeluissa]] toimii myös
Rivi 61: Rivi 63:
  showmount -e
  showmount -e


= Liittäminen asiakaskoneessa =
== Liittäminen asiakaskoneessa ==
Aluksi asiakaskoneesa on käynnistettävä portmap-palvelu esimerkiksi komennolla
Aluksi asiakaskoneessa on käynnistettävä portmap- ja rpcidmapd-palvelut esimerkiksi komennolla
  /etc/init.d/portmap start
  /etc/init.d/portmap start
/etc/init.d/rpcidmapd start
tai
tai
  service portmap start
  service portmap start
service rpcidmapd start


NFS-jaot ovat siitä mukavia, että ne voidaan [[Mount|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:
NFS-jaot ovat siitä mukavia, että ne voidaan [[Mount|liittää]] ja [[umount|irrottaa]] 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
  mount -t nfs 192.168.0.1:/varasto /mnt/varasto
Vastaavasti liitoksen voi tehdä [[fstab|/etc/fstabissa]] seuraavasti:
Vastaavasti liitoksen voi tehdä [[fstab|/etc/fstabissa]] seuraavasti:
  192.168.0.2:/varasto  /mnt/varasto  nfs  user,rw,auto  0 0
  192.168.0.2:/varasto  /mnt/varasto  nfs  users,rw,auto,intr   0 0
Users-parametri sallii kaikkien käyttäjien liittää ja irrottaa jaon, rw lisää luku- ja kirjoitusoikeudet ja auto aiheuttaa automaattisen liittämisen järjestelmän käynnistyessä. Intr-parametri taas mahdollistaa nfs-kutsun peruuttamisen, kun palvelin ei vastaa.


= Kirjoitusoikeudet =
Samat nfs-jaot voi liittää useampaan eri hakemistoon mount-komennon valitsimella --bind.
Pelkkä [[tiedostojärjestelmä|tiedostojärjestelmän]] [[mount|liittäminen]] kirjoitusoikeuksin 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.  
 
== Kirjoitusoikeudet ==
Pelkkä [[tiedostojärjestelmä|tiedostojärjestelmän]] [[mount|liittäminen]] kirjoitusoikeuksin 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. [[NIS]]- tai [[LDAP]]-palveluiden ollessa käytössä UID-numerot ovat jo valmiiksi samat kaikissa koneissa.


Tietyn tunnistenumeron omaavan käyttäjän voi luoda [[useradd]]-komennolla seuraavasti:
Tietyn tunnistenumeron omaavan käyttäjän voi luoda [[useradd]]-komennolla seuraavasti:
Rivi 79: Rivi 86:
Jonka jälkeen salasana asetetaan komennolla [[passwd]]:
Jonka jälkeen salasana asetetaan komennolla [[passwd]]:
  passwd nimi
  passwd nimi
==Katso myös==
*[[NFSv4 Fedorassa]]
*[[Samba]]
*[[FTP]]
*[[Scp]]
*[[SFTP]]
*[[Fish]]
*[[Sshfs]]
==Linkkejä==
*[http://wiki.linux-nfs.org/index.php/Main_Page Linux-NFS-wiki]


[[Luokka:Tiedostojärjestelmät]]
[[Luokka:Tiedostojärjestelmät]]
[[Luokka:Verkko]]
[[Luokka:Verkko]]
[[Luokka:Asetustiedostot]]
[[Luokka:Ohjeet]]

Versio 12. kesäkuuta 2007 kello 02.06

NFS eli Network Filesystem on Sun Microsystemsin kehittämä menetelmä tiedostojärjestelmien jakamiseen Unix-järjestelmien välillä. Linuxissa vaihtoehtoina on käyttäjätason ja ydintason nfs-palvelimet. NFS-protokollasta on olemassa kolme eri versiota, 2, 3 ja 4.

Palvelin

Palomuuri

NFS käyttää oletuksena porttia 2049, joten avaa kyseinen portti palomuurista komennoilla

iptables -A INPUT -p tcp --dport 2049 -j ACCEPT
iptables -A INPUT -p udp --dport 2049 -j ACCEPT

Portin avauskomennot on hyvä lisätä sopivaan käynnistystiedostoon, jotta se suoritettaisiin aina järjestelmän käynnistyessä.

/etc/exports

/etc/exports -asetustiedoston 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 - 192.168.0.255 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.

Jaettavalle hakemistolle voi jossain tapauksissa olla järkevää asettaa sticky bit esimerkiksi komennolla chmod 1777 /home/nfsjako jossa asetetaan kaikille kaikki oikeudet ja lisäksi sticky bit. Hakemistoon asetettu sticky bit tarkoittaa että vain tiedoston omistaja voi poistaa tiedoston kyseisestä hakemistosta.

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

exportfs -rv

Jaon parametrit saa näkyviin komennolla

exportfs -v

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

/etc/hosts.allow on asetustiedosto, jossa listataan koneet joilla on oikeus yhdistää palvelimelle ja vastaavasti hosts.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 initin tyypistä riippuen komennolla /etc/init.d/palvelunnimi tai /etc/rc.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 asiakaskoneessa on käynnistettävä portmap- ja rpcidmapd-palvelut esimerkiksi komennolla

/etc/init.d/portmap start
/etc/init.d/rpcidmapd start

tai

service portmap start
service rpcidmapd start

NFS-jaot ovat siitä mukavia, että ne voidaan liittää ja irrottaa 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 -t nfs 192.168.0.1:/varasto /mnt/varasto

Vastaavasti liitoksen voi tehdä /etc/fstabissa seuraavasti:

192.168.0.2:/varasto  /mnt/varasto  nfs   users,rw,auto,intr   0 0

Users-parametri sallii kaikkien käyttäjien liittää ja irrottaa jaon, rw lisää luku- ja kirjoitusoikeudet ja auto aiheuttaa automaattisen liittämisen järjestelmän käynnistyessä. Intr-parametri taas mahdollistaa nfs-kutsun peruuttamisen, kun palvelin ei vastaa.

Samat nfs-jaot voi liittää useampaan eri hakemistoon mount-komennon valitsimella --bind.

Kirjoitusoikeudet

Pelkkä tiedostojärjestelmän liittäminen kirjoitusoikeuksin 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. NIS- tai LDAP-palveluiden ollessa käytössä UID-numerot ovat jo valmiiksi samat kaikissa koneissa.

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

Katso myös

Linkkejä