Hi *, I'm wondering about what actually happens in the ceph cluster if I copy/sync the content of one bucket into a different bucket. I'll just describe what I saw and maybe someone could clarify what is happening. I have a RGW in a small test cluster (15.2.2) and created a bucket (bucket1) with s3cmd, then put a large file into bucket1. This takes some time, of course, I see the network utilization on the client and also the OSD load on the cluster during the upload (expected). Then I create bucket2 and run 's3cmd cp s3://bucket1/file s3://bucket2' which takes only a couple of seconds. I only see some OSD load for a short period of time during the copy process, but that's it. The copied file is available almost immediately. How does this work? It seems as if there's (almost) no client traffic (except for the cp command, of course) to recreate the file in the second bucket, as if the OSDs are directly instructed to create copies of the objects. I would highly appreciate it if anyone could clarify this for me. Thanks! Eugen
Den ons 9 sep. 2020 kl 10:06 skrev Eugen Block <eblock@nde.ag>:
Hi *,
I'm wondering about what actually happens in the ceph cluster if I copy/sync the content of one bucket into a different bucket.
How does this work? It seems as if there's (almost) no client traffic (except for the cp command, of course) to recreate the file in the second bucket, as if the OSDs are directly instructed to create copies of the objects.
I think rgw will make a header that points to the original data only, so you are right in that there is no huge data copy operation. -- May the most significant bit of your life be positive.
I think rgw will make a header that points to the original data only, so you are right in that there is no huge data copy operation.
Alright, that would explain it. But what happens when I overwrite the object in bucket1 with different content? Because I'm still able to get the original content from bucket2/file although it's overwritten in bucket1. Zitat von Janne Johansson <icepic.dz@gmail.com>:
Den ons 9 sep. 2020 kl 10:06 skrev Eugen Block <eblock@nde.ag>:
Hi *,
I'm wondering about what actually happens in the ceph cluster if I copy/sync the content of one bucket into a different bucket.
How does this work? It seems as if there's (almost) no client traffic (except for the cp command, of course) to recreate the file in the second bucket, as if the OSDs are directly instructed to create copies of the objects.
I think rgw will make a header that points to the original data only, so you are right in that there is no huge data copy operation.
-- May the most significant bit of your life be positive.
Basically same thing that happens when you overwrite any object. New data is sent from the client, and a new Head is created pointing at it. The old head is removed, and the data marked for garbage collection if it's unused (which it won't be, in this case, since another Head points at it). Daniel On 9/9/20 4:55 AM, Eugen Block wrote:
I think rgw will make a header that points to the original data only, so you are right in that there is no huge data copy operation.
Alright, that would explain it. But what happens when I overwrite the object in bucket1 with different content? Because I'm still able to get the original content from bucket2/file although it's overwritten in bucket1.
Zitat von Janne Johansson <icepic.dz@gmail.com>:
Den ons 9 sep. 2020 kl 10:06 skrev Eugen Block <eblock@nde.ag>:
Hi *,
I'm wondering about what actually happens in the ceph cluster if I copy/sync the content of one bucket into a different bucket.
How does this work? It seems as if there's (almost) no client traffic (except for the cp command, of course) to recreate the file in the second bucket, as if the OSDs are directly instructed to create copies of the objects.
I think rgw will make a header that points to the original data only, so you are right in that there is no huge data copy operation.
-- 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
Thank you, that's very helpful, I appreciate it! Zitat von Daniel Gryniewicz <dang@redhat.com>:
Basically same thing that happens when you overwrite any object. New data is sent from the client, and a new Head is created pointing at it. The old head is removed, and the data marked for garbage collection if it's unused (which it won't be, in this case, since another Head points at it).
Daniel
On 9/9/20 4:55 AM, Eugen Block wrote:
I think rgw will make a header that points to the original data only, so you are right in that there is no huge data copy operation.
Alright, that would explain it. But what happens when I overwrite the object in bucket1 with different content? Because I'm still able to get the original content from bucket2/file although it's overwritten in bucket1.
Zitat von Janne Johansson <icepic.dz@gmail.com>:
Den ons 9 sep. 2020 kl 10:06 skrev Eugen Block <eblock@nde.ag>:
Hi *,
I'm wondering about what actually happens in the ceph cluster if I copy/sync the content of one bucket into a different bucket.
How does this work? It seems as if there's (almost) no client traffic (except for the cp command, of course) to recreate the file in the second bucket, as if the OSDs are directly instructed to create copies of the objects.
I think rgw will make a header that points to the original data only, so you are right in that there is no huge data copy operation.
-- 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 (3)
-
Daniel Gryniewicz
-
Eugen Block
-
Janne Johansson