OpenVZ

OpenVZ

Typ virtualizace
Vývojář Komunita poháněná Parallels
Operační systém linux
První vydání 2005
Hardwarová platforma x86 , x86-64 , IA-64 , PowerPC , SPARC , ARM
Nejnovější verze

Jádro :
2.6.32-042stab084.17 (stabilní) [1]
2.6.32-042stab113.5 (experimentální) [2]
vzctl  - 4.6.1 [3]

vzquota  -3.1 [4]
Licence GNU GPL v.2
webová stránka openvz.org
 Mediální soubory na Wikimedia Commons

OpenVZ  je implementace virtualizační technologie na úrovni operačního systému, která je založena na linuxovém jádře . OpenVZ umožňuje provozovat mnoho izolovaných kopií operačního systému na jednom fyzickém serveru, nazývaném „virtuální privátní servery“ (Virtual Private Servers, VPS) nebo „virtuální prostředí“ (Virtual Environments, VE).

Vzhledem k tomu, že OpenVZ je založeno na linuxovém jádře, na rozdíl od virtuálních strojů (například VMware , Parallels Desktop ) nebo paravirtualizačních technologií (například Xen ), mohou jako "hostující" systémy fungovat pouze distribuce Linuxu . Virtualizace na úrovni operačního systému v OpenVZ však poskytuje lepší [5] výkon, škálovatelnost, hustotu nasazení, dynamickou správu zdrojů a snadnou správu než alternativní řešení. Podle webu OpenVZ je režie virtualizace velmi nízká a zásah do výkonu je pouze 1-3 % ve srovnání s běžnými linuxovými systémy.

OpenVZ je základní platforma pro Virtuozzo  , proprietární produkt společnosti Parallels, Inc. OpenVZ je distribuován za podmínek licence GNU GPL v.2.

OpenVZ se skládá z upraveného linuxového jádra a uživatelských utilit .

Jádro

Jádro OpenVZ je upravené linuxové jádro, které přidává koncept virtuálního prostředí ( VE ). Jádro poskytuje virtualizaci, izolaci, správu prostředků a kontrolní body (udržování aktuálního stavu VE).

Verze jádra

V současné době je podporováno několik větví OpenVZ jader. Větve se liší stabilitou a ve verzi RHEL vycházely z [6] .

Verze jádra Stabilní/Testování Verze RHEL
vzkernel-2.6.32-042stab085.17 Stabilní 6
vzkernel-2.6.32-042stab084.17 testování 6
ovzkernel-2.6.18-348.16.1.el5.028stab108.1 Stabilní 5.9
ovzkernel-2.6.18-371.3.1.el5.028stab110.1 testování 5.10

Sada uživatelských utilit

Hlavní nástroje jsou:

Existuje také řada nástrojů, které buď nejsou oficiálně podporovány, nebo jsou „opuštěny“:

Virtualizace a izolace

Každý VE je samostatná entita a z pohledu vlastníka VE vypadá téměř jako běžný fyzický server. Každý VE má své vlastní:

Soubory Systémové knihovny, aplikace, virtualizované FS /proc a /sys , virtualizované zámky atd. Uživatelé a skupiny Vaši vlastní uživatelé a skupiny, včetně root . Procesní strom VE vidí pouze své vlastní procesy (počínaje init ). ID procesů (PID) jsou také virtualizovány, takže PID programu init je 1. Síť Virtuální síťové zařízení (venet), které umožňuje VE mít vlastní IP adresy a také sady pravidel směrování a brány firewall (netfilter/iptables). Zařízení V případě potřeby může správce serveru OpenVZ poskytnout VE přístup například ke skutečným zařízením. síťové adaptéry, porty, diskové oddíly atd. IPC objekty Sdílená paměť, semafory, zprávy.

Správa zdrojů

Správa zdrojů v OpenVZ se skládá ze tří složek: dvouúrovňové diskové kvóty, poctivého plánovače procesoru a takzvaných „uživatelských beancounterů“. Tyto prostředky lze měnit za běhu VE, není vyžadován žádný restart.

Dvouúrovňová disková kvóta

Administrátor OpenVZ serveru může nastavit diskové kvóty na VE, pokud jde o diskový prostor a počet inodů (i-uzlů, což je zhruba stejný počet souborů). Toto je první úroveň diskové kvóty.

Kromě toho může správce VE (root) používat běžné nástroje v rámci svého VE k nastavení standardních unixových diskových kvót pro uživatele a skupiny.

Poctivý plánovač CPU

