Portál AbcLinuxu, 20. dubna 2024 05:25

Hry s KVM 4: Nezabudli sme niečo?

11.12.2019 13:37 | Přečteno: 1798× | Bežná práca s Desktopom | Výběrový blog | poslední úprava: 5.12.2019 21:30

Je rok 2019, a východzia inštalácia našej farmy stále dokáže pracovať len s VM ktorá má Legacy BIOS. Poďme to teda napraviť.
Je len škoda že správcovia balíčku virt-manager nepridali náväznosť v 64bit metabalíku aj pre balík ovmf ktorý obsahuje firmware použiteľný na spúšťanie virtuálok v móde UEFI.

Potrebné nástroje:

Virtuálna farma z predchádzajúcich zápiskov.
Balík ovmf obsahujúci UEFI Firmware pre x86 VM.
Balík qemu obsahujúci náväznosti pre ďalšie architektúry ktoré dokáže qemu virtualizovať alebo emulovať. Inštalačné médium 64bit OS ktoré podporuje UEFI mód, napr. už vzhliadnuté FreeBSD 64bit.
Príkaz systemd-resolve pre povolenie DNS na virtuálnom sieťovom rozhraní.

Kontrola stavu:

Naštartujeme sprievodcu vytvorenia novej VM, a v poslednom kroku zaškrtneme box ktorý sme si pred tým nevšímali:

Tým sa nám otvoria ďalšie nastavenia. V nich máme upozornenie pri Firmware že UEFI nie je dostupné:

Takže môžeme zrušiť inštaláciu, a napraviť to.

Inštalácia

Inštaáciu vykonáme tradičným spôsobom:
golisp@WEB:~$ sudo apt install ovmf -y
Tým si zabezpečíme že si môžeme vybrať voľbu pre UEFI Firmware pred inštaláciou danej VM. A presne toto je aj vidieť na následovnom obrázku:

Následne môžeme potvrdiť nastavenie volieb, a začať s inštaláciou. Tú rozoberať nebudem. Ale presne takto som i simuloval niektoré veci v minulých zápiskoch aby som si overil či to jednoducho zreprodukujem.

Pridanie doplnkových architektúr pre QEMU

Ako už bolo naznačené, tak QEMU dokáže pracovať s viacerými platformami, nielen s klasickou x86/64. Inštalácia tejto podpory je veľmi jednoduchá:
golisp@WEB:~$ sudo apt install qemu
[sudo] password for golisp: 
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following additional packages will be installed:
  binfmt-support qemu-slof qemu-system qemu-system-arm qemu-system-mips qemu-system-misc qemu-system-ppc qemu-system-s390x qemu-system-sparc
  qemu-user qemu-user-binfmt
Suggested packages:
  qemu-user-static samba vde2 qemu-efi openbios-ppc openhackware openbios-sparc
The following NEW packages will be installed:
  binfmt-support qemu qemu-slof qemu-system qemu-system-arm qemu-system-mips qemu-system-misc qemu-system-ppc qemu-system-s390x
  qemu-system-sparc qemu-user qemu-user-binfmt
0 upgraded, 12 newly installed, 0 to remove and 6 not upgraded.
Všimnime si odporúčané balíčky (Suggested packages), napríklad openbios-ppc alebo openbios-sparc. Kto by chcel na X86/64 emulovať starý Apple, alebo SPARC, tak si to môže doinštalovať. Takáto emulácia cudzej platformy je obvykle oveľa pomalšia ako virtualizácia alebo prirodzený beh natívnej binárky. Ale niekedy sa hodí. Ak chce človek vytvoriť balíček/binárku pre napríklad Raspberry PI, ale počítač má 20x rýchlejší ako samotné Raspberry PI a nechce sa mu jednorázovo hrať s špecializovaným prekladom programov cez cross platform.

Povolenie DNS na virtuálnom sieťovom rozhraní

Virt Manager používa pri východzej voľbe virtuálne sieťovanie ktoré je schované za NAT a tak nie sú virtuálne počítače priamo viditeľné z vonku. Toto sa prejavuje aj mierne nezvyklom nastavenií služby Doménového Názvového Servera DNS. Samotné DNS je síce dostupné, ale informácie o ňom dostávajú len bežiace Virtuálne Počítače. To je trochu škoda ak ich chce človek spravovať cez napríklad službu ssh. Buď bude vždy vypisovať IP adresu, alebo si ten DNS server pridá aj na Hypervízore, ktorý je v tomto prípade bežnou pracovnou stanicou.

