Virtualizácia

Dominik Rehák, xrehak2@fi.muni.cz

Obsah

Základné pojmy

Prečo virtualizovať?

Krátka história

Prehľad typov virtualizácie platformy

Emulácia

Príklady

Plná virtualizácia

Príklady

Paravirtualizácia

Príklady

Virtualizácia na úrovni OS

Príklady

Formáty virtuálnych diskov

V praxi - KVM/libvirt

libvirt je správca virtuálnych strojov, ktorý uľahčuje prácu s hypervisormi jednotnou sadou príkazov a jednotným štýlom konfigurácie. Budeme pomocou neho virtualizovať Arch Linux pod Arch Linuxom, ale postup by mal byť analogický pre iné distribúcie.

Stiahneme si libvirt a iné balíky, ktoré nie sú priamo závislosťami, ale sú potrebné pre vytvorenie diskov a chod siete. Spustíme libvirt ako permanentnú službu.

$ sudo pacman -S libvirt qemu ebtables iptables dnsmasq
$ sudo systemctl enable --now libvirt

Vytvoríme QCOW2 obraz systémového disku s veľkosťou 10GB. Všimnime si, že obraz je spočiatku oveľa menší a 10GB je len jeho limit.

$ sudo qemu-img create -f qcow2 -o size=10G /var/lib/libvirt/images/arch.qcow2
Formatting '/var/lib/libvirt/images/arch.qcow2', fmt=qcow2 cluster_size=65536 compression_type=zlib size=10737418240 lazy_refcounts=off refcount_bits=16
$ ls -l /var/lib/libvirt/images/arch.qcow2
-rw-r--r-- 1 root root 196768 Oct 19 07:07 /var/lib/libvirt/images/arch.qcow2

Spustíme inštaláciu. Ale pozor! Arch po nabootovaní inštalačného média prepne zo sériovej konzoly na framebuffer, čo by znemožnilo inštaláciu v textovom móde. Preto pri nabehnutí inštalačného menu musíme zamedziť autobootu a podstrčiť kernelu o možnosť viac.

$ sudo virt-install --virt-type kvm --name arch --ram 1024 --disk /var/lib/libvirt/images/arch.qcow2,format=qcow2 --network network=default --console pty,target_type=serial --graphics none --os-type=linux --os-variant=archlinux --cdrom=/home/rehy/isos/archlinux-2020.10.01-x86_64.iso

Trik s bootom je nasledovný:

Nasledovná obrazovka by sa mala zjaviť približne na pol minúty (závisí od rýchlosti virtualizácie), nasledovaná štartovným výstupom systemd. Ak pretrváva dlhšie ako dve minúty, niekde sa stala chyba.

Loading boot/x86_64/vmlinuz-linux... ok Loading boot/intel-ucode.img...ok Loading boot/amd-ucode.img...ok Loading boot/x86_64/initramfs-linux.img...ok

Pri výzve sa prihlásime ako root a pokračujeme v inštalácii podľa výziev.

Literatúra