Our problem only appeared to be present in bucket creation. Listing, putting, etc objects in a bucket work just fine regardless of the bucket_location setting. I ran this test on a few different realms to see what would happen and only 1 of them had a problem. There isn't an obvious thing that steps out about it. The 2 local realms do not have multi-site, the internal realm has multi-site and the operations were performed on the primary zone for the zonegroup.
Worked with non 'US' bucket_location for s3cmd to create bucket: realm=internal zonegroup=internal-ga zone=internal-atl Failed with non 'US' bucket_location for s3cmd to create bucket: realm=local-atl zonegroup=local-atl zone=local-atl Worked with non 'US' bucket_location for s3cmd to create bucket: realm=local zonegroup=local zone=local I was thinking it might have to do with all of the parts being named the same, but I made sure to do the last test to confirm. Interestingly it's only bucket creation that has a problem and it's fine as long as I put 'US' as the bucket_location. On Mon, Feb 19, 2018 at 6:48 PM F21 <f21.gro...@gmail.com> wrote: > I am using the official ceph/daemon docker image. It starts RGW and > creates a zonegroup and zone with their names set to an empty string: > > https://github.com/ceph/ceph-container/blob/master/ceph-releases/luminous/ubuntu/16.04/daemon/start_rgw.sh#L36:54 > > $RGW_ZONEGROUP and $RGW_ZONE are both empty strings by default: > > https://github.com/ceph/ceph-container/blob/master/ceph-releases/luminous/ubuntu/16.04/daemon/variables_entrypoint.sh#L46 > > Here's what I get when I query RGW: > > $ radosgw-admin zonegroup list > { > "default_info": "", > "zonegroups": [ > "default" > ] > } > > $ radosgw-admin zone list > { > "default_info": "", > "zones": [ > "default" > ] > } > > On 20/02/2018 10:33 AM, Yehuda Sadeh-Weinraub wrote: > > What is the name of your zonegroup? > > > > On Mon, Feb 19, 2018 at 3:29 PM, F21 <f21.gro...@gmail.com> wrote: > >> I've done some debugging and the LocationConstraint is not being set by > the > >> SDK by default. > >> > >> I do, however, need to set the region on the client to us-east-1 for it > to > >> work. Anything else will return an InvalidLocationConstraint error. > >> > >> Francis > >> > >> > >> On 20/02/2018 8:40 AM, Yehuda Sadeh-Weinraub wrote: > >>> Sounds like the go sdk adds a location constraint to requests that > >>> don't go to us-east-1. RGW itself is definitely isn't tied to > >>> us-east-1, and does not know anything about it (unless you happen to > >>> have a zonegroup named us-east-1). Maybe there's a way to configure > >>> the sdk to avoid doing that? > >>> > >>> Yehuda > >>> > >>> On Sun, Feb 18, 2018 at 1:54 PM, F21 <f21.gro...@gmail.com> wrote: > >>>> I am using the AWS Go SDK v2 (https://github.com/aws/aws-sdk-go-v2) > to > >>>> talk > >>>> to my RGW instance using the s3 interface. I am running ceph in docker > >>>> using > >>>> the ceph/daemon docker images in demo mode. The RGW is started with a > >>>> zonegroup and zone with their names set to an empty string by the > scripts > >>>> in > >>>> the image. > >>>> > >>>> I have ForcePathStyle for the client set to true, because I want to > >>>> access > >>>> all my buckets using the path: myrgw.instance:8080/somebucket. > >>>> > >>>> I noticed that if I set the region for the client to anything other > than > >>>> us-east-1, I get this error when creating a bucket: > >>>> InvalidLocationConstraint: The specified location-constraint is not > >>>> valid. > >>>> > >>>> If I set the region in the client to something made up, such as "ceph" > >>>> and > >>>> the LocationConstraint to "ceph", I still get the same error. > >>>> > >>>> The only way to get my buckets to create successfully is to set the > >>>> client's > >>>> region to us-east-1. I have grepped the ceph code base and cannot find > >>>> any > >>>> references to us-east-1. In addition, I looked at the AWS docs for > >>>> calculating v4 signatures and us-east-1 is the default region but I > can > >>>> see > >>>> that the region string is used in the calculation (i.e. the region is > not > >>>> ignored when calculating the signature if it is set to us-east-1). > >>>> > >>>> Why do my buckets create successfully if I set the region in my s3 > client > >>>> to > >>>> us-east-1, but not otherwise? If I do not want to use us-east-1 as my > >>>> default region, for example, if I want us-west-1 as my default region, > >>>> what > >>>> should I be configuring in ceph? > >>>> > >>>> Thanks, > >>>> > >>>> Francis > >>>> > >>>> _______________________________________________ > >>>> ceph-users mailing list > >>>> ceph-users@lists.ceph.com > >>>> http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com > >> > >> > > _______________________________________________ > ceph-users mailing list > ceph-users@lists.ceph.com > http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com >
_______________________________________________ ceph-users mailing list ceph-users@lists.ceph.com http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com