
Questa guida ti aiuta a configurare il servizio Nova (Compute) nell'ambiente OpenStak, in OpenStack, il servizio di calcolo (nodo) ospita 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';
Sostituisci "password ” con una password adeguata. 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 --domain default --password-prompt nova User Password: Repeat User Password: +-----------+----------------------------------+ | Field | Value | +-----------+----------------------------------+ | domain_id | default | | enabled | True | | id | a25d5cdc7efa4375b0907dd615eebde0 | | name | nova | +-----------+----------------------------------+
Aggiungi il ruolo di amministratore all'utente nova.
# openstack role add --project service --user nova admin
Crea l'entità del servizio nova.
# openstack service create --name nova --description "Nova" compute +-------------+----------------------------------+ | Field | Value | +-------------+----------------------------------+ | description | Nova | | enabled | True | | id | ad302b8a4e884decb8ed0f4fdf319ba1 | | name | nova | | type | compute | +-------------+----------------------------------+
Crea l'endpoint dell'API del servizio nova.
# openstack endpoint create --region RegionOne compute public http://controller:8774/v2/%\(tenant_id\)s +--------------+-----------------------------------------+ | Field | Value | +--------------+-----------------------------------------+ | enabled | True | | id | 3d7bba2b7c3446e7975f8b74c0cab712 | | interface | public | | region | RegionOne | | region_id | RegionOne | | service_id | ad302b8a4e884decb8ed0f4fdf319ba1 | | service_name | nova | | service_type | compute | | url | http://controller:8774/v2/%(tenant_id)s | +--------------+-----------------------------------------+ # openstack endpoint create --region RegionOne compute internal http://controller:8774/v2/%\(tenant_id\)s +--------------+-----------------------------------------+ | Field | Value | +--------------+-----------------------------------------+ | enabled | True | | id | 240d4430f1c442439c3835c12abf7533 | | interface | internal | | region | RegionOne | | region_id | RegionOne | | service_id | ad302b8a4e884decb8ed0f4fdf319ba1 | | service_name | nova | | service_type | compute | | url | http://controller:8774/v2/%(tenant_id)s | +--------------+-----------------------------------------+ # openstack endpoint create --region RegionOne compute admin http://controller:8774/v2/%\(tenant_id\)s +--------------+-----------------------------------------+ | Field | Value | +--------------+-----------------------------------------+ | enabled | True | | id | 758d41f12fff4617bc7e4c12bd4502fc | | interface | admin | | region | RegionOne | | region_id | RegionOne | | service_id | ad302b8a4e884decb8ed0f4fdf319ba1 | | service_name | nova | | service_type | compute | | url | http://controller:8774/v2/%(tenant_id)s | +--------------+-----------------------------------------+
Installa e configura i componenti del controller di elaborazione:
Installa i seguenti pacchetti sul nodo controller.
# 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 le voci nelle sezioni appropriate. Se non trovi una sezione esistente per le voci seguenti, potresti dover aggiungere quelle sezioni particolari al file.
[DEFAULT] ... verbose = True rpc_backend = rabbit auth_strategy = keystone ## Management IP of Controller Node my_ip = 192.168.12.21 network_api_class = nova.network.neutronv2.api.API security_group_api = neutron linuxnet_interface_driver = nova.network.linux_net.NeutronLinuxBridgeInterfaceDriver firewall_driver = nova.virt.firewall.NoopFirewallDriver enabled_apis=osapi_compute,metadata [vnc] ## Management IP of Controller Node vncserver_listen = $my_ip vncserver_proxyclient_address = $my_ip [database] connection = mysql+pymysql://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 ( su nodo di calcolo):
Ora 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 software-properties-common # add-apt-repository cloud-archive:liberty
Aggiorna il tuo sistema.
# apt-get update && apt-get dist-upgrade
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.
# vi /etc/nova/nova-compute.conf
Cambia virt_type=kvm in qemu nella sezione libvirt.
[libvirt] ... virt_type = qemu
Modifica /etc/nova/nova.conf.
# vi /etc/nova/nova.conf
Modifica le impostazioni seguenti e assicurati di inserire una voce nelle sezioni appropriate.
[DEFAULT] ... verbose = True rpc_backend = rabbit auth_strategy = keystone ## Management IP of Compute Node my_ip = 192.168.12.22 network_api_class = nova.network.neutronv2.api.API security_group_api = neutron linuxnet_interface_driver = nova.network.linux_net.NeutronLinuxBridgeInterfaceDriver firewall_driver = nova.virt.firewall.NoopFirewallDriver [vnc] enabled = True vncserver_listen = 0.0.0.0 vncserver_proxyclient_address = $my_ip 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 ## Replace controller with your controller hostname [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-consoleauth | controller.itzgeek.local | internal | enabled | up | 2015-11-25T14:11:25.000000 | - | | 2 | nova-cert | controller.itzgeek.local | internal | enabled | up | 2015-11-25T14:11:24.000000 | - | | 3 | nova-conductor | controller.itzgeek.local | internal | enabled | up | 2015-11-25T14:11:28.000000 | - | | 4 | nova-scheduler | controller.itzgeek.local | internal | enabled | up | 2015-11-25T14:11:24.000000 | - | | 5 | nova-compute | compute.itzgeek.local | nova | enabled | up | 2015-11-25T14:11:30.000000 | - | +----+------------------+--------------------------+----------+---------+-------+----------------------------+-----------------+
Dovresti ottenere un output con quattro componenti di servizio abilitati sul nodo controller e un componente di servizio sul nodo di calcolo.
Elenca le immagini nel catalogo del servizio di immagine per verificare la connettività tra il servizio di elaborazione e quello 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).