Takže poďme si to skontrolovať, a poprípade aktivovať:
Pozrieme si nastavenie resolvera:

golisp@web:~$ cat /etc/resolv.conf
# ...

nameserver 127.0.0.53
options edns0
Vidíme že máme definovaný resolver na špeciálnej IP adrese z rozsahu 127.0.0.0/8 ktorý je pre loopback. Teda sieťová komunikácia na IP adresy z rozsahu 127.0.0.0 - 127.255.255.255 nikdy neopustí počítač, a vždy bude smerovaná na lokálne služby. Poďme si teda pozrieť čo u nás počúva na porte 53 (domain):
golisp@web:~$ sudo netstat -n -a -p | grep ":53 "
tcp        0      0 192.168.122.1:53        0.0.0.0:*               LISTEN      1446/dnsmasq        
tcp        0      0 127.0.0.53:53           0.0.0.0:*               LISTEN      934/systemd-resolved
udp        0      0 192.168.122.1:53        0.0.0.0:*                           1446/dnsmasq        
udp        0      0 127.0.0.53:53           0.0.0.0:*                           934/systemd-resolved
golisp@web:~$ ip a s virbr0
4: virbr0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 52:54:00:d5:f5:08 brd ff:ff:ff:ff:ff:ff
    inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
       valid_lft forever preferred_lft forever
Vidíme že na protokoloch TCP a UDP máme načúvajúce dva programy. Jeden je dnsmasq pre našu virtuálnu farmičku, a druhým je služba systemd-resolved. Ale resolver je nakonfigurovaný len na použitie toho systémového. Poďme si teda overiť, či nám systemd berie do úvahy DNS aj pre rozhranie virbr0
golisp@web:~$ systemd-resolve --status virbr0
Link 4 (virbr0)
      Current Scopes: none
       LLMNR setting: yes
MulticastDNS setting: no
      DNSSEC setting: no
    DNSSEC supported: no
Nuž, nemá to nakonfigurované. Tak to poďme zapnúť a overiť:
golisp@web:~$ systemd-resolve --interface=virbr0 --set-dns=192.168.122.1 --set-domain=vm 
golisp@web:~$ systemd-resolve --status virbr0
Link 4 (virbr0)
      Current Scopes: DNS
       LLMNR setting: yes
MulticastDNS setting: no
      DNSSEC setting: no
    DNSSEC supported: no
         DNS Servers: 192.168.122.1
          DNS Domain: vm

golisp@web:~$ nslookup Ubuntu-1910-NAS-UEFI
Server:         127.0.0.53
Address:        127.0.0.53#53

Non-authoritative answer:
Name:   Ubuntu-1910-NAS-UEFI.vm
Address: 192.168.122.181
Vidíme, že nám už aj z Hypervízora dokázalo previesť meno VM na IP adresu aby sme s ňou mohli komunikovať po (i keď len vnútornej) sieti.
Tu by sa oplatilo podotknúť, že z čias minulých molo možné použiť workaround s /etc/resolvconf/resolv.conf.d/head kde sa človek mohol predbehnúť s definovaním DNS servera ktorý pridal ako prvá položka do /etc/resolv.conf a. Ale časy sa menia.

Dúfam že v ďalších verziách už toto bude opravené a nebude treba pri každom štarte spúšťať posledný príkaz. I keď tu by sa malo dať polemizovať. Hypervízor by nemal byť aj bežným desktopom, takže ...

Pár dodatočných slov ku tejto príprave

Takýchto doplnkových balíkov je viac. Človek môže nainštalovať napríklad podporu virtuálneho TPM, alebo si môže nainštalovať nainštalovať podporu pre taký akoby BIOS používaný na iných architektúrach. Napríklad pre 64bit ARM qemu-efi-aarch64 ktorý to kvôli chýbajúcej náväznosti neponúklo. ako sa hovorí: príkazy apt search hocičo alebo synaptic-pkexec sú našimi kamarátmi.

To je pre dnes všetko. V ďalších dieloch si rozoberieme ako sa rozhodnúť pre správnu voľbu Tenkého Virtuálneho Servera ktorý bude poskytovať zdieľanie diskov, aj s modernými technológiami.

       

Hodnocení: 83 %

        špatnédobré        

Obrázky

Hry s KVM 4: Nezabudli sme niečo?, obrázek 1 Hry s KVM 4: Nezabudli sme niečo?, obrázek 2 Hry s KVM 4: Nezabudli sme niečo?, obrázek 3

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

Komentáře

Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře. , Tisk

Vložit další komentář

