Samba sous Debian 10 = souci de performance suite mise à jour de ma Debian 8

Tags: #<Tag:0x00007f63e52c35f8>

Bonjour à tous,

Suite à la mise à jour de mon serveur Samba sous Debian 8 en Debian 10 (maj des sources + apt-get update/upgrade/dist-upgrade) j’ai des soucis de performance pour lister les dossiers/temps d’accès :

J’ai la configuration suivante :

USER ----------> FIREWALL ---------> SAMBA 4.9.5 (debian 10) ---- (autofs) —> Machine Windows

Sur la machine Samba j’ai des montages vers des machines Windows (SMB) et un SAN en NFS
Ma machine Samba me sert à centraliser les accès et les droits d’accès

« Hier » (sous Debian 8) les accès pour mes utilisateurs pour liste le contenu d’un dossier avec plus de 10 000 fichiers étaient très rapide.
Depuis ma mise à jour en Debian 10 mes utilisateurs se retrouvent à attendre parfois jusqu’à 30 secondes.

Voici mon smb.conf (suite à la montée de version j’ai du faire des petites MAJ en raison de paramètres qui ont évolués) :

[global]
	pam password change = yes
	dns proxy = no
        client min protocol = NT1
	client max protocol = SMB3_11
	passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
	follow symlinks = yes
	map to guest = bad user
	log file = /var/log/samba/log.%m
	getwd cache = yes
        logging = syslog@2
	encrypt passwords = true
	usershare allow guests = yes
	max log size = 1000
	passwd program = /usr/bin/passwd %u
	panic action = /usr/share/samba/panic-action %d
	security = user
	wide links = no
	server string = %h server
	unix extensions = no
        restrict anonymous = 2
	local master = no
        os level = 10

	obey pam restrictions = yes
	passdb backend = tdbsam
        invalid users = root

[windows-serveur]
        case sensitive = Yes
        default case = lower
        preserve case = yes
        short preserve case = yes

	path = /mnt/divers/windows-serveurs
	comment = Données Windows
        force group = user
        force user = user
        valid users = @group
        write list = @group
        max connections = 100
        vfs objects = full_audit
        full_audit:success = mkdir rmdir read pread write pwrite rename unlink
        full_audit:prefix = %T|%U|%u|%I|%m|%P|%S
        full_audit:failure = connect
        full_audit:facility = local5
        full_audit:priority = notice

…etc (j’utilise toujours les mêmes paramètres pour les autres partages)

Coté serveur Samba lister un dossier génère grand max 8% de CPU de consommé

Je vois pas par où commencer pour identifier mon souci

Merci d’avance pour vos pistes, votre aide

Cordialement,
Guedz

Il y a vraiment un problème.

Pour chaque fichier, il faut retrouver l’utilisateur et le groupe associé. Le système de fichiers contient dans le cas NAS/NFS des numéros uid et gid, par exemple le numéro 1019 est attribué à l’utilisateur albert si la commande

getent passwd 1019

retourne une ligne qui commence par albert:1019:...

Comment samba peut savoir à qui il a à faire ?

on est revenu vraiment au siècle dernier, où on se faisait confiance

je ne connaît pas ces paramètres (je n’ai fait qu’un Samba3 qui s’intègre dans un domaine active directory)

C’est semble-t-il un environnement à la « windows fror workgroup » aks windows 3.11. Cela ne nous rajeunit pas. Même Linus a sorti il y a bien longtemps une version « linux for workgroup (3.11) »
En résumé
Lorsqu’un utilisateur Windows s’identifie et se connecte donc au réseau local, quel est le système Windows qui lui donne le feu vert en vérifiant son identifiant et son mot de passe ? Est-ce vraiment un réseau de type windows for workgroup ?
Dans la configuration de samba, je ne vois pas de référence à aucun contrôleur de domaine (à la winbind ou Active Directory). (le nom Microsoft d’un serveur winbind m’échappe, mais il faut bien qu’il y ait une machine qui fasse la police dans le réseau local et fasse la correspondance entre les noms netbios qui circulent et les machines, utilisateurs et groupes )
Avez-vous installé et configuré winbind et/ou des paquets comme libpam-winbind libnss-winbind ?
Connectez-vous sur le serveur samba et tentez des commandes comme

