Virtuální stroje pro Linux



Podobné dokumenty
Kontejnerová virtualizace na Linuxu

Vlákno (anglicky: thread) v informatice označuje vlákno výpočtu neboli samostatný výpočetní tok, tedy posloupnost po sobě jdoucích operací.

UŽIVATEL, SKUPINA, PROCES

Pokročilé architektury počítačů

LINUX ADRESÁŘOVÁ STRUKTURA. Co to, hrome, je? V této lekci se budeme brouzdat adresáři. SPŠ Teplice - 3.V

Abychom se v IPv6 adresách lépe orientovali, rozdělíme si je dle způsobu adresování do několika skupin:

Ladění ovladačů pomocí virtuálního stroje...2 Úvod...2 Ladění ovladačů pomocí dvou fyzických počítačů...2 Ladění ovladačů pomocí jednoho fyzického

Instalační a uživatelská příručka aplikace PSImulator2 Obsah

Služba ve Windows. Služba (service) je program

Registrační číslo projektu: CZ.1.07/1.5.00/ Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost

PSK3-11. Instalace software a nastavení sítě. Instalace software

Spuštění instalace. nastavení boot z cd v BIOSu vložení CD s instal. médiem spuštění PC. nastavení parametrů instalace (F2 čěština)

František Hudek. červen ročník

Přednáška 2. Systémy souborů OS UNIX. Nástroje pro práci se souborovým systémem. Úvod do Operačních Systémů Přednáška 2

VirtualBox desktopová virtualizace. Zdeněk Merta

Linux-příkazový řádek

TSM for Virtual Environments Data Protection for VMware v6.3. Ondřej Bláha CEE+R Tivoli Storage Team Leader. TSM architektura IBM Corporation

Architektura rodiny operačních systémů Windows NT Mgr. Josef Horálek

Registrační číslo projektu: CZ.1.07/1.5.00/ Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost

Implementace LMS MOODLE. na Windows 2003 Server a IIS 6.0

12. Virtuální sítě (VLAN) VLAN. Počítačové sítě I. 1 (7) KST/IPS1. Studijní cíl. Základní seznámení se sítěmi VLAN. Doba nutná k nastudování

Projekt VRF LITE. Jiří Otisk, Filip Frank

Uživatelská příručka

MetaCentrum - Virtualizace a její použití

IMPLEMENTACE OPERAČNÍHO SYSTÉMU LINUX DO VÝUKY INFORMAČNÍCH TECHNOLOGIÍ

AKTION CONNECTOR POPIS FUNKCÍ A NÁVOD

1 Správce licencí Správce licencí Správce licencí Start > Všechny programy > IDEA StatiCa > Správce licencí Soubor > Správce licencí Licence

Semestrální projekt do předmětu SPS

Fides Software Storage Administrator

Hodinový rozpis kurzu Správce počítačové sítě (100 hod.)

Laboratorní práce: SNMP - Linux snmputils

ČÁST 1 ÚVOD. Instalace operačního systému 21 Aktualizace operačního systému 57 Příkazový řádek 77 Windows Script Host 103 ČÁST 2 ŘEŠENÍ

Virtualizace na Linuxu

1 Administrace systému Moduly Skupiny atributů Atributy Hodnoty atributů... 4

Acronis. Lukáš Valenta

TECHNICKÁ UNIVERZITA V LIBERCI

Aktion Connector NÁVOD

Systém souborů (file system, FS)

BRICSCAD V15. Licencování

Stručná instalační příručka SUSE Linux Enterprise Server 11

Konfigurace Windows 7

Instalace programu ProGEO

1 Uživatelská dokumentace

5. Směrování v počítačových sítích a směrovací protokoly

VComNet uživatelská příručka. VComNet. Uživatelská příručka Úvod. Vlastnosti aplikace. Blokové schéma. «library» MetelCom LAN

APS mini.ed programová nadstavba pro základní vyhodnocení docházky. Příručka uživatele verze

Management procesu I Mgr. Josef Horálek

DŮLEŽITÉ INFORMACE, PROSÍM ČTĚTE!

Antonín Přibyl - Virtualizace Windows serveru s KVM hypervisorem

LAN/RS485. Převodník BMR Ethernet LAN/RS485

Téma 11: Firewall v CentOS. Nastavení firewallu

C2115 Praktický úvod do superpočítání

Základy IOS, Přepínače: Spanning Tree

Pavel Martinec 4.A 2011/2012

TÉMATICKÝ OKRUH Softwarové inženýrství

BM Software, Databáze Docházky 3000 na NAS serveru (pro MySQL) Němčičky 84, Němčičky u Břeclavi. Úvodní informace:

ZÁLOHA A OBNOVA ABRA GEN

AleFIT MAB Keeper & Office Locator

Registrační číslo projektu: CZ.1.07/1.5.00/ Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost

Technologické postupy práce s aktovkou IS MPP

ZÁLOHA A OBNOVA ABRA GEN

Newsletter RIBTEC automatické aktualizace Praktická novinka v servisu a podpoře k softwaru RIBTEC od verzí 15.0

Připojení systémů CNC 8x9 DUAL do sítí pomocí protokolu TCP/IP (Platí od verze panelu 40.31)

Xen je volně šířený hypervisor (virtual machine monitor) pro architektury IA-32, x86, x86-64, IA- 64 a PowerPC 970.

Instalace programu ProVIS

AIDA64 Extreme. Příručka k nastavení. v

Programové vybavení počítačů operační systémy

TGMmini. začínáme. komplexní dodávky a zprovoznění servopohonů dodávky řídicích systémů

DNS. Počítačové sítě. 11. cvičení

MS Word 2007 Šablony programu MS Word

Architektura a koncepce OS OS a HW (archos_hw) Architektura a koncepce OS Jádro OS (archos_kernel) Architektura a koncepce OS Typy OS (archos_typy)

Instalační příručka Command WorkStation 5.6 se sadou Fiery Extended Applications 4.2

Virtualizace MetaCentra

GTS internet DSL. Návod nastavení modemu a spuštění služby. (platné pro Zyxel Prestige VMG1312-B30B)

Stručný Obsah. IntelliMirror, 1. část: Přesměrování složek, Soubory offline, Správce synchronizace a Diskové kvóty 349

2.2 Acronis True Image 19

LINUX SOUBORY. Zadejme příkaz ls l! V této lekci se odrazíme od dlouhého výpisu příkazu ls a uvidíme, kam nás to zanese. SPŠ Teplice - 3.

Instalace Debianu pomocí debootstrap

Vzdálená správa v cloudu až pro 250 počítačů

Správa verzí souborů na cvičení

Zálohování v MS Windows 10

Instalace SQL 2008 R2 na Windows 7 (64bit)

