Re: RGW region metadata sync prevents writes to non-master region

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 30/01/15 13:39, Mark Kirkwood wrote:
On 30/01/15 12:34, Yehuda Sadeh wrote:
On Thu, Jan 29, 2015 at 3:27 PM, Mark Kirkwood
<mark.kirkwood@xxxxxxxxxxxxxxx> wrote:
On 30/01/15 11:08, Yehuda Sadeh wrote:

How does your regionmap look like? Is it updated correctly on all
zones?


Regionmap listed below - checking it on all 4 zones produces exactly the
same output (md5sum is same):


         {
             "key": "us",
             "val": {
                 "name": "us",
                 "api_name": "us",
                 "is_master": "true",
                 "endpoints": [
                     "http:\/\/ceph2:80\/",
                     "http:\/\/ceph1:80\/"

Note that you have ceph1:80 specified as an endpoint to the region.
This is then used for the bucket creation. This one should only
include the master endpoint.



Cool, thanks - I was unclear about which endpoint(s) should be listed
for a region. I'll change 'em and try again.



Amending region definitions as indicated gets progress:

Tue Feb  3 02:19:29 2015
/bucket1/
2015-02-03 02:19:29.403362 7fe34cf69700 15 generated auth header: AWS eu-east key:4Rd9WaeJDenXSAq8GCEO1LqmcgQ= 2015-02-03 02:19:29.403373 7fe34cf69700 20 sending request to http://ceph2:80/bucket1/?rgwx-uid=markir&rgwx-region=eu


But the final result is a 403. Checking the log on ceph2 shows:

2015-02-03 02:15:58.974078 7f759f78e700 2 req 466:0.000012::PUT /bucket1/::initializing
2015-02-03 02:15:58.974083 7f759f78e700 10 host=ceph2 rgw_dns_name=ceph2
2015-02-03 02:15:58.974123 7f759f78e700 10 s->object=<NULL> s->bucket=bucket1 2015-02-03 02:15:58.974128 7f759f78e700 2 req 466:0.000063:s3:PUT /bucket1/::getting op 2015-02-03 02:15:58.974135 7f759f78e700 2 req 466:0.000069:s3:PUT /bucket1/:create_bucket:authorizing 2015-02-03 02:15:58.974163 7f759f78e700 20 get_obj_state: rctx=0x4268020 obj=.us-east.users:eu-east key state=0x41d9dc0 s->prefetch_data=0 2015-02-03 02:15:58.974172 7f759f78e700 10 cache get: name=.us-east.users+eu-east key : type miss (requested=6, cached=0) 2015-02-03 02:15:58.975756 7f759f78e700 10 cache put: name=.us-east.users+eu-east key 2015-02-03 02:15:58.975772 7f759f78e700 10 moving .us-east.users+eu-east key to cache LRU end 2015-02-03 02:15:58.975783 7f759f78e700 5 error reading user info, uid=eu-east key can't authenticate
2015-02-03 02:15:58.975786 7f759f78e700 10 failed to authorize request
2015-02-03 02:15:58.975819 7f759f78e700 2 req 466:0.001753:s3:PUT /bucket1/:create_bucket:http status=403


Ah, it doesn't know about my *eu* system users in the us region - after creating those I can then add the bucket in the eu region ok. Yay!

Also it would appear that it has worked as intended (using ceph df to check):

(us region)
ceph2 $ ceph df|grep bucket
.us-east.rgw.buckets.index 114 0 0 18372M 2 .us-east.rgw.buckets 115 12 0 18372M 1 .us-west.rgw.buckets.index 127 0 0 18372M 0 .us-west.rgw.buckets 128 0 0 18372M 0


(eu region)
ceph4 $ ceph df|grep bucket
.eu-east.rgw.buckets.index 97 0 0 18360M 2 .eu-east.rgw.buckets 98 12 0 18360M 1 .eu-west.rgw.buckets.index 110 0 0 18360M 0 .eu-west.rgw.buckets 111 0 0 18360M 0


i.e: bucket index metadata sees two buckets, but there is only one in each region.


Thanks for your help!

Cheers

Mark
_______________________________________________
ceph-users mailing list
ceph-users@xxxxxxxxxxxxxx
http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com




[Index of Archives]     [Information on CEPH]     [Linux Filesystem Development]     [Ceph Development]     [Ceph Large]     [Linux USB Development]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [xfs]


  Powered by Linux