Tento návod hovorí o inštalácii UEC z CD disku Ubuntu 10.10 Server Edition, pričom predpokladá použitie základnej topológie siete s jednoduchou obsluhou v štýle "všetko v jednom" a s jedným alebo viacerými pripojenými uzlami.
V tomto návode sa naučíme, ako nainštalovať, nakonfigurovať, zaregistrovať a vykonávať základné operácie v nastaveniach UEC, čím získame jedného správcu mraku (cloud controller) s "rozhraním" a jeden alebo viacero uzlov na spúšťanie inštancií virtuálnych počítačov (VM). V začiatkoch nám pomôžu aj príklady využitia vlastného súkromného mraku.
Ak chceme implementovať najmenšiu infraštruktúru mraku, potrebujeme najmenej dva špecializované systémy:
Z nasledujúcej časti odporúčame miesto fixných požiadaviek použiť odporúčania vychádzajúce zo skúseností autorov tejto dokumentácie.
Nasledujúca tabuľka platí pre systém, na ktorom bude bežať jeden alebo viac:
Požiadavky rozhrania UEC
| Hardvér | Minimum | Odporúčané | Poznámky |
| CPU | 1 GHz | 2 x 2 GHz | Pre rozhranie všetko v jednom je vhodné, ak budeme mať aspoň dvojjadrový procesor. |
| Pamäť | 512 MB | 2 GB | Pre rozhranie v jazyku Java bude lepšie ak bude mať veľa dostupnej pamäte. |
| Disk | 5400 ot./min IDE | 7200 ot./min SATA | Pomalšie disky fungujú, ale bude potrebný oveľa dlhší čas na štart inštancie. |
| Miesto na disku | 40 GB | 200 GB | 40GB je miesto len pre jeden obraz, vyrovnávaciu pamäť, atď. Eucalyptus nemá rád keď mu dôjde voľné miesto na disku. |
| Sieť | 100 Mbps | 1000 Mbps | Obrazy počítačov majú stovky MB a je potrebné, aby sa po sieti kopírovali na uzly |
Ďalšími systémami sú uzly, na ktorých bude spustený:
Požiadavky uzlov UEC
| Hardvér | Minimum | Odporúčané | Poznámky |
| CPU | Rozšírenia pre VT | VT, 64-bit, Viac jadier | 64 bitové systémy umožňujú spúšťať inštancie pre architektúry i386 aj amd64. Eucalyptus umožňuje spustiť na jednom uzle iba jeden virtuálny počítač na jadro procesora. |
| Pamäť | 1 GB | 4 GB | Viac pamäte znamená viac hosťujúcich systémov a umožňuje implementovať rozsiahlejšie systémy. |
| Disk | 5400 ot./min IDE | 7200 ot./min SATA alebo SCSI | Uzly systému Eucalyptus sú závislé od rýchlosti disku; čakanie na V/V operácie bude predstavovať úzke hrdlo pri výkone. |
| Miesto na disku | 40 GB | 100 GB | Obrazy sa ukladajú do lokálnej vyrovnávacej pamäte. Eucalyptus nemá rád nedostatok miesta na disku. |
| Sieť | 100 Mbps | 1000 Mbps | Obrazy počítačov majú stovky MB a je potrebné, aby sa po sieti kopírovali na uzly |
Inštalácia správcu uzla je ešte jednoduchšia. Iba sa uistíme, či máme pripojenie do siete, v ktorej už beží správca mraku alebo klastra.
Registrácia všetkých súčastí by mala byť automatická za predpokladu, že:
Kroky a až d sú potrebné iba ak používame metódu UEC/PackageInstall.
Ak postupujeme podľa tohto návodu, tieto kroky by už mali byť automaticky vykonané, a preto kroky "a" až "d" môžeme preskočiť.
Používateľ správcu mraku eucalyptus potrebuje mať SSH prístup k správcovi služby Walrus, správcovi klastra a správcovi úložiska ako používateľ eucalyptus.
Verejný ssh kľúč používateľa správcu mraku eucalyptus nainštalujeme takto:
sudo passwd eucalyptus
sudo -u eucalyptus ssh-copy-id -i ~eucalyptus/.ssh/id_rsa.pub eucalyptus@<IP_UZLA>
sudo passwd -d eucalyptus
Konfigurácia služieb
Na správcovi mraku:
Zaregistrujeme správcu mraku:
Zadefinujeme premennú prostredia shell CC_NAME v súbore /etc/eucalyptus/eucalyptus-cc.conf
Zadefinujeme premennú prostredia shell CC_IP_ADDR v súbore /etc/eucalyptus/eucalyptus-ipaddr.conf, buď ako jednu alebo ako medzerami oddelený zoznam IP adries.
Zaregistrujeme správcu služby Warlus:
Zadefinujeme premennú prostredia shell WALRUS_IP_ADDR v súbore /etc/eucalyptus/eucalyptus-ipaddr.conf, ako jednu IP adresu.
Na správcovi klastra:
Zaregistrujeme správcu úložiska:
Zadefinujeme premennú prostredia shell CC_NAME v súbore /etc/eucalyptus/eucalyptus-cc.conf
Zadefinujeme premennú prostredia shell SC_IP_ADDR v súbore /etc/eucalyptus/eucalyptus-ipaddr.conf, buď ako jednu alebo ako medzerami oddelený zoznam IP adries.
Zverejnenie
Teraz spustíme zverejňovacie služby.
Správca služby Walrus:
sudo start eucalyptus-walrus-publication
Správca klastra:
sudo start eucalyptus-cc-publication
Správca úložiska:
sudo start eucalyptus-sc-publication
Správca uzla:
sudo start eucalyptus-nc-publication
Spustenie načúvača
Na správcovi mraku a na správcovi(och) mraku spustíme:
sudo start uec-component-listener
Overenie registrácie
cat /var/log/eucalyptus/registration.log2010-04-08 15:46:36-05:00 | 24243 -> Calling node cluster1 node 10.1.1.75 2010-04-08 15:46:36-05:00 | 24243 -> euca_conf --register-nodes returned 0 2010-04-08 15:48:47-05:00 | 25858 -> Calling walrus Walrus 10.1.1.71 2010-04-08 15:48:51-05:00 | 25858 -> euca_conf --register-walrus returned 0 2010-04-08 15:49:04-05:00 | 26237 -> Calling cluster cluster1 10.1.1.71 2010-04-08 15:49:08-05:00 | 26237 -> euca_conf --register-cluster returned 0 2010-04-08 15:49:17-05:00 | 26644 -> Calling storage cluster1 storage 10.1.1.71 2010-04-08 15:49:18-05:00 | 26644 -> euca_conf --register-sc returned 0
|
Výstup na vašom počítači sa môže oproti vyššie zobrazenému príkladu líšiť. |
Po nainštalovaní a zavedení Správcu mraku je potrebné, aby používatelia získali svoje poverenia. To sa dá urobiť buď cez webový prehliadač alebo cez príkazový riadok.
https://<ip-adresa-správcu-mraku>:8443/
| Musíte použiť zabezpečené pripojenie, preto sa uistite či ste v URL adrese použili "https" a nie "http". Po zadaní sa zobrazí varovanie o bezpečnosti certifikátu. Tu je potrebné pridať výnimku aby sa stránka zobrazila. Ak výnimku nepotvrdíte, nebude možné zobraziť konfiguračnú stránku systému Eucalyptus. |
unzip -d ~/.euca mycreds.zip
mkdir -p ~/.euca chmod 700 ~/.euca cd ~/.euca sudo euca_conf --get-credentials mycreds.zip unzip mycreds.zip ln -s ~/.euca/eucarc ~/.eucarc cd –
Teraz bude potrebné na našom serveri pomocou certifikátov X.509 nastaviť EC2 API a nástroje AMI.
. ~/.euca/eucarc
echo "[ -r ~/.euca/eucarc ] && . ~/.euca/eucarc" >> ~/.bashrc
sudo apt-get install euca2ools
. ~/.euca/eucarc euca-describe-availability-zones verbose AVAILABILITYZONE myowncloud 192.168.1.1 AVAILABILITYZONE |- vm types free / max cpu ram disk AVAILABILITYZONE |- m1.small 0004 / 0004 1 128 2 AVAILABILITYZONE |- c1.medium 0004 / 0004 1 256 5 AVAILABILITYZONE |- m1.large 0002 / 0002 2 512 10 AVAILABILITYZONE |- m1.xlarge 0002 / 0002 2 1024 20 AVAILABILITYZONE |- c1.xlarge 0001 / 0001 4 2048 20
| Váš výstup z predchádzajúceho príkazu sa bude líšiť. |
Existuje mnoho spôsobov, akými sa dajú vytvárať inštancie obrazu v UEC:
V tomto návode popíšeme postup pomocou príkazového riadka:
if [ ! -e ~/.euca/mykey.priv ]; then
mkdir -p -m 700 ~/.euca
touch ~/.euca/mykey.priv
chmod 0600 ~/.euca/mykey.priv
euca-add-keypair mykey > ~/.euca/mykey.priv
fi
|
Váš kľúč môžete nazvať ako chcete (v tomto príklade sa kľúč volá 'mykey'), nesmiete však zabudnúť, ako sa volá. Ak zabudnete, môžete spustiť príkaz euca-describe-keypairs, ktorým zobrazíte zoznam vytvorených kľúčov uložených v systéme. |
euca-describe-groups euca-authorize default -P tcp -p 22 -s 0.0.0.0/
euca-run-instances $EMI -k mykey -t m1.small
|
Ak sa zobrazí chyba vzťahujúca sa k image_id, podrobnosti môžete nájsť zobrazením stránky Images alebo klknutím na "How to Run" na stránke Store, na ktorej nájdete ukážky príkazov. |
watch -n5 euca-describe-instanceVo výstupe príkazu by sme mali vidieť informácie o inštancii vrátane jej stavu. Keď prebieha ukladanie do vyrovnávacej pamäte počas prvého spustenia, stav inštancie je 'pending'.
IPADDR=$(euca-describe-instances | grep $EMI | grep running | tail -n1 | awk '{print $4}')
ssh -i ~/.euca/mykey.priv ubuntu@$IPADDRINSTANCEID=$(euca-describe-instances | grep $EMI | grep running | tail -n1 | awk '{print $2}')
euca-terminate-instances $INSTANCEIDBalík cloud-init poskytuje funkcionalitu "first boot" pre Ubuntu UEC obrazy. Tento nástroj je zodpovedný za prevzatie obrazu zo súborového systému, jeho zavedenia a prispôsobenie konkrétnej inštancii. To zahŕňa veci ako:
~ubuntu/.ssh/authorized_keys.
Nastavenie názvu stanice a nastavenie systému tak, aby sa do neho mohol prihlásiť ten, kto systém inštaluje, nie sú veľmi zaujímavé. Zaujímavé veci, ktoré sa dajú robiť pomocou cloud-init, je možné urobiť pomocou údajov poskytnutých pri spustení, ktoré voláme user-data (používateľské údaje).
Najskôr nainštalujeme balík cloud-init:
sudo apt-get install cloud-init
Ak používateľské údaje začínajú '#!', potom sa budú ukladať a spúšťať pod používateľom root na konci procesu zavádzania inštancie prvého zavádzania (podobne ako bežné skripty 'rc.local'). Výstup skriptov je presmerovaný do konzoly.
Ako príklad vytvoríme súbor s názvom ud.txt obsahujúci:
#!/bin/sh echo ========== Ahoj Svet: $(date) ========== echo "Som zapnutý už $(cut -d\ -f 1 < /proc/uptime) sekúnd"
Teraz spustíme inštanciu s voľbou --user-data-file:
euca-run-instances $EMI -k mykey -t m1.small --user-data-file=ud.txt
Počkáme, kým sa systém spustí a bude dostupné ovládacie prostredie (console). Keď chceme vidieť výsledok príkazov dátového súboru, spustíme:
euca-get-console-output $EMI | grep --after-context=1 Ahoj========== Ahoj Svet: Mon Mar 29 18:05:05 UTC 2010 ========== Som zapnutý už 28.26 sekúnd
|
Váš výstup sa môže líšiť. |
Tento jednoduchý prístup poskytuje veľkú moc. Používateľské údaje môžu obsahovať skript v akomkoľvek jazyku, ktorého interpreter sa nachádza v obraze (#!/bin/sh, #!/usr/bin/python, #!/usr/bin/perl, #!/usr/bin/awk ...).
V mnohých prípadoch používateľ nevie písať programy. Pre taký prípad cloud-init poskytuje konfiguráciu "cloud-config" zameranú na prispôsobenie. Keď chceme použiť syntax cloud-config, používateľské údaje musia začínať '#cloud-config'.
Ako príklad vytvoríme textový súbor s názvom clout-config.txt obsahujúci:
#cloud-config apt_upgrade: true apt_sources: - source: "ppa:ubuntu-server-edgers/server-edgers-apache " packages: - build-essential - pastebinit runcmd: - echo ======= Ahoj Svet ===== - echo "Som zapnutý už $(cut -d\ -f 1 < /proc/uptime) sekúnd"
Vytvoríme novú inštanciu:
euca-run-instances $EMI -k mykey -t m1.small --user-data-file=cloud-config.txt
Teraz, keď je systém zavedený, máme:
|
PPA zdroj Apache Edgers v predchádzajúcom príklade obsahuje najnovšiu verziu systému Apache prevzatú priamo od tvorcov softvéru. Verzie balíkov v tomto PPA zdroji nie sú podporované a závisí od vašej situácie, či sú alebo nie sú vhodné. Viac informácií sa nachádza na stránke Ubuntu Server Edgers. |
Príkazy 'runcmd' sú spúšťané rovnakým spôsobom ako skripty začínajúce '#!', ktoré sme použili v predchádzajúcom príklade. Existujú kvôli tomu, aby sme mali k dispozícii plný výkon skriptovacieho jazyka bez toho aby sme museli opustiť cloud-config.
Viac informácií o tom, čo všetko sa dá urobiť pomocou cloud-config, sa nachádza na stránke doc/examples.
Nasledujúci postup predstavuje najjednoduchší spôsob, ako nainštalovať obraz. Pokročilejší používatelia sa však môžu zaujímať o to, ako Pripojiť svoj vlastný obraz.
Najjednoduchší spôsob, ako pridať obraz do UEC, je nainštalovať ho z Úložiska obrazov prostredníctvom webového rozhrania UEC.
https://<ip-adresa-správcu-mraku>:8443/
Po stiahnutí a nainštalovaní môžeme kliknúť na odkaz "How to run?", ktorý pod tlačidlom zobrazí príkaz na vytvorenie inštancie (spustenie) tohto obrazu.
Návod na používanie Správcu úložiska.
Ovládanie služieb eucalyptus:
Umiestnenie niektorých dôležitých súborov:
Upozornenia:
Odkazy:
Dokumentácia pre Ubuntu Enterprise Cloud používa terminológiu, ktorá nemusí byť zrozumiteľná pre všetkých čitateľov. Táto stránka sa snaží vysvetliť niektoré pojmy a skratky.
Mrak (Cloud) - Združená množina fyzických počítačov, ktoré poskytujú výpočtové zdroje prostredníctvom virtuálnych počítačov, ktoré sú dynamicky zaopatrované a dovybavované.
Správca mraku (Cloud Controller – CLC) - Súčasť systému Eucalyptus, ktorá poskytuje webové užívateľské rozhranie (https server na porte 8443) a implementuje Amazon EC2 API. V jednej inštalácii UEC môže byť len jeden Správca mraku. Táto služba je poskytovaná Ubuntu balíkom eucalyptus-cloud.
Klaster (Cluster) - Kolekcia uzlov priradených k Správcovi mraku. V jednej inštalácii UEC môže byť viac ako jeden klaster. Klastre sú niekedy fyzicky oddelenými množinami uzlov. (napr. poschodie1, poschode2, poschodie2).
Správca klastra (Cluster Controller – CC) – Súčasť systému Eucalyptus, ktorá spravuje kolekciu zdrojov, ktoré poskytujú uzly. Táto služba je poskytovaná Ubuntu balíkom eucalyptus-cc.
EBS (Elastic Block Storage) – Úložisko s elastickými blokmi.
EC2 (Elastic Compute Cloud) – Elastický výpočtový mrak. Verejná služba výpočtových mrakov (cloud computing) poskytovaná spoločnosťou Amazon, ktorá je platená podľa hodín alebo podľa gigabajtov.
EKI (Eucalyptus Kernel Image) – Obraz jadra systému Eucalyptus.
EMI (Eucalyptus Machine Image) – Obraz počítača systému Ecalyptus.
ERI (Eucalyptus Ramdisk Image) – Obraz ramdisku systému Eucalyptus.
Eucalyptus (Elastic Utility Computing Architecture for Linking Your Programs To Useful Systems) – Elastický nástroj výpočtovej architektúry na pripojenie vašich programov do užitočných systémov. Je to projekt s otvoreným zdrojom vyvinutý na Kalifornskej univerzite v Santa Barbare. Teraz je podporovaný spoločnosťou Eucalyptus Systems (partner spoločnosti Canonical).
Rozhranie - Fyzický počítač, ktorý hostí jednu (alebo viac) súčastí systému Eucalyptus (správcu mraku, úložiska, klastra a walrus).
Uzol – Uzol je fyzický počítač, na ktorom sa dá spustiť virtuálny počítač, bežiaci cez správcu uzla. V Ubuntu to vlastne znamená, že CPU má rozšírenia pre VT a môže spúšťať hypervízor KVM.
Správca uzla (Node Controller – NC) - Súčasť systému Eucalyptus, ktorá spúšťa hostiteľské virtuálne počítače, ktoré tvoria mrak. Táto služba je poskytovaná Ubuntu balíkom eucalyptus-nc.
S3 (Simple Storage Service) – Jednoduchá služba úložiska. Riešenie trvácneho úložiska určeného pre EC2 poskytovaného spoločnosťou Amazon, ktoré sa platí za gigabajt.
Správca úložiska (Storage Controller – SC) - Súčasť systému Eucalyptus, ktorá spravuje službu úložiska s dynamickými blokmi (EBS). Každý 'klaster' v inštalácii Eucalyptus môže mať svojho vlastného Správcu úložiska. Táto súčasť je poskytovaná balíkom 'eucalyptus-sc'.
UEC (Ubuntu Enterprise Cloud) – Podnikový mrak od Ubuntu. Riešenie výpočtového mraku (cloud computing) od vývojárov Ubuntu, ktoré je založené na systéme Eucalyptus.
VM – Virtuálny počítať (Virtual Machine).
VT – Virtualizačná technológia. Doplnková funkcia niektorých moderných procesorov, umožňujúca urýchľované hosťovanie virtuálnych počítačov.
Walrus - Súčasť systému Eucalyptus, ktorá implementuje aplikačné rozhranie S3 API od spoločnosti Amazon, ktoré sa využíva na uchovávanie obrazov virtuálnych počítačov a používateľského úložiska, ktoré využíva abstrakcie S3 bucket put/get.