This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
navody:vps:kvm [2016/08/01 14:06] – Alpine: přidáno nastavení práv disk0.img datamole | navody:vps:kvm [Unknown date] (current) – removed - external edit (Unknown date) 127.0.0.1 | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Používání KVM a na vpsFree.cz | ||
- | Tato info stránka obsahuje návody pro zprovoznění KVM na Alpine Linux 3.4+, CentOS 7 a Debian 8. | ||
- | |||
- | Nejprve je potřeba ve vpsAdminu, v detailu vaší VPS, zapnout následující vlastnosti: | ||
- | |||
- | * Bridge – povolí vytvoření síťového bridge, do kterého následně připojíte KVM virtuály, | ||
- | * iptables – povolí použití iptables, které jsou potřeba pro nastavení IP maškarády, | ||
- | * KVM – povolí použití KVM (pro HW podporu virtualizace). | ||
- | |||
- | |||
- | ===== KVM na Alpine Linuxu | ||
- | |||
- | Nainstalujte potřebné balíčky (ip6tables je volitelný): | ||
- | |||
- | <code shell> | ||
- | apk update | ||
- | apk add qemu-system-x86_64 qemu-openrc qemu-img bridge iptables ip6tables | ||
- | </ | ||
- | |||
- | Nakonfigurujte bridge pro Qemu/KVM virtuály; vytvořte soubor /// | ||
- | |||
- | <code shell> | ||
- | auto br0 | ||
- | iface br0 inet static | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | </ | ||
- | |||
- | Jelikož OpenVZ poněkud neohrabaně přepisuje soubor /// | ||
- | |||
- | Povolte uživateli ve skupině //qemu// spravovat vytvořený bridge: | ||
- | |||
- | <code shell> | ||
- | echo "allow br0" > / | ||
- | chown root:qemu / | ||
- | chmod 0640 / | ||
- | </ | ||
- | |||
- | Nastavte IP maškarádu pro přístup Qemu/KVM virtuálů ven do veřejného Internetu. | ||
- | |||
- | Pokud už máte nakonfigurované iptables, tak jen přidejte pravidlo: | ||
- | |||
- | < | ||
- | iptables -t nat -A POSTROUTING -s 172.17.1.0/ | ||
- | </ | ||
- | |||
- | V opačném případě můžete postupovat např. podle odstavce [[# | ||
- | |||
- | |||
- | ==== Vytvoření a spuštění virtuálu ==== | ||
- | |||
- | V tomto návodu předpokládám použití [[https:// | ||
- | |||
- | Vytvoření nového virtálu spočívá pouze v přípravě image disku, vytvoření symlinku pro init skript a úpravě jednoduchého konfiguračního skriptu. Nechť se nový virtuál jmenuje třeba „myvirt.“ | ||
- | |||
- | Připravte raw image pro myvirt o potřebné velikosti: | ||
- | |||
- | <code shell> | ||
- | mkdir -p / | ||
- | qemu-img create -f raw / | ||
- | chown qemu:qemu / | ||
- | chmod 0600 / | ||
- | </ | ||
- | |||
- | Zkopírujte výchozí konfigurák / | ||
- | |||
- | <code shell> | ||
- | cd /etc/conf.d | ||
- | cp qemu qemu.jarvis | ||
- | vi qemu.jarvis | ||
- | </ | ||
- | |||
- | Zejména tedy přidejte připravený image: | ||
- | |||
- | <code shell> | ||
- | disk1_file="/ | ||
- | disk1_format=" | ||
- | </ | ||
- | |||
- | A zřejmě také instalační CD některé distribuce, které jste si předem stáhli: | ||
- | |||
- | <code shell> | ||
- | cdrom0_file="/ | ||
- | </ | ||
- | |||
- | Vytvořte symlink pro init skript a spusťte myvirt: | ||
- | |||
- | <code shell> | ||
- | cd /etc/init.d | ||
- | ln -s qemu qemu.myvirt | ||
- | |||
- | rc-service qemu.myvirt start | ||
- | </ | ||
- | |||
- | |||
- | ==== Nastavení iptables ==== | ||
- | |||
- | Pokud nepoužíváte žádný nástroj pro generování iptables pravidel (jako např. [[https:// | ||
- | |||
- | Stáhněte upravenou šablonu pravidel s přidanou maškarádou pro náš bridge do / | ||
- | |||
- | <code shell> | ||
- | rmdir / | ||
- | wget -O / | ||
- | </ | ||
- | |||
- | Upravte konfigurák / | ||
- | |||
- | <code shell> | ||
- | # / | ||
- | |||
- | IPTABLES_SAVE="/ | ||
- | # | ||
- | SAVE_ON_STOP=" | ||
- | IPFORWARD=" | ||
- | </ | ||
- | |||
- | …a / | ||
- | |||
- | <code shell> | ||
- | # / | ||
- | |||
- | IP6TABLES_SAVE="/ | ||
- | SAVE_RESTORE_OPTIONS=" | ||
- | SAVE_ON_STOP=" | ||
- | IPFORWARD=" | ||
- | </ | ||
- | |||
- | Spusťte iptables a ip6tables a přidejte je do runlevel boot: | ||
- | |||
- | <code shell> | ||
- | rc-service iptables start | ||
- | rc-service ip6tables start | ||
- | rc-update add iptables boot | ||
- | rc-update add ip6tables boot | ||
- | </ | ||
- | |||
- | ==== Kontakty ==== | ||
- | |||
- | * [[jakub@jirutka.cz|Jakub Jirůtka]] (na [[irc:// | ||
- | |||
- | ===== KVM na CentOS 7 ===== | ||
- | |||
- | <note warning> | ||
- | Tento návod platí pouze pro CentOS 7.1. Na CentOS 7.2 aktuálně nefunguje interní síť mezi VPS a VM. Použijte buď CentOS 7.1 nebo Debian 8, než bude tento problém vyřešen. | ||
- | </ | ||
- | |||
- | KVM používám prostřednictvím libvirt na aktualizovaném CentOS 7. | ||
- | |||
- | Doporučuju CentOS 7 plně aktualizovat, | ||
- | |||
- | <code shell> | ||
- | yum group install virtualization-host-environment | ||
- | yum install virt-manager xauth | ||
- | systemctl enable libvirtd | ||
- | systemctl disable firewalld | ||
- | reboot | ||
- | </ | ||
- | |||
- | ==== Vytvoření virtuálu pomocí virt-manager na straně serveru ==== | ||
- | |||
- | Motivace: Když pracujete na pomalém připojení (což O2 ADSL na vsi bezpochyby je), potřebujete minimalizovat datové toky přes váš pracovní počítač. Lokální virt-manager by stahoval minimálně kernel a initramdisk po relativně pomalém downloadu a typicky po ukrutně pomalém uploadu nahrával na hostitelský kontejner. | ||
- | |||
- | <code shell> | ||
- | ssh root@your-host-name -Y virt-manager | ||
- | </ | ||
- | |||
- | Na vzdáleně spuštěné instanci lze zahájit instalaci, ale nefunguje mi zobrazení instalátoru pomocí výchozího spice. Protože mi přijde krajně nepraktické přepínat libvirt na VNC, takže doporučuju pro instalaci a další používání spustit virt-manager lokálně a přidat cestu k serveru. | ||
- | |||
- | |||
- | ===== KVM na Debian 8 ===== | ||
- | |||
- | Tento návod je prováděn na Debianu 8. Měl by být plně funkční také na CentOS (s jinými příkazy viz. výše). Pokoušel jsem se KVM rozchodit i na Ubuntu 14.04, ale tam bohužel marně. | ||
- | |||
- | Pokud používáte Windows, je potřeba nainstalovat a zapnout XMing (pokud budete chtít minimálně virtuál nainstalovat a nastavit skrz grafické rozhraní jako já). Poté zapneme putty (nezapomeňte si zapnout XMing a zaškrtnout „Enable X11 forwarding“) a můžeme kouzlit. | ||
- | |||
- | Začneme klasikou: | ||
- | |||
- | <code shell> | ||
- | apt-get update | ||
- | apt-get upgrade | ||
- | </ | ||
- | |||
- | Poté nainstalujeme libvirt knihovnu: | ||
- | <code shell> | ||
- | install qemu-kvm libvirt-bin | ||
- | apt-get install virt-manager | ||
- | </ | ||
- | Celkově mají tyto dva balíčky asi 320 MB. Dále je potřeba si někam na disk stáhnout image distribuce, kterou chcete do virtuálu nainstalovat. Já jsem instaloval Ubuntu server 14.04. Vyberte si adresář, do kterého chcete image stáhnout, a pomocí '' | ||
- | <code shell> | ||
- | cd /home | ||
- | wget http:// | ||
- | </ | ||
- | Zapněte virt-managera. | ||
- | <code shell> | ||
- | virt-manager | ||
- | </ | ||
- | Díky XMingu můžete teď na dálku z Windows nastavit a spustit instalaci virtuálního serveru uvnitř své VPS. Upozorňuji, | ||
- | |||
- | |||
- | ==== Kontakty ==== | ||
- | |||
- | * [[: |