Esta guía lo ayuda a configurar el servicio Nova (Cómputo) en el entorno OpenStak, en OpenStack, el servicio de cómputo (nodo) aloja sistemas de computación en la nube. El cómputo de OpenStack es una parte importante de IaaS, interactúa con KeyStone para la autenticación, el servicio de imágenes para el disco y las imágenes, y el tablero para la interfaz administrativa y de usuario.
OpenStack Compute puede escalar horizontalmente en hardware estándar y descargar imágenes para iniciar la instancia informática.
Instalar y configurar el nodo del controlador:
Configuraremos el servicio de cómputo en el nodo del controlador, inicie sesión en el servidor MySQL como usuario raíz.
# mysql -u root -p
Cree la base de datos nova.
CREATE DATABASE nova;
Otorgue un permiso adecuado a la base de datos nova.
GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'localhost' IDENTIFIED BY 'password'; GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'%' IDENTIFIED BY 'password';
Reemplace “contraseña ” con una contraseña adecuada. Salga de MySQL.
Cargue su credencial de administrador desde la secuencia de comandos del entorno.
# source admin-openrc.sh
Cree el usuario nova para crear credenciales de servicio.
# openstack user create --domain default --password-prompt nova User Password: Repeat User Password: +-----------+----------------------------------+ | Field | Value | +-----------+----------------------------------+ | domain_id | default | | enabled | True | | id | a25d5cdc7efa4375b0907dd615eebde0 | | name | nova | +-----------+----------------------------------+
Agregue el rol de administrador al usuario nova.
# openstack role add --project service --user nova admin
Cree la entidad de servicio nova.
# openstack service create --name nova --description "Nova" compute +-------------+----------------------------------+ | Field | Value | +-------------+----------------------------------+ | description | Nova | | enabled | True | | id | ad302b8a4e884decb8ed0f4fdf319ba1 | | name | nova | | type | compute | +-------------+----------------------------------+
Cree el punto final de la API del servicio 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 | +--------------+-----------------------------------------+
Instalar y configurar los componentes del controlador informático:
Instale los siguientes paquetes en el nodo del controlador.
# apt-get install nova-api nova-cert nova-conductor nova-consoleauth nova-novncproxy nova-scheduler python-novaclient
Edite /etc/nova/nova.conf.
# nano /etc/nova/nova.conf
Modifique la configuración a continuación y asegúrese de colocar las entradas en las secciones adecuadas. Si no encuentra una sección existente para las siguientes entradas, es posible que deba agregar esas secciones particulares en el archivo.
[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
Rellene la base de datos de Cómputo.
# su -s /bin/sh -c "nova-manage db sync" nova
Reinicie los servicios informáticos.
# service nova-api restart # service nova-cert restart # service nova-consoleauth restart # service nova-scheduler restart # service nova-conductor restart # service nova-novncproxy restart
Eliminar archivo de base de datos SQLite.
# rm -f /var/lib/nova/nova.sqlite
Instalar y configurar Nova (en el nodo de cómputo):
Ahora, instalaremos y configuraremos el servicio de cómputo en un nodo de cómputo, este servicio admite múltiples hipervisores para implementar instancias (VM). Nuestro nodo de cómputo utiliza el hipervisor QEMU con la extensión KVM para admitir la virtualización acelerada por hardware.
Verifique si su computadora es compatible con la virtualización de hardware.
# egrep -c '(vmx|svm)' /proc/cpuinfo 1
Si el comando devuelve un valor de 1 o más, su nodo de cómputo es compatible con la virtualización.
Asegúrese de haber habilitado el repositorio OpenStack Kilo en Compute Node, o siga los pasos a continuación para habilitarlo.
Instale el archivo de claves y el repositorio de Ubuntu Cloud.
# apt-get install software-properties-common # add-apt-repository cloud-archive:liberty
Actualice su sistema.
# apt-get update && apt-get dist-upgrade
Instale los siguientes paquetes en cada uno de sus nodos de cómputo.
# apt-get install nova-compute sysfsutils
Edite /etc/nova/nova-compute.conf para habilitar QEMU.
# vi /etc/nova/nova-compute.conf
Cambie virt_type=kvm a qemu en la sección libvirt.
[libvirt] ... virt_type = qemu
Edite /etc/nova/nova.conf.
# vi /etc/nova/nova.conf
Modifique la configuración a continuación y asegúrese de colocar entradas en las secciones adecuadas.
[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
Reinicie el servicio informático.
# service nova-compute restart
Eliminar archivo de base de datos SQLite.
# rm -f /var/lib/nova/nova.sqlite
Verificar operación:
Cargue las credenciales de administrador en el nodo del controlador.
# source admin-openrc.sh
Enumere los componentes del servicio de cómputo para verificar, ejecute el siguiente comando en el nodo del controlador.
# 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 | - | +----+------------------+--------------------------+----------+---------+-------+----------------------------+-----------------+
Debería obtener una salida con cuatro componentes de servicio habilitados en el nodo del controlador y un componente de servicio en el nodo de cálculo.
Enumere las imágenes en el catálogo del servicio de imágenes para verificar la conectividad entre el servicio de cómputo y el de imágenes.
# nova image-list +--------------------------------------+---------------------+--------+--------+ | ID | Name | Status | Server | +--------------------------------------+---------------------+--------+--------+ | b19c4522-df31-4331-a2e1-5992abcd4ded | Ubuntu_14.04-x86_64 | ACTIVE | | +--------------------------------------+---------------------+--------+--------+
¡Eso es todo! Ha configurado con éxito el servicio Nova. Lo siguiente es configurar OpenStack Networking (Neutron).