[TUTORIAL] ZFS Snapshot Synchronisierung

Discussion in 'Proxmox VE (Deutsch)' started by maxprox, Nov 6, 2018.

  1. maxprox

    maxprox Member
    Proxmox Subscriber

    Joined:
    Aug 23, 2011
    Messages:
    298
    Likes Received:
    11
    Hallo,

    habe mich die letzten Tage mit verschiedensten Replikations- / Synchronisierungswerkzeugen beschäftigt, um Snapshots der VMs zu erstellen:
    - Zrep
    siehe http://www.bolthole.com/solaris/zrep/zrep.documentation.html, das auch in der iX 2017 nach dem dreiteiligen ZFS Tutorial empfohlen wurde.
    - PVE-zsync
    siehe: https://pve.proxmox.com/wiki/PVE-zsync Proxmox eigenes Tool
    - sanoid / syncoid
    siehe: https://github.com/jimsalterjrs/sanoid
    und die ZFS auto-scripte von ZFS-Rocks

    Die funktionieren eigentlich alle zuverlässig, genau so wie sie sollen.
    Jedoch sind mir zwei Dinge Wichtig: ich möchte die Synchronisierung NICHT als root laufen lassen, also muss das Tool auch unter einem andern user-Konto lauffähig sein, gerne mit ssh-Keys (das kleinere Problem). Außerdem möchte ich die ZFS Snapshots zweistufig aufbauen:
    1: Lokal zB Snapshots auf dem lokalen System im 15min Takt mit individueller Aufhebefrist (stündlich, täglich, monatlich, und evtl. Jährlich)
    2: UNABHÄNGIG von der lokalen Snapshoteinstellung möchte ich einmal nachts ein Snapshot über eine langsame Internetleitung (zB. 16.000KBit/s) auf ein zentralen Snapshot-Backup-Server übertragen.
    2b: damit das Funktioniert, wäre es hilfreich, dass ich den ersten "Voll-Snapshot" zB per USB Festplatte übertragen könnte. Das scheint mir bei den getesteten Tools auch nicht möglich zu sein, weil sie zwingen eine Erstinitialisierung durchführen, bei der das Ziel leer sein muss.
    EDIT: genau das geht doch mit obigem Zrep! Und das ist weiter unten zB Post Nr. 9 beschrieben.

    Meine bisherige Erfahrung ist die, dass beim Replizieren bzw. Synchronisieren der Snaphots über das Netzwerk, keine wirkliche unabhängige Einstellung möglich ist:
    entweder gibt es kaum bis gar keine individuelle Einstellung, wie bei PVE-zsync, oder -wie bei Zrep- es werden immer sämtliche lokalen Snapshots mit synchronisiert, auch wenn das Tool nur einmal die Nacht läuft, oder wie bei syncoid die Individuellen Einstellungen gelten immer auf beide Werkzeuge.
    Ich kann zwar per cron bestimmen, wann über das Netzwerk Repliziert wird, ich kann aber diesen Job nicht völlig unabhängig von den lokalen Snapshots einer VM laufen lassen.

    Sehr ungern würde ich Tools wie ZnapZend oder pyznap selbst kompilieren, wo doch mein Motto lautet, auf dem Proxmox System selbst so wenig wie möglich zu "fummeln". Daher habe ich diese beiden bisher nicht ausprobiert.
    Hat da jemand ein Vorschlag für mich?
     
    #1 maxprox, Nov 6, 2018
    Last edited: Mar 27, 2019
  2. dlimbeck

    dlimbeck Proxmox Staff Member
    Staff Member

    Joined:
    Aug 1, 2018
    Messages:
    137
    Likes Received:
    9
    pve-zsync in der aktuellsten Version erlaubt es --source-user und --dest-user anzugeben, und es sollte auch funktionieren sofern alle notwendigen Rechte vorhanden sind (auch um ZFS Datasets anzulegen). Wobei der cron job zumindest als "root" ausgeführt wird, wenn ein automatisches synchronisieren erwünscht ist (pve-zsync create)
     
    Stop hovering to collapse... Click to collapse... Hover to expand... Click to expand...
  3. maxprox

    maxprox Member
    Proxmox Subscriber

    Joined:
    Aug 23, 2011
    Messages:
    298
    Likes Received:
    11
    Hallo dlimbeck
    das war ja ne schnelle Antwort!
    Ja, PVE-zsync wäre mir auch am sympatischsten, weil am nähestens am Proxmox - klar.
    ABER: gibt es es irgendwie ein Trick, vielleicht durch mehrere verschiedene Cronjobs oder dergleichen, um eine nicht lineare Aufhebezeit hin zu bekommen EDIT: (zB: täglich= 8 , monatlich = 12)?
    Grüße,
    maxprox
     
    #3 maxprox, Nov 6, 2018
    Last edited: Nov 6, 2018
  4. dlimbeck

    dlimbeck Proxmox Staff Member
    Staff Member

    Joined:
    Aug 1, 2018
    Messages:
    137
    Likes Received:
    9
    Es müsste gehen mit pve-zsync sync es manuell zu starten statt über einen cron job.
     
    Stop hovering to collapse... Click to collapse... Hover to expand... Click to expand...
  5. maxprox

    maxprox Member
    Proxmox Subscriber

    Joined:
    Aug 23, 2011
    Messages:
    298
    Likes Received:
    11
    So gern ich pve-zsync verwenden würde, denke ich doch, dass es mit dem jetzigen Funktionsumfang für mich nicht wirklich brauchbar ist,
    ich sehe zZ keine Möglichkeit,
    ->1: die erste (Initial- bzw. Voll-) Übertragung über zB eine externe Festplatte zu realisieren, weil ich zZ keine 100 oder 200 GB über die Internetleitung bekomme
    ->2: um lokal und remote unterschiedliche, zB lokal gar keine pve-zsync Snapshots vorhalten zu müssen. Genauer: pve-zsync erstellt immer zuerst einen lokalen Snapshot, der dann repliziert wird. Lokal und remote liegt immer 1:1 der gleiche Snapshot Zustand vor. Da ich aber Lokal zusätzlich und unabhängig von pve-zsync deutlich mehr und öfter Snapshot erstellen möchte, würde ich lokal den (mindestens) DOPPELTEN Snapshot Speicher benötigen. Ich habe dann unnötigerweise die Snapshots doppelt auf dem Proxmox Server. Bei Zrep zB wächst nur der remote Speicher, also der auf der Backupmaschine an, auf dem lokalen Proxmox verbleiben bei Zrep gar keine Snapshots.
    ->3: Ich sehe zZ keine Möglichkeit für die automatische nicht lineare Aufhebezeit (zB: täglich= 8 , monatlich = 12)?

    Grüße,
    maxprox
     
  6. maxprox

    maxprox Member
    Proxmox Subscriber

    Joined:
    Aug 23, 2011
    Messages:
    298
    Likes Received:
    11
    Jetzt bin ich wieder einen Schritt weiter.
    Zur Zeit stellt es sich so dar, dass zZ die Beste Kombi für lokal + remote replizierte Snapshots folgende ist:

    Für lokal: SANOID https://github.com/jimsalterjrs/sanoid
    lässt sich IMHO sehr einfach, übersichtlich und nachvollziehbar per /etc/*.conf Datei individuell und feingliedrig einstellen

    Für die remote Replikation:
    http://www.bolthole.com/solaris/zrep/zrep.documentation.html
    https://github.com/olevole/zrep

    Erst nach weitere Recherchen habe ich raus gefunden, dass sich (fast ) alle gewünschten Punkte mit obiger Kombi umsetzen lassen:

    zrep setzt und liest individuelle zfs dataset parameter aus, die entsprechend manuell geändert werden können:

    Code:
    zfs get all rpool/data/vm-207-disk-1
    ...
    rpool/data/vm-207-disk-1  zrep:src-fs           rpool/data/vm-207-disk-1  local
    rpool/data/vm-207-disk-1  zrep:dest-host        192.168.8.100              local
    rpool/data/vm-207-disk-1  zrep:src-host         fcprox                    local
    rpool/data/vm-207-disk-1  zrep:dest-fs          r5pool/snap_test/win7lex  local
    rpool/data/vm-207-disk-1  zrep:savecount        5                         local
    
    Somit hat man doch, anders als ich zunächst gedacht hatte, erweiterte Einstellungsmöglichkeiten.
    Der erste initiale Sync, der "Voll-Sync" kann auf einen bereits übertragenen Snapshot los gelassen werden, nachdem dieser per zB USB mit Standard zfs snapshot Befehlen übertragen wurde. Siehe Doku unter "Pre-existing filesystem" und meine Anleitung ganz unten.
    Jetzt muss ich nur noch die Probleme mit den Zugriffsrechte für "non-root" Zugriff lösen, siehe hier:
    https://forum.proxmox.com/threads/zfs-snaphost-as-normal-user-permission-denied.48599/
     
    #6 maxprox, Nov 7, 2018
    Last edited: Mar 27, 2019
  7. rholighaus

    rholighaus Member
    Proxmox Subscriber

    Joined:
    Dec 15, 2016
    Messages:
    45
    Likes Received:
    2
    Schon mal über znapzend nachgedacht? Kann nicht nur synchronisieren, sondern auch noch die Snapshot-Historie managen.
    Gruß

    Ralf
     
  8. maxprox

    maxprox Member
    Proxmox Subscriber

    Joined:
    Aug 23, 2011
    Messages:
    298
    Likes Received:
    11
    Hallo Ralf,
    ja, habe ich. Zum einen hatte ich es erst entdeckt, als schon (zu) viel Zeit mit obigem Ausprobieren vergangen war und dann hatte mich gestört, dass es dafür kein Debian Repository gibt. Wahrscheinlich ist das zur Zeit sogar das "mächtigste" Snapshot Tool, kann das sein?
    Ich will's auf jeden Fall noch mal irgendwann testen.
     
    #8 maxprox, Nov 21, 2018
    Last edited: Mar 27, 2019
  9. maxprox

    maxprox Member
    Proxmox Subscriber

    Joined:
    Aug 23, 2011
    Messages:
    298
    Likes Received:
    11
    VMs als Snapshots sichern

    EDIT vom 2019-02-09

    In der ersten Anleitung hat zwar die Sicherung funktioniert, die bis dahin noch nicht getestete Wiederherstellung per
    Code:
    zfs rollback 
    funktionierte so jedoch NICHT.
    Es gab einen gravierenden Syntaxfehler:
    Damit Proxmox den Storage und die Volumes der VMs akzeptiert, MÜSSEN die Volumes zwingend mit der Bezeichnung vm-VMID im Namen beginnen. Das war in der bis Anfang Februar veröffentlichten Anleitung falsch. Allerdings nur für den remote Teil, also den Teil, der per zrep die Snapshots auf den "offline" Proxmox-Backup-Server übertragen hat. Es ist in den jetzt angehängten Dateien korrigiert.
    Immer daran Denken: Ein Backup ist immer nur so gut, wie die Wiederherstellung funktioniert ;-)
    => siehe jetzt auch die folgende Beschreibung der Wiederherstellung ganz unten.

    Es ist eher was für Einsteiger in das Thema "Auto-Snapshots".
    Im Anhang einmal im DokuWiki Rohtext, einmal als PDF.
    Ich habe das alles so durchgetestet, alles läuft seit Wochen produktiv automatisch...
    Falls jemand Fehler findet oder Verbesserungsvorschläge hat.... gerne

    Grüße,
    maxprox
     

    Attached Files:

    #9 maxprox, Nov 21, 2018
    Last edited: Feb 11, 2019
    tecnewb likes this.
  10. tecnewb

    tecnewb New Member

    Joined:
    Jan 18, 2019
    Messages:
    2
    Likes Received:
    0
    Hey, sehr übersichtlich, danke dafür
    Allerdings stelt sich mir die Frage, was sprach bei der Entscheidung gegen Syncoid? Wäre das nicht einfacher gegangen?
     
  11. maxprox

    maxprox Member
    Proxmox Subscriber

    Joined:
    Aug 23, 2011
    Messages:
    298
    Likes Received:
    11
    Hi,
    wir suchten/brauchten eine Lösung, die lokal mindestens stündlich Snapshots erstellt und davon möglichst unabhängig einstellbar, maximal einmal nachts ein Snapshot remote im LAN oder über das Internet überträgt.
    Bei unseren Versuchen übertrug dabei Syncoid sämtliche tagsüber erstellen Snapshots, das gefiel uns nicht.
    Zrep hat sich auch jetzt im produktiven Einsatz für uns, als genau das Tool heraus gestellt, wonach wir gesucht hatten.
    Daher die Kombi: lokal sanoid und für die remote/backup/offlineübertragung zrep
    Inhaltlich wie beschrieben.
     
  12. whiterabbit

    whiterabbit Member
    Proxmox Subscriber

    Joined:
    Dec 19, 2012
    Messages:
    205
    Likes Received:
    4
    Hallo.
    Ich hänge mich an diesen interessanten Thread an, da wir (in viel kleinerem Maßstab) etwas ähnliches planen.
    Kurz zum derzeitigen Stand:
    Server A: Produktiv (mit genug Power)
    Server B: Backup-System (alter Server mit weit weniger Power)
    beide mit Proxmox 5.3 und einem ZFS-Pool ausgestattet.

    Die Idee war: pve-zsync (oder eine der hier genannten Alternativen) zu nutzen, um im Desaster Fall ganz schnell und ohne die relativ lange dauernde Wiederherstellung auf den Backup-Server wechseln zu können. Da wir keinen Cluster-Betrieb haben (und auch nicht benötigen), ist das offenbar die schnellste/einfachste Methode, wenn man etwas downtime in Kauf nehmen kann, oder?

    Hast du bei deinen Backup-Servern das Restore einmal manuell angeworfen, um die configs usw an der richtigen Stelle zu haben? Danach sorgt das regelmäßig laufende pve-zsync dann dafür, dass sich die VM-HDDs immer im gleichen Zustand befinden, korrekt?
    Schöne Grüße.
     
  13. maxprox

    maxprox Member
    Proxmox Subscriber

    Joined:
    Aug 23, 2011
    Messages:
    298
    Likes Received:
    11
    Hallo whiterabbit,
    jow, super Idee und passt 1:1 zu einem Teilbereich unseren Plans.
    Bei unseren bisherigen Versuchen kam für uns pve-zsync nicht in Frage, weil uns -wie oben beschrieben- wichtige Einstellungen u. Funktionen fehlten. Uns geht ebenfalls um Netzwerke, wo ein Cluster oversized wäre, trotzdem sollte die Wiederverfügbarkeit in max. wenigen Stunden definiert möglich sein.
    Das Snapshot- Sicherungskonzept läuft wie gewünscht und im obigen PDF beschrieben.
    Schritt für Schritt die Wiederverfügbarkeit durch den Backup-Server durchzuspielen und zu dokumentieren schaffe ich frühestens nächste Woche.
    Das würden wir mit einem cronjob + rsync versuchen. Weißt du, was außer den configs noch zwingend vom Produktivserver 1:1 übertragen gehört?
    Spätestens wenn wir das durchgespielt haben melde ich mich wieder. Dann folgt PDF Nr.2.

    PS: ist whiterabbit eine Anspielung auf die ersten 15Minuten Matrix Teil 1 ?

    Grüße,
    maxprox
     
    #13 maxprox, Jan 23, 2019
    Last edited: Jan 23, 2019
  14. whiterabbit

    whiterabbit Member
    Proxmox Subscriber

    Joined:
    Dec 19, 2012
    Messages:
    205
    Likes Received:
    4
    Hi.
    Natürlich -- was sonst :)

    Ich habe mir den ersten Teil deiner Anleitung gerade nochmal vorgenommen (PDF liegt hier fertig ausgedruckt). Sieht gut aus. Wenn es bei uns mit Bordmitteln klappt (also via pve-zsync) würde das auch so gehen.

    Kannst du denn ungefähr sagen, wann du Teil II in Angriff nehmen wirst?
    Ich hatte es bisher so verstanden, dass config usw direkt mit gesichert werden. Zumindest legt die Doku das ja nahe:
    Daher hatte ich mich auch gewundert, dass die VM auf Server 2 nicht in der WebGUI auftauchte, als ich zum Testen eine VM per "pve-zsync sync..." aus dem ZFS-Pool von Server A in den ZFS-Pool nach Server B kopiert hatte...?!?
     
    #14 whiterabbit, Jan 23, 2019
    Last edited: Jan 23, 2019
  15. maxprox

    maxprox Member
    Proxmox Subscriber

    Joined:
    Aug 23, 2011
    Messages:
    298
    Likes Received:
    11
    ja, genua, pve-zsync sichert die VMID.conf mit und soll sie beim restore auch wieder zurück spielen, daher wäre auch für mich pve-zsync erste Wahl... Ich guck mir das in 'nem Jahr noch mal an.
    Wenn pve-zsync die VMID.conf nicht wie gewünscht zurückspielt hmmm - keine Ahnung ich nutze das ja nicht.

    nächste Woche... ;-)
     
  16. maxprox

    maxprox Member
    Proxmox Subscriber

    Joined:
    Aug 23, 2011
    Messages:
    298
    Likes Received:
    11
    VMs aus Snapshots Wiederherstellen
    Das war doch mehr Arbeit als gedacht, umso besser, das unbedingt VOR dem Ernstfall durchgetestet zu haben.
    Zum Beispiel habe ich so erst bemerkt, dass ich meine selbstbenannten Volumes auf der Backup-Maschine für Proxmox unbrauchbar gemacht hatte. Proxmox erwartet zwingend einen Volume-Name beginnend mit:
    vm-VMID, das hatte ich Anfangs falsch, weil ich das schlicht nicht wusste. Ist oben unter "EDIT vom 2019-02-09" genauer Beschrieben und in allen angehängten Turorial Dateien korrigiert.
    Wen's interessiert, wie oben, die Wiederherstellung in Form von zfs rollback einmal als DokuWiki Rohtext, einmal als PDF.

    regards
     

    Attached Files:

    #16 maxprox, Feb 9, 2019
    Last edited: Mar 27, 2019
  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.
    Dismiss Notice