pyth0n3 Posted March 6, 2012 Report Posted March 6, 2012 (edited) In acest articol voi explica cum poate fi creat un conntainer in zolaris ,pentru a intelege mai bine intreaga structura vor trebui citite paginile manualului ,asadar pentru cei interesati sa puna in practica acest lucru RTFM.Diverse manuale le puteti gasi pe site-ul oficial oracle.In solaris un container este echivalent la un vps deoarece procedura este de virtualizare este facuta la nivelul sistemului si functioneaza pe acelasi principiu.Se pot crea diverse zone care pot fi host-uri separate.Zonele nu pot comunica intre ele decat folosind interfata de retea.Fiecare zona vine izolata si fiecare process ruleaza intrun container separat.Solaris poate virtualiza doar sistene solaris si exista 2 moduri pentru a crea aceste zone.Sper sa fie clar conceptul de zona sau container.O zona/container este un host, mai multe zone sunt mai multe host-uri virtuale.Inainte de a explica tipurile de zone care pot fi construite voi adauga urnmatoarele: Sistemul fizic vine definit ca o zona globala in solaris care este montatasub "/" si oricare alta zona vine creata in sistemul fizic va fi definita ca zona secondara "non global zone".Aceste zone pot fi create in 2 moduri 1.Sparse Root ZoneVine creata o zona al carui sistem de fisiere va fi partial mostenit din din sistemul de fisiere prezent in host-ul fizic.Spre exemplu anumite directoare a sistemului fizic vor fi de fapt in sharing cu noul host virtual.Acest lucru implica urmatoarele: Orice packet vine instalat in sistemul fizic va putea fi folosit si de catre sistemul virtual, bineinteles procesul fiecaruiexecutabil va rula in sistemul virtual separat de catre sistemul fizic.Acest model ocupa aproximativ 100Mb pentru fiecare host virtual creat.Exemplu Sparse Root Zone:---------------------------- **********--########################*--# * #*--# FS * SHARE #*--# * #*- -# ################*--# # * *--# HOST # * SRZ *- -# # * *--# # * *--######### **********-- HOST ----------------------------HOST -> Host fizic SRZ -> Sparsed Root Zone (host virtual (vps))FS -> Filesystem HOST (fizic)SHARE -> Filesystem HOST (fizic) in sharing cu host-ul virtualNote:Directoarele /usr /lib /sbin /platform /opt a sistemului fizic vor fi in sharing cu sistemul guest virtual.2.Whole Root ZoneVine creata o zona care va contine o copie a fisierelor din host-ul fizic Fiecare pachet instalat in host-ul fizic nu va fi vazut de catre host-ulvirtual, acesta fiind independent.Note:Directoarele /usr /lib /sbin /platform /opt a sistemului fizic vorfi copiate de catre sistemul virtual.Aceasta procedura va ocupa mai multspatiu.Exemplu Whole Root Zone:---------------------------- --######### ********* --# # * * --# # * * --# # * * --# HOST # * WRZ * --# FS1 # * FS2 * --# # * * --# # * * --######### ********* -- HOST ----------------------------HOST -> Host fizicFS1 ->Filesystem HOST (fizic)WRZ -> Host Virtual FS2 ->Filesystem WRZ (virtual)Ambele zone au aceleasi sintaxe pentru a fi create difera doar parametrul unui comand care va specifica tipul de zona.In urmatorul exemplu voi crea o zona "Sparse Root Zone": Zonele pot fi puse in orice tip de filesystem , chiar si pe discuri externe de storage.In exemple voi folosi ca path /export/home/zones Initial va trebui creat directorul care va fi containerul sistemului virtual il voi numi eclipse1 [eclipse]# pwd/export/home/zones[eclipse]# ls -ltrtotal 2drwx------ 5 root root 512 Mar 6 04:22 eclipse1[eclipse]# Pentru securitate am restrictionat acest director in asa fel incat doar user-ul root sa poata face modificari.Noul host virtual va avea o interfata logica care are ca baza interfata fizica a sistemului. zonecfg se ocupa de creare zonelor " zonecfg - set up zone configuration" Poate fi folosit interactiv sau chiar aplicand parametrii necesari in cmdline.[eclipse]# [COLOR="#00FF00"]zonecfg -z eclipse1[/COLOR]eclipse1: No such zone configuredUse 'create' to begin configuring a new zone.zonecfg:eclipse1> [COLOR="#00FF00"]create [/COLOR]zonecfg:eclipse1> [COLOR="#00FF00"]set zonepath=/export/home/zones/eclipse1[/COLOR]zonecfg:eclipse1> zonecfg:eclipse1> [COLOR="#00FF00"]add net[/COLOR]zonecfg:eclipse1:net> zonecfg:eclipse1:net> [COLOR="#00FF00"]set address=192.168.123.107[/COLOR]zonecfg:eclipse1:net> [COLOR="#00FF00"]set physical=nfo0[/COLOR]zonecfg:eclipse1:net>[COLOR="#00FF00"]set defrouter=192.168.123.254[/COLOR] zonecfg:eclipse1:net>[COLOR="#00FF00"]info[/COLOR] net: address: 192.168.123.107 physical: nfo0 defrouter: 192.168.123.254zonecfg:eclipse1:net> zonecfg:eclipse1:net> [COLOR="#00FF00"]end[/COLOR]zonecfg:eclipse1>zonecfg:eclipse1>[COLOR="#00FF00"]verify[/COLOR]zonecfg:eclipse1>[COLOR="#00FF00"]commit[/COLOR]zonecfg:eclipse1>[COLOR="#00FF00"]exit[/COLOR][eclipse]#Aceasta procedura a creat un fisier de configurare XML unde a stocat toate informatiile pe care le-am introdus pentru noul sistem virtual. Fisierele pot fi gasite in /etc/zones[eclipse]# pwd/etc/zones[eclipse]# lseclipse1.xml SUNWblank.xml SUNWlx.xmlindex SUNWdefault.xml SUNWtsoldef.xml[eclipse]# zoneadm - se ocupa de administratea zonelor "zoneadm - administer zones"Pentru a instala zona pe care am configurato se poate folosi urmatoarea sintaxazoneadm -z eclipse install Preparing to install zone <eclipse1>.Creating list of files to copy from the global zone.Copying <1203> files to the zone.Initializing zone product registry.Determining zone package initialization order.Preparing to initialize <1203> packages on the zone.....................................................Istalarea zonei va dura aproximativ 10 minute In urmatorul exemplu puteti vedea zonele instalate[eclipse]# zoneadm list -iv ID NAME STATUS PATH BRAND IP 0 global running / native shared - eclipse1 installed /export/home/zones/eclipse1 native shared[eclipse]# Note:Dupa cum observati fiecare zona are un id si un nume.Prima zona care vine identificata de catre valoarea 0 este de fapt sistemul fizic care am spus ca vine recunoscut ca o zona globala si se gaseste sub directorul "/" iar in acest moment e in running deoarece sistemul functioneaza[eclipse]# uptime 7:34am up 2 day(s), 58 min(s), 2 users, load average: 0.00, 0.00, 0.00[eclipse]#Pentru a porni sistemul virtual pe care l-am creat vom folosi urmatorul comand [eclipse]# zoneadm -z eclipse1 boot[eclipse]# zoneadm list -iv ID NAME STATUS PATH BRAND IP 0 global running / native shared 12 eclipse1 running /export/home/zones/eclipse1 native shared[eclipse]# Urmatorul process confirma faptul ca zona e in running [eclipse]# ps -ef | grep z root 13496 13488 0 06:48:35 pts/1 0:00 sh -c more -s /tmp/mpzUaawA root 13531 1 0 07:35:59 ? 0:00 zoneadmd -z eclipse1Un alt tool important pus la dispozitie de catre solaris este zlogin Poate fi folosit pentru a intra intro anumita zona avand un shell , e putin echivalent cu serviciul ssh are la baza acelasi principiu. Un parametru important a acestui comand este -C care stabileste o conexiune cu zone in consola.E important pentru a configura ambientul o data ce a fost instalat.zlogin -C eclipse1Configurarile care au mai ramas de facut ar fi serverurile DNS, Language ,etc, toate acestea se pot face in mod interactiv o data ce a fost stabilita conexiunea in consola.Bineinteles pentru a face un simplu login in sistemul virtual se poate folosiurmatoarea sintaxazlogin nume_zona[eclipse]# zlogin eclipse1[Connected to zone 'eclipse1' pts/2]Last login: Tue Mar 6 06:47:30 on pts/2Oracle Corporation SunOS 5.10 Generic Patch January 2005##Shutdown se poate face direct din sistemul virtual sau folosind unul din comenzile de administrare [eclipse]# zoneadm -z eclipse1 halt Note:Tin sa precizez faptul ca nu am setat optiunea set autoboot=true cand am configurat initial aceasta zona , asta inseamna ca nu va porni in momentul in care va face boot sistemul fizic, oricum fisierul de configurare poate fi modificat folosind comandul zonecfg.Pentru a cunoaste in amanunt fiecare parametru a acestor tool-uri de administrare rog sa recurgeti la man pages.Pentru a intra in mod manual in fiecare zona , identificati path-ul unde a fost creata si veti putea ajunge direct in sistemul de fisiere a aceste zone[eclipse]# cd /export/home/zones/eclipse1[eclipse]# lsdev lu root[eclipse]# cd root[eclipse]# lsbin export lib opt sbin usrdev home mnt platform system varetc kernel net proc tmp[eclipse]# Evident plecand din sistemul fizic se pot doar explora si modifica fisierele dintro anumita zona, nu pot fi insa rulate procese cu drepturile userilor din zona (nu este echivalent cu un shell de login in sistemul guest care a fost virtualizat).Pentru a face login in sistemul care a fost virtualizat zlogin sau oricare alt serviciussh instalat in acel sistem va functiona.Daca sunt intrebari in legatura cu subiectul nu ezitati sa le faceti. Edited March 6, 2012 by pyth0n3 1 Quote