Avanti Indietro Indice

10. NFS in Linux 2.2

Mentre scrivo questo HOWTO, Linux 2.2.12 è la versione del kernel corrente e utilizzare NFS può rivelarsi un po' complesso.

Cosa accade se lo stato di NFS in Linux 2.4 è i unknown.

La nuova caratteristica importante di Linux 2.2 è il supporto per un demon del server nfs in-kernel, noto come knfsd in 2.2. Questo modo di implementare nfsd ha alcuni vantaggi, quello principale è la velocità. Una macchina Linux 2.2 con knfsd è un server nfs rispettabile. Si può continuare a utilizzare l'nfsd precedente con Linux 2.2. Questo comporta alcuni vantaggi, principalmente in fatto di semplicità.

Se utilizzate un kernel sorgente o un pacchetto binario creato da RedHat (6.0 o successiva), SuSE (6.1 o successiva) o altri integratori di sistemi professionali, hanno probabilmente integrato tutte le funzionalità di "knfsd" nel relativo kernel e non è necessario preoccuparsi di nulla, poiché funzionerà certamente nella maggior parte dei casi. Fino al momento in cui non compilate un vostro kernel. Se usate un kernel di stock Linux 2.2 (almeno fino a 2.2.12) knfsd verrà interrotto.

Per utilizzare questo kernel è necessario disporre del pacchetto knfsd di H.J. Lus. Si tratta di una raccolta di patch e delle utility necessarie per la versione 2.2 che Lu sta gestendo a tempo perso. Potete disporne dal mirror del kernel locale, il sito principale è ftp.kernel.org:/pub/linux/devel/gcc/. Non è indicato per uso generale. Se trovate che questo pacchetto può creare dubbi non fatelo da soli. Attendete un pacchetto del kernel dell'integratore del sistema preferito (ad esempio, Red Hat, SuSE o ...).

Inoltre, non inviatemi domande relative a questo argomento, non sono in grado di aiutarvi. Non dispongo di alcun server knfsd. Se trovate errori o omissioni in questa documentazione, scrivetemi e rivedrò questo HOWTO e ne distribuirò una nuova versione.

State ancora leggendo? Ok. H.J.Lu pubblica argomenti relativi alle nuove versioni di questo pacchetto sulla mailing list del kernel Linux. Altri problemi relativi a NFS nella versione 2.2 vengono pubblicati in questa mailing list. Leggeteli.

È importante notare una cosa in relazione al pacchetto knfsd. Annuncia che supporta la versione 3 di NFS. Tuttavia, non la supporta. Esiste un'opzione che si può utilizzare per evitare la presenza dell'annuncio di NFS3, oppure si può specificare "vers=2" nell'elenco di opzioni di mount sui client.

10.1 Il client

Il client è alquanto semplice. Per bloccarlo è necessario avere statd (del pacchetto knfsd) compilato, installato e avviato dagli script di boot. Fatelo. Statd ha bisogno di una directory /var/lib/nfs per funzionare, altrimenti verrà terminato senza messaggi di errore. La directory deve essere creata prima di eseguirlo.

Dopo l'esecuzione di statd si può usare il programma testlk in tools/locktest per verificare se il blocco di un file in un filesystem NFS funziona. Dovrebbe essere così. Se viene visualizzato No locks available, statd non funziona.

In realtà, si può anche evitare il blocco completo (non sto consigliando di farlo), immettendo ``nolock'' nell'elenco di opzioni di mount.

Per quanto ne so, questo è ciò che è necessario per far funzionare il client.

Se avete un server Sparc o Alpha NFS scoprirete che il client NFS in Linux 2.2 avrà prestazioni peggiori. Le velocità di trasferimento da e verso il server sono così tragiche che ... non potete nemmeno immaginarle. È molto peggio che in Linux 2.0. Esiste tuttavia una soluzione. La serie di kernel 2.2 di Alan Cox (che è leggermente più sperimentale dei normali kernel 2.2 di Linus) include una patch per fare in modo che Linux 2.2 funzioni quando usato con i server Alpha e Sparc. Se volete usare i kernel 2.2 di Alan Cox dovreste leggere la mailing list relativa ai kernel Linux e potrete scoprire dove si trova la patch. La home page di questa patch è http://www.uio.no/~trondmy/src/, nel caso vogliate provare ad applicarla a un kernel 2.2 di produzione. Questa patch non sarà probabilmente disponibile in Linux 2.4, perché richiede troppe modifiche nel kernel per essere accettata nel ciclo di sviluppo corrente. Aspettate Linux 2.5.

Anche trondmy dispone di patch per fare in modo che Linux usi la versione 3 di NFS, elementi che consentiranno inoltre di usare il protocollo tcp come meccanismo di trasporto invece di UDP. NFSv3 è ottimo per reti long-haul e altre reti in cui la perdita dei pacchetti non è uguale a zero o la latenza è elevata.

Il motivo per cui dovreste leggere la mailing list relativa ai kernel Linux per usare queste patch consiste nel fatto che talvolta si sono verificati grossi errori. Bug che si nutrono dei vostri file. Quindi fate attenzione.

10.2 Il server

Il demon del server nfs in Linux 2.2 e nelle versioni successive è noto come ``knfsd''. È insidioso da installare. Dovete arrangiarvi da soli o fare riferimento ai pacchetti di kernel 2.2 rilasciati da SuSE, Red Hat e altri. Spiacente. Potete ancora usare il vecchio nsfd anche in Linux 2.2. È lento ma semplice da installare.


Avanti Indietro Indice