vencour avatar 11.12.2019 14:09 vencour | skóre: 56 | blog: Tady je Vencourovo | Praha+západní Čechy
Rozbalit Rozbalit vše Re: Hry s KVM 4: Nezabudli sme niečo?
Odpovědět | Sbalit | Link | Blokovat | Admin
Dík za nakopnutí, abych si zjistil, co to vlastně kvmko umí ...
$ qemu-system-x86_64 -machine help
Supported machines are:
pc Standard PC (i440FX + PIIX, 1996) (alias of pc-i440fx-4.0)
pc-i440fx-4.0 Standard PC (i440FX + PIIX, 1996) (default)
pc-i440fx-3.1 Standard PC (i440FX + PIIX, 1996)
pc-i440fx-3.0 Standard PC (i440FX + PIIX, 1996)
pc-i440fx-2.9 Standard PC (i440FX + PIIX, 1996)
pc-i440fx-2.8 Standard PC (i440FX + PIIX, 1996)
pc-i440fx-2.7 Standard PC (i440FX + PIIX, 1996)
pc-i440fx-2.6 Standard PC (i440FX + PIIX, 1996)
pc-i440fx-2.5 Standard PC (i440FX + PIIX, 1996)
pc-i440fx-2.4 Standard PC (i440FX + PIIX, 1996)
pc-i440fx-2.3 Standard PC (i440FX + PIIX, 1996)
pc-i440fx-2.2 Standard PC (i440FX + PIIX, 1996)
pc-i440fx-2.12 Standard PC (i440FX + PIIX, 1996)
pc-i440fx-2.11 Standard PC (i440FX + PIIX, 1996)
pc-i440fx-2.10 Standard PC (i440FX + PIIX, 1996)
pc-i440fx-2.1 Standard PC (i440FX + PIIX, 1996)
pc-i440fx-2.0 Standard PC (i440FX + PIIX, 1996)
pc-i440fx-1.7 Standard PC (i440FX + PIIX, 1996)
pc-i440fx-1.6 Standard PC (i440FX + PIIX, 1996)
pc-i440fx-1.5 Standard PC (i440FX + PIIX, 1996)
pc-i440fx-1.4 Standard PC (i440FX + PIIX, 1996)
pc-1.3 Standard PC (i440FX + PIIX, 1996)
pc-1.2 Standard PC (i440FX + PIIX, 1996)
pc-1.1 Standard PC (i440FX + PIIX, 1996)
pc-1.0 Standard PC (i440FX + PIIX, 1996)
pc-0.15 Standard PC (i440FX + PIIX, 1996) (deprecated)
pc-0.14 Standard PC (i440FX + PIIX, 1996) (deprecated)
pc-0.13 Standard PC (i440FX + PIIX, 1996) (deprecated)
pc-0.12 Standard PC (i440FX + PIIX, 1996) (deprecated)
q35 Standard PC (Q35 + ICH9, 2009) (alias of pc-q35-4.0.1)
pc-q35-4.0.1 Standard PC (Q35 + ICH9, 2009)
pc-q35-4.0 Standard PC (Q35 + ICH9, 2009)
pc-q35-3.1 Standard PC (Q35 + ICH9, 2009)
pc-q35-3.0 Standard PC (Q35 + ICH9, 2009)
pc-q35-2.9 Standard PC (Q35 + ICH9, 2009)
pc-q35-2.8 Standard PC (Q35 + ICH9, 2009)
pc-q35-2.7 Standard PC (Q35 + ICH9, 2009)
pc-q35-2.6 Standard PC (Q35 + ICH9, 2009)
pc-q35-2.5 Standard PC (Q35 + ICH9, 2009)
pc-q35-2.4 Standard PC (Q35 + ICH9, 2009)
pc-q35-2.12 Standard PC (Q35 + ICH9, 2009)
pc-q35-2.11 Standard PC (Q35 + ICH9, 2009)
pc-q35-2.10 Standard PC (Q35 + ICH9, 2009)
isapc ISA-only PC
none empty machine

