"ls"-Befehl sehr langsam unter Verwendung von NFS4+Kerberos

Hinweis: In dem Thema "ls"-Befehl sehr langsam unter Verwendung von NFS4+Kerberos gibt es 3 Antworten. Der letzte Beitrag () befindet sich ganz unten auf dieser Seite.
  • Hallo,
    wir haben Computer-Pools die von ca. 1000 Usern genutzt werden. Auf den Computern ist jeweils ein openSUSE Leap 42.2 installiert. Die Authentifizierung erfolgt gegenüber Samba4-Servern mittels dem Client-Dienst "sssd". Jeder Nutzer hat ein Homeverzeichnis, das über ein NFS-Mount bereitgestellt wird (NFS4+Kerberos). Die Homeverzeichnisse liegen auf einem NetApp-Server.
    So existiert u.a. ein Verzeichnis /user/home1 auf einem Pool-Rechner, in dem dann NFS-Homeverzeichnisse von ca. 50-100 Nutzern liegen. Also jedes Verzeichnis in /user/home1 hat einen anderen Besitzer.
    Der Befehl "ls /user/home1" dauert ca. 1 min ! Während der Ausführung des ls-Befehles geht ein Prozess auf dem Nutzerverwaltungs-Server auf 100%. Dieses Problem haben wir seit der Einführung von NFS4+Kerberos. Mit NFS3 gab es dieses Zeitverhalten nicht.
    In den Homeverzeichnissen selbst, wo also jede Datei dem selben Nutzer gehört, tritt dieses Verhalten nicht auf. Ein ls auf ein Verzeichnis "/user/home2", wo z.B. nur 5 Homeverzeichnisse von Nutzern liegen, geht schneller, als auf ein Verzeichnis "/user/home1" mit 50-100 Homeverzeichnissen.
    Es scheint, als ob der ls-Befehl sich alle Informationen über jedes Homeverzeichnis, also Besitzer, Gruppe usw. aus der Nutzerverwaltung zieht. Ein weiteres ls gleich danach ist in Bruchteilen von Sekunden fertig. Die Daten scheinen gecached worden zu sein. Allerdings schon 3-5 Minuten später das gleiche Zeitverhalten.
    Bemerkbar ist das ganze auch bei Pfadauflösung mittels Backspace - man denkt, der Rechner hat sich aufgehängt, da man nicht damit rechnet, 1 min warten zu müssen.


    Da so viele Komponenten (sssd auf dem Client, die NetApp, Nutzerverwaltung samba4) beteiligt sind, weiss ich eigentlich nicht wirklich, wo ich nach der Ursache suchen sollte.
    Gibt es vielleicht eine Möglichkeit, die von ls abgerufenen Daten länger auf dem Client zu cachen ? Warum dauert ein ls mit NFS4+Kerberos überhaupt so lange ....


    Vielen Dank im voraus


    T.S.

    Für den Inhalt des Beitrages 107019 haftet ausdrücklich der jeweilige Autor: thomschu11

  • Es gab bei NFS 4,x anfangs schon ein paar Macken.
    Aber die sollten längst ausgemerzt sein.


    Was du da beschreibst, hab ich jedenfalls noch nicht gehört.


    Und wie du es beschreibst, ist auch eher verwirrend.
    Mir ist die Topologie nicht so wirklich klar.


    Warum einerseits Kerberos, andererseits SAMBA mit sssd?
    Ist das eine AD und sind alle Maschinen/User dort drin?
    Was ist dieser "Nutzerverwaltungs-Server"? Ist das der PDC, oder Kerberos TGS?
    Oder ist Kerberos von M$s AD?
    Und wenn AD, warum dann sssd?


    Ich denke, du liegst so falsch nicht, mit der Idee des Cachens.
    Da ja viele verschiedene User auf dieser Verzeichnisebene liegen,
    liegt die Vermutung nahe, dass eben um die Zugriffsreche geht.


    Irgendwie klingt dieser Setup ziemlich schräg.
    Beschreibe bitte die Topologie präziser.

  • Der Nutzerverwaltungs-Server ist ein Samba4-Server (bzw. 3 davon im Replizier-Verbund). Samba4 ist praktisch eine Nachbildung von AD mit all seinen Komponenten - Kerberos, LDAP, DNS .. und dort sind alle Nutzer und Maschinen drin. Die Nutzerauthentifizierung auf den Client-Rechnern erfolgt über den Dienst "sssd". Der SSSD ist dabei so konfiguriert, als ob er mit einem AD kommunizieren würde, der aber eben "nur" ein Samba4-Server ist. Meines Wissens nach die empfohlene Methode gegenüber dem veralteten winbind.
    Die Homeverzeichnisse werden von einem NetApp-Storage-Server bereitgestellt. Dieser Server exportiert die Homeverzeichnisse über NFS4 mit Kerberos. Er muss ebenfalls die Nutzer kennen und "hängt" auch an der Samba4-Nutzerverwaltung.

    Für den Inhalt des Beitrages 107043 haftet ausdrücklich der jeweilige Autor: thomschu11

  • Hmm, da fällt mir nix zu ein.
    Außer -ohne Bezug zum Problem- warum dann überhaupt NFS?
    Oder halt Mutmaßungen, jedenfalls keine konkrete Hilfe.


    Also bleibt das Übliche. Loglevel hochsetzen, und logs lesen.


    Focus würde ich darauf auf die Storage Maschine legen.
    Komisch ist, dass es bei offensichtlich verschiedenen Userrechten auftritt.
    Was passiert zwischen Kerberos und Storage, wenn ls wartet?