NFS

Allikas: Kuutõrvaja
Redaktsioon seisuga 11. märts 2008, kell 09:56 kasutajalt Marks (arutelu | kaastöö) (Teostus)

NFS - Network File System


Sissejuhatus

NFS on selline tehnika, mis võimaldab ühele töötava linuxi masina failisüsteemile külge mount'ida mingi kataloogi (see võib olla ka juurkataloog) teisest töötava linuxi masina failisüsteemist. Eelduseks on, et need kaks masinat on omavahel võrku ühendatud ja võrk nö. toimib. Tulemusena toimub failide liigutamine/kopeerimine ühest masinast teise nii nagu seda tehakse ühe masina failisüsteemi siseselt st. mitte ftp vaid cp'ga.


Võib ütelda, et masina juta.ee failisüsteemi on kataloogi /nfs alla mountitud masina ut.ee juurikas.

Teostus

Asume siis vaatama, mida on vaja, et eelpoolkireldatud olukord saavutada.

  • Esmalt veenduge, et te saate masinaid omavahel pingida, teha telnet'i ja nt.ftp'd. Kui see on olemas on põhjust edasi minna.
  • Võimalik, et tuleb kompileerida uus kernel milles on olemas üks linnuke juures (kuigi ta on seal enamst ka vaikimisi): NFS - kernel peab toetama NFS'i.
  • Seejärel veenduge, et bootimisel on üles tõmmatud mõlemas masinas portmapper ja sellega seotud asjad. Tunnistuseks, et asjad on selles suhtes

korras on käsk rpcinfo -p sarnane väljund:

bash# rpcinfo -p
   program vers proto   port
    100000    2   tcp    111  portmapper
    100000    2   udp    111  portmapper
    100005    1   udp    667  mountd
    100005    2   udp    667  mountd
    100005    1   tcp    670  mountd
    100005    2   tcp    670  mountd
    100003    2   udp   2049  nfs
    100003    2   tcp   2049  nfs

Tavaliselt on vaikimisi see asi nii nagu NFS seda ootab.

  • Nüüd peab masinas mis oma faile lubab kuhugi mountida (meie näite kohaselt masinas ut.ee's) ära näitama, et ta tõesti lubab ligi:
cat /etc/exports
/       juta.ee(rw)


Antud juhul lubatakse juta.ee kasutajatele mountida lugemiseks/kirjutamiseks kogu ut.ee failisüsteemi. Tegelikult on seda natuke liiga palju lubatud :)

Ja mis kõige tähtsam, et ut.ee saaks teadlikuks uutest määratlustest tuleb käivitada daemonid uuesti:

bash# cat /etc/export_fs
#!/bin/sh
killall -HUP /usr/sbin/rpc.mountd
killall -HUP /usr/sbin/rpc.nfsd

  • Ja kui see on korras, siis peaks juta.ee's käsu
mount -t nfs ut.ee:/     /nfs

andes asja külge mountida.

Siin tuleb veel mainida asjaolu, et kui nimed kahe masina puhul mingil põhujusel et taha laheneda, siis võib kasutada ka IP aadresse. Ning mugavam on panna viimane käsk, ehk /etc/fstab'i, aga igaks juhuks 'noauto'. Kui juhtub, et juta.ee bootimisel ei ole ut.ee asjaks valmis, siis on palju ootamist ja veateateid.

Seega too rida on nt. selline:

ut.ee:/         /nfs     nfs     rsize=1024,wsize=1024,noauto     0      0

Kindlasti peaks panema nfs-i tööle tcp portidel, muidu võib tekkida igasuguseid anomaaliaid. Mountides peaks siis järgnevalt:

ut.ee:/         /nfs     nfs     tcp,rsize=1024,wsize=1024,noauto     0      0

Siis on oluline tähele panna, et read size ja write size optsioonide vahel pole tühikut.

/nfs kataloogi kohta juta.ee's failisüsteemis üteldakse ka 'mount point'.

Igaks juhuks olgu ütledud, et ükskõik kummast arvutist enne voolu välja lülitamist tuleb ikka failisüteemid enne umountida! Ja teha kõik muu mis tarvis.


NFS-i korral peaks tingimata mõtlema clustri peale. Selleks soovitaks linuxi puhul kasutada http://www.linux-ha.org/.


/var/lib/nfs tuleks panna ühisele kettale (iscsi, FC), mis võetaks soovitatavalt kuskilt kettakastist, odav lahendus oleks rsync või glusterfs, millest on siin ka pikalt kirjutatud [1].