Ceph Pacific -> Quincy Upgrade Results in Octopus Mons
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Ceph Monitor Charm |
Fix Committed
|
Undecided
|
Unassigned |
Bug Description
We use Juju Ceph and Kolla Ansible Openstack, deployed Pacific to Focal using Juju + Maas, threw a Xena Kolla deployment atop it, QA'd, and then proceeded to upgrade Ceph to Quincy per the upgrade guide (charms -> OS -> Ceph).
After following the upgrade procedure (including OS), all ceph components now show as Quincy _except for the mons_ which somehow Show 15.2.0 Octopus from `ceph -v` in the mon LXDs despite the Charm channel clearly showing stable/quincy. All charms were upgraded using the new syntax: `juju refresh --switch ch:ceph-mon --channel quincy/stable ceph-mon`.
Debugging problem here is in that i dont know if the original Juju bundle installed Octopus (it has always deployed Pacific previously, maybe new Juju version changed something?) instead of Pacific for the mons despite the YAML of the original deployment being:
```
applications:
ceph-mon:
charm: ch:ceph-mon
channel: pacific/stable
```
Ceph seems to be working according to the CLI, but this doesn't seem safe/proper/sane.
1. How do i get Ceph into a consistent state of all-quincy? (refreshing again tells me the charms are up to date)
2. How in the world does this even happen when there was no Octopus deployment in play whatsoever?
Changed in charm-ceph-mon: | |
status: | New → Confirmed |
Digging into the logs of the upgrade (juju refresh --switch ch:ceph-mon --channel quincy/stable ceph-mon), it's clearly confused: mon/1.juju- log old_version: octopus mon/1.juju- log new_version: octopus mon/1.juju- log Invalid upgrade path from octopus to octopus. Valid paths are: ['firefly -> hammer', 'hammer -> jewel', 'jewel -> luminous', 'luminous -> mimic', 'mimic -> nautilus', 'nautilus -> octopus', 'octopus -> pacific', 'pacific -> quincy']
```
unit-ceph-mon-1: 17:35:09 INFO unit.ceph-
unit-ceph-mon-1: 17:35:09 INFO unit.ceph-
unit-ceph-mon-1: 17:35:09 ERROR unit.ceph-
```
Trying to force an upgrade to Pacific via `juju refresh --switch ch:ceph-mon --channel pacific/stable ceph-mon` STILL produces the same output: mon/2.juju- log old_version: octopus mon/2.juju- log new_version: octopus mon/2.juju- log Invalid upgrade path from octopus to octopus. Valid paths are: ['firefly -> hammer', 'hammer -> jewel', 'jewel -> luminous', 'luminous -> mimic', 'mimic -> nautilus', 'nautilus -> octopus']
```
unit-ceph-mon-2: 17:36:53 INFO unit.ceph-
unit-ceph-mon-2: 17:36:53 INFO unit.ceph-
unit-ceph-mon-2: 17:36:53 ERROR unit.ceph-
```
The host OS' are all now on Jammy (per the upgrade docs, MaaS deployed them at Focal) but these LXDs are stuck on Focal according to their internal /etc/lsb-release and apparently using that distro's native packages internally: juju-70c262- 0-lxd-0: ~$ dpkg -l|grep ceph 0ubuntu0. 20.04.3 amd64 distributed storage and file system 0ubuntu0. 20.04.3 amd64 common ceph daemon libraries and management tools 0ubuntu0. 20.04.3 amd64 common utilities to mount and interact with a ceph storage cluster 0ubuntu0. 20.04.3 amd64 metadata server for the ceph distributed file system 0ubuntu0. 20.04.3 amd64 manager for the ceph distributed file system modules- core 15.2.17- 0ubuntu0. 20.04.3 all ceph manager modules which are always enabled 0ubuntu0. 20.04.3 amd64 monitor server for the ceph storage system 0ubuntu0. 20.04.3 amd64 OSD server for the ceph storage system 0ubuntu0. 20.04.3 amd64 Ceph distributed file system client library ceph-argparse 15.2.17- 0ubuntu0. 20.04.3 amd64 Python 3 utility libraries for Ceph CLI 0ubuntu0. 20.04.3 all Python 3 utility libraries for Ceph 0ubuntu0. 20.04.3 amd64 Python 3 libraries for the Ceph libcephfs library
```
ubuntu@
ii ceph 15.2.17-
ii ceph-base 15.2.17-
ii ceph-common 15.2.17-
ii ceph-mds 15.2.17-
ii ceph-mgr 15.2.17-
ii ceph-mgr-
ii ceph-mon 15.2.17-
ii ceph-osd 15.2.17-
ii libcephfs2 15.2.17-
ii python3-
ii python3-ceph-common 15.2.17-
ii python3-cephfs 15.2.17-
```
I'm starting to think that Juju3 might not play well with things that Juju 2.x executed perfectly well. :-\