Retour : Page Principale > sommaire serveurs & domaines > Agathis
Remarque : si le montage NFS ne se fait pas automatiquement après un redémarrage du serveur, faire un mount -a manuellement.
Il faut avoir un fichier : /etc/exports
Dedans on met le nom du dossier Ă exporter vers l'IP et les options: /grosdur 10.99.34.3(rw,no_subtree_check,no_root_squash)
Activer le partage avec exportfs -a, consulter les partages actifs avec exportfs -v
Ou sinon redémarer NFS : /etc/init.d/nfs-kernel-server restart ou service nfs-kernel-server reload
Vérifier la présence des services NFS avec la commande : rpcinfo -p
Vérifier la présence du service portmap sur le port 111 avec la commande : netstat -vpatn
Il faut Ă©galement modifier la config du parefeu, sur Agathis avec :
Éditer /etc/shorewall/rules
Recharger la config : service shorewall refresh ou sinon si ça marche toujours pas service shorewall restart
Festuca n'a pas de parfeu Ă ouvrir. Le trafic sur 10.99.34.0/24 est totalement ouvert chez Supagro.
Créer un dossier 'grosdur', exemple : mkdir /home/grosdur
Modifier le fichier /etc/fstab
Il doit contenir l'ip du serveur nfs et le dossier exporté puis le dossier de montage sur l'hote et les options : 193.54.123.216:/grosdur /home/grosdur nfs rw,addr=193.54.123.216 0 0
Et enfin monter le partage NFS : mount /home/grosdur ou mount -a
Vous pouvez ensuite créer des liens symboliques dans les dossiers utilisateurs vers un dossier présent dans /home/grosdur.
Exemple : ln -s /home/grosdur/cel/images /home/telabotap/www/eflore/cel/images
N'oubliez pas de modifier les droits du dossier dans grosdur pour qu'ils correspondent à ceux de l'utilisateur qui doit y accéder.
Notes : pour modifier les droits d'un lien symbolique utiliser la commande : chown -h utilisateur:group lien_symbolique
Exemple : chown -h telabotap:users /home/telabotap/www/eflore/cel/images
/etc/exports
/etc/fstab
Y'a des trucs et astuces pour débuguer ça, installer iostat et consulter l'IOwait cumulé des processus du système :
Voilà avec ça on trouve vite si nfsd est à la rue. Souvent y'a MySQL, Apache ou Nginx qui attendent derrière nfsd.
Par contre j'ai pas encore trouvé comment optimiser ça correctement. Y'a des pistes mais pu tester avec un serveur au calme pour avoir des benchmarks propres.
Faut voir du coté des paramètres de connexion NFS type rsize et wsize :
10.99.34.3(rw,no_subtree_check,no_root_squash,rsize=32768,wsize=32768)
L'idée c'est d'augmenter ces valeurs, histoire d'échanger des paquets plus gros par défaut. En théorie avec NFS sur réseau on est limité par le MTU du réseau, mais j'ai l'intuition qu'avec un NFS local entre une machine hôte et ses VM on devrait pouvoir monter à l'infini. Mais bon, faudrait tester.
Après vérification, le nombre de process nfsd semblent suffisant sur festuca.
Documentation sur l'IO et l'optimisation de NFS :
http://nfs.sourceforge.net/nfs-howto/ar01s05.html
https://www.slashroot.in/how-do-linux-nfs-performance-tuning-and-optimization
https://serverfault.com/questions/12679/can-anyone-explain-precisely-what-iowait-is
Voir ici, en bas des threads, les paramètres d'optimisation du système quant au réseau, ce genre de chose (mais vu qu'on fait que du local, j'ai un doute sur la pertinence) :
https://forum.proxmox.com/threads/poor-performance-on-nfs-storage.25777/
https://forum.proxmox.com/threads/bad-nfs-performance.45739/
Procédure de montage de grosdur
Remarque : si le montage NFS ne se fait pas automatiquement après un redémarrage du serveur, faire un mount -a manuellement.
Sur le serveur
Installer NFS : apt install nfs-kernel-serverIl faut avoir un fichier : /etc/exports
Dedans on met le nom du dossier Ă exporter vers l'IP et les options: /grosdur 10.99.34.3(rw,no_subtree_check,no_root_squash)
Activer le partage avec exportfs -a, consulter les partages actifs avec exportfs -v
Ou sinon redémarer NFS : /etc/init.d/nfs-kernel-server restart ou service nfs-kernel-server reload
Vérifier la présence des services NFS avec la commande : rpcinfo -p
Vérifier la présence du service portmap sur le port 111 avec la commande : netstat -vpatn
Il faut Ă©galement modifier la config du parefeu, sur Agathis avec :
Éditer /etc/shorewall/rules
Recharger la config : service shorewall refresh ou sinon si ça marche toujours pas service shorewall restart
Festuca n'a pas de parfeu Ă ouvrir. Le trafic sur 10.99.34.0/24 est totalement ouvert chez Supagro.
Sur le client
Installer le nécessaire : apt install rpcbind nfs-commonCréer un dossier 'grosdur', exemple : mkdir /home/grosdur
Modifier le fichier /etc/fstab
Il doit contenir l'ip du serveur nfs et le dossier exporté puis le dossier de montage sur l'hote et les options : 193.54.123.216:/grosdur /home/grosdur nfs rw,addr=193.54.123.216 0 0
Et enfin monter le partage NFS : mount /home/grosdur ou mount -a
Vous pouvez ensuite créer des liens symboliques dans les dossiers utilisateurs vers un dossier présent dans /home/grosdur.
Exemple : ln -s /home/grosdur/cel/images /home/telabotap/www/eflore/cel/images
N'oubliez pas de modifier les droits du dossier dans grosdur pour qu'ils correspondent à ceux de l'utilisateur qui doit y accéder.
Notes : pour modifier les droits d'un lien symbolique utiliser la commande : chown -h utilisateur:group lien_symbolique
Exemple : chown -h telabotap:users /home/telabotap/www/eflore/cel/images
Exemples de configs
/etc/exports
/grosdur 10.99.34.3(rw,no_subtree_check,no_root_squash) 10.99.34.8(rw,no_subtree_check,no_root_squash) 10.99.34.5(rw,no_subtree_check,no_root_squash)
/etc/fstab
10.99.34.2:/grosdur /home/grosdur nfs rw,vers=3,addr=10.99.34.5,nolock 0 0 10.99.34.2:/grosdur/beta/wp-content_test /home/beta/www/test/wp-content nfs rw,vers=3,addr=10.99.34.5,nolock 0 0 10.99.34.2:/grosdur/beta/wp-content_preprod /home/beta/www/preprod/wp-content nfs rw,vers=3,addr=10.99.34.5,nolock 0 0
Debug en cas de lenteurs
Le NFS c'est bien mais ça fait des IOwait abusés. Faut pas mettre des fichiers fortement demandés (genre ceux de MySQL) dans un partage NFS sinon ça lag de ouf tavu.Y'a des trucs et astuces pour débuguer ça, installer iostat et consulter l'IOwait cumulé des processus du système :
iostat -aP
Voilà avec ça on trouve vite si nfsd est à la rue. Souvent y'a MySQL, Apache ou Nginx qui attendent derrière nfsd.
Par contre j'ai pas encore trouvé comment optimiser ça correctement. Y'a des pistes mais pu tester avec un serveur au calme pour avoir des benchmarks propres.
Faut voir du coté des paramètres de connexion NFS type rsize et wsize :
10.99.34.3(rw,no_subtree_check,no_root_squash,rsize=32768,wsize=32768)
L'idée c'est d'augmenter ces valeurs, histoire d'échanger des paquets plus gros par défaut. En théorie avec NFS sur réseau on est limité par le MTU du réseau, mais j'ai l'intuition qu'avec un NFS local entre une machine hôte et ses VM on devrait pouvoir monter à l'infini. Mais bon, faudrait tester.
Après vérification, le nombre de process nfsd semblent suffisant sur festuca.
Documentation sur l'IO et l'optimisation de NFS :
http://nfs.sourceforge.net/nfs-howto/ar01s05.html
https://www.slashroot.in/how-do-linux-nfs-performance-tuning-and-optimization
https://serverfault.com/questions/12679/can-anyone-explain-precisely-what-iowait-is
Voir ici, en bas des threads, les paramètres d'optimisation du système quant au réseau, ce genre de chose (mais vu qu'on fait que du local, j'ai un doute sur la pertinence) :
https://forum.proxmox.com/threads/poor-performance-on-nfs-storage.25777/
https://forum.proxmox.com/threads/bad-nfs-performance.45739/
Put this in sysctl.conf: <code> net.core.rmem_max = 16777216 net.core.wmem_max = 16777216 net.core.rmem_default = 16777216 net.core.wmem_default = 16777216 sunrpc.tcp_slot_table_entries = 128 net.ipv4.tcp_max_tw_buckets = 180000 net.ipv4.tcp_mem = 362208 482944 724416 net.ipv4.tcp_wmem = 4096 16384 4194304 net.ipv4.tcp_rmem = 4096 87380 4194304 net.ipv4.udp_mem = 363168 484224 726336 </code>