KVM (Kernel based Virtual Machine) je opensource virtualizační technologie vytvořená pro počítače se systémem Linux. Obsahuje modul jádra – kvm.ko, který poskytuje základní virtualizační platformu, a modul specifický pro procesor ( kvm-intel.ko pro procesory Intel nebo kvm-amd.ko pro procesory AMD).
Existují dva způsoby vytváření virtuálních strojů pomocí KVM. Můžete využít nástroj virt-manager, což je server X11, který poskytuje rozhraní GUI pro vytváření virtuálních strojů. Kromě toho můžete pomocí příkazového řádku vytvořit virtuální počítač definováním různých parametrů spojených s virtuálním počítačem, který chcete nasadit.
Již máme propracovaný návod, jak nainstalovat virtuální stroje KVM pomocí GUI na Ubuntu. V této příručce použijeme jiný přístup a ukážeme, jak můžete vytvořit virtuální stroj KVM z rozhraní příkazového řádku. Používáme Ubuntu 18.04, ale mělo by to fungovat ve všech distribucích Linuxu.
Krok 1) Zkontrolujte, zda je povolena virtualizace
Když začínáme, musíme zkontrolovat, zda váš systém podporuje technologii virtualizace. Chcete-li toho dosáhnout, spusťte následující příkaz.
$ egrep -c '(vmx|svm)' /proc/cpuinfo
Pokud váš systém podporuje technologii virtualizace, měli byste získat výstup větší než 0.
Dále potvrďte, zda váš systém může spouštět virtuální stroje KVM.
$ kvm-ok
Pokud se na obrazovce zobrazí chyba, znamená to, že nástroj kvm-ok ještě není nainstalován. Proto nainstalujte následující příkaz k instalaci nástroje kvm-ok.
$ sudo apt install -y cpu-checker
Nyní spusťte příkaz kvm-ok a ověřte, zda je podporována virtualizace KVM.
Krok 2) Nainstalujte démona KVM, Qemu, virt-manager a libvirtd
Dalším krokem je instalace KVM a souvisejících balíčků. Spusťte tedy příkaz:
$ sudo apt install -y qemu qemu-kvm libvirt-daemon libvirt-clients bridge-utils virt-manager
Příkaz nainstaluje následující balíčky.
- qemu-kvm – Toto je hlavní balíček KVM, který poskytuje podporu virtualizace.
- libvirt – Zahrnuje démona libvirtd, který podporuje vytváření a správu virtuálních strojů.
- libvirt-client – Tento balíček poskytuje virsh nástroj používaný pro interakci s virtuálními stroji.
- virt-install – Nástroj, který vám pomůže vytvořit virtuální stroje a nainstalovat OS na tyto virtuální stroje z příkazového řádku.
- virt-viewer – Nástroj, který zobrazuje grafické zobrazení virtuálního počítače.
Po instalaci musíme potvrdit, zda jsou načteny požadované moduly kvm. Spusťte tedy příkaz:
$ lsmod | grep kvm
Dále potvrďte, že démon libvirtd běží následovně.
$ sudo systemctl status libvirtd.service
Perfektní! Všechny předpoklady jsou splněny. Nyní pokračujte a nainstalujte virtuální počítač.
Krok 3) Vytvořte virtuální počítač z příkazového řádku
Chystáme se nainstalovat virtuální stroj Debian pomocí iso obrazu Debian 11 umístěného ve složce Downloads v domovském adresáři.
Chcete-li vytvořit nový virtuální počítač, spustíme následující příkaz.
$ sudo virt-install --name=debian-vm \ --os-type=Linux \ --os-variant=debian9 \ --vcpu=2 \ --ram=2048 \ --disk path=/var/lib/libvirt/images/Debian.img,size=15 \ --graphics spice \ --location=/home/james/Downloads/debian-11.1.0-amd64-DVD-1.iso \ --network bridge:virbr0
Věnujeme chvíli analýze tohoto příkazu:
- Atribut –name označuje název virtuálního počítače. Klidně mu dejte libovolný název.
- Direktiva –os-type určuje typ operačního systému – v tomto případě Linux.
- Volba –os-variant určuje vydání operačního systému.
POZNÁMKA: KVM poskytuje předdefinované možnosti –os-variant a vy si prostě nemůžete vytvořit vlastní. Chcete-li zkontrolovat různé varianty, které jsou podporovány, spusťte příkaz osinfo-query os. Zde jsou uvedeny všechny možné operační systémy a podporované varianty. Všimněte si také, že varianty se neshodují s vaším nejnovějším vydáním Linuxu. V tomto případě používám debian9 místo debian11, protože debian11 neposkytuje KVM jako jednu z variant.
- Parametr –vcpu dále určuje počet jader CPU, která mají být přidělena virtuálnímu počítači.
- Volba –ram určuje množství paměti RAM v megabajtech, které má být přiděleno.
- Volba –disk path definuje cestu k obrazu virtuálního počítače. Direktiva –disk je diskový prostor virtuálního počítače v gigabajtech.
- Volba –graphics určuje grafický nástroj pro interaktivní instalaci, v tomto příkladu používáme koření.
- Volba –location ukazuje na umístění obrazu ISO
- Nakonec direktiva –network bridge určuje rozhraní, které má virtuální stroj používat.
Pokud vše půjde dobře, měli byste získat nějaký výstup, jak je znázorněno na obrázku výše, po kterém následuje vyskakovací okno prohlížeče virt s virtuálním počítačem čekajícím na instalaci.
V našem případě instalujeme Debian 11 a toto je úvodní instalační obrazovka. Pokračovali jsme v instalaci až do úplného konce.
Krok 4) Interakce s virtuálními stroji
Obslužný program virsh je komponenta, která se používá k interakci s virtuálními stroji na příkazovém řádku. Chcete-li například zobrazit aktuálně spuštěné virtuální stroje, spusťte příkaz:
$ virsh list
Chcete-li zobrazit seznam všech virtuálních počítačů včetně těch, které jsou vypnuté, přidejte možnost –all.
$ virsh list --all
Chcete-li vypnout virtuální počítač, použijte syntaxi:
$ sudo virsh shutdown vm_name
Chcete-li například vypnout náš virtuální počítač, příkaz bude:
$ sudo virsh shutdown debian-vm
Chcete-li spustit nebo zapnout virtuální počítač, spusťte:
$ sudo virsh start debian-vm
Chcete-li restartovat počítač, spusťte příkaz:
$ sudo virsh reboot debian-vm
Chcete-li zničit nebo násilně vypnout virtuální počítač, spusťte:
$ sudo virsh destroy debian-vm
Chcete-li odstranit nebo odebrat virtuální počítač spolu s jeho diskovým souborem, spusťte
a) Nejprve vypněte virtuální počítač
b) Smažte virtuální počítač spolu s přidruženým souborem úložiště, spusťte
$ sudo virsh undefine –doména
Příklad:
$ sudo virsh undefine --domain debian-vm --remove-all-storage
Myšlenky na závěr:
Toto byl návod, jak nainstalovat virtuální počítač pomocí KVM na příkazovém řádku. Zvýraznili jsme některé z hlavních možností, které je třeba specifikovat, aby bylo zajištěno úspěšné nasazení virtuálního počítače. Také jsme šli o krok dále a ukázali, jak interagovat s virtuálním strojem na příkazovém řádku pomocí nástroje virsh. To bylo jen několik možností, je jich několik.