Ubuntu Cloud - 9.10

Allikas: Kuutõrvaja
Redaktsioon seisuga 7. detsember 2009, kell 00:35 kasutajalt Imre (arutelu | kaastöö) (Sissejuhatus)

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 KVM tarkvara virtuaalarvutite pidamiseks.

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 peab olema 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

Virtuaalse arvuti ettevalmistamine

TODO

VM käivitamine

Virtuaalse arvuti käivitamiseks sobib öelda

 $ euca-run-instances emi-DD45105A -k mykey -t c1.medium

Virtuaalse arvuti seiskamiseks sobib öelda

 $ euca-terminate-instances i-3542075A

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.

Kasulikud lisamaterjalid