Guten Morgen zusammen!
Wir haben seit einigen Monaten einen neuen KVM-Server, um in Sachen Moodle/Nextcloud/Collabora/… etwas flexibler zu sein und im Notfall keine längere Auszeit zu haben.
Dafür habe ich auf beiden Hosts alle unsere virtuellen Maschinen angelegt. Auch die Netzwerkkonfiguration ist identisch (2x 10G Bond, VLANs). Nur die IP der Hosts unterscheidet sich natürlich. Beide arbeiten derzeit parallel:
Server 1 (IP1): Webserver (läuft), Schulserver (heruntergefahren), …
Server 2 (IP2): Webserver (heruntergefahren), Schulserver (läuft), …
Speicher ist ein RAID-6-Verbund (auf dem alten mit HDs, auf dem neuen mit SSDs), welches Komplett per LVM genutzt wird.
Nun habe ich überlegt, ein Snapshot der LVs jede Nacht vom Server, auf dem die jeweilige VM läuft auf den jeweils anderen Server zu übertragen, auf dem die VM sozusagen im Ruhezustand wartet. So könnte ich - im Falle des „Abrauchens“ einfach die fehlende VM auf dem jeweils anderen Server starten und hätte praktisch keine Ausfallzeiten. Nur gleichzeitig laufen sollten sie natürlich nicht.
Dafür habe ich ein kleines Skript angefangen - es prüft, ob ein paar Rahmenbedingungen stimmen, legt dann ein Snapshot an und kopiert dieses per dd über SSH auf den anderen Server. Ich wollte vor allem wissen, ob letzteres geht und wie lange es dauert. Gestern habe ich es dann mal getestet und im laufenden Betrieb wird innerhalb von 8 Minuten unsere 80GB Webserver-Volume auf den zweiten Server geklont.
Das ist natürlich ein eher spezifischer Anwendungsfall, aber vielleicht kann es ja jemand gebrauchen - ganz oder Schnipsel davon. Man könnte die LVs z.B. auch alle auf ein NAS klonen und im Notfall von dort auf einen neuen Server. Das ersetzt kein regelmäßiges, inkrementelles Backup der Daten (da plane ich derzeit mit restic), aber für ein Vollbackup der VMs vielleicht für den ein oder anderen hilfreich.
Ich habe es mal ins Wiki gepackt.
Viele Grüße und bleibt gesund
Thomas