I had a typo in s3cmd output :D I am encountering an issue with the LocationConstraint when using s3cmd to create a bucket. In my setup, I have two zone groups within the same realm. My intention is to create the bucket in the second zone group by correctly setting the bucket location using bucket_location: <CreateBucketConfiguration><LocationConstraint>abrak</LocationConstraint></CreateBucketConfiguration>. However, despite configuring it this way, the bucket is still being created in the first zone group. https://gist.github.com/RaminNietzsche/1ff266a6158b437319dcd2eb10eeb34e ```sh s3cmd --region zg2-api-name mb s3://test-zg2s3cmd info s3://test-zg2s3://test-zg2/ (bucket): Location: zg1-api-name Payer: BucketOwner Expiration Rule: none Policy: none CORS: none ACL: development: FULL_CONTROL ``` On Thu, May 18, 2023 at 4:29 PM Ramin Najjarbashi < ramin.najarbashi@xxxxxxxxx> wrote: > Thank Casey > > Currently, when I create a new bucket and specify the bucket location as > zone group 2, I expect the request to be handled by the master zone in zone > group 1, as it is the expected behavior. However, I noticed that regardless > of the specified bucket location, the zone group ID for all buckets created > using this method remains the same as zone group 1. > > > My expectation was that when I create a bucket in zone group 2, the zone > group ID in the bucket metadata would reflect the correct zone group ID. > > > > On Thu, May 18, 2023 at 15:54 Casey Bodley <cbodley@xxxxxxxxxx> wrote: > >> On Wed, May 17, 2023 at 11:13 PM Ramin Najjarbashi >> <ramin.najarbashi@xxxxxxxxx> wrote: >> > >> > Hi >> > >> > I'm currently using Ceph version 16.2.7 and facing an issue with bucket >> > creation in a multi-zone configuration. My setup includes two zone >> groups: >> > >> > ZG1 (Master) and ZG2, with one zone in each zone group (zone-1 in ZG1 >> and >> > zone-2 in ZG2). >> > >> > The objective is to create buckets in a specific zone group (ZG2) using >> the >> > bucket constructor. >> > However, despite setting the desired zone group (abrak) in the request, >> the >> > bucket is still being created in the master zone group (ZG1). >> > I have defined the following endpoint pattern for each zone group: >> > >> > s3.{zg}.mydomain.com >> > >> > I am using the s3cmd client to interact with the Ceph cluster. I have >> > ensured that I provide the necessary endpoint and region information >> while >> > executing the bucket creation command. Despite my efforts, the bucket >> > consistently gets created in ZG1 instead of ZG2. >> >> this is expected behavior for the metadata consistency model. all >> metadata gets created on the metadata master zone first, and syncs to >> all other zones in the realm from there. so your buckets will be >> visible to every zonegroup >> >> however, ZG2 is still the 'bucket location', and its object data >> should only reside in ZG2's zones. any s3 requests on that bucket sent >> to ZG1 will get redirected to ZG2 and serviced there >> >> if you don't want any metadata shared between the two zonegroups, you >> can put them in separate realms. but that includes user metadata as >> well >> >> > >> > - Ceph Version: 16.2.7 >> > - Zone Group 1 (ZG1) Endpoint: http://s3.zonegroup1.mydomain.com >> > - Zone Group 2 (ZG2) Endpoint: http://s3.zonegroup2.mydomain.com >> > - Desired Bucket Creation Region: zg2-api-name >> > >> > have reviewed the Ceph documentation and made necessary configuration >> > changes, but I have not been able to achieve the desired result.I kindly >> > request your assistance in understanding why the bucket constructor is >> not >> > honoring the specified region and always defaults to ZG1. I would >> greatly >> > appreciate any insights, recommendations, or potential solutions to >> resolve >> > this issue. >> > >> > Thank you for your time and support. >> > >> > --------------------------------- >> > Here are the details of my setup: >> > --------------------------------- >> > >> > ```sh >> > s3cmd --region zg2-api-name mb s3://test-zg2s3cmd info >> > s3://test-zg2s3://test-zg2/ (bucket): >> > Location: zg2-api-name >> > Payer: BucketOwner >> > Expiration Rule: none >> > Policy: none >> > CORS: none >> > ACL: development: FULL_CONTROL >> > ``` >> > >> > this is my config file: >> > >> > ```ini >> > [default] >> > access_key = <KEY> >> > secret_key = <SECRET> >> > host_base = s3.zonegroup1.mydomain.com >> > host_bucket = s3.%(location)s.mydomain.com >> > #host_bucket = %(bucket)s.s3.zonegroup1.mydomain.com >> > #host_bucket = s3.%(location)s.mydomain.com >> > #host_bucket = s3.%(region)s.mydomain.com >> > bucket_location = zg1-api-name >> > use_https = False >> > ``` >> > >> > >> > Zonegroup configuration for the `zonegroup1` region: >> > >> > ```json >> > { >> > "id": "fb3f818a-ca9b-4b12-b431-7cdcd80006d", >> > "name": "zg1-api-name", >> > "api_name": "zg1-api-name", >> > "is_master": "false", >> > "endpoints": [ >> > "http://s3.zonegroup1.mydomain.com", >> > ], >> > "hostnames": [ >> > "s3.zonegroup1.mydomain.com", >> > ], >> > "hostnames_s3website": [ >> > "s3-website.zonegroup1.mydomain.com", >> > ], >> > "master_zone": "at2-stg-zone", >> > "zones": [ >> > { >> > "id": "at2-stg-zone", >> > "name": "at2-stg-zone", >> > "endpoints": [ >> > "http://s3.zonegroup1.mydomain.com" >> > ], >> > "log_meta": "false", >> > "log_data": "true", >> > "bucket_index_max_shards": 11, >> > "read_only": "false", >> > "tier_type": "", >> > "sync_from_all": "true", >> > "sync_from": [], >> > "redirect_zone": "" >> > } >> > ], >> > "placement_targets": [ >> > { >> > "name": "default-placement", >> > "tags": [], >> > "storage_classes": [ >> > "STANDARD" >> > ] >> > } >> > ], >> > "default_placement": "default-placement", >> > "realm_id": "fa2f8194-4a9d-4b98-b411-9cdcd1e5506a", >> > "sync_policy": { >> > "groups": [] >> > } >> > } >> > ``` >> > >> > Zonegroup configuration for the `zonegroup2` region: >> > >> > ```json >> > { >> > "id": "a513d60c-44a2-4289-a23d-b7a511be6ee4", >> > "name": "zg2-api-name", >> > "api_name": "zg2-api-name", >> > "is_master": "false", >> > "endpoints": [ >> > "http://s3.zonegroup2.mydomain.com" >> > ], >> > "hostnames": [ >> > "s3.zonegroup2.mydomain.com" >> > ], >> > "hostnames_s3website": [], >> > "master_zone": "zonegroup2-sh-1", >> > "zones": [ >> > { >> > "id": "zonegroup2-sh-1", >> > "name": "zonegroup2-sh-1", >> > "endpoints": [ >> > "http://s3.zonegroup2.mydomain.com" >> > ], >> > "log_meta": "false", >> > "log_data": "false", >> > "bucket_index_max_shards": 11, >> > "read_only": "false", >> > "tier_type": "", >> > "sync_from_all": "true", >> > "sync_from": [], >> > "redirect_zone": "" >> > } >> > ], >> > "placement_targets": [ >> > { >> > "name": "default-placement", >> > "tags": [], >> > "storage_classes": [ >> > "STANDARD" >> > ] >> > } >> > ], >> > "default_placement": "default-placement", >> > "realm_id": "fa2f8194-4a9d-4b98-b411-9cdcd1e5506a", >> > "sync_policy": { >> > "groups": [] >> > } >> > } >> > ``` >> > _______________________________________________ >> > 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