It means that in each of the 1024 attempts, crush was able to find
num-rep OSDs. Those are the OSD IDs in the brackets (like the acting
set). You can then check the IDs (or at least some of them) for their
device class, in case you have doubts (I always do that with a couple
of random sets). But it looks good to me, I assume you didn’t have any
bad mappings?
Zitat von Rok Jaklič <rjaklic@xxxxxxxxx>:
Thx.
Can you explain mappings.txt a little bit?
I assume that for every line in mappings.txt apply crush rule 1 for osds in
square brackets?
Rok
On Thu, Nov 28, 2024 at 8:53 AM Eugen Block <eblock@xxxxxx> wrote:
Of course it's possible. You can either change this rule by extracting
the crushmap, decompiling it, editing the "take" section, compile it
and inject it back into the cluster. Or you simply create a new rule
with the class hdd specified and set this new rule for your pools. So
the first approach would be:
1. ceph osd getcrushmap -o crushmap.bin
2. crushtool -d crushmap.bin -o crushmap.txt
3. open crushmap.txt with the editor of your choice, replace
step take default
with:
step take default class hdd
and save the file.
4. crushtool -c crushmap.txt -o crushmap.new
5. test it with crushtool:
crushtool -i crushmap.new --test --rule 1 --num-rep 5 --show-mappings |
less
crushtool -i crushmap.new --test --rule 1 --num-rep 5
--show-bad-mappings | less
You shouldn't have bad mappings if everything is okay. Inspect the
result of --show-mappings to see if the OSDs match your HDD OSDs.
6. ceph osd setcrushmap -i crushmap.new
####
Alternatively, create a new rule if your EC profile(s) already have
the correct crush-device-class set. If not, you can create a new one,
but keep in mind that you can't change the k and m values for a given
pool, so you need to ensure that you use the same k and m values:
ceph osd erasure-code-profile set ec-profile-k3m2 k=3 m=2
crush-failure-domain=host crush-device-class=hdd
ceph osd crush rule create-erasure rule-ec-k3m2 ec-profile-k3m2
And here's the result:
ceph osd crush rule dump rule-ec-k3m2 | grep -A2 take
"op": "take",
"item": -2,
"item_name": "default~hdd"
Regards,
Eugen
Zitat von Rok Jaklič <rjaklic@xxxxxxxxx>:
> Hi,
>
> is it possible to set/change following already used rule to only use hdd?
> {
> "rule_id": 1,
> "rule_name": "ec32",
> "type": 3,
> "steps": [
> {
> "op": "set_chooseleaf_tries",
> "num": 5
> },
> {
> "op": "set_choose_tries",
> "num": 100
> },
> {
> "op": "take",
> "item": -1,
> "item_name": "default"
> },
> {
> "op": "chooseleaf_indep",
> "num": 0,
> "type": "host"
> },
> {
> "op": "emit"
> }
> ]
> }
>
> Kind regards,
> Rok
> _______________________________________________
> 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
_______________________________________________
ceph-users mailing list -- ceph-users@xxxxxxx
To unsubscribe send an email to ceph-users-leave@xxxxxxx