Problem mit NFS-Share und Samba-Server

sausi71

Active Member
Mar 14, 2020
21
3
43
46
Folgende Konstellation: In einer VM auf Proxmox (Version 8.3.2) läuft ein Univention Corporate Server (Version: 5.0-9 errata1212), der Benutzern einer Domäne Samba-Freigaben gibt. Die freigegebenen Verzeichnisse befinden sich auf einem Laufwerk, das als NFS-Share vom Proxmox an die VM durchgereicht und hier als Verzeichnis gemountet wird. Das NFS-Share selbst ist ein auf Proxmox erstelltes ZFS-Dateisystem.
Wenn nun ein Benutzer der Domäne größere Dateien auf dieser Freigabe ablegt bzw. ablegen will, steigt das NFS-Share kurzzeitig aus und ich erhalte beim Client eine Fehlermeldung über eine gescheiterte Übertragung. Bei einem zweiten Versuch funktioniert es dann problemlos. Die Platte, aiuf dem sich der NFS-Share befindet, ist zu rund 20 % belegt. Der Proxmox hat 64GB RAM. Der VM selbst wurden 300GB Speicherplatz und 4GB RAM zugewiesen. (vorher waren es mal 8GB, aber auch dort gab es diesen Fehler)

In den Log-Files der VM wie auch von Proxmox kann ich nichts finden. Lediglich mein Monitoring-Tool spuckt folgende Meldung aus:
Source: 192.168.X.X:/zfspool/nfs/XXX, State: Hanging

Die /etc/exports vom Proxmox sieht so aus:
/zfspool/nfs/XXX 192.168.X.X(rw,sync,no_root_squash,no_subtree_check)

Die /etc/fstab des Univention Corporate Servers sieht so aus:
192.168.1.101:/zfspool/nfs/datenhaimon /daten nfs rw,_netdev 0 0

Die smb.conf des Univention Corporate Servers sieht so aus:

Code:
; ---------------------</smb service configuration>----------------------


        ; idmap/winbind

        winbind separator = +
        template shell = /bin/bash
        template homedir = /home/%D-%U

        idmap config * : backend = tdb
        idmap config * : range = 300000-400000

        passwd chat = *New*password* %n\n *Re-enter*new*password* %n\n *password*changed*

        obey pam restrictions = yes

        spoolss: architecture = Windows x64

        ; domain service lookup related settings
        preferred master = yes
        local master = yes
        domain master = yes
        wins support = yes

        ; miscellaneous settings, mostly for file services
        oplocks = yes
        large readwrite = yes
        read raw = yes
        write raw = yes
        max xmit = 65535
        acl:search = yes
        host msdfs = yes
        kernel oplocks = yes
        deadtime = 15
        getwd cache = yes
        wide links = no
        store dos attributes = yes
        logon home = \\xxx\%U
        logon drive = I:
        logon path = \\xxx\%U\windows-profiles\%a
        preserve case = yes
        short preserve case = yes

        guest account = nobody
        map to guest = Bad User
        admin users = administrator join-backup


        usershare max shares = 0

Weiß jemand Rat?
 
Last edited:
Welchen Grund hast du, die Samba Daten per NFS in den Univention Server einzubinden? Wäre es nicht einfacher und sinnvoller deiner Univention VM den entsprechenden Speicher zu geben und dann die Freigabe über Samba allein zu machen. Wie du schreibst, hast du ja auch ZFS als Dateisystem.
 
Danke für Deine Antwort.

Die Platte, auf der sich das ZFS-Dateisystem und der NFS-Share befinden, hat einen Daten-Umfang von etwa 18 TB. Eine solch große VM möchte ich eigentlich nicht haben, man kann sie z.B. schlecht sichern. Außerdem möchte ich nicht die gesamte Platte an diese eine VM durchreichen.
Zur Sicherheit die technische Umsetzung nochmal etwas detaillierter:
Auf dem Proxmox wurde eine ZFS-Dateisystem erstellt: zfspool/nfs/XXX. Dort ist ein NFS-Share, das in der VM als Verzeichnis /Daten gemountet wird. In diesem Verzeichnis befinden sich die Samba-Freigaben, sowohl der User als auch der von Gruppen.
 
Last edited:
Ich meinte die VM auf diesem ZFS Laufwerk installieren und dabei die gewünschte Größe wählen. Den Rest der Platte kannst du für andere VMs oder CTs oder sonstige Freigaben verwenden.
 
  • Like
Reactions: sausi71
Wenn nun ein Benutzer der Domäne größere Dateien auf dieser Freigabe ablegt bzw. ablegen will, steigt das NFS-Share kurzzeitig
ab welcher Dateigröße passiert das?

Source: 192.168.X.X:/zfspool/nfs/XXX, State: Hanging
Das liest sich doch wie ein Flaschenhals...

