Differences

This shows you the differences between two versions of the page.

Link to this comparison view

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/​
  
  • project/kvm.1491308257.txt.gz
  • Last modified: 2017/04/04 14:17
  • by dron