Database

As stated earlier, Nova uses a Python library called SQL-Alchemy for database abstraction and access. As such, Nova can theoretically support any database product that SQL-Alchemy supports. However, in practice, there are only three with any level of testing and support within the Nova community:

sqlite3

While sqlite3 is the default database for development and testing, it is unsuitable for production installation due to scalability, availability, and performance concerns.

MySQL

MySQL is far and away the most popular database for Nova production deployments. It is also arguably easiest to setup with Nova, and almost all of the documentation assumes you are using it. It should be the default choice for most users.

PostgreSQL

PostgreSQL is a distant third in usage within the Nova community. However, there is a dedicated group using it and it does possess many advantageous features for use in large-scale production sites. Users with strong experience in deploying and tuning PostgreSQL may find this an attractive option.

Assuming that you are looking for a production deployment, the decision for database product should come down to PostgreSQL or MySQL. Unless you have significant experience with PostgreSQL, MySQL will be a better choice, as all documentation is written with MySQL in mind and there is a larger support community.

Get Deploying OpenStack now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.