ZFS Snapshot Synchronisierung

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

  1. maxprox

    maxprox Member
    Proxmox VE Subscriber

    Joined:
    Aug 23, 2011
    Messages:
    276
    Likes Received:
    10
    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 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.

    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: Nov 6, 2018
  2. dlimbeck

    dlimbeck Proxmox Staff Member
    Staff Member

    Joined:
    Aug 1, 2018
    Messages:
    48
    Likes Received:
    1
    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 VE Subscriber

    Joined:
    Aug 23, 2011
    Messages:
    276
    Likes Received:
    10
    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:
    48
    Likes Received:
    1
    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 VE Subscriber

    Joined:
    Aug 23, 2011
    Messages:
    276
    Likes Received:
    10
    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 VE Subscriber

    Joined:
    Aug 23, 2011
    Messages:
    276
    Likes Received:
    10
    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 sehr 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 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, Einstellungsmöglichkeiten, nicht alle gewünschten (für nichtlinear sehe ich keine Möglichkeit) aber immerhin ...
    Für die Übertragung des ersten initialen Sync, dem "Voll-Sync" kann auf ein bereits übertragenen Snapshot los gelassen werden, nachdem dieser per zB USB mit Standard zfs snapshot Befehlen übertragen wurde. Siehe Doku unter "Pre-existing filesystem"
    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/
     
  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