getent hosts nom_poste
getent  passwd  user

et dites-nous en plus sur la gestion du réseau dans l’environnement windows.

Cordialement,
Regards,
Mit freundlichen Grüßen,
مع تحياتي الخالصة


F. Petitjean
Ingénieur civil du Génie Maritime.

« L’arbre tombe toujours du côté où il penche. »
Proverbe français

« Un ordinateur c’est comme un frigo : on le branche et ça marche. »
Laurent Serano Directeur informatique, réunion Délégués du Personnel 2010

Bonjour et merci pour votre réponse :

Il y a 4 machines sous Windows et plus de 30 serveurs sous linux.
Les 4 machines sous Windows font tourner des vieilles applications que l’on peut pas migrer…
et ces 4 machines Windows ne sont pas intégré à un domaine… vive les années 80 et le workgroup…

Cordialement,
Guedz

Ah bon ? Et les administrateurs ils se tournent les pouces ?

Et les utilisateurs ils ont quoi ? Ils s’identifient comment ? Ils sont combien ?
Parmi les 30+ serveurs sous Linux, il n’y en a pas un qui fisse service d’annuaire ? ( LDAP ) ou qui fisse Cerbère ( kerberos ) ?
En supposant un minimum de cohérence dans l’architecture réseau, (en particulier qu’il existe un compte réseau valable sur les machines Linux) pourriez-vous vérifier que les utilisateurs sont bien (rapidement) identifiés sur les différents serveurs (en particulier le serveur Samba) :

for u in user1 user2 ....
do
   ssh serveurSamba getent passwd $u
   ssh serveur2 getent passwd $u
done

Vous pouvez aussi imbriquer une boucle sur les serveurs, ajouter des getent hosts Machine, … )
Je ne pose pas la question des sauvegardes ou de la supervision :laughing:

Cordialement,
Regards,
Mit freundlichen Grüßen,
مع تحياتي الخالصة


F. Petitjean
Ingénieur civil du Génie Maritime.

Avoid the Gates of Hell. Use Linux
(Unknown source)

As usual, this being a 1.3.x release, I haven’t even compiled this
kernel yet. So if it works, you should be doubly impressed.
– Linus Torvalds, announcing kernel 1.3.3

Bonjour,

je vois pas où vous voulez en venir dans le sens où je constate pas de souci de droit et que mon souci est après MAJ debian 8 en debian 10.

Cordialement,
Guedz

J’espère que la mise à jour n’a pas été faite directement de la version 8 à la 10…
Pour faire court, ta configuration est peu claire et semble utiliser des directives inutiles ou obsolètes.
Ne penses-tu pas que les directives « full_audit » risquent de plomber les performances ?

Bonjour,

effectivement j’ai réalisé la mise à jour Debian 8 vers Debian 10 en direct et suis conscient (vu que j’ai du adapter mon smb.conf mais pas tant que çà au final) de la notion de directive inutile ou obsolète :

testparm (retourne aucune erreur et permet d’identifier les directives inutiles car = valeur par défaut) :

[global]
client max protocol = SMB3
client min protocol = NT1
dns proxy = No
log file = /var/log/samba/log.%m
logging = syslog@2
map to guest = Bad User
max log size = 1000
obey pam restrictions = Yes
pam password change = Yes
panic action = /usr/share/samba/panic-action %d
passwd chat = Enter\snew\s\spassword:* %n\n Retype\snew\s\spassword:* %n\n password\supdated\ssuccessfully .
passwd program = /usr/bin/passwd %u
security = USER
server string = %h server
socket options = TCP_NODELAY IPTOS_LOWDELAY
unix extensions = No
usershare allow guests = Yes
idmap config * : backend = tdb
invalid users = root
strict locking = No

etc…

Note : j’ai fait sauter cette ligne : restrict anonymous = 2 (qui était juste un test)

