[NFS (et fish://)] problème de copie (cp ou mv)
[NFS (et fish://)] problème de copie (cp ou mv)
La problématique ayant un peu changé depuis le début du post, j'édite le titre du post et je vous renvoie ici pour les derniers problèmes: http://forums.archlinux.fr/post47431.html#p47431
Bonjour.
J'en avais assez de mes deux NAS réseaux (type syno) dont le réseau Gigabit plafonnait bêtement à 10 Mo/s, j'ai donc transformé un vieux PC en serveur de fichiers, sous Arch, évidemment. J'essaye désormais de configurer tout ça au mieux.
Pour simplifier, disons que j'ai un PC client sous Arch, un PC serveur sous Arch aussi.
J'utilise régulièrement les fichiers stockés sur le serveur sur mon client, parfois en streaming, mais j'ai aussi besoin de transferer des fichiers à l'intérieur de mon serveur, et c'est là que j'ai un problème:
J'utilisais jusqu'à maintenant le protocole NFS (v3 ou v4).
Le transfert de fichiers du serveur vers le client (et vice versa) se passe sans problème, à environ 25 Mo/s, ce qui ne doit pas être très loin du débit de mes disques durs (certains sont encore en IDE, pas de Raid).
Par contre, si je veux, à partir du client, sous interface graphique (Dolphin) copier / déplacer un fichier d'un dossier du serveur vers un autre dossier du serveur, le fichier vient du serveur, passe par le client, pour repartir vers le serveur. J'espère me faire bien comprendre.
J'avoue que je ne me rappelle pas avoir remarqué cela lorsque j'utilisais mes NAS réseaux (avec NFS aussi).
Mon but est le suivant:
1) monter de façon transparente les disques du serveur sur mon client, utilisable avec une interface graphique (KDE en ce qui me concerne)
2) transferer le plus rapidement possible les fichiers de et vers le serveur
3) transférer le plus rapidement possible les fichiers du serveur vers le serveur
Bref, j'ai fait quelques tests avec d'autres protocoles. Pour synthétiser:
-- NFS --
transfert client <--> serveur OK (25 Mo/s)
transfert serveur <--> serveur lent (fichier fait serveur --> client --> serveur, grosse activité réseau)
-- sshfs --
transfert client <--> serveur OK (28 Mo/s et très stable)
transfert serveur <--> serveur lent (fichier fait serveur --> client --> serveur, grosse activité réseau)
-- fish / sftp --
transfert client <--> serveur lent (10 M/s)
transfert serveur <--> serveur OK (rapide, pas d'activité réseau sur le client)
Mes questions sont les suivantes:
1) Est-il normal que les transferts serveur <--> serveur via NFS ou sshfs transitent par les clients ?
1b) --> si non à la précédente question : qu'est-ce que je peux avoir oublié dans la config du serveur ou du client ?
1c) --> si oui à la précédente question: existe-t-il un protocole me permettant de réaliser ce que je souhaite ?
Merci à tous pour vos pistes de recherche.
Bonjour.
J'en avais assez de mes deux NAS réseaux (type syno) dont le réseau Gigabit plafonnait bêtement à 10 Mo/s, j'ai donc transformé un vieux PC en serveur de fichiers, sous Arch, évidemment. J'essaye désormais de configurer tout ça au mieux.
Pour simplifier, disons que j'ai un PC client sous Arch, un PC serveur sous Arch aussi.
J'utilise régulièrement les fichiers stockés sur le serveur sur mon client, parfois en streaming, mais j'ai aussi besoin de transferer des fichiers à l'intérieur de mon serveur, et c'est là que j'ai un problème:
J'utilisais jusqu'à maintenant le protocole NFS (v3 ou v4).
Le transfert de fichiers du serveur vers le client (et vice versa) se passe sans problème, à environ 25 Mo/s, ce qui ne doit pas être très loin du débit de mes disques durs (certains sont encore en IDE, pas de Raid).
Par contre, si je veux, à partir du client, sous interface graphique (Dolphin) copier / déplacer un fichier d'un dossier du serveur vers un autre dossier du serveur, le fichier vient du serveur, passe par le client, pour repartir vers le serveur. J'espère me faire bien comprendre.
J'avoue que je ne me rappelle pas avoir remarqué cela lorsque j'utilisais mes NAS réseaux (avec NFS aussi).
Mon but est le suivant:
1) monter de façon transparente les disques du serveur sur mon client, utilisable avec une interface graphique (KDE en ce qui me concerne)
2) transferer le plus rapidement possible les fichiers de et vers le serveur
3) transférer le plus rapidement possible les fichiers du serveur vers le serveur
Bref, j'ai fait quelques tests avec d'autres protocoles. Pour synthétiser:
-- NFS --
transfert client <--> serveur OK (25 Mo/s)
transfert serveur <--> serveur lent (fichier fait serveur --> client --> serveur, grosse activité réseau)
-- sshfs --
transfert client <--> serveur OK (28 Mo/s et très stable)
transfert serveur <--> serveur lent (fichier fait serveur --> client --> serveur, grosse activité réseau)
-- fish / sftp --
transfert client <--> serveur lent (10 M/s)
transfert serveur <--> serveur OK (rapide, pas d'activité réseau sur le client)
Mes questions sont les suivantes:
1) Est-il normal que les transferts serveur <--> serveur via NFS ou sshfs transitent par les clients ?
1b) --> si non à la précédente question : qu'est-ce que je peux avoir oublié dans la config du serveur ou du client ?
1c) --> si oui à la précédente question: existe-t-il un protocole me permettant de réaliser ce que je souhaite ?
Merci à tous pour vos pistes de recherche.
Dernière modification par Musky le sam. 27 févr. 2010, 14:54, modifié 1 fois.
- benjarobin
- Maître du Kyudo
- Messages : 17569
- Inscription : sam. 30 mai 2009, 15:48
- Localisation : Lyon
Re: [réseau] NFS, sshfs, fish....un pour les gouverner tous ?
Tout est absolument normal a part peut la vitesse du sftp que je trouve un peu lent... Après comment contourner le problème, c'est une autre histoire...
Zsh | KDE | PC fixe : AMD Ryzen 9900X, Radeon RX 7700 XT
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
- gyo
- Maître du Kyudo
- Messages : 1049
- Inscription : jeu. 19 avr. 2007, 10:40
- Localisation : Nantes (44)
Re: [réseau] NFS, sshfs, fish....un pour les gouverner tous ?
Euh oui, c'est tout à fait normal… Si tu veux un débit optimal faut se connecter sur un des 2 serveurs (via ssh par exemple) et effectuer les transferts de cette manière… Enfin si j'ai bien compris le problème.
Re: [réseau] NFS, sshfs, fish....un pour les gouverner tous ?
t'as pas besoin de sshfs pour y accéder depuis dolphin, utilise tout simplement sftp:
et les commandes seront transmis au serveur, un mv sera exécuté par le serveur et ce ne sera pas une copie.
Code : Tout sélectionner
sftp://user@serveur:mdp/rep
Re: [réseau] NFS, sshfs, fish....un pour les gouverner tous ?
@gyo: merci pour ta réponse... je suis désormais fixé. Reste à savoir si une solution existe...
@tuxce: certes, mais cela ne résoud pas mon problème: pouvor faire, de façon transparente, via interface graphique (cliquable), des transferts clients <--> serveur ou serveur <--> serveur sans avoir à changer de protocole ou passer par la ligne de commande / rentrer des adresses spécifiques
Mettre en place ta solution de façon entièrement cliquable nécessiterait deux type de raccourcis: un qui irai vers le dossier via sftp / fish pour les transferts intra-serveur, l'autre qui passerai par nfs / sshfs pour les transferts client <--> serveur.....
Allez expliquer ça à ma femme vous (le concept du WAF n'est pas encore tout à fait la base de linux....
@tuxce: certes, mais cela ne résoud pas mon problème: pouvor faire, de façon transparente, via interface graphique (cliquable), des transferts clients <--> serveur ou serveur <--> serveur sans avoir à changer de protocole ou passer par la ligne de commande / rentrer des adresses spécifiques
Mettre en place ta solution de façon entièrement cliquable nécessiterait deux type de raccourcis: un qui irai vers le dossier via sftp / fish pour les transferts intra-serveur, l'autre qui passerai par nfs / sshfs pour les transferts client <--> serveur.....
Allez expliquer ça à ma femme vous (le concept du WAF n'est pas encore tout à fait la base de linux....

Re: [réseau] NFS, sshfs, fish....un pour les gouverner tous ?
pour les transferts, y a pas 2 protocoles ou raccourcis, dolphin gère le sftp://
pour l'utilisation comme disque en local, je sais pas si dolphin le fait, mais il doit y avoir un truc comparable à nautilus/gvfs sous gnome.
sous nautilus quand tu ouvres un sftp, il le monte automatiquement sous "~/.gvfs/machin chose" et tu peux soit le gérer comme répertoire local soit depuis sftp:// et les commandes sont transmises au serveur, donc les mv passent.
sinon tu peux aussi installer gvfs et utiliser
pour l'utilisation comme disque en local, je sais pas si dolphin le fait, mais il doit y avoir un truc comparable à nautilus/gvfs sous gnome.
sous nautilus quand tu ouvres un sftp, il le monte automatiquement sous "~/.gvfs/machin chose" et tu peux soit le gérer comme répertoire local soit depuis sftp:// et les commandes sont transmises au serveur, donc les mv passent.
sinon tu peux aussi installer gvfs et utiliser
Code : Tout sélectionner
gvfs-mount sftp://phrase_a_rallonge
Re: [réseau] NFS, sshfs, fish....un pour les gouverner tous ?
@benjarobin: ma réponse précédente à gyo s'adressait en fait à toi, merci donc pour ta réponse
@gyo: merci aussi
, mais je n'ai qu'un serveur. Lorsque je parle de transferts internes au serveur, c'est simplement copier ou déplacer un fichier d'un dossier 1 à un dossier 2 DANS le serveur.
Bref: mv /serveur/dossier1/fichier1 /serveur/dossier2/fichier1
@tuxce: le problème n'est pas le montage.
Effectivement,dolphin gère le sftp et effectivement, le sftp est adapté aux transferts internes au serveur puisque comme tu le disais, le mv (ou le cp d'ailleurs) est transmis directement. Il n'y a donc pas d'activité réseau relative au transfert, tout se fait comme si on avait donné une commande en s'étant connecté sur le serveur par ssh.
MAIS !! lorsque j'accède à un dossier du serveur en utilisant une adresse du type sftp:// et que je copie un fichier vers mon client, alors le débit est lent (10 Mo/s, à comparer aux 25 du NFS, voir 28 du sshfs).
A l'inverse, NFS et sshfs me permettent des débits confortables en transferts client <--> serveur, mais pas internes au serveur, puisque le fichier fait alors le chemin suivant : serveur (dossier1) --> client --> serveur (dossier2).
Je me paye alors une activité réseau de malade, aussi bien en entrée sur le client (les paquets arrivent du serveur) qu'en sortie (les paquets repartent vers le serveur)
@gyo: merci aussi

Bref: mv /serveur/dossier1/fichier1 /serveur/dossier2/fichier1
@tuxce: le problème n'est pas le montage.
Effectivement,dolphin gère le sftp et effectivement, le sftp est adapté aux transferts internes au serveur puisque comme tu le disais, le mv (ou le cp d'ailleurs) est transmis directement. Il n'y a donc pas d'activité réseau relative au transfert, tout se fait comme si on avait donné une commande en s'étant connecté sur le serveur par ssh.
MAIS !! lorsque j'accède à un dossier du serveur en utilisant une adresse du type sftp:// et que je copie un fichier vers mon client, alors le débit est lent (10 Mo/s, à comparer aux 25 du NFS, voir 28 du sshfs).
A l'inverse, NFS et sshfs me permettent des débits confortables en transferts client <--> serveur, mais pas internes au serveur, puisque le fichier fait alors le chemin suivant : serveur (dossier1) --> client --> serveur (dossier2).
Je me paye alors une activité réseau de malade, aussi bien en entrée sur le client (les paquets arrivent du serveur) qu'en sortie (les paquets repartent vers le serveur)
Re: [réseau] NFS, sshfs, fish....un pour les gouverner tous ?
ok j'avais pas lu le 10mo/s pour le sftp client/serveur
(m'apprendra à pas lire attentivement jusqu'au bout)
mais du coup, il y a un truc qui m'interpelle, sshfs, c'est du fuse mais au travers de sftp et la vitesse est bonne ?
(avec scp tout court, c'est quelle vitesse?)
du coup, j'ai testé sshfs que je n'utilise pas habituellement, les "mv" passent pareil que sftp sous nautilus, pas de charge réseau sur un fichier > 100 mo sur du 10/100

mais du coup, il y a un truc qui m'interpelle, sshfs, c'est du fuse mais au travers de sftp et la vitesse est bonne ?
(avec scp tout court, c'est quelle vitesse?)
du coup, j'ai testé sshfs que je n'utilise pas habituellement, les "mv" passent pareil que sftp sous nautilus, pas de charge réseau sur un fichier > 100 mo sur du 10/100
Re: [réseau] NFS, sshfs, fish....un pour les gouverner tous ?
ouh la... alors la, j'ai un truc bizarre. J'ai pas eu le temps de creuser mes tests....
A partir de mon PC de bureau (client) si je fais, en console, un truc du type:
Par contre, si avec Dolphin, je me connecte via sftp://user@serveur/
et que je fais un copier / coller du même fichier, je transfert à la vitesse explosive de 2,8 MB/s !!
De même, je ne peux pas faire de copier coller dans le serveur lui même. Je suis pourtant sûr que ça passe sur mon portable (je reteste après manger....)
Mon PC de bureau à un pacman -Syu d'avance sur le portable (et donc KDE 4.4.00)..... ça peut jouer ?
A partir de mon PC de bureau (client) si je fais, en console, un truc du type:
Code : Tout sélectionner
$ sftp user@server:/
sftp> get test
-->/test 100% 1118MB 28.7MB/s 00:39
et que je fais un copier / coller du même fichier, je transfert à la vitesse explosive de 2,8 MB/s !!
De même, je ne peux pas faire de copier coller dans le serveur lui même. Je suis pourtant sûr que ça passe sur mon portable (je reteste après manger....)
Mon PC de bureau à un pacman -Syu d'avance sur le portable (et donc KDE 4.4.00)..... ça peut jouer ?
Re: [réseau] NFS, sshfs, fish....un pour les gouverner tous ?
Bon, même si KDE4.4.00 me fait suer par ailleurs, je pense qu'on peut le mettre hors de cause dans mon problème.
Je précise mes tests, car apparement j'avais mélangé / confondu fish et sftp.
----- sftp via console -------
serveur --> client
----- sftp via dolphin ------
serveur -- >client 2Mo/s, et je ne suis même pas sûr que ça se termine toujours bien
serveur --> serveur : ne marche pas (copie 160Ko, et s'arrête / pédale dans la semoule)
---- fish via dolphin --------
serveur --> client 17 Mo/s
serveur --> serveur OK (direct, sans activité réseau)
Il faut que je refasse mes tests NFS et sshfs.
Concernant scp, voilà ce que ca donne serveur --> client
Comme pour sftp en console, je ne sais pas trop comment tester un transfert serveur --> serveur depuis le poste client
Je précise mes tests, car apparement j'avais mélangé / confondu fish et sftp.
----- sftp via console -------
serveur --> client
Code : Tout sélectionner
sftp user@serveur:/dossier
get test
-->/test 100% 1118MB 28.7MB/s 00:39
serveur -- >client 2Mo/s, et je ne suis même pas sûr que ça se termine toujours bien
serveur --> serveur : ne marche pas (copie 160Ko, et s'arrête / pédale dans la semoule)
---- fish via dolphin --------
serveur --> client 17 Mo/s
serveur --> serveur OK (direct, sans activité réseau)
Il faut que je refasse mes tests NFS et sshfs.
Concernant scp, voilà ce que ca donne serveur --> client
Code : Tout sélectionner
[user@bureau ~]$ scp user@serveur:/dossier/test .
user@serveur's password:
test 100% 1118MB 28.7MB/s 00:39
Dernière modification par Musky le sam. 27 févr. 2010, 01:12, modifié 1 fois.
Re: [réseau] NFS, sshfs, fish....un pour les gouverner tous ?
pour sftp, c'est "rename" pour déplacer, pour scp il ne fait que copier (cp)
Re: [réseau] NFS, sshfs, fish....un pour les gouverner tous ?
le rename passe bien en ligne de commande sur sftp.... rien avec le clickodrome (dolphin), mais peut-être est-ce mal géré....
Bref, fish est pas mal (17Mo/s, c'est honnète); mais il ne semble pas gérer le streaming... nul n'est parfait....
Bref, fish est pas mal (17Mo/s, c'est honnète); mais il ne semble pas gérer le streaming... nul n'est parfait....
Re: [réseau] NFS, sshfs, fish....un pour les gouverner tous ?
Bon, finalement, je me retrouve avec deux problèmes:
- quand je veux copier (déplacer) un fichier d'un emplacement du serveur NFS(v3) vers un autre emplacement du même serveur NFS, le processus est très lent, que ce soit par dolphin ou par un cp / mv en ligne de commande. J'ai cru comprendre que c'était normal, mais j'aimerai au moins pouvoir stabiliser le débit, et si possible éviter les "en attente disque qui me bloque dolphin ou la console le temps du transfert.
- quand j'utilise fish:// sous dolphin, je peux déplacer (couper / coller) des fichiers au sein d'une même partition, mais pas d'une partition à une autre. Il faut alors que je fasse d'abord un copier coller, et ensuite effacer les fichiers originaux. J'ai pensé à un problème de droit, et j'ai essayé des montages très permissifs, mais bon....
Quelques infos:
Le serveur est un PC sous archlinux x86_64, 1Go RAM, Athlon 3200+
/etc/exports est configuré comme suit:
les PCs clients sont aussi sous arch x86_64, je passe les autres détails
/etc/fstab est comme suit:
Par ailleurs, comme indiqué dans les précédents posts, les copies et les déplacements client <--> serveur ne posent pas de problèmes (28MiB/s)
Les "copier / couper / coller" sous dolphin ou les cp /mv sous console marchent mal:
- copie lente
- forte sollicitation du processeur côté client
- processus dolphin ou cp sont indiqués "en attente disque"
- activité réseau en dents de scie très inégales, de 0 à 2MB/s, en passant par 150 KiB/s
J'ai essayé de nombreuses options de montage, et quelques unes côté serveur, en particulier:
hard,intr vs soft,timeo=
tcp
sync / async (--> async rendait le kill du cp plus difficile)
nolock / lock (--> lock me posait des problèmes de déplacement)
rsize=,wsize=
J'ai rapidement testé NFSv4 sans noter d'améliorations particulières.
Une idée (pour nfs ou pour fish) ?
- quand je veux copier (déplacer) un fichier d'un emplacement du serveur NFS(v3) vers un autre emplacement du même serveur NFS, le processus est très lent, que ce soit par dolphin ou par un cp / mv en ligne de commande. J'ai cru comprendre que c'était normal, mais j'aimerai au moins pouvoir stabiliser le débit, et si possible éviter les "en attente disque qui me bloque dolphin ou la console le temps du transfert.
- quand j'utilise fish:// sous dolphin, je peux déplacer (couper / coller) des fichiers au sein d'une même partition, mais pas d'une partition à une autre. Il faut alors que je fasse d'abord un copier coller, et ensuite effacer les fichiers originaux. J'ai pensé à un problème de droit, et j'ai essayé des montages très permissifs, mais bon....
Quelques infos:
Le serveur est un PC sous archlinux x86_64, 1Go RAM, Athlon 3200+
/etc/exports est configuré comme suit:
Code : Tout sélectionner
/hdd/transit 192.168.1.1/24(rw,sync,no_subtree_check)
/etc/fstab est comme suit:
Code : Tout sélectionner
192.168.1.5:/hdd/transit /nas/transit nfs nolock,hard,intr 0 0
Les "copier / couper / coller" sous dolphin ou les cp /mv sous console marchent mal:
- copie lente
- forte sollicitation du processeur côté client
- processus dolphin ou cp sont indiqués "en attente disque"
- activité réseau en dents de scie très inégales, de 0 à 2MB/s, en passant par 150 KiB/s
J'ai essayé de nombreuses options de montage, et quelques unes côté serveur, en particulier:
hard,intr vs soft,timeo=
tcp
sync / async (--> async rendait le kill du cp plus difficile)
nolock / lock (--> lock me posait des problèmes de déplacement)
rsize=,wsize=
J'ai rapidement testé NFSv4 sans noter d'améliorations particulières.
Une idée (pour nfs ou pour fish) ?
-
- Hankyu
- Messages : 19
- Inscription : lun. 14 déc. 2009, 18:54
Re: [NFS (et fish://)] problème de copie (cp ou mv)
perso j'utilise NFSv4, le partage est monté sur le client dans le dossier /serv
en console sur le client :
mv /serv/dossier1/test /serv/dossier2/test : instantané sans traffic réseau
cp /serv/dossier1/test /serv/dossier2/test : trés long avec énorme traffic réseau
en revanche les transfert se font à 11 MB/s entre le server et le client (ce n'est pas le réseau qui est lent... netperf me donne 95MB/s max).
en console sur le client :
mv /serv/dossier1/test /serv/dossier2/test : instantané sans traffic réseau
cp /serv/dossier1/test /serv/dossier2/test : trés long avec énorme traffic réseau
en revanche les transfert se font à 11 MB/s entre le server et le client (ce n'est pas le réseau qui est lent... netperf me donne 95MB/s max).