Ubuntu Cloud - 9.10

Allikas: Kuutõrvaja

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

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.

Uec-1.gif

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.

Kasulikud lisamaterjalid