Hey,
On Thu, 2011-11-17 at 15:22 -0500, Russell Bryant wrote:
Greetings,
A few weeks ago I spent some time looking into a bug [1] that came up back when we had the test day. The bug showed a "database locked" error when sqlite was used. In short, using sqlite with nova is not a reliable combination. I'd like to get some consensus on a good way to address that.
For reference, the bug triggering this discussion is:
https://bugzilla.redhat.com/735012
Some options ...
- Update the docs to strongly recommend switching to MySQL as a part of
the setup process.
- Don't even bother having the packages set up for sqlite at all.
Switch to mysql by default.
I'd like to take path #2 here. It seems like a bad idea to provide a default configuration that we know will fail at times.
Yeah, if sqlite is such a lost cause, then we should drop it.
If we do remove the auto-sqlite-setup thing in %post, people who do try to use sqlite will hit the following problems:
- You can use an sqlite URI like sqlite:////nova.sqlite, but if you then run 'nova manage db sync' the DB will be created in the current dir rather than /var/lib/nova. The nova services all run with /var/lib/nova as their cwd
- 'nova-manage db sync' will create the DB owned by the current user. You need to chown it to the nova user
So, the "create nova.sqlite in %post" thing was about trying to eliminate those hurdles.
If we do take this path, what's the best way to go about it? We can have nova set up to use MySQL and point it at localhost with some default credentials. Should we do more? Provide a trivial script for creating the nova database and user? Have an optional openstack-nova-db package that pulls in MySQL and automatically creates the db?
I don't want to try to make things too smart and then end up causing pain for administrators.
I'd go with simply making mysql://nova:nova@localhost/nova the default for the sql_connection flag
Potentially also include a simple script for changing the MySQL root password, deleting anonymous accounts, creating the nova DB and the nova user as described here:
https://fedoraproject.org/wiki/Getting_started_with_OpenStack_Nova#Using_MyS...
I'd also look into what the Ubuntu packages do:
http://bazaar.launchpad.net/~openstack-ubuntu-packagers/nova/ubuntu/files/he...
At a first glance, it looks like they use sqlite by default and don't any particular help for people to use MySQL e.g.
http://bazaar.launchpad.net/~openstack-ubuntu-packagers/nova/ubuntu/view/hea...
if ! grep -q sql_connection /etc/nova/nova.conf then su -c 'nova-manage db sync' nova fi
Cheers, Mark.