Fedora/NFSv4

Linux.fista
Versio hetkellä 29. syyskuuta 2007 kello 13.24 – tehnyt Teksturi (keskustelu | muokkaukset)
Siirry navigaatioon Siirry hakuun

Tässä artikkelissa selostetaan NFS-protokollan version 4 käyttöä painottuen Fedoraan ja sen rinnakkaisjakeluihin. NFS:n käyttöä on selostettu yleisemmin artikkelissa NFS.

NFS voi mm. seuraavia asetustiedostoja ja skriptejä:

/etc/fstab - asiakaskoneessa 
/etc/exports - palvelimessa 
/etc/auto.master – asiakaskoneessa 
/etc/sysconfig/nfs - palvelimessa 
/etc/idmapd.conf – asiakkaassa ja palvelimessa 
/etc/gssapi_mech.conf - asiakkaassa ja palvelimessa 
/etc/init.d/portmap - asiakkaassa ja palvelimessa 
/etc/init.d/nfs - palvelimessa
/etc/init.d/rpcidmapd - asiakkaassa ja palvelimessa 


Oletuksena käytetään 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 

Käynnistä palomuuri uudestaan muutosten jälkeen:

service iptables restart

Suojaa portmapper lisäämällä /etc/hosts.allow tiedostoon:

portmap : 127. : ALLOW
portmap : ALL : DENY

Luo nfs-määrityksiä sisältävä tiedosto:

touch /etc/sysconfig/nfs

Lisää kyseiseen tiedostoon rivit

# Muuta tähän "yes", jos haluat Kerberos 5 -autentikoinnin

SECURE_NFS="no"

# NFS-prosessien määrä

RPCNFSDCOUNT=8

Luo jaettavat kansiot:

mkdir /home/jako1
mkdir /home/jako2

Luo jako1- ja jako2-kansioihin tekstitiedostot testaamista varten ja kirjoita niihin jotain sisältöä.

touch /home/jako1/testi1.txt
touch /home/jako2/testi2.txt

Käynnistä tarvittavat palvelut (portmap, rpcidmapd, nfslock ja nfs)

service portmap start
service rpcidmapd start
service nfslock start
service nfs start

Voit tarkistaa nfs:ään liittyvät palvelut komennolla:

rpcinfo -p

sekä niihin liittyviä portteja komennolla:

netstat -tupa

Asiakkaan puoli

Suojaa portmapper:

portmap : 127. : ALLOW
portmap : ALL : DENY

Luo liitospaikat:

mkdir -m 755 /mnt/nfsjako1
mkdir -m 755 /mnt/nfsjako2

Käynnistä tarvittavat palvelut:

service portmap start
service rpcidmapd start

Vain luku -liitos

Palvelimessa

Muokkaa /etc/exports -tiedostoa:

/home/jako1 vastaanottavan.koneen.ip.osoite(ro,fsid=0,insecure,no_subtree_check,sync,anonuid=65534,anongid=65534)

Otetaan muutokset käyttöön:

exportfs -rv

Voit nähdä jaon parametrit komennolla:

exportfs -v

Jaetut hakemistot näet myös komennolla:

showmount -e

Asiakkaassa

Liittäminen tapahtuu mount-komennolla (irroittaminen komennolla umount). Mount-komento sisältää useita tarkenteita, katso lisää komennolla man mount.

o 
options ro(read-only)
intr

Mahdollistaa nfs-kutsun peruuttamisen kun palvelin ei vastaa Liitä /home/jako1 oman koneesi /mnt/nfsjako1-hakemistoon komennolla:

mount -t nfs4 -o ro,intr serverin_ip:/ /mnt/nfsjako1

Siirry liittämääsi hakemistoon:

cd /mnt/nfsjako1

Tarkista sisältö:

ls

Yritä kirjoittaa hakemistoon:

touch jeejee.txt   (aiheuttaa virheen koska on vain lukuoikeudet)
cd (poistu /mnt/nfsjako1 hakemistosta, jotta voit irrottaa liitoksen)
umount /mnt/nfsjako1

Kirjoitusoikeudet sisältävä liitos

Palvelimessa

Muutetaan ensimmäiseksi jaettavan hakemiston oikeuksia komennolla:

