|
|
Riga 1: |
Riga 1: |
| ==Come creare una directory shared tra macchine linux (nfs, acronimo di Network File System)==
| | [[Category:Glossario]] |
|
| |
|
| Per far comunicare due macchine Linux, � possibile in diversi metodi: il modo pi� veloce per fare tutto ci�, � utilizzare NFS per mettere in condivisione una particolare directory del filesystem ad altri client.<br>
| | == Cosa sono le dipendenze == |
| Di seguito � descritta una semplice procedura per configurare ed avviare il daemon di nfs sul server e per istruire il client a raggiungere la directory esportata: questa non vuole essere una guida esaustiva ad nfs, ma solo una breve descrizione di come risolvere velocemente lo scambio di dati tra macchiine linux.
| | Ci sono diverse situazioni in cui un pacchetto ha bisogno per funzionare di un altro pacchetto, o anche pi� di uno. Per esempio la traduzione in italiano di mozilla ha banalmente bisogno di mozilla installato per funzionare. |
|
| |
|
| | In un sistema unix, e ancor pi in un sistema GNU/Linux, la gestione delle dipendenze dei pacchetti da altri pacchetti tende ad essere estremamente complicata, inquanto i casi che si possono verificare comprendono: |
| | * Pacchetti che dipendono semplicemente da altri pacchetti |
| | * Pacchetti che vanno in conflitto con altri pacchetti |
| | * Pacchetti che non dipendono da un pacchetto preciso, ma da una tipologia di pacchetti (un programma grafico ha bisogno, per esempio, di font, ma non di un tipo specifico di font: spesso sufficiente che ci sia <b>almeno</b> un pacchetto di font installato) |
| | * Pacchetti che dipendono da una versione specifica di altri pacchetti (di solito sufficiente una richiesta del tipo "dalla versione x.y.z in su") |
| | * Una combinazione anche molto complicata delle precedenti. |
|
| |
|
| === Impostazione del Server ===
| | Debian vanta un gestore di pacchetti estremamente avanzato ([[APT]]), in grado, nella stragrande maggioranza dei casi, di risolvere automaticamente questo tipo di problemi. |
| Dopo aver installato con apt-get i pacchetti '''nfs-user-server''' (un linux daemon che lavora in userspace) e '''portmap''', bisogna modificare il file '''/etc/exports''' (in caso esso non esista, bisogna crearlo) aggiungendo una riga per ogni directory che si vuole esportare.<br>
| |
|
| |
|
| {{Box | Nota |Portmap viene impostato di default ad essere "bindato" sul solo indirizzo di localhost, mentre l'uso consueto � diretto verso una o pi� reti lan. Per permettere alle varie reti di accedere al server � necessario modificare (oppure eliminare, per permettere un accesso completo) il parametro '''OPTIONS''', presente nel file '''/etc/default/portmap''' }}
| | == APT: risolutore di dipendenze == |
| | Il sistema di gestione dei pacchetti debian risolve automaticamente le dipendenze. Questo vuol dire che se cercate di installare un pacchetto verranno anche installati anche tutti i pacchetti necessari (ovvero le dipendenze) al suo funzionamento. In alcuni casi [[APT]] pu� anche decidere di rimuovere un pacchetto che va in conflitto con uno dei pacchetti da installare. Se nella risoluzione delle dipendenze ci sono diverse vie possibili, [[APT]] ne sceglie una a seconda del comando usato e dei valori di default impostati nei file di configurazione. Quando in base a queste regole [[APT]] non riesce a scegliere tra due o pi� azioni, viene segnalato il problema e st� all'amministratore decidere quale scelta intraprendere. |
|
| |
|
| Un esempio di entry per il file export pu� essere:
| | == Dipendenze obbligatorie, consigliate e suggerite == |
| | Le dipendenze di cui si � parlato fin ora sono le cos� dette ''dipendenze obbligatorie''. In realt� [[APT]] gestisce anche dipendenze pi� "deboli" che sono appunto ''pacchetti consigliati'' e ''pacchetti suggeriti''. |
|
| |
|
| <pre>/mnt/Data/download 192.168.2.3 (rw)</pre>
| | Come suggerisce il nome, i ''pacchetti consigliati'' sono delle dipendenze non obbligatorie (senza le quali un dato pacchetto pu� funzionare ugualmente) che per� aggiungono importanti funzionalit� ad un programma. In genere � consigliabile installare i pacchetti consigliati :-P. |
|
| |
|
| in cui
| | I ''pacchetti suggeriti'' sono, invece, pacchetti che aggiungono delle funzionalit� a cui non tutti sono necessariamente interessati. |
| * '''/mnt/Data/download''' � la directory da esportare
| |
| * '''192.168.2.3''' � il client che pu� raggiungere la directory in questione;
| |
| * '''(rw)''' sono le opzioni impostabili ('''rw''':permessi di scrittura/lettura);
| |
|
| |
|
| Qualora, invece, volessimo esportare la directory a tutte le macchine presenti all'interno di una sottorete:
| | == Dipendenze inverse == |
| | Con il nome ''dipendenze inverse'' si indica l'insieme dei pachetti che dipendono da un dato pacchetto. Le dipendenze inverse sono i pacchetti che vengono eliminati quando si rimuove un dato pacchetto. |
|
| |
|
| <pre>/mnt/Data/download 192.168.0.1/255.255.255.0(rw)</pre>
| | Il modo pi� semplice per visualizzare le dipendenze inverse � lanciare <tt>aptitude</tt>, selezionare il pachetto interessato e premere ''''r'''' (Reverse dependecies). Per maggiori informazioni vedere la [[Aptitude|guida dedicata ad Aptitude]]. |
| | |
| {{Box | Nota |Nelle nuove versioni di nfs � necessario inserire un flag aggiuntivo ('''sync''' oppure '''async''') per definire la modalit� di accesso ed uso dei file.
| |
| '''Sync''' forza la scrittura immediata dei dati man mano che questi arrivano al server, mentre '''async''' consente di scrivere tali dati in intervalli successivi, migliorando cos� le performance del trasferimento.
| |
| Vista la peculiarit� di questo tipo di trasferimento � conveniente usare '''sync''' nelle situazioni di rw, ed '''async''' in quelle di ro, in modo da eliminare il pericolo di dati non salvati correttamente (e quindi persi) durante le fasi di scrittura nel caso di crash del server. }}
| |
| | |
| E' possibile inoltre definire gli accessi in modo pi� granulare utilizzando i file /etc/host.access e /etc/host.denied, ma per un uso basilare di nfs non � necessario applicare alcuna modifica.
| |
| | |
| === Impostazione del Client ===
| |
| Bisogna innanzitutto installare '''nfs-common''' con apt-get, e successivamente modificare il proprio '''/etc/fstab''', aggiungendo una entry relativa alla directory che si vuole raggiungere via nfs; ad esempio:
| |
| | |
| <pre>192.168.2.2:/mnt/Data/download /mnt/nfs nfs rw,users,noauto 0 0</pre>
| |
| | |
| in cui
| |
| * '''<tt>192.168.2.2:/mnt/Data/download</tt>''' � la url completa della directory da raggiungere (sintassi, ip:path);
| |
| * '''<tt>/mnt/nfs</tt>''' � la directory dove si vuole montare il device (la directory deve essere stata creata precendentemente);
| |
| * '''<tt>nfs</tt>''' identifica il tipo di filesystem da usare (in questo caso nfs, filesystem di rete);
| |
| * '''<tt>rw,users,noauto</tt>''' sono i flag di mount del device (rw: permessi di scrittura/lettura, users: device montabile e smontabile dai vari user, noauto: device da non avviare automaticamente al boot del sistema);
| |
| * '''<tt>0 0</tt>''' sono i flag relativi al check del device da parte dei programmi di controllo della coerenza del filesystem.
| |
| | |
| A questo punto basta un semplice
| |
| | |
| <pre>$ mount /mnt/nfs</pre>
| |
| | |
| per poter usare normalmente la share nfs, come una normale directory del sistema.
| |
| | |
| In caso di malfunzionamenti inoltre, � possibile controllare lo stato della share nfs sia dal client che dal server, utilizzando le applicazioni '''rpcinfo''' e '''nfsstat''' in modo da verificare visualmente le risorse condivise attive nella rete.
| |
| | |
| ----
| |
| | |
| [[Utente:Ldonesty|Ldonesty]] | |