天天看點

Ceph 對象存儲用ec pool,報錯WARNING: Retrying failed request:/參考文獻:

Ceph對象存儲所需要的pool如下,所有的pool都設定成了EC模式

.rgw.buckets;.rgw;.rgw.root;.rgw.control;
.rgw.gc;.log;.intent-log;.usage;.users;
.users.email;.users.swift;.users.uuid;
.users.uid;.rgw.buckets.extra;.rgw.buckets.index
           

用S3cmd指令建立bucket時,不能成功,報錯資訊如下:

WARNING: Retrying failed request:/
           
Ceph 對象存儲用ec pool,報錯WARNING: Retrying failed request:/參考文獻:

分析問題原因,首先把radosgw日志資訊打開,打開方法如下:

1)修改ceph.conf,增加如下兩條日志相關資訊

[client.radosgw.gateway]

debug_rgw = 

log file=/var/log/radosgw/client.radosgw.gateway.log
           

2)重新開機radosgw

重新執行上面你的建立bucket指令:S3cmd mb s3://aa_test

觀察radosgw的日志輸出,有如下的報錯輸出:

rgw_create_bucketreturnedret=-bucket=yy_test(
@{i=.rgw.buckets.index,e=.rgw.buckets.extra}.rgw.buckets
[default])

WARNING: set_req_state_err err_no=resorting to 

req ::s3:PUT/yy_test/:create_bucket:http status=

====== req done req=http_status= ======

process_request() returned -
           

解決辦法

隻把rgw bucket資料池設定為ec模式,其他pool都設定為副本模式。

這裡bucket資料池是.rgw.buckets,也即隻把該值設定為erasure模式,其他池都必須是replicated模式

Ceph 對象存儲用ec pool,報錯WARNING: Retrying failed request:/參考文獻:

參考文獻:

http://obsidiancreeper.com/2017/10/23/Using-Erasure-Coding-with-RadosGW/