Úvod do Linuxu SŠSI Tábor 1

VLSM Statické směrování

Nový způsob práce s průběžnou klasifikací lze nastavit pouze tehdy, je-li průběžná klasifikace v evidenčním pololetí a školním roce prázdná.

Instalace Microsoft SQL serveru 2012 Express

BALISTICKÝ MĚŘICÍ SYSTÉM

Jednotlivé hovory lze ukládat nekomprimované ve formátu wav. Dále pak lze ukládat hovory ve formátu mp3 s libovolným bitrate a také jako text.

Využití systému Dynamips a jeho nástaveb pro experimenty se síťovými technologiemi Petr Grygárek

Principy operačních systémů. Lekce 5: Multiprogramming a multitasking, vlákna

Pro označení disku se používají písmena velké abecedy, za nimiž následuje dvojtečka.

plussystem Příručka k instalaci systému

Nápověda pro možnosti Fiery 1.3 (klient)

Přidělování paměti II Mgr. Josef Horálek

Úvod do Unixu. man: příkaz pro zobrazení nápovědy k danému příkazu, programu (pokud je k dispozici), např. man cp. pwd: vypíše cestu k aktuální pozici

Možnosti IPv6 NAT. Lukáš Krupčík, Martin Hruška KRU0052, HRU0079. Konfigurace... 3 Statické NAT-PT Ověření zapojení... 7

MATLABLINK - VZDÁLENÉ OVLÁDÁNÍ A MONITOROVÁNÍ TECHNOLOGICKÝCH PROCESŮ

Ing. Michal Martin. Spojení PLC CLICK s NA-9289

Transkript:

Ð Û Å«Æ ±²³ µ ¹º»¼½¾ Ý MASARYKOVA UNIVERZITA FAKULTA INFORMATIKY Virtuální stroje pro Linux BAKALÁŘSKÁ PRÁCE Jaroslav Tomeček Brno, jaro 2007

Prohlášení Prohlašuji, ˇze tato bakalářská práce je mým původním autorským dílem, které jsem vypracoval samostatně. Všechny zdroje, prameny a literaturu, které jsem při vypracování pouˇzíval nebo z nich čerpal, v práci řádně cituji s uvedením úplného odkazu na příslušný zdroj. Vedoucí práce: Mgr. Miroslav Ruda ii

Shrnutí Cílem práce je srovnat různé implementace virtuálních strojů pro Linux a demonstrovat jejich výhody(a rozdíly) na příkladech pouˇzití. Práce bude zaměřena na virtualizaci na úrovni jádra operačního systému. Výsledkem práce by mělo být srovnání systému Linux-VServer(linux-vserver.org) a OpenVZ(www.openvz.org), popis funkcí poskytovaných těmito systémy a demonstrace vyuˇzití podstatných vlastností. Vedle popisu instalace by výsledkem měla být i referenční instalace obou systémů na počítačích ÚVT MU. iii

Klíčová slova Linux-VServer, OpenVZ, XEN, virtualizace, virtualizace na úrovni jádra, PlanetLab, Linux Capabilities, chroot iv

Obsah 1 Úvod...3 1.1 Virtualizace...3 1.2 Virtualizace na úrovni jádra operačního systému...4 1.2.1 Linux-VServer...5 1.2.2 OpenVZ...6 2 Instalace systémů...7 2.1 Linux-VServer...7 2.1.1 Vytvoření virtuálního serveru:...7 2.1.2 Kontextová čísla vytvoření, spuštění kontextu...8 2.1.3 Smazání kontextu...9 2.1.4 Klonování virtuálního serveru...9 2.1.5 Spouštění procesů z hostitelského kontextu...10 2.2 OpenVZ...11 2.2.1 Vytvoření VPS...11 2.2.2 Smazání VPS...13 2.2.3 Checkpointing a live migration...13 Online migration...13 Manuální checkpointing a obnovovací funkce...13 Checkpointing krok za krokem...13 2.3 Shrnutí...14 3 Síťová rozhraní...15 3.1 Linux-VServer...15 3.1.1 Nastavení síťových rozhraní...15 3.1.2 Nastavení démonů, program chbind...16 3.2 OpenVZ...17 3.2.1 Zařízení venet...17 3.2.2 Síťové zařízení veth...18 3.3 Shrnutí...18 4 Diskové limity...20 4.1 Linux-VServer...20 4.2 OpenVZ...21 4.3 Shrnutí...23 5 Nastavení plánovače a přidělení CPU...24 5.1 Linux-VServer...24 5.2 OpenVZ...25 5.3 Shrnutí...26 6 Správa výpočetních zdrojů...27 6.1 Linux-VServer...27 6.1.1 Standartní linuxové limity výpočetních zdrojů...27 6.1.2 Limity Linux-VServeru...28 6.1.3 Paměťové limity...29 6.2 OpenVZ...30 6.2.1 Rovnoměrné rozdělení výkonu hardwarového uzlu...32 6.2.2 Validace konfiguračního souboru...32 6.3 Shrnutí...33 7 Virtuální systém /proc...34 1

7.1 Linux-VServer...34 7.1.1 Nastavení viditelnosti v /proc...34 7.2 OpenVZ...35 7.3 Shrnutí...36 8 Zařízení v adresáři /dev...37 8.1 Linux-VServer...37 8.2 OpenVZ...37 8.2.1 Vytváření speciálních souborů...37 8.3 Shrnutí...38 9 Sdílení souborových systémů...39 9.1 Shrnutí...39 10 Unifikace souborového systému...40 10.1 Linux-VServer...40 10.2 Shrnutí...41 11 Změna runlevel...42 11.1 Linux-VServer...42 11.1.1 Změna startovacího a ukončovacího skriptu...42 11.2 OpenVZ...42 11.3 Shrnutí...42 12 Přiložené Live-CD Linux-VServeru...43 12.1 Postup tvorby live distribuce...43 13 Budoucí vývoj...44 13.1 Linux-VServer...44 13.2 OpenVZ...44 Závěr...45 Seznam tabulek Tabulka 1: Linuxové limity výpočetních zdrojů...28 Tabulka 2: Limity Linux-VServeru...28 Tabulka 3: Příznaky viditelnosti souborů v proc-fs...34 Tabulka 4: Nastavení příznaků viditelnosti v proc-fs...35 2

