Portál AbcLinuxu, 8. května 2025 11:20

Dotaz: QEMU/KVM -cpu,kvm=off

16.8.2017 10:53 bigBRAMBOR | skóre: 37
QEMU/KVM -cpu,kvm=off
Přečteno: 1051×
Odpovědět | Admin
Ahoj, mám v qemu/kvm virtuální stroj, a chci na něm rozeběhnout licenční manager pro solidworks. To ale končí chybou, virtuální stroj není podporován. Od oficiální podpory jsem dostal akorát link, kde se to řešilo - řešením snad mělo být přidání parametru -cpu,kvm=off při spuštení VM. VM mám ale definovanou v XML, nepouštím jí z command line. A tady narážím, parametr hidden state='on' je podporovám až ve verzi 2.1, ale na centos 7, kde to beží je verze 2.0 a parametr je neznámý, vyzkoušeno. Tedy by měla zbývat konstrukce viz dole, ta ale končí chybou - unrecognized feature kvm. Neví něko jak na Centos 7, libvirt 2.0 vypnout hlašení z host do quest, že cpu je kvm?
xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'>
qemu:commandline
    qemu:arg value='-cpu'
    qemu:arg value='host,kvm=off'
    qemu:arg value='-smbios'
    qemu:arg value='type=0,vendor=LENOVO,version=FBKTB4AUS,date=07/01/2015,release=1.180'
    qemu:arg value='-smbios'
    qemu:arg value='type=1,manufacturer=LENOVO,product=30AH001GPB,version=ThinkStation P300,serial=S4M88119,uuid=cecf333d-6603-e511-97d5-6c0b843f98ba,sku=LENOVO_MT_30AH,family=P3'
  qemu:commandline
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

Jendа avatar 16.8.2017 17:43 Jendа | skóre: 78 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: QEMU/KVM -cpu,kvm=off
Odpovědět | | Sbalit | Link | Blokovat | Admin
Tak si vypiš, co libvirt ve skutečnosti spouští… (v nejhorším náhradou binárky qemu za skript, který to zaloguje).
18.8.2017 06:50 bigBRAMBOR | skóre: 37
Rozbalit Rozbalit vše Re: QEMU/KVM -cpu,kvm=off
dostal jsem se k tomu jaksi mimochodem, nikdy jsem se virtualizaci moc nevenoval, šel jsem podle nejakeho navodu, tak tam hold mam i ten libvirt, ale pokud to pujde spustit skriptem bez nej, nijak se tomu nebranim, nicmene, nevim jak vypsat co libvirt spoustí, nejak mi to nic nerika.
18.8.2017 13:12 GeorgeWH | skóre: 42
Rozbalit Rozbalit vše Re: QEMU/KVM -cpu,kvm=off
virt-manager ma moznost nadefinovat typ cpu pre guesta (ak som teda spravne pochopil, ze sa jedna o toto).
Jendа avatar 18.8.2017 17:24 Jendа | skóre: 78 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: QEMU/KVM -cpu,kvm=off
Vždyť to píšu. Přesuneš binárku qemu do qemu.real a jako qemu vyrobíš shellový skript, který zaloguje $@ nebo $*.
16.8.2017 20:47 Aleš Kapica | skóre: 52 | blog: kenyho_stesky | Ostrava
Rozbalit Rozbalit vše Re: QEMU/KVM -cpu,kvm=off
Odpovědět | | Sbalit | Link | Blokovat | Admin
Nikdy jsem nepochopil, proč bych měl mít kvůli virtualizaci nainstalovaného něco jako libvirt, když mi stačí pouze qemu, trochu sofistikovanější shellový skript a standarní nástroj, jako ssh.

Donedávna jsem si v rámci virtualizačního clusteru vystačil jenom s tím skriptem – o spouštění virtuálů se mi staral Pacemaker. Ovšem došla mi trpělivost. Fakt nemám mentálně na to, abych přemítal nad tím jak ty věci podle eskamotérů z Red Hatu vlastně mají fungovat. Takže jsem si ho znovu přepsal, abych se obešel i bez toho Pacemakeru.

Už mi chybí jenom pár prkotin – jak si nastavit parametry přenosu při živé migraci, změna hesla k VNC za běhu, a dynamická konfigurace aby bylo možné měnit základní HW konfigurace virtuálů i za běhu.

Problém, jaký řeší autor dotazu je pro mne naprosto triviální. Normálně bych si přidal do konfiguráku do proměnné cpu co bych potřeboval. A celý konfigurák virtuálního stroje vypadá asi tak:
# Konfigurace virtuálního stroje git
id=1
cpu="kvm64 -M pc-q35-2.6"
memory=2048
vnc="password=heslo"
spice="port=4001,password=heslo"
bus=scsi-hd
drives="rbd:pool/git:id=libvirt:key=AQAqW4RWZN7EBRAAKNx6v8upPJw99S1/UdG3pQ==:auth_supported=cephx;none:mon_host=host1,none,disk,raw"
nic="ba:ba:ba:00:40:01,virtio-net-pci,tap,interni, ba:ba:ba:02:40:01,virtio-net-pci,tap,main,1"
18.8.2017 03:50 Andrej | skóre: 51 | blog: Republic of Mordor
Rozbalit Rozbalit vše Re: QEMU/KVM -cpu,kvm=off
Nikdy jsem nepochopil, proč bych měl mít kvůli virtualizaci nainstalovaného něco jako libvirt, když mi stačí pouze qemu, trochu sofistikovanější shellový skript a standarní nástroj, jako ssh.

