ubuntuusers.de

Samba / NFS und rsync

Status: Ungelöst | Ubuntu-Version: Ubuntu 24.04 (Noble Numbat)
Antworten |

casio1234

Anmeldungsdatum:
16. Dezember 2025

Beiträge: 7

Hallo zusammen,

ich habe ein spezielles Setup in einer Produktivumgebung und kämpfe mit sporadischen Systemhängern des vermittelnden Ubuntu-Rechners. Das Setup: Ein alter Windows 7 PC (Spezialmaschine, darf nicht ins Firmennetz) ist über ein privates Netzwerk (NIC 1) mit einem Ubuntu-Rechner verbunden. Der Ubuntu-Rechner fungiert als sicheres Gateway.

Ubuntu NIC 1 (Privat): Bietet Samba-Share für Win 7 an.

Ubuntu NIC 2 (Firmennetz): Hier ist ein NFS-Share der IT gemountet.

Workflow: Win 7 schreibt Daten auf Samba → Ein Cronjob auf Ubuntu schiebt die Daten per rsync vom lokalen Samba-Pfad auf das IT-NFS-Laufwerk.

Das Problem: Der Ubuntu-Rechner (headless) hängt sich in unregelmäßigen Abständen komplett auf (mal alle paar Monate, mal 3-mal pro Woche). Die Hardware scheint zu laufen, aber das Netzwerk ist komplett tot (kein SSH, kein Samba). Nur ein Hard-Reset hilft. Da die IT-Abteilung "Windows-only" ist, bin ich hier auf mich allein gestellt.

Vermutung:

Wenn das NFS-Laufwerk im Firmennetzwerk kurzzeitig wegbricht oder einen Hänger hat, scheint der rsync-Prozess oder der Kernel-I/O das gesamte System (oder zumindest den Netzwerk-Stack) mit in den Abgrund zu ziehen.

Hier meine Konfigurationen:

  1. /etc/fstab (NFS-Mount):

    X.X.X.X:/mount_nfs /mnt/mount_nfs nfs rw,soft,timeo=50,retrans=2,intr,nfsvers=3,proto=tcp,_netdev,nofail,x-systemd.automount 0 0
  2. Der Cronjob (alle 10 Min):

    */10 * * * * flock -n /tmp/sync_diag.lock timeout 20m /home/user/sync_new_no_delete.sh >> /home/user/sync_log.log 2>&1
  3. Das rsync-Kommando im Skript:

    timeout 15m ionice -c2 -n7 rsync -a --timeout=60 "$basecall_dir/"*data*.type* "$target_dir/" >> "$LOG_FILE" 2>&1

Was ich bisher beobachtet habe:

Die Logs (/var/log/syslog oder journalctl) geben kurz vor dem Freeze wenig her – oft bricht die Protokollierung einfach ab. Wenn z.B. der Rechner sich um 8 Uhr aufhängt, und noch drei Tage läuft, ist der letzte Eintrag von 8 Uhr morgens.

Wenn ich den Cronjob deaktiviere, scheint das System stabil zu laufen (Testphase läuft noch).

Ich vermute, dass rsync trotz timeout in einen "Uninterruptible Sleep" (D-State) geht, wenn das NFS-Ziel nicht reagiert, und eventuell Kernel-Ressourcen blockiert.

Sind meine NFS-Mount-Optionen (soft, intr, timeo=50) für diesen Zweck optimal oder eher riskant? (Ich weiß, dass soft bei Schreibzugriffen zu Datenkorruption führen kann, wollte aber Systemhänger vermeiden).

Gibt es eine bessere Möglichkeit, den NFS-Mount "krisensicher" zu machen, damit ein Ausfall des Firmennetzes nicht den ganzen Ubuntu-Router lahmlegt?

Kann die Kombination aus flock, timeout (im Cron) und timeout (im rsync) zu Race-Conditions führen?

Hat jemand Tipps, wie ich die Logs besser debuggen kann, wenn das System headless einfriert (z.B. Netconsole)?

Ich bin für jeden Hinweis dankbar!

Grüße,

casio

Moderiert von schwarzheit:

Dem Spamfilter entrissen.

Bearbeitet von schwarzheit:

Bitte verwende in Zukunft Listen, um die Lesbarkeit zu verbessern! Und benutze bitte den Vorschaubutton. Danke.

Max-Ulrich_Farber

Avatar von Max-Ulrich_Farber

Anmeldungsdatum:
23. Januar 2007

Beiträge: 8045

Was du beschreibst ist ein typisches Verhalten von NFS in der Einstellung "soft". Bricht die Netzzwerk-Verbindung kurzzeitig ein, versucht NFS die Verbindung abzubrechen und zieht dabei möglicherweise das ganze System, mindestens aber den gerade aktiven Client mit in den Abgrund.

Im Zustand "hard" kennt NFSv4 (nicht die früheren NFS-Versionen) die "Selbstheilung". Die NFS-Verbindung wird so lange "pro forma" aufrecht erhalten, bis das Netzwert wieder im vorherigen Zustand steht. Dann läuft NFS so weiter, wie wenn nichts geschehen wäre. Die einzige Bedingung ist, dass Zugriffe über NFS während der (kurzen) Netzwerk-Unterbrechung vemieden werden. In einem an sich stabilen Netzwerk, bei dem du im Betrieb nichts verändern willst, ist die Einstellung "hard" meist viel stabiler als "soft".

Ein Tipp: Wenn auf allen deinen Linux-Maschinen (Server + Client) eine Samba-Version 4.22 oder neuer läuft (unbedingt Bedingung!) dann kannst du getrost darauf verzichten, die beiden Netzwerk-Dienste Samba und NFS parallel zu betreiben. Das macht die Wartung einfacher. Die SMB3 UNIX Extensions laufen in Samba ab Version 4.22 so sicher und performant, dass das viel gutmütigere Samba in den meisten Fällen das anspruchsvolle, empfindliche NFS ganz ersetzen kann.

Antworten |