Ubuntu Cloud - 9.10
Sisukord
Sissejuhatus
Ubuntu 9.10 operatsioonisüsteem sisaldab populaarset cloud computing tarkvara Eucalyptus http://open.eucalyptus.com/ ja kogu sellel baasil moodustatud lahendust nimetatakse Ubuntu Enterprise Cloud (UEC). Kuigi üldiselt pilvelahendused ei ole seotud konktreetsete virtualiseerimisplatvormidega kasutab nt Ubuntu 9.10 virtuaalarvutite pidamiseks KVM tarkvara.
Tööpõhimõte
Ubuntu Cloud koosneb sellistest komponentidest
- Cloud Controller (CLC) - ...
- Cluster Controller (CC) - ...
- Storage Controller (SC) - ...
- Node Controller (NC) - ...
Eesmärk
internet ... ....... | _|_ | | tulemüür |___| | 10.0.13.1, vaikelüüs | -------|-------------|----------------|----------------------------|------ | | | _|_ _|_ _|_ | | CLC | | NC | | VM virutaalne arvuti (nö asub NC sees KVM guestina) |___| |___| |___| eth0 - 10.0.13.180/24 vlan513 - aadressi pole eth0 - 172.19.1.2/27 eth0:priv - 172.19.1.1/27 br513 - 10.0.13.190 eth0:pub - 10.0.13.183/24
kusjuures
- UEC genereerib sellised paketifiltri reeglid public aadressidelt private aadressidele, st liiklus käib läbi CLC arvuti
# iptables -L -n -v -t nat Chain PREROUTING (policy ACCEPT 51 packets, 7851 bytes) pkts bytes target prot opt in out source destination 32 1920 DNAT tcp -- * * 172.19.0.0/16 169.254.169.254 tcp dpt:80 to:169.254.169.254:8773 7 492 DNAT all -- * * 0.0.0.0/0 10.0.13.183 to:172.19.1.2 Chain POSTROUTING (policy ACCEPT 32 packets, 6328 bytes) pkts bytes target prot opt in out source destination 30 2035 SNAT all -- * * 172.19.1.2 !172.19.0.0/16 to:10.0.13.183 19903 1194K MASQUERADE all -- * * 0.0.0.0/0 !172.19.0.0/16 Chain OUTPUT (policy ACCEPT 19922 packets, 1200K bytes) pkts bytes target prot opt in out source destination 9 636 DNAT all -- * * 0.0.0.0/0 10.0.13.183 to:172.19.1.2
CLC ettevalmistamine
CLC (Cloud Controller) arvuti ei pea ise olema virtualiseerimise võimelisel riistvaral, arvutisse tarkvara paigaldamiseks tuleb öelda
# apt-get install eucalyptus-cloud eucalyptus-cc eucalyptus-walrus eucalyptus-sc
CLC tööd juhib /etc/eucalyptus/eucalyptus.conf debconf abil moodustatud seadistusfail, mis võiks olla nt sellise sisuga
# egrep -v "^#|^$" /etc/eucalyptus/eucalyptus.conf EUCALYPTUS="/" EUCA_USER="eucalyptus" DISABLE_DNS="Y" ENABLE_WS_SECURITY="Y" LOGLEVEL="DEBUG" CC_PORT="8774" SCHEDPOLICY="ROUNDROBIN" POWER_IDLETHRESH="300" POWER_WAKETHRESH="300" NODES=" 10.0.13.190" NC_SERVICE="axis2/services/EucalyptusNC" NC_PORT="8775" HYPERVISOR="not_configured" INSTANCE_PATH="not_configured" VNET_PUBINTERFACE="eth0" VNET_PRIVINTERFACE="eth0" VNET_BRIDGE="br0" VNET_DHCPDAEMON="/usr/sbin/dhcpd3" VNET_DHCPUSER="dhcpd" VNET_MODE="MANAGED-NOVLAN" VNET_SUBNET="172.19.0.0" VNET_NETMASK="255.255.0.0" VNET_DNS="10.0.13.1" VNET_ADDRSPERNET="32" VNET_PUBLICIPS="10.0.13.183-10.0.13.189"
kus
- VNET_MODE - peab langema kokku NC arvutite vastavate parameetrite väärtustega
- VNET_SUBNET, VNET_NETMASK - virtuaalsete arvutite privaatsed aadressid, mis seadistatakse VM arvutile endile
- VNET_PUBLICIPS - CLC paketifiltrisse seadistatud nö avalikud teenuste aadressid, mille CLC süsteem seadistab viitama virtuaalsetele arvutite privaatsetele aadressidele
CLC paigaldamisel tuleb debconf dialoogis näidata
- klustri nimi
- nn avalike aadresside vahemik (nt 10.0.13.183-10.0.13.189)
- tundub, et Ubuntu 9.10 Postfixi seadistamisel on midagi katki, seepärast võiks paigaldamisel valida No configuration ja hiljem seadistada
NC ettevalmistamine
NC (Node Controller) arvutis töötavad virtuaalsed arvutid st see arvuti peab olema AMD-V või Intel-VT võimega, lisaks peab olema seal seadistatud sobivalt võrk, nt sellise sisuga /etc/network/interfaces
auto lo iface lo inet loopback # NC ARVUTI HALDUS auto eth0 iface eth0 inet static address 10.0.5.248 netmask 255.255.255.0 gateway 10.0.5.1 # TEENUS auto vlan513 iface vlan513 inet manual vlan-raw-device eth1 auto br513 iface br513 inet static bridge_ports vlan513 bridge_fd 9 bridge_hello 2 bridge_maxage 12 bridge_stp off address 10.0.13.190 netmask 255.255.255.0
Vajaliku tarkvara paigaldamiseks tuleb öelda
# apt-get install eucalyptus-nc
NC tarkvara käivitamiseks sobib öelda
# /etc/init.d/eucalyptus-nc start
NC arvutit juhib seadistusfail /etc/eucalyptus/eucalyptus.conf
# egrep -v "^#|^$" /etc/eucalyptus/eucalyptus.conf EUCALYPTUS="/" EUCA_USER="eucalyptus" DISABLE_DNS="Y" ENABLE_WS_SECURITY="Y" LOGLEVEL="DEBUG" CC_PORT="8774" SCHEDPOLICY="ROUNDROBIN" POWER_IDLETHRESH="300" POWER_WAKETHRESH="300" NODES="" NC_SERVICE="axis2/services/EucalyptusNC" NC_PORT="8775" HYPERVISOR="kvm" INSTANCE_PATH="/var/lib/eucalyptus/instances" VNET_PUBINTERFACE="vlan513" VNET_PRIVINTERFACE="vlan513" VNET_BRIDGE="br513" VNET_DHCPDAEMON="/usr/sbin/dhcpd3" VNET_DHCPUSER="dhcpd" VNET_MODE="MANAGED-NOVLAN"
kus
- VNET_PUBINTERFACE, VNET_PRIVNTERFACE ja VNET_BRIDGE - millistel seadmetel toimub virtuaalse arvuti andmevahetus CLC ja süsteemi teenuste kasutajatega
- VNET_MODE - peab langema kokku CLC vastava parameetriga
NC seadistusfailis muudatuste tegemise järel tuleb öelda restart
# /etc/init.d/eucalyptus-nc restart
Selleks, et süsteem saaks CLC arvutis SSH abil sisse logida NC arvutisse tuleb kopeerida CLC kasutaja eucalyptus avalik võti NC arvuti eucalyptus kasutaja alla, vastavad failid on kummaski arvutis kataloogis
/var/lib/eucalyptus
NC registreerimine CLC süsteemis
Ettevalmistatud NC tuleb CLC juures registreerida öeldes
# euca_conf --no-rsync --discover-nodes New node found on 10.0.13.190; add it? [Yn] Y --2009-12-06 15:55:04-- http://127.0.0.1:8774/axis2/services/ Connecting to 127.0.0.1:8774... connected. HTTP request sent, awaiting response... 200 OK .... INFO: We expect all nodes to have eucalyptus installed in //var/lib/eucalyptus/keys for key synchronization. Trying scp to sync keys to: eucalyptus@10.0.13.190://var/lib/eucalyptus/keys/... done.
Ubuntu Cloud kasutamine
Ülidselt on CLC juhtimiseks mitmeid võimalusi, nt
- veebipõhine kasutajaliides - https://clc.loomaaed.tartu.ee:8443/
- käsurea utiliidid - euca2ools paketi abil
- brauseri lisa - Elastic Fox
Veebipõhine kasutajaliides
CLC süsteemi veebipõhine kasutajaliides asub aadressil https://10.0.13.180:8443/, vaikimisi on ligipääsuks
- kasutajanimi - admin
- parool - admin
kusjuures esmakordsel sisselogimisel tuleb parool muuta.
kus on jaotised
- Credentials - kasutaja andmete muutmine ja ligipääsuvõtmed
- Images - kasutatavate ehk süsteemi registreeritud operatsioonisüsteemide tõmmiste nimekiri
- Store - vaikimisi süsteemiga kaasa tulevate operatsioonisüsteemi tõmmiste nimekiri, valides Install toimub registreerimine
- Users - CLC kasutajad
- Configuration - CLC jt nö front-end komponentide seadistamine
- Services - Lingid Ubuntu Cloudiga seotud teenustele
- Extras - Lingid Ubuntu Cloudiga kasutamiseks mõeldud operatsioonisüsteemi tõmmistele
Käsurealt ehk euca2ools kasutamine
CLC süsteemi saab juhtida põhimõtteliselt suvalisest arvutis, mis saab üle võrgu pöörduda CLC poole, oluline on sellesse arvutisse paigaldada euca2ools pakett öeldes
# apt-get install euca2ools
Selles, et saaks euca2oolisid kasutama asuda on vaja kopeerida CLC süsteemis sobivad võtmed, selleks sobib nt kasutada eelmises punktis tutvustatud veebiliidest valides
Credentials -> Download Credentials
Seejärel tuleb arvutis kuhu paigaldati euca2ools tarkvara sobiva kasutaja all öelda
$ mkdir .euca && cd .euca $ unzip euca2-admin-x509.zip
Kasutamiseks tuleb source'ida fail ~/.euca/eucarc
$ . .euca/eucarc
Tulemusena lisati kasutaja keskkonda mõned keskkonnamuutujad ja aliased, euca2ools edaspidisel kasutamisel eeldatakse, et need väärtused on laaditud.
Selleks, et veenduda, et ühendus töökohaarvuti ja CLC vahel on olemas sobib öelda
$ euca-describe-availability-zones verbose AVAILABILITYZONE loomaaed 10.0.13.180 AVAILABILITYZONE |- vm types free / max cpu ram disk AVAILABILITYZONE |- m1.small 0003 / 0004 1 128 2 AVAILABILITYZONE |- c1.medium 0003 / 0004 1 256 5 AVAILABILITYZONE |- m1.large 0001 / 0002 2 512 10 AVAILABILITYZONE |- m1.xlarge 0001 / 0002 2 1024 20 AVAILABILITYZONE |- c1.xlarge 0000 / 0001 4 2048 20
Elastic Fox
TODO
Virtuaalsele arvuti ligipääsuvõtme ettevalmistamine
Loodavale virtuaalsele arvutile toimub vaikimisi ligipääs üle ssh võtmega autentides, selleks peab kasutaja valmistama omale võtmepaari öeldes
$ touch ~/.euca/mykey.priv $ chmod 0600 ~/.euca/mykey.priv $ euca-add-keypair mykey > ~/.euca/mykey.priv
Seejärel tuleb öelda
$ euca-describe-groups # Work around Bug:452556 $ euca-authorize default -P tcp -p 22 -s 0.0.0.0/0
Edasipidi virtuaalseid arvuteid käivitades kasutatakse seda mykey võtit.
VM käivitamine
Käivitamiseks ettevalmistatud virtuaalsete arvutite tõmmiste nimekirja esitamine (sama nimekiri, mis avaneb veebipõhises haldusliideses jaotise Images alt)
$ euca-describe-images IMAGE eki-F36A10D7 image-store-1260107157/kernel.manifest.xml admin available public x86_64 kernel IMAGE eki-168C1901 debian-5.0-x86_64-kvm-kernel/vmlinuz-2.6.28-11-generic.manifest.xml admin available public x86_64 kernel IMAGE eri-0829113D image-store-1260125726/ramdisk.manifest.xml admin available public x86_64 ramdisk IMAGE eri-07DA1141 image-store-1260107157/ramdisk.manifest.xml admin available public x86_64 ramdisk IMAGE emi-E6D81478 debian-5.0-x86_64-kvm/debian.5-0.x86-64.img.manifest.xml admin available public x86_64 machine IMAGE eri-83961A52 debian-5.0-x86_64-kvm-ramdisk/initrd.img-2.6.28-11-generic.manifest.xml admin available public x86_64 ramdisk IMAGE eki-F3E710DD image-store-1260125726/kernel.manifest.xml admin available public x86_64 kernel IMAGE emi-DD50105B image-store-1260107157/image.manifest.xml admin available public x86_64 machine IMAGE emi-DDB01061 image-store-1260125726/image.manifest.xml admin available public x86_64 machine
kus
- emi - machine image
- eki - kernel image
- eri - ramdisk image
Virtuaalse arvuti käivitamiseks sobib öelda
$ euca-run-instances emi-E6D81478 -k mykey -t c1.medium
Töötavate virtuaalsete arvutite nimekirja küsimiseks sobib öelda
$ euca-describe-instances RESERVATION r-3227074C admin default INSTANCE i-3A700739 emi-E6D81478 10.0.13.183 172.19.1.2 running mykey 0 c1.medium \ 2009-12-06T19:17:12.304Z loomaaed eki-168C1901 eri-83961A52 RESERVATION r-2D9A0567 admin default INSTANCE i-2DA204A3 emi-DD50105B 10.0.13.184 172.19.1.3 running mykey 0 c1.medium \ 2009-12-06T19:22:26.083Z loomaaed eki-F36A10D7 eri-07DA1141
kus
- emi-E6D81478 - operatsioonisüsteemi tõmmise nimi, millest virtuaalne arvuti (instance) käivitati
- i-3A700739 - käivitatud virtuaalse arvuti (instance) nimi
- 10.0.13.183 - virtuaalse arvuti nö avalik aadresss
- 172.19.1.2 - virtuaalse arvuti enda aadress
- c1.medium - virtuaalse arvuti riistvarakomplekti iseloomustav näitaja
Virtuaalse arvuti seiskamiseks sobib öelda
$ euca-terminate-instances i-3542075A
Virtuaalse arvuti kasutamine
Peale virtuaalse arvuti käivitamist kulub veidi aega kuni vastav tõmmis kopeeritakse CLC arvutist NC peale ning seal käivitatakse, kuid kui see on toimunud saab ssh abil virtuaalsesse arvutisse sisse logida. Pöörduda sobib nö eemalt virtuaalse arvuti avaliku ip aadressi kasutades (10.0.13.183) või CLC arvutist kasutades privaatset ip aadressi (172.19.1.2).
$ ssh -i ~/.euca/mykey.priv ubuntu@172.19.1.2
Operatsioonisüsteemi tõmmise ettevalmistamine kasutamiseks
Valides veebipõhises kasutajaliideses sektsiooni Extras avaneb nimekiri linkidega erinevatele UEC sees kasutamiseks ettevalmistatud operatsioonisüsteemide tõmmistele.
UEC ja KVM
Ubuntu 9.10 operatsioonisüsteemiga Eucalyptuse kasutamisel kasutatakse virtualiseerimise platvormina KVM'i, käivitatud arvutite kohta saab küsida NC arvutites nt nii
# virsh list --all Connecting to uri: qemu:///system Id Name State ---------------------------------- 7 i-3A700739 running 8 i-2DA204A3 running
Samuti on võimalik jälgida NC arvutil ehk KVM hostil virtuaalsetele arvutitele vastavaid kvm protsesse
# ps aux | grep kvm root 27073 1.0 3.0 451956 246048 ? Sl 21:18 0:43 /usr/bin/kvm -S -M pc-0.11 -m 256 -smp 1 \ -name i-3A700739 -uuid e63ba3bd-2c62-f53a-49e4-bfda4c0838c9 -nographic -monitor unix:/var/run/libvirt/qemu/i-3A700739.monitor,server,nowait \ -boot c -kernel /var/lib/eucalyptus/instances/admin/i-3A700739/kernel -initrd /var/lib/eucalyptus/instances/admin/i-3A700739/ramdisk \ -append root=/dev/sda1 console=ttyS0 -drive file=/var/lib/eucalyptus/instances/admin/i-3A700739/disk,if=scsi,index=0,boot=on \ -net \nic,macaddr=d0:0d:3a:70:07:39,vlan=0,model=e1000,name=e1000.0 -net tap,fd=16,vlan=0,name=tap.0 \ -serial file:/var/lib/eucalyptus/instances/admin/i-3A700739/console.log -parallel none -usb root 27628 1.4 2.3 455460 189532 ? Sl 21:22 0:54 /usr/bin/kvm -S -M pc-0.11 -m 256 -smp 1 \ -name i-2DA204A3 -uuid 5c3145e5-c3d1-f674-1ac9-ecca44a14fd5 -nographic -monitor unix:/var/run/libvirt/qemu/i-2DA204A3.monitor,server,nowait \ -boot c -kernel /var/lib/eucalyptus/instances/admin/i-2DA204A3/kernel -initrd /var/lib/eucalyptus/instances/admin/i-2DA204A3/ramdisk \ -append root=/dev/sda1 console=ttyS0 -drive file=/var/lib/eucalyptus/instances/admin/i-2DA204A3/disk,if=scsi,index=0,boot=on \ -net nic,macaddr=d0:0d:2d:a2:04:a3,vlan=0,model=e1000,name=e1000.0 -net tap,fd=18,vlan=0,name=tap.0 \ -serial file:/var/lib/eucalyptus/instances/admin/i-2DA204A3/console.log -parallel none -usb
samuti on võimalik tutvuda genereeritud virtuaalse arvuti seadistusetega
# edit i-3A700739
Arusaadavalt maksab sedasi vaid nö lugeda ja mitte asuda virsh utiliidiga otseselt haldama UEC kontrolli all olevat arvutit.
Probleemid
- Mõnel juhul virtuaalse arvuti käivitamisel jääb pealtnäha arvuti võrk seadistamata ning natukese aja pärast instance termineeritakse.