Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
project:kvm [2017/04/04 14:17] dron |
project:kvm [2017/08/08 20:24] (current) over23 [virsh] configure virsh console |
||
---|---|---|---|
Line 5: | Line 5: | ||
KVM je oblíbený hypervisor a je používaný ve velkém množství virtualizačních produktů (oVirt/RHEV, Proxmox, OpenStack,...). Pro naše použití nám bude stačit KVM s minimem nádstaveb nad ním. Pro interaktivní manipulaci s virtuály se spokojíme se produktem ''virt-manager'', pro interakci z příkazové řádky postačí ''virsh''. | KVM je oblíbený hypervisor a je používaný ve velkém množství virtualizačních produktů (oVirt/RHEV, Proxmox, OpenStack,...). Pro naše použití nám bude stačit KVM s minimem nádstaveb nad ním. Pro interaktivní manipulaci s virtuály se spokojíme se produktem ''virt-manager'', pro interakci z příkazové řádky postačí ''virsh''. | ||
- | Pro spokojený běh virtuálů je potřeba jim poskytnout nějaké zdroje. Zase to uděláme maximálně jednoduše - síť bude realizována probridgeováním rozhranní virtuálů s fyzickým rozhraním hostitelského serveru. Diskový prostor budeme alokovat z vyhrazené volume group. | + | Pro spokojený běh virtuálů je potřeba jim poskytnout nějaké zdroje. Zase to uděláme maximálně jednoduše - síť bude realizována probridgeováním rozhranní virtuálů s fyzickým rozhraním hostitelského serveru. Diskový prostor budeme alokovat z vyhrazené volume group (podporovaných úložišť je samozřejmě více). |
===== Disk ===== | ===== Disk ===== | ||
Line 16: | Line 16: | ||
* Vytvoření volume group na tomto physical volume | * Vytvoření volume group na tomto physical volume | ||
- | ==== Síť ==== | + | Pokud je ''/dev/sda3'' volný, neobsazený, právě vytvořený oddíl, pak jsou druhé dva kroky |
+ | |||
+ | <code bash> | ||
+ | pvcreate /dev/sda3 | ||
+ | vgcreate vmdata /dev/sda3 | ||
+ | </code> | ||
+ | |||
+ | ===== Síť ===== | ||
Uvnitř hosta to bude vypadat asi takto: | Uvnitř hosta to bude vypadat asi takto: | ||
Line 23: | Line 30: | ||
+ | ===== Instalace ===== | ||
+ | |||
+ | Popisovaná instalace je na distribuci CentOS7 nainstalované z minimal ISO, informace jsou ale imho dost obecné, takže na jiných distribucích to bude velmi podobné. | ||
+ | |||
+ | Vlastní instalace KVM (závislostí je celkem dost...). | ||
+ | |||
+ | <code bash> | ||
+ | yum install libvirt-daemon-kvm qemu-kvm qemu-kvm-tools | ||
+ | </code> | ||
+ | |||
+ | Zkontrolujeme, že se libvird bude spouštět po startu... | ||
+ | |||
+ | <code bash> | ||
+ | systemctl is-enabled libvirtd | ||
+ | </code> | ||
+ | |||
+ | ...a spustíme ho. | ||
+ | |||
+ | <code bash> | ||
+ | service libvirtd start | ||
+ | </code> | ||
+ | |||
+ | Instalace managemt utilitky. | ||
+ | |||
+ | <code bash> | ||
+ | yum install virt-manager dejavu-lgc-sans-fonts xorg-x11-xauth | ||
+ | </code> | ||
+ | |||
+ | Pozor, jedná se o GUI nástroj a X-windows na serveru nebudeme zbytečně provozovat, takže její spouštění bude následně probíhat pomocí tunelování X-windows session přes SSH. Proto instalujeme i xauth (v minimal verzi se neinstaluje) a také nějaké fonty. | ||
+ | |||
+ | Zdá se, že od nějaké verze CentOS7 (7.3?) je v konfiguraci sshd defaultně tunelování X11 zakázáno. Povolíme... | ||
+ | |||
+ | <code bash> | ||
+ | nano /etc/ssh/sshd_config | ||
+ | </code> | ||
+ | |||
+ | <file> | ||
+ | ... | ||
+ | X11Forwarding yes | ||
+ | ... | ||
+ | </file> | ||
+ | |||
+ | ...a otočíme sshd. | ||
+ | |||
+ | <code bash> | ||
+ | service sshd restart | ||
+ | </code> | ||
+ | |||
+ | Pokud polezete na server z Linuxu, doporučuji použít dobrodiní ''config'' souboru ssh. Do souboru ''~/.ssh/config'' doplníme něco jako | ||
+ | |||
+ | <file> | ||
+ | Host wintermute | ||
+ | #kvm server, labka | ||
+ | HostName 1.2.3.4 | ||
+ | User root | ||
+ | ForwardAgent yes | ||
+ | IdentityFile ~/.ssh/id_rsa | ||
+ | </file> | ||
+ | |||
+ | pak stačí zadat ''ssh wintermute'' a je hotovo. Jinak je potřeba používat o něco delší ''ssh -X root@1.2.3.4''. | ||
+ | |||
+ | Pokud polezete z windows, je potřeba mít nainstalovaný X-windows server. TODO | ||
+ | |||
+ | ===== Konfigurace ===== | ||
+ | |||
+ | Virt manager se spustí takto: | ||
+ | |||
+ | <code bash> | ||
+ | virt-manager | ||
+ | </code> | ||
+ | |||
+ | Pokud správně funguje X11 forwarding, tak se otevře grafické okno managera. Pro základní konfiguraci je potřeba rozkliknout defaultní konexi (z jednoho managera lze spravovat více hostů) QEMU/KVM. Otevře se okno s ''QEMU/KVM Connection Details''. Postupně nastavíme | ||
+ | |||
+ | ==== Storage ==== | ||
+ | |||
+ | Defaultní úložiště pro diskové image virtuálů je filesystém. Přidáme naši volume group - klikneme na ''+ Add Pool'', zvolíme název a vybereme ''logical: LVM Volume Group''. ''Target Path'' bude naše volume group vmdata, vyplníme cestu k blokovému zařízení - ''/dev/vmdata''. To je zde vše. Jen zkontrolujeme, že pool vmdata existuje, je Active a spouští se po startu (Autostart On Boot). | ||
+ | |||
+ | Další úložiště doporučuju mít normálně ve filesystému a používat ho pro ISO image instalačních CDček - klikneme na ''+ Add Pool'', zvolíme název a vybereme ''dir: Filesystem Directory''. Doporučuju něco jako ''/iso''. | ||
+ | |||
+ | ==== Network Interfaces ==== | ||
+ | |||
+ | Tato operace je poněkud delikátní, pokud je server někde daleko a nemáte k němu přístup, může to být napínavé :-) Jsou dvě možnosti. Připravit si bridge dopředu, nebo si jej nakliknout z virt-manageru. | ||
+ | |||
+ | Z virt-manageru se to dělá takto. | ||
+ | |||
+ | Klikneme na ''+ Add Interface'', vybereme ''Interface Type: Bridge'', pojmenujeme jej ''name br1''. Teď pozor, ať si neuřízneme větev na které sedíme - ''Start mode: none'' a ''Activate now'' nezaškrtávat! Vybereme fyzický interface pro probridgeování (v mém případě enp3s0) a v nastaven ''IP settings:'' by se měla zobrazit volba ''Copy configuration from enp3s0'' a tu nebudeme měnit. | ||
+ | |||
+ | Po potvrzení se připraví konfigurace bridge, jen se neaplikuje. To lze zkontrolovat v klasickém umístění v ''/etc/sysconfig/network-scripts/ifcfg-br1'' a ''/etc/sysconfig/network-scripts/ifcfg-enp3s0''. Tamtéž bych provedl ruční změnu a nastavil v obou případech ''ONBOOT="yes"'' a odvážně otočil network - ''service network restart''. | ||
+ | |||
+ | ===== Používání ===== | ||
+ | DOTAZY: | ||
+ | * jak konfigurujeme domeny guestum? | ||
+ | * jak pridelujeme IPv4/IPv6 guestum? | ||
+ | * jak budem guesty pojmenovavat [navrhuju format UZIVATEL_UCEL_DISTRO_PUBLIC/PERSONAL_PROD/TEST] | ||
- | --- | ||
TODO | TODO | ||
- | ## server | + | acpid, start virtual server on host bootup |
- | [root@wintermute ~]# systemctl list-unit-files | grep virt | + | |
- | [root@wintermute ~]# systemctl status libvirtd | + | ==== virsh ==== |
- | [root@wintermute ~]# systemctl restart libvirtd | + | |
- | ## client | + | Mocná commandline utilitka. Pro běžné používání asi stačí |
- | pavouk@SemioTex ~> ssh muter # root and -X forwarding | + | |
+ | <code bash> | ||
+ | virsh list | ||
+ | virsh console <číslo> | ||
+ | virsh shutdown <číslo> | ||
+ | virsh destroy <číslo> | ||
+ | virsh start <jméno> | ||
+ | </code> | ||
- | * virt-manager - gui | + | === Konfigure VIRSH to to be usable over VIRS CONSOLE # === |
- | * virsh <-- cli manager virtualek | + | * https://trick77.com/enable-kvm-guest-console-access-ubuntu-virsh-console-command/ |
- | * service virtd | + | |
- | * pridelit volume grypu | + | |
- | * lvs | + | |
- | * umount /vm # zbavil jsem se mount pointu /vm | + | |
- | * lvremove /dev/cl_wintermute/vm # zbavil jsem se mount pointu /vm | + | |
- | * vgs ## vylistuj lvm | + | |
- | * pvresize | + | |
- | * vytvorena volume group [/dev/vmdata] | + | |
- | * storage: virt-manager na forwardnutejch xkach z serveru | + | |
- | * create storage pool -> vg_data : use logical: LVM Volume Group | + | |
- | * create storage pool -> | + | |
- | * source: /dev/vmdata | + | |
- | * a target path: empty | + | |
- | * ## muzes si pripravit do rootu /vm_iso a namountovat jej, coz je pak zdrojak | + | |
- | * network interfaces: | + | |
- | * na serveru mtui | + | |
- | * [v pripade ze jsem to posral: /etc/syconfig/network-scripts/ifconfig-en2: device=eno1, onboot=yes] | + | |
- | * ve virt-manager | + | |
- | * bridge -> br1 | + | |
- | * on boot | + | |
- | * active now = ne | + | |
- | * eno1 briguju | + | |
- | * ##na serveru nmtui-edit | + | |
- | * service network restart [kdyz spadne virt-manager, rychle reboot, kdyz mozne kvuli logu] | + | |
- | * create virtual network : naty ted nepotrebuju | + | |
- | * install virtual machine: | + | |
- | nainstallu si na virtualku acpi-daemon | + | |
- | start virtual server on host bootup [zafunguj po startu serveru] | + | |
- | | + | |
===== Links ===== | ===== Links ===== | ||
* [[https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Virtualization_Administration_Guide/index.html | * [[https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Virtualization_Administration_Guide/index.html | ||
]] | ]] | ||
+ | * configure XAUTH to work over sudo for virt-manager : http://jianmingli.com/wp/?p=724 | ||
+ | * [[https://libvirt.org/aclpolkit.html| libvirt over policy kit ]] | ||
+ | * https://goldmann.pl/blog/2012/12/03/configuring-polkit-in-fedora-18-to-access-virt-manager/ | ||