OpenStack upgrades aren't easy, until Folsom they weren't even supported.
This howto will drive you to upgrade from grizzly to havana, on a wheezy system(s). The upgrade will be performed offline, all services will be down during it.
This howto was modeled after our upgrade, we use postgresql for the database, we keep our users, tenants/projects and passwords in ldap and we use ceph as the backend storage for glance and cinder. dbs are managed thought dbconfig.
i will open bugs and provide fixes for the issues i describe here.
Grizzly install notes
- we had to add postgres password to /root/.pgpass file in order to configure cinder-common
- we had to add rabbitmq ip to cinder-volume config, we run cinder-volume on different nodes than rabbitmq
- we had to edit /etc/default/cinder-volume change id from nova to volumes (or whatever user is defined for cinder in ceph)
1 - read the upgrade notes, yes it's important.
2 - shut down all openstack services on all nodes.
3 - stamp the database for quantum, this is necesary in order to upgrade it later to havana's schema, run this only once in one node
$ quantum-db-manage --config-file /etc/quantum/quantum.conf --config-file /etc/quantum/plugins/openvswitch/ovs_quantum_plugin.ini stamp grizzly
we use openvswitch to manage networks, if you use other plugin change the path according.
4 - edit /etc/apt/sources.list on all the nodes
deb http://archive.gplhost.com/debian grizzly main deb http://archive.gplhost.com/debian grizzly-backports main
for havana we have
deb http://archive.gplhost.com/debian havana main deb http://archive.gplhost.com/debian havana-backports main
5 - install the gpg key for gplhost repo
# wget http://archive.gplhost.com/debian/repository_key.asc -O- | apt-key add -
6 - run the update
# apt-get update
7 - install (if you don't have it already) python-argpase which is a non-declared dependency on wheezy systems http://docs.openstack.org/havana/install-guide/install/apt-debian/content/basics-argparse.html
# apt-get install python-argparse
8 - if the box runs neutron openvswitch plugin you need to upgrade openvswitch to 1.9 at least, gplhost repo has updated packages for openvswitch. upgrade them first
# apt-get install openvswitch-switch if you use dkms # apt-get install openvswitch-datapath-dkms
9 - run the upgrade, but don't start the services
# apt-get dist-upgrade
when debconf asks you to create the databases or setup them say no, as you already have them. same with the endpoints, you already have them.
when debconf asks you for user, passwords, etc. reply the same you replied when installed grizzly.
when neutron asked what plugin should it run i've selected openvswitch, i could use ML2 but i saved that fun for latter.
10 - in one node with neutron installed run
$ neutron-db-manage --config-file /etc/quantum/quantum.conf --config-file /etc/quantum/plugins/openvswitch/ovs_quantum_plugin.ini upgrade havana
this will upgrade your db schema to havana's a, is strongly recommend to take a backup of the db before run this step.
11 - now you can start openstack services, everything should work
- = Neutron =
we had to change the keystone ip addr on /etc/neutron/neutron.conf [keystone_authtoken] section.
we had to enable tunneling in /etc/neutron/plugins/openvswitch/ovs_neutron_plugin.ini even do i already enabled it on debconf, and configure it to use gre (in havana there are various types of tunnel supported)
we had to fix local_ip in/etc/neutron/plugins/openvswitch/ovs_neutron_plugin.ini, it was 127.0.0.1
- we had to enable a few settings on /etc/neutron/dhcp_agent.ini
again, we use openvswitch, if you use other plugin change according
interface_driver = neutron.agent.linux.interface.OVSInterfaceDriver
dhcp_driver = neutron.agent.linux.dhcp.Dnsmasq
- we had to regenerate the security group rules, probably some modifications on the db would make that unnecesary, but it was easier for us on that moment.
= Nova =
- we had to fix rabbitmq ip in /etc/nova/nova.conf
- we had to remove rabbitmq password, we use a password-less rabbit setup
- we had to change, in /etc/nova/nova.conf, all quantum settings to neutron, a simply rename would do it
- we had to regenerate the keypairs (unconfirmed)