1 Úvod Účelem bakalářské práce je porovnání dvou nástrojů virtualizace na úrovni jádra operačního systému pro Linux a analýza jejich použitelnosti a výhod v praxi se zaměřením na jejich specifické vlastnosti, služby a funkce. Reprezentativními zástupci jsou Linux-VServer a OpenVZ. Oba projekty procházejí intenzivním vývojem, jejich dokumentace často neodpovídá skutečnosti. Práce si proto klade za cíl vytvořit průvodce instalací, konfigurací a správou Linux- VServeru a OpenVZ. Součástí práce je referenční instalace systémů na stroje Ústavu výpočetní techniky Masarykovy univerzity a CD demonstrující funkčnost Linux-VServeru. 1.1 Virtualizace Požadavky správců a uživatelů na víceúlohové a víceuživatelské operační systémy vedou k vývoji a zdokonalování metod souběžné obsluhy procesů a uživatelů, které využívají virtualizaci. Jedná se o mechanismus, pomocí nějž dosáhneme určitého stupně abstraktního stroje s abstraktním hardware. Pro hardwarový zdroj, který je v počítači obsažen pouze jako jedna fyzická instance, je možné vytvořit více virtuálních instancí, stejně jako zprostředkovat hardwarový zdroj, který se vyskytuje ve více fyzických instancích, jako jedno virtuální zařízení. Přistupovat k hardwaru pak můžeme jednodušším způsobem, než jak je fyzicky zapojen, a skryjeme tak pro uživatele nepodstatné informace. Samotné metody abstrakce hardware směřují už od 60. let 20. století k vytvoření celých virtuálních strojů postavených na kombinaci hardwarových a softwarových technik[1]. Jeden fyzický stroj by pak mohl obsluhovat řádově až stovky virtuálních strojů. Metoda kombinuje myšlenku sdílení systémových prostředků a izolovanosti jednotlivých virtuálních prostředí. Výhodou virtuálního stroje je možnost sestavení celého operačního systému na míru každému uživateli, který takový počítač používá, bez toho, aby se operační systémy vzájemně ovlivňovaly a aby byla systémová režie příliš vysoká. Každý operační systém by měl být plně funkční bez jakéhokoliv omezení. Běh virtuálních strojů vyžaduje vyřešení mnoha problémů. Vlastní virtualizační systém musí mít plánovač, který bude schopný spravovat požadavky operačních systémů. Zabezpečuje, aby činnost jednoho operačního systému nebyla ovlivněna činností ostatních systémů. Z pohledu virtualizačního nástroje dochází k přepínání kontextu celých OS. Algoritmus plánování přístupu k hardwaru řeší vícenásobný přístup k systémovým zařízením. Dalším problémem je ošetření komunikace mezi virtuálními stroji. Například správné doručování příchozích paketů z vnější sítě a jejich pohyb mezi běžícími systémy by mělo být rychlé, ale zároveň nesmí příliš snižovat výkon počítače. Nejčastěji se virtualizace dosahuje zavedením softwarového rozhraní mezi vlastním OS a fyzickým hardware. Tato vrstva komunikuje s fyzickým a vytváří virtuální hardware pro běžící operační systémy a obsluhuje jejich požadavky. Existuje více metod, jak dosáhnout robustního systému, který bude schopen kvalitně plnit svoji funkci. Nejběžněji se setkáváme s těmito typy virtualizace: Aplikační virtulizace Zástupcem je například Java Virtual Machine. Jedná se o speciální, na platformě závislé API, které zprostředkovává komunikaci mezi hardware. 3

Jeho prostřednictvím provozujeme na platformě nezávislou aplikaci, kterou pak můžeme spustit i na jiné architektuře, než na které byla napsána. Vlastní kód programu se interpretuje pomocí virtuálního stroje. Simulace nebo emulace Nástroje umožňují spustit operační systémy, které nejsou původně určeny pro architekturu fyzického systému. Využívá se dynamické reinterpretování kódu virtuálního stroje. Virtuální prostředí vytváří kompletní virtuální hardware a umožňuje spustit nemodifikovaný operační systém, který může být určen i pro jinou architekturu než fyzický stroj. Metoda je používána k vývoji aplikací pro procesory, které ještě nejsou na trhu a známá je pouze jejich specifikace, nebo k simulaci prostředí jiných architektur. Příklady jsou Bochs[2], PearPC[3], Qemu[4] (bez akceleračního modulu) a emulátor Hercules[5]. Úplná virtualizace Nástroje úplné virtualizace vytvářejí kompletní virtuální hardware. Umožňují spouštění neupravených OS stejné architektury jako fyzický počítač. Virtuální stroje nekomunikují přímo s fyzickým hardware, ale jejich požadavky odeslané virtuálním zařízením jsou zpracovány a předány fyzickým zařízením. Příklady jsou Virtual Iron[6], VMware Server[7], VMware Workstation[7], Win4Lin[8] a další. Paravirtulizace Nevytváří se kompletní virtuální hardware, nástroje pouze umožňují komunikovat upravenému jádru virtualizovaného operačního systému s fyzickým hardware přes speciální API upraveného jádra hostitelského systému. Systémová volání probíhají přes hypervisor (odtud název hypervisory používaný pro paravirtualizační nástroje). Nejznámějším zástupcem nejen této skupiny určeným pro Linux je XEN[9]. Dalšími jsou VMware ESX Server[7] nebo Win4Lin 9x[8]. Systémy na bázi paravirtualizace dosahují vysoké efektivity[10][11]. Virtualizace na úrovni jádra operačního systému K virtualizaci dochází až na úrovni operačního systému. Rozšiřuje obsluhu procesů jádrem na celé skupiny procesů kontexty. Využívá částí virtualizovaných operačních systémů, které by se při plné virtualizaci nebo paravirtualizaci vyskytovaly vícekrát. Provozované servery sdílí jádro OS a jeho služby. Metoda umožňuje provoz více instancí stejných operačních systémů určených pro stejnou architekturu jako hostitelský systém. Technika kombinuje princip izolace, který je jedním z požadavků virtualizace OS, a sdílení, díky kterému systémy dosahují vysoké efektivity. Příklady jsou FreeBSD Jails[12], Solaris Containers[13], Virtuozzo[14], OpenVZ[15] a Linux- VServer[16]. Mechanismus dosahuje při běhu virtuálního systému téměř stejné efektivity jako jeho běh v nevirtuálním prostředí[10][17].[18] 1.2 Virtualizace na úrovni jádra operačního systému Virtualizace na úrovni jádra operačního systému je společně s paravirtulizací považována za nejefektivnější typ virtualizace[10][11]. Virtualizovaná prostředí běží nad společným jádrem, které má přímý přístup k fyzickému hardware, tudíž se nevytváří virtuální zařízení ani speciální přístupové API. Režijní ztráty jsou způsobeny pouze oddělením procesů, diskových prostorů a síťového provozu serverů. Účelem této práce je ukázat použitelnost systémů pracujících na tomto principu se zaměřením na specifické vlastnosti, například dynamické změny omezení systémových zdrojů. 4

