Portál AbcLinuxu, 7. května 2025 12:20

OpenVZ - správa výpočetních zdrojů

30. 10. 2007 | Jaroslav Tomeček
Články - OpenVZ - správa výpočetních zdrojů  

V minulém díle jsme po lehkém úvodu prošli správu výpočetních zdrojů Linux-VServeru. V posledním díle seriálu se podíváme na stejnou problematiku u OpenVZ.

Minule jsme se zmínili, k čemu vlastně správa výpočetních zdrojů slouží, postupně jsme ji probrali u Linux-VServeru, který vychází z limitů SVr4, 4.3BSD a POSIX.1-2001. Zkušený správce tak pouze rozšíří své znalosti. U OpenVZ je tomu jinak. Autoři vytvořili zcela nové metody a použili jiné postupy. Pojďme se podívat jaké.

Správa výpočetních zdrojů OpenVZ

Parametry pro přidělované systémové prostředky virtuálním serverům OpenVZ můžeme rozdělit do tří kategorií: primární, sekundární a pomocné. Primární slouží k základnímu nastavení a omezení přidělení systémových prostředků. Sekundární jsou na nich závislé. Pomocné pomáhají izolovat běžící aplikace uvnitř VPS a určují způsob, jakým mají aplikace zpracovávat chyby, a jakým jim mají být přiděleny systémové prostředky. Tím také umožňují nastavit administrátorská pravidla pro spouštěné aplikace. Celkový koncept parametrů OpenVZ je velmi složitý a neprůhledný. Administrátor si musí být vědom, jakého cíle chce dosáhnout, jinak systém nemusí být stabilní.

V kontextu OpenVZ je měkký limit označován jako bariéra (barrier) a tvrdý limit jako limit (limit).

Následující seznam uvádí systémové prostředky, které můžeme omezit. Jejich hodnoty jsou ukládány v lokálním souboru nastavení VPS /etc/sysconfig/vz-scripts/<VPS_ID>.conf:

Primární parametry:

Sekundární parametry:

Pomocné parametry:

Nastavení těchto parametrů je možné změnit přímo konfiguračním souborem nebo pomocí utility vzctl. Příklad ukazuje změnu nastavení měkkého i tvrdého limitu s trvalým uložením změn:

# vzctl set 101 --kmemsize 2211840:2359296 --save

Nastavený limit systémových zdrojů můžeme uvnitř každého VPS získat ze souboru /proc/user_beancounters. Soubor obsahuje aktuální a maximální „zatížení“ zdrojů, bariéru a limit pro každý zdroj.

V hardwarovém uzlu tento soubor obsahuje informace napříč všemi VPS.

Využití paměti můžeme zjistit pomocí utility vzmemcheck:

# vzmemcheck -v

Output values in %
veid  LowMem LowMem  RAM MemSwap MemSwap Alloc  Alloc Alloc
        util commit util    util  commit  util commit limit
101     0.19   1.93 1.23    0.34    1.38  0.42   1.38  4.94
1       0.27   8.69 1.94    0.49    7.19  1.59   2.05 56.54

Parametrem -v odmítneme zobrazení informací o hardwarovém uzlu. Chceme-li zobrazit absolutní informace v MiB namísto podílů, použijeme přepínač -A. Sloupec util značí využití daného systémového prostředku. Sloupec commit značí, kolik prostředků systém „slíbil“ VPS.

Správu systémových prostředků můžeme provádět následujícími způsoby:

Prvním je použití konfiguračních souborů - při vytváření VPS je pro konfiguraci přidělení systémových prostředků použit soubor ve-name.conf-sample. Standardně jsou k dispozici dva soubory:

Tyto soubory je možné použít i pro změnu nastavení již existujících VPS. Jsou zachovány pouze parametry OSTEMPLATE (označení distribuce), VE_ROOT (adresář se soubory běžícího VPS) a VE_PRIVATE (adresář se soubory zastaveného VPS). Pokud chceme například aplikovat nastavení souboru ve-light.conf-sample:

# vzctl set 101 --applyconf light --save

Druhým způsobem správy je užití speciální utility vzctl.

Třetí způsob je přímé editování konfiguračního souboru /etc/sysconfig/vz-scripts/VPS_ID.conf.

Rovnoměrné rozdělení výkonu hardwarového uzlu

