Operační systémy a virtualizace

Na dnešním cvičení si zopakujeme, co je to virtualizace, připomeneme její typy a ukážeme, jak si můžeme na naše zařízení nainstalovat další operační systém. Okrajově se také podíváme na typ virtualizace zvaný kontejnerizace.

Virtualizace

Virtualizace je technologie, která umožňuje běh více virtuálních strojů na jednom fyzickém zařízení. Tyto stroje od sebe běží odděleně, sdílí ale stejný hardware. Tato technologie tedy dokáže vytvořit virtuální verzi několika fyzických strojů (počítačů).

Virtualizace je možná díky hypervizoru. Hypervizor si lze představit jako prostředníka mezi hardware a virtuálními stroji. Vytváří a spravuje virtuální stroje, přiděluje jim systémové prostředky a stará se o jejich izolaci. Rozlišujeme dva druhy hypervizorů.

Rozlišujeme několik typů virtualizace. Každý typ má své výhody a využití.

Plná virtualizace ve VirtualBoxu

VirtualBox je multiplatformní virtualizační nástroj (open-source software vyvíjený společností Oracle) umožňující plnou virtualizaci. VirtualBox umožňuje používat funkce jako snapshoty, sdílené složky, USB zařízení nebo různé síťové režimy. My si dnes ukážeme základní práci s VirtualBoxem.

Nejprve nainstalujeme VirtualBox z oficiálních stránek projektu.

Obrázek

Po jeho instalaci máme připravený nástroj pro vytváření virtuálních strojů, ale zatím nemáme žádný operační systém, který by mohl ve virtuálním stroji běžet. Stejně jako u nového fyzického počítače je nutné operační systém nejprve nainstalovat. Aby bylo možné operační systém do virtuálního stroje nainstalovat, potřebujeme instalační médium. Ve fyzickém světě by to bylo například DVD nebo USB flash disk. Ve virtuálním prostředí tuto roli plní ISO soubor. ISO soubor je digitální obraz instalačního disku. Obsahuje všechny soubory potřebné k instalaci operačního systému a umožňuje jeho spuštění.

ISO soubory operačních systémů se stahují výhradně z oficiálních zdrojů, aby byla zajištěna bezpečnost a správná funkčnost. Například operační systém Ubuntu lze nainstalovat ze souboru ISO, který je dostupný na tomto odkaze.

Vytvoření nového virtuálního počítače ve VirtualBoxu

V tuto chvíli máme nainstalovaný VirtualBox a stažený ISO soubor operačního systému. Dalším krokem je vytvoření nového virtuálního počítače, tedy virtuálního stroje, do kterého operační systém nainstalujeme. Po spuštění VirtualBoxu klikneme na tlačítko New. Tím se otevře průvodce vytvořením virtuálního stroje, který nás provede základním nastavením. Nejprve zadáme název virtuálního počítače. Název slouží pouze pro přehlednost a nemá vliv na funkčnost. Následně vybereme ISO soubor. V dalším kroku zvolíme typ a verzi operačního systému.

Následně je nutné virtuálnímu stroji přidělit část operační paměti fyzického počítače. Obecně lze říci, že je potřeba přidělit alespoň 2 GB paměti.

Spuštění virtuálního počítače

Po vytvoření virtuálního stroje a připojení ISO souboru je možné virtuální počítač poprvé zapnout. Virtuální stroj spustíme tak, že ho vybereme v seznamu a klikneme na tlačítko start.

U většiny linuxových distribucí se po spuštění z ISO zobrazí nabídka, která nabízí dvě možnosti: Live CD nebo instalace. Live CD umožňuje spustit operační systém přímo z ISO souboru, bez instalace na disk. Tato možnost slouží především k vyzkoušení systému, jelikož se změny na tomto počítači neukládají. Při volbě trvalé instalace se operační systém nainstaluje na virtuální disk virtuálního stroje. Po instalaci se virtuální stroj chová jako běžný počítač s vlastním systémem.

Základní práce s VM

