Re: Huge HDD ceph monitor usage [EXT]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi all, I need to go back to a small piece of information:

> I was 3 mons, but i have 2 physical datacenters, one of them breaks with
> not short term fix, so i remove all osds and ceph mon (2 of them) and
> now i have only the osds of 1 datacenter with the monitor.

When I look at the data about pools and crush map, I don't see anything that is multi-site. Maybe the physical location was 2-site, but the crush rules don't reflect that. Consequently, the ceph cluster was configured single-site and will act accordingly when you loose 50% of it.

Quick interlude: when people recommend to add servers, they do not necessarily mean *new* servers. They mean you have to go to ground zero, dig out as much hardware as you can, drive it to the working site and make it rejoin the cluster.

A hypothesis. Assume we want to build a 2-site cluster (sites A and B) that can sustain the total loss of any 1 site, capacity at each site is equal (mirrored).

Short answer: this is not exactly possible due to the fact that you always need a qualified majority of monitors for quorum and you cannot distribute both, N MONs and a qualified majority evenly and simultaneously over 2 sites. We have already an additional constraint: site A will have 2 and site B 1 monitor. The condition is, that in case site A goes down the monitors from the site A can be rescued and moved to site B to restore data access. Hence, a loss of site A will imply temporary loss of service (Note that 2+2=4 MONs will not help, because now 3 MONs are required for a qualified majority; again MONs need to be rescued from the down site). If this constraint is satisfied, then one can configure pools as follows:

replicated: size 4, min_size 2, crush rule places 2 copies at each site
erasure coded: k+m with min_size=k+1, m even and m>=k+2, for example, k=2, m=4, crush rule places 3 shards at each site

With such a configuration, it is possible to sustain the loss of any one site if the monitors can be recovered from site A. Note that such EC pools will be very compute intense and have high latency (use option fast_read to get at least reasonable read speeds). Essentially, EC is not really suitable for multi-site redundancy, but the above EC set up will require a bit less capacity than 4 copies.

This setup can sustain the total loss of 1 site (minus MONs on site A) and will rebuild all data once a large enough second site is brought up again.

When I look at the information you posted, I see replication 3(2) and EC 5+2 pools, all having crush root default. I do not see any of these mandatory configurations, the sites are ignored in the crush rules. Hence, if you can't get material from the down site back up, you look at permanent data loss.

You may be able to recover some more data in the replicated pools by setting min_size=1 for some time. However, you will loose any writes that are on the other 2 but not on the 1 disk now used for recovery and it will certainly not recover PGs with all 3 copies on the down site. Therefore, I would not attempt this, also because for the EC pools, you will need to get hold of the hosts from the down site and re-integrate these into the cluster any ways. If you can't do this, the data is lost.

In the long run, given your crush map and rules, you either stop placing stuff at 2 sites, or you create a proper 2-site set-up and copy data over.

Best regards,
=================
Frank Schilder
AIT Risø Campus
Bygning 109, rum S14

________________________________________
From: Ing. Luis Felipe Domínguez Vega <luis.dominguez@xxxxxxxxx>
Sent: 28 October 2020 05:14:27
To: Eugen Block
Cc: Ceph Users
Subject:  Re: Huge HDD ceph monitor usage [EXT]

Well recovering not working yet... i was started 6 servers more and the
cluster not yet recovered.
Ceph status not show any recover progress

ceph -s                 : https://pastebin.ubuntu.com/p/zRQPbvGzbw/
ceph osd tree           : https://pastebin.ubuntu.com/p/sTDs8vd7Sk/
ceph osd df             : https://pastebin.ubuntu.com/p/ysbh8r2VVz/
ceph osd pool ls detail : https://pastebin.ubuntu.com/p/GRdPjxhv3D/
crush rules             : (ceph osd crush rule dump)
https://pastebin.ubuntu.com/p/cjyjmbQ4Wq/