Co třeba kvůli připojení na víc virtualizačních serverů a jejich virtuální stroje se spice grafikami z jednoho jednoduchého rozhraní a k jednoduché (klik sem, klik tam) migraci virtuálních strojů mezi fyzickými stroji za běhu? To mi přijde jako docela dobrý důvod. I když pravdou je, že to všechno se dá zařídit i shellovým skriptem (kromě té spice konzole).

18.8.2017 06:45 Want
Rozbalit Rozbalit vše Re: QEMU/KVM -cpu,kvm=off
I ta spice konzole se dá zajistit úplně jednoduše - stačí aby ti ten skript vracel kde má ten virtuál zrovna spuštěné instance. A podle dokumentace qemu se to dá udělat i tak, že se ti postará i o změnu při přemigrování hostitele. Ale chápu že to už není triviální skript.
18.8.2017 06:53 bigBRAMBOR | skóre: 37
Rozbalit Rozbalit vše Re: QEMU/KVM -cpu,kvm=off
libvirt mam proste protoze návod, nikdy jsem se qemu nevenoval, jenom jsem nechtel mít nekde special stroj na pujcovani licencí. Chyba kterou licence manager píše je, že to pujde nainstalovat, ale nepujde stahnout a aktivovat licence. Trochu mi to připadá jako úmyslná ochrana proti tomu aby LM bezel na VM, asi to nemaji ošetřené a doslo by k moznosti kopirovat VM vcetne licence (vyzkouším) - tomu by sice napovídalo to, že to nelze aktivovat ani ve VMware, ani ve Virtualboxu - o to více me prekvapil přístup oficiání podpory, která mi poslala link na návod jak vypnout hlášení procesoru ze je virtuální.
Jendа avatar 18.8.2017 17:24 Jendа | skóre: 78 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: QEMU/KVM -cpu,kvm=off
Problém, jaký řeší autor dotazu je pro mne naprosto triviální.
Z popisu problému mi ani z daleka nepřijde jasné, že je problém v libvirtu.
18.8.2017 19:14 Aleš Kapica | skóre: 52 | blog: kenyho_stesky | Ostrava
Rozbalit Rozbalit vše Re: QEMU/KVM -cpu,kvm=off
V libvirtu problém není. Problém je v tom, že tazatel neví jak mu nastavit to co chce.

U skriptu je to jednoduché protože nepoužívá žádné XML, ale generuje příkaz, který se má spustit. Taky občas narážím na problémy, ale právě pro to mám integrovaný příkaz test, který místo spuštění instance VM ten příkaz vypíše a mám k dispozici přesně to co potřebuji spustit na příkazové řádce abych prozkoumal co se pokouší dělat - nemusím tak přemýšlet nad tím, jestli jsem se někde nepřeklepnul, atp.

Pak mi stačí prozkoumat help k aktuální verzi qemu. Některé věci se totiž postupně mění a nejčastěji bývá problém právě v tom, že se u nové verze qemu udělala drobná změna v parametrech příkazu. Pochopitelně nějaký čas trvá než se taková změna promítne do distribučních verzí všech těch mezičlánků. A mezitím se po internetu množí zoufalé dotazy na které nikdo nezná odpověď.

Když se mi teda nedaří virtuál přemigrovat, tak mám k dispozici výstupy, ze kterých mohu ihned zjistit proč. Pokud není nic ve výstupu na sériáku, tak mám k dispozici chybovou konzoli, spice konzoli a když to potřebuji, tak můžu ten stroj zkoumat i zevnitř přes monitorovací konzoli. O kousek výš jsem uvedl ukázkovou konfiguraci. Tady je to co se spouští:
qemu-system-x86_64 -daemonize -machine accel=kvm -name git -cpu kvm64 -M pc-q35-2.6 -m 2048 -spice port=4001,password=heslo -vnc :1,password -qmp telnet:localhost:12001,server,nowait -monitor telnet:localhost:11001,server,nowait -incoming tcp:0:14001 -device virtio-scsi-pci -drive file=rbd:onepool/git:id=libvirt:key=AQAqW4RWZN7EBRAAKNx6v8upPJw99S1/UdG3pQ==:auth_supported=cephx\;none:mon_host=host1,if=none,index=0,id=ceph.0,cache=none,media=disk,format=raw -device scsi-hd,drive=ceph.0 -netdev tap,id=tap.0,ifname=interni-git,script=/etc/openvswitch/ovs-ifup,downscript=/etc/openvswitch/ovs-ifdown -device virtio-net-pci,mac=ba:ba:ba:00:40:01,netdev=tap.0 -netdev tap,id=tap.1,ifname=main-git-1,script=/etc/openvswitch/ovs-ifup,downscript=/etc/openvswitch/ovs-ifdown -device virtio-net-pci,mac=ba:ba:ba:02:40:01,netdev=tap.1 -serial file:/var/log/git.serial
Kdo by se s tím ťukal, že? Ovšem přidat další blokové zařízení (drive) nebo síťovku (nic), znamená jen drobnou změnu v konfiguráku git.conf, který jsem uvedl v příspěvku výše. Skript se umí sám distribuuovat na všechny hostitele – a pochopitelně také zobrazovat rozdíly v konfiguračních souborech, když na to přijde. A když potřebuji odzkoušet nějaké parametry qemu, či přidat něco atypického, mohu zneužít proměnnou cpu, pokud se mi to nechce rovnou implementovat.

