Cloud Computing e OpenStack - unibo.itlia.disi.unibo.it/Courses/som1415/materiale/OpenStack.pdf ·...

Preview:

Citation preview

Cloud Computing e OpenStack

1

Daniela Loreti, Ph.D. Student Dipartimento di Informatica Scienze e

Ingegneria (DISI) daniela.loreti@unibo.it

Cos’è il Cloud Computing

Paradigma computazionale che racchiude diverse tecnologie per permettere l’accesso a risorse hardware (storage, CPU, network) o software remote come fossero locali.

Openstack: Piattaforma software per il management di un

datacenter destinato al cloud computing “sistema operativo per il cloud” “software per tramutare un datacenter in un cloud”

2

Motivazioni

3

IT deve fornire servizi in maniera continuata e dinamica

Tempo  

Capacità  

Capacità  computazionale  a  disposizione

Motivazioni

4

IT deve fornire servizi in maniera continuata e dinamica

Tempo  

Capacità  

Capacità  realmente  usata

Motivazioni

5

IT deve fornire servizi in maniera continuata e dinamica

Tempo  

Capacità  

Spreco  di  risorse  e  denaro

Motivazioni

6

IT deve fornire servizi in maniera continuata e dinamica

Tempo  

Capacità  

Rallentamen5  e  blocchi

Motivazioni

7

IT deve fornire servizi in maniera continuata e dinamica

Tempo  

Capacità  

Comportamento  offerto  dal  cloud  compu5ng

Scenario del cloud

Sistemi Operativi T AA 2009-2010 8

Le risorse computazionali del Provider sono offerte (rese accessibili via internet) a diverse tipologie di clienti, sfruttando i vantaggi offerti dalla virtualizzazione

OpenStack

Piattaforma software per il management di un cloud

•  Progetto iniziato nel 2010 dalla collaborazione tra Rackspace e la NASA

•  Attualmente alla 9° release (Icehouse) Finalità analoga ad altri prodotti: •  Vmware •  Amazon EC2 … ma open source!

9

OpenStack: con chi deve parlare?

Il virtual machine monitor (VMM) permette di eseguire più macchine virtuali (con SO diversi) su una stessa macchina fisica Esistono diversi software per realizzare il VMM:

KVM/QEMU, Xen, ecc…

10

VIRTUAL MACHINE MONITOR

HARDWARE

applicazioni SO

applicazioni applicazioni SO SO

VM1 VM2 VM3

OpenStack: come si gestisce un cloud

11

HARDWARE

applicazioni

sistema operativo

applicazioni applicazioni

sistema operativo sistema operativo

VM1 VM2 VM3

VIRTUAL MACHINE MONITOR

OPENSTACK

•  Viene installato sul VMM

•  si avvale delle sue funzionalità per creare un cloud di macchine fisiche

OPENSTACK VMM VMM VMM VMM VMM VMM

Libvirt per fronteggiare l’eterogeneità

12

LIBVIRT

HARDWARE

applicazioni

sistema operativo

applicazioni applicazioni

sistema operativo sistema operativo

VM1 VM2 VM3

VIRTUAL MACHINE MONITOR

OPENSTACK

Si avvale di libvirt: •  layer per VMs

management (creare, avviare, fermare, modificare, monitorare, migrare)

•  permette di interagire con diversi VMM ❒  Kvm/Qemu, ❒  Xen, ❒  Vmware ESX ❒  MS Hyper-V ❒  …

Componenti di Openstack

13

Architettura modulare: •  Keystone - Identity service •  Glance - Image service •  Nova – Compute •  Cinder – Block storage •  Nova Network / Neutron – Networking service •  Ceilometer – Monitoring •  Horizon – Dashboard Se qualcosa non mi serve, posso evitare di installarlo!

Architettura di Openstack (nova-network)

14

Le macchine fisiche del datacenter vengono configurate in due modi

VM1 VM2 VM3 DB  

Architettura di Openstack (nova-network)

15

Architettura fortemente centralizzata :

VM2 x.x.x.2 VM1 x.x.x.1

VM3 x.x.x.3

VM4 y.y.y.4

VM5 y.y.y.5