Concernant les full audit : effectivement ceci a un impact sur les performances « mais » avant la mise à jour le périmètre d’audit était le même (Complément d’information : pour exemple depuis minuit ce jour, j’ai que 3887 lignes inscrites dans syslog pour le full audit => je ne pense pas que celà soit pénalisant )

Sous Debian 8 un « time find » d’un dossier depuis un poste client ajouté simplement 2 à 3 secondes grand max par rapport à l’exécution de la commande depuis le serveur Debian 8

Sous Debian 10 un « time find » d’un dossier depuis un poste client ajoute 20 à 30 secondes par rapport à l’exécution de la commande depuis le serveur Debian 10

C’est là où je n’arrive pas à comprendre / expliquer ce résultat avec un smb.conf quasiment identique :

Avant : syslog = 0
Après : logging = syslog@2 (à 2 actuellement pour avoir plus de log mais j’ai pas plus d’info)

Avant : socket options = TCP_NODELAY IPTOS_LOWDELAY
Après : suppression de la ligne car valeur par défaut et recommandé sous Samba 4.x de laisser Samba gérer

Voici les seules modifications normalement apportées

Merci d’avance pour votre aide

Cordialement,
Guedz

Il faudrait tester avec iperf la vitesse de transfert depuis les deux serveurs afin d’éliminer un problème réseau.

Les directives client min/max protocol ne sont utiles que si tu as des clients qui ne gèrent que SMB1/NT1

Bonjour,

Concernant la ligne :
client min protocol = NT1

Je fais parti des petits veinards qui ont encore des Windows 2003 non R2 car l’application qui tourne en 16bits peut pas être migré sur du 64 bits :slight_smile:

Pour le iperf j’essaie çà asap

Cordialement,
Guedz

Bonjour,

voici un rapide test iperf :

Sur le serveur samba :

iperf -s
------------------------------------------------------------
Server listening on TCP port 5001
TCP window size:  128 KByte (default)
------------------------------------------------------------
[  4] local 192.168.xxx port 5001 connected with 192.168.xxx port 35890
[ ID] Interval       Transfer     Bandwidth
[  4]  0.0-10.0 sec  1.10 GBytes   941 Mbits/sec
[  4] local 192.168.xxx port 5001 connected with 192.168.xxx port 35906
[  4]  0.0-10.0 sec  1.10 GBytes   940 Mbits/sec
[  4] local 192.168.xxx port 5001 connected with 192.168.xxx port 35916
[  4]  0.0-10.0 sec  1.10 GBytes   941 Mbits/sec

Sur mon poste utilisateur :

iperf -c 192.168.xxx
------------------------------------------------------------
Client connecting to 192.168.xxx, TCP port 5001
TCP window size:  332 KByte (default)
------------------------------------------------------------
[  3] local 192.168.xxx port 35890 connected with 192.168.xxx port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-10.0 sec  1.10 GBytes   942 Mbits/sec

etc…

Cordialement,
Guedz

Un getent hosts bidule_ou_IP c’est une interrogation sur la résolution de noms des machines du réseau. Vous avez un problème de performances d’une application réseau. Et je vois dns proxy = no dans smb.conf
Nous ne savons pas si dans le monde antique de Windows for workgroup vous avez installé un serveur « Voisinage réseau » (master browser ou je ne sais plus comment cela s’appelait), et s’il y a « winbind » sur les machines Linux. En tout cas, sur un réseau physique 1Gbit (résultats bruts iperf) le serveur samba est à la ramasse.
Il y a aussi une partie NFS pour un SAN. Qu’en est-il des performances avec le SAN ?

Il se peut, que vous soyez victime d’une régression de samba entre les versions Debian 8 et 10 dans le support d’un protocole obsolète depuis longtemps.

Cordialement,
Regards,
Mit freundlichen Grüßen,
مع تحياتي الخالصة


F. Petitjean
Ingénieur civil du Génie Maritime.

En 2009 nous avons réduit notre endettement qui n’est plus que de 1,5 fois le cash flow
Franck Piedelièvre le 29 janvier 2010. Les voeux du Président.

