Hi Eugen,

thanks for that comment. I did save the command line I used to create the EC 
profile. To force an update, I would just re-execute the same line with the 
device class set to SSD this time.

I would also expect that the pool only continues using k, m and algorithmic 
settings, which must not be changed ever. Device class and crush root should be 
safe to change as they are only relevant at pool creation. Sounds like what you 
write confirms this hypothesis.

Best regards and thanks,

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

________________________________________
From: Eugen Block <[email protected]>
Sent: 24 October 2019 14:32:36
To: [email protected]
Subject: [ceph-users] Re: Change device class in EC profile

Hi Frank,

just a short note on changing EC profiles. If you try to change only a
single value you'll end up with a mess. See this example (Nautilus):

---snip---
# Created new profile
mon1:~ # ceph osd erasure-code-profile get ec-k2m4
crush-device-class=
crush-failure-domain=host
crush-root=default
jerasure-per-chunk-alignment=false
k=2
m=4
plugin=jerasure
technique=reed_sol_van
w=8

# overwrite device-class
mon1:~ # ceph osd erasure-code-profile set ec-k2m4
crush-device-class=ssd --force

# k and m have changed to default
mon1:~ # ceph osd erasure-code-profile get ec-k2m4
crush-device-class=ssd
crush-failure-domain=host
crush-root=default
jerasure-per-chunk-alignment=false
k=2
m=1
plugin=jerasure
technique=reed_sol_van
w=8
---snip---


If you really want to change the profile you should set all values of
that profile again (similar to the auth caps changes). But even if you
can change an existing EC profile it won't have an impact on existing
pools. Also the docs [1] say it can't be modified for an existing pool:

> Choosing the right profile is important because it cannot be
> modified after the pool is created: a new pool with a different
> profile needs to be created and all objects from the previous pool
> moved to the new.


But since you already moved the pool to different devices cleaning up
the profile should be ok, I guess. Newly created pools with the
modified profile should honor the new configuration, I just replayed
that in a small test environment and it worked there. But I haven't
done this in a production environment so there might be other issues
I'm not aware of.

Regards,
Eugen

[1]
https://docs.ceph.com/docs/master/rados/operations/erasure-code/#erasure-code-profiles

Zitat von Frank Schilder <[email protected]>:

> I recently moved an EC pool from HDD to SSD by changing the device
> class in the crush rule. I would like to complete this operation by
> cleaning up a dirty trail. The EC profile attached to this pool is
> called sr-ec-6-2-hdd and it is easy enough to rename that to
> sr-ec-6-2-ssd. However, the profile itself contains the device class
> as well:
>
> crush-device-class=hdd
> [...]
>
> I can already see the confusion this will cause in the future. Is
> this situation one of the few instances where using the --force
> option is warranted to change the device class of a profile, as in:
>
> osd erasure-code-profile set sr-ec-6-2-ssd crush-device-class=ssd --force
>
> If not, how can I change the device class of the profile?
>
> Many thanks and best regards,
>
> =================
> Frank Schilder
> AIT Risø Campus
> Bygning 109, rum S14
> _______________________________________________
> ceph-users mailing list -- [email protected]
> To unsubscribe send an email to [email protected]


_______________________________________________
ceph-users mailing list -- [email protected]
To unsubscribe send an email to [email protected]
_______________________________________________
ceph-users mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to