====== Virtualizace pomocí libvirt ====== Libvirt je knihovna zastřešující různé virtualizační technologie a vytvářející jednotné rozhraní pro ovládání virtuálních strojů na různých virtualizačních technologiích a to i ve větším množství. K nainstalování všech součástí potřebných pro použití virtualizace zadejte yum grouinstall Virtualization Libvirt v zásadě umí "pouze" sestavit správné parametry pro daný virtualizační systém. Např. v případě použití qemu se po nastavení virtuálního stroje tento spustí jako qemu proces se všemi potřebnými parametry. Stejně tak lze virtuální stroj pustit přímo pomocí qemu z příkadové řádky. Knohvna libvirt tedy není nezbytně nutná, nicméně při větším množství spravovaných strojů a technologií se již vyplatí ji použít. ===== Grafické prostředí ===== Virtuální stroje lze pohodlně zakládat a spravovat z aplikace virt-manager virt-manager umí spravovat lokální i vzdálené virtuální stroje. {{:navody:fedora-virt-manager.png?800|}} ===== Ovládání z příkazové řádky ===== Pro vytváření a správu virtuálních strojů slouží skupina nástrojů postavných nad knihovnou libvirt. ==== Jak vytvořit virtuál z existující instalace ==== Tento postup předpokládá použití QEMU a KVM. Před vytvořením virtuálního stroje musíme překonvertovat stávající OS na virtuální disk. To můžeme udělat buď pomocí příkazu //dd//, čímž se ovšem vytvoří soubor odpovídající veliskotí veliskosti disku nebo pomocí tzv. sparse souboru, kdy soubor sice zdánlivě má velikost odpovídající disku, nicméně zabýrá pouze tolik místa kolik v něm je skutečně dat. (Tuto vlastnost podporují jen některé souborové systému jako ext3 a ext4.) Vytvoříme sparse soubor o velikosti obrazu disku cd /var/lib/libvirt/images qemu-img create prvni.raw 5GB Připojíme daný obraz jako loop zařízení losetup /dev/loop0 prvni.raw Rozdělíme jako běžný disk príkazem fdisk /dev/loop0 Změny v oddílech na tomto disku načteme a necháme jádro vytvořit zařízení pro oddíly na tomto virtálním disku kpartx -a /dev/loop0 Tím se vytvoří zařízení v /dev/mapper/ pro oddíly z /dev/loop0 jako je /dev/mapper/loop0p1 atd. Nyní můžeme připojit oddíl z virtuálního disku mkdir /mnt/prvni mount /dev/mapper/loop0p1 /mnt/prvni A překopírujeme do něj obsah existujícího OS. **Po dokončení kopírování připojíme do stromu v /mnt/prvni sys, proc a dev, upravíme konfiguraci grubu a fstab, provedeme chroot a znovusestavení initramfs a konfigurace grubu.** (Tyto kroky nejsou triviální a vyžadují pokročilé znalosti.) Odpojení obrazu umount /mnt/prvni kpartx -d /dev/loop0 losetup -d /dev/loop0 Pro definici virtuálních strojů se využívají XML soubory. Pro založeního nového stroje použijeme např. virt-install -n prvni -r 512 --vcpu=2 --import --os-type=linux \ --os-variant=fedora16 --disk /var/lib/libvirt/images/prvni.raw \ -w bridge=br0,model=e1000 --serial pty --graphics vnc Pro funkci stroje je důležité síťové připojení. Zde je realizováno tzv. síťovým bridgem, který je pořeba nastavit v hostujícím OS brctl addbr br0 eth0 Ve firewallu nezapomeňte povolit průchod bridgovaných paketů iptables -I FORWARD -m physdev --physdev-is-bridged -j ACCEPT pro trvalé použití, pak musíte pravidlo přidat do ///etc/sysconfig/iptables//. ==== Správa virtuálního stroje ==== Virtuální stroj lze poté ovládat pomocí //virsh// virsh list --all virsh start prvni virsh shutdown prvni Pro násilné ukončení běhu stroje virsh destroy prvni Editaci parametrů v XML virsh edit prvni :!: Nikdy needitujte přímo soubory XML na disku v adresáři /etc/libvirt. Odstranění stroje virsh undefine prvni ==== Vzdálené připojení k virtuálu ==== Na virtuální konzoli stroje se pak lze dívat i vzdáleně příkazem virt-viewer -c qemu+ssh://root@/system prvni na stroji ze kterého chcete virtuální konzoli spustit samozřejmě musí být nainstalován virt-viewer. Na virtulačním serveru nemusí být žádné grafické rozhraní.