190 lines
No EOL
5.9 KiB
Markdown
190 lines
No EOL
5.9 KiB
Markdown
# Upgrading Ganeti 2.12 to 2.15 on Debian Jessie
|
|
|
|
I had 2.12 on debian jessie on three clusters so wanted to upgrade.
|
|
|
|
## apt sources
|
|
|
|
Get the correct backports on all nodes in the cluster.
|
|
|
|
```
|
|
# echo "deb http://cdn.debian.net/debian/ jessie-backports main" > /etc/apt/sources.list.d/jessie-backports.list
|
|
```
|
|
|
|
I also had to
|
|
|
|
```
|
|
rm /etc/apt/sources.list.d/wheezy-backports.list
|
|
rm /etc/apt/sources.list.d/ganeti.list
|
|
```
|
|
|
|
Update on all nodes, and you should have 2.15 staged.
|
|
|
|
```
|
|
# apt-get update
|
|
# apt-cache policy ganeti
|
|
ganeti:
|
|
Installed: 2.12.4-1+deb8u3
|
|
Candidate: 2.12.4-1+deb8u3
|
|
Version table:
|
|
2.15.2-1~bpo8+1 0
|
|
100 http://cdn.debian.net/debian/ jessie-backports/main amd64 Packages
|
|
*** 2.12.4-1+deb8u3 0
|
|
500 http://ftp.us.debian.org/debian/ jessie/main amd64 Packages
|
|
500 http://security.debian.org/ jessie/updates/main amd64 Packages
|
|
100 /var/lib/dpkg/status
|
|
```
|
|
|
|
## Get the binaries
|
|
|
|
Install new binaries on all nodes.
|
|
|
|
```
|
|
# apt-get install ganeti/jessie-backports
|
|
Reading package lists... Done
|
|
Building dependency tree
|
|
Reading state information... Done
|
|
Selected version '2.15.2-1~bpo8+1' (Debian Backports:jessie-backports [all]) for 'ganeti'
|
|
The following packages were automatically installed and are no longer required:
|
|
ganeti-2.12 ganeti-haskell-2.12 ganeti-htools-2.12 libdns-export100
|
|
libirs-export91 libisc-export95 libisccfg-export90
|
|
Use 'apt-get autoremove' to remove them.
|
|
The following extra packages will be installed:
|
|
ganeti-2.15 ganeti-haskell-2.15 ganeti-htools-2.15
|
|
Suggested packages:
|
|
ganeti-doc blktap-dkms molly-guard
|
|
The following NEW packages will be installed:
|
|
ganeti-2.15 ganeti-haskell-2.15 ganeti-htools-2.15
|
|
The following packages will be upgraded:
|
|
ganeti
|
|
1 upgraded, 3 newly installed, 0 to remove and 55 not upgraded.
|
|
Need to get 13.8 MB of archives.
|
|
After this operation, 117 MB of additional disk space will be used.
|
|
Do you want to continue? [Y/n]
|
|
```
|
|
|
|
And you should now see that 2.15 is current, though not yet running
|
|
|
|
```
|
|
# apt-cache policy ganeti
|
|
ganeti:
|
|
Installed: 2.15.2-1~bpo8+1
|
|
Candidate: 2.15.2-1~bpo8+1
|
|
Version table:
|
|
*** 2.15.2-1~bpo8+1 0
|
|
100 http://cdn.debian.net/debian/ jessie-backports/main amd64 Packages
|
|
100 /var/lib/dpkg/status
|
|
2.12.4-1+deb8u3 0
|
|
500 http://ftp.us.debian.org/debian/ jessie/main amd64 Packages
|
|
500 http://security.debian.org/ jessie/updates/main amd64 Packages
|
|
```
|
|
|
|
## Do the Upgrade
|
|
|
|
Note that you do not have to shutdown the running VMs.
|
|
|
|
Ensure that the job queue is drained first
|
|
|
|
```
|
|
# gnt-job list
|
|
ID Status Summary
|
|
```
|
|
|
|
If it is not empty, either cancel the jobs or, if desperate, hold your nose and
|
|
|
|
```
|
|
# rm /var/lib/ganeti/queue/job*
|
|
```
|
|
|
|
On the master node
|
|
|
|
```
|
|
# gnt-cluster upgrade --to 2.15
|
|
Draining queue
|
|
Pausing the watcher for one hour.
|
|
Stopping daemons on master node.
|
|
Stopping daemons everywhere.
|
|
Backing up configuration as /var/backups/ganeti1473770062.tar
|
|
Switching to version 2.15 on all nodes
|
|
Upgrading configuration
|
|
Ensuring directories everywhere.
|
|
Starting daemons everywhere.
|
|
Redistributing the configuration.
|
|
Restarting daemons everywhere.
|
|
Undraining the queue.
|
|
Running post-upgrade hooks
|
|
Unpausing the watcher.
|
|
Verifying cluster.
|
|
```
|
|
|
|
Note that it verified in secret. You may want to do so explicitly
|
|
|
|
```
|
|
# gnt-cluster verify
|
|
Submitted jobs 301175, 301176
|
|
Waiting for job 301175 ...
|
|
Tue Sep 13 12:38:33 2016 * Verifying cluster config
|
|
Tue Sep 13 12:38:33 2016 * Verifying cluster certificate files
|
|
Tue Sep 13 12:38:33 2016 * Verifying hypervisor parameters
|
|
Tue Sep 13 12:38:33 2016 * Verifying all nodes belong to an existing group
|
|
Waiting for job 301176 ...
|
|
Tue Sep 13 12:38:35 2016 * Verifying group 'default'
|
|
Tue Sep 13 12:38:35 2016 * Gathering data (2 nodes)
|
|
Tue Sep 13 12:38:35 2016 * Gathering information about nodes (2 nodes)
|
|
Tue Sep 13 12:38:41 2016 * Gathering disk information (2 nodes)
|
|
Tue Sep 13 12:39:05 2016 * Verifying configuration file consistency
|
|
Tue Sep 13 12:39:05 2016 * Verifying node status
|
|
Tue Sep 13 12:39:05 2016 * Verifying instance status
|
|
Tue Sep 13 12:39:05 2016 * Verifying orphan volumes
|
|
Tue Sep 13 12:39:05 2016 * Verifying N+1 Memory redundancy
|
|
Tue Sep 13 12:39:05 2016 * Other Notes
|
|
Tue Sep 13 12:39:05 2016 - NOTICE: 2 non-redundant instance(s) found.
|
|
Tue Sep 13 12:39:05 2016 * Hooks Results
|
|
```
|
|
|
|
Confirm which version is running
|
|
|
|
```
|
|
# ls -l /etc/ganeti/share
|
|
lrwxrwxrwx 1 root root 22 Sep 13 12:34 /etc/ganeti/share -> /usr/share/ganeti/2.15/
|
|
```
|
|
|
|
## Upgrade keys
|
|
|
|
On the master node
|
|
|
|
```
|
|
# gnt-cluster renew-crypto --new-ssh-keys --no-ssh-key-check
|
|
Updating certificates now. Running "gnt-cluster verify" is recommended after this operation.
|
|
This requires all daemons on all nodes to be restarted and may take
|
|
some time. Continue?
|
|
y/[n]/?: y
|
|
Tue Sep 13 12:41:01 2016 Renewing SSH keys
|
|
All requested certificates and keys have been replaced. Running "gnt-cluster verify" now is recommended.
|
|
```
|
|
|
|
## Verify
|
|
|
|
And, of course, always verify. On the master
|
|
|
|
```
|
|
# gnt-cluster verify
|
|
Tue Sep 13 12:41:54 2016 * Verifying cluster config
|
|
Tue Sep 13 12:41:54 2016 * Verifying cluster certificate files
|
|
Tue Sep 13 12:41:54 2016 * Verifying hypervisor parameters
|
|
Tue Sep 13 12:41:54 2016 * Verifying all nodes belong to an existing group
|
|
Waiting for job 301181 ...
|
|
Tue Sep 13 12:41:56 2016 * Verifying group 'default'
|
|
Tue Sep 13 12:41:56 2016 * Gathering data (2 nodes)
|
|
Tue Sep 13 12:41:57 2016 * Gathering information about nodes (2 nodes)
|
|
Tue Sep 13 12:42:03 2016 * Gathering disk information (2 nodes)
|
|
Tue Sep 13 12:43:04 2016 * Verifying configuration file consistency
|
|
Tue Sep 13 12:43:04 2016 * Verifying node status
|
|
Tue Sep 13 12:43:04 2016 * Verifying instance status
|
|
Tue Sep 13 12:43:05 2016 * Verifying orphan volumes
|
|
Tue Sep 13 12:43:05 2016 * Verifying N+1 Memory redundancy
|
|
Tue Sep 13 12:43:05 2016 * Other Notes
|
|
Tue Sep 13 12:43:05 2016 - NOTICE: 2 non-redundant instance(s) found.
|
|
Tue Sep 13 12:43:05 2016 * Hooks Results
|
|
```
|
|
|
|
And Bob's your uncle! |