Re: Missing OSD in up set

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

 



Hi Frank,

I set choose_total_tries 250 and set_choose_tries 1000: I get no bad mappings and up to 239 tries. I guess I might try this rule in production, what do you suggest?

On 03/11/22 10:46, Frank Schilder wrote:
Hi Nicola,

you are hit hard by the problem, having so many mappings requiring 49 or more tries. The parameter you need to tune is not set_choose_tries inside the rule, but choose_total_tries at the beginning of the crush map file. You need to decompile, modify and compile again. The start of our file looks like this:

# begin crush map
tunable choose_local_tries 0
tunable choose_local_fallback_tries 0
tunable choose_total_tries 250
tunable chooseleaf_descend_once 1
tunable chooseleaf_vary_r 1
tunable chooseleaf_stable 1
tunable straw_calc_version 1
tunable allowed_bucket_algs 54

The default for choose_total_tries was 50 in my case and way too small. It will get better once you have more host buckets to choose OSDs from.

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

________________________________________
From: Nicola Mori <mori@xxxxxxxxxx>
Sent: 03 November 2022 10:39:30
To: ceph-users
Subject: [ceph-users] Re: Missing OSD in up set

Hi Frank, I checked the first hypothesis, and I found something strange.
This is the decompiled rule:

rule wizard_data {
          id 1
          type erasure
          step set_chooseleaf_tries 5
          step set_choose_tries 100
          step take default
          step chooseleaf indep 0 type host
          step emit
}

As you see it already contains step set_choose_tries 100. But when I
test it with crushtool I get:

# crushtool -i crush.map --test --show-bad-mappings --rule 1 --num-rep 8
--min-x 1 --max-x 1000 --show-choose-tries
bad mapping rule 1 x 319 num_rep 8 result [43,40,58,69,2147483647,21,11,31]
bad mapping rule 1 x 542 num_rep 8 result [50,75,53,55,66,43,61,2147483647]
bad mapping rule 1 x 721 num_rep 8 result [35,59,72,24,23,41,2147483647,15]
   0:         0
   1:      7999
   2:        12
   3:        26
   4:        36
   5:        44
   6:        52
. . .
48:         3
49:         4

As far as I understand the crushtool output, the maximum number of tries
is 49 < 100 so I should get no bad mapping. But maybe the bad mappings
are not considered in the tries count, so I tried to increase
set_choose_tries setting it to 1000. This seems to fix the bad mappings,
but the maximum number of tries does not change:

# crushtool -i better-crush.map --test --show-bad-mappings --rule 1
--num-rep 8 --min-x 1 --max-x 1000 --show-choose-tries
   0:         0
   1:      8002
   2:        12
   3:        26
   4:        36
   5:        44
   6:        52
. . .
48:         3
49:         4

I get 3 more PG placed with 1 try, which I guess might be the ones
having bad mappings when using set_choose_tries 100. If I'm correct then
I really don't understand why they need just one try with
set_choose_tries 1000 but fail with set_choose_tries 100...

Anyway, do you think it would be worth trying set_choose_tries 1000 in
production?

--
Nicola Mori, Ph.D.
INFN sezione di Firenze
Via Bruno Rossi 1, 50019 Sesto F.no (Italy)
+390554572660
mori@xxxxxxxxxx
_______________________________________________
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