Dir ist aber schon klar, das deinen dicken Daten erst über den Univention Server (via SMB) und dann auf den Proxmox NFS Share laufen. Ich finde die 4 und vorher 8GB Speicher für die VM extrem wenig - zumal Univention auch nicht gerade schlank ist.

Die Platte, auf der sich das ZFS-Dateisystem und der NFS-Share befinden, hat einen Daten-Umfang von etwa 18 TB.
eine Platte oder mehrere Platten?
 
  • Like
Reactions: sausi71
ab welcher Dateigröße passiert das?

Das kann ich wirklich nicht genau sagen. Die Dateien, bei denen das passierte, waren mehrere hundert MB groß.

eine Platte oder mehrere Platten?

Es ist eine Platte.

Das liest sich doch wie ein Flaschenhals...

Dir ist aber schon klar, dass deinen dicken Daten erst über den Univention Server (via SMB) und dann auf den Proxmox NFS Share laufen. Ich finde die 4 und vorher 8GB Speicher für die VM extrem wenig - zumal Univention auch nicht gerade schlank ist.

Ja, das will ich nicht ausschließen. Allerdings läuft auf dem Univention nicht mehr als nur der Samba-Server sowie ein Mailserver mit ingesamt sehr wenig Usern (5). Und die 8GB RAM hatte ich schon sehr lange zugewiesen. Probleme gibt es erst seit etwa Mitte 2024.
 
Last edited:
Ich meinte die VM auf diesem ZFS Laufwerk installieren und dabei die gewünschte Größe wählen. Den Rest der Platte kannst du für andere VMs oder CTs oder sonstige Freigaben verwenden.
Ah, ok.
Die VMs laufen bei mir aber auf einer schnellen SSD. Die Platte, auf der das NFS-Share liegt, ist eine "richtige" Platte.
 
Wenn ich das so lese, wird mir bei dem Gedanken, das evtl. eine Firma daran hängt unwohl.
Was machst du wenn die 18er TB-HDD die Kretsche macht? Wird das alles gesichert?

Der Server hat 64GB RAM, davon gibst du 4GB(ehemals 8) einer VM mit Univention und der Rest?
Wie hoch ist den die Speicher Auslastung auf der Virtuellen Maschine im Leerlauf und unter last beim kopieren? (kannst mal mit HTOP monitoren)
Was läuft noch so alles an Diensten in der VM ausser SAMBA?
Poste doch mal die kompletten Hardwaredaten des Servers inkl. Netzwerkkarte(n), Installierten VM(s) mit Konfig und die Platten (SSD/HDD).
 
Wenn ich das so lese, wird mir bei dem Gedanken, das evtl. eine Firma daran hängt unwohl.
Was machst du wenn die 18er TB-HDD die Grätsche macht? Wird das alles gesichert?

Der Server hat 64GB RAM, davon gibst du 4GB(ehemals 8) einer VM mit Univention und der Rest?
Wie hoch ist den die Speicher Auslastung auf der Virtuellen Maschine im Leerlauf und unter last beim kopieren? (kannst mal mit HTOP monitoren)
Was läuft noch so alles an Diensten in der VM ausser SAMBA?
Poste doch mal die kompletten Hardwaredaten des Servers inkl. Netzwerkkarte(n), Installierten VM(s) mit Konfig und die Platten (SSD/HDD).

Keine Sorge, die 18 TB-HDD wird täglich gesichert als ZFS-Replikation auf ein anderes Gerät an einem anderen Ort. Auf dem Server laufen ansonsten noch weitere VMs und LXCs (werden ebenfalls täglich gesichert). In Summe sind den VMs und LXCs 35 GB RAM zugewiesen. Kommt der RAM-Speicher über eine Auslastung von 50 GB informiert mich ein Monitoring-Tool. Das passiert selten und jedenfalls nicht im zeitlichen Zusammenhang mit dem "hängenden" NFS-Share. Im Normalfall beträgt die RAM-Auslastung des Proxmox-Servers etwa 63 Prozent (39 GB).

Die VM, auf der Univention läuft, nimmt sich im Leerlauf, also ohne Last, ca. 75 % des 4GB RAMs (laut htop 2,3GB von 3,8GB; beim Kopieren einer 2GB großen Datei auf eine Samba-Freigabe bleibt es bei den 2,3GB Auslastung). Auf dem Server laufen ein Active-Directory Domänencontroller, Samba, ein Mailserver und ein DHCP-Server. Dazu gehören die MariaDB-Datenbank, Clamav und Spamassasin. Aber eben sehr wenige User, nämlich 5 an der Zahl.

Der Proxmox-Server hat einen AMD EPYC 3201 als Prozessor und 4 Platten: 3 SSDs (2x 480GB SSD als Mirror für das System und 1x 4TB SSD für die VMs) und die 18TB-Platte für die NFS-Share. Als Netzwerkkarte nutze ich eine Mellanox SFP+-Karte mit 2 Ports.
 
Last edited: