Ce guide explique comment configurer un serveur NFS et un client NFS sur Debian Wheezy. NFS signifie Système de fichiers réseau; via NFS, un client peut accéder (lire, écrire) à un partage distant sur un serveur NFS comme s'il se trouvait sur le disque dur local. Dans ce didacticiel, je vais vous montrer deux exportations NFS différentes, l'exportation d'un répertoire client qui stocke les fichiers en tant qu'utilisateur personne/nogroup sans préserver les autorisations du système de fichiers et une exportation du répertoire /var/www qui préserve les autorisations et la propriété des fichiers, comme requis sur une configuration de serveur d'hébergement.
1 Remarque préliminaire
J'utilise ici deux systèmes Debian Wheezy :
- Serveur NFS :serveur.exemple.com, adresse IP :192.168.0.100
- Client NFS :client.exemple.com, adresse IP :192.168.0.101
2 Installer NFS
serveur :
Sur le serveur NFS, nous exécutons :
apt-get install nfs-kernel-server nfs-common
Ensuite, nous créons les liens de démarrage du système pour le serveur NFS et le démarrons :
client :
Sur le client, nous pouvons installer NFS comme suit (c'est en fait la même chose que sur le serveur) :
apt-get install nfs-common
3 Exporter des répertoires sur le serveur
serveur :
J'aimerais rendre les répertoires /home/client1 et /var/www accessibles au client pour montrer les deux modes d'accès différents du serveur NFS. Le répertoire /home/client1 est partagé en mode standard, donc tous les fichiers écrits dans ce répertoire sont stockés en tant qu'utilisateur nobody et groupe nogroup. Pour le répertoire /var/www j'utilise l'option no_root_squash qui demande au serveur nfs de conserver les permissions et la propriété des fichiers. C'est par ex. nécessaire lorsque vous souhaitez exporter le répertoire /var/www d'un serveur Web géré avec ISPConfig 3
Je vais d'abord créer le répertoire /home/client1
mkdir /home/client1
chown nobody:nogroup /home/client1
chmod 755 /home/client1
Le répertoire /var/www existe probablement sur votre serveur. Si ce n'est pas le cas, créez-le :
mkdir /var/www
chown root:root /var/www
chmod 755 /var/www
Maintenant, nous devons modifier /etc/exports où nous "exportons" nos partages NFS. Nous spécifions /home/client1 et /var/www comme partages NFS et disons à NFS d'accéder à /home/client1 en tant qu'utilisateur personne (pour en savoir plus sur /etc/exports, son format et les options disponibles, consultez
man 5 exporte
)
vi /etc/exports
/home/client1 192.168.0.101(rw,sync,no_subtree_check)/var/www 192.168.0.101(rw,sync,fsid=0,crossmnt,no_subtree_check,no_root_squash)
(L'option no_root_squash fait que /var/www sera accessible en tant que root.)
Pour appliquer les modifications dans /etc/exports, nous redémarrons le serveur nfs du noyau
/etc/init.d/nfs-kernel-server restart
4 Monter les partages NFS sur le Client
client :
Tout d'abord, nous créons les répertoires où nous voulons monter les partages NFS, par exemple :
mkdir -p /mnt/nfs/home/client1
mkdir -p /var/www
Si le répertoire /var/www existe déjà sur votre serveur, alors arrêtez apache, renommez le répertoire et créez un nouveau répertoire vide comme point de montage
/etc/init.d/apache2 stop
mv /var/www /var/www_bak
mkdir -p /var/www
Ensuite, nous pouvons les monter comme suit :
mount 192.168.0.100:/home/client1 /mnt/nfs/home/client1
mount 192.168.0.100:/var/www /var/www
Vous devriez maintenant voir les deux partages NFS dans les sorties de
df -h
[[email protected] ~]# df -h
Système de fichiers Taille Utilisé Disponible Utilisation % Monté sur
/dev/mapper/vg_server2-LogVol00
9,7 G 1,7 G 7,5 G 18 % /
tmpfs 499M 0 499M 0 0 % /dev/sda1 504M 39M 440M 9 % /démarrage
192.168.0.100 : 9 7 G 1 9. /mnt/nfs/home/client1
192.168.0.100:/var/www
9.7G 1.7G 7.5G 19 % /var/www
[[email protected] ~]#et
monter[[email protected] ~]# mount
/dev/mapper/vg_server2-LogVol00 on / type ext4 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts sur /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs sur /dev/shm type tmpfs (rw)
/ dev/sda1 sur /boot type ext4 (rw)
aucun sur /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc sur /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
192.168.0.100:/home/client1 sur /mnt/nfs/home/client1 type nfs (rw,vers=4,addr=192.168.0.100,clientaddr=192.168.0.101)
192.168.0.100:/ var/www sur /var/www tapez nfs (rw,vers=4,addr=192.168.0.100,clientaddr=192.168.0.101)
[[email protected] ~]#5 Tests
Sur le client, vous pouvez maintenant essayer de créer des fichiers de test sur les partages NFS :
client :
appuyez sur /mnt/nfs/home/client1/test.txt
appuyez sur /var/www/test.txtAllez maintenant sur le serveur et vérifiez si vous pouvez voir les deux fichiers de test :
serveur :
ls -l /home/client1/[[email protected] ~]# ls -l /home/client1
total 0
-rw-r--r-- 1 nobody nogroup 0 Feb 02 16:58 test.txt
[[email protected] ~]#ls -l /var/nfs[[email protected] ~]# ls -l /var/www
total 0
-rw-r--r-- 1 root root 0 Feb 02 16:58 test.txt
[[email protected] ~]#(Veuillez noter les différentes propriétés des fichiers de test :le partage NFS /home/client1 est accessible en tant que personne/nogroup et appartient à personne/nogroup ; le partage /var/www est accessible en tant que root, donc /var/www/test .txt appartient à l'utilisateur et au groupe root.)
6 Montage des partages NFS au démarrage
Au lieu de monter manuellement les partages NFS sur le client, vous pouvez modifier /etc/fstab afin que les partages NFS soient montés automatiquement au démarrage du client.
client :
Ouvrez /etc/fstab et ajoutez les lignes suivantes :
vi /etc/fstab[...]192.168.0.100:/home/client1 /mnt/nfs/home/client1 nfs rw,sync,hard,intr 0 0192.168.0.100:/var/www /var/www nfs rw,sync, dur,intr 0 0Au lieu de rw,sync,hard,intr, vous pouvez utiliser différentes options de montage. Pour en savoir plus sur les options disponibles, consultez
man nfsPour tester si votre /etc/fstab modifié fonctionne, démontez les partages et exécutez mount -a :
umount /mnt/nfs/home/client1
umount /var/www
mount -aVous devriez maintenant voir les deux partages NFS dans les sorties de
df -h[[email protected] ~]# df -h
Système de fichiers Taille Utilisé Disponible Utilisation % Monté sur
/dev/mapper/vg_server2-LogVol00
9,7 G 1,7 G 7,5 G 18 % /
tmpfs 499M 0 499M 0 0 % /dev/sda1 504M 39M 440M 9 % /démarrage
192.168.0.100 : 9 7 G 1 9. /mnt/nfs/home/client1
192.168.0.100:/var/www
9.7G 1.7G 7.5G 19 % /var/www
[[email protected] ~]#et
monter[[email protected] ~]# mount
/dev/mapper/vg_server2-LogVol00 on / type ext4 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts sur /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs sur /dev/shm type tmpfs (rw)
/ dev/sda1 sur /boot type ext4 (rw)
aucun sur /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc sur /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
192.168.0.100:/home/client1 sur /mnt/nfs/home/client1 type nfs (rw,vers=4,addr=192.168.0.100,clientaddr=192.168.0.101)
192.168.0.100:/ var/www sur /var/www tapez nfs (rw,vers=4,addr=192.168.0.100,clientaddr=192.168.0.101)
[[email protected] ~]#7 crédits
Ce didacticiel est basé sur le didacticiel Centos NFS Server de Falko Timme.
8 liens
- NFS Linux :http://nfs.sourceforge.net/
- Debian :http://www.debian.org/