Bei der Arbeit mit virtuellen Maschinen benutzt man häuftig SSH zur Fernwartung. Was aber nun, wenn grundlegende Einstellungen geändert wurden und nach einem Neustart die VM gar nicht erst komplett startet, der SSH-Daemon also auch noch nicht läuft und kein Remote-Zugang möglich ist? Dann wäre ein Zugang zur Konsole der VM hilfreich.
Schlagwort: libvirt
Merkzettel: Bridge-Interface für libvirt einrichten
Merkzettel für das Einrichten einer Bridge für libvirt (damit VMs auch ohne NAT mit der Außenwelt reden können bzw. die VM auch von außen ohne Kunstgriffe erreichbar ist):
- Network-Manager stoppen und deaktivieren:
systemctl stop NetworkManager.service
systemctl disable NetworkManager.service
- Interface Settings manuell in /etc/network/interfaces eintragen, Bridge-Parameter angeben und Nameserver manuell festlegen:
auto br0
address 192.168.0.10
netmask 255.255.255.0
gateway 192.168.0.1
bridge_ports enp3s0
bridge_stp on
bridge_maxwait 0
dns-search local
dns-nameserver 192.168.0.1
- Rechner neustarten
Die Bridge sollte nun korrekt konfiguriert sein und folgendermaßen aussehen:
# ifconfig br0
br0 Link encap:Ethernet Hardware Adresse 50:xx:xx:xx:xx:xx
inet Adresse:192.168.0.10 Bcast:192.168.0.255 Maske:255.255.255.0
inet6-Adresse: fe80::xxxx:xxxx:xxxx:xxxx/64 Gültigkeitsbereich:Verbindung
inet6-Adresse: 2003:86:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx/64 Gültigkeitsbereich:Global
inet6-Adresse: 2003:86:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx/64 Gültigkeitsbereich:Global
UP BROADCAST RUNNING MULTICAST MTU:1500 Metrik:1
RX-Pakete:39478 Fehler:0 Verloren:0 Überläufe:0 Fenster:0
TX-Pakete:41158 Fehler:0 Verloren:0 Überläufe:0 Träger:0
Kollisionen:0 Sendewarteschlangenlänge:1000
RX-Bytes:42091131 (42.0 MB) TX-Bytes:6646905 (6.6 MB)
# brctl show br0
bridge name bridge id STP enabled interfaces
br0 8000.50xxxxxxxxxx yes enp3s0
Anschließend kann die Bridge dann auch virtuellen Maschinen mit z.B. virt-manager zugewiesen werden:
Backup der VMs im laufenden Betrieb mit libvirt
Mit libvirt bzw. deren Kommandozeilen-Interface virsh kann ein Backup der VMs im laufenden Betrieb durchgeführt werden. Das nachfolgende Script stellt ein Grundgerüst, angeregt durch einen Artikel von Christian Rößner, für ein Backup nach der folgenden Methode zur Verfügung:
Es wird zuerst ein Snapshot aller Volumes einer VM angelegt. Dadurch besteht jedes Volume aus (mindestens) zwei Dateien: eine Datei mit den originalen Daten und eine zweite Datei, welche alle Änderungen gegenüber dem Originalvolume ab dem Erstellen des Snapshots enthält. Das Originalvolume wird bei aktivem Snapshot nicht mehr beschrieben, es kann nun problemlos gesichert werden. Zum Kopieren kann "cp -f --sparse=always ..." oder, sofern verfügbar, "rsync --sparse ..." zum Einsatz kommen. Beide Kommandos behandeln freien Platz in den Volumes optimal, rsync ist jedoch um einiges schneller, wenn im Backup-Verzeichnis bereits vom vorherigen Backup schon die gleiche Datei vorhanden ist, da dann nur die Änderungen kopiert werden. Anschließend werden mit einem sogenannten Blockcommit die im Snapshot als Änderungen geschriebene Blöcke in das Originalvolume wieder eingearbeitet. Das alles kann im laufenden Betrieb vom Host der VMs aus durchgeführt werden.
...weiterlesen "Backup der VMs im laufenden Betrieb mit libvirt"