Muchos servicios OpenStack mantienen una base de datos para realizar un seguimiento de los recursos críticos, el uso y otra información. De manera predeterminada, se especifican bases de datos individuales de SQLite para este fin y son útiles para la configuración de un solo nodo. Para las configuraciones de varios nodos, en especial en un entorno de producción, se recomiendan otras bases de datos, como MySQL, para almacenar esta información.
La comunicación entre servicios de OpenStack se realiza a través del protocolo avanzado de cola de mensajes (AMQP). En Oracle Solaris, AMQP es implementado por RabbitMQ. RabbitMQ es un servicio necesario. Generalmente, se configura un solo nodo en la nube para ejecutar RabbitMQ. En esta arquitectura, RabbitMQ se configura para ejecución en el nodo de controlador.
controller# svcadm enable rabbitmq controller# svcadm restart rad:local
bind-address=$CONTROLLER_ADMIN_NODE_IP
controller# svcadm enable mysql
controller# mysqladmin -u root password MySQL-root-password
Cree las tablas que usará OpenStack. Conceda privilegios a los servicios del nodo de controlador para proporcionar acceso exclusivo a estas bases de datos.
controller# mysql -u root -p Enter password: MySQL-root-password mysql> drop database if exists nova; mysql> drop database if exists cinder; mysql> drop database if exists glance; mysql> drop database if exists keystone; mysql> drop database if exists neutron; mysql> drop database if exists heat; mysql> create database cinder default character set utf8 default collate utf8_general_ci; mysql> grant all privileges on cinder.* to 'cinder'@'$CONTROLLER_ADMIN_NODE' identified by 'service-password'; mysql> create database glance default character set utf8 default collate utf8_general_ci; mysql> grant all privileges on glance.* to 'glance'@'$CONTROLLER_ADMIN_NODE' identified by 'service-password'; mysql> create database keystone default character set utf8 default collate utf8_general_ci; mysql> grant all privileges on keystone.* to 'keystone'@'$CONTROLLER_ADMIN_NODE' identified by 'service-password'; mysql> create database nova default character set utf8 default collate utf8_general_ci; mysql> grant all privileges on nova.* to 'nova'@'$CONTROLLER_ADMIN_NODE' identified by 'service-password'; mysql> create database neutron default character set utf8 default collate utf8_general_ci; mysql> grant all privileges on neutron.* to 'neutron'@'$CONTROLLER_ADMIN_NODE' identified by 'service-password'; mysql> create database heat default character set utf8 default collate utf8_general_ci; mysql> grant all privileges on heat.* to 'heat'@'$CONTROLLER_ADMIN_NODE' identified by 'service-password'; mysql> flush privileges; mysql> quit