Virtualizace

Michal Fabík, 172886@mail.muni.cz

Obsah

Použití

Typy virtualizace

Kontejnerová virtualizace

Není virtualizace v pravém slova smyslu. Běží jen jeden OS, nad kterým mohou existovat oddělená
prostředí pro jednotlivé procesy/skupiny procesů/aplikace.

Příklady:

Softwarová emulace HW

Lze takto podle potřeby vytvořit prakticky jakýkoli virtuální hardware, ale za cenu (velmi) nízkého výkonu.

Příklady:

Paravirtualizace

Virtuální prostředí není úplné - je využito podobnosti, resp. shody, některých komponent virtuálního a fyzického (hostitelského) stroje.
Není tedy možné provozovat paravirtualizovaný systém diametrálně odlišný od hostitelského. Hostitelský i paravirtualizovaný systém musí
být speciálně sestaven s podporou paravirtualizace - zpravidla nepoužitelné pro closed-source systémy.

Příklady:

Úplná virtualizace

Podle dokumentace projektu Xen: "Virtuální systém si není vědom toho, že je virtuální." (nepřesná citace.)

Dělení:

Příklady

Xen

Architektura:

	| App   |   App   |   App   | ...
        -----------------------------
        Domain0 | DomainU | DomainU | ...
        -----------------------------
       		 Hypervisor
       		 ----------
       		     HW

Projekt libvirt

Příklad použití:
        #include <stdio.h>
        #include <libvirt/libvirt.h>

        int main()
        {
                virConnectPtr conn;
                virDomainPtr dom;
                char *hv_uri;
                char *dom_desc;

                conn = virConnectOpen(NULL);
                hv_uri = virConnectGetURI(conn);
                printf("Connected to %s hypervisor\n", hv_uri);
                dom = virDomainLookupByName(conn, "mydomain");
                dom_desc = virDomainGetXMLDesc(dom, VIR_DOMAIN_XML_SECURE | VIR_DOMAIN_XML_INACTIVE);

                /* do something */

                virDomainShutdown(dom);
                virConnectClose(conn);

                return 0;
        }
Při překladu je potřeba přilinkovat knihovnu libvirt.a (přepínač -lvirt).

Literatura