Mně na libvirtu vždycky vadilo právě to zpoždění. A vlastně mi to zpoždění vadí i u distribuční verze qemu, protože obvykle ještě neměla podporu toho co jsem potřeboval. Takže si kompiluji jen jeden balík a když nastane chyba, tak ihned vím kde a jak ji hledat. Svoje řešení ale nikomu nevnucuji. Skript mám především pro svou potřebu – bohužel prozatím ve stavu, kdy se ho neodvažuji dát veřejně v plen - mraky komentářů, kontrolních zpráv, slepých kousků kódu a pokusných funkcionalit. Aktuálně má asi 4 tisíce řádků (včetně dokumentace, která je v tom) zbývá doladit hromadné migrace, protože jsem nedávno integroval věci o které se dřív staral pacemaker, jako např. banování a prioritizace strojů a virtuálů a je třeba to zdokumentovat, než se mi to vykouří z hlavy. A v plánu mám další věci, které má libvirt pochopitelně dávno vyřešené (teda si to alespoň myslím), ale budu to muset dát na chvíli zase k ledu, protože za tohle mě zrovna neplatí.
19.8.2017 10:27 alkoholik | skóre: 40 | blog: Alkoholik
Rozbalit Rozbalit vše Re: QEMU/KVM -cpu,kvm=off
A jak delas hotplug zarizeni? Online resize? Posilani ACPI prikazu (shutdown, sleep, wakeup)?
Libvirt ma neco do sebe.
21.8.2017 07:12 Want
Rozbalit Rozbalit vše Re: QEMU/KVM -cpu,kvm=off
Úplně stejně jako to dělá libvirt - přes qmp konzoli. Rozdíl je pouze v tom, že ji nemám natvrdo vyvedenou na soket, ale na lokálním tcp portu - stejně jako monitorovací konzoli. Původní skript napsaný před lety pro pacemaker pracoval přímo s monitorovací konzolí, protože to qmp se teprve vyvíjelo a nebylo zdokumentované.

Hotplug zařízení je věc, kterou se teprve chystám implementovat časem. Zatím to nepotřebuji. A když, tak se to dá udělat "manuálně" přes monitorovací konzoli. Ale skript už je na to připraven (příkazy pro akci config).
19.8.2017 21:20 citanus | skóre: 12 | Cork (Ireland)
Rozbalit Rozbalit vše Re: QEMU/KVM -cpu,kvm=off

chudak ten co to po vas dosane na starost.

... ano cetl jsem. Je to zdokumenovane... : )

21.8.2017 07:15 Want
Rozbalit Rozbalit vše Re: QEMU/KVM -cpu,kvm=off
Pokud dotyčný neumí použít parametr --help, tak je to skutečně chudák.
19.8.2017 11:49 David | skóre: 11
Rozbalit Rozbalit vše Re: QEMU/KVM -cpu,kvm=off
Odpovědět | | Sbalit | Link | Blokovat | Admin
Tohle jsem řešil před půl rokem. Nejdříve jsem komunikoval přímo s prodejce SW jak je to s podporou virtualizace u licenčního serveru. Tam jsem se dozvěděl že podporovaný je jen VMWare a HYPER-V. Požadavek na podporu KVM, tam mají již 2 roky, ale zatím to nikdo neřeší. Nakonec jsem to vyřešil tak, že pomocí dmidecode jsem vzal data z reálné workstation a ty nastavil do toho virtuálu. Viz: SMBIOS System Information + musíš mít u toho virtuálu statickou MAC adresu.
21.8.2017 08:12 bigBRAMBOR | skóre: 37
Rozbalit Rozbalit vše Re: QEMU/KVM -cpu,kvm=off
a stacilo to? parametryu pro CPU co posilali me jsi menit nepotreboval? ja jake verzi nebo distribuci jsi to jel?
22.8.2017 11:58 David | skóre: 11
Rozbalit Rozbalit vše Re: QEMU/KVM -cpu,kvm=off
Ano, zatím to běží. Na serveru je Debian Jessie.
23.8.2017 06:57 bigBRAMBOR | skóre: 37
Rozbalit Rozbalit vše Re: QEMU/KVM -cpu,kvm=off
a verze qemu a libvirb, abych se měl čeho chytit?

Založit nové vláknoNahoru

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

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