Guten Morgen,
ich migriere gerade mein gesamtes Homelab von ESXi auf Proxmox. Dazu importiere ich jede einzelne VM vom ESXi-Server auf einen "Proxmox-Temporärserver", wo sie dann laufen, mache dann den eigentlichen Server platt, installiere Proxmox, füge ihn zum Cluster hinzu und mache dann eine Live-Migration der VM vom "Temporärserver" zurück auf den Zielserver.
Dateisystem ist LVM-Thin. Nach viel Lesen im Vorfeld ist das auf den Hardware-RAIDs meiner Dell-R720 für mich die bessere Lösung als IT-Mode und ZFS.
Nun zum eigentlichen Problem: In der Phase 1 der Live-Migration "bläst" der Zielserver ja erstmal den Datastore um die maximale Größe der virtuellen Festplatte der zu migrierenden VM auf, startet dann die Übertragung der gesamten Maximalgröße über das Netzwerk, und schrumpft dann die virtuelle Festplatte per guest-trim wieder zusammen.
Hierbei habe ich ein Problem, welches ich zukünftig gerne "entschärfen" möchte:
Wenn schon einige VMs auf dem Zielserver laufen (und demnach Disk-I/O verursachen), haut das initiale "Aufblasen" vor der eigentlichen Datenübertragung auf dem Datastore die IO-Verzögerung auf 25-30% hoch. In dieser Zeit laufen alle VMs auf dem Zielserver quasi so gut wie gar nicht, weil der IO-Wait extremst hoch ist. Gibt es einen Weg, dieses "Aufblasen" zu "entspannen" (also ihm deutlich geringere Priorätät) zu geben? Also quasi das "Aufblasen" mit einem IO-Nice zu versehen? Der Betrieb der vorhandenen VMs hat in meinen Augen deutlich Priorität.
Bei meiner aktuellen Migration (VM mit 500GB Disk, 80GB belegt) hat das "Aufblasen" den kompletten Server quasi gute 10 Minuten lahmgelegt. Sobald die Übertragung der Daten über das LAN beginnt, ist alles wieder fein.
Da ich gerne die Dinge, die da passieren, technisch auch in der Tiefe verstehen möchte: Warum ist das initiale "Aufblasen" und das anschließende komplette Übertragen der gesamten Diskgröße bei Proxmox eigentlich notwendig? Wenn ich zum Beispiel eine VM mit einer virtuellen 1TB-Platte habe, von der nur 120GB wirklich verwendet sind (und die auch nur 120GB Platz im Thin-Datastore verbraucht) - dann müsste doch eigentlich auf dem Zielserver die gleiche Größe angelegt und auch nur die 120GB über das LAN geschickt werden? Es werden aber erst einmal 1TB auf dem Zielserver "reserviert" und auch wirklich 1TB über das LAN geschickt. Sind das alles "Nullen"?
Vielleicht hat ja jemand eine Erklärung für mich
Nach den ersten Tagen finde ich Proxmox wirklich in fast allen Belangen dem ESXi deutlich überlegen und bin ein richtiger "Fan" geworden ... aber der Punkt geht leider noch an ESXi.
Viele Grüße,
Marco
ich migriere gerade mein gesamtes Homelab von ESXi auf Proxmox. Dazu importiere ich jede einzelne VM vom ESXi-Server auf einen "Proxmox-Temporärserver", wo sie dann laufen, mache dann den eigentlichen Server platt, installiere Proxmox, füge ihn zum Cluster hinzu und mache dann eine Live-Migration der VM vom "Temporärserver" zurück auf den Zielserver.
Dateisystem ist LVM-Thin. Nach viel Lesen im Vorfeld ist das auf den Hardware-RAIDs meiner Dell-R720 für mich die bessere Lösung als IT-Mode und ZFS.
Nun zum eigentlichen Problem: In der Phase 1 der Live-Migration "bläst" der Zielserver ja erstmal den Datastore um die maximale Größe der virtuellen Festplatte der zu migrierenden VM auf, startet dann die Übertragung der gesamten Maximalgröße über das Netzwerk, und schrumpft dann die virtuelle Festplatte per guest-trim wieder zusammen.
Hierbei habe ich ein Problem, welches ich zukünftig gerne "entschärfen" möchte:
Wenn schon einige VMs auf dem Zielserver laufen (und demnach Disk-I/O verursachen), haut das initiale "Aufblasen" vor der eigentlichen Datenübertragung auf dem Datastore die IO-Verzögerung auf 25-30% hoch. In dieser Zeit laufen alle VMs auf dem Zielserver quasi so gut wie gar nicht, weil der IO-Wait extremst hoch ist. Gibt es einen Weg, dieses "Aufblasen" zu "entspannen" (also ihm deutlich geringere Priorätät) zu geben? Also quasi das "Aufblasen" mit einem IO-Nice zu versehen? Der Betrieb der vorhandenen VMs hat in meinen Augen deutlich Priorität.
Bei meiner aktuellen Migration (VM mit 500GB Disk, 80GB belegt) hat das "Aufblasen" den kompletten Server quasi gute 10 Minuten lahmgelegt. Sobald die Übertragung der Daten über das LAN beginnt, ist alles wieder fein.
Da ich gerne die Dinge, die da passieren, technisch auch in der Tiefe verstehen möchte: Warum ist das initiale "Aufblasen" und das anschließende komplette Übertragen der gesamten Diskgröße bei Proxmox eigentlich notwendig? Wenn ich zum Beispiel eine VM mit einer virtuellen 1TB-Platte habe, von der nur 120GB wirklich verwendet sind (und die auch nur 120GB Platz im Thin-Datastore verbraucht) - dann müsste doch eigentlich auf dem Zielserver die gleiche Größe angelegt und auch nur die 120GB über das LAN geschickt werden? Es werden aber erst einmal 1TB auf dem Zielserver "reserviert" und auch wirklich 1TB über das LAN geschickt. Sind das alles "Nullen"?
Vielleicht hat ja jemand eine Erklärung für mich
Nach den ersten Tagen finde ich Proxmox wirklich in fast allen Belangen dem ESXi deutlich überlegen und bin ein richtiger "Fan" geworden ... aber der Punkt geht leider noch an ESXi.
Viele Grüße,
Marco