Indice
1 Introduzione 1
2 Il Cloud Computing 5
2.1 Che cos’ `e il Cloud Computing . . . . 5
2.2 I Modelli di Servizio . . . . 9
2.2.1 SaaS (Software as a Service) . . . . 9
2.2.2 PaaS (Platform as a Service) . . . 10
2.2.3 IaaS (Infrastructure as a Service) . . . 11
2.3 I Modelli di Dispiegamento . . . 12
2.3.1 Public Cloud . . . 13
2.3.2 Private Cloud . . . 14
2.3.3 Community Cloud . . . 14
2.3.4 Hybrid Cloud . . . 15
2.4 La Virtualizzazione . . . 16
2.4.1 Platform Virtualization . . . 17
2.4.2 Storage Virtualization . . . 20
2.4.3 Network Virtualization . . . 20 i
ii INDICE
3 Software per IaaS: Open Nebula 21
3.1 Le soluzioni offerte dal mercato . . . 21
3.2 Il Progetto Open Nebula . . . 22
3.3 L’architettura e i componenti principali . . . 24
3.4 Il front-end e i servizi . . . 27
3.4.1 Il demone principale e i drivers . . . 28
3.4.2 Lo Scheduler . . . 31
3.4.3 Il sistema di autenticazione . . . 32
3.4.4 Il sistema degli Hooks . . . 33
3.5 Il Sistema Storage . . . 35
3.5.1 System Datastore . . . 37
3.5.2 FileSystem Datastore . . . 39
3.6 Gli Host . . . 42
3.7 Il sottosistema Network . . . 43
3.8 Le Interfacce . . . 45
3.8.1 Command Line Interface . . . 45
3.8.2 Sunstone . . . 49
3.8.3 API OCCI . . . 52
3.8.4 API EC2 . . . 58
4 Altri Softwares IaaS a confronto 59 4.1 OpenStack . . . 60
4.2 L’Architettura di OpenStack . . . 60
4.2.1 Compute (NOVA) . . . 61
4.2.2 Object Store (SWIFT) . . . 62
INDICE iii
4.2.3 Image Store (GLANCE) . . . 62
4.2.4 Dashboard (Horizon) . . . 63
4.2.5 Identity (Keystone) . . . 64
4.3 Modalit`a d’installazione . . . 64
4.4 Eucalyptus . . . 65
4.5 L’Architettura di Eucalyptus . . . 65
4.5.1 Cloud Controller . . . 66
4.5.2 Cluster Controller . . . 67
4.5.3 Node Controller . . . 67
4.5.4 Walrus Controller . . . 67
4.5.5 Storage Controller . . . 68
4.6 Confronto fra i Software . . . 69
5 Creazione e Configurazione del Cloud Privato 71 5.1 Preparazione del Cluster . . . 71
5.2 KVM e libvirt . . . 73
5.2.1 Installazione e configurazione utenti . . . 75
5.2.2 Configurazione interfacce di rete . . . 75
5.3 Installazione e configurazione Open Nebula . . . 76
5.3.1 Configurazione Datastores . . . 78
6 Scenari di Implementazione: X1.V1 81 6.1 X1.V1: la soluzione per l’interoperabilit`a . . . 82
6.2 X1.V1 - Descrizione Scenari . . . 84
6.3 Scenario 1: Performance Test . . . 85
6.3.1 Scenario 1: Implementazione . . . 86
iv INDICE
6.3.2 Scenario 1: Risultati . . . 93
6.4 Scenario 2: Auto-Scaling Virtual Machines . . . 97
6.4.1 Scenario 2: Implementazione . . . 97
6.4.2 Scenario 2: Risultati . . . 104
6.5 Scenario 3: Availability Test . . . 105
6.5.1 Scenario 3: Implementazione . . . 105
6.5.2 Scenario 3: Risultati . . . 106
7 Scenari di Implementazione: HydroNet 111 7.1 Il progetto HydroNet . . . 111
7.2 HydroNet: descrizione scenario . . . 114
7.2.1 Auto-configurazione Robot . . . 116
7.2.2 Avvio e configurazione dei test . . . 120
7.2.3 Risultati . . . 125
8 Conclusioni e Sviluppi Futuri 131