I’m on a mobile phone right now, I can’t go into much detail right now. But I don’t think it’s necessary to rebuild an entire node, just a mgr. otherwise you risk cluster integrity if you redeploy a mon as well with a newer image. I’ll respond later in more detail. Zitat von Malte Stroem <malte.stroem@gmail.com>:
Well, thank you, Eugen. That is what I planned to do.
Rebuild the broken node and start a MON and a MGR there with the latest images. Then I will stop the other MGRs and have a look if it's working.
But I would like to know if I could replace the cephadm on one running node, stop the MGR and deploy a new MGR on that node with this:
https://docs.ceph.com/en/latest/cephadm/troubleshooting/#manually-deploying-...
cephadm --image <container-image> deploy --fsid <fsid> --name mgr.hostname.smfvfd --config-json config-json.json
And I still do not know what places cephadm... under /var/lib/ceph/fsid.
Does that happen when I enable the orchestrator in the MGR?
And can I replace that cephadm by hand?
Best, Malte
On 18.10.24 12:11, Eugen Block wrote:
Okay, then I misinterpreted your former statement:
I think there are entries of the OSDs from the broken node we removed.
So the stack trace in the log points to the osd_remove_queue, but I don't understand why it's empty. Is there still some OSD removal going on or something? Did you paste your current cluster status already? You could probably try starting a Squid mgr daemon by replacing the container image in the unit.run file and see how that goes.
Zitat von Malte Stroem <malte.stroem@gmail.com>:
Hello Eugen,
thanks a lot. However:
ceph config-key get mgr/cephadm/osd_remove_queue
is empty!
Damn.
So should I get a new cephadm with the diff included?
Best, Malte
On 17.10.24 23:48, Eugen Block wrote:
Save the current output to a file:
ceph config-key get mgr/cephadm/osd_remove_queue > remove_queue.json
Then remove the original_weight key from the json and set the modified key again with: ceph config-key set … Then fail the mgr.
Zitat von Malte Stroem <malte.stroem@gmail.com>:
Hello Frederic, Hello Eugen,
yes, but I am not sure how to do it.
The links says:
the config-key responsible was mgr/cephadm/osd_remove_queue
This is what it looked like before. After removing the original_weight field and setting the variable again, the cephadm module loads and orch works.
So now: Do I remove the value of mgr/cephadm/osd_remove_queue?
Or:
What is meant by:
"After removing the original_weight field and setting the variable again, the cephadm module loads and orch works."
I can enter a MGR's container and open the file:
/usr/share/ceph/mgr/cephadm/services/osd.py
But what is meant by "removing the original_weight field and setting the variable again" and what JSON do you mean, Eugen?
osd_obj = OSD.from_json(osd, rm_util=self.rm_util)
Code looks like this:
def load_from_store(self) -> None: with self.lock: for k, v in self.mgr.get_store_prefix('osd_remove_queue').items(): for osd in json.loads(v): logger.debug(f"Loading osd ->{osd} from store") osd_obj = OSD.from_json(osd, rm_util=self.rm_util) if osd_obj is not None: self.osds.add(osd_obj)
I am a bit lost here.
Best, Malte
On 17.10.24 21:50, Eugen Block wrote:
I appreciate your kind words. 😎🙂 Frederics link has the correct answer, remove the respective field from the json.
Zitat von Malte Stroem <malte.stroem@gmail.com>:
> You're so cool, Eugen. Somehow you seem to find out everything. > > Yes, this seems to be the issue and I suspected a bug there. > > Looking here: > > https://github.com/ceph/ceph/blob/main/src/pybind/mgr/cephadm/ > services/osd.py > > The diff is included in the code. > > What can I do now? Get the latest cephadm and put it on the node? > > What about the cephadm under /var/lib/ceph/fsid? > > I am not sure how to continue. > > I would download the latest cephadm and put it under /usr/sbin. > > Then disable the module with > > ceph mgr module disable cephadm > > and enable it > > ceph mgr module enable cephadm > > Best, > Malte > > On 17.10.24 19:20, Eugen Block wrote: >> Oh why didn’t you mention earlier that you removed OSDs? 😄 it >> sounds like this one: >> >> https://tracker.ceph.com/issues/67329 >> >> Zitat von Malte Stroem <malte.stroem@gmail.com>: >> >>> Hello Redouane, >>> >>> thank you. Interesting. >>> >>> ceph config-key dump >>> >>> shows about 42000 lines. >>> >>> What can I search for? Something with OSDs. >>> >>> But there are thousands of entries. >>> >>> And if I find something, how can I fix that? >>> >>> I think there are entries of the OSDs from the broken node >>> we removed. >>> >>> Best, >>> Malte >>> >>> On 17.10.24 17:46, Redouane Kachach wrote: >>>> So basically it's failing here: >>>> >>>>> self.to_remove_osds.load_from_store() >>>> >>>> This function is responsible of loading Specs from the mon- >>>> store. The >>>> information is stored in json format and it seems the >>>> stored json for the OSD(s) is not valid for some reason. >>>> You can see what's >>>> stored in the mon-store by running: >>>> >>>>> ceph config-key dump >>>> >>>> Don't share the information publicly here especially if it's a >>>> production cluster as it may have sensitive information >>>> about your cluster. >>>> >>>> Best, >>>> Redo. >>>> >>>> >>>> >>>> >>>> >>>> >>>> On Thu, Oct 17, 2024 at 5:04 PM Malte Stroem >>>> <malte.stroem@gmail.com> wrote: >>>> >>>>> Thanks Eugen & Redouane, >>>>> >>>>> of course I tried enabling and disabling the cephadm >>>>> module for the MGRs. >>>>> >>>>> Running ceph mgr module enable cephadm produces this >>>>> output in the MGR log: >>>>> >>>>> -1 mgr load Failed to construct class in 'cephadm' >>>>> -1 mgr load Traceback (most recent call last): >>>>> File "/usr/share/ceph/mgr/cephadm/module.py", line 619, >>>>> in __init__ >>>>> self.to_remove_osds.load_from_store() >>>>> File "/usr/share/ceph/mgr/cephadm/services/osd.py", line 922, in >>>>> load_from_store >>>>> for osd in json.loads(v): >>>>> File "/lib64/python3.9/json/__init__.py", line 346, in loads >>>>> return _default_decoder.decode(s) >>>>> File "/lib64/python3.9/json/decoder.py", line 337, in decode >>>>> obj, end = self.raw_decode(s, idx=_w(s, 0).end()) >>>>> File "/lib64/python3.9/json/decoder.py", line 355, in raw_decode >>>>> raise JSONDecodeError("Expecting value", s, >>>>> err.value) from None >>>>> json.decoder.JSONDecodeError: Expecting value: line 1 >>>>> column 1 (char 0) >>>>> >>>>> >>>>> -1 mgr operator() Failed to run module in active mode ('cephadm') >>>>> >>>>> This comes from inside the MGR container because it's >>>>> Python3.9. On the >>>>> hosts it'S Python3.11. >>>>> >>>>> I think of redeploying an MGR. >>>>> >>>>> Can I stop the existing MGRs? >>>>> >>>>> Redeploying with ceph orch does not work of course, but I >>>>> think this >>>>> will work: >>>>> >>>>> >>>>> https://docs.ceph.com/en/latest/cephadm/troubleshooting/ >>>>> #manually- deploying-a-manager-daemon >>>>> >>>>> because cephadm standalone is working. Crazy as it sounds. >>>>> >>>>> What do you think? >>>>> >>>>> Best, >>>>> Malte >>>>> >>>>> On 17.10.24 12:49, Eugen Block wrote: >>>>>> Hi, >>>>>> >>>>>> if you just execute cephadm commands, those are issued >>>>>> locally on the >>>>>> hosts, they won't confirm an orchestrator issue immediately. >>>>>> What does the active MGR log? It could show a stack trace or error >>>>>> messages which could point to a root cause. >>>>>> >>>>>>> What about the cephadm files under /var/lib/ceph/fsid? >>>>>>> Can I replace >>>>>>> the latest? >>>>>> >>>>>> Those are the cephadm versions the orchestrator actually >>>>>> uses, it will >>>>>> just download them again from your registry (or upstream). >>>>>> Can you share: >>>>>> >>>>>> ceph -s >>>>>> ceph versions >>>>>> MGR logs (active MGR) >>>>>> >>>>>> Thanks, >>>>>> Eugen >>>>>> >>>>>> Zitat von Malte Stroem <malte.stroem@gmail.com>: >>>>>> >>>>>>> Hello, >>>>>>> >>>>>>> I am still struggling here and do not know the root >>>>>>> cause of this issue. >>>>>>> >>>>>>> Searching the list I found lots of people who had the same or a >>>>>>> similar problem the last years. >>>>>>> >>>>>>> However there is no solution four our cluster. >>>>>>> >>>>>>> Disabling and enabling the cephadm module does not work. >>>>>>> There are no >>>>>>> error messages. When we run "ceph orch..." we get the >>>>>>> error message: >>>>>>> >>>>>>> Error ENOENT: No orchestrator configured (try `ceph orch >>>>>>> set backend`) >>>>>>> >>>>>>> But every single cephadm command works! >>>>>>> >>>>>>> cephadm ls for example. >>>>>>> >>>>>>> Stopping and restarting the MGRs did not help. Removing the .asok >>>>>>> files did not help. >>>>>>> >>>>>>> I think of stopping both MGRs and trying to deploy a new >>>>>>> MGR like this: >>>>>>> >>>>>>> https://docs.ceph.com/en/latest/cephadm/troubleshooting/ >>>>>>> #manually- >>>>>>> deploying-a-manager-daemon >>>>>>> >>>>>>> How could I find the root cause? Is the cephadm somehow broken? >>>>>>> >>>>>>> What about the cephadm files under /var/lib/ceph/fsid? >>>>>>> Can I replace >>>>>>> the latest? >>>>>>> >>>>>>> Best, >>>>>>> Malte >>>>>>> >>>>>>> On 16.10.24 14:54, Malte Stroem wrote: >>>>>>>> Hi Laimis, >>>>>>>> >>>>>>>> that did not work. Still ceph orch does not work. >>>>>>>> >>>>>>>> Best, >>>>>>>> Malte >>>>>>>> >>>>>>>> On 16.10.24 14:12, Malte Stroem wrote: >>>>>>>>> Thank you, Laimis. >>>>>>>>> >>>>>>>>> And you got the same error message? That's strange. >>>>>>>>> >>>>>>>>> In the mean time I try to check for clients connected. >>>>>>>>> No Kubernetes >>>>>>>>> and CephFS, but RGWs. >>>>>>>>> >>>>>>>>> Best, >>>>>>>>> Malte >>>>>>>>> >>>>>>>>> On 16.10.24 14:01, Laimis Juzeliūnas wrote: >>>>>>>>>> Hi Malte, >>>>>>>>>> >>>>>>>>>> We have faced this recently when upgrading to Squid >>>>>>>>>> from latest Reef. >>>>>>>>>> As a temporary workaround we disabled the balancer with ‘ceph >>>>>>>>>> balancer off’ and restarted mgr daemons. >>>>>>>>>> We are suspecting older clients (from Kubernetes RBD >>>>>>>>>> mounts as well >>>>>>>>>> as CephFS mounts) on servers with incompatible client >>>>>>>>>> versions but >>>>>>>>>> are yet to dig through it. >>>>>>>>>> >>>>>>>>>> Best, >>>>>>>>>> Laimis J. >>>>>>>>>> >>>>>>>>>>> On 16 Oct 2024, at 14:57, Malte Stroem >>>>>>>>>>> <malte.stroem@gmail.com> >>>>>>>>>>> wrote: >>>>>>>>>>> >>>>>>>>>>> Error ENOENT: No orchestrator configured (try `ceph orch set >>>>>>>>>>> backend`) >>>>>>>>>> >>>>>>>>>> _______________________________________________ >>>>>>>>>> ceph-users mailing list -- ceph-users@ceph.io >>>>>>>>>> To unsubscribe send an email to ceph-users-leave@ceph.io >>>>>>>>> _______________________________________________ >>>>>>>>> ceph-users mailing list -- ceph-users@ceph.io >>>>>>>>> To unsubscribe send an email to ceph-users-leave@ceph.io >>>>>>>> _______________________________________________ >>>>>>>> ceph-users mailing list -- ceph-users@ceph.io >>>>>>>> To unsubscribe send an email to ceph-users-leave@ceph.io >>>>>>> _______________________________________________ >>>>>>> ceph-users mailing list -- ceph-users@ceph.io >>>>>>> To unsubscribe send an email to ceph-users-leave@ceph.io >>>>>> >>>>>> >>>>>> _______________________________________________ >>>>>> ceph-users mailing list -- ceph-users@ceph.io >>>>>> To unsubscribe send an email to ceph-users-leave@ceph.io >>>>> >>>>> >>>> _______________________________________________ >>>> ceph-users mailing list -- ceph-users@ceph.io >>>> To unsubscribe send an email to ceph-users-leave@ceph.io >>> _______________________________________________ >>> ceph-users mailing list -- ceph-users@ceph.io >>> To unsubscribe send an email to ceph-users-leave@ceph.io >> >> >> _______________________________________________ >> ceph-users mailing list -- ceph-users@ceph.io >> To unsubscribe send an email to ceph-users-leave@ceph.io
_______________________________________________ ceph-users mailing list -- ceph-users@ceph.io To unsubscribe send an email to ceph-users-leave@ceph.io
_______________________________________________ ceph-users mailing list -- ceph-users@ceph.io To unsubscribe send an email to ceph-users-leave@ceph.io
_______________________________________________ ceph-users mailing list -- ceph-users@ceph.io To unsubscribe send an email to ceph-users-leave@ceph.io