Virtualizace

Zpracoval - Tomáš Sedmík

Kde se vzal pojem virtualizace a co vlastně znamená?

S virtualizací se setkáváme již od 60. let 20. století. V této době se přemýšlí jak počítač, jako výpočetní jednotku, sdílet mezi více uživatelů, procesů. S tímto sdílením, však vzniká jeden závažný problém. Jak rozdělit zdroje?

Uveďme si malý příklad:

První proces chce alokovat pamět, počítač mu ji alokuje. Máme druhý proces, který chce také alokovat pamět, ale jelikož fyzická pamět počítače je omezená, tak může nastat situace kdy není dostatek paměti pro druhý proces. Co s tím? Počítač může pamět alokovat, ale dané procesy budou mít část paměti sdílenou mezi sebou a mohou si ji navzájem přepisovat. To by asi nebylo dobré. Nebo počítač řekne druhému procesu "Nemám dostatek paměti", pamět procesu nealokuje a dál se o to nestará.

Jedním z konceptů, jak tento problém řešit je virtualizace. Virtualizací myslíme stav, kdy každý proces má "iluzi", že celé (mnohdy i více než to) fyzické vybavení počítače je jen pro něj. O virtualizaci nemluvíme jen, když se se bavíme o paměti, virtualizovat lze libovolnou komponentu počítače, některé s lepšími výsledky (např. pamět, která se dá lehce rozšířit využitím kapacity pevného disku), jiné s horšími (procesor),nebo můžeme virtualizovat celý počítač jako virtualní stroj.


Virtuální stroje

Co se myslí pojmem virtuální stroj a k čemu je dobrý?

Představme si situaci, ve které se ocitá nejeden programátor. Vytvoříte svojí úžasnou aplikaci a jelikož chcete vytěžit ze svého dítka co nejvíce peněžní hodnoty, tak usilujete o to, aby Váš program kupovalo co možná největší procento potenciálních zákazníků. Problém je, že né všichni maji stejné počítače, operační systémy, ... Vy jako programátoři máte své prostředí ve kterém tvoříte, operační systém na kterém pracujete, odladíte svůj program a teď by jste ho chtěli vyzkoušet na jiné platformě s jiným operačním systémem. Jaké máte možnosti? Pojďmě se na ně podívat

1) Jste velmi movití a když chcete Váš program vyzkošet v jiném prostředí, tak si jednoduše to prostředí obstaráte, čili nakoupíte plno strojů s různými systémy, které stejně budete využívat jen když budete něco ladit.

2) Nejste z těch pár vyvolených, kterým tisícidolarové účty hlavu netíží, ale jednou by jste jimi chtěli být. Tak co s tím? Máte jeden počítač. Dobře, základ by byl. Odladíte svoji aplikaci pro určitý systém, pak počítač přeinstalujete s jiným operačním systémem a vesele pokračujete ve zkoušení Vaší geniální aplikace.

3) Nemusíte být bohatí, stačí být chytrý. Vzpomenout si na onu virtualizaci a prostředí, které chcete si jednoduše naemulujete.

Která možnost se Vám zdála být nejlepší? Doufám, že rozhodně virtualizace. Bod 1) => Opravdu né každý je tak bohatý, Bod 2) => V dnešní době platí čas = peníze a my o peníze nechcem přicházet, Bod 3) Virtualizace, o té si povíme něco více...


Jaké máme možnosti virtualizace

Virtualizační proces se nezaměřil jen jedním či dvěma směry. Tady uvedu pár příkladů kde se s virtualizací setkáme nejčastěji. Vždy se jedná o vytvoření iluze, že aplikace (procesy) mají více zdrojů, než fyzicky mají.

1) Ladění aplikací pod různými systémy
2) Dokonalejší využití hardware
Toto je dosti důležitý bod a zaslouží si trochu rozvést. Opět uvedu příklad, který nám do toho vnese trochu světla.

Představte si, že vlastníte server-housingovou, web-housingovou společnost a nabízíte, že budete poskytovat Vaše servery pro klientské aplikace. Některé aplikace budou tak náročné, že sami využijí veškerý potenciál fyzického zařízení na kterém běží, v tomto případě se nedá nic moc dělat,ale většinou se budete potkávát se serverovými aplikacemi, které veškerý potencíál nevyužijí, ale pro svůj chod ho potřebují "jakoby" celý. V tomto momentu se nám velmi vyplatí implementovat na náš stroj nějáký virtualizační program, který nám udělá to, že na daném stroji může běžet více serverů, nezávisle na sobě. Tím se lépe využije hardware a velmi to odlehčí naší peněžence. Jsou i jiné důvody, proč to tak dělat, ale těmi Vás nebudu zatěžovat.


Příklady kde se používá virualizace

Virtuální stroje - vytváří imaginární počítač uvnitř skutečného počítače. Všechny aplikace se chovají jako by běželi na skutečném hardware

Virtuální paměť - umožňuje aplikacím využívat více paměti, než je skutečně na fyzickém zařízení přítomno

RAID - zapojení pevných disků do pole v kterém získavají větší rychlost, kratší přístupovou dobu a větší odolnost vůči chybám

Multitasking - může běžet více aplikací "zároveň"

Emulace - je speciální případ virtualizace. Emulace používáme zpravidla pro emulování (vytvoření dojmu) jiného hardware, než skutečně máme. Například můžeme na obyčeném PC emulovat Sony PlayStation, ZX Spectrum, WII, ...


A čím tu virtualizaci provedeme?

V dnešní době exituje více aplikací, které nám nabízí širokou škálu možností v oblasti virtualizace. Vzpomenu zde pár aplikací, s kterými se můžete setkat



MS Virtual Machine 2004 - této aplikaci byla poměrně nedávno změněna licence na Freeware, takže pokud máte zájem si vyzkoušet třeba linux, ale bojíte se, že se vá pokazí systém, příjdete o svá data, pomocí virtualizace je to 100% bezpečné
Microsoft Virtual PC 2004 Service Pack 1 - virtuální stroj, pro provoz více OS najednou. Podporuje oficiálně jen operační systémy Microsoft Windows. Je šířen zcela zdarma i ke komerčním účelům.
Microsoft Virtual Server 2005 R2 - virtuální stroj, určený především pro nasazení v serverech. Podporuje oficiálně operační systémy Microsoft Windows a některé distribuce Linuxu. V počítačích s procesorem x64 je schopen podporovat obě platformy x86 a x64. Je šířen zcela zdarma i ke komerčním účelům.
VMware GSX Server - virtuální stroj, určený především pro nasazení v serverech. V současné době jej nahradil VMware Server, který je šířen zdarma. Qemu – rychlý emulátor několika platforem (x86, ARM, SPARC atd.)


Pár užitečných odkazů, kde se o virtualizace dočtete


Wikipedia - Virtualizace
MS Virtual Machine
VMWare.com
Google - virtualizace


Pár slov závěrem

Tento lehký a rychlý vhled do problemaiky virtualizace, jsem napsal k motivaci Vás, kteří o virtualizaci slyšeli, jen jako, že něco takového možná existuje, ale nikdo o tom nemluví, není to pravda. Virtualizace je všude a budeme se s ní setkávat stále častěji. Děkuji za čas strávený nad tímto článkem.


Použitá literatura
Virtualizace výpočetního prostředí - Luděk Matyska