abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    včera 13:11 | Nová verze

    Coppwr, tj. GUI nástroj pro nízkoúrovňové ovládání PipeWire, byl vydán v nové verzi 1.6.0. Zdrojové kódy jsou k dispozici na GitHubu. Instalovat lze také z Flathubu.

    Ladislav Hagara | Komentářů: 0
    2.5. 22:33 | Nová verze

    Byla vydána dubnová aktualizace aneb nová verze 1.89 editoru zdrojových kódů Visual Studio Code (Wikipedie). Přehled novinek i s náhledy a animovanými gify v poznámkách k vydání. Vypíchnout lze, že v terminálu lze nově povolit vkládání kopírovaného textu stisknutím středního tlačítka myši. Ve verzi 1.89 vyjde také VSCodium, tj. komunitní sestavení Visual Studia Code bez telemetrie a licenčních podmínek Microsoftu.

    Ladislav Hagara | Komentářů: 14
    2.5. 21:22 | Nová verze

    Proton, tj. fork Wine integrovaný v Steam Play a umožňující v Linuxu přímo ze Steamu hrát hry určené pouze pro Windows, byl vydán ve verzi 9.0-1 (𝕏). Přehled novinek se seznamem nově podporovaných her na GitHubu. Aktuální přehled her pro Windows běžících díky Protonu také na Linuxu na stránkách ProtonDB.

    Ladislav Hagara | Komentářů: 2
    2.5. 19:33 | Nová verze

    Byla vydána verze 1.78.0 programovacího jazyka Rust (Wikipedie). Podrobnosti v poznámkách k vydání na GitHubu. Vyzkoušet Rust lze například na stránce Rust by Example.

    Ladislav Hagara | Komentářů: 0
    2.5. 11:22 | Bezpečnostní upozornění

    Služba Dropbox Sign (původně HelloSign) pro elektronické podepisování smluv byla hacknuta.

    Ladislav Hagara | Komentářů: 2
    2.5. 11:00 | Nová verze

    Byla vydána nová major verze 8.0 textového editoru GNU nano (Wikipedie). Podrobný přehled novinek a oprav v oznámení v diskusním listu info-nano nebo v souboru ChangeLog na Savannah. Volbou --modernbindings (-/) lze povolit "moderní" klávesové zkratky: ^C kopírování, ^V vložení, ^Z vrácení zpět, … Tato volba je aktivována také pokud binárka s nano nebo link na ni začíná písmenem "e".

    Ladislav Hagara | Komentářů: 3
    1.5. 23:22 | IT novinky

    Před 60 lety, 1. května 1964, byl představen programovací jazyk BASIC (Beginners' All-purpose Symbolic Instruction Code).

    Ladislav Hagara | Komentářů: 21
    1.5. 22:22 | Nová verze

    Byla vydána nová verze 12.0 minimalistické linuxové distribuce (JeOS, Just enough Operating System) pro Kodi (dříve XBMC) a multimediálního centra LibreELEC (Libre Embedded Linux Entertainment Center). Jedná se o fork linuxové distribuce OpenELEC (Open Embedded Linux Entertainment Center). LibreELEC 12.0 přichází s Kodi 21.0 "Omega".

    Ladislav Hagara | Komentářů: 0
    1.5. 12:55 | Nová verze

    Microsoft vydal novou velkou aktualizaci 2404.23 v září 2019 pod licencí SIL Open Font License (OFL) zveřejněné rodiny písma Cascadia Code pro zobrazování textu v emulátorech terminálu a vývojových prostředích.

    Ladislav Hagara | Komentářů: 0
    1.5. 05:33 | Nová verze

    OpenTofu, tj. svobodný a otevřený fork Terraformu vzniknuvší jako reakce na přelicencování Terraformu z MPL na BSL (Business Source License) společností HashiCorp, bylo vydáno ve verzi 1.7.0. Přehled novinek v aktualizované dokumentaci. Vypíchnout lze State encryption.

    Ladislav Hagara | Komentářů: 0
    Podle hypotézy Mrtvý Internet mj. tvoří většinu online interakcí boti.
     (20%)
     (23%)
     (37%)
     (20%)
    Celkem 30 hlasů
     Komentářů: 7, poslední včera 22:24
    Rozcestník

    Hry s KVM 3: Thin Provisioning

    8.12.2019 13:37 | Přečteno: 1690× | Bežná práca s Desktopom | poslední úprava: 1.12.2019 13:53

    Thin provisioning je poskytovanie diétnych virtuálnych počítačov. Teda počítačov ktoré nespotrebujú všetky zverené prostriedky, ale len ich časť.
    Takéto niečo sa dá bez problémov dosiahnuť aj v domácich podmienkach. Tak poďme na to.

    Potrebné nástroje:

    Pripravená farmička z predchádzajúceho dielu s dostupnými príkazmi virsh a virtímanager.
    Virtuálny stroj s OS Linux

    Opis prostredia:

    Ako sme spomínali v predchádzajúcich dieloch, tak máme vytvorenú virtuálnu farmu na notebooku. Jednoducho povedané je to 1x Dual Core Dual Thread javiace sa ako 4x CPU, 12G RAM a jeden rotačný disk (zatiaľ, nebudeme predbiehať):

    golisp@WEB:~$ virsh nodeinfo
    CPU model:           x86_64
    CPU(s):              4
    CPU frequency:       1269 MHz
    CPU socket(s):       1
    Core(s) per socket:  2
    Thread(s) per core:  2
    NUMA cell(s):        1
    Memory size:         12187152 KiB
    
    Pozrieme si stav Virtuálnych Počítačov:
    golisp@WEB:~$ virsh list --all
     Id    Name                           State
    ----------------------------------------------------
     2     CentOS-8                       running
     -     FreeBSD-12                     shut off
    
    golisp@WEB:~$ virsh dominfo  CentOS-8
    Id:             7
    Name:           CentOS-8
    UUID:           766950d8-32fc-4282-980b-0869a3f17dce
    OS Type:        hvm
    State:          running
    CPU(s):         1
    CPU time:       281.0s
    Max memory:     2098176 KiB
    Used memory:    2098176 KiB
    Persistent:     yes
    Autostart:      disable
    Managed save:   no
    Security model: apparmor
    Security DOI:   0
    Security label: libvirt-766950d8-32fc-4282-980b-0869a3f17dce (enforcing)
    
    golisp@WEB:~$ virsh domblklist CentOS-8 --details
    Type       Device     Target     Source
    ------------------------------------------------
    file       disk       hda        /var/lib/libvirt/images/CentOS-8.qcow2
    file       cdrom      hdb        -
    
    golisp@WEB:~$ virsh shutdown CentOS-8
    Domain CentOS-8 is being shutdown
    
    
    Nás zaujíma VM CentOS-8 ktorá sa čerstvo vypla, a má pridelené a aj použité máličko cez 2G RAM, 1xvCPU a jeden pevný disk. Tak si ju postupne prestavíme.

    Nastavenie RAM:

    Obmedzenie RAM je fajn aj keď jej má človek dostatok. Občas ale človek potrebuje okresať prostriedky ktoré sa dajú využiť aj na niečo iné. Tak poďme na to.
    Nastavíme si MAX RAM na presné 2G, zapneme VM a okrešeme jej za behu aktuálne použitú RAM na 1G:
    golisp@WEB:~$ virsh
    Welcome to virsh, the virtualization interactive terminal.
    
    Type:  'help' for help with commands
           'quit' to quit
    
    virsh # setmaxmem CentOS-8 2G 
    
    virsh # start CentOS-8
    Domain CentOS-8 started
    
    virsh # setmem CentOS-8 1G 
    
    Výslednú konfiguráciu vidíme na obrázku:

    Mimochodom, práve v tej záložke sa to dá aj vyklikať.

    Nastavenie CPU:

    Málo kto potrebuje v domácich podmienkach obmedzovať počet virtuálnych jadier CPU pre jednotlivé VM, najmä ak ich človek zdieľa. A ak na nich človek nebeží nič náročné. Ale skúsime si to.
    Nastavíme si Maximálny počet VCPU na 2, a aktuálny počet pri štarte na 1 VCPU.
    virsh # shutdown CentOS-8
    Domain CentOS-8 is being shutdown
    
    virsh # setvcpus --domain CentOS-8 --maximum 2 --config
    
    virsh # setvcpus --domain CentOS-8 --count 1 --config
    
    
    Prihlásime sa do VM a skontrolujeme koľko CPU máme k dispozícii:
    [golisp@CentOS-8 ~]$ grep -c ^processor /proc/cpuinfo 
    1
    
    Vidíme že máme k dispozícii práve jedno CPU, tak si pridáme ďalšie:
    virsh # setvcpus --domain CentOS-8 --count 2
    
    
    A zas skontrolujeme skontrolujeme koľko CPU máme k dispozícii:
    [golisp@CentOS-8 ~]$ grep -c ^processor /proc/cpuinfo 
    2
    [golisp@CentOS-8 ~]$ dmesg | tail
    [  213.643111] virbr0: port 1(virbr0-nic) entered disabled state
    [  215.553130] input: spice vdagent tablet as /devices/virtual/input/input5
    [  347.883123] CPU1 has been hot-added
    [  347.895179] SMP alternatives: switching to SMP code
    [  347.918673] x86: Booting SMP configuration:
    [  347.918677] smpboot: Booting Node 0 Processor 1 APIC 0x1
    [  347.930736] kvm-clock: cpu 1, msr 0:7ff2e041, secondary cpu clock
    [  347.951178] KVM setup async PF for cpu 1
    [  347.951185] kvm-stealtime: cpu 1, msr 7db25040
    [  347.953253] Will online and init hotplugged CPU: 1
    [golisp@CentOS-8 ~]$ 
    
    Vidíme že nám to druhé CPU aj pridalo. Podobným štýlom si to CPU môžeme aj ubrať. Mimochodom, aj toto sa dá naklikať v grafike:

    Nastavenie HDD:

    Nastavenie Thin Provisioning využíva pri diskovom priestore technológiu známu z SSD, teda TRIM/Discard. Presnejšie povedané, hypervízor si odchytí daný HW príkaz, a namiesto predania TRIM priamo do spodnej úurovne disku nám to miesto uvoľní vo virtuálnom disku. Teda vyrazí doň dieru (hole punching). Tak si to poďme skontrolovať, nastaviť a vyskúšať:
    golisp@WEB:~$ sudo sh -c 'ls -l /var/lib/libvirt/images/; du -sh /var/lib/libvirt/images/*'
    [sudo] password for golisp: 
    total 6569060
    -rw------- 1 libvirt-qemu kvm  21478375424 Nov 21 15:50 CentOS-8.qcow2
    -rw------- 1 root         root 21478375424 Nov 21 14:30 FreeBSD-12.qcow2
    6.3G	/var/lib/libvirt/images/CentOS-8.qcow2
    3.4M	/var/lib/libvirt/images/FreeBSD-12.qcow2
    golisp@WEB:~$ virt-xml CentOS-8 --edit path=/var/lib/libvirt/images/CentOS-8.qcow2 --disk discard=unmap
    Domain 'CentOS-8' defined successfully.
    Changes will take effect after the next domain shutdown.
    
    golisp@WEB:~$ virsh shutdown CentOS-8
    Domain CentOS-8 is being shutdown
    
    golisp@WEB:~$ virsh start CentOS-8
    Domain CentOS-8 started
    
    golisp@WEB:~$ ssh golisp@CentOS-8 
    golisp@centos-8's password: 
    Activate the web console with: systemctl enable --now cockpit.socket
    
    Last login: Wed Nov 20 20:10:05 2019
    [golisp@CentOS-8 ~]$ sudo -i
    [sudo] password for golisp: 
    [root@CentOS-8 ~]# time fstrim -av
    /boot: 843.5 MiB (884441088 bytes) trimmed
    /: 13 GiB (13953798144 bytes) trimmed
    
    real	0m1.245s
    user	0m0.000s
    sys	0m0.014s
    
    golisp@WEB:~$ sudo sh -c 'ls -l /var/lib/libvirt/images/; du -sh /var/lib/libvirt/images/*'
    [sudo] password for golisp: 
    total 4439304
    -rw------- 1 libvirt-qemu kvm  21478375424 Nov 21 16:46 CentOS-8.qcow2
    -rw------- 1 root         root 21478375424 Nov 21 14:30 FreeBSD-12.qcow2
    4.3G	/var/lib/libvirt/images/CentOS-8.qcow2
    3.4M	/var/lib/libvirt/images/FreeBSD-12.qcow2
    

    Takže sme si všimli že pre VM CentOS-8 máme vytvorený 20G disk ktorý aktuálne zaberal 6.3G. Tomu disku sme nastavili aby vykonával TRIM/Discard ako Unmap, teda uvolnil nevyužité miesto. A finálne sme v tej VM spustili TRIM, čím sa nám disk za 1¼ sekundy zmenšil na 4.3G. Disk bol pomalý, rotačný.

    Mimochodom moja farma beží na Ubuntu 18.04(.03), a použitá verzia balíka virt-manager zatiaľ nemá klikátko na takéto nastavenie disku:

    Novšie verzie by to už mali mať.

    To je na dnes všetko. Na budúce sa pozrieme ako by sme si mohli zjednodušiť prácu s touto farmičkou, a čo by sme si do nej mohli pre budúcnosť aj pridať.        

    Hodnocení: 100 %

            špatnédobré        

    Obrázky

    Hry s KVM 3: Thin Provisioning, obrázek 1 Hry s KVM 3: Thin Provisioning, obrázek 2 Hry s KVM 3: Thin Provisioning, obrázek 3

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

    Komentáře

    Vložit další komentář

    8.12.2019 14:20 Odin
    Rozbalit Rozbalit vše Re: Hry s KVM 3: Thin Provisioning
    Bla bla
    k3dAR avatar 8.12.2019 14:21 k3dAR | skóre: 62
    Rozbalit Rozbalit vše Re: Hry s KVM 3: Thin Provisioning
    BTW: v Xubuntu18.04(.3) pouzivam mainline virt-mananger aktualne verze 2.2.1 a klikatno uz ma ;-)
    porad nemam telo, ale uz mam hlavu... nobody
    8.12.2019 17:18 Peter Golis | skóre: 64 | blog: Bežné záležitosti | Bratislava
    Rozbalit Rozbalit vše Re: Hry s KVM 3: Thin Provisioning
    Nie som si istý či to klikátko na discard=unmap bolo v 19.04, ale v 20.04 LTS určite bude. Od určitého veku preferujem LTS verzie. Tých 10 rokov čo som vydržal na Gentoo ma naučilo dosť, ale už nemám čas toľko kompilovať. Mám aj iné záľuby ako počítač.

    I keď to večné lepenie defektov na bicykli ma tiež oberá o čas. Ale zas si môžem v prírode nazbierať bylinky, aj dnes som si zobral na krátky výjazd čaj z materinej dúšky nazbieranej tejto jari.
    k3dAR avatar 8.12.2019 20:50 k3dAR | skóre: 62
    Rozbalit Rozbalit vše Re: Hry s KVM 3: Thin Provisioning
    zminujes nekolikrat cas, ale virt-manager 2.2.1 do 18.04 zabere mene casu, nez kolik si venoval napsani tohoto prispevku ;-)
    #!/bin/sh
    
    set -ex
    
    VERSION="2.2.1"
    PREFIX="/usr/local"
    
    wget --continue https://virt-manager.org/download/sources/virt-manager/virt-manager-${VERSION}.tar.gz
    tar xfv virt-manager-${VERSION}.tar.gz
    
    cd virt-manager-${VERSION}
    ./setup.py configure --prefix=${PREFIX}
    ./setup.py build
    ./setup.py install --prefix=${PREFIX}
    
    kdyz vynecham z casu stahnuti archivu tak: "time tentoskript" ~4s ;-)
    porad nemam telo, ale uz mam hlavu... nobody
    8.12.2019 21:08 Peter Golis | skóre: 64 | blog: Bežné záležitosti | Bratislava
    Rozbalit Rozbalit vše Re: Hry s KVM 3: Thin Provisioning
    Nejde o inštaláciu. Ide o konzistentnosť systému. Vybral som si LTS aby som to nemusel reinštalovať a ani upgradovať každých pár týždňov.

    Naklikať si to nepotrebujem. Ted discard=unmap som používal ešte pred tým, ako to pridali do klikacieho virt-managera.

    PS: I keď na druhú stranu, tento blog mám aj na to, aby som tieto kroky dokázal zreprodukovať. Presnejšie povedané, rovno ich reprodukujem nech mám istotu že som na niečo nezabudol. I keď nezachádzam moc do detailov.
    k3dAR avatar 9.12.2019 01:06 k3dAR | skóre: 62
    Rozbalit Rozbalit vše Re: Hry s KVM 3: Thin Provisioning
    tak virt-manager je vrstevne "ontop", jeho povysenim nic nerozbijes, take pouzivam LTS, ale neco(co pouzivam kazdej den) nemam problem povysit z PPA (mc, byobu, xfce), nebo neco co stoji za to (libreoffice,gimp,mpv), u virt-manager bohuzel ppa padlo, takze to davam rucne, zadnej problem s tim neni...
    PS: ja treba o moznosti unmap u disku netusil
    porad nemam telo, ale uz mam hlavu... nobody
    9.12.2019 10:53 Peter Golis | skóre: 64 | blog: Bežné záležitosti | Bratislava
    Rozbalit Rozbalit vše Re: Hry s KVM 3: Thin Provisioning
    Keď som sa začal hrať s touto voľbou v 16.04, tak ju nebral z xml. Vyhodil ju. Takže shrink som robil ručným spustením qemu. Ale to bolo dávno.

    S tou konzistenciou som to myslel inak, pri upgrade občas ostávajú iné náväznosti ako sa vytvoria pri čistej inštalácii. Kto si má potom pamätať ako dosiahol nejakú magickú kombináciu ak robí novú inštaláciu. Na to sú už aj zápisky krátke, ak človek vyskúša cez 20 možností a nevie čo z toho mu zafungovalo. Napr. ten DNS resolving čo mám plánovaný do ďalšieho zápisku ako jeden z bodov zhrnutia.
    8.12.2019 16:03 OldFrog {Ondra Nemecek} | skóre: 36 | blog: Žabákův notes | Praha
    Rozbalit Rozbalit vše Re: Hry s KVM 3: Thin Provisioning
    Eee, není to náhodou opačně, totiž že thin provisioning je přidělení více prostředků než jsou reálně k dispozici (overcommitting)? Což lze docílit například u RAM pomocí kernel samepage merging (KSM)?
    -- OldFrog
    8.12.2019 17:08 Peter Golis | skóre: 64 | blog: Bežné záležitosti | Bratislava
    Rozbalit Rozbalit vše Re: Hry s KVM 3: Thin Provisioning
    Pridelenie viac prostriedkov ako je reálne k dispozicii sa nazýva overprovisioning, a je viacero možností ako toho dosiahnuť. Najlacnejšia a najpoužívanejšia je že entita má zazmluvnenú maximálnu kapacitu, a garantovanú minimálnu kapacitu. To je známe aj z internetových prípojok.

    Ten prvý link čo si sem dal ukazuje na môj typ použitia. Mám notebook s 12G RAM. Hypervízor (Linux desktop) si zožerie cca 2G, a ostane mi 10G pre VM. NASku dám garantované 4, a ostane mi 6G. Do toho si spustím 5 ďalších VM ktoré majú min 1G a max 2G. V reále sa mi tie virtuálky flákajú, a stačí im každej 1G, takže ostane 1G na zdieľanie podľa potreby. Ktorá VM ich reálne potrebuje, tá ich dostane.

    Ohľadne toho druhého linku, tak metód ako deduplikovať pamäťové prostriedky sa za roky nazbieralo veľa. Jak pre RAM, tak pre disky. S RAMkou som sa zatiaľ nezaoberal.
    Petr Fiedler avatar 15.12.2019 17:36 Petr Fiedler | skóre: 35 | blog: Poradna | Brno
    Rozbalit Rozbalit vše Re: Hry s KVM 3: Thin Provisioning

    Skvělé informace, díky.
    Seriál sleduji i když na to teď nemám úplně čas. Určitě by mě zajímalo, jak nastavit VM, aby vůbec nemohl na síť? A taky jak nastavit, aby nemohl do systému, na kterém běží? Budu rád, když to do seriálu prosím zahrneš.

    15.12.2019 19:26 Peter Golis | skóre: 64 | blog: Bežné záležitosti | Bratislava
    Rozbalit Rozbalit vše Re: Hry s KVM 3: Thin Provisioning
    Ja mám teraz dosť času, až mi to lezie na nervy.

    Ohľadne tej siete, tak je niekoľko možností. Najjednoduchšie je odobrať sieťovku z VM. Trošku zložitejšie je vytvorenie si ďalších dvoch typov sieťových módov (Host-only a Internal) podobne ako to je od výroby preddefinované vo Virtual Boxe od firmy Innotek. A najzložitejšie je nasimulovať si kompletnú virtuálnu kabeláž cez napr. VDEv2.
    Petr Fiedler avatar 15.12.2019 21:21 Petr Fiedler | skóre: 35 | blog: Poradna | Brno
    Rozbalit Rozbalit vše Re: Hry s KVM 3: Thin Provisioning

    Ještě jsem si uvědomil, že by mě zajímalo, jak nastavit, aby VM přístup na síť měl a jen určitá aplikace ne. Vím, že by se to řešilo přes firewall, ale nikdy jsem to nedělal. Byl bych docela rád, kdybys třeba do seriálu zahrnul, jak se to dělá.

    16.12.2019 19:15 Peter Golis | skóre: 64 | blog: Bežné záležitosti | Bratislava
    Rozbalit Rozbalit vše Re: Hry s KVM 3: Thin Provisioning
    Nuž, zabrániť aby určitá aplikácia nemala prístup na sieť sa dá jednoducho. Človek zabezpečí že tá aplikácia bude spúšťaná pod unikátnym užívateľom (hoci aj cez SetUID), a tomu potom zareže internet.
    iptables -m owner --help
    
    Existujú aj zložitejšie riešenia, ale v rámci ceny za VM sa moc neoplatí vyhrať sa s tým ak to človek chce len na zablokovanie nejakých "domácich pokusov". Veď 20G disku stojí 1€ pri cene 50€ za 1T rotačného 2.5' disku, 4G RAM pre VM je cca 15€ (občasne) a VCPU nerátam. Tá virtuálka nebude furt žrať prostriedky, okrem tej mince za disk.

    Iné by to bolo vo firemnej sfére, ale tam človek použije kontajnerizáciu.
    Petr Fiedler avatar 15.12.2019 21:25 Petr Fiedler | skóre: 35 | blog: Poradna | Brno
    Rozbalit Rozbalit vše Re: Hry s KVM 3: Thin Provisioning
    Najjednoduchšie je odobrať sieťovku z VM.

    Naprosto jednoduché :-)

    Založit nové vláknoNahoru

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.