Rozhodli jste se přejít z Oracle VirtualBox na virtuální stroj založený na jádře? Skvělý! Tento průvodce krok za krokem vysvětluje, jak migrovat virtuální počítače Virtualbox na virtuální počítače KVM v Linuxu.
Možná máte na VirtualBoxu spuštěné některé důležité hostující počítače. Místo vytváření nových hostů KVM se stejnou konfigurací můžete snadno převést stávající stroje Virtualbox na KVM, jak je popsáno zde.
Migrujte virtuální počítače Virtualbox na virtuální počítače KVM v systému Linux
Nejprve vypněte všechny běžící virtuální stroje ve VirtualBoxu.
Pro účely této příručky budu používat CentOS a FreeBSD virtuální počítače, které jsou hostovány ve VirtualBoxu.
Jak již možná víte, výchozí formát obrazu disku virtuálního počítače KVM je .qcow2
a Virtualbox VM je .vdi
.
Soubor obrazu disku vdi můžeme převést na qcow2 dvěma způsoby. Můžeme přímo převést vdi
obrázek na qcow2
formát.
Pokud to z nějakého důvodu nefunguje, můžeme nejprve převést vdi
formátovat na formát raw a poté tento formát převést na qcow2
.
1. Převeďte formát obrázku vdi na formát obrázku qcow2
Dovolte mi ukázat vám typ obrazu disku mého virtuálního počítače CentOS vytvořeného pomocí VirtualBox.
$ ls CentOS\ 8\ Server/
Ukázkový výstup:
CentOS 8 Server.vbox CentOS 8 Server.vbox-prev CentOS 8 Server.vdi Logs
Jak jste si možná všimli, typ souboru obrazu disku CentOS VM je .vdi . Pro ty, kdo by se divili, VDI je nativní formát VirtualBoxu. VirtualBox používá tento formát ve výchozím nastavení, když vytváříme nový virtuální stroj.
A zde je typ souboru obrazu disku FreeBSD:
$ ls FreeBSD\ 12/ FreeBSD-12.0-RELEASE-amd64.vhd freebsd12.qcow2 FreeBSD 12.vbox FreeBSD 12.vbox-prev Logs
Zde je typ souboru obrazu disku freebsd .vhd . VHD je nativní formát Microsoft Virtual PC.
Oba virtuální stroje jsem vytvořil ve VirtualBoxu. Ale Virtualbox použil .vdi
formát pro CentOS a .vhd
formát pro FreeBSD.
VirtualBox velmi dobře podporuje formáty VDI i VHD. Oba typy obrázků lze snadno převést do formátu qcow2.
Nyní se vraťme k tématu – jak převést obrazy disku počítače Virtualbox na typ obrazu disku podporovaný KVM pomocí "qemu-img"
příkaz?
No, je to snadné! qemu-img
příkaz se používá k převodu obrazů disku virtuálního stroje do různých různých formátů, včetně qcow2
, raw
, vdi
, vhd
a vmdk
.
Chcete-li převést vdi
obrázek na qcow2
obrázek pomocí qemu-img
příkaz, spusťte:
$ qemu-img convert CentOS\ 8\ Server/CentOS\ 8\ Server.vdi -O qcow2 centos8.qcow2
Výše uvedený příkaz převede daný vdi
soubor do qcow2
formát.
Zde jsme použili -O qcow2
explicitně specifikovat výstupní formát. Samozřejmě nemusíte explicitně specifikovat výstupní formát a stačí zadat vstupní a výstupní formát, jak je uvedeno níže:
$ qemu-img convert CentOS\ 8\ Server/CentOS\ 8\ Server.vdi centos8.qcow2
Vytvoří však obrázek větší velikosti.
Podobně můžete převést vhd
soubor obrázku na qcow2
obrázek pomocí následujícího příkazu:
$ qemu-img convert FreeBSD\ 12/FreeBSD-12.0-RELEASE-amd64.vhd -O qcow2 freebsd12.qcow2
Takto migrujeme virtuální stroje Virtualbox na virtuální stroje KVM.
Nyní přejděte k „Vytvoření virtuálního počítače KVM z obrazu Qcow2 ", kde se dozvíte, jak vytvořit nový virtuální stroj KVM pomocí obrazů Qcow2.
V případě, že výše uvedená metoda nefunguje (což je velmi nepravděpodobné), můžete použít následující metodu pro převod vdi
obrázky do qcow2
obrázky.
2. Převeďte vdi do formátu obrázku raw a poté do formátu obrázku qcow2
Nejprve vyhledejte seznam dostupných obrazů disků virtuálních boxů a jejich umístění pomocí příkazu:
$ vboxmanage list hdds
Nebo,
$ VBoxManage list hdds
Ukázkový výstup:
UUID: ecfb6d5c-aa10-4ffc-b40c-b871f0404da8 Parent UUID: base State: created Type: normal (base) Location: /home/sk/VirtualBox VMs/CentOS 8 Server/CentOS 8 Server.vdi Storage format: VDI Capacity: 20480 MBytes Encryption: disabled UUID: 34a5709f-188c-4040-98f9-6093628c3d88 Parent UUID: base State: created Type: normal (base) Location: /home/sk/VirtualBox VMs/Ubuntu 20.04 Server/Ubuntu 20.04 Server.vdi Storage format: VDI Capacity: 20480 MBytes Encryption: disabled
Jak můžete vidět, mám dva virtuální počítače s virtuálním boxem.
Nyní převedu diskový obraz strojů CentOS 8 na nezpracovaný formát disku pomocí vboxmanage
příkaz:
$ vboxmanage clonehd --format RAW /home/sk/VirtualBox\ VMs/CentOS\ 8\ Server/CentOS\ 8\ Server.vdi CentOS_8_Server.img
Nebo,
$ VBoxManage clonehd --format RAW /home/sk/VirtualBox\ VMs/CentOS\ 8\ Server/CentOS\ 8\ Server.vdi CentOS_8_Server.img
Ukázkový výstup:
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100% Clone medium created in format 'RAW'. UUID: afff3db8-b460-4f68-9c02-0f5d0d766c8e
Snímek RAW je příliš velký použít. V mém případě je snímek RAW desetkrát větší než snímek Qcow2.
$ du -h CentOS_8_Server.img 21G CentOS_8_Server.img
Pojďme tedy převést obrazový formát RAW na diskový formát KVM, tj. komprimovaný qcow2 pomocí příkazu qemu-img:
$ qemu-img convert -f raw CentOS_8_Server.img -O qcow2 CentOS_8_Server.qcow2
Hotovo! Převedli jsme formát obrazu disku Virtualbox VDI do formátu obrazu KVM qcow2.
Zkontrolujte velikost obrázku Qcow2:
$ du -h CentOS_8_Server.qcow2 2.1G CentOS_8_Server.qcow2
Vidět? Qcow2 je mnohem menší než obrázek RAW.
3. Vytvořte virtuální stroj KVM z obrazu Qcow2
Nyní můžete vytvořit novou instanci KVM importem souboru obrazu virtuálního disku z příkazového řádku nebo pomocí libovolné grafické aplikace pro správu KVM, jako je Virt-manager nebo Kokpit webová konzole.
Další podrobnosti naleznete v následující příručce:
- Jak vytvořit virtuální stroj KVM pomocí obrázku Qcow2
Odstraňování problémů
Někdy jste mohli smazat virtuální disk, aniž byste jej řádně uvolnili ze správce médií Virtualbox.
Když se pokusíte vytvořit nový obraz RAM ze stejného souboru VDI, zobrazí se chyba podobná - "hard disk with UUID already exists"
.
Chcete-li tento problém vyřešit, musíte uvolnit virtuální disk z Virtualboxu a znovu zkusit převést bitovou kopii. V následující příručce se dozvíte, jak to udělat:
- Oprava problému „pevný disk s UUID již existuje“ ve VirtualBoxu
Závěr
V této příručce jsme viděli, jak migrovat virtuální počítače Virtualbox na virtuální počítače KVM v Linuxu. Také jsme se podívali na to, jak vytvořit novou instanci KVM importem souboru obrazu Qcow2.