Vor einiger Zeit gab es Probleme mit der Storage eines unserer Hostingsysteme. Die auf dem PCIE Port verbaute M.2 sprang offenbar unter Last vom PCIE-Bus, was zum Totalausfall der VMs führte, die darauf Ihre Daten gelagert hatten.
Proxmox cooles Transferfeature
Nachdem klar war, daß das ein Problem des Mainboards ist und damit nicht ohne weiteres lösbar war, wurde eine alternative Storage in den Server eingebaut, die als neues Heim für Daten der VMs dienen sollte. Jetzt mußten die Daten da aber auch hin und da kommt die Livemigration von Proxmox ins Spiel.
Damit ist es möglich die Festplatten der VM’s auf eine andere Storage zu verschieben, ohne das die VM gestoppt werden muß. Ich habe Euch da ein Logfile mitgebracht, damit Ihr Euch das mal „ansehen“ könnt:
create full clone of drive sata1[1] (local-lvm:vm-101-disk-2)
Formatting[2] ‚/disks//images/101/vm-101-disk-0.qcow2‘, fmt=qcow2 cluster_size=65536 extended_l2=off preallocation=metadata compression_type=zlib size=85899345920 lazy_refcounts=off refcount_bits=16
drive mirror is starting for drive-sata1
drive-sata1: transferred 0.0 B of 80.0 GiB (0.00%) in 0s
drive-sata1: transferred 457.0 MiB of 80.0 GiB (0.56%) in 1s
drive-sata1: transferred 932.0 MiB of 80.0 GiB (1.14%) in 2s
drive-sata1: transferred 1.4 GiB of 80.0 GiB (1.70%) in 3s
drive-sata1: transferred 1.8 GiB of 80.0 GiB (2.27%) in 4s
drive-sata1: transferred 2.3 GiB of 80.0 GiB (2.84%) in 5s
drive-sata1: transferred 2.7 GiB of 80.0 GiB (3.42%) in 6s
drive-sata1: transferred 3.2 GiB of 80.0 GiB (3.99%) in 7s
drive-sata1: transferred 3.7 GiB of 80.0 GiB (4.56%) in 8s
drive-sata1: transferred 4.1 GiB of 80.0 GiB (5.13%) in 9s
drive-sata1: transferred 4.6 GiB of 80.0 GiB (5.70%) in 10s
drive-sata1: transferred 5.0 GiB of 80.0 GiB (6.27%) in 11s
drive-sata1: transferred 5.5 GiB of 80.0 GiB (6.84%) in 12s
drive-sata1: transferred 5.9 GiB of 80.0 GiB (7.41%) in 13s
drive-sata1: transferred 6.4 GiB of 80.0 GiB (7.98%) in 14s
drive-sata1: transferred 6.8 GiB of 80.0 GiB (8.54%) in 15s
drive-sata1: transferred 7.3 GiB of 80.0 GiB (9.12%) in 16s
drive-sata1: transferred 7.8 GiB of 80.0 GiB (9.70%) in 17s
drive-sata1: transferred 8.2 GiB of 80.0 GiB (10.27%) in 18s
drive-sata1: transferred 8.7 GiB of 80.0 GiB (10.84%) in 19s
drive-sata1: transferred 9.1 GiB of 80.0 GiB (11.39%) in 20s
drive-sata1: transferred 9.6 GiB of 80.0 GiB (11.98%) in 21s
drive-sata1: transferred 10.0 GiB of 80.0 GiB (12.55%) in 22s
…
drive-sata1: transferred 78.6 GiB of 80.0 GiB (98.22%) in 2m 55s
drive-sata1: transferred 79.0 GiB of 80.0 GiB (98.77%) in 2m 56s
drive-sata1: transferred 79.5 GiB of 80.0 GiB (99.29%) in 2m 57s
drive-sata1: transferred 79.9 GiB of 80.0 GiB (99.82%) in 2m 58s
drive-sata1: transferred 80.0 GiB of 80.0 GiB (100.00%) in 2m 59s, ready
all ‚mirror‘ jobs are ready
drive-sata1: Completing block job_id…
drive-sata1: Completed successfully.
drive-sata1: mirror-job finished
TASK OK[1] SATA1 ist schlicht und ergreifen die Nummerierung von Proxmox für die erste (und einzige) „SATA“-Platte an der VM. SATA meint hier nur den simulierten Anschluss, nicht das echte Speichermedium. Die Tragödie mit Fedora und SCSI hatte ich schon einmal thematisiert.
[2] Der Vorgang erzeugt auf der (nicht als LVM realisierten) neuen Storage erstmal eine Imagedatei passender Größe.
Wie man sehen kann, wurden da 80GB in 3 Minuten verschoben, was einer Datenrate von 455 MB/s entspricht. Das war schon mal viel schneller als wir das bei der Storage erwartet hatten. Diese soll eigentlich nur als Überbrückung dienen, um die defekte NVME aus dem RAID zu bekommen, ohne das es zum Datenverlust kommt.
Durch die Livemigration bleiben die VMs am laufen und die Benutzer merken idealerweise nichts von dem Transfer. Natürlich haben wir den nicht zur Primetime gemacht, daher war in der VM tatsächlich nichts von dem Transfer zu merken. An der Stelle, ein großes Lob für das Proxmox Team.Man muß die VM dafür nicht mal rebooten.
Das Feature soll auch bei externen Storages funktionieren, so daß eine nachträgliche Anschaffung einer „echten ;)“ Storage-Unit den Transfer von VMs dort hin ermöglicht und die ehemals lokalen Server zu reinen Webslaves werden.
Also traut Euch ruhig das mal auszuprobieren, wenn Ihr neue Storages in Euren Proxmox einbaut.