Dobrý den, milí čtenáři, dnes provedeme migraci virtuálního stroje z VMware ESXi na Proxmox VE.
Dnes nepracujeme na našem laboratorním prostředí, ale na produkčním prostředí. Pro tento proces migrace jsme naplánovali odstávku. Migrujeme virtuální NTP server z našeho starého ESXi na nový Proxmox Cluster.
Příprava na migraci
Máme diskové pole RAID5 jako úložiště dat pro náš starší hypervizor ESXi a úložiště Gluster FS Replicated Storage jako sdílené úložiště v Proxmox Cluster. Víme, že VMware ESXi ukládá VM Disky ve formátu obrazu VMDK a pro Proxmox potřebujeme formát obrazu disku QCOW2. Změníme tedy formát obrázku z VMDK na QCOW2. Chcete-li se dozvědět více o Proxmoxu, můžete navštívit naše další příspěvky na Proxmox.
Můžeme přímo importovat disk VMware do Proxmox Hypervisor, ale ten použije plnou velikost disku přidělenou pro obraz virtuálního disku. Import obrazu disku jako tenkého zajišťovaného by ušetřilo místo na disku a umožnilo by nám přetížit místo na disku mezi virtuálními stroji.
Abychom importovali disk virtuálního stroje jako tenký zajišťovaný a odstranili zbytečný prostor na disku využívaný obrazem disku, použijeme jiného prostředního hostitele CentOS Virtualization s obslužným programem qemu-img a nainstalovaným nástrojem virt-sparsify, pigz pro kompresi.
V tomto článku provádíme všechny operace z rozhraní příkazového řádku. Budeme tedy potřebovat přístup k shellu pro všechny 3 hostitele. Chcete-li povolit přístup SSH ve VMware ESXi, zkontrolujte tento dokument. Budeme také muset povolit klientovi SSH SCP obrazové soubory disku z hostitele ESXi; přejděte na Síť -> Pravidla brány firewall -> Klient SSH na hostitelském portálu ESXi. Klikněte na Akce a poté na Povolit.
Příprava obrazu disku VMware ESXi
Identifikujte cílový virtuální počítač v ESXi.
# vim-cmd vmsvc/getallvms
Nebo použijte grep k odfiltrování nepotřebných výstupů
# vim-cmd vmsvc/getallvms | grep -i ntp
Zde jsme zjistili, že VM ID je 19 a jeho konfigurační soubor je umístěn v datastore2/NTP-1 adresář.
Nyní vypněte cílový virtuální počítač a zkontrolujte stav napájení virtuálního počítače
# vim-cmd vmsvc/power.getstate 19
Přejděte do adresáře virtuálního počítače a určete název virtuálního disku
VMware používá k ukládání dat formát obrazu disku VMDK. V ESXi používá soubor metadat a skutečné názvy obrazů disku jako IMAGENAME-flat.vmdk. Zde zjistíme, že máme takové 2 soubory, NTP-1.vmdk (metadata) a NTP-1-flat.vmdk.
Protože má virtuální disk NTP-1-flat.vmdk větší velikost, budeme jej komprimovat, aby nás to nestálo více času při přenosu dat z ESXi do hostitele CentOS.
# pigz -v -1 -k -p8 NTP-1-flat.vmdk
Poznámka:Pokud máte mezi servery vysokorychlostní síťová připojení, můžete komprimaci přeskočit.
Po dokončení komprese převedeme komprimovaný obraz disku a soubor metadat do našeho středního hostitele virtualizace CentOS, abychom obraz disku převedli a rozparfovali.
Převeďte VMDK na QCOW2 a sparfikujte obraz disku QCOW2
K převodu obrazu disku z VMDK do formátu QCOW2 budeme potřebovat qemu-img nástroj, který by měl být předinstalován v hostiteli CentOS Virtualizations. Můžete jej nainstalovat také pomocí níže uvedeného příkazu
# yum install -y qemu-img
Přejděte do adresáře s obrazem disku a dekomprimujte soubor s obrazem disku
# pigz -v -d NTP-1-flat.vmdk.gz
Převeďte formát souboru z VMKD na QCOW2
# qemu-img convert -p -O qcow2 NTP-1.vmdk NTP-1.qcow2
Nainstalujte virt-sysprep nástroje v hostiteli CentOS
# yum install -y /usr/bin/virt-sysprep
Abychom se vyhnuli problému s velikostí dočasného adresáře, vytváříme tmp adresář v našem vmdata adresář a plné oprávnění pro všechny uživatele
# mkdir /vmdata/tmp # chmod 777 -R tmp
Rozdělte soubor obrazu disku ve formátu qcow2
# virt-sparsify --tmp tmp --compress NTP-1.qcow2 ntp-1-sparsed.qcow2
Nahrajte nový soubor bitové kopie disku do hostitele Proxmox VE
Nasazení virtuálního počítače v Proxmox VE ze stávajícího obrazu disku QCOW2
Pojďme vytvořit VM v Proxmox VE
qm create 120 --name ntp-1 \ --sockets 1 --cores 2 --vcpus 2 --cpu host \ --memory 4096 \ --ostype l26 --arch x86_64 \ --agent enabled=1 \ --scsihw virtio-scsi-pci \ --bootdisk scsi0 \ --boot c
Zde 120 je VM ID v Proxmox
Importujte obraz disku ntp-1-sparsed.qcow2 do virtuálního počítače
# qm importdisk 120 /path/to/image/ntp-1-sparsed.qcow2 glusterFSname --format=qcow2 # qm set 120 --scsi0 glusterFSname:120/vm-120-disk-0.qcow2
Konfigurace sítě pro virtuální počítač
# qm set 120 --net0 model=virtio,bridge=vmbr0,firewall=1,tag=10
Zde jsme použili VLAN ID 10 pro server LAN, pro typ přepínacího portu s tagem/svazkem použijte své VLAN-ID.
Ověřte konfiguraci virtuálního počítače
# qm config 120
Spusťte virtuální počítač
# qm start 120
To je vše, váš VM byl úspěšně migrován z VMware ESXi na Proxmox VE.