Paravirtualizační prostředí zastoupené například systémem XEN nabízejí plnou izolovanost virtuálně běžících OS. V případech, kdy provozujeme více stejných operačních systémů se však stává celý systém neefektivním, protože některé části operačních systémů běží vícenásobně. Naproti tomu při virtualizaci na úrovni jádra běží všechny virtuální servery nad jedním jádrem. Celý mechanismus pouze rozšiřuje služby jádra OS tak, aby byly schopné odizolovat jednotlivé související skupiny procesů, nazývané sekce nebo kontexty, a k nim příslušné diskové souborové systémy. V systémech typu Unix lze technologii považovat za rozšíření mechanismu chroot. Výhodou řešení je výrazné snížení režijních ztrát (např. pouze 1-3% u OpenVZ[19]) a nutnost upravit pouze jádro hostitelského systému. Systém umožňuje měnit limity systémových prostředků za běhu virtualních serverů, což bývá u paravirtualizace obtížné nebo často nemožné. Narozdíl od systému XEN můžeme dynamicky zvyšovat i snižovat hodnoty hardwarového nastavení virtuálních serverů. Tyto nástroje alokují potřebné hardwarové prostředky již při startu serveru a následná změna by vyžadovala spolupráci virtualizovaného OS. Naproti tomu Linux-VServer a OpenVZ přistupují k serverům jako k procesům, kterým můžeme v Linuxu přidělení hardwarových prostředků snadno měnit. Nevýhodou je možnost provozovat pouze operační systémy stejného typu jako upravené jádro, avšak s různými knihovnami a popřípadě různé distribuce. Virtuální stroje založené na virtualizaci na úrovni jádra jsou využívány pro testování software na různých distribucích. Programátor nemusí instalovat celý operační systém, stačí jen potřebné knihovny dané distribuce a programy nutné pro běh virtuálního serveru a testovaného programu. Změna OS je pak otázkou několika málo minut. V samostatném prostředí může běžet antivirus a firewall nezávisle na uživatelském serveru. Bezpečnostní software pak není negativně ovlivněn procesy provozovanými uživateli. Technologii lze použít pro provoz gridů se stejnými, ale na míru upravenými OS (například PlanetLab 1 ). Systém využívají také firmy poskytující provoz, pronájem a prodej serverů. Každý zákazník si upraví server podle svých představ bez ohledu na ostatní uživatele. Poskytovatel služby však může provozovat více virtuálních na jednom fyzickém serveru. Sníží značně náklady a správa takového systému je také podstatně jednodušší. Tento nepříliš náročný způsob virtualizace je výhodný pro výuku. Každý student má k dispozici vlastní server. Chybný úkon však neznamená poškození vlastního operačního systému nebo hardware. Veškeré informace vztahující se k operačnímu systému (například konfigurační soubory a cesty k nim) odpovídají systému Fedora Core 6, na němž byly systémy testovány. 1.2.1 Linux-VServer Linux-VServer je zástupcem virtualizace na úrovni jádra OS. Projekt byl založen Jacquesem Gélinasem a nyní jej vyvíjí skupina programátorů kolem Herberta Pötzla pod licencí GPL. Jednotlivé servery obsluhuje upravené jádro Linuxu. V souvislosti s Linux-VServerem se nazývají bezpečnostní kontexty (security contexts), zkráceně kontexty, v kterých je spouštěn a provozován virtuální server (VPS). Každý běžící VPS má svoji vlastní správu nezávislou na ostatních. Systém využívá a rozšiřuje již existující vlastnosti a služby jádra. Jsou 1 Otevřená výzkumná počítačová síť, www.planet-lab.org. 5

to zejména Linux capabilities, omezení výpočetních zdrojů (resource limits), atributy souborů (file attributes) a chroot. Autoři jádro rozšířili o podporu kontextů, v kterých jsou procesy spuštěny, izolovány a zneviditelněny pro jiné kontexty. Pro usnadnění administrace existuje hostitelský kontext (Host context), v němž běží vlastní systém, a pro přehled procesů všech VPS je vytvořen Spectator kontext. Oba tyto kontexty jsou v současnosti implementovány jako jeden administrátorský kontext nazývaný hostitelský. Jádro obsahuje rozšíření pro virtualizaci síťového rozhraní. Linux-VServer nepoužívá virtuální zařízení, které by zvýšilo zátěž systému, ale techniky socket binding a packet transmission. Pro oddělení diskových oblastí projekt používá upravené původní rozhraní chroot. Pro každý VPS se při spuštění uchovává nejvyšší možný adresář (kořenový adresář serveru), čímž je zabráněno úniku z privátní diskové oblasti. V budoucnu by v Linux-VServeru tento mechanismus měl být nahrazen vhodnějším. 1.2.2 OpenVZ Dalším linuxovým virtualizačním systémem na principu virtualizace na úrovni operačního systému je OpenVZ, vyvíjený pod GPL jako základ systému Virtuozzo, komerčního produktu firmy SWsoft 2. Firma celý projekt zaštiťuje a financuje. Virtuální server se v souvislosti s OpenVZ nazývá Virtual Environment (VE) nebo Virtual Private Server (VPS). Podobně jako u Linux-VServeru je k jeho běhu nutné upravené jádro Linuxu, rozšířené o podporu provozu izolovaných virtuálních strojů. Narozdíl od Linux-VServeru nevychází OpenVZ z původních Linux Capabilities, ale přidává do jádra zcela nová rozhraní. Nejdůležitějším z nich je správa výpočetních zdrojů (Resource management). Běh více VPS nesmí ovlivňovat jejich výkon. Z tohoto důvodu jsou velmi důležité správa a přidělování hardwarových prostředků. Správa se dělí na dvouúrovňové diskové kvóty (two-level disk quota), plánovač CPU (fair CPU scheduler) a přidělování systémových prostředků (user beancounters). OpenVZ provozuje hostitelský operační systém jako privilegovaný server schopný spravovat ostatní VPS. Systém používá pro virtualizaci síťového rozhraní virtuální síťové zařízení. Původně systém obsahoval velmi jednoduché venet později byl nahrazen zařízením veth, které je schopné pracovat i s IPv6 (podpora IPv6 v Linux-VServeru není doposud plně implementována). OpenVZ nerozšiřuje chroot známý z Unixu. Implementuje vlastní mechanismus, který jej zcela nahradil, ale v principu z něho vychází. 2 www.swsoft.com 6

