Image
6.8.2016 0 Comments

Seriál: Linux súkromne i pracovne v2.0 (11. časť)

Úvod >> Digiškola >> Poradňa >> Aplikácie >> Technológie a trendy >> Bezpečnosť >> Ako na to >> Programovanie >> Informačné technológie >> Počítačová grafika >> Foto a video >> Webdizajn >> Linux >> Databázy >> Hacking webu 

Linux Containers

Každá „slušne“ naprogramovaná aplikácia umožňuje svojim používateľom sledovať, čo sa deje v jej vnútri, teda v akom stave sa nachádza vykonávanie jej kódu. Tým svojmu okoliu poskytuje cenné informácie o úspešnom či neúspešnom plnení jednotlivých úloh. Operačný systém Linux, konkrétne jeho jadro, možno takisto považovať za aplikáciu, ktorá má zabudované mnohé mechanizmy, pomocou ktorých používateľov informuje o svojom chode. Samozrejmosť je ukladanie týchto informácií do tzv. logovacích súborov.

Na získavanie, sumarizáciu a vyhodnocovanie vnútorných stavov systému a v ňom bežiacich aplikácií slúžia mnohé špecializované nástroje, ktoré spoločne nazývame tzv. sledovačmi (tracers). Tie zhromažďujú informácie o systémových stavoch, volaniach, výkone (performance), ako aj informácie o pamäťovom a súborovom systéme, sieťovej prevádzke a chode mnohých ďalších služieb. Získané informácie potom analyzujú a navrhujú riešenia prípadných porúch (troubleshooting). O čosi sofistikovanejšie nástroje pracujú na princípe vyhodnocovania monitorovaných stavov a hodnotenia bežného, resp. zvláštneho správania sa (behavior) systému.

V tomto článku vám predstavíme základnú funkcionalitu systému Linux súvisiacu s procesmi. V nasledujúcom článku tieto základy využijeme pri opise konkrétnych monitorovacích nástrojov.

LXC (LinuX Containers)

Kontajnery sú určené na spúšťanie aplikácií v izolovaných kontextoch. Kontajner je zoskupenie procesov, ktoré dodržiavajú rovnaké pravidlá (policies), resp. obmedzenia (limits). Procesy konkrétneho kontajnera zdieľajú množinu parametrov patriacich jednému alebo viacerým subsystémom. Kontajnery sú štruktúrované hierarchicky, čo znamená, že jeden kontajner môže obsahovať iný, resp. niekoľko iných kontajnerov. Každému kontajneru je pridelené dedikované sieťové rozhranie, súborový systém, explicitné zabezpečenie a v neposlednom rade sú preň vyhradené konkrétne systémové zdroje.

Linuxový systém LXC predstavuje odľahčenú (lightweight) formu virtualizácie, ktorej prioritou je minimálna záťaž systému. LXC nevirtualizuje komplexný stroj (VM – virtual machine), ale prostredie (VE – virtual environment). To znamená, že nerieši emuláciu hardvéru, výsledkom čoho je oveľa nižšia systémová záťaž. LXC pracuje so samostatne spúšťanými, vzájomne izolovanými jednotkami, nazývanými kontajnery, ktoré sú podobné modelu chroot. LXC na rozdiel od chroot neizoluje iba súborový systém, ale navyše poskytuje manažment a kontrolu zdrojov.

Systém LXC zastrešuje tzv. kontrolné skupiny (control groups) a menné priestory (namespaces). Kontrolné skupiny (CGroups) alokujú kontajnerom systémové zdroje (CPU, RAM, I/O, NET). Menné priestory izolujú prostredia (environments) – používateľov, súborových systémov a sieťových rozhraní.

Linuxový systém LXC teda izoluje aplikácie prostredníctvom kontajnerov, pre ktoré spravuje a priraďuje systémové zdroje pomocou CGroups. Takýto model VE umožňuje spúšťať mnoho aplikácií na jedinom fyzickom stroji bez toho, aby sa spustené aplikácie vzájomne ovplyvňovali.

Menné priestory

Menné priestory sú jedny z najdôležitejších štruktúr linuxového jadra, bez ktorých by nebolo možné vytvárať minimalizované VE. Menné priestory sú určené na izoláciu prostredí jednotlivých skupín procesov, teda kontajnerov (virtuálnych jednotiek). Menné priestory obmedzujú rozsah názvov (names) a údajových štruktúr použiteľných konkrétnymi jednotkami. Istým spôsobom vytvárajú zabezpečené prostredie, v ktorom existujú služby ohraničené kontajnermi. Pri prípadnej kompromitácii niektorej služby nie je okamžite ohrozené celé prostredie, ale iba konkrétna jednotka.

