Re: rgw - migrate data from replicated to ec pool
ceph-users <ceph-users@ceph.io>:
On 21 Jan 2026, at 16:58, Boris via ceph-users <ceph-users@ceph.io> wrote:
we want to migrate the data from a replicated to an EC pool. Is there a way to do it without downtime?
Your clients can move objects from one storage class to another, example s5cmd mv s3://bucket s3://bucket2 --storage-class="GLACIER"
Please correct me if I am wrong here (because I might totally be), but doesn't this leave some kind of "softlink" object in the old pool and "only" move the content over to the new pool?
Not to my knowledge. You can however accomplish the same thing with an LC policy, which would likely be way more efficient. I must note, though, that storage class names are arbitrary to RGW, but not to some clients / libraries, which expect specific server behavior from GLACIER, or won’t work at all for an SC named, say, ETHELMERMAN. It’s best to stick to AWS names as documented here: https://docs.ceph.com/en/latest/radosgw/placement/#using-storage-classes Today, you can use rbd-mirror or live migration to move volumes between pools, but at some point the client attachment I think needs to be refreshed. With CephFS you attach the new data pool, setfattr a directory for the file layout to use the pool, and cp (not mv) each file onto it. There are scripts available online. Since this is a client operation that copies all the data then deletes the old, it is resource-intensive and not transparent to clients, at least not until such a time that the directory names are swapped, and not for any open files. As with RGW head objects, which are always in the default storage class, CephFS benefits from the first data pool being on fast SSDs for backtraces, especially when there are a zillion tiny files. This cannot AFAIK be retrofitted (at least not before Umbrella), but one could create a new CephFS with new pools and migrate files onto it.
there was some kind of situation where you still need to retain the old pool.
If transparent RADOS pool migration makes it into Umbrella, that will be true. But likely one will be able to pare down pg_num for that pool and it won’t be a big deal.
Perhaps this is related to layering ceph pools (also one way in the past to move data from pool A to B while changing EC values or repl, not recommended anymore) which is why I am so unsure. If anyone wants to test/verify I am happy to be proven wrong.
If I am wrong, then https://docs.ceph.com/en/latest/radosgw/placement/ has some good info on how to make more than one ceph pool available for rgw usage and set another one as the new default for users/buckets created after the change and so forth.
Thanks!
-- May the most significant bit of your life be positive. _______________________________________________ ceph-users mailing list -- ceph-users@ceph.io To unsubscribe send an email to ceph-users-leave@ceph.io
participants (1)
-
Anthony D'Atri