This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionLast revisionBoth sides next revision | ||
navody:vps:kvm [2016/07/18 23:16] – přesunutí společných částí do úvodu datamole | navody:vps:kvm [2016/10/03 23:24] – Přidána doporučení k image datamole | ||
---|---|---|---|
Line 1: | Line 1: | ||
====== Používání KVM a na vpsFree.cz | ====== Používání KVM a na vpsFree.cz | ||
- | Tato info stránka obsahuje | + | Tato info stránka obsahuje |
Nejprve je potřeba ve vpsAdminu, v detailu vaší VPS, zapnout následující vlastnosti: | Nejprve je potřeba ve vpsAdminu, v detailu vaší VPS, zapnout následující vlastnosti: | ||
Line 9: | Line 9: | ||
* KVM – povolí použití KVM (pro HW podporu virtualizace). | * KVM – povolí použití KVM (pro HW podporu virtualizace). | ||
+ | Na vpsFree není jiná možnost než mít disky pro KVM virtuály v souborech (images). Doporučujeme k tomu vytvořit nový (sub)dataset, | ||
- | ====== KVM na CentOS 7 | + | |
+ | ===== 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 / | ||
+ | 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 / | ||
+ | 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> | <note warning> | ||
Line 28: | Line 163: | ||
</ | </ | ||
- | ===== Vytvoření virtuálu pomocí virt-manager na straně serveru | + | ==== 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. | 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. | ||
Line 39: | Line 174: | ||
- | ====== KVM na Debian 8 | + | ===== 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ě. | 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ě. | ||
Line 54: | Line 189: | ||
Poté nainstalujeme libvirt knihovnu: | Poté nainstalujeme libvirt knihovnu: | ||
<code shell> | <code shell> | ||
- | install qemu-kvm libvirt-bin | + | apt-get |
apt-get install virt-manager | apt-get install virt-manager | ||
</ | </ | ||
Line 69: | Line 204: | ||
- | ===== Kontakty | + | ==== Kontakty ==== |
* [[: | * [[: |