1
Title: Upgrading and Patching - OpenStack
4
# Upgrading and Patching - OpenStack
16
To upgrade an OpenStack cluster in one big step requires additional
17
hardware to setup and update cloud in addition to the productive one. This leads to a longer
18
outage while your cloud is in read-only mode, the state is transferred to the new
19
one, and the environments are switched. The preferred way to upgrade an OpenStack
20
cloud is the rolling upgrade of each system component, piece by piece.
22
Here you can choose between in-place and side-by-side upgrades. The first one needs
23
to shutdown the regarding component while you perform the upgrade. Be aware you
24
may have troubles in case of a rollback. To avoid this, utilize the side-by-side upgrade approach.
26
Before starting the upgrade you should:
28
- Perform some "cleaning" of the environment process to ensure a consistent state. For
29
example, instances not fully purged from the system after deletion may cause
30
indeterminate behavior.
31
- Read the release notes and documentation.
32
- Find incompatibilities between your versions.
34
The following upgrade tasks follow the same procedure for each component:
36
1. Configure the new worker.
37
1. Turn off the current worker. During this time, hide the downtime using a message
38
queue or a load balancer.
39
1. As described earlier, take a backup of the old worker for a rollback.
40
1. Copy the state of the current to the new worker.
41
1. Start up the new worker.
43
Now repeat these steps for each worker in an appropriate order. In case of a problem, it
44
should be easy to rollback as long as the former worker stays untouched. This is,
45
beside the shorter downtime, the most important advantage of the side-by-side upgrade.
47
The following order for service upgrades seems the most successful:
49
1. Upgrade the OpenStack Identity Service (Keystone).
50
1. Upgrade the OpenStack Image Service (Glance).
51
1. Upgrade OpenStack Compute (Nova), including networking components.
52
1. Upgrade OpenStack Block Storage (Cinder).
53
1. Upgrade the OpenStack dashboard.
55
These steps look very easy, but are still a complex procedure depending on your cloud
56
configuration. We recommend having a testing environment with a near-identical
57
architecture to your production system. This doesn't mean you should use the same
58
sizes and hardware. This method would be best, but quite expensive. However, there are ways to reduce
61
- Use your own cloud. The simplest place to start testing the next version of OpenStack
62
is by setting up a new environment inside your own cloud. This may seem odd—especially
63
the double virtualisation used in running compute nodes—but it's the fastest way to test your configuration.
64
- Use a public cloud. Especially because your own cloud is unlikely to have sufficient
65
space to scale test to the level of the entire cloud. Consider using a public cloud
66
to test the scalability limits of your cloud controller configuration. Most public
67
clouds bill by the hour, which means it can be inexpensive to perform even a test
69
- Make another storage endpoint on the same system. If you use an external storage plug-in
70
or shared file system with your cloud, in many cases it's possible to test that it
71
works by creating a second share or endpoint. This will enable you to test the system
72
before entrusting the new version onto your storage.
73
- Watch the network. Even with small-scale testing, it should be possible to determine
74
if something is going horribly wrong in inter component communication if you
75
look at the network packets and see too many.
77
**TODO** Add more concrete description here.