Nyt minullakin on oma pilvi. Se oli melko helppoa rakentaa Eucalyptuksella, joka tarjoaa Amazon EC2 -yhteensopivan pilvirajapinnan.

Tyypillinen Eucalyptus-pilvi muodostuu kolmenlaisista komponenteista:

Cloud Controller
Keskitetty webbikäyttöliittymä koko pilveen. Klusterit, käyttäjät, sertifikaatit ja avaimet rekisteröidään tänne.
Cluster Controller
Yhtä klusteria (IP-aliverkkoa) hallinnoiva kontrolleri. Jakaa noodeille IP-osoitteet DHCP:llä ja tarkkailee niiden kuormitusta.
Node Controller
Yksittäinen noodi, joka ajaa varsinaisia virtuaalikoneita Xenin tai KVM:n alla. Näitä voi olla vaikka kuinka paljon.

Käytössäni oli tähän melko vanhoja Xeon-palvelimia, jotka eivät tukeneet rautapohjaista virtualisointia. Sen vuoksi jouduin käyttämään Xeniä, joka osaa virtualisoida pelkällä softalla. Tämä kuitenkin edellyttää, että noodin host-käyttöjärjestelmää ajetaan erityisellä xen-kernelillä. Ubuntu 9.04:stä löytyy kaikki muu tarvittava, mutta ei tätä kerneliä. Siksi piti asentaa tämän ohjeen mukaan Debianista tarvittavat xen-paketit kaikille noodeille ja buutata ne Xen-Linuxiin. Xenistä pitää myös muistaa enabloida http-kuuntelija, jotta Eucalyptus voi ohjata sitä.

Toinen vaatimus paravirtualisoidulle Xenille on, että myös guest-käyttöjärjestelmät on mukautettu. Eucalyptukselta löytyy onneksi valmiina Xen-versio Ubuntusta. Sillä saa helposti kokeiltua, että virtuaalikoneet tosiaan käynnistyvät ja niihin saa yhteyden ssh:lla. Kannattaa muistaa luoda ensin ssh-avainparit Eucalyptukseen, sillä rootilla ei ole salasanaa.

Kun koko homma on pystytetty ja imaget ladattu järjestelmään, voi alkaa käynnistellä instansseja tuttuun tapaan Amazonin EC2-työkaluilla. Aktiivisten instanssien listaus näyttää tällaiselta:

INSTANCE    i-3F1F07DF    emi-E98814EC    10.42.211.245    10.42.211.245    running    eucadev    0        c1.medium    2009-07-17T05:03:08+0000        eki-3E5F15E4    eri-386F15C2
INSTANCE    i-524B08B3    emi-E98814EC    10.42.211.244    10.42.211.244    running    eucadev    0        c1.medium    2009-07-17T05:01:33+0000        eki-3E5F15E4    eri-386F15C2

Mikä tässä kaikessa sitten on ideana? Lyhyesti se, että pilvessä kaikki fyysiset koneet on standardoitu identtisiksi Xen-alustoiksi. Niitä on helppo lisätä ja poistaa. Sovellukset taas on paketoitu imageiksi, joita säilötään keskitetysti. Niitä voidaan ajaa siellä missä kulloinkin on vapaata tilaa. Eucalyptus huolehtii siitä, että sovelluksen image noudetaan ja käynnistetään Xeniin automaattisesti. Käyttäjän tarvitsee vain päättää, kuinka monta kopiota sovelluksesta käynnistetään.

Perinteinen virtualisointi esimerkiksi VMwarella muistuttaa tätä, mutta siinä imageja ei yleensä valmistella etukäteen ja varastoida keskitetysti. Sen sijaan imageista tehdään virtuaalisia kovalevyjä, joihin asennetaan käyttis ja konfiguroidaan sekä asennetaan ohjelmia tapauskohtaisesti. Tällaisia imageja ei voi monistaa kuten pilvessä, koska imageja ja itse sovellusta ei ole suunniteltu siihen tarkoitukseen.