Document procedure to downgrade a cluster
authorBernardo Dal Seno <bdalseno@google.com>
Wed, 3 Apr 2013 15:38:58 +0000 (17:38 +0200)
committerBernardo Dal Seno <bdalseno@google.com>
Thu, 4 Apr 2013 09:14:39 +0000 (11:14 +0200)
This is based on the --donwgrade option of cfgupgrade, first introduced in
1709435e.

Signed-off-by: Bernardo Dal Seno <bdalseno@google.com>
Reviewed-by: Guido Trotter <ultrotter@google.com>

NEWS
UPGRADE
doc/admin.rst

diff --git a/NEWS b/NEWS
index 09fc29e..b2c3466 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -18,6 +18,8 @@ Version 2.8.0 beta1
   are currently used by instances. The order of storage types will be based
   on Ganeti's history of supporting them. In the future, the first entry of
   the list will be used as a default storage type on instance creation.
+- ``cfgupgrade`` now supports a ``--downgrade`` option to bring the
+  configuration back to the previous stable version.
 
 
 Version 2.7.0 beta1
diff --git a/UPGRADE b/UPGRADE
index 02157d5..a1d21e7 100644 (file)
--- a/UPGRADE
+++ b/UPGRADE
@@ -71,6 +71,71 @@ To run commands on all nodes, the `distributed shell (dsh)
 
     $ gnt-cluster verify
 
+Reverting an upgrade
+~~~~~~~~~~~~~~~~~~~~
+
+For going back between revisions (e.g. 2.1.1 to 2.1.0) no manual
+intervention is required, as for upgrades.
+
+Starting from version 2.8, ``cfgupgrade`` supports ``--downgrade``
+option to bring the configuration back to the previous stable version.
+This is useful if you upgrade Ganeti and after some time you run into
+problems with the new version. You can downgrade the configuration
+without losing the changes made since the upgrade. Any feature not
+supported by the old version will be removed from the configuration, of
+course, but you get a warning about it. If there is any new feature and
+you haven't changed from its default value, you don't have to worry
+about it, as it will get the same value whenever you'll upgrade again.
+
+The procedure is similar to upgrading, but please notice that you have to
+revert the configuration **before** installing the old version.
+
+#. Ensure no jobs are running (master node only)::
+
+    $ gnt-job list
+
+#. Pause the watcher for an hour (master node only)::
+
+    $ gnt-cluster watcher pause 1h
+
+#. Stop all daemons on all nodes::
+
+    $ /etc/init.d/ganeti stop
+
+#. Backup old configuration (master node only)::
+
+    $ tar czf /var/lib/ganeti-$(date +\%FT\%T).tar.gz -C /var/lib ganeti
+
+#. Run cfgupgrade on the master node::
+
+    $ /usr/lib/ganeti/tools/cfgupgrade --verbose --downgrade --dry-run
+    $ /usr/lib/ganeti/tools/cfgupgrade --verbose --downgrade
+
+   You may want to copy all the messages about features that have been
+   removed during the downgrade, in case you want to restore them when
+   upgrading again.
+
+#. Install the old Ganeti version on all nodes
+#. Restart daemons on all nodes::
+
+    $ /etc/init.d/ganeti restart
+
+#. Re-distribute configuration (master node only)::
+
+    $ gnt-cluster redist-conf
+
+#. Restart daemons again on all nodes::
+
+    $ /etc/init.d/ganeti restart
+
+#. Enable the watcher again (master node only)::
+
+    $ gnt-cluster watcher continue
+
+#. Verify cluster (master node only)::
+
+    $ gnt-cluster verify
+
 
 2.0 releases
 ------------
index a458a0f..4eb51c5 100644 (file)
@@ -1564,7 +1564,8 @@ cfgupgrade
 ++++++++++
 
 The ``cfgupgrade`` tools is used to upgrade between major (and minor)
-Ganeti versions. Point-releases are usually transparent for the admin.
+Ganeti versions, and to roll back. Point-releases are usually
+transparent for the admin.
 
 More information about the upgrade procedure is listed on the wiki at
 http://code.google.com/p/ganeti/wiki/UpgradeNotes.