Upload
others
View
22
Download
0
Embed Size (px)
Citation preview
Cloud Computing e OpenStack
1
Daniela Loreti, Ph.D. Student Dipartimento di Informatica Scienze e
Ingegneria (DISI) [email protected]
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 [email protected]!• 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