多くの OpenStack サービスは、重要なリソース、使用状況、およびその他の情報を追跡するためにデータベースを保持します。デフォルトでは個々の SQLite データベースがこの目的で指定されますが、単一ノード構成の場合に便利です。マルチノード構成の場合、特に本番環境では、この情報を格納するために MySQL データベースなどのその他のデータベースをお勧めします。
OpenStack サービス間の通信は Advanced Message Queuing Protocol (AMQP) によって実行されます。Oracle Solaris で AMQP は RabbitMQ によって実装されます。RabbitMQ は必須サービスです。通常、クラウド内の 1 つのノードで RabbitMQ を実行するように構成します。このアーキテクチャーでは、RabbitMQ がコントローラノードで実行するように構成します。
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
OpenStack によって使用されるテーブルを作成します。これらのデータベースへの排他的アクセスを提供するために、コントローラノード上のサービスに特権を付与します。
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