Migrate a bucket from replicated pool to ec pool
Hi, we use rgw as our backup storage, and it basically holds only compressed rbd snapshots. I would love to move these out of the replicated into a ec pool. I've read that I can set a default placement target for a user ( https://docs.ceph.com/en/octopus/radosgw/placement/). What does happen to the existing user data? How do I move the existing data to the new pool? Does it somehow interfere with ongoing data upload (it is one internal user, with 800 buckets which constantly get new data and old data removed)? Cheers Boris ps: Can't wait to see some of you at the cephalocon :) -- Die Selbsthilfegruppe "UTF-8-Probleme" trifft sich diesmal abweichend im groüen Saal.
hi Boris, On Sat, Feb 11, 2023 at 7:07 AM Boris Behrens <bb@kervyn.de> wrote:
Hi, we use rgw as our backup storage, and it basically holds only compressed rbd snapshots. I would love to move these out of the replicated into a ec pool.
I've read that I can set a default placement target for a user ( https://docs.ceph.com/en/octopus/radosgw/placement/). What does happen to the existing user data?
changes to the user's default placement target/storage class don't apply to existing buckets, only newly-created ones. a bucket's default placement target/storage class can't be changed after creation
How do I move the existing data to the new pool?
you might add the EC pool as a new storage class in the existing placement target, and use lifecycle transitions to move the objects. but the bucket's default storage class would still be replicated, so new uploads would go there unless the client adds a x-amz-storage-class header to override it. if you want to change those defaults, you'd need to create a new bucket and copy the objects over
Does it somehow interfere with ongoing data upload (it is one internal user, with 800 buckets which constantly get new data and old data removed)?
lifecycle transitions would be transparent to the user, but migrating to new buckets would not
Cheers Boris
ps: Can't wait to see some of you at the cephalocon :)
-- Die Selbsthilfegruppe "UTF-8-Probleme" trifft sich diesmal abweichend im groüen Saal. _______________________________________________ ceph-users mailing list -- ceph-users@ceph.io To unsubscribe send an email to ceph-users-leave@ceph.io
Hi Casey, changes to the user's default placement target/storage class don't
apply to existing buckets, only newly-created ones. a bucket's default placement target/storage class can't be changed after creation
so I can easily update the placement rules for this user and can migrate existing buckets one at a time. Very cool. Thanks
you might add the EC pool as a new storage class in the existing placement target, and use lifecycle transitions to move the objects. but the bucket's default storage class would still be replicated, so new uploads would go there unless the client adds a x-amz-storage-class header to override it. if you want to change those defaults, you'd need to create a new bucket and copy the objects over
Can you link me to documentation. It might be the monday, but I do not understand that totally. Do you know how much more CPU/RAM EC takes, and when (putting, reading, deleting objects, recovering OSD failure)? -- Die Selbsthilfegruppe "UTF-8-Probleme" trifft sich diesmal abweichend im groüen Saal.
On Mon, Feb 13, 2023 at 4:31 AM Boris Behrens <bb@kervyn.de> wrote:
Hi Casey,
changes to the user's default placement target/storage class don't apply to existing buckets, only newly-created ones. a bucket's default placement target/storage class can't be changed after creation
so I can easily update the placement rules for this user and can migrate existing buckets one at a time. Very cool. Thanks
you might add the EC pool as a new storage class in the existing placement target, and use lifecycle transitions to move the objects. but the bucket's default storage class would still be replicated, so new uploads would go there unless the client adds a x-amz-storage-class header to override it. if you want to change those defaults, you'd need to create a new bucket and copy the objects over
Can you link me to documentation. It might be the monday, but I do not understand that totally.
https://docs.ceph.com/en/octopus/radosgw/placement/#adding-a-storage-class should cover the addition of a new storage class for your EC pool
Do you know how much more CPU/RAM EC takes, and when (putting, reading, deleting objects, recovering OSD failure)?
i don't have any data on that myself. maybe others on the list can share theirs?
-- Die Selbsthilfegruppe "UTF-8-Probleme" trifft sich diesmal abweichend im groüen Saal.
Years ago I moved from a replicated pool to an EC pool, but with a downtime of the service (and at that time I didn't have too many data) Basically after having stopped the radosgw services, I created the new pool and moved the data from the old replicated pool to new EC one: ceph osd pool create cloudprod.rgw.buckets.data.new 32 32 erasure profile-4-2 rados cppool cloudprod.rgw.buckets.data cloudprod.rgw.buckets.data.new ceph osd pool rename cloudprod.rgw.buckets.data cloudprod.rgw.buckets.data.old ceph osd pool rename cloudprod.rgw.buckets.data.new cloudprod.rgw.buckets.data ceph osd pool application enable cloudprod.rgw.buckets.data rgw Eventually I deleted the replicated pool: ceph tell mon.\* injectargs '--mon-allow-pool-delete=true' ceph osd pool delete cloudprod.rgw.buckets.data.old cloudprod.rgw.buckets.data.old --yes-i-really-really-mean-it ceph tell mon.\* injectargs '--mon-allow-pool-delete=false' On Mon, Feb 13, 2023 at 4:43 PM Casey Bodley <cbodley@redhat.com> wrote:
On Mon, Feb 13, 2023 at 4:31 AM Boris Behrens <bb@kervyn.de> wrote:
Hi Casey,
changes to the user's default placement target/storage class don't apply to existing buckets, only newly-created ones. a bucket's default placement target/storage class can't be changed after creation
so I can easily update the placement rules for this user and can migrate
existing buckets one at a time. Very cool. Thanks
you might add the EC pool as a new storage class in the existing placement target, and use lifecycle transitions to move the objects. but the bucket's default storage class would still be replicated, so new uploads would go there unless the client adds a x-amz-storage-class header to override it. if you want to change those defaults, you'd need to create a new bucket and copy the objects over
Can you link me to documentation. It might be the monday, but I do not
understand that totally.
https://docs.ceph.com/en/octopus/radosgw/placement/#adding-a-storage-class should cover the addition of a new storage class for your EC pool
Do you know how much more CPU/RAM EC takes, and when (putting, reading,
deleting objects, recovering OSD failure)?
i don't have any data on that myself. maybe others on the list can share theirs?
-- Die Selbsthilfegruppe "UTF-8-Probleme" trifft sich diesmal abweichend im
groüen Saal. _______________________________________________ ceph-users mailing list -- ceph-users@ceph.io To unsubscribe send an email to ceph-users-leave@ceph.io
participants (3)
-
Boris Behrens
-
Casey Bodley
-
Massimo Sgaravatto