[[chmod]9 1777 /home/nfsjako2

Eli asetetaan kaikille kaikki oikeudet ja sen lisäksi sticky bit. Hakemistoon asetettu sticky bit tarkoittaa että vain tiedoston omistaja voi poistaa tiedoston kyseisestä hakemistosta.

Lisää /etc/exports tiedostoon rivi (ja kommentoi aiempi):

/home/jako2 vastaanottavan.koneen.ip.osoite(rw,fsid=0,insecure,no_subtree_check,sync,anonuid=65534,anongig=65534)

Otetaan muutokset käyttöön:

exportfs -rv

Asiakkaassa

mount -t nfs4 -o rw,intr serverin_ip:/ /mnt/nfsjako2>

Siirry liittämääsi hakemistoon:

cd /mnt/nfsjako2

Yritä kirjoittaa hakemistoon:

touch jeejee.txt

Kirjoittaminen siis onnistuu asiakaskoneesta roottina ja tavallisena käyttäjänä, mutta poistaminen ja vain roottina tehtyjen tiedostojen (asiakaskoneen root ei ole palvelinkoneen root!) onnistuu vain rootilta.

Asiakas- ja palvelinkoneessa tulee siis olla saman nimen ja UID:in omaavat käyttäjät, jotta kyseinen menettely olisi sujuvaa (NIS- tai LDAP-palveluiden ollessa käytössä asia onkin jo kunnossa). Voit luoda käyttäjän sekä palvelimeen että asiakaskoneeseen komennolla:

useradd -u uidnro username

Luo palvelimeen nfsuser1-niminen käyttäjä uid:llä 600:

useradd -u 600 nfsuser1
passwd nfsuser1

Tämän lisäksi molempien koneiden tulee kuulua samaan domainiin. Muuta /etc/idmapd.conf -tiedostoon toimialueeksi sama kuin tulevaan asiakkaaseen. Domain = sukunimesi.jee

Käynnistä rpcidmapd uudestaan

service rpcidmapd restart

Siirry nfsuser1-käyttäjäksi asiakaskoneessa komennolla:

su nfsuser1

Luo tiedosto /mnt/nfsjako2-hakemistoon ja poista se:

touch /mnt/nfsjako2/poistettava.txt
rm /mnt/nfsjako2/poistettava.txt
cd (poistu /mnt/nfsjako2-hakemistosta, jotta voit irrottaa liitoksen)
umount /mnt/nfsjako2

Automaattinen liitos

Lisää asiakaskoneen /etc/fstab-tiedostoon rivi:

serverin_ip:/ 	/mnt/nfsjako2		nfs4	rw,hard,intr,proto=tcp,port=2049,auto 	0 0

Liitä asiakaskoneessa fstab-tiedostossa esitellyt jaot komennolla:

mount -v /mnt/nfsjako2

Irrota liitos:

umount -v /mnt/nfsjako2

Useamman yhtäaikaisen nfsv4-jaon ja liitoksen tekeminen

Palvelimen jakamat jaot näkyvät yhtenä isona tiedostojärjestelmänä, mutta voit jakaa ja liittää useita hakemistoja mount --bind -komennon avulla.

Palvelimessa

Luo hakemisto /home/jako ja siirrä aiemmin tehdyt jako1 ja jako2 sen alle.

Muuta /home/jako/-hakemiston oikeudet

chmod 1777 /home/jako

Anna komennot:

mount --bind /jako1 /home/jako/jako1
mount --bind /jako2 /home/jako/jako2

Muuta /etc/exports-tiedosto muotoon (huomaa nohide vs fsid=0):

/home/jako vastaanottavan.koneen.ip.osoite(rw,fsid=0,insecure,no_subtree_check,sync,anonuid=65534,anongig=65534)
/home/jako/jako1 vastaanottavan.koneen.ip.osoite(ro,nohide,insecure,no_subtree_check,sync,anonuid=65534,anongig=65534)
/home/jako/jako2 vastaanottavan.koneen.ip.osoite(rw,nohide,insecure,no_subtree_check,sync,anonuid=65534,anongig=65534)

Asiakaskoneessa

Muuta /etc/fstab:in rivit muotoon:

serverin_ip:/jako1 	/mnt/nfsjako1		nfs4 rw,hard,intr,proto=tcp,port=2049,auto 	0 0
serverin_ip:/jako2 	/mnt/nfsjako2		nfs4 rw,hard,intr,proto=tcp,port=2049,auto 	0 0

Liitä nfs-jaot:

mount -v /mnt/nfsjako
mount -v /mnt/nfsjako2

Laita palvelut käynnistymään automaattisesti:

chkconfig --level 0123456 portmap off
chkconfig --level 345 portmap on
chkconfig --level 0123456 rpcidmapd off
chkconfig --level 345 rpcidmapd on
chkconfig --level 0123456 nfslock off
chkconfig --level 345 nfslock on
chkconfig --level 0123456 nfs off
chkconfig --level 345 nfs on

Katso myös

Aiheesta muualla