Questa guida ti aiuta a configurare il servizio Nova (Compute) nell'ambiente OpenStak, in OpenStack, il servizio di calcolo (nodo) viene utilizzato per ospitare e gestire i sistemi di cloud computing. Il calcolo di OpenStack è una parte importante in IaaS, interagisce con KeyStone per l'autenticazione, il servizio di immagine per il disco e le immagini e il dashboard per l'interfaccia utente e amministrativa.
OpenStack Compute può scalare orizzontalmente su hardware standard e scaricare immagini per avviare l'istanza di elaborazione.
Installa e configura il nodo controller:
Configurare il servizio Compute sul nodo Controller, accedere al server MySQL come utente root.
# mysql -u root -p
Crea il database nova.
CREATE DATABASE nova;
Concedi un'adeguata autorizzazione al database nova.
GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'localhost' IDENTIFIED BY 'password'; GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'%' IDENTIFIED BY 'password';
Sostituire "password" con una password adatta. Esci da MySQL.
Carica le tue credenziali di amministratore dallo script dell'ambiente.
# source admin-openrc.sh
Crea l'utente nova per la creazione delle credenziali del servizio.
# openstack user create --password-prompt nova User Password: Repeat User Password: +----------+----------------------------------+ | Field | Value | +----------+----------------------------------+ | email | None | | enabled | True | | id | 58677ccc7412413587d138f686574867 | | name | nova | | username | nova | +----------+----------------------------------+
Aggiungi il ruolo di amministratore all'utente nova.
# openstack role add --project service --user nova admin +-------+----------------------------------+ | Field | Value | +-------+----------------------------------+ | id | 33af4f957aa34cc79451c23bf014af6f | | name | admin | +-------+----------------------------------+
Crea l'entità del servizio nova.
# openstack service create --name nova --description "OpenStack Compute" compute +-------------+----------------------------------+ | Field | Value | +-------------+----------------------------------+ | description | OpenStack Compute | | enabled | True | | id | 40bc66cafb164b18965528c0f4f5ab83 | | name | nova | | type | compute | +-------------+----------------------------------+
Crea l'endpoint dell'API del servizio nova.
# openstack endpoint create \ --publicurl http://controller:8774/v2/%\(tenant_id\)s \ --internalurl http://controller:8774/v2/%\(tenant_id\)s \ --adminurl http://controller:8774/v2/%\(tenant_id\)s \ --region RegionOne \ compute +--------------+-----------------------------------------+ | Field | Value | +--------------+-----------------------------------------+ | adminurl | http://controller:8774/v2/%(tenant_id)s | | id | 3a61334885334ccaa822701ac1091080 | | internalurl | http://controller:8774/v2/%(tenant_id)s | | publicurl | http://controller:8774/v2/%(tenant_id)s | | region | RegionOne | | service_id | 40bc66cafb164b18965528c0f4f5ab83 | | service_name | nova | | service_type | compute | +--------------+-----------------------------------------+
Installa e configura i componenti del controller di elaborazione:
Installa i pacchetti su Controller Node.
# apt-get install nova-api nova-cert nova-conductor nova-consoleauth nova-novncproxy nova-scheduler python-novaclient
Modifica /etc/nova/nova.conf.
# nano /etc/nova/nova.conf
Modifica le impostazioni seguenti e assicurati di inserire una voce nelle sezioni appropriate.
[DEFAULT] ... rpc_backend = rabbit auth_strategy = keystone my_ip = 192.168.12.21 ## Management IP of Controller Node vncserver_listen = 192.168.12.21 ## Management IP of Controller Node vncserver_proxyclient_address = 192.168.12.21 ## Management IP of Controller Node [database] connection = mysql://nova:password@controller/nova ## Replace "password" with the password you chose for nova database [oslo_messaging_rabbit] rabbit_host = controller rabbit_userid = openstack rabbit_password = password ## Replace "password" with the password you chose for the openstack account in RabbitMQ. [keystone_authtoken] auth_uri = http://controller:5000 auth_url = http://controller:35357 auth_plugin = password project_domain_id = default user_domain_id = default project_name = service username = nova password = password ## Replace "password" with the password you chose for nova user in the identity service [glance] host = controller [oslo_concurrency] lock_path = /var/lib/nova/tmp
Compila il database di calcolo.
# su -s /bin/sh -c "nova-manage db sync" nova
Riavvia i servizi di calcolo.
# service nova-api restart # service nova-cert restart # service nova-consoleauth restart # service nova-scheduler restart # service nova-conductor restart # service nova-novncproxy restart
Rimuovere il file di database SQLite.
# rm -f /var/lib/nova/nova.sqlite
Installa e configura Nova (un nodo di calcolo):
Qui installeremo e configureremo il servizio di calcolo su un nodo di calcolo, questo servizio supporta più hypervisor per distribuire istanze (VM). Il nostro nodo di calcolo utilizza l'hypervisor QEMU con estensione KVM per supportare la virtualizzazione con accelerazione hardware.
Verifica se il tuo calcolo supporta la virtualizzazione hardware.
# egrep -c '(vmx|svm)' /proc/cpuinfo 1
Se il comando restituisce un valore 1 o più, il tuo nodo di calcolo supporta la virtualizzazione.
Assicurati di aver abilitato il repository OpenStack Kilo su Compute Node o segui i passaggi seguenti per abilitarlo.
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
Installa i seguenti pacchetti su ogni tuo nodo di calcolo.
# apt-get install nova-compute sysfsutils
Modifica /etc/nova/nova-compute.conf per abilitare QEMU.
# nano /etc/nova/nova-compute.conf/
Change virt_type=kvm to qemu in libvirt section.
[libvirt] ... virt_type = qemu
Modifica /etc/nova/nova.conf.
# nano /etc/nova/nova.conf
Modifica le impostazioni seguenti e assicurati di inserire una voce nelle sezioni appropriate.
[DEFAULT] ... rpc_backend = rabbit auth_strategy = keystone my_ip = 192.168.12.23 ## Management IP of Compute Node vnc_enabled = True vncserver_listen = 0.0.0.0 vncserver_proxyclient_address = 192.168.12.23 ## Management IP of Compute Node novncproxy_base_url = http://controller:6080/vnc_auto.html [oslo_messaging_rabbit] rabbit_host = controller rabbit_userid = openstack rabbit_password = password ## Replace "password" with the password you chose for the openstack account in RabbitMQ. [keystone_authtoken] auth_uri = http://controller:5000 auth_url = http://controller:35357 auth_plugin = password project_domain_id = default user_domain_id = default project_name = service username = nova password = password ## Replace "password" with the password you chose for nova user in the identity service [glance] host = controller [oslo_concurrency] lock_path = /var/lib/nova/tmp
Riavvia il servizio di calcolo.
# service nova-compute restart
Rimuovere il file di database SQLite.
# rm -f /var/lib/nova/nova.sqlite
Verifica operazione:
Carica le credenziali di amministratore su Controller Node.
# source admin-openrc.sh
Elenca i componenti del servizio di calcolo da verificare, esegui il comando seguente sul nodo controller.
# nova service-list +----+------------------+------------+----------+---------+-------+----------------------------+-----------------+ | Id | Binary | Host | Zone | Status | State | Updated_at | Disabled Reason | +----+------------------+------------+----------+---------+-------+----------------------------+-----------------+ | 1 | nova-cert | controller | internal | enabled | up | 2015-06-29T20:38:48.000000 | - | | 2 | nova-conductor | controller | internal | enabled | up | 2015-06-29T20:38:46.000000 | - | | 3 | nova-consoleauth | controller | internal | enabled | up | 2015-06-29T20:38:41.000000 | - | | 4 | nova-scheduler | controller | internal | enabled | up | 2015-06-29T20:38:50.000000 | - | | 5 | nova-compute | compute | nova | enabled | up | 2015-06-29T20:38:49.000000 | - | +----+------------------+------------+----------+---------+-------+----------------------------+-----------------+
Dovresti ottenere un output con quattro componenti di servizio abilitati sul nodo controller e un componente di servizio abilitato sul nodo di calcolo.
Elenca le immagini nel catalogo del servizio di immagine per verificare la connettività con il servizio di immagine.
# nova image-list +--------------------------------------+---------------------+--------+--------+ | ID | Name | Status | Server | +--------------------------------------+---------------------+--------+--------+ | b19c4522-df31-4331-a2e1-5992abcd4ded | Ubuntu_14.04-x86_64 | ACTIVE | | +--------------------------------------+---------------------+--------+--------+
Questo è tutto!!!, hai configurato correttamente il servizio Nova. Il prossimo passo è configurare OpenStack Networking (Neutron).