Pomocou menných priestorov možno vytvárať vnorené stromy procesov, v rámci ktorých sú jednotlivé procesy vzájomne izolované. Nadriadené procesy uchovávajú informácie o svojich podriadených procesoch, naopak to však neplatí.

Obr. 1 Menné priestory OS Linux

OS Linux rozoznáva šesť menných priestorov:

1 pid izolácia procesov, každý koreň vnoreného stromu vždy obsahuje proces s identifikátorom PID #1, proces môže mať viacero PID (jeden PID pre každý ns, do ktorého proces patrí)
 
CLONE_NEWPID
2 net izolácia sieťových rozhraní vrátane lo/127.0.0.1, sieťových adries, smerovania, firewallov, navyše umožňuje vytváranie mostov (bridging)
 
CLONE_NEWNET
3 ipc InterProcess Communication resources – System V IPC, výmena správ POSIX, PostgreSQL
 
CLONE_NEWIPC
4 mnt oddelenie prípojných bodov, súborových systémov (pripojené systémy sú viditeľné iba v rámci konkrétneho ns)
 
CLONE_NEWNS
5 uts Unix Time Sharing, izolácia nodename, domainname, hostname
 
CLONE_NEWUTS
6 user oddelenie UIDs
 
CLONE_NEWUSER

Kontrolné skupinyPozn.: V rámci linuxového súborového systému sa menné priestory konkrétnych procesov nachádzajú v zložkách /proc//ns/.

CGroups prideľujú, obmedzujú, izolujú, hodnotia systémové zdroje procesom agregovaným v kontajneroch. Kontajnerom či skupinám úloh priraďujú množinu parametrov jedného alebo viacerých subsystémov. Subsystém (controller – správca zdrojov) je modul, ktorý spravuje zdroje pridelené skupine úloh konkrétnej CGroup. Platí pri tom pravidlo, že danej kontrolnej skupine nemožno prideliť ten istý (rovnaký) subsystém viackrát.

CGroups sú rovnako ako kontajnery a menné priestory usporadúvané v hierarchických štruktúrach. To okrem iného znamená, že každá kontrolná skupina „dedí“ kritériá a parametre rodičovskej skupiny. Jednotlivým kontrolných skupinám je v hierarchii priradený špecifický systémový stav každého subsystému.

Obr. 2 Umiestnenie cgroups v linuxovom jadre

CGroups pracujú s nasledujúcimi systémovými zdrojmi, resp. subsystémami:

1 cpu správa a zdieľanie procesorov
2 memory použitie pamäte a swap priestoru
3 devices prideľovanie zariadení
4 net kontrola sieťových rozhraní

Pozn.: V rámci linuxového súborového systému sa CGroups nachádzajú v zložke /sys/fs/cgroup

.

Zobrazit Galériu
Autor: Marek Sopko

Nechajte si posielať prehľad najdôležitejších správ emailom

Mohlo by Vás zaujímať

ITPro

Právne okienko

08.12.2016 12:02

1. Ako postupovať, ak obchodník nechce uznať reklamáciu tovaru objednaného z e-shopu? V takomto prípade môžu nastať v zásade dve situácie. Ak zákazník reklamuje tovar do 12 mesiacov od jeho kúpy, mož ...

ITPro

Linux súkromne i pracovne v2.0 (14. časť): Small Business Server

09.11.2016 14:57

Pojem Small Business Server (malý firemný server) začala používať spoločnosť Microsoft ešte v roku 2000 na označenie servera, ktorý ­dokázal plniť úlohy niekoľkých samostatných serverov. Aplikačná vrs ...

ITPro

Industry 4.0: Fikcia alebo už realita?

09.11.2016 14:52

Štvrtá priemyselná revolúcia je pomenovanie rozsiahlych zmien prudko vstupujúcich do súčasného priemyslu. Nositeľom týchto zmien je digitalizácia výroby a optimalizácia všetkých podnikových procesov v ...

Žiadne komentáre

Vyhľadávanie

Kyocera - prve-zariadenia-formatu-a4-s-vykonom-a3

Najnovšie videá