Ce guide explique comment configurer un serveur NFS et un client NFS sur OpenSUSE 12.2. 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.
1 Remarque préliminaire
J'utilise ici deux systèmes OpenSUSE :
- 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 :
zypper install nfs-kernel-server
Ensuite, nous créons les liens de démarrage du système pour le serveur NFS et le démarrons :
systemctl enable rpcbind.service
systemctl start rpcbind.service
systemctl enable nfsserver.service
systemctl start nfsserver.service
client :
Sur le client, nous pouvons installer NFS comme suit :
zypper install nfs-client
3 Exporter des répertoires sur le serveur
serveur :
J'aimerais rendre les répertoires /home et /var/nfs accessibles au client ; il faut donc les "exporter" sur le serveur.
Lorsqu'un client accède à un partage NFS, cela se produit normalement en tant qu'utilisateur nobody. Habituellement, le répertoire /home n'appartient à personne (et je ne recommande pas de changer sa propriété en personne !), et parce que nous voulons lire et écrire sur /home, nous disons à NFS que les accès doivent être effectués en tant que root (si notre partage /home était en lecture seule, cela ne serait pas nécessaire). Le répertoire /var/nfs n'existe pas, nous pouvons donc le créer et changer sa propriété en personne et nogroup :
mkdir /var/nfs
chown personne:nogroup /var/nfs
Maintenant, nous devons modifier /etc/exports où nous "exportons" nos partages NFS. Nous spécifions /home et /var/nfs comme partages NFS et disons à NFS d'accéder à /home en tant que root (pour en savoir plus sur /etc/exports, son format et les options disponibles, consultez
man 5 exporte
)
vi /etc/exports
# Voir la page de manuel exports(5) pour une description de la syntaxe de ce fichier.# Ce fichier contient une liste de tous les répertoires qui doivent être exporté vers# d'autres ordinateurs via NFS (Network File System).# Ce fichier est utilisé par rpc.nfsd et rpc.mountd. Consultez leurs pages de manuel pour plus de détails # sur la façon dont les modifications apportées à ce fichier sont effectives. |
(L'option no_root_squash permet d'accéder à /home en tant que root.)
Chaque fois que nous modifions /etc/exports, nous devons exécuter
exportfs -a
ensuite pour que les modifications soient effectives.
4 Monter les partages NFS sur le client
client :
Nous créons d'abord les répertoires où nous voulons monter les partages NFS, par exemple :
mkdir -p /mnt/nfs/home
mkdir -p /mnt/nfs/var/nfs
Ensuite, nous pouvons les monter comme suit :
mount 192.168.0.100:/home /mnt/nfs/home
mount 192.168.0.100:/var/nfs /mnt/nfs/var/nfs
Vous devriez maintenant voir les deux partages NFS dans les sorties de
df -h
Client:~ # df -h
Taille du système de fichiers utilisé Disponible Utiliser% monté sur
rootfs 12g 3,4g 7,5g 31% /
devtmpfs 997m 4.0k 997m 1% / dev
TMPFS 1004M 580K 1003M 1% / var / Lock
TMPFS 1004M 580K 1003M 1% / VAR / RUN
TMPFS 1004M 0 1004M 0% / MEDIA
/dev/sda3 17G 387M 16G 3 % /home
192.168.0.100:/home/ 12G 1.5G 9.6G 13 % /mnt/nfs/home
192.168.0.100 : 512G 1. 12G 1 . 9,6 G 13 % /mnt/nfs/var/nfs
client :~ #
et
monter
client :~ # monter
devtmpfs sur /dev type devtmpfs (rw,relatime,size=1020060k,nr_inodes=255015,mode=755)
tmpfs sur /dev/shm type tmpfs (rw, relatime)
tmpfs sur /run type tmpfs (rw,nosuid,nodev,relatime,mode=755)
devpts sur /dev/pts type devpts (rw,relatime,gid=5,mode=620, ptmxmode=000)
/dev/sda2 sur / type ext4 (rw,relatime,data=ordered)
proc sur /proc type proc (rw,relatime)
sysfs sur /sys type sysfs (rw,relatime)
tmpfs sur /sys/fs/cgroup type tmpfs (rw,nosuid,nodev,noexec,relatime,mode=755)
cgroup sur /sys/fs/cgroup/systemd type cgroup (rw,nosuid,nodev,noexec,relatime,release_agent=/lib/systemd/systemd-cgroups-agent,name=systemd)
cgroup on /sys/fs/cgroup/cpuset type cgroup (rw,nosuid,nodev ,noexec,relatime,cpuset)
cgroup sur /sys/fs/cgroup/cpu,cpuacct type cgroup (rw,nosuid,nodev,noexec,relatime,cpuacct,cpu)
cgroup sur /sys/fs /cgroup/memory type cgroup (rw,nosuid,nodev,noexec,relatime,memory)
cgroup sur /sys/fs/cgroup/devices type cgroup (rw,nosuid,nodev,noexec,relatime,devices)
cgroup sur /sys/fs/cgroup/freezer type cgroup (rw,nosuid,nodev,noexec,relatime,freezer)
cgroup sur / sys/fs/cgroup/net_cls type cgroup (rw,nosuid,nodev,noexec,relatime,net_cls)
cgroup sur /sys/fs/cgroup/blkio type cgroup (rw,nosuid,nodev,noexec,relatime,blkio )
cgroup sur /sys/fs/cgroup/perf_event type cgroup (rw,nosuid,nodev,noexec,relatime,perf_event)
systemd-1 sur /proc/sys/fs/binfmt_misc type autofs (rw ,relatime,fd=24,pgrp=1,timeout=300,minproto=5,maxproto=5,direct)
tmpfs sur /var/lock type tmpfs (rw,nosuid,nodev,relatime,mode=755)
securityfs sur /sys/kernel/security type securityfs (rw,relatime)
tmpfs sur /var/run type tmpfs (rw,nosuid,nodev,relatime,mode=755)
mqueue sur /dev/mqueue type mqueue (rw,relatime)
debugfs sur /sys/kernel/debug type debugfs (rw,relatime)
hugetlbfs sur /dev/hugepages type hugetlbfs (rw,relatime)
tmpfs sur /media type tmpfs (rw,nosuid,nodev,noexec,relatime,mode=7 55)
/dev/sda3 sur /home type ext4 (rw,relatime,data=ordered)
aucun sur /proc/fs/vmblock/mountPoint type vmblock (rw,relatime)
gvfs -fuse-daemon sur /run/user/falko/gvfs tapez fuse.gvfs-fuse-daemon (rw,nosuid,nodev,relatime,user_id=1000,group_id=100)
192.168.0.100:/home/ sur /mnt/nfs/home type nfs4 (rw,relatime,vers=4.0,rsize=131072,wsize=131072,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys ,clientaddr=192.168.0.15,local_lock=none,addr=192.168.0.100)
192.168.0.100 :/var/nfs sur /mnt/nfs/var/nfs type nfs4 (rw,relatime,vers=4.0,rsize =131072,wsize=131072,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=192.168.0.15,local_lock=none,addr=192.168.0.100)
client :~ #
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/test.txt
appuyez sur /mnt/nfs/var/nfs/test.txt
Allez maintenant sur le serveur et vérifiez si vous pouvez voir les deux fichiers de test :
serveur :
ls -l /home/
serveur :~ # ls -l /home/
total 4
drwxr-xr-x 6 utilisateurs administrateur 4096 19 juil 17:26 administrateur
-rw-r--r- - 1 racine racine 0 14 sept 20:47 test.txt
serveur :~ #
ls -l /var/nfs
server :~ # ls -l /var/nfs
total 0
-rw-r--r-- 1 persons nogroup 0 Sep 14 20:47 test.txt
server :~ #
(Veuillez noter les différentes propriétés des fichiers de test :le partage /home NFS est accessible en tant que root, donc /home/test.txt appartient à root ; le partage /var/nfs est accessible en tant que personne, donc /var/nfs/ test.txt n'appartient à personne.)
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 /mnt/nfs/home nfs rw,sync,hard,intr 0 0192.168.0.100:/ var/nfs /mnt/nfs/var/nfs nfs rw,sync,hard,intr 0 0 |
Au lieu de
man nfs
Pour tester si votre /etc/fstab modifié fonctionne, redémarrez le client :
redémarrer
Après le redémarrage, vous devriez trouver les deux partages NFS dans les sorties de
df -h
et
monter
7 liens
- NFS Linux :http://nfs.sourceforge.net/
- OpenSUSE :http://www.opensuse.org/