Project

General

Profile

Actions

Feature #41566

open

mds: support rolling upgrades

Added by Patrick Donnelly over 4 years ago. Updated almost 2 years ago.

Status:
In Progress
Priority:
Normal
Assignee:
Category:
-
Target version:
-
% Done:

0%

Source:
Development
Tags:
Backport:
Reviewed:
Affected Versions:
Component(FS):
MDS
Labels (FS):
Pull request ID:

Description

The MDS currently does not support rolling upgrades. Normally we recommend upgrading all MDS at the same time for this reason. We also have an unfortunately complex upgrade procedure [1] to deal with the CompatSet changing in the FSMap. Old MDSs will kill themselves if they see a CompatSet they are incompatible with. Another issue is that any bump or difference to the CEPH_MDS_PROTOCOL will cause MDSs to not be able to talk to each other.

Now that MDS messages are now versioned (#12107), this puts us closer to supporting rolling upgrades. The next steps are to:

- Guarantee (via code) that there are no unversioned inter-MDS messages: #41565
- Use some kind of feature bit-vector (maybe feature_bitset_t) to gate the use of new features by a newer MDS until all MDS have the same bit-vector. This is similar to what we do with OSDs and require_osd_release. This should prevent the version upgrade of on-disk metadata and newer versions of inter-MDS messages.
- Testing for rolling upgrades in the fs suite.

[1] https://docs.ceph.com/docs/master/cephfs/upgrading/


Related issues 5 (2 open3 closed)

Blocked by CephFS - Bug #41565: mds: detect MDS<->MDS messages that are not versionedResolvedJos Collin

Actions
Blocked by CephFS - Bug #44139: mds: check all on-disk metadata is versionedNew

Actions
Blocked by CephFS - Bug #44288: MDSMap encoder "ev" (extended version) is not checked for validity when decodingWon't FixJos Collin

Actions
Blocked by CephFS - Bug #46218: mds: Add inter MDS messages to the corpus and enforce versioningTriagedJos Collin

Actions
Blocked by CephFS - Bug #49720: mon/MDSMonitor: do not pointlessly kill standbys that are incompatible with current CompatSetResolvedPatrick Donnelly

Actions
Actions #1

Updated by Patrick Donnelly over 4 years ago

  • Blocked by Bug #41565: mds: detect MDS<->MDS messages that are not versioned added
Actions #2

Updated by Jos Collin over 4 years ago

  • Status changed from New to In Progress
Actions #3

Updated by Patrick Donnelly about 4 years ago

  • Target version changed from v15.0.0 to v16.0.0
Actions #4

Updated by Jos Collin about 4 years ago

  • Blocked by Bug #44139: mds: check all on-disk metadata is versioned added
Actions #5

Updated by Patrick Donnelly about 4 years ago

  • Tracker changed from Bug to Feature
Actions #6

Updated by Jos Collin about 4 years ago

  • Blocked by Bug #44288: MDSMap encoder "ev" (extended version) is not checked for validity when decoding added
Actions #7

Updated by Jos Collin almost 4 years ago

  • Blocked by Bug #46218: mds: Add inter MDS messages to the corpus and enforce versioning added
Actions #8

Updated by Patrick Donnelly over 3 years ago

  • Target version changed from v16.0.0 to v17.0.0
Actions #9

Updated by Patrick Donnelly about 3 years ago

  • Blocked by Bug #49720: mon/MDSMonitor: do not pointlessly kill standbys that are incompatible with current CompatSet added
Actions #11

Updated by Patrick Donnelly almost 2 years ago

  • Target version deleted (v17.0.0)
Actions

Also available in: Atom PDF