VM im LVM format auf anderen Host in ein RBD migrieren ohne zwischenspeicher via SSH
Beschreibung
Es gibt Situationen, da möchte man eine VM auf eine andere umziehen lassen. Hat aber kein USB Datenträger bzw. dieser ist zu langsam, bzw man muss vorgänge ausführen, draufkopieren wieder runterkoiperen. Auch doppelte Zeit, oder oder oder...
Es gibt die Möglichtkeit mit screen und ssh dieses zu bewältigen.
Vorraussetzungen:
Das die zu kopierende VM natürlich NICHT läuft
Auf dem Zielsystem ist das Ceph soweit vorhanden und auch eingerichtet.
Auf dem Quellsystem ist screen installiert. Befehl dazu
apt install screen
Quellsystem kann sich per ssh auf dem Zielsystem einloggen.
Vorgang
Auf dem Quellsystem herausfinden wo unsere LVM Image liegen.
Dazu den Befehl lvs verwenden
Das LV ist sind die Diskimage und das VG die Volumegroup.
Somit wäre der Pfad im Dateisystem als Beispiel für vm-100-disk-1. Diese Disk nehmen wir auch für unserer Beispiel
/dev/datenppol/vm-100-disk-1
Ausgabe
root@vmserv:~# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
vm-100-disk-1 datenpool -wi-a----- 200.00g
vm-101-disk-2 datenpool -wi-ao---- 500.00g
vm-101-disk-3 datenpool -wi-ao---- 500.00g
vm-101-disk-4 datenpool -wi-ao---- 500.00g
vm-101-disk-5 datenpool -wi-ao---- 500.00g
vm-101-disk-6 datenpool -wi-ao---- 500.00g
vm-101-disk-7 datenpool -wi-ao---- 500.00g
vm-101-disk-8 datenpool -wi-ao---- 500.00g
vm-102-disk-1 datenpool -wi-a----- 260.00g
vm-102-disk-2 datenpool -wi-a----- 650.00g
vm-103-disk-1 datenpool -wi-a----- 100.00g
vm-104-disk-1 datenpool -wi-a----- 32.00g
vm-105-disk-1 datenpool -wi-a----- 250.00g
vm-105-disk-2 datenpool -wi-a----- 250.00g
vm-106-disk-1 datenpool -wi-a----- 50.00g
vm-107-disk-1 datenpool -wi-a----- 100.00g
vm-108-disk-1 datenpool -wi-a----- 100.00g
vm-111-disk-1 datenpool -wi-a----- 100.00g
vm-112-disk-1 datenpool -wi-ao---- 500.00g
vm-112-disk-2 datenpool -wi-a----- 1000.00g
vm-113-disk-0 datenpool -wi-a----- 50.00g
vm-114-disk-0 datenpool -wi-a----- 50.00g
vm-116-disk-0 datenpool -wi-a----- 32.00g
vm-117-disk-0 datenpool -wi-a----- 16.00g
vm-118-disk-0 datenpool -wi-a----- 32.00g
vm-119-disk-0 datenpool -wi-a----- 250.00g
vm-119-disk-1 datenpool -wi-a----- 250.00g
vm-120-disk-0 datenpool -wi-a----- 128.00g
vm-121-disk-0 datenpool -wi-a----- 20.00g
medavol media -wi-a----- 3.42t
data pve -wi-ao---- 63.99g
root pve -wi-ao---- 31.75g
swap pve -wi-ao---- 15.88g
Nun auf dem Zielserver den Pool heruasfinden wo die Images hinsollen.
Dazu auf den Zielserver einloggen und den Befehl eingeben:
ceph osd pool ls
Ausgabe, in userem Beispiel nehmen wir den rbd pool
device_health_metrics
rbd
rbd_hdd
cephfs_data
cephfs_metadata
Auf dem Zielsystem die nächste freie VMID ermitteln, mittels
pvesh get /cluster/nextid
Ausgabe:
111
Somit wird die 111 die neue VM ID auf dem Zielsystem.
Nun per ssh auf den Quellserver einloggen oder direkt am Server das ist egal.
nun einen neuen Screenauf machen
Parameter
screen -S <namedersession>
Beispiel
screen -S migrate
Nun sind wir in einer Screensitzung, damit wir zum Beispiel unseren Laptop auch ausschalten dürfen.
Denn der Kopierbefehl läuft auf dem Quellsystem jetzt in einer eigenen Session.
Jetzt den Kopierbefehl ausführen.
Parameter
ssh root@<zielsystem> "rbd import --image-format 2 - <ceph_rbd_pool>/vm->NEUE_VMIDAUF_Zilsystem-disk-<DISKNUMMER>" < /dev/<volumegroup_von_quellsystem>/<locicalvolume_von_quellsystem>
ssh root@192.168.178.240 "rbd import --image-format 2 - rbd/vm-111-disk-0" < /dev/datenpool/vm-100-disk-1
Hinweis:
--image-format 2 ist das RAW Format
Nun läuft der kopiervorgang und wir können uns nun mit STRG+A gedrückt halten und dann +D von der Sitzung trennen
Ausgabe:
detached from 7763.migrate]
root@vmserv:~#
Um uns wieder mit der Sitzung zu verbinden. Wenn wir noch keine neue Promt sehen für den nächsten Befehl, kopiert er noch.
screen -r migrate
Augabe:
root@192.168.178.240's password:
Nun wieder trennen. (STRG+A gedrückt halten dann +D