Ukážeme si, jaké základní operace můžeme s virtuálními stroji dělat. Mezi ty nejzákladnější patří spuštění, vypnutí, pozastavení, restartování. Dále lze také ukládat stav stroje (uloží paměť a disk) nebo dělat snapshoty.

Snapshoty

Snapshot je fotografie stavu virtuálního stroje v daný okamžik. Umožňuje nám se kdykoliv vrátit zpět, jako bychom stroj zmrazili v čase. To je užitečné zejména při testování nového softwaru. V prostředí VirtualBox lze snapshot udělat velmi snadno. Vybereme cílový virtuální stroj, klikneme na panel Snapshots a zvolíme možnost Take. Snapshot uloží aktuální obsah paměti RAM, stav virtuálního disku a nastavení VM. Pokud bychom se v budoucnu chtěli vrátit k určitému stavu virtuálního stroje, stačí vybrat pořízený snapshot a zvolit možnost Restore.

Kontejnerizace - Docker

Docker je nástroj pro kontejnerizaci, tedy pro vytváření a spouštění izolovaných prostředí pro aplikace. Na rozdíl od virtuálních strojů kontejnery nesimulují celý operační systém, ale sdílí jádro hostitelského OS a obsahují pouze aplikaci a její závislosti. Díky tomu jsou kontejnery lehké, rychlé a přenositelné, spouštějí se rychle a zabírají mnohem méně zdrojů než plnohodnotný virtuální stroj. Docker umožňuje vývojářům vytvářet aplikace, které běží stejně na všech počítačích, bez ohledu na konfiguraci hostitelského systému. Tím eliminujeme problémy typu „na mém počítači to ale funguje“.

Kontejnery Dockeru se skládají z image, který lze chápat jako šablonu aplikace, a containeru, což je běžící instance image. Image aplikací lze stahovat z Docker Hubu, což je online repozitář image. Docker se hodí pro vývoj, testování i nasazení jakékoliv aplikace, bez ohledu na její typ. Docker zjednodušuje správu prostředí, umožňuje rychlé nasazení, efektivně využívá systémové zdroje a zabraňuje konfliktům mezi různými aplikacemi a jejich závislostmi.

Také v Dockeru můžeme spustit kontejner s Ubuntu. Hlavní rozdíl oproti virtuálnímu stroji je v tom, že kontejner nesimulujte celý operační systém, ale sdílí jádro hostitelského systému a obsahuje jen aplikace, knihovny a nástroje Ubuntu. Kontejner tedy není samostatný počítač. Startuje ale velmi rychle, zabírá málo paměti a disku a lze ho snadno přesouvat mezi různými počítači.

Výše zmíněné si můžeme vyzkoušet i na našem zařízení. Nejprve musíme stáhnout Docker z oficiálních stránek projektu.

Obrázek

Po nainstalování Docker Desktopu můžeme spustit Ubuntu přímo v kontejneru. Nejprve je potřeba stáhnout image Ubuntu z oficiálního repozitáře Docker Hub. To uděláme pomocí příkazu v terminálu: docker pull ubuntu. Tento příkaz stáhne nejnovější verzi Ubuntu do našeho systému a připraví ji k použití.

Jakmile je image stažený, můžeme vytvořit a spustit kontejner. Použijeme příkaz docker run -it ubuntu , který vytvoří novou instanci kontejneru a otevře interaktivní terminál. V tomto terminálu už běží Ubuntu a můžeme spouštět příkazy stejně, jako v terminálu počítače s operačním systémem Ubuntu. Pokud chceme kontejner pojmenovat a mít možnost jej snadno spravovat, můžeme přidat parametr --name nazev_kontejneru, například docker run -it --name muj_ubuntu ubuntu.

Po dokončení práce v kontejneru lze kontejner ukončit příkazem exit. Pokud jej chceme později znovu spustit, použijeme příkaz docker start -ai muj_ubuntu, který kontejner znovu spustí a připojí nás do interaktivního terminálu. Tímto způsobem můžeme Ubuntu v Dockeru používat opakovaně, rychle spouštět a testovat aplikace, aniž bychom potřebovali instalovat celý operační systém ve virtuálním stroji.

Úkoly k dnešnímu cvičení