VM6 y.y.y.6

Architettura di Openstack (neutron)

16

Le macchine fisiche del datacenter vengono configurate in tre modi

VM1 VM2 VM3 DB  

L’utente può definire: •  network, subnet e

router •  firewall •  load balancer •  VPN

Architettura di OpenStack (neutron)

17

Architettura ancora centralizzata

VM2 x.x.x.2

VM3 x.x.x.3

VM4 y.y.y.4

VM6 y.y.y.6

R x.x.x.1 R y.y.y.1

Command flow

Sistemi Operativi T AA 2009-2010 18

[daniela]$- nova --os-username admin!--os-tenant-name tenant !--os-auth-url 'http://controller:35357/v2.0' --os-password password list!

keystone authentication

LIBVIRT

no! ok

OPENSTACK

VIRTUAL MACHINE MONITOR (XEN)

Passi per lanciare la prima VM

•  Per lanciare la prima VM devo prima: ①  avere a disposizione l’immagine da cui

fare il boot ②  avere a disposizione una rete a cui

attaccare la VM, un IP da affidarle per poterla raggiungere

③  eseguire il comando di avvio

Sistemi Operativi T AA 2009-2010 19

•  Scaricare un’immagine da internet: […]$- wget http://cdn.dowload.cirros-cloud.net/0.3.2/cirros-0.3.2-x86_64-disk.img!

•  Caricare l’immagine nell’Image Service […]$- glance image-create !--name "cirros-0.3.2-x86_64” --disk-format qcow2 !--container-format bare --is-public True !--progress < cirros-0.3.2-x86_64-disk.img!

Ora l’immagine è nell’Image Service![…]$- glance image-list!

+------+-------------------+-------+----------+--------+!| ID |Name |Disk F.| Size |Status |!+------+-------------------+-------+----------+--------+!|acafc…|cirros-0.3.2-x86_64| qcow2 | 13167616 | active |!+------+-------------------+-------+----------+--------+!

Sistemi Operativi T AA 2009-2010 20

①  Caricare un’immagine

②  Creare una rete per le future VM (nova-network)

•  Le VM devono avere un indirizzo fixed privato utilizzato per le comunicazioni intra-cloud. Mi autentico come utente pluto e creo la mia rete interna

[…]-$ nova [--os-username pluto …] network-create pluto-net --bridge br100 --multi-host T --fixed-range-v4 192.168.26.0/24 !

•  Le VM possono avere anche 1 o più indirizzi floating pubblici

[…]-$ nova-manage [--os-username pluto …] floating create --pool pluto-pool --ip_range 68.99.26.0/24

Sistemi Operativi T AA 2009-2010 21

③  Creare e lanciare una nuova VM •  Genero una chiave ssh per l’accesso alla macchina […]-$ nova keypair-add --pub-key ~/.ssh/id_rsa.pub pluto-key!

•  Lancio una istanza dell’immagine, la mia prima VM […]-$ nova boot --flavor m1.tiny --image cirros-0.3.2-x86_64 --nic net-id=[…] --security-group default --key-name pluto-key instance1!

•  Verifico l’avanzamento del boot: […]-$ nova list!+------+---------+------+-----------+----------------------+!|ID |Name |Status|Power State|Networks |!+------+---------+------+-----------+----------------------+!|45ea… |instance1|ACTIVE|Running |pluto-net=192.168.26.2,!

! ! ! ! ! ! !68.99.26.1 |!+------+---------+------+-----------+----------------------+!

Sistemi Operativi T AA 2009-2010 22

Accedere alla nuova istanza

•  Posso accedere via ssh […]-$ ssh cirros@192.168.26.2!•  oppure collegarmi con una sessione Virtual Network

Computing (VNC) e accedere l’istanza col browser […]-$ nova get-vnc-console instance1 novnc!+-------+--------------------------------------------------+!| Type | Url |!+-------+--------------------------------------------------+!| novnc | http://controller:6080/vnc_auto.html? ! | !

! ! token=2f6dd985-f906-4bfc-b566-e87ce656375b|!+-------+--------------------------------------------------+!

!

Sistemi Operativi T AA 2009-2010 23