Plánovač procesoru v OpenVZ je také dvouúrovňový. Na první úrovni se plánovač rozhodne, kterému VE přidělí CPU časový úsek na základě hodnoty parametru cpuunitspro VE. Na druhé úrovni standardní plánovač Linuxu rozhodne, kterému procesu ve vybraném VE přidělí časový úsek na základě standardních priorit procesu Linuxu a tak dále.

Správce serveru OpenVZ může nastavit různé hodnoty cpuunitspro různé VE a čas CPU bude rozdělen podle poměru těchto hodnot přiřazených k VE.

K dispozici je také parametr limit - cpulimit, který nastavuje horní hranici času procesoru v procentech, přiděleného pro konkrétní VE.

Uživatel Beancounters

User Beancounters je sada počítadel, limitů a záruk na VE. Existuje sada asi 20 parametrů, které jsou zvoleny tak, aby pokryly všechny aspekty provozu VE, takže žádný VE nemůže zneužít jakýkoli zdroj, který je omezen na celý server, a tím zasahovat do jiných VE.

Zdroje, které se počítají a kontrolují, jsou hlavně RAM a různé objekty v jádře, jako jsou sdílené segmenty paměti IPC, síťové vyrovnávací paměti atd. Každý zdroj lze zobrazit v souboru /proc/user_beancounters  - existuje pět hodnot \u200b \u200bpro něj : aktuální využití, maximální využití (po celou dobu životnosti VE), bariéra, limit a počítadlo odrazů. Význam bariéry a limitu závisí na parametru; ve zkratce je lze považovat za měkký limit a tvrdý limit. Pokud se nějaký zdroj pokusí překročit limit, jeho počítadlo nedoručení se zvýší - takže vlastník VE může vidět, co se děje, přečtením souboru /proc/user_beancounters ve svém VE.

Kontrolní body a migrace za běhu

Funkce on-the-fly migrace a kontrolních bodů byla pro OpenVZ vydána v polovině dubna 2006. Umožňuje vám přesunout VE z jednoho fyzického serveru na druhý, aniž byste museli zastavovat/restartovat VE. Tento proces se nazývá checkpointing: VE je „zmrazeno“ a jeho kompletní stav je uložen do souboru na disku. Dále lze tento soubor přenést na jiný stroj a tam „rozmrazit“ (obnovit) VE. Zpoždění tohoto procesu (doba, kdy je VE zmrazeno) je přibližně několik sekund; je důležité zdůraznit, že se jedná o zpoždění služby, nikoli o odmítnutí služby.

Počínaje verzí 2.6.24 jsou v jádře zahrnuty jmenné prostory pid (jmenné prostory pid, pid je identifikátor procesu), v důsledku čehož se průběžná migrace stává „bezpečnou“, protože v tomto případě jsou 2 procesy v různých VE může mít stejné pid.

Protože všechny podrobnosti o stavu VE, včetně otevřených síťových připojení, jsou zachovány, z pohledu uživatele VE vypadá proces migrace jako zpoždění v reakci: řekněme, jedna z databázových transakcí trvala déle než obvykle a pak práce pokračuje. jako obvykle; uživatel si tedy nevšimne, že jeho databázový server již běží na jiném fyzickém serveru.

Díky této funkci jsou scénáře, jako je upgrade serveru bez nutnosti jeho restartu, reálné: pokud například vaše DBMS potřebuje více paměti nebo výkonnější procesor, koupíte si nový výkonnější server a migrujete na něj VE z DBMS a poté zvýšit limity na tomto VE . Pokud potřebujete přidat RAM na server, migrujete všechna VE z tohoto serveru na jiný, vypnete server, nainstalujete více paměti, spustíte server a migrujete všechna VE zpět.

vSwap

Počínaje verzí jádra RHEL 6 042stab04x byla přidána podpora pro vSwap Archivováno 27. června 2013 na Wayback Machine . Již není třeba počítat limity UBC Archivováno 7. června 2017 na Wayback Machine . Stačí při vytváření "hostovacího systému" uvést pouze PHYSPAGES a SWAPPAGES.

Izolace mezipaměti stránek

Počínaje jádrem 042stab068.8 bylo možné omezit využití diskové mezipaměti kontejnery .

Charakteristické rysy OpenVZ

Škálovatelnost

Vzhledem k tomu, že OpenVZ používá jedno jádro pro všechny VE, je systém stejně škálovatelný jako běžné jádro Linuxu 2.6, tedy podporuje až 4096 procesorů a až 64 GB RAM pro x86 verzi (pomocí PAE ) [7] a 64TB pro x86-64 [8] . Jediné virtuální prostředí lze rozšířit na velikost celého fyzického serveru, tedy využít veškerý dostupný čas procesoru a paměť.

