Miskolci Egyetem Gépészmérnöki és Informatikai Kar
Oktatási Segédlet
Privát felhő kialakítása Ubuntu Enterprise Cloud telepítése és konfigurálása
Dr. Nehéz Károly
Miskolc, 2011.11.30
Informatikai Rendszerek Építése
Oktatási segédlet
Tartalomjegyzék
Tartalomjegyzék Tartalom Bevezetés ................................................................................................................................................ 3 Cloud fogalom ......................................................................................................................................... 4 Szolgáltatásként kínált szoftver (Software-as-a-Service - SaaS).............................................................. 5 Szolgáltatásként kínált platform (Platform-as-a-Service) ....................................................................... 6 Szolgáltatásként kínált infrastruktúra (Infrastructure-as-a-Service): ...................................................... 6 Ubuntu Enterprise Cloud Server ............................................................................................................. 8 Ubuntu Enterprise Cloud telepítése ...................................................................................................... 15 Konfiguráció .......................................................................................................................................... 32 Server 2 telepítés................................................................................................................................... 34 Konfiguráció .......................................................................................................................................... 35 Webes felület ........................................................................................................................................ 37 Az adminisztrátori felület ...................................................................................................................... 38 Image futtatása ..................................................................................................................................... 39 MediaWiki Demo felhő alkalmazás elindítása ...................................................................................... 49 Reverse proxy install ............................................................................................................................. 49 Összefoglalás ......................................................................................................................................... 52
2
Informatikai Rendszerek Építése
Oktatási segédlet
Bevezetés A Cloud Computing fogalom - magyarul számítási felhő - alatt azt értjük, amikor olyan adatokkal, alkalmazásokkal dogozik a felhasználó, melyek fizikailag egy távoli szerveren helyezkednek el, távoli erőforrásokat alkalmaz. Gondoljunk a Google népszerű levelező-szolgáltatás funkcióira és elvére felhasználói szemszögből, és a felhő technológia lényege könnyen megérthető. A szolgáltatóknál hatalmas kapacitású és mennyiségű hardver eszközre van szükség ahhoz, hogy gyorsan és hatékonyan ki tudják szolgálni az ügyfeleket, valamint azok adatait tárolni tudják anélkül, hogy a belső rendszer komplexitásából a felhasználó bármit is érzékelne. A felhő erőforrás-megosztást is megvalósít és gyorsan alkalmazkodik a változó igénybevételhez, aminek köszönhetően rugalmassága vitathatatlan. Legnagyobb előnye,
hogy
bárhonnan
bármikor
elérjük
azokat
a
szolgáltatásokat,
alkalmazásokat, adatokat, melyekre az éppen szükség van. Hátrányként
megfogalmazódik,
hogy
valójában
nem
tudjuk
pontosan
megmondani, hogy fizikailag hol tárolják az adatainkat: Indiában vagy éppen Amerikában és nem tudjuk biztosan azt sem, hogy illetéktelenek nem férnek-e hozzá rajtunk kívül.
3
Informatikai Rendszerek Építése
Oktatási segédlet
Cloud fogalom A Cloud Computing fogalom - magyarul számítási felhő - alatt azt értjük, amikor olyan adatokkal, alkalmazásokkal dogozik a felhasználó, melyek fizikailag egy távoli szerveren helyezkednek el, távoli erőforrásokat alkalmaz. A fogalom már az 1960-as években is ismert volt, hiszen John McCarthy vetette fel azt az elképzelését, hogy a számítástechnikának közüzemi szinten kell szerepelnie az emberek életében (Gautam Shroff 2010). Manapság a Google népszerű levelező-szolgáltatás funkcióira és elvére gondolva, felhasználói szemszögből, lényege könnyen megérthető. A folyamat úgy működik, hogy a felhasználó egy kis teljesítményű és tárhelyű eszközön egy böngészővel felcsatlakozik a szolgáltató szervereire, ahol igénybe veszi annak erőforrásait. A szolgáltatóknál ezzel ellentétben hatalmas kapacitású és mennyiségű hardver eszközökre van szükség ahhoz, hogy gyorsan és hatékonyan ki tudják szolgálni az ügyfeleket, valamint azok adatait tárolni tudják anélkül, hogy a belső rendszer komplexitásából a felhasználó bármit is érzékelne.
4
Informatikai Rendszerek Építése
Oktatási segédlet
A felhő erőforrás-megosztást is megvalósít és gyorsan alkalmazkodik a változó igénybevételhez, aminek köszönhetően rugalmassága vitathatatlan. Legnagyobb előnye,
hogy
bárhonnan
bármikor
elérjük
azokat
a
szolgáltatásokat,
alkalmazásokat, adatokat, melyekre az éppen szükség. Hátrányként
megfogalmazódik,
hogy
valójában
nem
tudjuk
pontosan
megmondani, hogy fizikailag hol tárolják az adatainkat: Indiában vagy éppen Amerikában és nem tudjuk biztosan azt sem, hogy illetéktelenek nem férnek-e hozzá rajtunk kívül. Alapvetően három szolgáltatási modellt különböztetünk meg:
Szolgáltatásként kínált szoftver (Software-as-a-Service - SaaS) Annyit tesz: szoftver, mint szolgáltatás. Eltérve a hagyományos megközelítéstől, a megrendelő nem egy telepíthető, birtokolható szoftvereszközt kap, melyet feltelepít és használ, majd ha elavult lecseréli, hanem az alkalmazásokat interneten keresztül teszi szinte azonnal használhatóvá. A cégek ez által gyorsan növelhetik és skálázhatják az alkalmazásaikat, emellett nem
kell
nagy
hardver-beruházásokat
finanszírozniuk,
üzemeltetésben,
biztonságban jártas szakembereket képezniük, hanem a szoftvereszköz alkalmazására koncentrálhatnak.
5
Informatikai Rendszerek Építése
Oktatási segédlet
Szolgáltatásként kínált platform (Platform-as-a-Service) Olyan platformot biztosít a fejlesztők számára, ahol gyorsan és rugalmasan együtt tudnak fejleszteni, valamint tárolási és számítási kapacitást biztosít a web-alkalmazásokhoz. Ez a modell az előző egyfajta kiegészítéseként is tekinthető. Sikeres SaaS szolgáltatásra példaként az Oracle CRM On Demand vagy a Salesforce.com-ot említhetjük.
Szolgáltatásként kínált infrastruktúra (Infrastructure-as-aService) Nemcsak alkalmazásokat és platformokat vehetünk igénybe szolgáltatásként, hanem erőforrásokat is. Például egy szolgáltatás operációs rendszert, tárterületet és távoli hozzáférést biztosíthat. Skálázható, virtualizált és dinamikusan bővíthető erőforrásként könnyen alkalmazható. Megkülönböztetünk privát és a nyilvános felhőket: a nyilvános felhőn több felhasználó is osztozhat, amíg a privát felhő valamilyen szervezet kizárólagos használatában van . A nyilvános felhőt a felhőszolgáltató, míg a privát felhőt a saját belső (vagy kiszervezett) informatikai részleg üzemelteti. A nyilvános felhők a hatékonyság érdekében általában csak nagyon korlátozott szolgáltatást (Saas, PaaS), míg a privát felhők akár nagyszámú alkalmazást is és teljes platformokat is kínálnak (IaaS). A nyilvános felhőket sokszor gyorsabb és olcsóbb üzemeltetni, mivel nincs szükség szoftver telepítésére. Az cégen belül, az üzemeltetők részéről így
6
Informatikai Rendszerek Építése
Oktatási segédlet
természetesen nem igényel semmilyen karbantartást, szoftverkövetést. Meglévő alkalmazások felhőre való „átültetése” nem minden esetben egyszerű feladat, alkalmazkodni kell a nyilvános felhő architektúrájához, a fent említett modellek figyelembe vételével.
7
Informatikai Rendszerek Építése
Oktatási segédlet
Ubuntu Enterprise Cloud Server Áttekintés Az egyik legismertebb Linux disztribúció, az Ubuntu célul tűzte ki azt, hogy kiválasztja
és
folyamatosan
szoftvereszközöket, kialakíthatóak.
Az
amelyek Amazon
karbantartja
azokat
segítségével
privát
EC2/3
API-t
a
nyílt
felhő
megvalósító
forráskódú architektúrák Eucalyptus
(http://open.eucalyptus.com/) projektre építették terméküket. 2009 áprislisában megjelent Ubuntu 9.04 Server Edition-ba építették bele az Eucalyptus egy továbbfejlesztett változatát a KVM hipervisorral kiegészítve, és az egyszerűség kedvéért ezt a változatot UEC-nek (Ubuntu Enterprise Cloud) nevezték. 2010 októberére, amikor a 10.10-es változat került a piacra, az UEC már a nyílt forráskódú privát felhők legsikeresebb változatává vált, amely már a hibrid felhők irányába is fontos lépéseket tett.
UEC Komponensek A UEC számos komponenst tartalmaz, amelyek szerepének megértése fontos feltétele a privát felhő telepítésnek és használatnak. A tanszékünk fontos szerepet szán a nyílt forráskódú informatikai rendszerek alkalmazásának az oktatásban és kutatásban.
Node Controller (NC) Ez a komponens vezérli a virtuális gépek életciklusát azokon a nódokon, amelyekre telepítésre került. Alapesetben maximálisan annyi példányt (instance)
8
Informatikai Rendszerek Építése
Oktatási segédlet
érdemes futtatni egy nódon, ahány maggal rendelkezik a processzora. Csak olyan processzorokat támogatnak, amelyek rendelkeznek a BIOS szintű hardveres virtualizációs lehetőséggel, azaz AMD-V vagy Intel-VT támogatással. Ez a szoftverkomponens alap esetben, a KVM hypervisort, mint virtuális gépet alkalmazza, de ez tetszőlegesen módosítható. Az NC egyik oldalról a futtató operációs rendszerrel és a hypervisorral, másik oldalról pedig a Cluster Controllerrel (CC) van kapcsolatban, továbbá a rugalmas bővíthetőség elősegítése miatt lekérdezi az CPU-k és a magok számát, a fizikai memóriát, a rendelkezésre álló lemezterületet, az aktuálisan futó virtuális géppéldányok számát és továbbítja a CC számára. Tehát összefoglalva, fő funkciói: az erőforrások karbantartása és a VM példányok életciklusának kezelése.
Cluster Controller (CC) A CC menedzseli a Node Controllereket, telepíti a VM példányokat. Nevéből is következik, hogy a példányok hálózatkezeléséért is felelős. Az Eucaliptus rendszer
bizonyos
típusú
hálózati
módokat
alkalmaz
(http://open.eucalyptus.com/wiki/EucalyptusNetworkConfiguration_v2.0) például: IP kontroll, biztonsági csoportok, metadata szolgáltatás, VM izoláció, amelyeket a privát felhő topológiájának tervezésénél figyelembe kell venni. Összefoglalva a CC felelős azért, hogy egy új VM példány melyik NC segítségével induljon el, vezérli a hozzá tartozó virtuális hálózatot, továbbá összegyűjti az NC-k futási adatait és továbbítja a Cloud Controller (CLC) felé.
9
Informatikai Rendszerek Építése
Oktatási segédlet
Walrus (W3) W3 perzisztens egyszerű tároló szolgáltatást kínál REST és SOAP API-n keresztül. Tárolja a VM példányok fizikai állományait, ezek mentéseit (snapshot), valamit egyszerű fájlkiszolgálóként használható a felhőben.
Storage Controller (SC) Az SC támogatja a perzisztens block szintű tárolók alkalmazását. Az Amazon Elastic Block Store (EBS) megvalósításának tekinthető. Ez a tároló független az őt használó VM példányoktól, azok használják, amelyeknek szüksége van adatbázisra, fájlrendszerre, vagy blokk szintű tárolóra. A tárolók mérete dinamikusan, igény szerint növelhető, ami kellő rugalmasságot ad a használata során.
Cloud Controller A privát felhő infrastruktúra front-end komponense a Cloud Controller (CLC), amely egy webszolgáltatás interfészének tekinthető. Egyik oldalról a kliensek az API-n keresztül elérhetik szolgáltatásit, másik oldalról a fenti komponensekkel kapcsolatban van. A kényelmes használat elősegítése céljából web-es interfészt is tartalmaz. Monitorozza a privát felhő erőforrásait VM példány szinten, továbbá eldönti, hogy egy új példány melyik CC segítségével induljon el. A következő ábra egy minta topológiát mutat, amely tartalmazza a fenti komponenseket.
10
Informatikai Rendszerek Építése
Oktatási segédlet
1. ábra Egyszerű privát felhő topológia, az alap komponensek felhasználásával
Mintafelhő kialakítási elvei A rendelkezésre álló Dell típusú 4 magos szervereken a hallgatók kialakítottak egy mintafelhőt, amelyen az Ubuntu Enterprise Cloud Server komponenseit telepítették. Switch segítségével a 4 kiszolgáló elkülönített alhálózatban
11
Informatikai Rendszerek Építése
Oktatási segédlet
működik. A megvalósított konfiguráció és az egyes szervereken alkalmazott szoftver komponensek az 1. ábrán láthatóak. Az első szerver két hálózati adapterrel is rendelkezik, a felhővezérlő (cloud controller), a Walrus és Cluster Controlleren kívül a Storage Controllel is ezen helyezkedik el. A cél az volt, hogy 1 kiszolgálón helyezzék el a kiegészítő komponenseket a többin kizárólag a node controllerek legyenek, amelyek a virtuális gépek életciklus-menedzsmentjéért felelősek. A négy szerver fix IP címmel rendelkezik, a cluster controller segítségével a megjelenő virtuális gépek egy előre definiált tartományból kapják címeiket. Egy reverse-proxy szoftver is telepítésre került, ami http kérések továbbításáért felelős, és kintről nézve transzparensen kezeli a rendszert.
switch Server Node Controller
2
Server Node Controller
3
Server Node Controller
4
Server 1 Cloud Controller Walrus Cluster Controller Storage Controller Reverse proxy
router
2. ábra A kialakított minta konfiguráció 4 szerverrel és 2 hálózati eszközzel
12
Informatikai Rendszerek Építése
Oktatási segédlet
A Firefox böngészőbe telepített ElasticFox kiegészítő segítségével a felhő adminisztrátor a virtuális gépeket kényelmesen tarthatja karban. Vezérelheti darabszámukat, indíthat-leállíthat példányokat, biztonsági csoportokat hozhat létre (security groups) és nem utolsó sorban lemezterületeket (volumes) dinamikusan képes módosítani és pillanatfelvételeket készíthet róluk (snapshot). Az eszköz segítségével a hallgatók betekintést kaphatnak a privát felhők fontos menedzsment feladatiról. A kialakított rendszer tesztelését kívülről lehet végezni, a készen konfigurált MediaWiki-vel telepített virtuális gépek indításával. A wiki alkalmazások alkalmasak gyors teszteléshez, mivel általában adatbáziskapcsolatot nem használnak, hanem a fájlrendszeren dolgoznak közvetlenül.
13
Informatikai Rendszerek Építése
Oktatási segédlet
3. ábra Elasticfox – Firefox kiegészítő segítségével a virtuális gép példányok könnyen menedzselhetőek
14
Informatikai Rendszerek Építése
Oktatási segédlet
Ubuntu Enterprise Cloud telepítése Alapszoftver:
Ubuntu
Server
10.4-es
kiadását
http://www.ubuntu.com/download/server/download
használjuk címről
amely
a
ingyenesen
hozzáférhető.
4. ábra az alapszoftver letöltési oldala
Különböző felhő topológiákból állnak rendelkezésünkre, mint már korábban bemutatásra került. Fontos megjegyezni, hogy a felhő nem alakítható ki egyetlen számítógépen, még akkor sem, ha virtuális gépeken indítjuk el az egyes komponenseket. Olyan változatra esett a választás, amelyhez minimális hardver szükséges. Ilyen a 2 gépes változat amelyet a következőkben mutatunk be:
15
Informatikai Rendszerek Építése
Oktatási segédlet
Server1: (és a hozzá tartozó komponensek) – Cloud Controller – Walrus – Cluster Controller – Storage Controller
Server2: (és a hozzá tartozó komponensek) – Node Controller A második szerveren fognak elindulni a virtuális gépek! Node-okból természetesen több is lehet, a kétgépes elnevezés itt csak szimbolikus. Server1 hardver összetevőire a hivatalos ajánlás a következő:
Hardware Minimum
Ajánlott
CPU
1GHz
2 x 2GHz
Memory
2GB
4GB
Disk
5400rpm IDE 7200rpm SATA
Disk Space 40GB
200GB
Networking 100Mbps
1000Mbps
Esetünkben a Server1-ben két darab hálózati kártyának kell lennie.
16
Informatikai Rendszerek Építése
Oktatási segédlet
Server2 hardver összetevőire hivatalos ajánlás: Hardware Minimum
Ajánlott
CPU
VT extensions VT, 64-bit, Multicore
Memory
1GB
Disk
5400rpm IDE 7200rpm SATA or SCSI
4GB
Disk Space 40GB
100GB
Networking 100Mbps
1000Mbps
Fontos, hogy a node-ok processzorának támogatniuk kell a Virtualization technologyt. Ez a virtuális gépek futtatásához ad hardveres gyorsítást. A telepítéshez használt egyéb eszközök: – 1 db router – 1 db switch Kialakítás A router wan portján csatlakozik a külvilág, és DHCP-vel oszt IP címeket. A Server1 eth0-val csatlakozik hozzá, megőrzött IP-t kap (192.168.1.102). Server1 eth1-gyel csatlakozik a switchhez. Eth1-nek statikus IP-je van (192.168.2.1). A switchen keresztül csatlakoznak a node-ok.
17
Informatikai Rendszerek Építése
Oktatási segédlet
Server1 telepítés A rendszer bootolása után válasszuk a megfelelő nyelvet (English), majd indítsuk el a telepítést az Install Ubuntu Enterprise Cloud menüpontot választva.
5. ábra a konfiguráció és telepítés kezdete Majd ismét nyelvi, területi, billentyűzet kiosztási beállítások következnek A telepítő felismeri, hogy több hálózati kártya van, megkérdezi, melyik az elsődleges. Válasszuk az eth0-t.
18
Informatikai Rendszerek Építése
Oktatási segédlet
Következik a Hostname megadása: ubuntuCLC CLC address megadásánál hagyjuk üresen a mezőt, mert még most telepítjük.
6. ábra a felhő telepítési módjának kiválasztása Enter után azonnal felajánl egy telepítendő komponens listát a telepítő, ügyeljünk arra, hogy az összes lehetőség legyen kiválasztva kivéve a Node controller. Tehát a kiválasztott elemek: – Cloud controller – Walrus storage service – Cluster controller
19
Informatikai Rendszerek Építése
Oktatási segédlet
– Storage controller
7. ábra a felhő komponenseinek kiválasztása Majd ki kell választanunk, hogy mely hálókártyán kommunikál a nodeokkal. Értelemszerűen az eth1 lesz. Időzóna, Partíció beállítások következnek. Hagyjuk, hogy az Ubuntu magának rendezze el a lemezterületet. use entire disk end setup LVM. Majd jóvá kell hagynunk a változásokat
20
Informatikai Rendszerek Építése
Oktatási segédlet
8. ábra a felhő telepítési módja
21
Informatikai Rendszerek Építése
Oktatási segédlet
9. ábra a partíciók létrehozása 1.
22
Informatikai Rendszerek Építése
Oktatási segédlet
10. ábra a prtíciók létrehozása 2.
23
Informatikai Rendszerek Építése
Oktatási segédlet
11. ábra a prtíciók létrehozása 3.
24
Informatikai Rendszerek Építése
Oktatási segédlet
12. ábra a prtíciók létrehozása 4.
25
Informatikai Rendszerek Építése
Oktatási segédlet
13. ábra a prtíciók létrehozása 5.
26
Informatikai Rendszerek Építése
Oktatási segédlet
14. ábra a partíciók létrehozása 6.
27
Informatikai Rendszerek Építése
Oktatási segédlet
15. ábra az extra csomagok telepítése
Új felhasználó hozzáadása következik: a megadását nem részletezném, értelemszerű. Full name for the new User: xxxxxxxx username for account: cladmin
28
Informatikai Rendszerek Építése
Oktatási segédlet
16. ábra új felhasználó hozzáadása
Home directory titkosítása: no Nem a biztonságon van a hangsúly ebben a szakaszban, természetesen éles rendszernél elengedhetetlen. Proxy beállítások: nem használunk proxyt, hagyjuk üresen a mezőt. A következő ablakon érdemes az automatikus biztonsági frissítéseket választani. install security updates automatically
system mail name
29
Informatikai Rendszerek Építése
Oktatási segédlet
17. ábra nincs automatikus upgrade Ezután a cluster nevét kell megadnunk Eucalyptus Cluster Name: cluster1 Ip-range: 192.168.3.100-192.168.3.199 (a kép csak illusztráció) grub install restart
30
Informatikai Rendszerek Építése
Oktatási segédlet
18. ábra ip range beállítása
31
Informatikai Rendszerek Építése
Oktatási segédlet
Konfiguráció Manuális etc/network/interfaces fájl szerkesztés auto eth1 iface eth1 inet static address 192.168.2.1 netmask 255.255.255.0 network 192.168.2.0 broadcast 192.168.2.255
Mentsük a fájlt majd léptessük érvénybe az új beállításokat endre@ubunutCLC:~$ sudo /etc/init.d/networking restart
Végezzük el az eucalyptus frissítését. Nagyon fontos, hogy mindig a legfrissebb változatot használjuk, mert az új funkciók mellett hangsúlyosabbak a hibajavítások, és így sok problémától megkímélhetjük magunkat. sudo apt-get update sudo apt-get upgrade eucalyptus
Az időszinkronizáció miatt telepítenünk kell az ntp csomagot, mely lehetővé teszi, hogy ha esetleg az internetről történő szinkronizálás nem lehetséges, akkor is a Cloud Controller szolgáltassa az időt, így mindig szinkronban lesznek a felhőben résztvevő gépek. sudo apt-get install ntp
Az ntp konfigurálásához nyissuk meg az /etc/ntp.conf állományt és végezzük el a módosításokat: server 127.127.1.0
32
Informatikai Rendszerek Építése
Oktatási segédlet
fudge 127.127.1.0
Szolgáltatás újraindítása: sudo /etc/init.d/ntp restart
33
Informatikai Rendszerek Építése
Oktatási segédlet
Server 2 telepítés Network manual konfiguration private ip address. 192.168.2.2 netmask: 255.255.255.0 gateway 192.168.2.1 (ezt helyesen fel is ajánlja)
NameServer: 192.168.2.1 192.168.1.2 A második IP cím a router címe
Hostname: ubuntuNode
Domain name: UbuntuCloud.hu Ha felismeri a rendszer a CLC-t akkor továbblép, ellenkező esetben megkérdezi 192.168.2.1 Node Controllert válasszuk Guided partícionálást válasszuk, mint a Server1-nél
34
Informatikai Rendszerek Építése
Oktatási segédlet
Konfiguráció Végezzük el az eucalyptus naprakésszé tételét, és az ntp installálását úgy, ahogy a Server1 esetében is tettük. Írjuk át az /etc/ntp.conf konfigurációs állományban a server sort: server 192.168.2.1
Ez a ntp server címe és természetesen maga a CLC is Újraindítjuk a szolgáltatást, hogy a változtatások érvénybe lépjenek endre@ubuntuNode:~$ sudo /etc/init.d/ntp restart
/etc/eucalyptus/eucalyptus.conf állományt nyissuk meg, és a következő változtatásokat végezzük el: VNET_PUBINTERFACE="br0" VNET_PRIVINTERFACE="br0" VNET_BRIDGE="br0" VNET_DHCPDAEMON="/usr/sbin/dhcpd3" VNET_DHCPUSER="dhcpd" VNET_MODE="MANAGED-NOVLAN
Innentől már be lehet ssh-zni a gépekre, a node-okra CLC-n keresztül. Ezután a Cloud controlleren hajtsuk végre a következő lépéseket: Credential letöltése, környezeti változók beállítása: mkdir -p ~/.euca chmod 700 ~/.euca cd ~/.euca sudo euca_conf --get-credentials mycreds.zip unzip mycreds.zip ln -s ~/.euca/eucarc ~/.eucarc
35
Informatikai Rendszerek Építése
Oktatási segédlet
cd -
Hasonlót kell látnunk:
19. ábra a controller konfiguráció Installáljunk egy alkalmazást, mely segítségével menedzselni tudjuk a felhőt parancssorból. Előfordulhat, hogy az eucalyptus upgrade miatt már installálva van az alkalmazás. Az újabb és újabb verziók megjelenése miatt változhat az installálás menete, illetve az összetevők is. sudo apt-get install euca2ools
Ellenőrzési pont, most meggyőződhetünk arról, hogy eddig minden rendben zajlott-e. Környezeti változók beállítása:
36
Informatikai Rendszerek Építése
Oktatási segédlet
. ~/.euca/eucarc
Elérhető erőforrások lekérdezése: euca-describe-availability-zones verbose
20. ábra a működés ellenőrzése
Webes felület Bármely
böngészőből
navigáljunk
a
következő
oldalra:
https://<192.168.1.102>:8443 Bejelentkező felület fogad minket. Alapértelmezett belépés, amit biztonsági okokból természetesen módosítanunk kell a későbbiekben:
User: admin Pass: admin Tehát az első belépés után érdemes változtatnunk a jelszót.
37
Informatikai Rendszerek Építése
Oktatási segédlet
Az adminisztrátori felület
21. ábra a webes felület képernyője
Főbb pontok: – Credentials: Innen tölthetők le a különböző tanúsítványok, kulcspárok. Ezek
elengedhetetlenek
ahhoz,
hogy
hozzáférjünk
a
felhő
szolgáltatásokhoz. – Images: Itt megtalálhatóak a telepített image-k – Store: Ez az egyik legfontosabb pont, akik még ismerkedés fázisban vannak az Ubuntu Enterprise Clouddal. Innen ugyanis előre elkészített image-eket telepíthetünk egy gombnyomással. A letöltés és installálás
38
Informatikai Rendszerek Építése
Oktatási segédlet
nem tart sokáig (internetkapcsolattól függően). Telepítés befejezése után némi segítséget kapunk ha a How to run linkre kattintunk. Az image futtatása a későbbi részben található meg, mert még előtte különböző beállításokat kell eszközölnünk. – Users:
Felhasználók
menedzselése.
Alapvetően
két
csoportot
különböztetünk meg: Normál és Admin. Meg kell jegyeznem, hogy az admin felület elég kevés beállítási lehetőséget biztosít, nincs tehát lehetőség haladó felhasználó jogok kezelésére. – Configuration: Az euca_conf-ban megtalálható beállítások kigyűjtve. Megtalálhatunk minden információt a felhőről, (Cloud Controller, Cluster controller, Storage controller, Walrus, Node-ok, virtuális gép típusok különböző
tulajdonságait
jeleníti
meg,
illetve
módosíthatjuk).
Természetesen ezeket parancssorból is megtehetjük, és tapasztalatok szerint érdemes inkább onnan konfigurálni, a webes felületet csak ellenőrzésre használni, mert sokszor adódhat olyan helyzet, hogy nem helyes adatok jelennek meg, illetve a módosításokat nem sikerül menteni.
Image kezelés Számos előre elkészített image áll rendelkezésre a web-en amelyet minden további nélkül alkalmazhatunk a felhőben. További információért látogassunk el a
http://docs.openstack.org/cactus/openstack-compute/admin/content/starting-images.html
oldalra. Éles környezetben mindenképpen magunknak kell készítenünk imageeket, mert ezeknél általában a konfiguráció és az alkalmazott szoftverek is egyediek. Az első lépés egy úgynevezett raw image kialakítása, ami
39
Informatikai Rendszerek Építése
Oktatási segédlet
reprezentálni fogja a fő merevlemezét a virtuális gépnek, a példában egy 8 gigabyte méretű lemezt hozunk létre: kvm-img create -f raw server.img 8G
Következő lépés az operációs rendszer telepítése. Töltsük le a következő címről a telepítőlemezt wget http://releases.ubuntu.com/natty/ubuntu-11.04-serveramd64.iso
A letöltött telepítőlemez egy DVD-t reprezentál, amit a következő utasítással el is indíthatunk: sudo kvm -m 256 -cdrom ubuntu-11.04-server-amd64.iso -drive file=server.img,if=scsi,index=0 -boot d -net nic -net user nographic
-vnc :0
Az indító szkript beállítja a kvm-nek, hogy a vnc display port a nullás legyen. Ez azért fontos, mert erre kell rácsatlakozni a virtuális képernyő használatához. vncviewer 192.198.1.100:0
Az telepítési folyamat közben egy ext4 típusú perticiót kell létrehozni a gyökérhez ’/’ mountolva. Vannak olyan linux disztribuciók, amelyeknél swap particiót is létre kell hozni, ilyen a Fedora 14. A telepítési folyamat befejezése után a következő paranccsal elindítható a virtuális gép. sudo kvm -m 256 -drive file=server.img,if=scsi,index=0,boot=on -boot c -net nic -net user -nographic -vnc :0
40
Informatikai Rendszerek Építése
Oktatási segédlet
Ennél a lépésnél érdemes csomagokat telepíteni, beállítani a speciális egyedi konfigurációt, valamint felhasználók létrehozása és a jogosultságainak beállítása is itt lehetséges. Ha nem adunk hozzá csomagokat akkor is érdemes az alap frissítéseket elvégezni a következő parancsoknál Ubuntu esetén: sudo apt-get update sudo apt-get upgrade sudo apt-get install openssh-server cloud-init
Fedora Linux esetén pedig: yum update yum install openssh-server chkconfig sshd on
Utolsó lépés a network perzisztencia szabályok eltávolítása a /etc/udev/rules.d könyvtárból, mert e miatt nem eth0 lesz az induló példány ethernet interface-e. Amennyiben az elkészített image-t szeretnénk a nagyközönség számára is elérhetővé tenni. Ext4 típusú fáljrendszert kell kialakítani. A következőkben bemutatom, hogyan lehet ezt megtenni. sudo losetup -f server.img sudo losetup -a
41
Informatikai Rendszerek Építése
Oktatási segédlet
A képernyőn a következő fog megjelenni: /dev/loop0: [0801]:16908388 ($filepath)
A loop device nevét kell megjegyezni: a fenti példában /dev/loop0. A következő lépésben meg kell keresni a partíció kezdő szektorát: sudo fdisk -cul /dev/loop0
A kimenet valami hasonló lesz: Disk /dev/loop0: 5368 MB, 5368709120 bytes 149 heads, 8 sectors/track, 8796 cylinders, total 10485760 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x00072bd4 Device Boot Start End Blocks System /dev/loop0p1 * 2048 10483711 5240832 83 Linux
42
Informatikai Rendszerek Építése
Oktatási segédlet
A kezdő szektora a /dev/loop0p1 partíciónak az lesz aminek az ID-je 83. Ezt a számot 512-vel kell szorozni 2048*512 = 1048576. Ezek után kapcsoljuk el a a loop0 device-t. sudo losetup -d /dev/loop0
Mount-oljuk a /dev/loop0p1 partícióját a server.img-nek, úgy hogy felhasználjuk a kiszámított kezdő értéket:
sudo losetup -f -o 1048576 server.img sudo losetup –a
A kimenet valami ilyesmi lesz: /dev/loop0: [0801]:16908388 ($filepath) offset 1048576
Másoljuk a teljes partíciót egy új .raw állományba sudo dd if=/dev/loop0 of=serverfinal.img
Image futtatása Telepítsünk, egy előre elkészített image-t a Store-ból. Természetesen egyedi image létrehozására is van lehetőség. (Windows operációs rendszer alapú image készítése sem akadály.) Erre Következzen pár beállítás, melyek után futtathatjuk a telepített image-t: Kulcspár hozzáadása:
43
Informatikai Rendszerek Építése
Oktatási segédlet
touch ~/.euca/mykey.priv chmod 0600 ~/.euca/mykey.priv euca-add-keypair mykey > ~/.euca/mykey.priv
Kulcspárok lekérdezése: euca-describe-keypairs
A default groupnak engedélyezni kell a 22-es port hozzáférést euca-authorize default -P tcp -p 22 -s 0.0.0.0/0
A kiválasztott instance futtatása: euca-run-instances emi-DEFF1076 -k mykey -t m1.large
Megjegyzés: a dokumentációkban általában az szerepel, hogy m1.small virtuális gépen futtassuk az adott instance-t. Ekkor azonban nagy valószínűséggel az instance sosem fog running állapotban kerülni, hanem azonnal leáll. Az ok pedig a virtuális gép lemezméretében keresendő. Alapértelmezetten 2GB tárhellyel rendelkezik, ami nem elegendő az instance futásához. Megoldás: Állítsuk át a small gép paramétereit és úgy futtassuk az instance-t (ezt megtehetjük az admin felület Configuration menüpontjában, de parancssorból is) vagy egyszerűen más virtuális gép típust választunk. Esetünkben ez történt. Az instance-k állapotát nyomon követhetjük a következő paranccsal: watch –n5 euca-describe-instances
Instance-k leállítása:
44
Informatikai Rendszerek Építése
Oktatási segédlet
INSTANCEID=$(euca-describe-instances | grep emi-DEFF1076 | grep running | tail -n1 | awk '{print $2}') euca-terminate instance $INSTANCEID
Az INSTANCEID-t hogy hogyan adjuk meg az természetesen ránk van bízva. Másik lehetőség a felhő menedzselésére az Elasticfox Firefox kiegészítő. Használatba vételéhez nincs más dolgunk, mint a következő címről letölteni a legfrissebb verziót:
http://code.google.com/p/hybridfox/downloads/list Az xpi kiterjesztésű fájlt csak drag and drop módszerrel be kell húzni a Firefox ablakába és automatikusan települ. Település után az Eszközök --> Hybridfox menüponttal indíthatjuk el. Elsősorban a Régiókat (Regions gomb) kell beállítanunk: A felbukkanó ablakban kattintsunk az Add gombra Region name: koll-localcloud Endpoint URL: http://192.168.1.102:8773/services/Eucalyptus
Tehát a Cloud Controller címe és a mintában látható 8773 port és az utána következő URL rész szükséges. Ebből az URL részből is látszik, hogy a háttérben Apache Axis2 fut. Ezután a tanúsítványt (Credentials) kell beállítanunk:
Account Name: koll-localcloudAcc
45
Informatikai Rendszerek Építése
Oktatási segédlet
AWS Access Key: WKy3rMzOWPouVOxK1p3Ar1C2uRBwa2FBXnCw AWS Secret Access Key: bPysCiPthwPvrSO8WTHQMWRCemqpDnLnt9V8w
A két kulcsot a Cloud admin felület Credentials menüpontjában az oldal alján találjuk. (Query interface credentials) Nyomjuk meg a Show Key gombot. Az Images fülön láthatjuk az elérhető instance-k listáját. Kiválasztás után balról a második ikonnal indíthatjuk el az image-t. A következő képsorozatok ezt szemléltetik:
22. ábra az Elasticfox Firefox kiegészítő
46
Informatikai Rendszerek Építése
Oktatási segédlet
23. ábra az Elasticfox Firefox kiegészítő – Példányok indítása Automatikusan átvált a program az Instances fülre, itt figyelemmel követhetjük az instance aktuális állapotát, illetve lehetőségünk van leállítani is.
47
Informatikai Rendszerek Építése
Oktatási segédlet
24. ábra az Elasticfox Firefox kiegészítő – a példány futási adatainak kezelése
48
Informatikai Rendszerek Építése
Oktatási segédlet
MediaWiki Demo felhő alkalmazás elindítása
Az admin felületen a Store-ból rakjuk fel a MediaWiki Demo Image-t Mivel webes alkalmazásról van szó, ezért engedélyeznünk kell a 80-as port hozzáférést euca-authorize default -P tcp -p 80 -s 0.0.0.0/0
Reverse proxy telepítése Erre azért van szükség, mert a node-ok egy külön alhálózaton vannak elszeparálva és a kliensek csak a Cloud controllert tudják elérni. A választás a pound nevezetű programra esett, mely a reverse proxy szerepét betölti. A reverse proxy lényege az, hogy egy kívülről beérkező kérést adott szabályok alapján az egyes virtuális gépeknek továbbít. sudo apt-get install pound
Módosítsuk a /etc/default/pound konfigurációs állományt: # Defaults for pound initscript # sourced by /etc/init.d/pound # installed at /etc/default/pound by the maintainer scripts ListenHTTP Address
192.168.1.102
Port
8080
49
Informatikai Rendszerek Építése
Oktatási segédlet
Service BackEnd Address
192.168.3.100
Port
80
End End End # prevent startup with default configuration # set the below varible to 1 in order to allow pound to start startup=1
Indítsuk újra a szolgáltatást, hogy érvénybe lépjenek a módosítások: /etc/init.d/pound restart
Ezek után egy tetszőleges böngészőbe beírva a következő címet, megjelenik a Mediawiki oldala: http://192.168.1.102:8080/mediawiki
50
Informatikai Rendszerek Építése
Oktatási segédlet
25. ábra a mediawiki oldala fut
Referenciák http://open.eucalyptus.com/forum http://www.ubuntu.com/cloud/private http://www.ubuntu.com/getubuntu/download-server
51
Informatikai Rendszerek Építése
Oktatási segédlet
Összefoglalás Jelen oktatási segédlet a TÁMOP-4.2.1.B-10/2/KONV-2010-0001 jelű projekt részeként az Európai Unió támogatásával, az Európai Szociális Alap társfinanszírozásával valósul meg.
52