Versionskontrolle eines Freigabeordners

  • Hallo liebes Forum,

    seit ca. 4 Jahren habe ich ein Qnap NAS. Aber egal was ich mache, die Versionskontrolle funktioniert nicht. Ich habe alle Tutorials gelesen, alle generellen Schalter aktiviert, überall die Versionskontrolle eingeschaltet - aber ich komme keinen Schritt weiter. Daher wollte ich Euch mal fragen, auch weil ich über die SuFu kein Lösung finden konnte.


    Eigentlich ist es mein Wunsch super simpel:


    User1 hat einen Freigabeordner auf dem NAS User1Dokumente. Jedes Mal, wenn dort eine Datei geändert oder gelöscht wird, soll eine alte Version der Datei gespeichert werden und diese bei Bedarf wiederhergestellt werden können.


    Das war's.


    Typische Situation:

    Kind 1: Ich habe meine Schulpräsentation in der letzten Stunde 3 x gespeichert und 8 x überschrieben. Ich brauche Version 2 wieder, weil ich dort wohl versehentlich eine Folie gelöscht habe - ist mir aber eben erst aufgefallen!


    Der Ordner User1Dokumente ist nicht im Qsync Ordner gespeichert (falls das von Bedeutung sein sollte). Der Freigabeordner User1Dokumente wird auf dem Computern von User1 auch offline von Windows 10 bereitgehalten (Offline verfügbar machen unter Windows 10).


    Was habe ich schon alles probiert:

    Snapshots, stündliche Sicherungen mit Hybrid Backup Sync, das hat aber alles Nachteile und hilft nicht, wenn viele Versionen sehr kurzfristig erstellt werden.


    Ich habe auch versucht das Laufwerk User1Dokumente mit dem Qsync Order live zu synchronisieren das hat bisher nicht funktioniert. Ich vermutete, dass eine Versionierung nur im Qsync Ornder möglich ist (sicher bin ich mir aber nicht) - warum sollte das auch nicht überall gehen?



    Dazu habe ich drei Fragen:

    1. Funktioniert die Versionskontrolle nur im Qsync Ordner, oder kann ich diese in jedem beliebigen Order auf dem NAS aktivieren?

    2. Windows 10 bietet eine super Versionskontrolle an - die würde mir reichen. Aber die bekomme ich nicht für die Netzlaufwerke auf dem Qnap zum Laufen und auch die kopierten Offlinedateien des Netzlaufwerks haben keinen "Versionierung". Kann ich auf diesem Weg was machen?

    3. Wenn die Versionierung nur im Qsync Ornder funktionieren sollte, möchte ich ein Spiegelbild von User1Dokumente dort anlegen und die Versionen über den Qsync Ordner wiederherstellen. Wie geht das und habe ich dann die gewünschten Versionen?


    Beste Grüße,



    Der_Dscho

  • Wie hast du in den erweiterten Freigabeoptionen den Hacken bei den vorherigen Windows Versionen gesetzt, ist der aktiv?


    So wie ich das verstanden haben, werden damit die Schattenkopien unterstützt.

    Vielleicht ist das ja genau das, was du suchst.

  • Hallo Crazyhorse,

    ersteinmal vielen Dank, dass Du mir helfen möchtest. Leider verstehe ich nicht was Du meinst. Schicke Dir mal Screenshots vom NAS.


    Unter Windows kann ich keine Schattenkopien auf einem NAS Laufwerk anschalten.


    Kann mir sonst jemand helfen?

    2 Mal editiert, zuletzt von Der_Dscho () aus folgendem Grund: Bisher keine Antwort

  • Hallo Crazyhorse,

    ja, vielen Dank. Ich mach das jetzt mit stündlichen/täglichen/wöchentlichen/monatlichen Backups im Rhytmus 12/7/5/12. Dann kann ich wenigstens stundenweise zurücksichern - mir wären Versionen aber lieber gewesen. Das geht bei Qsync und Windows, nur bei normalen Netzlaufwerken nicht.

  • Hallo,

    nachdem ich eben mit dem QNAP Support telefoniert habe, hier nun die Bestätigung:

    Für meinen Fall oben gibt es weder die Möglichkeit Dateiversionen zu speichern noch Schattenkopien anzulegen.

    Man kann jedoch stündliche Backups machen und das Programm so einstellen, dass nur geänderte Dateien gesichert werden.

  • Mit Entware ist es möglich, incron zu installieren.

    Incron ermöglicht es, auf Änderungen in einem Verzeichnis oder an einer Datei zu reagieren.

  • Hmm, also ich habe den Windows 10 Dateiversionsverlauf zumindest auf einem Rechner ganz normal an der Freigabe aktiviert...habe bisher aber nicht wirklich überprüft, wie gut das funktioniert. Allerdings finde ich die ganzen Versionen in der Freigabe auf dem QNAP, so dass das eigentlich klappen müsste. Ist ja ziemlich primitiv, das ganze.


    Da Du ja schon einen Offline Ordner benutzt, wäre wahrscheinlich eine zusätzliche Synchronisierung mit QSync eher kontraproduktiv, weil sich da womöglich dann mehrere Synchronisationsmechanismen kabbeln. QSync sollte man daher ( wie bspw. ähnliche Dinge wie Dropbox, OneDrive, Nextcloud etc.) am besten auf einen separaten Ordner beschränken. Die haben ja alle ihre Mechanismen, um Änderungen zu verfolgen.


    Ich habe keine Ahnung, ob der Dateiversionsverlauf auch bei jeder Änderung eine Kopie anlegt. Das kann ja im Extremfall das Laufwerk schnellstens zumüllen. Ich schätze, da wird es auch eine maximale Tiefe/Speicherplatz geben, ab der dann die ältesten Versionen gelöscht werden.


    Es ist zwar banal, aber es schadet vielleicht nicht, dem Nachwuchs einfach öfteres speichern mit unterschiedlichen Dateinamen nahezulegen. Die andere Variante wäre eine "echte" Versionskontrolle wie Subversion oder Git. Das ist natürlich schon ein bisschen Hardcore...


    Erstere kann man sogar per WebDav so einrichten, dass sie bei jedem Schreibzugriff eine Version anlegen würde. Allerdings ist das dann wirklich nur was für bestimmte Anwendungsfälle, denn wenn das Programm, mit dem man arbeitet, ohnehin permanent speichert, dann bekommt man einen Haufen Versionen, die man nicht mehr überblickt. Ansonsten kann man m.E. auch LibreOffice, Office etc. so einstellen, dass sie von sich aus im Dokument oder auf der Platte von sich aus Versionen anlegen.


    Edit:

    Ich habe mich nochmal mit dem Dateiversionsverlauf auseinandergesetzt. Leider ist dieser, obwohl das ganze sehr simpel und geradeaus eingerichtet ist, leider ziemlich unzuverlässig. Auf jeden Fall funktioniert er von der Bedienung nicht wesentlich anders wie die zeitgesteuerten Snapshots. Man kann ein Zeitraster vorgeben ( jede Stunde, 3 Stunden, etc.), zu denen gesichert wird. Sicherung bei Dateiänderungen geht auf jeden Fall nicht. Will man so ein Schema, dann ist die einfachste Variante wohl derzeit tatsächlich irgendein Cloud/Backupdienst, der gezielt einen Ordner überwacht und dann irgendwelche Aktionen durchführt. Wenn man nichts kommerzielles möchte, dann tut es wohl auch Nextcloud. Es gibt wahrscheinlich auch Backuptools, die wirklich bloss auf eine Freigabe kopieren, da kenne ich aber momentan keines.

    Einmal editiert, zuletzt von nasferatu ()

  • Hallo Ihr Lieben,

    vielen Dank nochmal für die auführlichen Tipps, insbesondere von nasferatu.

    Wenn man die Backups lokal macht und mit Hybrid Backup Sync eine intelligente Versionsverwaltung (12/7/5/12) einstellt, so habe ich Zugriff auf maximal


    die letzten 12 stündlichen Sicherungen

    die letzten 7 täglichen Sicherungen

    die letzten 5 wöchentlichen Sicherungen und

    die lezten 12 monatlichen Sicherungen.


    Der Speicherplatz ist mit 36 Sicherungen für die Dokumente kalkulierbar, soweit ich den QNAP Support verstanden habe, sind alles inkrementelle Backups - zumindest, wenn man "Dateiinhalte prüfen" gewählt hat. Wenn der Speicherplatz weiterhin gering bleibt, werde ich die stündlichen Sicherungen vielleicht noch erweitern.


    Auch die Dateiversionen von Windows funktionieren nicht ganz unproblematisch. Wenn man z.B. innerhalb von 5 Minuten 12 Mal speichert, sind keine 12 Versionen vorhanden - das wäre aber meine Idee gewesen.


    Wenn ein Fehler innerhalb von 12 Stunden rückgängig gemacht werden soll, so ist nun die Arbeit von maximal 60 Minuten verloren. Das halte ich für gut vertretbar. Die Backups - obwohl nun stündlich erforderlich - belasten die NAS auch kaum.


    Der Versionsverlauf ist für QSYNC oder entferne Replikationen gedacht - das wird aber so nicht ganz aus der Dokumentation bei QNAP ersichtlich. Hier wäre es für mich als Anfänger hilfreicher gewesen, wenn man gesagt hätte: "Ist nur in besonderen Fällen, wie z.B. bei QSYNC möglich" Die ganzen Schalter für die Versionskontrollen und die Sicherung der Versionskontrollen sind für mich verwirrend - weil Sie für meinen Zweck keine Funktion haben. In meinem Fall enstand für mich der Eindruck, dass Dateiversionen recht einfach über QNAP einzurichten sind und auch ähnlich wie bei Windows funktionieren.

    Einmal editiert, zuletzt von Der_Dscho ()

  • Hallo Der_Dscho ,


    also ganz so kritisch ist das mit dem Speicher bei der intelligenten Versionierung nicht, weil wirklich nur bei geänderten Dateien eine neue Kopie gespeichert wird. Alles andere wird über sog. "Links" im Dateisystem realisiert, sprich einen Verweis auf die jeweils letzte aktuelle Datei. Kritisch würde das nur, wenn man bspw. sehr große Dateien wie Videos etc. regelmäßig ändert wie bei der Videobearbeitung. Da kann man dadurch natürlich sehr schnell Gigabytes an Sicherungsdaten erzeugen. Bei normalen Dokumenten ist das unkritisch. Die QNAP Snapshots sind ähnlich effizient, funktionieren aber anders. Das angenehme aus meiner Sicht ist nur, dass man unter Windows in den Eigenschaften dann ohne weiteren Aufwand Zugriff auf die letzten Versionsstände bekommt.


    QSync / Nextcloud / Dropbox etc. sind in der Tat für die Replikation auf einen entfernten Server optimiert. Was ja aber bei QSync eigentlich nur Dein lokales NAS ist. Wenn man vorrangig Dokumente bearbeitet würde ich da auch kein Problem drin sehen. Der Vorteil ist wie gesagt, dass der Sync Ordner permanent überwacht wird und deswegen tatsächlich bei jeder Änderung ein Upload erfolgt und man, je nach Einstellung, dann wirklich eine lückenlose Historie in einem gewissen Zeitraum erhält. QSync hat allerdings einen eher mittelmäßigen Ruf was die Zuverlässigkeit betrifft. Ich kann allerdings nichts dazu sagen, weil ich es nicht im Einsatz habe. Aber von der Theorie würde ich sagen, dass es für Deine Zielsetzung eigentlich am geeignesten wäre.


    Der Dateiversionsverlauf erzeugt natürlich auch nur bei geänderten Dateien eine neue Version, ich weiß nicht, ob Du das so getestet hast. Sonst würde es ja eine unglaubliche Platzverschwendung geben. Ich würde auch von so einem kurzen Sicherungsabstand abraten ( egal womit), denn das erzeugt eine ziemlich hohe Systemlast. Dann brauchts Du wirklich eine Lösung, die einen Ordner permanent überwacht und ausschließlich die Änderungen sichert. Das können Synchronisationstools.


    Man kann es sogar mit Windows selbst erreichen, nämlich mit dem Kommandozeilentool "robocopy":


    robocopy /MIR "c:\temp\rbcopy_a" c:\Temp\rbcopy_b /MON:1


    Allerdings erzeugt das keine Versionen von sich aus. Es lohnt sich allerdings, mal die Optionsliste mit robocopy /? aufzurufen, denn man kann damit wirklich so einiges anstellen. Zusammen mit dem Taskplaner hat man da ein sehr mächtiges Tool zum sichern.

    Einmal editiert, zuletzt von nasferatu ()

  • Nachdem ich nun weitere unzählige E-Mails mit dem Qnap Support ausgetauscht habe und dort nur sehr langsam und zäh weitergekommen bin, hier eine Zusammenfassung meines Ergebnisses und meiner gewählten Lösung:


    Ausgangslage:

    User1 hat einen Freigabeordner auf dem NAS User1Dokumente. Jedes Mal, wenn dort eine Datei geändert oder gelöscht wird, soll eine alte Version der Datei gespeichert werden und diese bei Bedarf [auch vom Admin!] wiederhergestellt werden können.


    Das war's.


    Der Support hat mich auf einige falsche Fährten geführt. Letztendlich habe ich mir aber eine gute und platzsparende Strategie ausgedacht und mit Hilfe des Supports selbst recherchiert, weswegen ich mich nun viel besser mit den Programmen auskenne als zuvor.


    1. Erkenntnis: Dateiversionen gehen in meinem Fall NUR im Qsync Ordner im Home Verzeichnis. Werden normale Freigabeordner mit Qsync abgeglichen, so funktioniert das über Ordnerpaare zwar problemlos. Diese Vorgehensweise ist für Dateiversionen ungeeignet. Denn dabei werden keinen Versionen gespeichert! Das kann man aus der Dokumentation zwar erahnen, aber so deutlich wird das nicht gesagt und diese Vorgehensweise wurde mir vom Support selbst für Dateiversionen empfohlen - was nicht funktioniert hat (selbst wenn man alle Schalter entsprechend setzt).


    2. Erkenntnis: Wenn man Dateiversionen mit Qnap Programmen haben möchte, kommt man als Laie an dem Qsync Programm nicht vorbei. Zusätzliche Software muss auf alle Clients drauf - leider. Für mich nicht so schön: Qsync hat immer die Originale auf dem Rechner und die synchronisierten Daten auf dem NAS. Es ist nicht vorgesehen, wie z.B. Offlinedateien bei Windows, dass die Originale auf dem NAS liegen und nur in Ausnahmefällen auf den lokalen Rechner zugegriffen wird. Ich mag das nicht so gerne (Geschmackssache), weil ich es lieber habe, wenn User nur in Ausnahmefällen Daten lokal speichern.


    3. Erkenntnis: Qsync ist für Administratoren problematisch. Auch das hat mir der Support nicht so deutlich gesagt. Es bedarf immer eines Users (oder eines Admins, mit User Passwörtern) um die Versionen wiederherzustellen. Der Admin bekommt einfach mit seinem [fremden] Konto keinen Zugriff auf die Versionen im Homeverzeichnis. Sind die Benutzer noch unerfahren (Kinder) müssen diese in die Funktion dieses Qsync Programms eingewiesen werden. Ich will als Admin aber immer Zugriff auf alle Daten haben, ohne mich erst mit dem Passwort eines Users anmelden zu müssen (finde das als Sicherheitsrisiko, denn die Passwörter der User kann ich mir nicht merken und muss diese ja auch irgendwo speichern).


    4. Erkenntnis: Mit den Dateiversionen ist es alleine nicht getan. Sie sind keine Sicherung. Die Homeverzeichnisse (dort befinden sich die Qsync Ordner) müssen also separat gesichert werden. Homes mag ich als Admin nicht, weil ich die dort gespeicherten Daten nicht auf den ersten Blick sehe, wie es in einem gemeinsamen Freigabeordner wäre. Das Teilen von Dateiversionen (Teamordner ist dann wieder zusätzlicher Aufwand, kann aber über Qsync mit Links realisiert werden) ist aber möglich. Ich finde der Admin hat in einem Homeverzeichnis auch nichts zu suchen, wenn der User dort nicht irgendwelche Probleme meldet. Aber genau auf diese Homeverzeichnisse muss ich wegen Dateiwiederherstellung und Sicherungen zugreifen.


    5. Erkenntnis: Es hat lange gedauert bis ich den Schalter bei Hybrid Backup "Dateiinhalte prüfen" vom Support so erklärt bekommen habe, dass ich diesen ein wenig verstanden habe. Für mich war das kein Unterschied zur normalen inkrementellen Sicherung (die immer standardmäßig so läuft und auch nicht - soweit mir bekannt - geändert werden kann). Beides (Schalter an/aus) sichert eine Datei ja immer dann, wenn diese geändert wurde. Allerdings könnte man eine Datei wohl "irgendwie" so manipulieren, dass der Inhalt geändert ist, aber das Sicherungsbit das nicht für die inkrementelle Sicherung als Veränderung erkennt. Daher gibt es wohl diesen Schalter, der aber auch Systemleistung beim Backup in Anspruch nimmt! Geht man davon aus, dass die User untereinander nicht böswillig sind, so braucht man diesen Schalter nicht und spart Leistung beim Backup.


    Meine Lösung ist nun:

    Alle Daten vom Server auf die Clients. Alle Clients bekommen Qsync. Synchronisierung ins Homeverzeichnis mit Dateiversionen. Sicherung des Homeverzeichnis 1 x täglich mit dem inkrementell arbeitenden Hybrid Backup Sync (hier Sicherung der Dateiversionierung ebenfalls einstellen). Auf "Dateiinhalte prüfen" kann ich verzichten um die Leistung des NAS zu optimieren. Einweisung aller User in die Benutzung von Qsnyc. Notierung aller User Passwörter um die Versionen auch als Admin wiederherstellen zu können. Da große Dateien (Videos), welche sich für Dateiversionen nicht eignen, sichere ich diese über Snapshots. Das geht ja nun deutlich einfacher, weil man Snapshot Freigabeordner erstellen kann.


    So wird aus dem Ganzen ein stabil laufendes (wenig Performance und Speicherplatz benötigendes) System. Das ist auch notwendig, weil meine Clients auch noch Systemsicherungen mit AOMEI Backup auf das NAS 2 x pro Woche spielen um auch defekte Systempartitionen wiederherstellen zu können. Mit den täglichen Virenscans, Sicherung der NAS Inhalte auf externen HDs, Malware- und monatlichen Raid-Überprüfungen kommt ja schon so einiges an täglicher Arbeit auf ein kleines TS-451 NAS zu.


    Es wäre so einfach gewesen, wenn Qnap Dateiversionen wie Windows in einem Freigabeordner ermöglichen würde. Dann hätte ich mir die ganze Arbeit sparen können. Vermutlich geht das aus technischen Gründen nicht. Da ist Windows meiner Meinung aber schon etwas weiter.

    5 Mal editiert, zuletzt von Der_Dscho ()

  • Es wäre so einfach gewesen, wenn Qnap Dateiversionen wie Windows in einem Freigabeordner ermöglichen würde. Dann hätte ich mir die ganze Arbeit sparen können. Vermutlich geht das aus technischen Gründen nicht. Da ist Windows meiner Meinung aber schon etwas weiter.

    Hmm, ich versteh Dich nicht. Wenn Du einen Snapshot-Freigabeordner erzeugst, dann hast Du doch genau das. Wenn ich auf meine Snapshotf Freigaben im Windows Explorer auf "Eigenschaften" gehe, dann bekomme ich den Reiter "Vorgängerversionen". Nur war ja Dein Problem u.a., dass Du ein sehr enges Zeitraster haben wolltest bzw. am für jede einzelne Dateiänderung eine Version. Dies ist nicht möglich. Aber täglich und im Extremfall auch stündlich wäre schon möglich. Für langfristige Sicherung dient dann ohnehin das Backup.

  • Ich würde hier ja eher über ne Collaboration Plattform nachdenken, statt das so zu basteln....


    Sharepoint kann das, was du vorhast. Storage Server 2019 und NetApp NAS auch.... Da bist du nur weit weg von SOHO...


    Kann owncloud das nicht auch?

  • Was der TS möchte, ist ein "Backup" der Datei, die geändert wurde und genau dann.

    Zeitgesteuert ist das nicht ideal.

    Der Impuls zur Sicherung sollte vom Ereignis kommen.

    Ab Samba 4.10.x werden Schattenkopien unterstützt.

    So wie ich es gelesen habe, aber nur mit BTRFS oder ZFS.


    Man kann sich aber behelfen mit den Linux Programmen "incron" oder "inotifywait". Diese kann man per Entware-ng sogar aufs NAS bringen.

    Incron funktioniert nicht rekursiv, leider.

    Inotifywait funktioniert rekursiv, ist aber nicht so einfach wie Incron.

    Auf einem Debian-Server hatte ich das mal mit inotifywait angegangen. Es war zwar kein großes Geskripte, aber die wenigen Zeilen hatten es in sich.


    Egal, kurze Beschreibung:

    Man hat eine Datei test.txt im Ordner /test.

    Jetzt ändert man die Datei test.txt und speichert sie.

    Nun wird eine versteckte Kopie dieser Datei mit dem Namen ".test.txt.Datum_Uhrzeit.bcp" angelegt.

    Es wir dann überprüft, ob die vorher angegebene Anzahl an Versionen erreicht ist. Wenn dem so ist, wird die letzte Version gelöscht.

    2 Mal editiert, zuletzt von frosch2 ()

  • Wenn Du einen Snapshot-Freigabeordner erzeugst, dann hast Du doch genau das.

    Ich habe eben auf dem NAS einen Snapshot-Freigabeordner angelegt und einem User Berechtigungen r/w vergeben.

    Der User hat

    - den Ordner als Netzlaufwerk verbunden

    - eine Datei über den Windows Explorer dort erstellt

    - die Datei einmal geändert und gespeichert

    - die Datei nochmal geändert und gespeichert


    Ich bin dann im Windows Explorer auf "Eigenschaften" und dann "Vorgängerversionen" gegangen. Dort wird keine der 3 Versionen angezeigt. Was mache ich falsch?

  • Ich bin dann im Windows Explorer auf "Eigenschaften" und dann "Vorgängerversionen" gegangen. Dort wird keine der 3 Versionen angezeigt. Was mache ich falsch?

    Ok, wie schon ein Vorposter ausgeführt hat: dies geht mit den Snapshots nicht, weil sie nur zeitgesteuert erfolgen. Das Zeitraster kannst Du selbst vorgeben. Einige mehr oder weniger aufwendige Methoden, die eben das ermöglichen was Du willst haben die Vorposter auch schon genannt.


    Ich fürchte, ohne gebastel wirst Du das nicht hinbekommen. Das einzige, was mir dazu einfällt wäre eben QSync, was Du ja schon probiert hast oder NextCloud/Owncloud. Letzteres hat aber auch einen Client, der den Arbeitsordner lokal synchronisiert. An die Dateiversionen kommt man nur per Webinterface meine ich, allerdings kann das jeder selbst, in dem er sich mit seiner Kennung einloggt. Wenn es vor allem lokal zum Einsatz kommt, kann man sicherlich auch eins der Pakete aus dem AppCenter nehmen. Ins Internet sollte man sowas natürlich nie hängen.

  • Was der TS möchte, ist ein "Backup" der Datei, die geändert wurde und genau dann.

    Zeitgesteuert ist das nicht ideal.

    korrekt!



    Man hat eine Datei test.txt im Ordner /test.

    Jetzt ändert man die Datei test.txt und speichert sie.

    Nun wird eine versteckte Kopie dieser Datei mit dem Namen ".test.txt.Datum_Uhrzeit.bcp" angelegt.

    Es wir dann überprüft, ob die vorher angegebene Anzahl an Versionen erreicht ist. Wenn dem so ist, wird die letzte Version gelöscht.

    Ja das klingt ideal. Habe ich jetzt auf etwas umständlicherem Wege wohl ähnlich. Ich habe 16 Versionen (Qsync) und über Hybrid Backup Sync die täglichen / wöchentlichen / monatlichen Backups. HBS läuft inkrementell und verbraucht nur wenig Platz und Zeit. NAS läuft seit Tagen nun sehr ruhig und ich denke, ich habe was ich benötige.