OpenStack è una piattaforma di cloud computing open source, fornisce una soluzione per l'infrastruttura come servizio. OpenStack è costituito da più componenti messi insieme per fornire IaaS, i componenti sono elencati di seguito con il suo utilizzo.
Componenti:
Componente | Nome | Usa |
---|---|---|
Calcola | (Nova) | Gestisce le macchine virtuali |
Archiviazione oggetti | (Veloce) | Gestisce lo spazio di archiviazione nel cloud |
Blocca archiviazione | (cenere) | Gestisce lo spazio di archiviazione per calcolare l'istanza |
Rete | (Neutron) | Gestisce la rete e gli indirizzi IP |
Dashboard | (Orizzonte) | Fornire un'interfaccia web grafica per gestire le risorse |
Servizio di identità | (chiave di volta) | Gestisce il sistema di autenticazione nel cloud |
Servizio immagini | (Sguardo) | Fornisce immagini del disco e del server (modello) |
Telemetria | (Ceilometro) | Sistema di fatturazione |
Orchestratura | (Calore) | Fornisce la funzione di orchestrazione |
Banca dati | (Trova) | Motore database |
Approvvigionamento bare metal | (Ironico) | Esegue il provisioning del sistema bare-metal invece della macchina virtuale |
Messaggistica cloud con più tenant | (Zaqar) | Servizio di messaggistica cloud per sviluppatori Web |
Mappa elastica Riduci | (Sahara) | Fornisce cluster Hadoop |
Progettazione delle infrastrutture:
Per quanto riguarda l'infrastruttura, utilizzeremo la rete OpenStack (neutroni), qui verranno utilizzate un totale di tre istanze Ubuntu, fungeranno da controller, rete e nodo di calcolo.
OpenStack consiglia di seguito le configurazioni per ciascun nodo, con sistema operativo host a 64 bit.
• Nodo controller:1 processore, 2 GB di memoria e 5 GB di storage
• Nodo di rete:1 processore, 512 MB di memoria e 5 GB di storage
• Compute Node:1 processore, 2 GB di memoria e 10 GB di spazio di archiviazione
Quella che segue è la configurazione di rete di ciascun nodo.
Ruolo | Carta NO 1 | Carta NW 2 | Carta NW 3 |
---|---|---|---|
Nodo controller | 192.168.12.21 / 24, GW=192.168.12.2 (Rete di gestione) | NA | NA |
Nodo di rete | 192.168.12.22 / 24 GW=192.168.12.2 (Rete di gestione) | 192.168.11.22 / 24 (rete di tunnel) | 192.168.0.10 / 24 GW=192.168.0.1 (Rete esterna – DHCP abilitato) |
Nodo di calcolo | 192.168.12.23 / 24 GW=192.168.12.2 (Rete di gestione) | 192.168.11.23 / 24 (rete di tunnel) | NA |
* Tunnel Network non avrà un IP gateway nel file di configurazione, questa rete viene utilizzata per la comunicazione interna tra Network Node e Compute Node.
Aggiungi una voce host, in modo che i nodi possano utilizzare il nome host per comunicare invece dell'indirizzo IP. Posizionalo su tutti i nodi.
# nano /etc/hosts # controller 192.168.12.21 controller # network 192.168.12.22 network # compute 192.168.12.23 compute
Una volta terminata la configurazione dell'indirizzo IP, eseguire il ping tra i nodi per verificare la connettività.
Server NTP:
Installa e configura NTP su Controller Node in modo che tutti gli altri nodi possano eseguire la sincronizzazione dell'ora.
# apt-get install ntp # service ntp restart
Configurazione NTP client
Installa il pacchetto NTP sia sulla rete che sul nodo di calcolo
# apt-get install ntp
Modifica il file di configurazione seguente.
# nano /etc/ntp.conf
Rimuovi altri server ntp dal file, elimina semplicemente le righe che iniziano con word server. Aggiungi la voce di seguito per sincronizzare i nostri nodi con il nodo controller.
server controller
Riavvia il servizio NTP.
# service ntp restart
Pacchetti OpenStack:
Installa il portachiavi e il repository dell'archivio Ubuntu Cloud.
# apt-get install ubuntu-cloud-keyring # echo "deb http://ubuntu-cloud.archive.canonical.com/ubuntu" "trusty-updates/kilo main" > /etc/apt/sources.list.d/cloudarchive-kilo.list
Aggiorna il tuo sistema.
# apt-get update && apt-get dist-upgrade
Esegui i due passaggi precedenti su tutti i nodi.
Installa il database MySQL:
I componenti OpenStack utilizzano il database MySQL per archiviare le informazioni, quindi installa MySQL sul Controller Node.
# apt-get install mariadb-server python-mysqldb
Il programma di installazione richiama una riga di comando tui per impostare la password di root di MySQL.
# nano /etc/mysql/conf.d/mysqld_openstack.cnf
Aggiungi i seguenti valori e assicurati che il valore dell'indirizzo di collegamento sia impostato sull'indirizzo IP di gestione del nodo controller per consentire ad altri nodi di accedere all'istanza MySQL.
[mysqld] ## Set to Management IP bind-address = 192.168.12.21 default-storage-engine = innodb innodb_file_per_table collation-server = utf8_general_ci init-connect = 'SET NAMES utf8' character-set-server = utf8
Riavvia MySQL.
# service mysql restart
Installa RabbitMQ:
RabbitMQ viene utilizzato da OpenStack per coordinare le operazioni e le informazioni sullo stato tra i servizi. Installalo sul nodo controller.
# apt-get install rabbitmq-server
Aggiungi utente openstack.
# rabbitmqctl add_user openstack password
* Sostituisci la password con la tua password.
Consenti all'utente openstack di leggere, scrivere e accedere alla configurazione.
# rabbitmqctl set_permissions openstack ".*" ".*" ".*"
Il prossimo passo è configurare il servizio KeyStone (identità OpenStack).