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

**URL:** <https://www.debian-fr.org/t/samba-sous-debian-10-souci-de-performance-suite-mise-a-jour-de-ma-debian-8/82846>\
**Category:** Support Debian\
**Tags:** samba\
**Created:** [Septembre 14, 2020, 10:26 UTC](https://www.debian-fr.org/t/samba-sous-debian-10-souci-de-performance-suite-mise-a-jour-de-ma-debian-8/82846 "2020-09-14T10:26:25Z")\
**Posts on this page:** 3\
**Page:** 2

<div class="post-metadata">

**Author:** ![littlejohn75](https://www.debian-fr.org/user_avatar/www.debian-fr.org/littlejohn75/32/3840_2.png) [@littlejohn75](https://www.debian-fr.org/u/littlejohn75)\
**Post date:** [Septembre 21, 2020, 8:12 UTC](https://www.debian-fr.org/t/samba-sous-debian-10-souci-de-performance-suite-mise-a-jour-de-ma-debian-8/82846/21 "2020-09-21T20:12:50Z")

</div>

> [@guedz45](#):
>
> Pour pas tester sur la prod, j’ai remasteriser un dfs-spare.domaine.dmz (192.168.1.119) identique à la machine dfs.domaine.dmz

Joli charabia, qui montre à quel point vous n’êtes pas sûr de vous, et surtout à quel point vous savez dans votre for intérieur que vous ne pourrez pas vous empêcher de lancer des commandes à la hussarde qui pourraient mettre en péril la cohérence d’un système de fichiers tel que vu par un utilisateur. Un montage en lecture seule pour une arborescence d’un partage existant me semble suffisant pour tester les droits d’accès et la copie d’un ou deux fichiers.

> [@guedz45](#):
>
> root@dfs-spare:/# hostname  
> dfs-spare.domaine.dmz

Le nom en jette. Il me semble un peu en contradiction avec les directives suivantes qui fleurent plutôt le XXième siècle

> [@guedz45](#):
>
> avant : client min protocol = NT1  
> apres : client min protocol = SMB2

D’autre part ne pas lancer des commandes depuis le compte root si ce n’est pas nécessaire.

> [@guedz45](#):
>
> root@dfs-spare:/# adduser --no-create-home --disabled-password --disabled-login --ingroup users userwindows

Pourquoi privez-vous l’utilisateur de sa maison ? Si vous simulez un utilisateur existant, vous ne simulez pas un SDF !

> [@guedz45](#):
>
> root@dfs-spare:/#mount.cifs [//127.0.0.1/ftp](https://127.0.0.1/ftp) /tmp/ftp -o user=userwindows  
> Password for userwindows@[//127.0.0.1/ftp:](https://127.0.0.1/ftp:) \*\*\*\*\*\*\*

Deuxième erreur, si vous utilisez le montage automatique, par définition les paramètres du montage sont dans

> [@guedz45](#):
>
> ```auto
> 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
> 
> ```

Et nous voyons immédiatement que les paramètres fondamentaux d’identification `uid`et `gid` sont des numéros associés à l’utilisateur qui lance le montage et non pas les valeurs 0 (super utilisateur) qui ont été obtenues

> [@guedz45](#):
>
> root@dfs-spare:/# mount|grep ftp  
> [//127.0.0.1/ftp](https://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)

Et lancer mount en étant root pour une simple vérification de la réussite d’un montage me paraît pour le moins risqué.

> [@guedz45](#):
>
> root@dfs-spare:/# time find /tmp/ftp \> /dev/null  
> real 0m43,512s  
> user 0m0,074s  
> sys 0m0,359s  
> root@dfs-spare:/#

Utilisation inutile et contre-productive (cache les erreurs liées aux permissions) du compte `root`  
Détournement de la sortie de la commande vers le néant.  
Remplacer pas un truc du genre  
time find /tmp/ftp | wc  
ou  
ls -lR /tmp/ftp | less  
pour une vérification rapide du bon fonctionnement et time … | wc pour le chronométrage approximatif.

Sachant que vous testez depuis un compte sans domicile fixe, posez vous la question de l’utilité de ce test.

> [@guedz45](#):
>
> ```auto
> obey pam restrictions = yes
> passdb backend = tdbsam
> invalid users = root
> 
> ```

Je ne me rappelle plus comment s’appelle l’outil pour visualiser le contenu des `tdbsam`, essayez de comparer la vraie base et celle de votre machine de test.

> [@guedz45](#):
>
> Ajout de l’utilisateur « userwindows » …

> [@guedz45](#):
>
> root@dfs-spare:~# ls -ld /mnt/ftp  
> drwxr-xr-x 2 user user 4096 sept. 18 15:12 /mnt/ftp/  
> 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)

Je ne sais pas si dans le cas `cifs` cela a une importance, mais admettez que c’est «&nbsp;confusing&nbsp;», et un compte Linux desktop par défaut (appartenant à des groupes Linux qui n’ont pas d’équivalent du côté windows c’est loin d’être génial.

> [@guedz45](#):
>
> ```auto
> 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
> 
> ```

Trois quarts de minutes pour lister des fichiers qui totalisent 45 milliards d’octets ce n’est pas si mal, d’autant plus que vous remarquerez que la source a du être rectifiée (paramétrage autofs) et que vous utilisez un protocole où la sémantique des systèmes de fichiers POSIX ne peut qu’être émulée.

> [@guedz45](#):
>
> SAMBA 4.12.7 compilé à partir des sources

Vous avez bien du courage.  
Je ne connais pas ces versions. Il y a bien un processus nommé `nmbd` pour le résolution de noms ?  
Passer plus de temps sur la conception de l’architecture réseau ne serait pas, à mon avis du temps perdu., loin de là.  
Je persiste à penser que si on a un système de fichiers distribué à la Microsoft avec lequel x utilisateurs interagissent simultanément (création, modification, suppression de fichiers et répertoires) il est indispensable d’avoir une base centrale des utilisateurs et groupes. Active Directory fournit tout cela (et Kerberos, et identification + autorisation + DNS + ..). Ce n’est pas donné ni évident à gérer. Il y en a qui ont essayé, ils ont eu des problèmes.  
Et, à mon humble avis, un SAMBA avec

> [@guedz45](#):
>
> `	security = user`

vaut mieux oublier.

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.

---

<div class="post-metadata">

**Author:** ![guedz45](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/g/839c29/32.png) [@guedz45](https://www.debian-fr.org/u/guedz45)\
**Post date:** [Septembre 22, 2020, 1:43 UTC](https://www.debian-fr.org/t/samba-sous-debian-10-souci-de-performance-suite-mise-a-jour-de-ma-debian-8/82846/22 "2020-09-22T13:43:11Z")

</div>

Bonjour,

> [@littlejohn75](#):
>
> Joli charabia, qui montre à quel point vous n’êtes pas sûr de vous, et surtout à quel point vous savez dans votre for intérieur que vous ne pourrez pas vous empêcher de lancer des commandes à la hussarde qui pourraient mettre en péril la cohérence d’un système de fichiers tel que vu par un utilisateur. Un montage en lecture seule pour une arborescence d’un partage existant me semble suffisant pour tester les droits d’accès et la copie d’un ou deux fichiers.

A partir du moment que je teste, après compilation, d’autres versions de samba etc… je vais pas m’amuser à faire çà en production et que je teste du tuning de paramètres / activation / désactivation du debug dans samba… C’est sur vous avez raison on va faire çà en prod.  
Je vous comprends décidément pas.

> [@littlejohn75](#):
>
> Le nom en jette. Il me semble un peu en contradiction avec les directives suivantes qui fleurent plutôt le XXième siècle

Désolé pour vous on a stoppé notre dernier NT4 fin d’année dernière. Tout le monde ne travaille pas sur des machines que l’on peut arrêter 2 mins.

> [@littlejohn75](#):
>
> D’autre part ne pas lancer des commandes depuis le compte root si ce n’est pas nécessaire.

Entièrement d’accord avec vous

> [@littlejohn75](#):
>
> Pourquoi privez-vous l’utilisateur de sa maison ? Si vous simulez un utilisateur existant, vous ne simulez pas un SDF !

Là je vous suis pas. Il ne sert qu’à faire le lien entre user SAMBA et user unix pour les accès FS.  
Pourquoi je vais lui créer un dossier user ?  
Depuis Debian 8, si ya pas de répertoire «&nbsp;home user&nbsp;» les perfs samba tombent ?

> [@littlejohn75](#):
>
> Deuxième erreur, si vous utilisez le montage automatique, par définition les paramètres du montage sont dans

je rappelle la procédure appliquée :

> [@guedz45](#):
>
> - Je monte via autofs le partage du poste Windows FTP dans /mnt/ftp
> - Je déclare le partage /mnt/ftp dans mon smb.conf (partage ftp)
> - mount.cifs [//127.0.0.1/ftp](https://127.0.0.1/ftp) /tmp/test -o user userwindows

je teste/simule mon montage ftp depuis un client qui, au lieu de se trouver sur une machine x ou y sur le même réseau ou un autre réseau, se trouve en local.

On est bien sur du client/serveur donc on peut bien tester depuis l’IP 127.0.0.1 notre serveur ?

J’ai donc bien :

```plaintext
root@dfs-spare:~# smbstatus

Samba version 4.9.5-Debian
PID Username Group Machine Protocol Version Encryption Signing              
----------------------------------------------------------------------------------------------------------------------------------------
998 userwindows users 127.0.0.1 (ipv4:127.0.0.1:54422) SMB3_02 - partial(AES-128-CMAC)

Service pid Machine Connected at Encryption Signing     
---------------------------------------------------------------------------------------------
IPC$ 998 127.0.0.1 mar. sept. 22 15:29:13 2020 CEST - -           
ftp 998 127.0.0.1 mar. sept. 22 15:29:13 2020 CEST - -           

Locked files:
Pid Uid DenyMode Access R/W Oplock SharePath Name Time
--------------------------------------------------------------------------------------------------
998 1000 DENY_NONE 0x80 RDONLY NONE /mnt/ftp . Tue Sep 22 15:29:12 2020

root@dfs-spare:~# 

```

```plaintext
root@dfs-spare:~# mount.cifs //127.0.0.1/ftp /tmp/ftp -o user=userwindows,uid=1000,gid=1000
Password for userwindows@//127.0.0.1/ftp: *******
root@dfs-spare:~# 

```

```plaintext
root@dfs-spare:~# mount
//192.168.1.124/D/ftp on /mnt/ftp type cifs (rw,relatime,vers=2.1,cache=strict,username=userwindows,uid=1000,forceuid,gid=1000,forcegid,addr=192.168.1.124,file_mode=0755,dir_mode=0755,soft,nounix,serverino,mapposix,rsize=1048576,wsize=1048576,echo_interval=60,actimeo=1)
//127.0.0.1/ftp on /tmp/ftp type cifs (rw,relatime,vers=default,cache=strict,username=userwindows,uid=1000,forceuid,gid=1000,forcegid,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:~# 

```

> [@littlejohn75](#):
>
> Remplacer pas un truc du genre  
> time find /tmp/ftp | wc  
> ou  
> ls -lR /tmp/ftp | less

```plaintext
root@dfs-spare:~# time find /tmp/ftp/|wc
   8291 8768 739840

real	0m48,006s
user	0m0,017s
sys 0m0,416s
root@dfs-spare:~# 

```

```plaintext
root@dfs-spare:~# time find /tmp/ftp/|wc -l
8300

real	0m32,062s
user	0m0,065s
sys 0m0,323s
root@dfs-spare:~# 

```

et si je compare avec ce même test sur le montage Windows :

```plaintext
root@dfs-spare:~# time find /mnt/ftp|wc -l
8300

real	0m3,553s
user	0m0,050s
sys 0m0,227s
root@dfs-spare:~# 

```

Sur ce sujet je déprime je n’arrive vraiment pas à comprendre pourquoi j’ai ce type de résultat depuis ma bascule sur Debian 10…  
Hormis un rollback sur Debian 8 (ce que je ne souhaite pas) je n’ai pas de piste pour le moment

Update :

Pour appuyer mes propos : (compiler sur ma machine de prod c’est sur 🙂 )

```plaintext
root@dfs-spare:~# /usr/local/samba/sbin/smbd -V
Version 4.4.16
root@dfs-spare:~# 

```

```plaintext
root@dfs-spare:~# /usr/local/samba/sbin/smbd -i -s /etc/samba/smb.conf -d2
smbd version 4.4.16 started.
root@dfs-spare:~# 

```

Même test que plus haut depuis le client en local car client/serveur :

```plaintext
root@dfs-spare:~# time find /tmp/ftp/|wc 
   8279 8756 739283

real	0m6,639s
user	0m0,019s
sys 0m0,351s
root@dfs-spare:~# 

```

Comment çà se fait que l’on passe de 32 secondes (voir ci-dessus) à 6 secondes en passant juste de Samba 4.9.5-Debian à Samba 4.4.16 avec exactement la même conf (smb.conf)

Ya bien un souci quelquepart depuis le passage de Debian 8 vers les nouvelles version de debian  
Des nouveaux paramètres qui m’échappent ???

Cordialement,  
Guedz

---

<div class="post-metadata">

**Author:** ![littlejohn75](https://www.debian-fr.org/user_avatar/www.debian-fr.org/littlejohn75/32/3840_2.png) [@littlejohn75](https://www.debian-fr.org/u/littlejohn75)\
**Post date:** [Septembre 22, 2020, 8:28 UTC](https://www.debian-fr.org/t/samba-sous-debian-10-souci-de-performance-suite-mise-a-jour-de-ma-debian-8/82846/23 "2020-09-22T20:28:37Z")

</div>

> [@guedz45](#):
>
> Il ne sert qu’à faire le lien entre user SAMBA et user unix pour les accès FS.

Tout simplement parce-que un système de fichiers ce n’est pas seulement la correspondance entre un nom (de fichier ou de répertoire) et un certain nombre d’octets, c’est aussi un ensemble de méta-données comme le propriétaire, les permissions d’accès, des dates, …  
Il me semble qu’en disant

> [@littlejohn75](#):
>
> 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.

c’était vraiment clair. Bon ça en jette beaucoup moins que de dire «&nbsp;la prod&nbsp;», je fais du _tuning_ en changeant tous les paramètres d’un coup au petit bonheur la chance, je n’hésite pas à recompiler …  
De toute évidence, cette notion élémentaire vous ne voulez pas en entendre parler car cela implique de réfléchir, de concevoir une architecture réseau, de définir les rôles des personnes et des systèmes, … Et ça, c’est du boulot, et c’est autrement plus important que de se lancer dans des compilations de logiciel (alors que des bénévoles le de distribution libre comme Debian le font très bien ).  
Ici, on parle de système de fichiers en réseau. Ce n’est pas pour rien que `NFS` veut dire «&nbsp;Network File System&nbsp;».  
On a donc une architecture client serveur, où une machine exporte un répertoire (sur un disque local) pour pouvoir être utilisé par des utilisateurs connectés sur des machines clientes.  
La moindre des choses, c’est que les différentes machines soient bien identifiées, que n’importe qui ne puisse pas connecter n’importe quoi sur le réseau local, …  
J’ai bien tenté de faire certaines allusions

> [@littlejohn75](#):
>
> Je ne connais pas ces versions. Il y a bien un processus nommé `nmbd` pour le résolution de noms ?

(noms des machines), mais en vain.

> [@guedz45](#):
>
> > [@littlejohn75](#):
> >
> > D’autre part ne pas lancer des commandes depuis le compte root si ce n’est pas nécessaire.
> 
> Entièrement d’accord avec vous

et quelques lignes plus loin

> [@guedz45](#):
>
> ```auto
> root@dfs-spare:~# mount
> //192.168.1.124/D/ftp on /mnt/ftp type cifs (rw,relatime,vers=2.1,cache=strict,username=userwindows,uid=1000,forceuid,gid=1000,forcegid,addr=192.168.1.124,file_mode=0755,dir_mode=0755,soft,nounix,serverino,mapposix,rsize=1048576,wsize=1048576,echo_interval=60,actimeo=1)
> //127.0.0.1/ftp on /tmp/ftp type cifs (rw,relatime,vers=default,cache=strict,username=userwindows,uid=1000,forceuid,gid=1000,forcegid,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:~# 
> 
> ```

> [@guedz45](#):
>
> ```auto
> root@dfs-spare:~# time find /tmp/ftp/|wc
> 8291 8768 739840
> 
> ```

> [@guedz45](#):
>
> ```auto
> root@dfs-spare:~# time find /tmp/ftp/|wc -l
> 8300
> 
> ```

Vous êtes tellement obnubilé par le temps que cela prend, que vous avez oublié de lancer la commande sans être `root` et que vous ne voyez même pas que le nombre de fichiers trouvé n’est pas le même entre les deux exécutions. Il y a 9 entrées de plus dans le deuxième cas.

> [@guedz45](#):
>
> Sur ce sujet je déprime je n’arrive vraiment pas à comprendre pourquoi j’ai ce type de résultat depuis ma bascule sur Debian 10…

Tout simplement parce-que au fil des versions, les logiciels sont améliorés, la sécurité est renforcée, les contrôles sont plus rigoureux et donc cela a un impact sur les performances si on fait n’importe quoi, n’importe comment.

> [@guedz45](#):
>
> ```auto
> root@dfs-spare:~# mount
> //192.168.1.124/D/ftp on /mnt/ftp type cifs (rw,relatime,vers=2.1,cache=strict,username=userwindows,uid=1000,forceuid,gid=1000,forcegid,addr=192.168.1.124,file_mode=0755,dir_mode=0755,soft,nounix,serverino,mapposix,rsize=1048576,wsize=1048576,echo_interval=60,actimeo=1)
> //127.0.0.1/ftp on /tmp/ftp type cifs (rw,relatime,vers=default,cache=strict,username=userwindows,uid=1000,forceuid,gid=1000,forcegid,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:~# 
> 
> ```

La syntaxe du FS source de cifs est assez obscure, merci Microsoft, vous mélangez tout

> [@guedz45](#):
>
> Je monte via autofs le partage du poste Windows FTP dans /mnt/ftp

ok. La machine est cliente, le montage de type `cifs` par le réseau est performant.

> [@guedz45](#):
>
> Je déclare le partage /mnt/ftp dans mon smb.conf (partage ftp)

Sauf que Samba est un serveur de fichiers, c’est-à-dire qu’il exporte (présente à des machines du réseau) un système de fichiers _local_. Il n’est pas sensé réexporter un système de fichiers qui n’est pas local.

> [@guedz45](#):
>
> mount.cifs [//127.0.0.1/ftp](https://127.0.0.1/ftp) /tmp/test -o user userwindows

Vous utilisez le pilote _cifs_ (système de fichiers réseau) une deuxième fois, dans une configuration qui n’est pas prévue. Du grand n’importe quoi.

Par contre si vous faites simple et logique  
Le montage à la demande de `/mnt/ftp` du système de fichiers venat de Windows FTP (inchangé)  
Un montage de type `bind` pour faire apparaître le contenu en deux endroits

```auto
mount --bind /mnt/ftp /tmp/ftp

```

Là, il n’y a pas de problème de performances, on utilise les logiciels en douceur, on ne force pas samba à réexporter un FS non local, importé par ailleurs (à l’insu de son plein gré 😆 )

Pour chaque machine qui fait du «&nbsp;stockage&nbsp;», posez-vous la question de comment elle sait que le fichier contratxxx.docx lui a été envoyé par Untel et que les hôtesses à l’accueil n’y ont pas accès.  
Pour gérer ce genre de problématique, si vous tenez à utiliser SAMBA, il faudra qu’un de ces serveurs joue le rôle de contrôleur de domaine. Les machines de «&nbsp;stockage&nbsp;» utilisent le contrôleur de domaine pour les identifications et autorisations.

Dans une optique moins inspirée Microsoft (mais Sun ) le paquet _nis_ sur chaque machine Linux faisant partie d’un domaine NIS, est une solution très simple à mettre en oeuvre. Il suffit de trouver un nom de domaine, une machine qui servira de serveur `NIS` (consommation de ressources négligeable pour les machines actuelles ).

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

* * *

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

« On ne perd pas son temps en aiguisant ses outils. »  
Proverbe français

« Moi, lorsque je n’ai rien à dire, je veux qu’on le sache. » (R. Devos)

[Page précédente](https://www.debian-fr.org/t/samba-sous-debian-10-souci-de-performance-suite-mise-a-jour-de-ma-debian-8/82846.md?page=1)
