Sicherung

Rene Schmidt

New Member
Nov 26, 2016
7
0
1
26
Hallo zusammen,

leider sind bei mir zwei historisch Bedingt Parallelwelten entstanden, die ich jetzt gerne unter einen Hut bekommen möchte.

Aktuell gibt es folgenden Aufbau:
Vorab: Das was wirklich "Lebensnotwendig" ist, ist extern gehostet. Ansonsten wirkt das folgende vielleicht etwas Lebensmüde...

Ich habe zwei Standorte (mehrer Kilometer von einander entfernt und über eine mittelmäßige VPN Verbindung verbunden).
In beiden Standorten gibt es je eine Viertualisierer . Beide Standard installiert mit der Proxmox DVD (Version 4.4.5).
Im Moment wissen die beiden nicht, das es den anderen gibt, sprich kein Cluster und auch keine andere Verbindung zwischen den beiden, aber genau die soll jetzt her.

Ich habe soll bald ein System rein bekommen, das nicht extern gehostet werden soll, aber dennoch relativ wichtig ist.
Im Moment ist es so sollte einer der beiden Ausfallen, kann der Router vor Ort die Netzwerk Dienste übernehmen und der Rest ist nicht wichtig.
Die neue Maschine soll primär in Standort A laufen, aber in Standort B auch verfügbar sein. Im Fall das Standort A ausfällt, soll es möglich sein die Maschine in B zu starten. (eine Route müsste dann noch etwas geändert werden, aber das ist ja keine Problem).

Da die beiden Server zum Installationszeitpunkt nicht für eine Vermaschung vorgesehen waren, habe ich natürlich nicht an so etwas wie zfs gedacht.
Daher wie Frage:
Was kann ich tun, um die VM von A auf B zu syncen, so das Sie auf B im Fehlerfall gestartet werden kann.

Im Proxmox Wiki habe ich zwei Wege gefunden:
- Storage Replication
Wenn ich das richtig verstanden habe, ist hier zum einen ZFS Voraussetzung und zum anderen ein Cluster. Wenn ich die Cluster Funktionalität richtig verstanden habe, scheidet das bei mir auf Grund der VPN Strecke aus.
- PVE ZSYNC
Wenn ich das lese, ist es genau das was ich will. Regelmäßige inkrementelle Sicherung der VM auf den anderen Server. Aber auch hier wieder ZFS Voraussetzung.

Ich selbst hatte noch nie etwas mit ZFS zu tun und habe daher überhaupt keine Erfahrungen.

Was kann man tun, damit die Replikation zwischen den beiden Servern funktioniert?
Was wären so die ersten Schritte. Wie komme ich dazu, das ZFS richtig konfiguriert ist?

Vielen Dank für Eure Hilfe.
 
Jan 6, 2013
203
10
43
Hallo,
da bin ich gerade dabei das zu Testen.

Ich habe zwei Server Proxmox 5 im Netzwerk.

Auf Server A laufen alle Server "VMS". Jede VM wird über Nacht mit zfs send an den Server B gesendet. "Inkrementell".
Fällte Server A aus, wird auf Server B die VM gestartet.

Ich habe das mit einem Seafile, Typo3 und Owncloud Server gestestet und Bacula.
Also, dass ist einfach nur genial.

Wenn du nähere Infomationen haben willst, melde dich einfach.

Unter Proxmox habe ich für jeden Server ein eigenes Dataset erstellt,

datenproxmox/iso 8.31G 1.62T 8.31G /datenproxmox/iso
datenproxmox/newsletter 7.48G 1.62T 6.85G /datenproxmox/newsletter
datenproxmox/seafilecom 36.1G 1.62T 20.1G /datenproxmox/seafilecom
datenproxmox/seafilecomraw 9.31G 1.62T 9.26G /datenproxmox/seafilecomraw
datenproxmox/typo38-dokuserver 96K 1.62T 96K /datenproxmox/typo38-dokuserver
datenproxmox/ubuntu12-209 16.2G 1.62T 16.2G /datenproxmox/ubuntu12-209
datenproxmox/wk2016server 96K 1.62T 96K /datenproxmox/wk2016server


so kann ich auch raw VMS einen Snapshot geben.
Allerdings stehen bei mir die Server im gleichem Netzwerk, sollte aber dennoch kein Prolem sein.

viele grüsse
 
Jan 6, 2013
203
10
43
Nachtrag,

ich möchte Dir ans Herz legen, dass alles erst einmal in einem Netzwerk zu Testen.
Denn das ganze ZFS mit den Snapshots ist eine tolle Sache, aber mal einen falschen Befehl, dann hat man echt ein Problem.
Und der Restore ist icht so einfach!.

