mon,mds: map mds daemons to a particular fs#32015
Conversation
|
On the other hand, would it work to treat the mds as something unrelated to the fs? Similar to the relationship between osds and pools? |
I think that would work if the MDS could multiplex multiple file systems and manage resources accordingly, but it can't do that. Today, daemons for different volumes will be given different amounts of memory and may be tuned differently, have different settings applied, etc. |
|
retest this please |
Then, 👍 for pinning to a particular mds |
I think the fscid mapping is right. The fix should be that the periodic beacons may update |
|
For posterity, the CDM etherpad: https://pad.ceph.com/p/mds-affinity |
src/common/options.cc
Outdated
| .set_flag(Option::FLAG_NO_MON_UPDATE) | ||
| .set_description("path to MDS data and keyring"), | ||
|
|
||
| Option("mds_fs", Option::TYPE_STR, Option::LEVEL_ADVANCED) |
There was a problem hiding this comment.
I think this option name is not clear enough. What about mds_affinity_fs?
There was a problem hiding this comment.
mds_prefer_fs? mds_force_fs? That way it reads as verb+noun and not a string of 3 nouns.
There was a problem hiding this comment.
How about mds_join_fs which is consistent with other names we use like the joinable fs flag.
There was a problem hiding this comment.
ah, just saw this. works for me!
src/messages/MMDSBeacon.h
Outdated
| void set_health(const MDSHealth &h) { health = h; } | ||
|
|
||
| const string& get_fs() const { return fs; } | ||
| void set_fs(const string& s) { fs = s; } |
There was a problem hiding this comment.
void set_fs(std::string_view s)
b7af858 to
cf499e8
Compare
|
repushed
...except we don't actually factor this in yet when assigning the standby. I didn't rename the option yet either, what say ye? |
cf499e8 to
4d79dad
Compare
4d79dad to
e99a8e4
Compare
|
@batrick this should now be complete, ready for review |
batrick
left a comment
There was a problem hiding this comment.
One missing piece I see is the forced replacement of actives if a standby is available for that fscid. Are you planning to do that in this PR or save it for a followup?
src/common/options.cc
Outdated
| .set_flag(Option::FLAG_NO_MON_UPDATE) | ||
| .set_description("path to MDS data and keyring"), | ||
|
|
||
| Option("mds_fs", Option::TYPE_STR, Option::LEVEL_ADVANCED) |
e99a8e4 to
cb5201e
Compare
Can you point me to the path you mean? |
Signed-off-by: Sage Weil <sage@redhat.com>
cb5201e to
7f6b71e
Compare
I'm referring to this proposal in the etherpad:
This PR simply prefers standbys with |
Signed-off-by: Sage Weil <sage@redhat.com>
Signed-off-by: Sage Weil <sage@redhat.com>
Signed-off-by: Sage Weil <sage@redhat.com>
Signed-off-by: Sage Weil <sage@redhat.com>
|
This PR should also add a pending release note and small blurb in |
7f6b71e to
ffe1aca
Compare
Signed-off-by: Sage Weil <sage@redhat.com>
|
Updated. Leaving the preemption of active MDSs for later. |
* refs/pull/32015/head: doc/cephfs/standby: document mds_join_fs mgr/cephadm: map mds daemons to a particular fs mon/MDSMonitor: respect mfs fscid preference mon/MDSMonitor: assign standbys to their preferred fscid mds/FSMap: track preferred fscid for standby daemons mds: add mds_join_fs option; pass via MMDSBeacon Reviewed-by: Patrick Donnelly <pdonnell@redhat.com>
* refs/pull/32015/head: doc/cephfs/standby: document mds_join_fs mgr/cephadm: map mds daemons to a particular fs mon/MDSMonitor: respect mfs fscid preference mon/MDSMonitor: assign standbys to their preferred fscid mds/FSMap: track preferred fscid for standby daemons mds: add mds_join_fs option; pass via MMDSBeacon Reviewed-by: Patrick Donnelly <pdonnell@redhat.com>
mds_fsoption to map an mds to a particular fs