Dieu règne au ciel, et l’argent sur la terre.
Proverbe allemand

Bonjour,

Sur la machine samba :
getent hosts IP ou hostname = pas de souci constaté
getent passwd xxxx = pas de souci constaté

Sur un poste user :
getent hosts IP ou hostname = pas de souci constaté
getent passwd xxxx = ne fonctionne que pour le compte user

Concernant les performances NFS :

USER <-----> SAMBA <---- (nfs) ----> SAN

samba/san : iozone -R -l 1 -u 1 -r 4k -s 100m

« Output is in kBytes/sec »

" Initial write " 1573352.88
" Rewrite " 2259144.00
" Read " 2963051.50
" Re-read " 2761081.25
" Reverse Read " 1802178.88
" Stride read " 2005168.62
" Random read " 1956252.00
" Mixed workload " 1951106.62
" Random write " 1629951.25
" Pwrite " 1830989.62
" Pread " 2980550.25
" Fwrite " 1766430.88
" Fread " 2744794.75

user (via samba) / san :

« Output is in kBytes/sec »
" Initial write " 2328756.25
" Rewrite " 1759029.88
" Read " 106960.60
" Re-read " 113208.23
" Reverse Read " 4210.92
" Stride read " 20247.18
" Random read " 8051.32
" Mixed workload " 7797.21
" Random write " 1310888.75
" Pwrite " 1730315.00
" Pread " 107505.67
" Fwrite " 1844982.12
" Fread " 107389.62

J’ai testé également mon serveur samba en modifiant :

avant : client min protocol = NT1
apres : client min protocol = SMB2

et supprimer tout ce qui est en lien avec des machines ne gérant pas au minimum SMB2 et je constate aucune amélioration

Merci pour votre aide

Cordialement,
Guedz

Bonjour,

@anon70622873 : je viens d’explorer la piste d’une régression au niveau des full_audit et d’après les premiers résultats (même si je suis conscient que celà prend des ressources) après désactivation de tous les « full_audit » j’obtiens des performances identiques

Rappel de l’utilisation de mon samba :

USER <----> SAMBA <---- (nfs) ------> Volume du SAN
USER <----->SAMBA < -------- (smb) -------> partage de poste Windows

Lister un grand volume de fichier/dossier :
Sous Debian 8 avec full_audit actif :
La différence entre SAMBA/SAN et USER/SAMBA/SAN était de quelques secondes

Sous Debian 10 :

     avec full_audit :
     La différence entre SAMBA/SAN et USER/SAMBA/SAN était de quelques dizaines de secondes (minimum 20 secondes dans les meilleurs cas identifiés)

     sans full_audit :
     identique avec full_audit

Donc le souci ne semble pas venir de là…

Cordialement,
Guedz