2 Instalace systémů Oba systémy vyžadují instalaci upraveného jádra systému a utilit sloužících k instalaci, správě a manipulaci s virtuálními servery. Kontexty a VPS jsou implicitně instalovány v adresářích /vservers u Linux-VServeru resp. /vz u OpenVZ. Příprava samotného hostitelského systému je poměrně jednoduchá. Obtížné je sestavení, konfigurace a správa virtuálních serverů. Správce by si měl být od začátku vědom, k jakým účelům bude server sloužit a jaké vlastnosti od něj bude požadovat. Úprava chybného nastavení může být totiž velmi složitá. 2.1 Linux-VServer Upravené jádro Linuxu vytvoříme tak, že na zdrojové kódy generického jádra Linuxu řady 2.6, které je možné stáhnout z http://www.kernel.org ve formě komprimovaného souboru, aplikujeme patch Linux-VServeru odpovídající verze, který je k dispozici na http://linuxvserver.org v podobě diff souboru. Můžeme zvolit z několika vývojových verzí. Dále je třeba nainstalovat vserver-utils, balíček utilit a pomocných programů potřebných ke správě a provozu virtuálních serverů. Tyto programy je také možné stáhnout z domovské stránky projektu. Po instalaci systému by se měl spustit démon vprocunhide. 2.1.1 Vytvoření virtuálního serveru: Virtuální server vytvoříme pomocí utility vserver. Například server test postavený na distribuci Fedora Core 3 založíme příkazem: # vserver test build -m apt-rpm\ > --hostname=servername.mydomain.tld\ > --interface eth0:1.2.3.4/24 --context=42 -- -d fc3 Přepínač -m značí metodu jakou bude virtuální server sestaven. Argumenty mohou být apt-rpm, rpm a yum. Pak pro stažení potřebných balíčků z Internetu nebo jiného zdroje bude použit program apt-get, rpm nebo yum. Pro server založený na distribuci Debian je možné aplikovat metodu s argumentem debootstrap, která využije instalovaný balíček debootstrap nebo, pokud na systému instalován není, stáhne jej z Internetu. Metoda skeleton založí pouze základní adresářovou strukturu a konfigurační soubory a příprava virtuálního serveru je dále ponechána na správci. Do adresářové kostry může zapsat předpřipravený server, který stáhne ze stránek projektu, nebo může vytvořit vlastní distribuci. Argumentem přepínače --hostname je síťové jméno virtuálního serveru. Přepínač --interface konfiguruje IP adresu virtuálního serveru s označením délky prefixu a síťového zařízení, které bude virtuální server využívat. Zařízení můžeme v serveru přidělit alias. Chceme-li, aby bylo síťové zařízení eth0 ve virtuálním serveru označeno například jako guest0, pak použijeme argument přepínače --interface ve tvaru guest0=eth0:192.168.0.1/24. Tento přepínač je možné použít vícenásobně. 7

Přepínačem --context vynutíme statický kontext tohoto virtuálního serveru a přidělíme mu číslo. Pokud přepínač není uveden bude kontextové číslo přidělováno dynamicky při startu virtuálního serveru. Argument fc3 určuje, že virtuální server bude sestaven podle šablony operačního systému Fedora Core 3, které jsou uloženy v adresáři /etc/vservers/.distributions/. Argument přepínače -m debootstrap lze kombinovat s argumenty sarge a woody. Pro -m skeleton nemá přepínač význam. Přepínačem -d určíme instalaci z Internetu, přepínač -b určuje lokální zdroj. Pokud po přepínači uvedeme opět přepínač -m s argumentem určujícím cestu k instalačním balíkům, bude virtuální server vytvořen z tohoto zdroje. Síťové zařízení, které bude moci kontext využívat určíme pomocí --netdev (například --netdev eth0). Přepínačem --flags nastavujeme speciální příznaky virtuálních serverů jako jsou sched, nproc, jednotlivé přepínače oddělujeme čárkou. force. Přepsání již existujícího virtuálního serveru se stejným názvem vynutíme přepínačem -- 2.1.2 Kontextová čísla vytvoření, spuštění kontextu Při vytváření virtuálního serveru neboli kontextu můžeme zadat jeho statické kontextové číslo (volba --context utility vserver s přepínačem --build). Číslo je využíváno při určování příslušnosti procesu nebo souboru k virtuálnímu serveru. Systém touto identifikací zajišťuje izolaci a bezpečnost serverů. Kontextové číslo je v terminologii Linux-VServeru označováno zkratkou xid. Neuvedeme-li jej při vytváření virtuálního serveru je generováno dynamicky při startu virtuálního serveru, avšak nevýhoda takového řešení spočívá v rozdílném čísle kontextu po každém spuštění. Kontextové číslo je po jméně kontextu, které slouží ke snadnému zapamatování, nejdůležitějším identifikátorem virtuálního serveru. Využívají jej utility Linux-VServeru spravujícími běžící kontexty. Právě z tohoto důvodu by bylo vhodné, aby každý kontext měl svoje jedinečné statické číslo. Pokud jsme nenastavili kontextové číslo při vytváření virtuálního serveru můžeme tak učinit vložením zvoleného kontextové čísla do souboru /etc/vservers/<id_of_vserver>/context. Zvolíme-li kontextové číslo, které bylo přiděleno už dříve jinému kontextu, pak utilita vserver nahlásí chybu. Kontextová čísla běžících virtuálních serverů můžeme vypsat utilitou vserver-stat. Některé funkce a nastavení virtuálních serverů, například diskové limity Linux-VServeru, lze použít pouze se statickým kontextovým číslem. Ve dřívějších verzích Linux-Vserveru jsme dynamické přidělení a případnou změnu kontextu mohli provést utilitou chcontext. Ta byla nahrazena několika utilitami, z nichž nejdůležitější jsou vcontext, vattribute a vuname: 8

