NFS & automounter

(referat byl prednesen na seminari 'Linux' - zimni semester 1996/1997)

Vypracoval:

Roman Blazevic (e-mail: rbla2023@barbora.ms.mff.cuni.cz)

Pouzita literatura a dokumentace:

The Network Administrator's Guide, Net-2-HOWTO-11, manualove stranky (nfs, fstab, mount, nfsd, mountd, exports, showmount)

Obsah referatu:


NFS - The Network File System

Princip cinnosti:

Na pocitaci, ktery zpristupnuje ostatnim sve soubory a adresare, musi bezet NFS server. Na pocitaci, ktery pristupuje k souborum a adresarum jineho pocitace, musi bezet NFS klient, ktery vzdaleny adresar namountuje do lokalniho stromu adresaru. V okamziku, kdy NFS klient pozada NFS server o namountovani, overi se na strane serveru, zda ma pocitac, ze ktereho prisel tento pozadavek, pozadovana prava (nektere adresare mohou byt napriklad ostatnim zpristupneny pouze se ctecimi pravy) a vratim mu identifikacni cislo, ktere bude klient uvadet ve svych pozadavcich na server. Jestlize uzivatel pristoupi do adresare, ktery je namountovan pomoci NFS, vygeneruje se pozadavek, ktery se posle NFS serveru (namisto aby se smeroval na lokalni file system).

Priklad:

Na jednom pocitaci v siti jsou ulozeny domovske adresare uzivatelu (rekneme, ze je to pocitac se jmenem 'ss1000' a domovske adresare jsou v adresari '/home'), ostatni pocitace v siti (rekneme, ze maji jmena 'ulab-1' az 'ulab-9') si mohou namountovat pozadovany domovsky adresar urciteho uzivatele do sveho adresaroveho stromu, jestlize ho potrebuji (naloguje-li se napriklad novy uzivatel). Toto zmensuje pozadavky na prostor (domovske adresare jsou vedeny pouze jednou), usnadnuje spravu celeho systemu a take zprijemnuje praci uzivatelum (vzdy najdou sva data at se posadi k libovolnemu pocitaci v siti).


Jak nakonfigurovat NFS klienta na (linuxovskem) pocitaci

Pocitac, ktery chce byt NFS klientem, musi mit jadro prelozeno s podporou NFS. To zda je tato podpora v jadre obsazena, lze zjistit prikazem

cat /proc/filesystems
Vystupem tohoto prikazu je informace o tom, ktere file systemy jsou jadrem podporovany. Pokud zadny z radku vystupu neobsahuje zminku o NFS, je treba jadro prebuildovat.

Pokud je jadro spravne prelozeno, je mozno namountovat pozadovany adresar ze vzdaleneho serveru. Mountovani se provadi podobnym zpusobem jako se mountuji bezne file systemy.

Volby, ktere se mohou pouzivat pri mountovani adresaru pomoci NFS:

Pozn: Udaje o tom, ktere adresare se daji z urciteho serveru namountovat, lze zjistit pomoci programu 'showmount'.


Jak nakonfigurovat NFS server na (linuxovskem) pocitaci

Pocitac, ktery chce byt NFS serverem, musi mit jadro prelozeno s podporou NFS. Dale je treba, aby na nem byly spusteny programy 'mountd' a 'nfsd' Spousteji se behem startu Linuxu (nejdrive ale musi byt spusten program 'rpc.portmap'). Typicky se do souboru '/etc/rc.init' da

     if [ -x /usr/sbin/rpc.mountd ]; then
             /usr/sbin/rpc.mountd; echo -n " mountd"
     fi
     if [ -x /usr/sbin/rpc.nfsd ]; then
             /usr/sbin/rpc.nfsd; echo -n " nfsd"
     fi

Adresare, ktere mohou vzdaleni klienti mountovat, musi byt byt "exportovany". Kazdy exportovany adresar musi mit odpovidajici radku v souboru '/etc/exports'. Tento radek muze vypadat napriklad takto

/home/rbla2023		ulab-* (rw)    colombo (ro)

NFS serveru v tomto pripade zpristupni (vyexportuje) adresar '/home/rbla2023' vsem pocitacum, ktere zacinaji na ulab- (s pristupovymi pravy pro zapis i cteni) a take pocitaci colombo (s pristupovymi pravy jenom pro cteni).

Pokud by nebyl uveden zadny server, znamenalo by to, ze adresar muze mountovat libovolny pocitac.

Volby, ktere se mohou vyskytnout v souboru '/etc/exports':


Program AMD - Automounter Daemon

Program 'amd' je nadstavbou NFS systemu. Umoznuje automaticky a transparentne namountovat ze vzdalenych pocitacu pouze ty adresare, se kterymi se opravdu pracuje. Navic adresare, ktere se dlouhou dobu nepouzivaji, dokaze odmountovat. Dalsi vyhodou tohoto programu je to, ze umi mountovat adresar z nekolika alternativnich zdroju - pokud se mu ho nepovede namountovat adresar z prvniho serveru, pokusi se namountovat adresar z druheho serveru ...

Program 'amd' se spousti napriklad takto:

amd /nfs /etc/amd.conf

Prvni parameter udava misto, do ktereho se budou mountovat adresare ze vzdalenych serveru.

Druhy parameter urcuje soubor, podle ktereho se bude program 'amd' ridit. Tady je treba uvest kazdy adresar, ktery se bude mountovat pomoci automounteru. Adresare, ktere se maji namountovat, je treba uvest v souboru '/etc/amd.conf' (jmeno tohoto souboru muze byt i jine - potom je treba ho uvest pri spousteni programu amd).

Ukazka souboru '/etc/amd.conf':

/defaults	opts:=rw;type:=nfs

/roman		host:=ss1000, rfs:=/home/rbla2023
/texty		host:=beta, rfs:=/home/rbla2023/texty

Prvni radek udava jake volby se budou aplikovat pri mountovani kazdeho z adresaru. Tyto volby jsou temer shodne s volbami, ktere jsou popsany v casti NFS server.

Jestlize byl program 'amd' spusten popsanym zpusobem a uzivatel nyni vstoupi napriklad do adresare '/nfs/texty', ze serveru 'beta' se automaticky (pomoci NFS) namountuje adresar '/home/rbla2023/texty' (s pristupovymi pravy nastavenymi pro cteni i zapis). Uzivatel s timto adresarem muze pracovat beznym zpusobem. Jestlize jej ale nebude delsi dobu pouzivat, program 'amd' ho automaticky odmountuje.