Meine Konfiguration bezieht sich rein auf ZFS nicht auf Proxmox wie etwa "PVE ZSYNC".
Leider dauert dass alles viel zu lang.

Wichtig ist die vm.config zu sichern.

Ich mache schon mehrere Wochen damit rum, und dank viele Foren wie "freebsd und oracle" bin ich sehr viel schritte weiter gekommen.
Suche Dir am besten diese Vorteile raus, dann hast Du ein System, dass einfach genial ist.
viele grüsse
 

Rene Schmidt

New Member
Nov 26, 2016
7
0
1
26
Hallo vielen Dank schon einmal für Deine Antwort.

Ich höre also schon raus: Ohne ZFS geht es also nicht. Demnach muss ich meinen Storage neu formatieren. Im Standort A habe ich da kein wirkliches Problem, da gibt es zwei Volumens und beide sind so groß, das da Problemlos alle Maschinen temporär auf einem Volume Platz finden, wären ich das andere formatiere....
Im Moment sind die Volumes mit ext4 formatiert.

Also werde ich den Storage auf beiden Servern erst einmal als ZFS Formatieren und dann auch so in Proxmox einbinden.
Da die RAID's Hardwareseitig aufgebaut sind, werde ich dann einfach ZFS Raid0 anlegen:
zpool create -f -o ashift=12 <pool> <device1>

Danach sollte es dann mit der Anleitung aus dem Proxmox Forum auch funktionieren:
https://pve.proxmox.com/wiki/PVE-zsync

Das sollte es dann doch auch schon gewesen sein?

Ich habe leider keine wirkliche Spielumgebung. Ich muss es quasi gleich im Live mach. Aber natürlich vorher einmal ein vollständiges Backup :D
 

LnxBil

Famous Member
Feb 21, 2015
6,783
900
173
Saarland, Germany
Hallo vielen Dank schon einmal für Deine Antwort.

Ich höre also schon raus: Ohne ZFS geht es also nicht. Demnach muss ich meinen Storage neu formatieren. Im Standort A habe ich da kein wirkliches Problem, da gibt es zwei Volumens und beide sind so groß, das da Problemlos alle Maschinen temporär auf einem Volume Platz finden, wären ich das andere formatiere....
Im Moment sind die Volumes mit ext4 formatiert.

Also werde ich den Storage auf beiden Servern erst einmal als ZFS Formatieren und dann auch so in Proxmox einbinden.
Da die RAID's Hardwareseitig aufgebaut sind, werde ich dann einfach ZFS Raid0 anlegen:
zpool create -f -o ashift=12 <pool> <device1>

Danach sollte es dann mit der Anleitung aus dem Proxmox Forum auch funktionieren:
https://pve.proxmox.com/wiki/PVE-zsync

Das sollte es dann doch auch schon gewesen sein?

ZFS ist schön und toll, aber es macht keinen Sinn auf einem Hardware-RAID, denn viele der Vorteile gehen da flöten. Und einfach was umformatieren wird für PVE selbst auch nicht funktionieren, denn PVE ist ja aktuell nicht auf ZFS installiert, ggf. müsstest du hier also Neuinstallieren was schon ein Aufwand darstellt.

Ich habe leider keine wirkliche Spielumgebung. Ich muss es quasi gleich im Live mach. Aber natürlich vorher einmal ein vollständiges Backup :D

Dann bau dir doch einfach eine im PVE selbst auf. Eine VM pro Standort und dann hast du die Latenz auch noch dabei und kannst rumspielen.
 

Rene Schmidt

New Member
Nov 26, 2016
7
0
1
26
Hallo,

ja das ist leider so, das mir da Vorteile verloren gehen. Das wäre mir irgendwo aber auch ehrlich gesagt: TOTAL EGAL....

Wenn ich das jetzt richtig verstehe, muss das Proxmox System selbst dann auch auf einem ZFS Datei System laufen. Richtig?
Würde es nicht ausreichen, wenn ich wirklich nur die VMs Syncen möchte, wenn die VMs auf einem ZFS Storage liegen?

Viele Grüße
 

LnxBil

Famous Member
Feb 21, 2015
6,783
900
173
Saarland, Germany
ja das ist leider so, das mir da Vorteile verloren gehen. Das wäre mir irgendwo aber auch ehrlich gesagt: TOTAL EGAL....

Das klingt jetzt vielleicht etwas böse, aber ... ich fasse also nochmal zusammen, dass dir das Feature, dass dir Dateiintegrität und Wiederherstellbarkeit bei Fehlern garantiert total egal ist - und habe ich das richtig verstanden, dass du oben wirklich ein RAID-0 anlegen willst?? Ich glaube dir ist ziemlich viel egal.

