Hlavní navigace

Klonovanie tučniaka alebo virtualizácia v Linuxe: úvod

Ján Andrejkovič

Chceli by ste spustiť DNS, FTP, mail alebo iné služby tak, aby boli maximálne izolované od ostatných? Zamýšlali ste sa nad tým, či je možné spustiť kernel pod kernelom a načo by to mohlo byť dobré? Hodilo by sa vám spustiť a testovať novú verziu kernelu na tom istom počítači bez reštartu? Nestačí vám jeden tučniak? Tak si ho naklonujte!

Klonovany tucnak

Tento príspevok neobsahuje konkrétne návody ako na to, jeho cieľom je ukázať prehľad rôznych open-source projektov, ktoré súvisia s virtualizáciou v Linuxe. V texte sú odkazy na konkrétne projekty a zdroje, z ktorých som čerpal. Ich zhrnutie nájdete na konci príspevku. Článok sa tiež okrajovo zaoberá polo-komerčnými projektami, spustením iných OS pod Linuxom a záver obsahuje popis hardvérovej podpory spustenia viacerých OS na jednom PC, ktorú majú priniesť budúce generácie procesorov radu x86.

Čo je to virtualizácia? [1]

Obyčajne je na jednom počítači jeden operačný systém, pod ktorým môžu byť spustené rôzne servre (v zmysle WEB, FTP, mail,…) – v Linuxe nazývané daemony.

Virtualizácia nám ponúka tieto dve základné riešenia:

  • Virtuálny server (VS): Pod jedným operačným systémom je spustených viac od seba izolovaných serverov.
  • Virtuálny stroj (virtual machine – VM) [2]: na jednom počítači je spustených viac operačných systémov naraz. Program, ktorý tieto systémy koordinuje a spravuje, sa nazýva virtuálny monitor (virtual monitor).

Hlavnou výhodou je, že virtuálne systémy (VS alebo VM) sú navzájom izolované, takže napadnutie alebo zrútenie jedného neovplyvní druhý a zároveň sa znižuje riziko napadnutia celého systému. Tiež sa znižujú náklady na hardvér, pretože pre rovnaký počet poskytovaných služieb je potrebných menej počítačov.

Projekty založené na VM môžu buď vytvárať virtuálny hardware (napríklad projekty UML a XEN), alebo emulovať skutočný hardware (QEMU, Bochs).

Na druhej strane virtualizácia prináša vyššie nároky na hardvér, každý virtuálny systém potrebuje isté množstvo fyzickej RAM a miesta na disku a tiež sa zvyšujú požiadavky na spoľahlivosť celého systému. Tým samozrejme narastá aj jeho cena.

Aké uplatnenie má virtualizácia v praxi?

  • beh dvoch rovnakých serverov naraz, jeden beží naostro a druhý môžeme aktualizovať, ladiť alebo testovať
  • vytvorenie honeypots [3] alebo honeynets [4] (medové motúzy ;) ) – systémy, ktoré sú zámerne otvorené pre útočníkov s cieľom zisťovať ich postupy
  • väčšina implementácií virtualizácie podporuje virtuálne sieťové karty, tieto umožňujú vytvoriť a testovať virtuálnu sieť
  • virtuálne stroje umožňujú ľahké testovanie spadnutia a obnovy systému
  • využitie v školstve a vzdelávaní – každý študent môže mať práva roota vo svojom virtuálnom stroji
  • použitie pri web-hostingu – každý zákazník môže mať úplný prístup k vlastnému virtuálnemu systému
  • testovanie softvéru na hardvéri, ktorý fyzicky nemáte (napr. 64bit CPU)

Prehľad projektov virtualizácie pre Linux

Projekty virtualizácie v Linuxe väčšinou vyžadujú patchovanie a následne kompilovanie kernelu. Na stránkach alebo v dokumentácii konkrétneho projektu nájdete presný návod.

Nižšie spomenuté projekty používajú rôznu terminológiu, ktorú sa budem snažiť stručne objasniť v popise projektov.

Dosť bolo teórie, pozrime sa sa na konkrétne projekty, ktoré som zaradil od jednoduchších k zložitejším, pričom som sa snažil vystihnúť ich slabé aj silné miesta (zhrnuté ako výhody a nevýhody):

VServer – Virtual Server [5], [6]

Patrí medzi najjednoduchšie implementácie virtualizácie a vzdialene sa podobá na BSD JAIL [7]. Tento projekt využíva a rožširuje bezpečnostný systém Linuxu – Linux capabilities. VServer umožňuje spustiť izolované daemony v user-space prostredí. Tieto daemony sú pomenované ako Virtual Private Servers (VPS). Jednotlivé VPS sú oddelené pomocou rozšírenej funkcie chroot a tiež sú oddelené na úrovni procesov (IPC, PIDs). Každý VPS má vlastný sieťový interfejs, ktorý je implementovaný v štýle sieťového aliasu.

VServer umožňuje nastaviť limity na pamäť, CPU, procesy a tiež na súborový systém a nezabúda ani na zariadenia v /dev a na informácie a nastavenia v /proc. Aj keď všetky VPS musia používať ten istý kernel, v rámci jednotlivých VPS je možné spustiť rôzne linuxové distribúcie.

Tento projekt sa zdá byť dosť životaschopným a vytvorilo sa okolo neho množstvo dokumentácie – napríklad [8].