vcontext Vytvoří kontext a spustí v něm proces nebo změní kontext běžícího procesu. Nápovědu získáme zadáním vcontext --help. Spuštění procesu ls s přepínačem -l v novém kontextu 1000 může vypadat takto: # vcontext --create --xid 1000 -- ls -l vattribute Nastavuje capabilities a příznaky pro procesy v daných kontextech. Nápovědu získáme po zadání vattribute -help. Chceme-li vypnout capabilities nebo příznaky, uvedeme před jejich označení znak! nebo ~. vuname Nastavuje a zobrazuje identifikační údaje o kontextu, například hostitelské jméno, verzi kontextu a podobné záznamy ukládané v adresáři /etc/vservers/test0/uts. Nápovědu získáme po zadání vuname -help. Utitility vcontext, vattribute a vuname je možné využít pro dynamické vytvoření nového kontextu pro proces, ale bez založení nového virtuálního serveru. Umožňují také migraci procesu z hostitelského uzlu do kontextu, což je jednou z největších předností Linux-VServeru nejen oproti ostatním zástupcům virtualizace na úrovni jádra, ale i ostatním virtualizačním nástrojům. 2.1.3 Smazání kontextu Linux-VServer neobsahuje utilitu pro mazání virtuálních serverů. Musíme tedy smazat adresář s ukládanými soubory serveru, který je implicitně v adresáři /vservers, a odpovídající konfigurační soubor a adresář v /etc/vservers. Adresáře mají stejný název jako kontext, konfigurační soubor navíc s koncovkou.conf. Virtuální server při mazání nesmí být spuštěný. 2.1.4 Klonování virtuálního serveru Představme si, že uživatel potřebuje vytvořit více podobných virtuálních serverů. Pravděpodobně bude zpočátku vytvářet identické kopie stejného serveru. Autoři Linux- VServeru pro tyto účely vytvořili program vserver-copy. Ten za pomoci programu rsync, který je součástí Linuxu, zkopíruje souborový systém a konfigurační soubory virtuálního serveru. Změní pouze síťové jméno a IP adresu, pokud je zadáme jako argument. Kopie virtuálního serveru se může nacházet na jiném stroji. Pak k přesunu/zkopírování bude využit program rsh, popřípadě ssh. Program vserver-copy může být použit i na klonování běžícího virtuálního serveru, avšak pak může dojít k nekonzistenci právě ukládaných dat v kopírovaném serveru. Důležitými volbami jsou: -d,--domain domain - Nastavuje síťové jméno virtuálního serveru. Přepisuje /etc/hosts. Musí být použito s -i. -i,--ip address - Nastavuje IP adresu virtuálního serveru. Přepisuje /etc/hosts. Musí být použito s -d. -r,--vsroot - Nastavuje adresář s virtuálními servery. Standardně nastaveno na /vserver. 9

-R,--rsh - Použije se rsh místo standardního ssh při přesunu virtuálního serveru na jiný stroj. -s,--stopstart - Zastaví virtuální server, zkopíruje jej a spustí z nového umístění. Funkce má smysl, pokud přesunujeme virtuální server na jiný stroj beze změny síťového nastavení. Příklady použití: # Kopírování vserveru template do vserveru web01 se stejnou IP # adresou atd. /usr/sbin/vserver-copy template web01 # Kopírování vserveru template do vserveru web62 se změnou # síťového nastavení /usr/sbin/vserver-copy -i 192.168.5.62 -d example.com template \ web62 # Přesun vserveru web62 na jiný stroj /usr/sbin/vserver-copy -s web62 roothost02: K chybě může dojít při přesunu virtuálního serveru na stroj s jinou MAC adresou při zachování síťového nastavení. Ostatní zařízení v síti posílají data a požadavky na původní MAC adresu, dokud nevyprší platnost záznamu v ARP tabulce. Řešením je použití příkazu ping, které upozorní ostatní síťová zařízení na změnu MAC adresy. 2.1.5 Spouštění procesů z hostitelského kontextu Jak bylo uvedeno v kapitole 2.1.2, Linux-VServer nabízí funkce pro spouštění procesů z hostitelského kontextu. Následující příklad ilustruje použití: Vytvoříme 3 kontexty s čísly 100, 200 a 300 a spustíme v každém z nich program cpuhog z aktuálního adresáře hostitelského uzlu: # vcontext --create --xid 100./cpuhog # vcontext --create --xid 200./cpuhog # vcontext --create --xid 300./cpuhog Každému kontextu nastavíme příznak sched_hard plánovače cpu pro nastavení tvrdého limitu a nastavíme limity pro každý kontext: # vattribute --xid 100 --flag sched_hard # vattribute --xid 200 --flag sched_hard # vattribute --xid 300 --flag sched_hard # vsched --xid 100 --fill-rate 3 --interval 6 # vsched --xid 200 --fill-rate 2 --interval 6 # vsched --xid 300 --fill-rate 1 --interval 6 Následující příklad ilustruje spuštění programu ps s argumenty axh v kontextu 43 z hostitelského uzlu: # vcontext --migrate --xid 43 ps axh 10

2.2 OpenVZ Autoři systému OpenVZ doporučují vytvořit pro adresář virtuálních serverů (/vz) samostatnou diskovou oblast. Pokud tak neučiníme, systém bude funkční, ale nebudeme moci kombinovat diskové kvóty implementované v systému OpenVZ s linuxovými kvótami. Diskové kvóty OpenVZ podporují pouze souborové systémy Ext2 a Ext3. Z tohoto důvodu bychom měli pro tuto diskovou oblast zvolit jeden z nich. Systém OpenVZ vyžaduje speciální upravené jádro, pro které si z domovských stránek systému http://openvz.org můžeme stáhnout předpřipravené balíčky. Druhou možností je stažení patche a následné upravení a kompilace vlastního jádra. K dispozici jsou dvě větve systému - Stabilní (stable) a testovací (development nebo test). Stabilní verze však podporují poměrně staré verze jader. Nejnovější současnou stabilní verzí je 2.6.9 (24. 2. 2007). Autoři však garantují stabilitu a plnou funkčnost jader z testovací větve, která však ještě neprošla certifikací firmy SWSoft pro bezpečný provoz. Dále je potřeba nainstalovat programy a utility pro tvorbu, ovládání a správu virtuálních serverů - OpenVZ user-level utilities. Připravený instalační balíček, stejně jako zdrojové texty, získáme z domovských stránek projektu OpenVZ. Autoři doporučují upravit nastavení hostitelského operačního systému, na němž chceme OpenVZ provozovat. Potřebujeme vypnout systém SELinux, čehož dosáhneme vložením SELINUX=disabled souboru /etc/sysconfig/selinux. Dále bychom měli upravit síťové nastavení v souboru /etc/sysctl.conf následovně: net.ipv4.ip_forward = 1 net.ipv4.conf.default.proxy_arp = 0 net.ipv4.conf.all.rp_filter = 1 kernel.sysrq = 1 net.ipv4.conf.default.send_redirects = 1 net.ipv4.conf.all.send_redirects = 0 Pokud instalace proběhla v pořádku, pak se po restartu spustí démon vz. 2.2.1 Vytvoření VPS Každý VPS na hardwarovém uzlu jednoznačně určuje 32 bitové číslo. Číslo 0 vždy určuje hardwarový uzel hostitelský systém. Čísla od 1 po 100 jsou rezervována pro interní potřeby OpenVZ a neměly by být použity pro označení VPS. Seznam existujících VPS a jejich čísel vypíšeme utilitou vzlist s přepínačem -a. VPS vytvoříme pomocí příkazu vzctl create. Má následující syntax: vzctl create VPS_ID [--ostemplate name] [--config name] [--private path] [--root path] Příkaz vytvoří VPS s číslem VPS_ID. Argumenty jsou následující: 11

