Skip to content

Commit d72f151

Browse files
mgr/cephadm: do not delete smb fs cephx keys
This change effectively disables fencing for the smb service because the previous attempt to implement fencing would destroy the only cephx key. Deleting this key would prevent any smb service part of the logical cluster from talking to cephfs, even ones that were not to be fenced. The whole concept of fencing and ranks needs a bit of a rethink in regards to smb. For now, we're just going to rely on ctdb and not cephadm for smb's HA. Fixes: 6030036 Signed-off-by: John Mulligan <[email protected]>
1 parent b8d02eb commit d72f151

File tree

1 file changed

+4
-7
lines changed
  • src/pybind/mgr/cephadm/services

1 file changed

+4
-7
lines changed

src/pybind/mgr/cephadm/services/smb.py

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -34,11 +34,9 @@ def ranked(self, spec: ServiceSpec) -> bool:
3434
return 'clustered' in smb_spec.features
3535

3636
def fence(self, daemon_id: str) -> None:
37-
logger.info(f'Fencing old smb.{daemon_id}')
38-
ret, out, err = self.mgr.mon_command({
39-
'prefix': 'auth rm',
40-
'entity': f'client.smb.fs.cluster.{daemon_id}',
41-
})
37+
# ... but fencing still wont do anything real, because we
38+
# do not have per-service keys. but logging is fun
39+
logger.debug('Will not fence key for smb cluster %r', daemon_id)
4240

4341
def fence_old_ranks(
4442
self,
@@ -47,11 +45,11 @@ def fence_old_ranks(
4745
num_ranks: int,
4846
) -> None:
4947
smb_spec = cast(SMBSpec, spec)
48+
logger.info('Fencing called for smb.%s', smb_spec.cluster_id)
5049
for rank, m in list(rank_map.items()):
5150
if rank >= num_ranks:
5251
for daemon_id in m.values():
5352
if daemon_id is not None:
54-
logger.info(f'Fencing old smb.{smb_spec.cluster_id}')
5553
self.fence(smb_spec.cluster_id)
5654
del rank_map[rank]
5755
self.mgr.spec_store.save_rank_map(spec.service_name(), rank_map)
@@ -60,7 +58,6 @@ def fence_old_ranks(
6058
for gen, daemon_id in list(m.items()):
6159
if gen < max_gen:
6260
if daemon_id is not None:
63-
logger.info(f'Fencing old smb.{smb_spec.cluster_id}')
6461
self.fence(smb_spec.cluster_id)
6562
del rank_map[rank][gen]
6663
self.mgr.spec_store.save_rank_map(spec.service_name(), rank_map)

0 commit comments

Comments
 (0)