Výhody:

  • Rýchlosť – všetky VPS používajú ten istý kernel, preto programy v nich bežiace majú takmer rovnakú rýchlosť ako bez použitia VServera
  • Bezpečnosť – vylepšenia klasickej funckcie chroot, z ktorej sa inak dá uniknúť [9]
  • – veľa ďalších bezpečnostných vylepšení
  • Miesto na disku – šetrí miestom, lebo umožňuje zdieľať rovnaké súbory medzi VPS, no každý VPS ich v prípade potreby môže zmazať a aktualizovať bez toho, aby ovplyvnil ostatné VPS
  • Prenositeľnosť – VServer podporuje rôzne architektúry [10]

Nevýhody:

  • Naviazanosť na jeden kernel – neumožňuje spustenie viacerých verzií kernelu naraz
  • Neúplná virtualizácia – nie všetky volania a funkcie sú virtualizované. Napríklad pri namapovaní nevhodných súborov v /dev  alebo /proc môžete otvoriť bezpečnostnú dieru
  • Úzke spojenie s kernelom – predstavuje bezpečnostné riziko
  • Čiastočne virtualizovaná sieť – v jednodlivých VPS nie je možné zmeniť routovanie alebo nastaviť iptables
  • Zatiaľ nepodporuje IPv6

V ďalšej časti príspevku sa pozrieme na projekty UML, XEN a Bochs.

Použité zdroje:

[1] en.wikipedia.or­g/wiki/Virtua­lization – Wiki o virtualizácii
[2] en.wikipedia.or­g/wiki/Virtual_machi­ne – definícia Virtuálneho stroja na Wiki
[3] en.wikipedia.or­g/wiki/Honeypot – Wiki o Honeypots
[4] www.honeynet.or­g/papers/virtu­al – Stránka o Honeynets
[5] linux-vserver.org – domáca stránka projektu VServer
[6] www.solucorp.qc­.ca/miscprj/s_con­text.hc – ďalšia stránka o projekte VServer
[7] docs.freebsd.or­g/44doc/paper­s/jail/jail.html – manuál k BSD Jail
[8] linux-vserver.org/Linux-VServer-Paper – manuál projektu VServer
[9] www.bpfh.net/si­mes/computing/chro­ot-break.html – z chrootu sa dá uniknúť
[10] linux-vserver.org/Linux-VServer-Paper-10 – architektúry podporované VServerom

Našli jste v článku chybu?

4. 10. 2005 9:22

V úvode padla otázka: "Chceli by ste spustiť DNS, FTP, mail alebo iné služby tak, aby boli maximálne izolované od ostatných?" ... tak na takéto služby je vserver skoro ideálny ...

"Hodilo by sa vám spustiť a testovať novú verziu kernelu na tom istom počítači bez reštartu?" ... na tieto účely sa však VServer nedá použiť ... predpokladám, že neexistuje nejaký najlepší spôsob virtualizácie ... každý si zvolí taký spôsob, ktorý mu najviac vyhovuje

už sa teším na ďal…

120na80.cz: Pánové, pečujte o svoje přirození a prostatu

Pánové, pečujte o svoje přirození a prostatu

Lupa.cz: Kdo pochopí vtip, může jít do ČT vyvíjet weby

Kdo pochopí vtip, může jít do ČT vyvíjet weby

DigiZone.cz: ČRo rozšiřuje DAB do Berouna

ČRo rozšiřuje DAB do Berouna

Vitalia.cz: Vychytané vály a válečky na vánoční cukroví

Vychytané vály a válečky na vánoční cukroví

Měšec.cz: Komu musí od ledna zvýšit mzdu?

Komu musí od ledna zvýšit mzdu?

Vitalia.cz: Taky věříte na pravidlo 5 sekund?

Taky věříte na pravidlo 5 sekund?

120na80.cz: Horní cesty dýchací. Zkuste fytofarmaka

Horní cesty dýchací. Zkuste fytofarmaka

Podnikatel.cz: Snížení DPH na 15 % se netýká všech

Snížení DPH na 15 % se netýká všech

Podnikatel.cz: K EET. Štamgast už peníze na stole nenechá

K EET. Štamgast už peníze na stole nenechá

120na80.cz: Co všechno ovlivňuje ženskou plodnost?

Co všechno ovlivňuje ženskou plodnost?

Vitalia.cz: Pamlsková vyhláška bude platit jen na základkách

Pamlsková vyhláška bude platit jen na základkách

Root.cz: Certifikáty zadarmo jsou horší než za peníze?

Certifikáty zadarmo jsou horší než za peníze?

Vitalia.cz: Potvrzeno: Pobyt v lese je skvělý na imunitu

Potvrzeno: Pobyt v lese je skvělý na imunitu

Vitalia.cz: Láska na vozíku: Přitažliví jsme pro tzv. pečovatelky

Láska na vozíku: Přitažliví jsme pro tzv. pečovatelky

Vitalia.cz: Spor o mortadelu: podle Lidlu falšovaná nebyla

Spor o mortadelu: podle Lidlu falšovaná nebyla

Měšec.cz: Air Bank zruší TOP3 garanci a zdražuje kurzy

Air Bank zruší TOP3 garanci a zdražuje kurzy

Lupa.cz: Propustili je z Avastu, už po nich sahá ESET

Propustili je z Avastu, už po nich sahá ESET

Lupa.cz: Co se dá měřit přes Internet věcí

Co se dá měřit přes Internet věcí

Měšec.cz: Stavební spoření: alternativa i pro seniory

Stavební spoření: alternativa i pro seniory

Podnikatel.cz: Chaos u EET pokračuje. Jsou tu další návrhy

Chaos u EET pokračuje. Jsou tu další návrhy