--ostemplate name - Určuje šablonu, podle které má být sestaven VPS. Pokud parametr není uveden, je použita hodnota DEF_OSTEMPLATE z globálního konfiguračního souboru OpenVZ /etc/sysconfig/vz. --config name Volitelný parametr. Pokud je uveden, vyhledá se konfigurační soubor ve-name.conf-sample z adresáře /etc/sysconfig/vz-scripts a použije se jako konfigurační soubor nového VPS. Není-li uveden, aplikuje se implicitní parametr uvedený v globálním konfiguračním souboru /etc/sysconfig/vz. Pokud není uveden ani ten, je třeba hodnoty nastavit pomocí vzctl set před startem VPS. --private path Volitelný parametr. Pokud je uveden, specifikuje cestu k privátní (private) oblasti VPS. Má vyšší prioritu, než cesta uvedená v globálním konfiguračním souboru /etc/sysconfig/vz (proměnná VE_PRIVATE). Argument může obsahovat řetězec $VEID, který bude nahrazen identifikačním číslem VPS (VPS_ID). --root path Volitelný parametr. Pokud je uveden, specifikuje cestu, kam bude namontován kořenový adresář VPS. Má vyšší prioritu, než cesta uvedená v globálním konfiguračním souboru /etc/sysconfig/vz (proměnná VE_ROOT). Argument může obsahovat řetězec $VEID, který bude nahrazen identifikačním číslem VPS (VPS_ID). Šablona je soubor balíků souvisejících s danou distribucí. Seznam balíků je získán z metadat šablony. Ta také popisují umístění repositářů balíčků, skripty, které se mají spustit během vytváření šablony a další potřebné informace. Cache šablony (Template Cache) nazývají autoři OpenVZ virtuální prostředí VE vytvořené podle šablony a zkomprimované do tarball archívu. Ke stažení metadat využijeme utilitu yum. Seznam dostupných metadat získáme následovně: # yum search vztmpl Instalaci pak provedeme takto: # yum install vztmpl-xxx [...] Na adrese http://openvz.org/download/template/metadata/ je nalezneme v podobě rpm a tarball balíčků. Po jejich instalaci sputíme utilitu vzpkgcache, která provede aktualizaci seznamu metadat šablon. Například pro Centos 4: # vzpkgcache centos-4-i386-minimal Na adrese http://openvz.org/download/template/ jsou k dispozici obrazy hlavních distribucí ve formátu tarball. Nerozbalený soubor umístíme do adresáře /vz/template/cache. Takový postup nedoporučují autoři projektu, protože k VPS pak neexistují na systému odpovídající metadata. Seznam šablon dostupných na systému vypíšeme utilitou vzpkgls. Chceme-li, aby byl VPS aktivován při startu samotného hardwarového uzlu použijeme utilitu vzctl: vzctl set VPS_ID --onboot yes --save 12

2.2.2 Smazání VPS VPS můžeme smazat pomocí příkazu vzctl destroy. VPS 101 pak vymažeme příkazem: # vzctl destroy 101. Příkaz odstraní všechny soubory z privátní (private) oblasti (specifikovaná proměnou VE_PRIVATE v konfiguračním souboru VPS). Konfigurační soubor z /etc/sysconfig/vzscripts/ je přejmenován z VPS_ID.conf na VPS_ID.conf.destroyed. VPS nesmí běžet a privátní oblast musí být odmontována. 2.2.3 Checkpointing a live migration Checkpointing (CPT) je nová funkce OpenVZ, která umožňuje uložit stav virtuálního prostředí VPS (Virtual Environment VE) a později jej vyvolat na stejném nebo zcela jiném počítači. Online migration Do balíčku utilit OpenVZ byla přidána vzmigrate, která umožňuje online přesun VPS na jiný hostitelský systém bez nutnosti zastavení. VPS pouze na okamžik zamrzne a poté v novém prostředí pokračuje ve své předešlé činnosti. Syntax příkazu je následující: vzmigrate --online <host> VPS_ID Veškerá data VPS jsou uložena do image souboru a ten je přesunut na cílový hostitelský systém protokolem ssh. Manuální checkpointing a obnovovací funkce Utilita vzmigrate není bezpodmínečně nutná pro přesun VPS na jiný stroj. Vzctl nabízí společně s dalšími programy dostatečné služby pro manuální přesun. Nejprve vytvoříme obraz (CPT) VPS: vzctl chkpnt VPS_ID --dumpfile <path> Příkaz uloží stav a data VPS do dumpfile a server zastaví. Pokud není dumpfile uveden, použije implicitní /vz/dump/dump.vps_id. VPS je pak možné opět obnovit: vzctl restore VPS_ID --dumpfile <path> Bezpodmínečně musí být cílový souborový systém shodný s původním. Pokud přesunujeme VPS na jiný stroj, je nutné privátní soubory serveru nejprve synchronizovat utilitou rsync. Checkpointing krok za krokem Proces uložení CPT může být rozdělen do tří kroků. Prvním krokem je pozastavení VPS. Systém uvede procesy do speciální stavu a zastaví síťová rozhraní: vzctl chpnt VPS_ID --suspend 13

Ve druhém kroku se stav procesů a souborů uloží do dumpfile. Uloženy jsou adresový prostor, stav registrů, otevřené soubory, roury a sokety, struktury System V IPC, cwd, obsluhy signalů, nastavení terminálu, UID, GID, identifikátory procesů (PID, PGRP,...), rlimit a další data. Tato fáze se provede: vzctl chkpnt VPS_ID --dump --dumpfile <path> VPS je pak zastaven příkazem: vzctl chkpnt VPS_ID --kill Jeho stav z image souboru může být obnoven: vzctl chkpnt VPS_ID --resume Obnovení běhu se skládá ze dvou částí. Prvním krokem je obnova procesů. Ty jsou ponechány ve speciálním stavu (frozen state): vzctl restore VPS_ID --undump --dumpfile <path> Druhým krokem je probuzení procesů nebo jejich zabití, pokud se migrace nezdařila. Odpovídající příkazy jsou: vzctl restore VPS_ID --resume vzctl restore VPS_ID --kill 2.3 Shrnutí Instalace obou systémů je v podstatě podobná. Využívají upravené jádro a utility určené ke správě virtuálních serverů. Vytvoření virtuálních serverů se však liší. Zatímco je Linux-VServer vytváří na základě apt, yum nebo rpm a stahuje potřebné balíčky z Internetu nebo uvedených cest, případně vytváří pouhou kostru systému a jeho sestavení ponechává na administrátoru, OpenVZ vytváří VPS ze šablon. Teprve takový VPS je možné upravit podle potřeb uživatelů. Linux-VServer dovoluje označit virtuální server vedle kontextového čísla identifikačním názvem, který usnadňuje orientaci ve spravovaných serverech. OpenVZ přiřazuje serverům pouze číselné označení. Slovní označení je však možné nahradit nastavením hostname. V OpenVZ lze VPS automaticky vymazat. Podobná funkce nebyla prozatím v Linux- VServeru implementována, což snižuje komfort při administraci. Užitečným nástrojem Linux-VServeru je vserver-copy, praktický nástroj pro vytváření identických virtuálních serverů, což mohou využít například poskytovatelé VPS. Nástrojem můžeme přesunout virtuální server na jiný fyzický počítač i bez zastavení serveru. OpenVZ nenabízí utilitu pro klonování VPS, avšak přesun serveru na jiný stroj je možný pomocí nástrojů pro checkpointing. Tento mechanizmus umožňuje také vytvoření obrazu stavu virtuálního stroje, což je funkce, která byla dosud jednou z předností nástrojů plné virtualizace a paravirtualizace. Utility Linux-VServeru umí pracovat s kontexty a k nim příslušnými procesy bez spuštění virtuálního serveru nebo jejich vytvoření pomocí utilit. Funkce slouží například k přesunům procesů mezi servery, vyjmutí a vložení procesu do serveru. OpenVZ migraci procesů nepodporuje. 14