OpenVZ je možné používat s jediným virtuálním prostředím na serveru. Tento přístup umožňuje VE plně využívat všechny hardwarové prostředky serveru s téměř „nativním“ výkonem a využívat další výhody: nezávislost VE na hardwaru, subsystém správy zdrojů, „živá“ migrace.

Hustota

OpenVZ je schopen hostovat stovky virtuálních prostředí na moderním hardwaru . Hlavními limitujícími faktory jsou velikost paměti RAM a frekvence procesoru.

Tento graf ukazuje dobu odezvy webových serverů VE versus počet VE na počítači. Měření byla provedena na počítači se 768 MB (¾ GB) RAM; na každém VE běžela obvyklá sada procesů: init , syslogd , crond , sshd a webový server Apache . Démoni Apache obsluhovali statické stránky, které byly staženy obslužným programem http_load, a byla měřena první doba odezvy. Jak vidíte, s nárůstem počtu VE se doba odezvy prodlužuje - je to způsobeno nedostatkem RAM a silným swapováním.

V tomto scénáři je možné spustit až 120 těchto VE na počítači se ¾ GB RAM. Vzhledem k tomu, že hustota roste se zvyšujícím se množstvím RAM téměř lineárně, lze extrapolovat, že na stroji s 2 GB paměti je možné provozovat asi 320 těchto VE za předpokladu zachování dobrého výkonu.

Hromadná správa

Vlastník fyzického serveru s OpenVZ (root) vidí všechny procesy a soubory všech VE. Tato funkce umožňuje hromadnou správu, na rozdíl od jiných virtualizačních technologií (jako je VMware nebo Xen ), kde jsou virtuální servery samostatné entity, které nelze přímo spravovat z hostitelského systému.

Příklady použití

Tyto případy použití se vztahují na všechny virtualizační technologie. Jedinečnost virtualizační technologie na úrovni OS však spočívá v tom, že uživatel nemusí za virtualizaci příliš „platit“ (např. ztráta výkonu atd.), což činí základní scénáře ještě atraktivnějšími.

Bezpečnost Pro každou síťovou službu (např. webový server, poštovní server, DNS server atd.) můžete použít samostatné VE. V případě, že hacker najde a použije zranitelnost v jedné z aplikací, aby se dostal do systému, může prolomit pouze samotnou službu se zranitelností – všechny ostatní služby jsou v samostatných izolovaných VE, ke kterým nemá přístup. Konsolidace serverů Pomocí OpenVZ lze nečinné servery konsolidovat (sloučit) jejich přesunem do virtuálních prostředí. Je tedy možné zvýšit zatížení serverů a snížit prostor, který zabírají, snížením počtu strojů. Vývoj a testování softwaru Vývojáři a testeři Linuxu obvykle potřebují přístup k mnoha různým distribucím a často potřebují distribuce od začátku přeinstalovat. Pomocí OpenVZ mohou získat vše na jednom serveru, bez nutnosti restartu as "nativním" výkonem.

Podobné technologie

Další implementace virtualizační technologie na úrovni operačního systému: Linux-VServer , FreeBSD Jails , LXC , Solaris Containers , IBM AIX6 WPAR.

Nevýhody

Mezi nedostatky lze identifikovat:

Omezený výběr "hostujícího" OS Jako "hostující" systém mohou fungovat pouze různé distribuce Linuxu .

Viz také

Poznámky

  1. Download/kernel/rhel6 Archivováno 13. ledna 2012 na Wayback Machine  
  2. Download/kernel/rhel6-testing Archivováno 14. března 2012 na Wayback Machine  
  3. Download/vzctl Archivováno 18. ledna 2012 na Wayback Machine  
  4. Download/vzquota Archivováno 18. ledna 2012 na Wayback Machine  
  5. Technická zpráva HPL-2007-59 Archivováno 22. srpna 2010 na Wayback Machine  
  6. Stáhněte si /kernel  . wiki.openvz.org. Datum přístupu: 22. ledna 2014. Archivováno z originálu 1. února 2014.
  7. Různé  příchutě jádra . wiki.openvz.org. Datum přístupu: 22. ledna 2014. Archivováno z originálu 1. února 2014.
  8. Andy Kleen. Dokumentace k linuxovému jádru  . kernel.org (červenec 2004). Datum přístupu: 22. ledna 2014. Archivováno z originálu 1. února 2014.

Odkazy