SMB-Shares: "Sofortige Synchronisierung" / "Instant Sync" empfehlenswert

  • Seit QTS 5.2.x gibt es für die SMB-Freigaben unter "Eigenschaften" die neue Option "Sofortige Synchronisierung mit Datenträgern, wenn vom SMB-Datenträger angefordert" / "Instant sync to disks when requested by SMB Client".

    Es empfiehlt sich zu prüfen, ob dort ein Haken gesetzt ist und ihn ggf. zu setzen, außer man nutzt Win98 oder SMB-1.

    Der Hinweistext dazu ist nur leider völlig irreführend.


    Hintergrund: Das entspricht dem Parameter "strict sync" in der /etc/smb.conf.

    Lt. Samba-Doku (smb.conf-manpage) ist der Default-Wert ab Samba 4.7 "yes" und darf nur für SMB-1-Clients wie Windows 98 und älter auf "no" gesetzt werden.

    Bei meinen unter QTS 4.x oder QTS 5.0.x angelegten Shares stand "strict sync" teilweise noch auf "no".

    Bei der Migation auf QTS 5.2.x wurde dieser 'falsche' Wert übernommen.

    Abhilfe:

    • Für jeden Share explizit den Haken setzen oder
    • Auf Shell-Ebene die /etc/smb.conf kontrollieren und ggf. berichtigen mit
    Code
    setcfg "<share name>" "strict sync" "yes" -f /etc/config/smb.conf;
    /etc/init.d/smb.sh restart

    (Wobei "<share name>" auch "global" sein kann.)


    PS: Freue mich ja, dass diese neue Option evtl. auf ein Support-Ticket meinerseits zurückgeht. :)

  • Alex0516

    Hat den Titel des Themas von „SMB-Shares: "Sofortige Synchronisierung" / "Instant Sync"“ zu „SMB-Shares: "Sofortige Synchronisierung" / "Instant Sync" empfehlenswert“ geändert.
  • Die Option muss es schon länger geben und stand unveränderbar auf "yes". Neu wäre demnach nur die Möglichkeit es abzuschalten.

    Jedenfalls habe ich diesen Parameter in einer Aufzeichnung aus August gefunden, in der ich verglichen habe, welche SMB Parameter einstellbar sind und welche nicht.

    QTS ist bei mir momentan noch 5.1.7, wird im August auch der Fall gewesen sein.

  • Der Hinweistext dazu ist nur leider völlig irreführend.

    Sehr schön und Danke für Dein Engagement!


    Aber was steckt in einfachen Worten erklärt für eine Funktion dahinter?

  • Jedenfalls habe ich diesen Parameter in einer Aufzeichnung aus August gefunden, in der ich verglichen habe, welche SMB Parameter einstellbar sind und welche nicht.

    QTS ist bei mir momentan noch 5.1.7, wird im August auch der Fall gewesen sein.

    Ich weiß nicht, ob ich dich richtig verstehe:
    Den Parameter strict sync gibt es schon viel länger in /etc/smb.conf

    Ich hatte im Juni zu 5.1.6 ein Ticket aufgemacht, weil neue Shares mit strict sync = no angelegt wurden.

    Ein Share, dass mit HBS3 für TimeMachine-Backups angelegt wurde, enthielt stattdessen strict sync = yes.

    Es gab zu der Zeit keine Option in der GUI, den Eintrag von "no" auf "yes" zu ändern.


    Wenn ich unter 5.2.1 ein neues Share anlegen (egal ob Snapshot oder nicht), ist beim Erstellen bei mir der Haken nicht gesetzt. Ich muss ihn explizit setzen. Ansonsten wird das Share mit "strict sync = no" angelegt.


    Wenn du unter 5.1.7 überall strict sync = yes stehen? Bei mir war das unter 5.1.6 definitiv nicht der Fall.

    (Share nur per SMB freigegeben, weder NFS noch AFP noch WebDav; kein QuickSync oder HBS-Sync-Job.)


    Bei mir war der Haken raus, obwohl ich das System (TS-364) erst vor ein paar Tagen neu initialiert habe.

    Beim Erstellen von Shares ist der Haken bei mir auch nicht gesetzt; ich muss ihn explizit setzen.


    Aber was steckt in einfachen Worten erklärt für eine Funktion dahinter?

    Seit Samba 4.7 (Veröffentlichung 2017) soll der Parameter auf "yes" stehen, weil mit "no" das Risiko von Datenverlusten höher ist.

    Der Client sagt "Hey, Server, bitte schreibe diese Daten sofort auf Platte, die sind wichtig!" und bei "no" denkt der Server "Pustekuchen, ich mach hier gar nix." Bei "yes" schickt der Server einen Job los, um die Daten sofort zu speichern.

    2 Mal editiert, zuletzt von Alex0516 () aus folgendem Grund: Ein Beitrag von Alex0516 mit diesem Beitrag zusammengefügt.

  • Den Parameter strict sync gibt es schon viel länger in /etc/smb.conf

    Ja natürlich... war auch irgendwie blöd ausgedrückt von mir...

    Was ich meinte war halt, dass die Option bei mir überall default = yes ist. Die Shares wurden aber schon vor QTS5 erstellt.

    Dass es nun per default = no ist, dafür ja aber einstellbar, ist vertretbar für mich.

  • Der Client sagt "Hey, Server, bitte schreibe diese Daten sofort auf Platte, die sind wichtig!" und bei "no" denkt der Server "Pustekuchen, ich mach hier gar nix." Bei "yes" schickt der Server einen Job los, um die Daten sofort zu speichern.

    Stehe auf dem Schlauch!

    Das Szenario ist doch eine gemountete SMB-Freigabe beim Client oder?

    Schickt nicht der Client den Job los mit dem Befehl „sichern“.

    Was denkt da der Server 🤔

  • Ja, genau, der Client hat eine SMB-Freigabe gemountet.

    Wenn der Client beim Speichern die Option "Bitte Syncen" mitschickt, will er ja sagen, dass die Daten auch weggeschrieben werden sollen (statt im RAM des Sambaprozesses auf dem Server rumzuhängen).


    Wenn man in der GUI bei der Share-Definition den Haken nicht setzt, dann steht "strict sync = no" in der Konfig-Datei des Servers und der Server ignoriert den Wunsch den Clients und schreibt die Daten erst dann weg, wenn es ihm in den Kram passt.


    Wenn der Haken gesetzt ist, dann steht "strict sync = yes" in der Konfig-Datei des Servers und der Server befolgt brav den Wunsch den Clients und schreibt die Daten sofort weg. Das ist seit Samba 4.7 aus 2017 die empfohlene Konfigurations, s.a.

    Samba-Doku unter strict sync.


    Bei QTS geht das erst seit V 5.2; dies ist als neues Feature von 5.2 aufgeführt:

    Release-Notes: Strict Sync

  • Die Frage ist halt:

    Cache (im RAM) nutzen oder nicht?

    Ja = eventuell mehr Speed

    Nein = Möglicher Datenverlust bei Systemausfall / Stromausfall / .... auf Serverseite.


    Ich bin ja kein Experte, aber vielleicht hat das Cachen zu IDE Zeiten bei 1G LAN noch Sinn gemacht... ansonsten steht für mich außer Frage, dass sofort hart geschrieben wird.

  • Habe eine USV und bei HDs brauchst jede IO die du bekommen kannst, also warum nicht den RAM als Buffer einsetzen.

  • ... weil ich im Alltag nichts davon merke.

    Daheim erst recht nicht und im Office auch nicht... ich bin aber auch nicht "speedgeil".

  • Mod: Unnötiges Volltext-/Direktzitat entfernt! :handbuch::arrow: Forenregeln beachten und Die Zitat Funktion des Forums richtig nutzen


    Das alles spielt sich auf dem Server im Samba-Prozess ab, noch bevor der Samba-Prozess überhaupt mit dem Dateisystem oder einem SSD-Cache spricht. Es ist egal, ob da ext4 oder ZFS hinter hängt und ob da noch eine nvme / SSD vor der HDD liegt.

    Die Vorgaben der Samba-Entwickler sind: "strict sync = no" nur dann einstellen, wenn man Win98 oder älter anschließt. Ansonsten steigt das Risiko von Datenverlusten oder anderen Problemen unnötig an, weil der Samba-Prozess Daten in seinem RAM behält, statt sie wie vom Client bestellt sofort an die nachgelagerte 'Systeme' wie Dateisystem oder SSD-Cache weiterzuleiten.


    Beispiel für "andere Probleme": Wenn außer Samba / SMB noch weitere Prozesse auf die Daten zugreifen, wie z.B. WebDAV oder ein Backup. Der Client sagt "Bitte Daten sofort auf Platte schreiben", der Samba-Prozess behält sie noch im RAM und WebDAV oder Backup sehen nur die 'alten' Daten, weil der Samba-Prozess sie noch gar nicht an das Dateisystem weiter geleitet hat.


    Und wohlgemerkt: Es betrifft die Fälle, in denen die Entwickler auf Clientseite ausdrücklich das sofortige Wegeschreiben 'bestellen'.

  • Alex0516

    Zwei Fragen stellen sich mir: Wirkt Deine obige Eingabe auch Neustart-resistent?? Und: Wikkt die Vorgabe "global" auch, obwohl die in den Freigaben anschließend gar nicht einzeln angehakt ist?

  • Mod: Unnötiges Volltext-/Direktzitat entfernt! :handbuch::arrow: Forenregeln beachten und Die Zitat Funktion des Forums richtig nutzen

    duke-f

    Was meinst du? Das setzen des Hakens ist "Neustart-resistent". Das setzen per "setcfg" ist ebenfalls "Neustart-resistent". Das wurde mir so vom qnap-support empfohlen.


    Zu "[global]":

    Das scheint nicht zu wirken: eine neu angelegte Freigabe, bei der standardmäßig ja der Haken nicht gesetzt ist, wird mit "strict sync=no" angelegt, wenn in "[global]" "strict sync = yes" steht. Da ist qts wohl gründlich ;)


    Bei Hero ist das nicht möglich, bzw. es fehlt das Feld:

    Das Feld befindet sich in den Einstellungen für das jeweilige Share, nicht in den Einstellungen für Samba.

    Also: "Control Panel / Shared Folders" und dann bei jedem Share "Edit Properties"

    Bildschirmfoto_2024-11-11_14-59-31.png

    2 Mal editiert, zuletzt von Alex0516 () aus folgendem Grund: Ein Beitrag von Alex0516 mit diesem Beitrag zusammengefügt.

  • Was meinst du?

    Ganz einfach: Ich habe aus meiner Vielzahl an Freigaben 2 -3 ausgewählt und festgestellt, dass einmal der Haken bereits gesetzt war (eine uralte Freigaben namens Archiv) und bei den beiden anderen nichtr. Da ich keine Lust und Zeit hatte, bei den vielen das alles einzeln zu setzen, wollte ich Deinen Vorschlag mit "global" verfolgen. Allerdings sind bei den vorher nicht vorhandenen Haken unter den Freigaben immer noch keine Haken danach vorhanden. Also weiß ich letztendlich erst mal wieder nicht, wo ich dran bin und muss wohl oder über den Haken einzeln setzen, wenn ich die Sicherheit haben will.

  • erstmal vielen Dank an Alex0516!


    Unter QuTS Hero kommt das Feld zunächst mit der Option ganz unten:

    Bildschirmfoto 2024-11-11 um 17.06.29.png

    und nach dem Laden kommt die Überraschung - es ist weg!

    :/

    Bildschirmfoto 2024-11-11 um 17.05.44.png


    ALLES falsch! :ziped:


    man muss nach unten scrollen :huh:


    Die Mini-Mickey-Maus-Fenster finde ich nervig! Die Fenstergrößen sind noch aus der Computersteinzeit :X

    Einmal editiert, zuletzt von NaStrada () aus folgendem Grund: neue Erkenntnis!