Archivi tag: mount

Installare e configurare NFS

L’acronimo NFS sta per Network File System ed è un sistema di sharing utilizzato in ambiente Linux. A differenza di Samba, che consente ad un sistema *nix di fungere da file server per macchine Windows, NFS è riservato solo ed esclusivamente ai sistemi operativi Unix-like.

linux, windows, samba, nfs, sharing, file server, rpc, portmap, ACL, fstab, mount

Configurarlo e farlo funzionare non è banale, in quanto, oltre alla configurazione del server, occorre lavorare anche sui client, facendo in modo che possano accedere alle directory condivise.

Configurazione del server

Per fare in modo che una macchina Linux possa funzionare da server NFS è necessario installare i seguenti pacchetti:

[root@server ~]# yum install nfs-server
[root@server ~]# yum install portmap

Il primo, ovviamente, è il demone che tira su il servizio NFS vero e proprio; il secondo, invece, serve a gestire le chiamate RPC.

Una volta installati i suddetti pacchetti, passiamo alla configurazione di NFS. Per fare ciò occorre editare il file /etc/exports:

[root@server etc]#nano exports

aggiungendo la directory da condividere (con pathname assoluto) e relativa ACL. Quest’ultima permetterà di fare una distinzione tra le macchine che possono avere accesso alle risorse condivise e quelle a cui l’accesso è stato negato.

/var/www/html/share                192.168.49.0/255.255.255.24 (rw,sync)

Le ultime due flag indicano che le macchine a cui è consentito l’accesso possono operare sia in lettura che in scrittura (rw) e che il contenuto della directory deve essere costantemente sincronizzato tra client e server (sync). Ovviamente, la directory da sharare deve essere esistente, dunque, se ancora non l’avete creata, fatelo mediante un banale mkdir <nomedirectory>.

Inoltre, poichè il meccanismo di controllo degli accessi definito in precedenza è abbastanza blando (si basa sulo ed esclusivamente sull’indirizzo IP delle macchine che vogliono accedere agli share), è opportuno fare in modo che tali servizi non vengano esposti all’esterno, facendo uso di un firewall o di un dispositivo che implementa il NAT/PAT.

Bene, non ci resta che avviare i servizi nfs e portmap:

[root@server etc]# service portmap start
[root@server etc]# service nfs start

Se tutto è andato a buon fine, lanciando un netstat -anp, dovrebbero risultare in ascolto le seguenti porte:

111 UDP (portmap)

2049 TCP/UDP (NFS)

Abilitiamo l’avvio automatico dei suddetti servizi:

[root@server etc]# chkconfig --levels 2345 nfs on
[root@server etc]# chkconfig --levels 2345 portmap on

e lato server abbiamo finito.

Configurazione dei client

Come primo step, è necessario installare il seguente pacchetto:

[root@client ~]# yum install nfs-utils

Successivamente, la cosa più semplice da fare per consentire ai client di accedere alle directory condivise, consiste nell’editare il file /etc/fstab:

[root@client ~]# nano /etc/fstab

aggiungendo una entry del tipo:

<IP LAN server>:/var/www/html/share    /var/www/html/share    nfs    hard,intr,rw,sync 0 0

In particolare, in questa direttiva sono presenti i seguenti campi:

1) share remota;

2) punto di mount locale (che deve essere una directory esistente);

3) tipo di file system;

4) ulteriori flag.

Per montare la share appena creata possiamo lanciare il seguente comando:

[root@linux ~]# mount -a

che monta tutte le partizioni definite nel file fstab, compresa quella NFS.

Per verificare che la share sia effettivamente up, basta digitare il comando mount (che per default mostra tutte le partizioni già montate).

Infine, se si aggiunge una nuova share e la si vuole rendere subito disponibile (senza un restart del demone NFS), è sufficiente lanciare sul server il seguente comando:

[root@server etc]# exportfs -a

Alla prossima.

 

NFS + fstab su centOS 5: problemi di mount automatico all’avvio

Dopo aver configurato NFS ho fatto in modo che le directory in sharing venissero montate automaticamente durante l’avvio dei client.

In questo modo, anche dopo un reboot, i client avrebbero potuto usufruire automaticamente delle risorse messe in condivisione dal server.

nfs, centos 5, fstab, mount, rc.d, runlevel, mount problem

Per ottenere tale funzionalità ho lavorato sui file /etc/fstab dei suddetti client, aggiungendo le entry:

192.168.12.1:/var/www/html/dir1    /var/www/html/dir1    nfs    hard,intr,rw,sync 0 0
192.168.12.1:/var/www/html/dir2    /var/www/html/dir2    nfs    hard,intr,rw,sync 0 0

dove 192.168.12.1 è l’indirizzo IP (locale) del server NFS.

Inutile dire che dopo N reboot, nonostante tali modifiche, le directory in sharing non venivano montate automaticamente.

Ho dunque deciso di vederci chiaro ed ho esaminato i vari scrip presenti nella directory /etc/rc3.d (dove il 3 indica il runlevel attivo sui client NFS). Un ls mi ha sbolognato tutta una serie di scrip, ma solo due hanno attirato la mia attenzione, ovvero K75netfs e S96netfs.

Il primo si occupa dell’inizializzazione dei volumi NFS, il secondo tira su le interfacce di rete.

Poichè gli scrip vengono eseguiti in ordine alfabetico, è chiaro che l’avvio di K75netfs prima di S96netfs causa il mancato mount delle risorse in sharing.

E’ dunque bastato eseguire il comando:

[root@client1 rc3.d] mv K75netfs S96netfs

e successivamente un reboot.

Infatti, a riavvio completato, un mount mi ha mostrato correttamente le risorse di rete condivise:

[root@bqweb1 ~]# mount

192.168.12.1:/var/www/html/dir1 on /var/www/html/dir1 type nfs (rw,sync,hard,intr,addr=192.168.12.1)
192.168.12.1:/var/www/html/dir2 on /var/www/html/dir2 type nfs (rw,sync,hard,intr,addr=192.168.12.1)

Enjoy.

PS: in aleternativa si potrebbe modificare opportunamente il file rc.local che regola l’esecuzione di comandi custom durante l’avvio del sistema operativo.

Ad esempio, si potrebbe inserire nel suddetto file la seguente direttiva:

mount -t nfs -o rw,sync,hard,intr 192.168.12.1:/var/www/html/dir1 192.168.12.1:/var/www/html/dir1