Voilà qui est un peu plus clair. Ajoutez éventuellement time devant les commandes, pour avoir une idée des délais éventuels (toute valeur > 1ms est inacceptable sur un réseau local Gbits .
Il semblerait que les postes utilisateurs soient des Linux. Et donc

Chapeau à l’architecte réseau :laughing: Je comprends aisément que le paramétrage d’une solution SAN (quel modèle, quel OS ?) ne soit pas très aisé ni enthousiasmant, mais franchement pourquoi utiliser Samba pour forcer un seul utilisateur du côté des fichiers (du côté du SAN ou des applicatifs windows ) ?
Dès le départ, Unix est multi-utilisateur. Sur chaque poste Linux, un utilisateur connecté a une identification numérique uid, il appartient à un groupe gid et peut faire parie d’autres groupes. En utilisant Samba comme vous le faites, vous cassez ce schéma simple et efficace (si géré globalement sur le réseau) en décidant arbitrairement que du côté des systèmes de fichiers tout le monde s’appelle ‹ user › et fait partie du groupe ‹ group ›. Pourquoi ne pas avoir utilisé le directement le serveur NFS du SAN ou installé un serveur NFS sur une machine intermédiaire ?
Une mauvaise langue dirait « difficile de distinguer les proportions de paresse ou d’ignorance chez l’architecte réseau », mais c’est une mauvaise langue et cela ne fait pas avancer le scmilblick.
Vous allez me dire : c’est un simple regroupement d’utilisateurs pour chacun des partages, et cela peut se comprendre, c’était difficile de le deviner à aprtir de votre premier message.
Maintenant que le problème est un tout petit peu plus clair, vous comprenez qu’il est grand temps de définir une architecture réseau autrement que par de vagues schémas. Pour chaque entité poste client, serveur, utilisateur, groupe il faut définir précisément les attributs caractéristiques (nom, IP) ou (nom, uid, gid, groups) par exemple, quels sont les serveurs qui gèrent tout cela (serveur DNS, DHCP, LDAP, NIS, AD, …).
Bref, il y a du boulot.
Commencez d’abord par répertorier les contenus des fichiers suivants pour les serveurs (SAN, Samba, serveur DNS, DHCP, …)
/etc/nsswitch.conf /etc/resolv.conf
et faites les commandes getent non pas avec les noms mais avec les numéros ( IP, uid, gid ). La boucle for que je vous avais suggéré à la fin du message 4 est toujours d’actualité. Cela vous permet de voir comment cela fonctionne et cela suppose que vous avez au moins un compte sur tous les serveurs du réseau pour l’accès ssh.

Pour gérer les différentes entités du réseau, depuis Linux, il y a pas mal de solutions. Par exemple, NIS est particulièrement simple (simpliste diront les détracteurs) mais pourrait convenir pour un réseau de taille modeste.
Pour créer un nouvel utilisateur, il suffit de le faire sur le serveur NIS principal et de lancer une commande make dans un certain répertoire pour que l’information soit répliquée sur les machines du domaine NIS.
Je vous conseille aussi d’avoir un groupe unique (users) pour tous les comptes utilisateurs, comme cela est fait chez Süse Linux (SLES) au contraire de Debian où par défaut, un groupe est créé pour chaque utilisateur.
Pour les postes Windows, si vous utilisez des versions « Pro » de ce système, le poste client est automatiquement configuré pour être intégré à un domaine Active Directory, et dans ce cas il serait plus simple d’intéger les machines Linux dans AD (client Kerberos, + samba + winbind ).
Comme il semble que les systèmes Windows sont minoritaires, une solution NIS me semble plus adaptée (mais rien ne vous empêche d’envisager un annuaire LDAP ou autre). De plus NIS et NFS sont historiquement proches.
Pour un poste Linux donné, l’utilisateur habituel peut avoir deux comptes : un compte local et un compte réseau pour accéder aux fichiers qui sont sur le réseau. Mais, en pratique c’est le compte réseau qui est utilisé, au fil du temps. Le compte local peut servir pour du dépannage ou l’installation de paquets spécifiques au poste.

Bon courage.

Cordialement,
Regards,
Mit freundlichen Grüßen,
مع تحياتي الخالصة


F. Petitjean
Ingénieur civil du Génie Maritime.

« L’arbre tombe toujours du côté où il penche. »
Proverbe français

« Un ordinateur c’est comme un frigo : on le branche et ça marche. »
Laurent Serano Directeur informatique, réunion Délégués du Personnel 2010

Bonjour,

merci pour cette analyse mais si on devait aller dans ce sens il faudrait que vous sachiez dans quel domaine j’applique mon architecture et mon souci reste toujours pourquoi j’ai cette dégradation très importante des performances entre Debian 8 et Debian 10.

Sur mon infra j’ai juste besoin de mon serveur DNS, DHCP et le reste c’est du stockage ou du réseau.
Désolé mais je vais pas déployer un LDAP à maintenir ou d’autres solutions à maintenir si j’en ai pas besoin.
Historiquement nous avons eu ce genre de serveur…

Pour répondre à votre question sur les time :

time getent hosts unhostname

real 0m0,003s
user 0m0,002s
sys 0m0,000s

time getent hosts IP

real 0m0,002s
user 0m0,000s
sys 0m0,002s

Désolé mais faut rester dans le contexte, j’ai pas besoin d’un switch d’un routeur, d’une connexion Internet, d’un serveur LDAP et d’un i7 si je veux juste jouer au démineur.

Ma base d’authentification est sur le serveur Samba car c’est le seul serveur qui a besoin d’une authentification de ce type

Une idée de piste par rapport à mon souci ?

Cordialement,
Guedz

Associé aux fichiers et répertoires, il y a bien l’information à qui appartient ce fourbi. Faut quand même savoir si ce sont les fichiers de Martine la secrétaire du patron, de Thomas de la compta ou des commerciaux.
Il semblerait que pour chaque partage vous avez défini un utilisateur et un groupe et que cela corresponde à des informations gérées par le NAS. Dans ce cas, c’est l’interface logicielle entre le serveur Samba et le NAS qui pose des problèmes de performance.

Trouver le modèle de NAS, son OS embarqué, lire la documentation et depuis un poste Linux faire un montage automatique d’une arborescence typique exportée par ledit NAS. Autrement dit (sur le poste client)
créer un point de montage,
créer un utilisateur de même nom que sur le NAS
faire chown sur le point de montage
créer les fichiers /etc/auto.* qui vont bien
lancer et tester le montage NFS
Cela revient à réaliser sur un autre poste ce que vous avez fait pour la partie autofs du serveur Samba, sans la partie qui est dans smb.conf.
Le contenu des fichiers /etc/auto.* du serveur Samba, ainsi que /etc/exports du NAS (*) serait très intéressant ceci dit, à moins qu’il ne soit couvert par le secret Défense. (+ ls -l sur les points de montage )
L’avantage d’un montage NFS direct est que vous disposez de commande comme nfsstat pour investiguer.
Si les performances sont correctes, vous avez une solution de contournement possible (provisoire) en copiant la configuration sur les postes clients les plus impactés (ou appartenant à ceux qui ont le bras long )
Bien sûr le problème n’est que reporté, à moins qu’on découvre des choses dans la configuration.
Si les performances ne sont pas au rendez-vous sur votre poste de test, vous savez que vous avez mal paramétré l’accès au NAS, ou que le NAS est nase.

Sinon, c’est reparti à bidouiller smb.conf et sa ribambelle de paramètres, éplucher des journaux, …
De plus la sécurité apportée est très faible, pas vraiment supérieure au codage en dur des identifiants NAS sur le poste utilisateur.

Note
(*) j’ose espérer que vous avez un vrai accès ssh au NAS . S’il n’y a qu’un accès à un serveur Web intégré pour paramétrer l’appareil, comme ce qu’on trouve sur les box des FAI, vous pouvez engueuler celui qui a choisi le truc, une box appartient au FAI, le NAS appartient à l’entreprise qui l’a acheté.

Cordialement,
Regards,
Mit freundlichen Grüßen,
مع تحياتي الخالصة


F. Petitjean
Ingénieur civil du Génie Maritime.

« Celui qui, parti de rien, n’est arrivé nulle part n’a de merci à dire à personne !! »
Pierre Dac

Bonjour,

désolé nous avons pas de NAS :slight_smile: ou disons on en a plus depuis au moins 10 ans (les documents users sont sur une GED maison)

je vais être plus claire en donnant un exemple :

USER ----------> FIREWALL ---------> SAMBA 4.9.5 (debian 10) ---- (autofs) —> Machine Windows FTP server

sur le serveur samba j’ai un user « userwindows » et sur la machine windows j’ai bien mon user « userwindows »

Ce user « userwindows » est bien l’utilisateur qui fait tournait le service FTP et est bien le propriétaire des fichiers du FTP.

Mes utilisateurs doivent juste pouvoir accéder au contenu des comptes FTP en lecture juste pour controler un log ou si des fichiers restent dans un des comptes.

si je fais un time find /chemin vers partage des comptes FTP > /dev/null

depuis un poste USER c’est en moyenne 20 à 30 secondes de plus que la même commande sur le serveur SAMBA là où avec Debian 8 j’avais grand max 4 à 5 secondes

autre information qui peut être intéressant :

SAMBA 4.9.5 (debian 10) ---- (autofs) —> Machine Windows FTP server

la commande time find … du montage autofs donne des résultats < 2 secondes

real 0m1,714s
user 0m0,009s
sys 0m0,245s

USER ----------> FIREWALL ---------> Machine Windows FTP server

la commande time find … du montage autofs donne des résultats autour de 14 secondes

real 0m14,962s
user 0m0,311s
sys 0m1,738s

Autre machine DMZ --------> Machine Windows FTP server

real 0m4,603s
user 0m0,012s
sys 0m0,278s

Merci pour votre aide

cordialement,
Guedz

Bonjour,

un test complémentaire :

Sur la machine SAMBA sous Debian 10 :

(Toujours avec mon exemple de poste Windows FTP)

  1. Je monte via autofs le partage du poste Windows FTP dans /mnt/ftp
  2. Je déclare le partage /mnt/ftp dans mon smb.conf (partage ftp)
  3. mount.cifs //127.0.0.1/ftp /tmp/test -o user userwindows

commande exécutée : time find /chemin… > /dev/null

time sur dossier /mnt/ftp : max 2 secondes = T
time sur dossier /tmp/test : T + 20 à 30 secondes

Cà semble mettre en évidence un souci avec le serveur SaMBa

Cordialement,
Guedz

Cela devient un peu pénible :cold_sweat:
Pourriez-vous au moins une fois donner les retours complets des commandes sans caviardage, et en indiquant précisément les noms et rôle des différentes machines.
On semble deviner pour /tmp/test un montage d’une ressource locale(?) /ftp avec le module cifs.
Avec votre manie de ne pas faire de copier-coller, on ne comprend plus rien.
Dans cette commande mount.cifs c’est peut-être l’IP du serveur FTP que vous n’avez pas recopié correctement, ou bien c’est le chemin du partage que vous avez mal recopié.

Si vous voulez de l’aide, il serait temps de faire un effort.

Cela met surtout en évidence que vous ne comprenez rien à ce que vous faites. Quel est le rapport entre un montage cifs et le serveur SAMBA ?

De plus, bien sûr, nous n’avons pas la commande find exacte utilisée, d’une part, les performances sur le partage réseau géré par SAMBA semblent vous satisfaire d’autre part.
En vertu d’une logique qui vous est propre, vous inventez une utilisation du module cifs qui a des performances dégradées pour rejeter la faute sur SAMBA.

Décidément vous êtes particulièrement difficile à suivre.
C’est quoi « une GED maison ». ( E.T. disait « maison, maison ! », pas « GED maison » )

Dans votre entreprise, la devise est bien « pourquoi faire simple, quand on peut faire compliqué ? ». Cela permet de se plaindre de performances à la ramasse. Je comprends très bien que des applications obsolètes sous Windows vous pourrissent la vie, et je compatis.
Mais vous prenez un exemple avec « Windows FTP Server ». C’est parce-qu’il y a « Server » dans le nom et que cela fait un peu classe ? Ou bien que les fichiers ont majoritairement été créés à un moment où vous utilisiez des outils Microsoft en pagaille et où il y avait quelqu’un qui comprenait un peu l’architecture (et le système de fichiers NTFS ) et que cette compétence a été perdue (attention, le répertoire …\mes documents ne doit être accessible qu’à tel commercial ) ?

« USER » vous n’avez toujours pas expliqué comment il est équipé.

« FIREWALL » ??

Dans le message 17, au lieu de paraphraser

donnez les contenus des fichiers de configuration /etc/auto.*, les retours complets des commandes (et rajoutez des sorties pertinentes )

df -hT /ponit/de/montage
ls -ld /point/de/montage
id owner

Cordialement,
Regards,
Mit freundlichen Grüßen,
مع تحياتي الخالصة


F. Petitjean
Ingénieur civil du Génie Maritime.

« Avant donc que d’écrire, apprenez à penser »
Boileau De L’Art poétique (Chant I)

Ceci est un test 100% local afin de retirer de l’équation un firewall , des switchs, un poste user qui aurait un souci de cable etc…
Donc nous sommes dans la configuration :

vmware1.domaine.dmz : 192.168.1.100
sur lequel on a dfs.domaine.dmz (notre serveur samba) : 192.168.1.110
sur lequel on a ftp.domaine.dmz (notre FTP server sous windows) : 192.168.1.124

Pour pas tester sur la prod, j’ai remasteriser un dfs-spare.domaine.dmz (192.168.1.119) identique à la machine dfs.domaine.dmz

Voici l’ensemble des commandes et output :

root@dfs-spare:/# hostname
dfs-spare.domaine.dmz
root@dfs-spare:/# 
root@dfs-spare:/# adduser --no-create-home --disabled-password --disabled-login --ingroup users userwindows
Ajout de l'utilisateur « userwindows » ...
Ajout du nouvel utilisateur « userwindows » (1027) avec le groupe « users » ...
Le répertoire personnel « /home/userwindows » n'a pas été créé.
Changing the user information for userwindows
Enter the new value, or press ENTER for the default
	Full Name []: 
	Room Number []: 
	Work Phone []: 
	Home Phone []: 
	Other []: 
Cette information est-elle correcte ? [O/n]o
root@dfs-spare:/# 
root@dfs-spare:/# smbpasswd -a userwindows
New SMB password:
Retype new SMB password:
Added user userwindows.
root@dfs-spare:/# 
root@dfs-spare:/# mount.cifs //127.0.0.1/ftp /tmp/ftp -o user=userwindows
Password for userwindows@//127.0.0.1/ftp:  *******
root@dfs-spare:/# 
root@dfs-spare:/# mount|grep ftp
//127.0.0.1/ftp on /tmp/ftp type cifs (rw,relatime,vers=default,cache=strict,username=userwindows,uid=0,noforceuid,gid=0,noforcegid,addr=127.0.0.1,file_mode=0755,dir_mode=0755,soft,nounix,serverino,mapposix,rsize=1048576,wsize=1048576,echo_interval=60,actimeo=1)
root@dfs-spare:/# 
root@dfs-spare:/# time find /tmp/ftp > /dev/null
real	0m43,512s
user	0m0,074s
sys	0m0,359s
root@dfs-spare:/#

J’en ai profité pour tester :

  • SAMBA 4.12.7 compilé à partir des sources
    J’obtiens le même résultat de performance

  • SAMBA 4.4.16 compilé à partir des sources => serveur pas stable j’ai pas pu réaliser de test

root@dfs-spare:/#+dir:/etc/auto.master.d
+auto.master

/mnt/backup	/etc/auto-backup.nfs	--ghost,--timeout=60
/mnt/share      /etc/auto.nfs           --ghost,--timeout=360
/mnt/station    /etc/auto.smb           --ghost,--timeout=3600
/mnt/divers     /etc/auto-divers.smb    --ghost,--timeout=3600
root@dfs-spare:~# 
root@dfs-spare:~# cat /etc/auto-divers.smb
ftp    -fstype=cifs,rw,username=userwindows,password=,iocharset=utf8,uid=1000,gid=1000 ://192.168.1.124/D/ftp
root@dfs-spare:~# 

Vous voulez ces commandes cotés samba ou user ?

si c’est coté samba :

root@dfs-spare:~# df -hT /mnt/ftp
Sys. de fichiers           Type Taille Utilisé Dispo Uti% Monté sur
//192.168.1.124/D/ftp cifs   100G     45G   56G  45% /mnt/ftp
root@dfs-spare:~# 
root@dfs-spare:~# ls -ld /mnt/ftp
drwxr-xr-x 2 user user 4096 sept. 18 15:12 /mnt/ftp/
root@dfs-spare:~# 
root@dfs-spare:~# id user
uid=1000(user) gid=1000(user) groupes=1000(user),24(cdrom),25(floppy),29(audio),30(dip),44(video),46(plugdev),108(netdev)
root@dfs-spare:~# 

Cordialement,
Guedz