~jujudocs/clouddocs/trunk

« back to all changes in this revision

Viewing changes to Admin/Upgrading-and-Patching-OpenStack.md

  • Committer: evilnick
  • Date: 2014-05-15 15:33:10 UTC
  • Revision ID: nick.veitch@canonical.com-20140515153310-n7tcdu0c1u4yt57l
finalising

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
Title: Upgrading and Patching - OpenStack
2
 
Status: In Progress
3
 
 
4
 
# Upgrading and Patching - OpenStack
5
 
 
6
 
## Introduction
7
 
 
8
 
**TODO**
9
 
 
10
 
## Scope
11
 
 
12
 
**TODO**
13
 
 
14
 
## Upgrading
15
 
 
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.
21
 
 
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.
25
 
 
26
 
Before starting the upgrade you should:
27
 
 
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.
33
 
 
34
 
The following upgrade tasks follow the same procedure for each component:
35
 
 
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.
42
 
 
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.
46
 
 
47
 
The following order for service upgrades seems the most successful:
48
 
 
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.
54
 
 
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
59
 
the cost.
60
 
 
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 
68
 
  with many nodes.
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.
76
 
 
77
 
**TODO** Add more concrete description here.
78
 
 
79
 
## Patching
80
 
 
81
 
**TODO**