3 Síťová rozhraní Virtualizace síťových rozhraní je implementačně jednou z nejproblematičtějších oblastí virtualizačních nástrojů. Virtualizovaná síť musí být rychlá a spolehlivá, ale přitom nesmí příliš zatěžovat procesor. Řešením může být virtuální síťový hardware simulující funkčnost skutečného zařízení nebo rozšíření funkcí a služeb jádra tak, aby bylo možné navázat určité IP adresy určitým procesům. To však s sebou přináší mnohé problémy jako je například loopback a multicastu. 3.1 Linux-VServer Linux-VServer pro síťové rozhraní rozšiřuje funkce a služby jádra, avšak pracuje pouze s IP vrstvou ISO-OSI modelu. Nelze tedy například udělit virtuálnímu serveru MAC adresu. Systém umožňuje prostřednictvím utility chbind navázat určitou IP adresu na proces a všechny jeho potomky. Stejná IP adresa virtuálního serveru je připojena ke všem procesům kontextu. Je možné, aby síťové zařízení mělo z pohledu přiřazeného serveru zvláštní jméno. Do Linux-VServer není zatím implementována podpora IPv6. Současné verze nepodporují multicast ani loopback adresaci kontextů. 3.1.1 Nastavení síťových rozhraní Nastavit síťová rozhraní můžeme už při vytváření virtuálního serveru přepínačem -- interface utility vserver. Argumentem tohoto přepínače může být například guest0=eth0:10.0.0.19/32, kde guest0 je jméno virtuálního rozhraní, eth0 jemu odpovídající fyzické rozhraní, za dvojtečkou následuje IP adresa s délkou prefixu za lomítkem. Virtuální jméno, prefix a IP adresa nejsou povinné údaje a pokud je neuvedeme, použijí se standardní nastavení. Vynecháme-li například virtuální jméno, aplikuje se fyzické. Další přepínač je --netdev <dev>, jehož prostřednictvím určíme síťové zařízení, které bude kontext využívat. Argumentem --netbcast <broadcast> konfigurujeme broadcast adresu a jeden z dvojice přepínačů --netmask a --netprefix pro konfiguraci síťové masky, resp. síťového prefixu. Žádný z těchto přepínačů není povinným. Síťové nastavení kontextů se uchovává v adresářích /etc/vservers/<id_of_vserver>/. Každému rozhraní odpovídá jeden podadresář pojmenovaný dvojmístným číslem, počínající adresářem 00. Adresáře mohou obsahovat tyto soubory: bcast Nastavuje broadcast adresu. dev Nastavuje přidělení fyzického síťového zařízení. disabled Pokud tento soubor existuje, nebude toto rozhraní aktivováno. ip IP adresa přiřazena k tomuto rozhraní mask Nastavuje síťovou masku. 15

name Pokud soubor existuje, bude rozhraní z pohledu kontextu pojmenováno podle obsahu tohoto souboru. Bez takového záznamu, nebude IP zobrazena s ifconfig, pouze s ip_addr_ls. Toto pojmenování se označuje jako alias. nodev Existuje-li, převezme se IP adresa z jiného rozhraní. Využít jej můžeme pro připojení síťového rozhraní vytvořeného jiným virtuálním serverem nebo hostitelským systémem. novlandev Existuje-li, budou přeskočeny kroky pro vytváření a rušení VLAN rozhraní. Soubor má vyšší prioritu, než soubor./vlandev a soubor globálního nastavení /etc/vservers/.defaults/interfaces/vlandev. prefix Nastavuje síťový prefix. vlandev a /etc/vservers/.defaults/interfaces/vlandev - Existuje-li, budou provedeny kroky pro vytváření a rušení VLAN rozhraní. 3.1.2 Nastavení démonů, program chbind Linux-VServer ve své implementaci nevytváří virtuální síťové zařízení pro každý kontext. Z tohoto důvodu mohou mít některé démony problém s vázáním na IP adresu, pokud mají být spuštěny zvlášť v hostitelském i virtuálním serveru. K tomuto účelům je určen program systému Linux-VServer chbind. Pokud například budeme chtít provozovat démon httpd na hostitelském serveru s IP adresou 10.0.0.19 a zároveň na virtuálním serveru test, pak spustíme příkaz chbind na hostitelském serveru: # /usr/sbin/chbind --ip 10.0.0.19 /etc/rc.d/init.d/httpd \ > restart Tím navážeme démon httpd na hostitelském serveru na IP adresu 10.0.0.19. Poté restartujeme virtuální server test: # /usr/sbin/vserver test restart Nyní je démon httpd spuštěn na obou serverech pod jinou IP adresou. Při instalaci Linux-VServeru jsou v hostitelském kontextu vytvořeny startovací skripty pro spuštění nejpoužívanějších démonů za pomoci programu chbind. Těmito skripty jsou: /etc/rc.d/init.d/v_gated pro spuštění démona gated. /etc/rc.d/init.d/v_named pro spuštění démona named. /etc/rc.d/init.d/v_portmap pro spuštění démona portmap. /etc/rc.d/init.d/v_sendmail pro spuštění démona sendmail. /etc/rc.d/init.d/v_smb pro spuštění démona smb. /etc/rc.d/init.d/v_sshd pro spuštění démona sshd. /etc/rc.d/init.d/v_xined pro spuštění démona xined. 16