Daran sollten wir nun arbeiten, denn RAID-0 sollte niemand für irgendwas verwenden.

Wenn ich das jetzt richtig verstehe, muss das Proxmox System selbst dann auch auf einem ZFS Datei System laufen. Richtig?

Muss nicht, besser wäre es, denn man brauch kein eigenes RAID bzw. eigene Festplatten für die PVE Software und je mehr Platten in einem Verbund (ob real RAID oder ZFS Software RAID) sind desto schneller ist das System. Speicherplatz ist fast immer vernachlässigbar und IOPS zählen wenn es um Festplatten geht.

Würde es nicht ausreichen, wenn ich wirklich nur die VMs Syncen möchte, wenn die VMs auf einem ZFS Storage liegen?

Klar reicht das bei ZFS aus, aber das system ist weder optimal (mehrer Dateisysteme haben mehrere Caching-Strategien und verschwenden somit RAM was dazu führt, dass das System langsamer ist), noch sicher (wegen dem HW-RAID dazwischen) noch schnell (zu wenig Platten, zu wenig RAM).

Generell gilt aber wie bei allem in der IT: Klar kann man das machen, aber dann ist das halt sch.....

Vorschlagen würde ich folgendes, sodass du auch länger Spaß hast am System:
- Backup aller VMs und Einspielen dieser auf der anderen Seite (z.B. am WE), sodass die Dienste weiter laufen übers VPN
- RAID-Controller entfernen durch entweder flashen mit einer IT-Mode-Firmware (sodass der RAID-Controller als HBA JBOD kann), und durchreichen der Platten 1:1 oder zur Not auch via Raid-0-Single-Disk-Volumes, aber dann lieber einen funktionierenden RAID-Controller kaufen.
- Einbinden aller Festplatten in einen Pool mit RAID-1 für beste Performance
- Neuinstallation PVE (ist für die meisten Leute einfacher als eine Migration, die technisch natürlich bei Linux immer geht).
- Maschinen via Backup&Restore wieder auf dem neu-installierten Knoten einrichten.

Danach alles auf der anderen Seite, sodass du danach ZFS-Snapshots und send/receive verwenden kannst.

Wichtig ist hier - wie überall - testen, testen und nochmals testen. Du kannst sämtliche Dinge in einer VM durchspielen und solltest das auch tun.

ZFS mit send/receive ist natürlich der komfortabelste Weg vorzugehen, aber du kannst natürlich auch ein Backup der Maschine alle paar Stunden machen und via xdelta ein Binärdiff auf die andere Seite schicken und dort einspielen. Sollte relativ schnell geskriptet sein und auch funktionieren.

Generell wäre auch noch interessant, wie dein Setup aktuell aussieht. ZFS ist toll, aber es macht keinen Spaß wenn du zuwenig RAM hast (funktionieren tut es natürlich trotzdem). Wieviele Platten hast du pro Standort und wie hast du aktuell dein RAID aufgebaut?
 

fabian

Proxmox Staff Member
Staff member
Jan 7, 2016
8,419
1,678
174
Wieso ashift=12? Haben deine Platten eine Sektorgrösse von 4096 Byte? Hier eine falsche Einstellung gemacht, leidet die Performance und ashift kann nur beim Erstellen des Pools gesetzt / geändert werden.

ashift=12 ist default, weil fast alle modernen platten intern 4k blocksize verwenden (oder noch größer bei SSDs). der einzige nachteil ist der größere platzverbrauch bei raidz..

nachdem ein pool für immer auf einem ashift wert festgesetzt ist, ist es im zweifelsfall besser 12 zu nehmen (weil zukünftig dazukommende oder ersetzende platten relativ sicher nicht 512b blöcke haben werden). leider behaupten zu viele platten von sich selbst, 512b blöcke zu haben obwohl sie intern mit 4k blöcken arbeiten und mit 4k viel bessere performance liefern - deshalb gibt es in ZFS upstream auch zusätzlich zur autodetection noch eine whitelist an lügenden platten, und der PVE installer hat als default ashift=12 (lässt sich aber in den advanced options anpassen, falls wirklich notwendig).
 

About

The Proxmox community has been around for many years and offers help and support for Proxmox VE, Proxmox Backup Server, and Proxmox Mail Gateway.
We think our community is one of the best thanks to people like you!

Get your subscription!

The Proxmox team works very hard to make sure you are running the best software and getting stable updates and security enhancements, as well as quick enterprise support. Tens of thousands of happy customers have a Proxmox subscription. Get your own in 60 seconds.

Buy now!