====== Cluster Openstack [OBSOLETED] ====== L'infrastruttura OpenStack di seguito descritta è da considersi un ambiente di TEST. Di conseguenza non viene garantita la continuità del servizio e non viene eseguito backup dei dati degli utenti. ==== Nodi ==== L'infrastruttura è composta dai seguenti nodi: ^ nome ^ tipo ^ ruolo ^ | rd-blade-01 | fisica | cloud controller, network node, proxy swift | | rd-blade-02 | fisica | compute node | | rd-blade-03 | fisica | compute node | | rd-blade-04 | fisica | compute node | | rd-swift-01 | virtual | storage node | | rd-swift-02 | virtual | storage node | | rd-swift-03 | virtual | storage node | | rd-swift-04 | virtual | storage node | | rd-swift-05 | virtual | storage node | | rd-ui | virtual | login node, openstack clients | ==== Descrizione software ==== Le macchine fisiche che costituiscono l’installazione di OpenStack utilizzano come sistema operativo Fedora 19 (Schrödinger’s Cat). E' stata installata la versione Havana di Openstack e sono stati configurati i seguenti componenti: * Keystone (Identity management) * Glance (Image repositiry) * Cinder (Block storage) * Nova (Compute service) * Neutron (Network service) * Ceilometer (Metering service) * Swift (Object storage) \\ Sul nodo di login (rd-ui) sono stati installati solamente i command line clients di OpenStack per interagire con i servizi e i tool di Eucalyptus per utilizzare le API EC2. ==== Setup di rete ==== Le macchine usate per l’installazione di OpenStack hanno due interfacce di rete, per cui sono state utilizzate le seguenti reti: * 131.154.90.0/23: rete di management utilizzata per gestire gli hypervisor e dai servizi di OpenStack per comunicare fra di loro; * 192.168.0.0/24: rete privata interna allo chassis, usata come rete di trasporto per gre networks dei tenant; * 131.154.90.224/27: rete publica usata come external network da cui prendere i floating IP. \\ Dettaglio della configurazione di rete dei singoli hosts: ^ nodo ^ br-ex ^ eth0 ^ eth1 ^ | rd-blade-01 | 131.154.90.17 , 131.154.90.225 | - | 192.168.0.1 | | rd-blade-02 | - | 131.154.90.18 | 192.168.0.2 | | rd-blade-03 | - | 131.154.90.19 | 192.168.0.3 | | rd-blade-04 | - | 131.154.90.20 | 192.168.0.4 | | rd-swift-01 | - | 131.154.90.55 | - | | rd-swift-02 | - | 131.154.90.56 | - | | rd-swift-03 | - | 131.154.90.57 | - | | rd-swift-04 | - | 131.154.90.58 | - | | rd-swift-05 | - | 131.154.90.59 | - | ==== Setup di Neutron ==== La configurazione fatta per Neutron è quella che la documentazione ufficiale definisce "Per Tenant Router con Reti Private": ciò significa che ad ogni tenant viene data la possbilità di crearsi una propria rete privata ed ad ognuno viene assegnato un indirizzo pubblico con il quale viene fatto il masquerading della rete privata. Poi ogni tenant può assegnare IP floating alle singole VM. Esempio: {{:strutture:cnaf:cnaf_rd:infrastruttura:es_quantum.png|}} \\ Per ottenere questo risultato, Neutron fa utilizzo di Open vSwitch e dei Linux namespaces. ==== Utilizzo delle risorse ==== Raggiunta la user interface, è possibile interagire con l’infrastruttura OpenStack mediante i seguenti endpoint: * Keystone: [[http://rd-blade-01:5000/v2.0|http://rd-blade-01:5000/v2.0]] * EC2: [[http://rd-blade-01:8773/services/Cloud|http://rd-blade-01:8773/services/Cloud]] Per chi volesse utilizzare l’interfaccia EC2, deve prima creare le proprie credenziali EC2 mediante il comando: $ keystone ec2-credetials-create E' consigliato creare un file rc contenente le credenziali e gli endpoint da passare ai client di OpenStack come variabili d’ambiente. Ad esempio creare il file openrc, ed inserire: export OS_TENANT_NAME=foo export OS_USERNAME=foo export OS_PASSWORD=foo export OS_AUTH_URL=http://rd-blade-01:5000/v2.0 export EC2_URL=http://rd-blade-01:8773/services/Cloud Salvare il file e farne il source: $ source openrc ==== Esempi ==== == Interrogare il catalogo delle immagini == Con nova: $ nova image-list == Elencare le reti disponibili == $ neutron net-list == Istanziare una VM == Prima di istanziare una VM, è consigliato creare un proprio keypair con: $ nova keypair-add foo > foo.pem \\ Poi avviare la VM specificando il keypair: $ nova boot --image --flavor --nic net-id= --key-name foo test == Accedere alla VM == Per accedere alle VM, prima verificare l’IP dell’istanza con: $ nova list \\ Poi accedere via SSH ssh -i foo.pem root@