$ qemu-x86_64 -cpu help
Available CPUs:
x86 486
x86 Broadwell Intel Core Processor (Broadwell)
x86 Broadwell-IBRS Intel Core Processor (Broadwell, IBRS)
x86 Broadwell-noTSX Intel Core Processor (Broadwell, no TSX)
x86 Broadwell-noTSX-IBRS Intel Core Processor (Broadwell, no TSX, IBRS)
x86 Cascadelake-Server Intel Xeon Processor (Cascadelake)
x86 Conroe Intel Celeron_4x0 (Conroe/Merom Class Core 2)
x86 EPYC AMD EPYC Processor
x86 EPYC-IBPB AMD EPYC Processor (with IBPB)
x86 Haswell Intel Core Processor (Haswell)
x86 Haswell-IBRS Intel Core Processor (Haswell, IBRS)
x86 Haswell-noTSX Intel Core Processor (Haswell, no TSX)
x86 Haswell-noTSX-IBRS Intel Core Processor (Haswell, no TSX, IBRS)
x86 Icelake-Client Intel Core Processor (Icelake)
x86 Icelake-Server Intel Xeon Processor (Icelake)
x86 IvyBridge Intel Xeon E3-12xx v2 (Ivy Bridge)
x86 IvyBridge-IBRS Intel Xeon E3-12xx v2 (Ivy Bridge, IBRS)
x86 KnightsMill Intel Xeon Phi Processor (Knights Mill)
x86 Nehalem Intel Core i7 9xx (Nehalem Class Core i7)
x86 Nehalem-IBRS Intel Core i7 9xx (Nehalem Core i7, IBRS update)
x86 Opteron_G1 AMD Opteron 240 (Gen 1 Class Opteron)
x86 Opteron_G2 AMD Opteron 22xx (Gen 2 Class Opteron)
x86 Opteron_G3 AMD Opteron 23xx (Gen 3 Class Opteron)
x86 Opteron_G4 AMD Opteron 62xx class CPU
x86 Opteron_G5 AMD Opteron 63xx class CPU
x86 Penryn Intel Core 2 Duo P9xxx (Penryn Class Core 2)
x86 SandyBridge Intel Xeon E312xx (Sandy Bridge)
x86 SandyBridge-IBRS Intel Xeon E312xx (Sandy Bridge, IBRS update)
x86 Skylake-Client Intel Core Processor (Skylake)
x86 Skylake-Client-IBRS Intel Core Processor (Skylake, IBRS)
x86 Skylake-Server Intel Xeon Processor (Skylake)
x86 Skylake-Server-IBRS Intel Xeon Processor (Skylake, IBRS)
x86 Westmere Westmere E56xx/L56xx/X56xx (Nehalem-C)
x86 Westmere-IBRS Westmere E56xx/L56xx/X56xx (IBRS update)
x86 athlon QEMU Virtual CPU version 2.5+
x86 core2duo Intel(R) Core(TM)2 Duo CPU T7700 @ 2.40GHz
x86 coreduo Genuine Intel(R) CPU T2600 @ 2.16GHz
x86 kvm32 Common 32-bit KVM processor
x86 kvm64 Common KVM processor
x86 n270 Intel(R) Atom(TM) CPU N270 @ 1.60GHz
x86 pentium
x86 pentium2
x86 pentium3
x86 phenom AMD Phenom(tm) 9550 Quad-Core Processor
x86 qemu32 QEMU Virtual CPU version 2.5+
x86 qemu64 QEMU Virtual CPU version 2.5+
x86 base base CPU model type with no features enabled
x86 max Enables all features supported by the accelerator in the current host
Kdyby někdo pátral po parametrech z příkazového řádku.
Ty nejhlubší objevy nečekají nutně za příští hvězdou. Jsou uvnitř nás utkány do vláken, která nás spojují, nás všechny.
13.12.2019 10:43 Kundera
Rozbalit Rozbalit vše Re: Hry s KVM 4: Nezabudli sme niečo?
Odpovědět | Sbalit | Link | Blokovat | Admin
čaute, já sa volám Golis Peter, čurák mám dlouhý asi pol meter
Tímhle jsi dokázal, že je to pravda. Respekt, kámo. Tyhle články měly vyjít jako seriál na hlavní stránce. Naučil jsem se z nich pár pěkných triků, díky!
13.12.2019 13:17 Peter Golis | skóre: 64 | blog: Bežné záležitosti | Bratislava
Rozbalit Rozbalit vše Re: Hry s KVM 4: Nezabudli sme niečo?
Popros9m nabudúce bez toho "oteploucha".

Kto chce, nech zahlasuje za prepis do článkov. V blogoch som sa napríklad nehral na grafiku (veľkosti okien sú občas ustrelené, nemajú rámiky, a o preklepoch ani nehovorím), ale to sa dá zmeniť po revízii šefredaktorom.
19.10.2023 09:17 OKBet
Rozbalit Rozbalit vše Re: Hry s KVM 4: Nezabudli sme niečo?
Odpovědět | Sbalit | Link | Blokovat | Admin
Great article this is really informative and innovative online casino philippines

Založit nové vláknoNahoru

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.