public inbox for pve-devel@lists.proxmox.com
 help / color / mirror / Atom feed
* [PATCH manager 0/5] ceph: add 'pveceph upgrade-check' subcommand
@ 2026-04-28  2:45 Kefu Chai
  2026-04-28  2:45 ` [PATCH manager 1/5] pve8to9: extract ceph checks into PVE::Ceph::UpgradeCheck Kefu Chai
                   ` (4 more replies)
  0 siblings, 5 replies; 6+ messages in thread
From: Kefu Chai @ 2026-04-28  2:45 UTC (permalink / raw)
  To: pve-devel

Hi all,

this series grew out of a chat with Shannon about how easy it is for
upgraded Ceph clusters to silently miss out on features unlocked by
later releases. After a Ceph upgrade, two OSDmap settings often stay
at their old values, and admins forget to bump them:

- require_osd_release: leaving this behind blocks OSD-side features
  the new release would otherwise enable. We warn if it is behind the
  running version.
  https://docs.ceph.com/en/latest/rados/operations/require-osd-release/

- require_min_compat_client: bumping this unlocks newer on-map
  features like pg-upmap-primary and the read-balancer, but it's a
  one-way change that excludes older clients on enable of any
  dependent feature. We notice (not warn) and walk the operator
  through 'ceph features' first, so they don't lock anyone out by
  accident.
  https://docs.ceph.com/en/latest/rados/operations/require-min-compat-client/

Both checks are advisory only. Shannon and I agreed that turning these
knobs on the operator's behalf during an unattended upgrade would be a
show-stopper, so we just nudge.

While I was in there, I also added a 'pveceph upgrade-check' subcommand
so operators can run a Ceph sanity check without having to wade through
the full pve8to9 output. Ceph upgrades can happen multiple times across
a PVE major-release cycle, and the standalone command makes more sense
for that cadence.

The plumbing: a new PVE::Ceph::UpgradeCheck module returns structured
{ level, msg } records, so 'pveceph upgrade-check' and the pve8to9
"CHECKING HYPER-CONVERGED CEPH STATUS" section share the same checks
through their own log helpers. Patch 1 is a pure refactor of pve8to9's
check_ceph() into the new module, byte-diff verified on a real cluster
to make sure pve8to9 emits the same messages in the same order.

Tested on a live PVE 9 / Ceph Squid cluster: pve8to9 output is
byte-identical before/after the refactor (modulo the
require_min_compat_client message wording this series polishes), and
'pveceph upgrade-check' fires both the positive case
(require_osd_release == squid) and the negative case
(require_min_compat_client == luminous) correctly. Summary line counts
match the records emitted.

A pve-docs follow-up for the new subcommand will land separately once
this patchset gets merged.

Thanks!

Kefu Chai (5):
  pve8to9: extract ceph checks into PVE::Ceph::UpgradeCheck
  ceph: add pveceph upgrade-check command
  ceph: add require_osd_release upgrade check
  ceph: add require_min_compat_client upgrade check
  ceph: drop duplicate release-to-codename map in upgrade checks

 PVE/CLI/pve8to9.pm       | 203 ++----------------
 PVE/CLI/pveceph.pm       |  45 ++++
 PVE/Ceph/Makefile        |   1 +
 PVE/Ceph/Releases.pm     |  14 ++
 PVE/Ceph/Tools.pm        |   6 +
 PVE/Ceph/UpgradeCheck.pm | 441 +++++++++++++++++++++++++++++++++++++++
 6 files changed, 527 insertions(+), 183 deletions(-)
 create mode 100644 PVE/Ceph/UpgradeCheck.pm

-- 
2.47.3





^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2026-04-28  2:46 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-04-28  2:45 [PATCH manager 0/5] ceph: add 'pveceph upgrade-check' subcommand Kefu Chai
2026-04-28  2:45 ` [PATCH manager 1/5] pve8to9: extract ceph checks into PVE::Ceph::UpgradeCheck Kefu Chai
2026-04-28  2:45 ` [PATCH manager 2/5] ceph: add pveceph upgrade-check command Kefu Chai
2026-04-28  2:45 ` [PATCH manager 3/5] ceph: add require_osd_release upgrade check Kefu Chai
2026-04-28  2:45 ` [PATCH manager 4/5] ceph: add require_min_compat_client " Kefu Chai
2026-04-28  2:45 ` [PATCH manager 5/5] ceph: drop duplicate release-to-codename map in upgrade checks Kefu Chai

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal