- Impact on Users
- Upgrade Considerations
- Perform a Backup
- Manage Repositories
- Update Configuration Files
- Upgrade Packages on the Controller Node
- Stop Services, Update Database Schemas, and Restart Services on the Controller Node
- Upgrade Packages and Restart Services on the Compute Nodes
- Upgrade Packages and Restart Services on the Block Storage Nodes
For this section, we assume that you are starting with the architecture provided in the OpenStack OpenStack Installation Guide and upgrading to the same architecture for Havana. All nodes should run Red Hat Enterprise Linux 6.4 or compatible derivatives. Newer minor releases should also work. This section primarily addresses upgrading core OpenStack services, such as the Identity Service (keystone), Image Service (glance), Compute (nova) including networking, Block Storage (cinder), and the dashboard.
The upgrade process interrupts management of your environment, including the dashboard. If you properly prepare for this upgrade, tenant instances continue to operate normally.
Always review the release notes before performing an upgrade to learn about newly available features that you might want to enable and deprecated features that you should disable.
First, save the configuration files on all nodes:
# for i in keystone glance nova cinder openstack-dashboard; \ do mkdir $i-grizzly; \ done # for i in keystone glance nova cinder openstack-dashboard; \ do cp -r /etc/$i/* $i-grizzly/; \ done
Note | |
---|---|
You can modify this example script on each node to handle different services. |
Next, back up all databases on the controller:
# mysqldump -u root -p --opt --add-drop-database \ --all-databases > grizzly-db-backup.sql
On all nodes, remove the repository for Grizzly packages and add the repository for Havana packages:
# yum erase rdo-release-grizzly # yum install http://repos.fedorapeople.org/repos/openstack/openstack-havana/ \ rdo-release-havana-7.noarch.rpm
Warning | |
---|---|
Make sure any automatic updates are disabled. |
Note | |
---|---|
Consider checking for newer versions of the Havana repository. |
Update the glance configuration on the controller node for compatibility with Havana.
Add or modify the following keys in the
/etc/glance/glance-api.conf
and
/etc/glance/glance-registry.conf
files:
# openstack-config --set /etc/glance/glance-api.conf keystone_authtoken \ auth_uri http://controller:5000 # openstack-config --set /etc/glance/glance-api.conf keystone_authtoken \ auth_host controller # openstack-config --set /etc/glance/glance-api.conf keystone_authtoken \ admin_tenant_name service # openstack-config --set /etc/glance/glance-api.conf keystone_authtoken \ admin_user glance # openstack-config --set /etc/glance/glance-api.conf keystone_authtoken \ admin_password GLANCE_PASS # openstack-config --set /etc/glance/glance-api.conf paste_deploy \ flavor keystone
# openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken \ auth_uri http://controller:5000 # openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken \ auth_host controller # openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken \ admin_tenant_name service # openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken \ admin_user glance # openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken \ admin_password GLANCE_PASS # openstack-config --set /etc/glance/glance-registry.conf paste_deploy \ flavor keystone
If currently present, remove the following key from the
[filter:authtoken] section in the
/etc/glance/glance-api-paste.ini
and
/etc/glance/glance-registry-paste.ini
files:
[filter:authtoken] flavor = keystone
Update the nova configuration on all nodes for compatibility with Havana.
Add the [database]
section and
associated key to the /etc/nova/nova.conf
file:
# openstack-config --set /etc/nova/nova.conf database \ connection mysql://nova:NOVA_DBPASS@controller/nova
Remove defunct database configuration from the
/etc/nova/nova.conf
file:
# openstack-config --del /etc/nova/nova.conf DEFAULT sql_connection
Add or modify the following keys in the
/etc/nova/nova.conf
file:
# openstack-config --set /etc/nova/nova.conf keystone_authtoken \ auth_uri http://controller:5000/v2.0 # openstack-config --set /etc/nova/nova.conf keystone_authtoken \ auth_host controller # openstack-config --set /etc/nova/nova.conf keystone_authtoken \ admin_tenant_name service # openstack-config --set /etc/nova/nova.conf keystone_authtoken \ admin_user nova # openstack-config --set /etc/nova/nova.conf keystone_authtoken \ admin_password NOVA_PASS
On all compute nodes, increase the DHCP lease time
(measured in seconds) in the
/etc/nova/nova.conf
file to enable
currently active instances to continue leasing their IP
addresses during the upgrade process, as follows:
# openstack-config --set /etc/nova/nova.conf DEFAULT \ dhcp_lease_time 86400
Warning | |
---|---|
Setting this value too high might cause more dynamic environments to run out of available IP addresses. Use an appropriate value for your environment. |
You must restart dnsmasq and the nova networking service to enable the new DHCP lease time:
# pkill -9 dnsmasq # service openstack-nova-network restart
Update the cinder configuration on the controller and storage nodes for compatibility with Havana.
Add the [database]
section and
associated key to the
/etc/cinder/cinder.conf
file:
# openstack-config --set /etc/cinder/cinder.conf database \ connection mysql://cinder:CINDER_DBPASS@controller/cinder
Remove defunct database configuration from the
/etc/cinder/cinder.conf
file:
# openstack-config --del /etc/cinder/cinder.conf DEFAULT sql_connection
Add or modify the following key in the
/etc/cinder/cinder.conf
file:
# openstack-config --set /etc/cinder/cinder.conf keystone_authtoken \ auth_uri http://controller:5000
Update the dashboard configuration on the controller node for compatibility with Havana.
The dashboard installation procedure and configuration
file changed substantially between Grizzly and Havana.
Particularly, if you are running Django 1.5 or later, you must
ensure that the
/etc/openstack-dashboard/local_settings
file contains a correctly configured
ALLOWED_HOSTS
key that contains a list of
host names recognized by the dashboard.
If users access your dashboard by using
http://dashboard.example.com, define
ALLOWED_HOSTS
, as follows:
ALLOWED_HOSTS=['dashboard.example.com']
If users access your dashboard on the local system, define
ALLOWED_HOSTS
, as follows:
ALLOWED_HOSTS=['localhost']
If users access your dashboard by using an IP address in
addition to a host name, define
ALLOWED_HOSTS
, as follows:
ALLOWED_HOSTS=['dashboard.example.com', '192.168.122.200']
Upgrade packages on the controller node to Havana:
# yum upgrade
Note | |
---|---|
Some services might terminate with an error during the package upgrade process. If this error might cause a problem with your environment, consider stopping all services before upgrading them to Havana. |
Install the OpenStack SELinux package on the controller node:
# yum install openstack-selinux
Note | |
---|---|
The package manager appends |
Stop each service, run the database synchronization command if necessary to update the associated database schema, and restart each service to apply the new configuration. Some services require additional commands:
- OpenStack Identity
# service openstack-keystone stop # keystone-manage token_flush # keystone-manage db_sync # service openstack-keystone start
- OpenStack Image Service
# service openstack-glance-api stop # service openstack-glance-registry stop # glance-manage db_sync # service openstack-glance-api start # service openstack-glance-registry start
- OpenStack Compute
# service openstack-nova-api stop # service openstack-nova-scheduler stop # service openstack-nova-conductor stop # service openstack-nova-cert stop # service openstack-nova-consoleauth stop # service openstack-nova-novncproxy stop # nova-manage db sync # service openstack-nova-api start # service openstack-nova-scheduler start # service openstack-nova-conductor start # service openstack-nova-cert start # service openstack-nova-consoleauth start # service openstack-nova-novncproxy start
- OpenStack Block Storage
# service openstack-cinder-api stop # service openstack-cinder-scheduler stop # cinder-manage db sync # service openstack-cinder-api start # service openstack-cinder-scheduler start
The controller node update is complete. Now you can upgrade the compute nodes.
Upgrade packages on the compute nodes to Havana:
# yum upgrade
Note | |
---|---|
Make sure you have removed the repository for Grizzly packages and added the repository for Havana packages. |
Install the OpenStack SELinux package on the compute nodes:
# yum install openstack-selinux
Restart compute services:
# service openstack-nova-compute restart # service openstack-nova-network restart # service openstack-nova-metadata-api restart
Upgrade packages on the storage nodes to Havana:
# yum upgrade
Note | |
---|---|
Make sure you have removed the repository for Grizzly packages and added the repository for Havana packages. |
Install the OpenStack SELinux package on the storage nodes:
# yum install openstack-selinux
Restart Block Storage services:
# service openstack-cinder-volume restart