Utility systému OpenVZ umožňují vytvoření několika VPS, každého výkonnostně odpovídajícího určitému zlomku hardwarového uzlu. Pro vytvoření konfiguračního souboru pro 20 ekvivalentních VPS použijeme následující příkazy:

# cd /etc/sysconfig/vz-scripts/
# vzsplit -n 20 -f vps.equaltest

Tím je vytvořen konfigurační soubor ve-vps.equaltest.conf-sample. Tento soubor je potřeba validovat utilitou vzcfgvalidate. Tato utilita kontroluje konfigurační soubor a nabízí doporučení k jeho úpravám.

Validace konfiguračního souboru

Mezi hodnotami přidělení jednotlivých systémových prostředků existují důležité závislosti. Vzhledem k jejich počtu a složitosti je velmi obtížné zkontrolovat, zda nedošlo k vážnému narušení těchto provázaností. K tomuto účelu je určena utilita vzcfgvalidate:

# vzcfgvalidate /etc/sysconfig/vz-scripts/101.conf

Error: kmemsize.bar should be > 1835008 (currently, 25000)
Recommendation: dgramrcvbuf.bar should be > 132096 (currently, 65536) 
Recommendation: othersockbuf.bar should be > 132096 (currently, 65536)

Utilita zobrazuje porušení závislostí:

Závěr

Tímto uzavíráme seriál zabývající se Linux-VServerem a OpenVZ. Společně jsme si prošli instalaci systémů, tvorbu virtuálních serverů a základy jejich konfigurace. Pokud toužíte získat další informace o systémech, doporučuji navštívit stránky projektů - Linux-VServer a OpenVZ, bližší informace k virtualizaci na úrovni jádra nalezneme na Wikipedii.

Přeji vám mnoho úspěchů s virtuálními stroji!

Související články

Jaderné noviny: Souborové kvalifikace
Jaderné noviny: KVM 15
Jaderné noviny: Vývoj KVM
Jaderné noviny: /dev/kvm
Jaderné noviny: Patche Xen
Jaderné noviny: Kontejnery procesů
Jaderné noviny: Připojení Linuxu k hypervisorům
Jaderné noviny: Virtualizační rozhraní VMI
Jaderné noviny: Kontejnery a odlehčená virtualizace
Jaderné noviny: API pro virtuální I/O: virtio
Jaderné noviny: Virtuální čas
Jaderné noviny: OpenVZ a checkpointing za běhu
Jaderné noviny: Zdroje: má dáti, dal
Chroot prostředí

Odkazy a zdroje

openvz.org

Další články z této rubriky

Úvod do Dockeru (1)
Paralelizace běžných činností v konzoli pomocí GNU Parallel
Unixové nástroje – 26 (triky pro práci v Bashi)
Unixové nástroje – 25 ((s,c)fdisk, gdisk, parted a findmnt)
Linux: systémové volání splice()

Diskuse k tomuto článku

30.10.2007 11:08 Jan Forman | skóre: 10 | Plzeň
Rozbalit Rozbalit vše Re: OpenVZ - správa výpočetních zdrojů
Odpovědět | Sbalit | Link | Blokovat | Admin
Príma líbilo se... dík
--- janforman.com ---
30.10.2007 16:19 Roman
Rozbalit Rozbalit vše Re: OpenVZ - správa výpočetních zdrojů
Odpovědět | Sbalit | Link | Blokovat | Admin
Hezky zpracovaný seriál.

Předpokládám, že autor má s recenzovanými nástroji i reálné zkušenosti. Pokud tomu tak je, tak by bylo velmi zajímavé se o ně podělit v dalším článku. V produkčním provozu pod zátěží se často narazí na další vlastnosti, které se ale v manuálu nenajdou...

Že by to byla taková pěkná tečka za celým seriálem. ;-)
31.10.2007 08:46 Jan Forman | skóre: 10 | Plzeň
Rozbalit Rozbalit vše Re: OpenVZ - správa výpočetních zdrojů
OpenVZ se chová nepozorovatelně i při vyšším zatížení. (zpomalení je neznatelné). Dokonce ani při práci s diskem není nic znát. Je to dáno architekturou (jedno jádro). Jediné co samozřejmě zpomaluje jsou duplicitně spuštěné sdílené knihovny (GLIBC např.). Síťový subsystém se chová normálně. Rozdíl mezi spuštěnými programy pod jedním serverem a tím samým serverem s virtuálními stroji je téměř žádný. To je moje praktické pozorování provozu OpenVZ.

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.