El 2020-10-27 09:59, Eugen Block escribió:
> Your pool 'data_storage' has a size of 7 (or 7 chunks since it's
> erasure-coded) and the rule requires each chunk on a different host
> but you currently have only 5 hosts available, that's why the recovery
>  is not progressing. It's waiting for two more hosts. Unfortunately,
> you can't change the EC profile or the rule of that pool. I'm not sure
>  if it would work in the current cluster state, but if you can't add
> two more hosts (which would be your best option for recovery) it might
>  be possible to create a new replicated pool (you seem to have enough
> free space) and copy the contents from that EC pool. But as I said,
> I'm not sure if that would work in a degraded state, I've never tried
> that.
>
> So your best bet is to get two more hosts somehow.
>
>
>> pool 4 'data_storage' erasure profile desoft size 7 min_size 5
>> crush_rule 1 object_hash rjenkins pg_num 32 pgp_num 32  autoscale_mode
>> off last_change 154384 lfor 0/121016/121014 flags
>> hashpspool,ec_overwrites,selfmanaged_snaps stripe_width 16384
>> application rbd
>
>
> Zitat von "Ing. Luis Felipe Domínguez Vega" <luis.dominguez@xxxxxxxxx>:
>
>> Needed data:
>>
>> ceph -s                 : https://pastebin.ubuntu.com/p/S9gKjyZtdK/
>> ceph osd tree           : https://pastebin.ubuntu.com/p/SCZHkk6Mk4/
>> ceph osd df             : (later, because i'm waiting since 10
>> minutes and not output yet)
>> ceph osd pool ls detail : https://pastebin.ubuntu.com/p/GRdPjxhv3D/
>> crush rules             : (ceph osd crush rule dump)
>> https://pastebin.ubuntu.com/p/cjyjmbQ4Wq/
>>
>> El 2020-10-27 07:14, Eugen Block escribió:
>>>> I understand, but i delete the OSDs from CRUSH map, so ceph don't
>>>> wait for these OSDs, i'm right?
>>>
>>> It depends on your actual crush tree and rules. Can you share (maybe
>>> you already did)
>>>
>>> ceph osd tree
>>> ceph osd df
>>> ceph osd pool ls detail
>>>
>>> and a dump of your crush rules?
>>>
>>> As I already said, if you have rules in place that distribute data
>>> across 2 DCs and one of them is down the PGs will never recover even
>>> if you delete the OSDs from the failed DC.
>>>
>>>
>>>
>>> Zitat von "Ing. Luis Felipe Domínguez Vega"
>>> <luis.dominguez@xxxxxxxxx>:
>>>
>>>> I understand, but i delete the OSDs from CRUSH map, so ceph don't
>>>> wait for these OSDs, i'm right?
>>>>
>>>> El 2020-10-27 04:06, Eugen Block escribió:
>>>>> Hi,
>>>>>
>>>>> just to clarify so I don't miss anything: you have two DCs and one
>>>>> of
>>>>> them is down. And two of the MONs were in that failed DC? Now you
>>>>> removed all OSDs and two MONs from the failed DC hoping that your
>>>>> cluster will recover? If you have reasonable crush rules in place
>>>>> (e.g. to recover from a failed DC) your cluster will never recover
>>>>> in
>>>>> the current state unless you bring OSDs back up on the second DC.
>>>>> That's why you don't see progress in the recovery process, the PGs
>>>>> are
>>>>> waiting for their peers in the other DC so they can follow the
>>>>> crush
>>>>> rules.
>>>>>
>>>>> Regards,
>>>>> Eugen
>>>>>
>>>>>
>>>>> Zitat von "Ing. Luis Felipe Domínguez Vega"
>>>>> <luis.dominguez@xxxxxxxxx>:
>>>>>
>>>>>> I was 3 mons, but i have 2 physical datacenters, one of them
>>>>>> breaks  with not short term fix, so i remove all osds and ceph
>>>>>> mon  (2 of  them) and now i have only the osds of 1 datacenter
>>>>>> with the  monitor.  I was stopped the ceph manager, but i was  see
>>>>>> that when  i restart a  ceph manager then ceph -s show  recovering
>>>>>> info for a  short term of  20 min more or less, then  dissapear
>>>>>> all info.
>>>>>>
>>>>>> The thing is that sems the cluster is not self recovering and  the
>>>>>>   ceph monitor is "eating" all of the HDD.
>>>>>>
>>>>>> El 2020-10-26 15:57, Eugen Block escribió:
>>>>>>> The recovery process (ceph -s) is independent of the MGR service
>>>>>>> but
>>>>>>> only depends on the MON service. It seems you only have the one
>>>>>>> MON,
>>>>>>> if the MGR is overloading it (not clear why) it could help to
>>>>>>> leave
>>>>>>> MGR off and see if the MON service then has enough RAM to proceed
>>>>>>> with
>>>>>>> the recovery. Do you have any chance to add two more MONs? A
>>>>>>> single
>>>>>>> MON is of course a single point of failure.
>>>>>>>
>>>>>>>
>>>>>>> Zitat von "Ing. Luis Felipe Domínguez Vega"
>>>>>>> <luis.dominguez@xxxxxxxxx>:
>>>>>>>
>>>>>>>> El 2020-10-26 15:16, Eugen Block escribió:
>>>>>>>>> You could stop the MGRs and wait for the recovery to finish,
>>>>>>>>> MGRs are
>>>>>>>>> not a critical component. You won’t have a dashboard or metrics
>>>>>>>>> during/of that time but it would prevent the high RAM usage.
>>>>>>>>>
>>>>>>>>> Zitat von "Ing. Luis Felipe Domínguez Vega"
>>>>>>>>> <luis.dominguez@xxxxxxxxx>:
>>>>>>>>>
>>>>>>>>>> El 2020-10-26 12:23, 胡 玮文 escribió:
>>>>>>>>>>>> 在 2020年10月26日,23:29,Ing. Luis Felipe Domínguez Vega
>>>>>>>>>>>> <luis.dominguez@xxxxxxxxx> 写道:
>>>>>>>>>>>>
>>>>>>>>>>>> mgr: fond-beagle(active, since 39s)
>>>>>>>>>>>
>>>>>>>>>>> Your manager seems crash looping, it only started since 39s.
>>>>>>>>>>> Looking
>>>>>>>>>>> at mgr logs may help you identify why your cluster is not
>>>>>>>>>>> recovering.
>>>>>>>>>>> You may hit some bug in mgr.
>>>>>>>>>> Noup, I'm restarting the ceph manager because they eat all
>>>>>>>>>> server   RAM and then i have an script that when i have 1GB
>>>>>>>>>> of   Free Ram  (the  server has 94 Gb of RAM) then restart
>>>>>>>>>> the   manager, i dont  known why  and the logs of manager are:
>>>>>>>>>>
>>>>>>>>>> -----------------------------------
>>>>>>>>>> root@fond-beagle:/var/lib/ceph/mon/ceph-fond-beagle/store.db#
>>>>>>>>>>  tail    -f /var/log/ceph/ceph-mgr.fond-beagle.log
>>>>>>>>>> 2020-10-26T12:54:12.497-0400 7f2a8112b700  0
>>>>>>>>>> log_channel(cluster)   log [DBG] : pgmap v584: 2305 pgs: 4
>>>>>>>>>>  active+undersized+degraded+remapped, 4
>>>>>>>>>> active+recovery_unfound+undersized+degraded+remapped, 2104
>>>>>>>>>>  active+clean, 5 active+undersized+degraded, 34 incomplete,
>>>>>>>>>> 154     unknown; 1.7 TiB data, 2.9 TiB used, 21 TiB / 24 TiB
>>>>>>>>>> avail;     347248/2606900 objects degraded (13.320%);
>>>>>>>>>> 107570/2606900   objects   misplaced (4.126%); 19/404328
>>>>>>>>>> objects unfound (0.005%)
>>>>>>>>>> 2020-10-26T12:54:12.497-0400 7f2a8112b700  0
>>>>>>>>>> log_channel(cluster)   do_log log to syslog
>>>>>>>>>> 2020-10-26T12:54:14.501-0400 7f2a8112b700  0
>>>>>>>>>> log_channel(cluster)   log [DBG] : pgmap v585: 2305 pgs: 4
>>>>>>>>>>  active+undersized+degraded+remapped, 4
>>>>>>>>>> active+recovery_unfound+undersized+degraded+remapped, 2104
>>>>>>>>>>  active+clean, 5 active+undersized+degraded, 34 incomplete,
>>>>>>>>>> 154     unknown; 1.7 TiB data, 2.9 TiB used, 21 TiB / 24 TiB
>>>>>>>>>> avail;     347248/2606900 objects degraded (13.320%);
>>>>>>>>>> 107570/2606900   objects   misplaced (4.126%); 19/404328
>>>>>>>>>> objects unfound (0.005%)
>>>>>>>>>> 2020-10-26T12:54:14.501-0400 7f2a8112b700  0
>>>>>>>>>> log_channel(cluster)   do_log log to syslog
>>>>>>>>>> 2020-10-26T12:54:16.517-0400 7f2a8112b700  0
>>>>>>>>>> log_channel(cluster)   log [DBG] : pgmap v586: 2305 pgs: 4
>>>>>>>>>>  active+undersized+degraded+remapped, 4
>>>>>>>>>> active+recovery_unfound+undersized+degraded+remapped, 2104
>>>>>>>>>>  active+clean, 5 active+undersized+degraded, 34 incomplete,
>>>>>>>>>> 154     unknown; 1.7 TiB data, 2.9 TiB used, 21 TiB / 24 TiB
>>>>>>>>>> avail;     347248/2606900 objects degraded (13.320%);
>>>>>>>>>> 107570/2606900   objects   misplaced (4.126%); 19/404328
>>>>>>>>>> objects unfound (0.005%)
>>>>>>>>>> 2020-10-26T12:54:16.517-0400 7f2a8112b700  0
>>>>>>>>>> log_channel(cluster)   do_log log to syslog
>>>>>>>>>> 2020-10-26T12:54:18.521-0400 7f2a8112b700  0
>>>>>>>>>> log_channel(cluster)   log [DBG] : pgmap v587: 2305 pgs: 4
>>>>>>>>>>  active+undersized+degraded+remapped, 4
>>>>>>>>>> active+recovery_unfound+undersized+degraded+remapped, 2104
>>>>>>>>>>  active+clean, 5 active+undersized+degraded, 34 incomplete,
>>>>>>>>>> 154     unknown; 1.7 TiB data, 2.9 TiB used, 21 TiB / 24 TiB
>>>>>>>>>> avail;     347248/2606900 objects degraded (13.320%);
>>>>>>>>>> 107570/2606900   objects   misplaced (4.126%); 19/404328
>>>>>>>>>> objects unfound (0.005%)
>>>>>>>>>> 2020-10-26T12:54:18.521-0400 7f2a8112b700  0
>>>>>>>>>> log_channel(cluster)   do_log log to syslog
>>>>>>>>>> 2020-10-26T12:54:20.537-0400 7f2a8112b700  0
>>>>>>>>>> log_channel(cluster)   log [DBG] : pgmap v588: 2305 pgs: 4
>>>>>>>>>>  active+undersized+degraded+remapped, 4
>>>>>>>>>> active+recovery_unfound+undersized+degraded+remapped, 2104
>>>>>>>>>>  active+clean, 5 active+undersized+degraded, 34 incomplete,
>>>>>>>>>> 154     unknown; 1.7 TiB data, 2.9 TiB used, 21 TiB / 24 TiB
>>>>>>>>>> avail;     347248/2606900 objects degraded (13.320%);
>>>>>>>>>> 107570/2606900   objects   misplaced (4.126%); 19/404328
>>>>>>>>>> objects unfound (0.005%)
>>>>>>>>>> 2020-10-26T12:54:20.537-0400 7f2a8112b700  0
>>>>>>>>>> log_channel(cluster)   do_log log to syslog
>>>>>>>>>> 2020-10-26T12:54:22.541-0400 7f2a8112b700  0
>>>>>>>>>> log_channel(cluster)   log [DBG] : pgmap v589: 2305 pgs: 4
>>>>>>>>>>  active+undersized+degraded+remapped, 4
>>>>>>>>>> active+recovery_unfound+undersized+degraded+remapped, 2104
>>>>>>>>>>  active+clean, 5 active+undersized+degraded, 34 incomplete,
>>>>>>>>>> 154     unknown; 1.7 TiB data, 2.9 TiB used, 21 TiB / 24 TiB
>>>>>>>>>> avail;     347248/2606900 objects degraded (13.320%);
>>>>>>>>>> 107570/2606900   objects   misplaced (4.126%); 19/404328
>>>>>>>>>> objects unfound (0.005%)
>>>>>>>>>> 2020-10-26T12:54:22.541-0400 7f2a8112b700  0
>>>>>>>>>> log_channel(cluster)   do_log log to syslog
>>>>>>>>>> ---------------
>>>>>>>>>> _______________________________________________
>>>>>>>>>> ceph-users mailing list -- ceph-users@xxxxxxx
>>>>>>>>>> To unsubscribe send an email to ceph-users-leave@xxxxxxx
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> _______________________________________________
>>>>>>>>> ceph-users mailing list -- ceph-users@xxxxxxx
>>>>>>>>> To unsubscribe send an email to ceph-users-leave@xxxxxxx
>>>>>>>>
>>>>>>>> Ok i will do that... but the thing is that the cluster not  show
>>>>>>>>    recovering, not show that are doing nothing, like to  show
>>>>>>>> the    recovering info on ceph -s command, and then i  dont know
>>>>>>>> if is    recovering or doing what?
_______________________________________________
ceph-users mailing list -- ceph-users@xxxxxxx
To unsubscribe send an email to ceph-users-leave@xxxxxxx
_______________________________________________
ceph-users mailing list -- ceph-users@xxxxxxx
To unsubscribe send an email to ceph-users-leave@xxxxxxx




[Index of Archives]     [Information on CEPH]     [Linux Filesystem Development]     [Ceph Development]     [Ceph Large]     [Ceph Dev]     [Linux USB Development]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [xfs]


  Powered by Linux