nova-scheduler

•  usato da nova-compute per decidere su quale host fisico mettere le nuove VMs.

•  agisce in due step: ①  Filter: quali host devo scartare? chi ha abbastanza

risorse per ospitare la VM? ②  Weight: ordino gli host filtrati dal migliore al

peggiore. •  è “fine-grain configurable”. Posso decidere:

❒  come filtrare gli host destinatari ❒  come pesare gli host destinatari

Sistemi Operativi T AA 2009-2010 24

nova-scheduler: esempi di filtro scheduler_default_filters=RamFilter!Es: la VM che voglio allocare richiede 1GB di RAM. Gli host su cui la posso allocare sono: i filtri sono combinabili: scheduler_default_filters=!

!RamFilter,CoreFilter,DiskFilter…!Se non imposto filtri per una risorsa, lo scheduler può fare OVERPROVISIONING

Sistemi Operativi T AA 2009-2010 25

512 MB

128MB

2 GB

3 GB

H1 H2 H3 H4

nova-scheduler: esempi di pesi Es: la VM che voglio allocare richiede 1GB di RAM. Dov’è meglio metterla? ram_weight_multiplier=1! ram_weight_multiplier=-1!

Sistemi Operativi T AA 2009-2010 26

512 MB

128MB

2 GB

3 GB

H1 H2 H3 H4

1!2!4!3!

512 MB

128MB

2 GB

3 GB

H1 H2 H3 H4

4!3!1!2!

massimo bilanciamento

massimo risparmio

Migrare una VM

•  E’ possibile migrare una VM su un altro host (e.g., per risparmiare energia)

•  OpenStack distingue tra: ❒  Migration (o non-live migration): l’istanza

viene spenta per il tempo della migrazione => lungo downtime.

•  La VM “crede” di essere stata riavviata

❒  Live-migration:(o true live migration) l’istanza rimane running durante la migrazione => breve downtime

•  la VM non è raggiungibile “per un po’ di tempo” Sistemi Operativi T AA 2009-2010 27

Diversi tipi di Live migration

•  Block live migration: ❒  copia l’immagine, poi le pagine di memoria, poi lo

stato (registri di CPU). •  Shared storage-based live migration. Le

immagini delle VM sono salvate su file system condiviso: ❒  copia le pagine, poi lo stato, collega l’immagine alla

nuova copia di VM sul nuovo host. •  Volume-backed live migration. Le immagini

delle VM sono salvate su un database condiviso: ❒  copia le pagine, poi lo stato,, collega l’immagine

nel database alla nuova copia di VM. Sistemi Operativi T AA 2009-2010 28

Riferimenti

OpenStack è un software ampiamente documentato: http://docs.openstack.org In particolare: •  Openstack Installation Guide, per diverse

distro linux (Es: RHEL: http://docs.openstack.org/icehouse/install-guide/install/yum/content/)

•  Openstack Cloud Administration Guide: http://docs.openstack.org/admin-guide-cloud/content

Sistemi Operativi T AA 2009-2010 29

Nuove frontiere

Sistemi Operativi T AA 2009-2010 30

internet

Enterprise cloud Provider cloud

•  Per molte aziende con una solida architettura IT il cloud non basta…

Nuove frontiere: Hybrid Cloud

Sistemi Operativi T AA 2009-2010 31

internet

Enterprise cloud Provider cloud

•  Sarebbe più comodo poter usare il proprio cloud per la maggior parte del tempo e poi migrare macchine virtuali sul cloud del provider quando se ne ha necessità.

CLOUD BURSTING

Nuovissime frontiere: OpenStack per Hybrid Cloud

OpenStack è attualmente in grado di gestire un solo cloud. Occorre un “meccanismo di raccodo tra diversi cloud” per: •  gestire l’eterogeneità delle architetture •  permettere la migrazione di macchine

virtuali da un ambiente all’altro …magari senza (o con breve) interruzione di servizio => inter-cloud live migration

Tesi disponibili su questo argomento

Sistemi Operativi T AA 2009-2010 32

Domande?

daniela.loreti@unibo.it

Sistemi Operativi T AA 2009-2010 33

Recommended