找回密码
 注册
查看: 1525|回复: 1

Ceph对象存储如何部署

[复制链接]

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
发表于 2022-2-9 10:11:24 | 显示全部楼层 |阅读模式
因公司项目上有使用ceph对象存储的问题,需要了解测试这个对象存储的问题在哪里,于是找了很多相关的ceph对象存储资料,现在就来看看Ceph对象存储如何部署! E6 u: |0 B1 ~+ g' x- h% b
! O$ g/ u5 V8 M

. S9 z* C8 w) f5 A/ O
0 A  N1 F0 v! L; `( V4 |5 E首先呢就是部署一套Ceph环境,这里就不再赘述了,网上好多安装文档,都比较清晰了。
* U' m4 E  l) W2 a* k8 M; ]
& ~3 M5 \+ M! }' U1 @, N/ N8 G* i: ]9 W7 x+ |
: t, H  A5 }: M" Y/ j2 K  j% I
重点说下RGW部分
. y* \$ g: W& X7 B! J$ p0 S! D9 O' I' C2 n( o/ z
$ \" F9 p. I0 N# t7 u0 s
& b( c0 I" Y+ o6 T1 k- m
安装完集群之后3 F! U" `3 w' s. m4 t% T

/ j# ]7 H, \  R  B2 }2 @9 M6 Pceph-deploy install --rgw devin-ceph1    #因为是测试所以只用一个rgw4 m' C; Y$ Y1 h) ~, h

: p8 u+ j' Q8 e- l; y然后创建RGW实例
& S- D& e+ u* [" g; h! S8 h* i8 }1 y; e! X/ G' K* x* E5 }
ceph-deploy rgw create devin-ceph1
. ?0 t/ [7 o/ W
+ z$ S1 B- e, T那么这时候就OK了,成功后会提示你访问7480端口
7 V& B  [4 @4 v4 a" f/ b! y, N/ T
! v: a& S) X6 ^http://10.0.100.201:74802 r' S5 M6 k: z, C, G  R
( t! B% t+ \6 p( ?
你会看到如下内容:3 y3 F- L5 Z0 ]

# i: P  ~: [7 G8 @<ListAllMyBucketsResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">% P# G/ a. P8 h- \( Y' _
<Owner>, e/ B4 Z- |8 d6 ?
<ID>anonymous</ID>
& f7 d2 C  x" M# l<DisplayName/>
) O' C* }; u& [. [, h$ s3 Q</Owner>
6 h0 H! }/ f7 W9 v3 @9 V<Buckets/>9 K( m+ j0 A1 R9 L5 W
</ListAllMyBucketsResult>
# J1 v! N4 K: F8 e
; R9 ^4 O3 p, C8 p/ b: h  T由于RGW默认采用的是Civetweb,默认端口是7480那有人会说了,那我可不可以修改RGW端口啊。答案肯定是可以的。9 \2 |% |" B+ T2 Y; ^3 O

0 M- N0 I0 f( _) M% @
+ B/ i! H: @! R+ z! k
2 R: m' A; u1 P2 r9 j3 p/ P- P修改Ceph配置文件进行修改。下面看看我的配置文件- ^) q0 k3 e; c% K4 S5 @3 U' g) G
' ], \% Y# \0 `
[client.rgw.devin-ceph1]
  \" j' L9 Z' f1 k3 k3 j; c; ^host = devin-ceph1" e1 G# q1 w- x3 _* s. V- J
rgw_enable_ops_log =true
7 q4 t: s8 d. [7 Z: D4 @1 z$ W5 |4 Orgw_frontends ="civetweb port=80"$ w: h" j. t: H" ^3 }: Y" z
rgw dns name =  s3.devin.com
- ^' a5 ^  b+ D1 J4 argw socket path =/var/run/ceph-client.radosgw.sock+ g* t- \8 o/ W1 k& d: r
keyring =/etc/ceph/ceph.client.radosgw.keyring9 M% @/ g6 u6 y& ~( Q
0 Y. x- L( G& F
: P; H. b+ q9 C& d' H$ \
" ^. j. h0 h& w9 r' c
可以看到我的端口设置成80了。$ e9 I& Z% m5 M. O8 M/ g% w( Q* T

  ]# o/ ~1 r) v* I
9 e2 V( ]+ r- F1 L+ `8 w5 V7 U. m4 ?) E# \/ b( [4 g' v
修改完配置文件之后同步到个节点然后重启rgw服务
3 V+ ^) ?5 N% w" m! D& W+ w. X& Y$ u7 ~- r8 b& m
ceph-deploy --overwrite-conf config push devin-ceph1 devin-ceph2 devin-ceph3
, K  n+ R2 G, t  }( y0 w& d1 a% j7 V0 f2 a/ o( G4 U- w5 C
systemctl restart ceph-radosgw.target
& Y  k4 [+ I3 R# h% ?6 I+ o- _$ Z, m: z, G  C* E5 j. w
那么到此RGW安装完成了,那么RGW怎么使用呢?或者说怎么证明我的RGW是好的?
% y8 S- z& x, j; ?- j" o0 }3 n5 ?" G- s( z- V' B
& y# m9 d+ d/ c$ V+ ]9 S

8 s7 O- L: l9 k1 l5 l) d可能会有人说:你笨啊,刚才都能访问页面了,就证明成功了呗。
0 l- J! G8 s% w/ W# T7 B/ v' K+ p
% \" |2 H7 p' ~7 C4 Q" |2 E' m: w. t& b9 e6 C' B) }( x- Z3 N

& @0 Y/ ~5 n4 E& K# G可能又会有人说:光访问个页面管P用啊,要能用才行。
& z$ j1 U( }. O7 Q4 U6 K4 l
  ?' ?! A1 W2 h- E0 D& D  q, {/ q4 \1 ^

( d( I2 T  P5 W# F; Q别急,下面我们来说下两种方式来玩,一种是S3cmd方式
1 r/ i5 m! _1 c' U/ D4 W/ g  w' z# F8 N% o7 M0 m! V8 x
  }% d: f, ~- r  L: d1 X) f$ W

1 }, f* z3 ~3 k6 N) A首先安装S3cmd  ~; E) b7 j4 G

: `3 A  s- o( b$ B. byum –y install s3cmd* M7 G' J0 r( N( \

* _3 v7 U: D$ ^! M. q* t9 A6 d安装完之后运行s3cmd --configure进行初始化配置(说白了就是生成个配置文件), F, D/ l; Y" F) c
+ w- I8 s( g3 a5 q' e
; {3 |" M6 ?0 m: Q0 Q! W% {! [
* P7 v+ W6 X& P2 d3 p+ L" `) C
然后会提示你输入access key和secret key,没玩过ASW相关产品的童鞋可能会说,这俩key是干嘛的。用行话来说呢简称AK和SK。所谓key嘛就是用来认证和验证的。我们来看看如何生成。
( e- u' y4 G1 ?( P
% L9 P: K9 q! `# A. @" T! Q% {7 @3 J( K! ?4 O9 \; y
8 y6 q0 |( m0 N% g
你要用工具连接RGW那么首先得有用户吧,那来创建个用户4 j' f! Z- Y6 P4 |" v, M
; h% g. g1 J( f* m: m* y
radosgw-admin user create —uid=devin —display-name=“Devin” —email=devin@example.com. q6 s- T/ ~: C) c$ Q  E

3 h' a6 w. P# D8 j: ~  D3 w3 i) w创建完之后会有AK和SK的信息,记得复制下待会还要用。( v" W7 D1 n+ R
$ n! h9 Q! \* g

' e. P& T- w' n5 R  Z& u3 M8 X7 w5 W  }3 S9 P5 Y% I
那么复制完之后在进行s3cmd –configure配置
2 X# `0 ^- z# Q' ^! s- Y1 h+ S! t+ K* k

! z, T; G5 u- T/ P- i/ a0 J, K9 ]0 e6 ?& o
配置完之后就可以开始玩了。附赠s3cmd常用命令
8 M1 H% g0 I& T8 {. x; z% ]
- k% H4 ~8 Z! X6 n7 as3cmd ls  #查看可用的bucket* C  n( v4 a9 X) H
s3cmd mb s3://devin_bucket  #创建bucket,且bucket名字是唯一的,不能重复
8 ~3 k2 g$ @9 f& b! N' Qs3cmd ls s3://devin_bucket  #列出bucket内容
! Q! g+ Z. Y2 ~% V& r( i& }8 D" q: B4 y+ U) [
s3cmd put devin.txt s3://devin_bucket  #上传本地file到指定的bucket
3 ], d% a: N# l- [! ~s3cmd put --acl-public devin.txt s3://devin_bucket  #上传本地file到指定的bucket,并开启file的匿名访问权限
$ A; H5 H8 L2 c1 Y3 p" |) N/ ^s3cmd get s3://devin_bucket/devin.txt  #下载file到本地; Q0 `# f! }( N9 e3 j- |. x1 v

4 a6 B" p# o9 `2 W% x可能在玩的时候会遇到问题,那么怎么排错呢?
  F$ s0 e- Y0 H2 w0 }% ~+ @0 z* M$ n. O) d: }+ p
* W8 E* w* g+ b6 }
6 Q, T5 k: F3 L5 i' R) @: A7 d/ O
可以在s3cmd的命令后面加上-d 也就是开启debug然后排错。
/ ]' Q  S) ?- w5 ]$ n4 G, l3 e* m( X  `3 P8 M5 l$ V: N: q

! I1 ~) B1 ]" x+ A) i6 g
& S7 G3 ^: I' R+ a: N遇到最多的问题就是解析问题。那么如何解决解析的问题呢?3 J9 `1 k7 `$ Y' j% \9 P8 U

2 S8 b9 z/ B. ]. l* Z9 ~. f
7 R- \1 u7 R: `
" ?2 V. j# _* Q可以查看下这篇文章 《教你如何配置轻量级DNS》。
3 M0 [- d8 L6 a
( ]* [( e. o6 t+ t) |
7 Y2 E0 x4 Q9 H2 a. p. l  R5 }
5 {9 T! c/ h; f9 Z1 h* d然后还有一种方式,就是python-boto方式
9 w& J* q7 q1 L7 Q1 N! `- N! t. n8 q8 @7 x# K# F
" J% b( L: {! ]+ p, z& Y
3 i! v" n" a0 d& c: J: Q6 z
首先安装python-boto
8 \) t- O, P0 n' w  s$ ^! [; [8 S/ s4 a" y1 b2 L/ p7 [% d& f; C
yum install python-boto" x9 a& w% \& G0 J9 ]% i
! w! W0 N- s2 H8 y# n9 R- _
然后创建个python脚本
  |: n- ]7 o; F4 b& X3 m1 z: n/ g1 O
vi s3test.py
3 c* \+ w* e) @( ]  ~* d& L0 z4 z& S1 t0 A7 W& N2 l" W/ O. r
内容如下:- @; \% v/ H, y7 w# F
  G7 C8 y( V$ G+ f! n1 a, A
import boto.s3.connection
$ k9 n. t, u2 Y7 l' i/ C* Y4 J
# F& ~1 c- v7 {0 w3 \+ W% T% ]access_key = 'Y2S78LKZ1ROD0MGIDUBC'7 q+ a+ R$ }+ G( e# a' J
secret_key = 'LyGCgoydLI2MGA7C0PtynyfBa3aKODNYQ0sHDMtP'
2 q3 r% w* R& q8 ?' dconn = boto.connect_s3() P% K9 {2 |! o$ T" t5 e7 j9 F
       aws_access_key_id=access_key,; a  F+ v( h6 q, t) m1 U( O8 @2 O
       aws_secret_access_key=secret_key,) C' A# G8 b$ n% G& U1 E
        host='s3.devin.com', port=80,
+ V# p7 F$ A4 Z  g6 T9 ~       is_secure=False, calling_format=boto.s3.connection.OrdinaryCallingFormat(),
3 S4 m# U: k! X( X" `7 `0 M; G       )1 F% t6 R5 z/ T2 f  o) n
( p: F0 H7 J& a/ s. V: f
bucket = conn.create_bucket('devin-bucket'); b. B5 J- U. z; w
for bucket in conn.get_all_buckets():
3 r' K' P) \9 Y: I2 q) P0 I    print"{name} {created}".format(' C" _) x& ^6 n0 N
       name=bucket.name,5 [8 S8 y6 x1 T, h
       created=bucket.creation_date,
* Q0 a9 s' V( R( b7 B)) t9 F- X) e! G6 \

% p! B- s* g$ h( ~9 L8 r这里要注意修改的地方就是AK和SK还有host域名
. O; M# |3 D+ [- i
6 n( }/ U$ }8 U
5 Y+ o5 q  \( R8 w' X
0 I2 N, r/ }- O6 i: i; I. K/ @, P完事之后就是执行下脚本
' y7 U6 o7 V2 t! b: d+ C7 f4 e3 ^3 D* y* L! t1 z1 U+ U! y( L
python s3test.py+ [/ K/ K' z6 {( b* l

& B& {- t6 R, R脚本大概意思就是说导入boto s3模块然后借用AK、SK来进行验证创建一个名为devin-bucket的bucket,创建完成之后并打印出来结果。
- @7 t( O& `: |, _8 Z1 _0 V, }. N, x- W3 k4 ^+ L' g

9 J$ p; v9 h7 s: @* h1 A
9 T' E# Z- e) r  l% B% B) a- P% q2 s2 B/ C

9 J  l: [8 s7 `2 c% o9 U2 K/ k1 h! T5 o& kOK,本文Ceph对象存储到此就讲述结束了下篇文章来讲述如何对接OwnCloud网盘应用。7 q# W3 @2 C0 P  W2 q8 I3 W

, F# F- J& v% w" X) J
2 a) k/ {% \% f

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2022-2-9 10:17:40 | 显示全部楼层
2. CEPH网关服务配置( |  `. `' a8 P5 z
ceph网关其实是ceph集群的一个客户端,用户通过这个网关间接访问ceph集群,作为客户端,它需要准备如下内容:
' z  H! m  P# j' S9 u) R/ g网关名称,此处用gateway称呼) m# m9 w9 ?# W* d$ d2 g( k
一个可以访问存储集群的用户以及对应的KEYRING3 h2 Z) P. `& M3 `" E& M( a- N
数据资源池,这个由ceph集群提供8 R3 V3 T3 _3 k: A9 h4 W
为网关服务示例准备一个数据存放空间
# _: N; ?  K% \9 |: X8 B7 i在ceph.conf配置文件中设置gateway信息
1 i' j% D& q" K& q6 M* X
1 f5 v% R1 J: k$ D( q' `" A2.1 创建访问用户及权限设置- F0 ?+ Q. p. Q8 m* y3 e! ^/ a' ?( J
创建gateway keyring,一开始该文件为空
" e9 A. y6 {. @9 k  S9 Y
$ [) D- v: F# Esudo ceph-authtool --create-keyring /etc/ceph/ceph.client.radosgw.keyring
( B5 U- `. U: K! C5 Dsudo chmod +r /etc/ceph/ceph.client.radosgw.keyring0 c4 Z6 e) j: o8 A
创建网关用户名以及key  此处名字为 client.radosgw.gateway
, e$ Y% t+ u/ L* s' }1 r$ F  i* N5 ?/ @  P5 h9 S
sudo ceph-authtool /etc/ceph/ceph.client.radosgw.keyring -n client.radosgw.gateway --gen-key
) G4 ~7 h/ M9 W( p. ?  _6 U为KEYRING添加权限$ f- |6 T( X* J: Y/ X9 p0 ]
' ?+ Z# f& ~+ t( Z0 M. x
sudo ceph-authtool -n client.radosgw.gateway --cap osd 'allow rwx' --cap mon 'allow rwx' /etc/ceph/ceph.client.radosgw.keyring! E& f, I$ c& h1 o( G8 }3 c
将key添加到集群中
+ a" q8 L6 ~) C' x4 {, x/ d
9 Q2 @: u( d* I3 w6 U% i( psudo ceph -k /etc/ceph/ceph.client.admin.keyring auth add client.radosgw.gateway -i /etc/ceph/ceph.client.radosgw.keyring2 ]9 x( K6 m. |: H( F4 K( ~/ B
将相关的KEYRING文件拷贝到rados-gateway所在的主机 /etc/ceph/目录下
' W) c9 e8 g+ s4 x: \, j& v  F! J, |
2.2 数据资源池创建
3 f1 C4 v, }7 ?" R$ v3 Z4 Z.rgw.root5 k; |$ ^2 X- C# u! k% ~1 s  r
.rgw.control# Z0 i- c0 W$ i! N9 k
.rgw.gc( R; P, q1 ^% ?% u& C
.rgw.buckets
) c8 r8 ]3 _9 ~8 ~8 ~.rgw.buckets.index
1 A% c% A( F- v+ d( f6 w" M% [.rgw.buckets.extra0 v" m  B, g2 [4 ]! n' N( R
.log
) `1 R- u+ v* x.intent-log
6 a; C3 [4 G$ u4 l) {. o.usage6 }: E6 g( R, N' L# g7 y6 x! D
.users8 G: r5 n+ ~# B
.users.email6 z: v) z/ ~3 u  Q' W4 H; L# B9 s9 d
.users.swift. `5 O7 u9 N: ~2 @: _! q  I* I
.users.uid( I. A" s" K! c$ `* L
[root@gnop029-ct-zhejiang_wenzhou-16-34 conf]# ceph osd lspools1 o( `0 M# h! b+ n- b
4 rbd,6 pool-1,7 pool-2,8 .rgw,9 .rgw.root,10 .rgw.control,11 .rgw.gc,12 .rgw.buckets,13 .rgw.buckets.index,14 .log,15 .intent-log,16 .usage,17 .users,18 .users.email,19 .users.swift,20 .users.uid
5 R+ O$ C& F/ }2.3 将网关配置信息添加到集群配置中
8 {; _9 R; D! O5 }[client.radosgw.gateway]
3 c% F" b7 |2 I9 J" l8 rhost=ceph-24
( `4 T: j  m5 b8 h! A' b) Zkeyring=/etc/ceph/ceph.client.radosgw.keyring
, F2 K4 W" P7 u$ C& P4 orgw socket path=/var/run/ceph/ceph.radosgw.gateway.fastcgi.sock4 \+ J6 E3 R( m" j& j; i% y
log file=/var/log/radosgw/client.radosgw.gateway.log. A6 t; ]# a% U" Z
rgw frontends=fastcgi socket_port=9000 socket_host=0.0.0.0
5 j3 q: q; r7 i. X) C0 u' |) nrgw print continue=false
+ B! c  e# y2 t. U0 K2.4 目录及权限调整. P# B) y# D+ f
创建数据目录3 d; v, o% w& ~8 j; n# d2 @1 ~

3 j1 q1 [8 k9 o4 p4 O6 h. S- b' isudo mkdir -p /var/lib/ceph/radosgw/ceph-radosgw.gateway   ! z7 _# I& L! M
调整apache运行权限8 g3 I4 u7 ~3 q) E8 t: n0 V3 L5 P
sudo chown apache:apache /var/run/ceph
3 f" L" K4 T* C7 C# k调整日志权限3 u- w% L2 U% d6 ?. W
0 w& ?! @# X0 F# t* J" Z/ j
sudo chown apache:apache /var/log/radosgw/client.radosgw.gateway.log2 E( H" I/ O# I
启动网关服务sudo /etc/init.d/ceph-radosgw start
# ?8 e1 g$ M/ ^5 I8 ]+ Z3 j# m3 i! G
2.5 网关配置文件
6 k) {5 I0 _, X6 A" C  X5 c- q一个配置文件,用于web server和FastCGI之间的交互
8 r/ u8 i# I& m$ F) X: x9 K' Vsudo vi /etc/httpd/conf.d/rgw.conf
0 p2 d( A! e9 C
8 n" _! B  W* D+ T0 e  a* d<VirtualHost *:80>
" v8 }( E. h  l5 u+ N) WServerName 101.67.163.34
! X( ]5 q: O7 A8 J4 W# JDocumentRoot /var/www/html
3 Y6 l# U) {5 p  B% ~6 Q/ u2 b  I
ErrorLog /var/log/httpd/rgw_error.log; a. z, O/ c2 H' u8 u( U
CustomLog /var/log/httpd/rgw_access.log combined
4 M# \6 N8 C& U/ W
1 T. I, s' w1 `% p4 \& }1 a. GRewriteEngine On) P/ I5 v, D; r! h2 W5 V( f
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]
/ c- m  m, G! f. K6 o8 G. T( P. B# `* x8 n# P0 B7 p* `! W+ U1 _/ b. @" B' n
SetEnv proxy-nokeepalive 1
, V. e0 Z$ n# p" F; K( }# e# n4 h6 G8 t+ O
ProxyPass / fcgi://101.67.163.34:9000/
: _3 U. t7 R. X  W1 D</VirtualHost>
5 y1 J6 Z9 Y- D# s0 o0 u其中标红的地方是要根据实际情况填写
( Z4 o# d4 ]' @4 L8 K! e: I% ~) p- h: u5 ~2 n
2.6 用户创建
- C  C+ R) Y+ v8 @  N2 L, q, Nradosgw-admin user create --uid=xuwenping --display-name="ceph xuwenping" --email=xuwenping@d***n.com
$ G1 N% a) c/ B9 k{
$ H& c% }* p; H) |3 M' d    "user_id": "xuwenping",
# b5 b! H+ z0 q/ T7 s  ~$ j    "display_name": "ceph xuwenping",) [6 I# J% G- \5 j
    "email": "xuwenping@dnion.com",. p4 t. _% d+ v6 d: Q
    "suspended": 0,
9 B2 y2 d3 _% ^* U' h# ]4 W    "max_buckets": 1000,
$ z6 r8 L- e" M# h, Q+ V! ~/ R: [    "auid": 0,
! |  I7 N6 N4 Z# V    "subusers": [],
0 T; x# b7 q9 H/ h& N9 m; \0 K    "keys": [
/ v7 c% w0 T8 P        {3 Z, g" I+ K' `; V# E
            "user": "xuwenping",
* l& h7 H/ [1 }* u( R; f/ N            "access_key": "4J3GD7GJIJKSDCVS1I9T",+ T' x8 I& f3 G; T2 u4 _* B, H
            "secret_key": "yfmxvzQdWT4EmVDijOFp6oNt4kZ25y9wRVARas4I"
( O8 `3 j% G$ P( }! k2 V        }
8 R3 E: _* k1 e' D% D3 b- k7 w    ],1 R) [' y# q9 h3 X# S' h4 l
    "swift_keys": [],
- V& D7 M6 z5 p# w" _    "caps": [],
! T+ P% f3 t# y4 g0 N/ D    "op_mask": "read, write, delete",
" f* W# I6 ^# g. _. u0 ]    "default_placement": "",+ m! U7 p! E0 m2 J& \& A
    "placement_tags": [],
  t6 E$ M/ ^+ x: D7 x) L4 {" l    "bucket_quota": {; ^! p! i5 Q3 X! ?7 a4 g, R/ Z, i
        "enabled": false," s6 |4 [  T  P' v; u
        "max_size_kb": -1,4 Z5 @4 x' b$ Y' u# M
        "max_objects": -14 q8 k) W! o7 D$ W& g
    },# Z6 ~& W0 b( O, Y5 j* p
    "user_quota": {2 ?4 G7 x/ u( A, z2 K
        "enabled": false,1 H% D! n) U3 ?8 A
        "max_size_kb": -1,
& n! I$ K; n) Z/ ?6 I        "max_objects": -1& N  z4 q$ z; R" h4 e) b: D6 |" {
    },4 V9 D& J9 i* y0 v3 o4 N2 ^, e1 C
    "temp_url_keys": []7 n" r% s1 `6 F6 T8 s* Y
}: R; d/ F: V* H% a' D0 O5 i+ m
创建SWIFT类型USER" q) L: y+ C* `
8 a9 N( y% `& b& G; n
sudo radosgw-admin subuser create --uid=xuwenping --subuser=xuwenping :swift --access=full. t3 G3 Y6 X5 }, B! v$ x

5 p0 M+ i. v. M6 g' d* y2015-10-10 14:19:19.854951 7f402eadc8a0  0 max_buckets=1000 specified=06 K" L# j) ^& M% n9 h, T# _8 w) c) d
{/ ~& ]# U! ?+ ]6 B7 o* B
    "user_id": "xuwenping"," \, h( S1 W- B; ?) {2 n
    "display_name": "ceph xuwenping",3 P+ C2 r3 i) u5 D1 a9 I
    "email": "xuwenping@dnion.com",1 E& b9 N1 |7 d
    "suspended": 0,( ?! w; k) }2 O: E
    "max_buckets": 1000,
' ]/ \5 r2 a) N3 n, v    "auid": 0,
  O" y, Q; M* r0 w2 Q0 x    "subusers": [0 ]% k6 }! N- H# L4 q
        {
$ ^7 q0 b+ B/ C            "id": "xuwenping:swift",6 g2 \" C+ {% c( p
            "permissions": "full-control"  d: L" i8 l/ M4 ^8 D
        }
0 Y. p2 ?7 U1 j5 a    ],
( j9 O; D* h: r, |8 I    "keys": [
1 S$ d* a( j  N2 ^0 i        {! B1 V" y. v/ J- u( R1 w
            "user": "xuwenping",# h# x% |9 F* V+ {9 b
            "access_key": "4J3GD7GJIJKSDCVS1I9T",) j' K$ c9 {  J; p
            "secret_key": "yfmxvzQdWT4EmVDijOFp6oNt4kZ25y9wRVARas4I"
/ W2 N5 U+ l5 x8 k7 y: P        },
/ @/ `; `5 M* S" {- w# }" D" n        {
+ N9 O. z! n5 h: I" K5 G7 s            "user": "xuwenping:swift",
1 J& r! N5 c8 @$ a6 @+ W            "access_key": "PEIT99BBWMZP31BD6S3I",, I* O* Y) f& M: R
            "secret_key": ""1 G1 m7 W5 w9 f* z
        }
+ t+ q- l" h. p& o9 i8 q" O$ z    ],% e$ [. \) U: F
    "swift_keys": [7 S8 r% ~* D2 k9 t( Z% N' k  w* h
        {) `2 p6 g/ L/ i! J$ @
            "user": "xuwenping:swift",1 _3 j7 O5 O7 q
            "secret_key": "qWHPhvUy4md1XSa2PSbcxUyMU5YXodlqxt0ZC2hn"
8 g" U% V/ a4 L( E3 G+ R8 G" [        }5 z" E: T1 u  d! W2 O# T+ e
    ],5 v- a& q# r8 w4 J/ `
    "caps": []," J7 Y- h2 w" @7 A- H
    "op_mask": "read, write, delete",# k* J6 `2 [$ ?8 J: G5 |
    "default_placement": "",! j9 N+ g6 C7 d+ V4 J! p8 x0 l
    "placement_tags": [],
0 E2 F" B9 I+ }$ P    "bucket_quota": {
& h( h- @0 n, _. M5 J, \$ X        "enabled": false,
8 z" l" ^; c/ X1 u% f: c" ^        "max_size_kb": -1,& b  L; Y; l0 u% n
        "max_objects": -1
3 Z% Y# M- B5 `    },
) I! {# _; a7 l2 t    "user_quota": {
$ \3 v: J) Q5 i1 M& L# N        "enabled": false,( f$ v: V) A9 g& t
        "max_size_kb": -1,$ ^+ j: n+ j) Q9 k' c! U
        "max_objects": -1
( r2 y" Y8 @! o    },8 z$ M( z3 |+ D' z% H
    "temp_url_keys": []
* M7 i: l; u: g# m' _}8 [: B" w# M2 X, r' Z
2.7 实际验证+ ~6 R% N' X- U2 S9 }4 L4 V
编写了一段python代码,用于访问网关,并创建bucket,并通过list方法罗列出当前所有的bucket (官方示例)+ S& ?* c8 P6 _& L
) ]" h6 B* T5 t9 s) X( ^
依赖库安装+ @! H% ]7 p9 F2 P* r" S
  N' ^' s" w$ u% D5 F$ _
sudo yum install python-boto
- l7 R. v% |% L, ~import boto
' v0 ~  k. l( G" E1 v, mimport boto.s3.connection
$ R. y2 I( [& M7 V' Y& G0 ]8 [/ \access_key = '4J3GD7GJIJKSDCVS1I9T'9 Y. w* v4 m* M6 ~
secret_key = 'yfmxvzQdWT4EmVDijOFp6oNt4kZ25y9wRVARas4I'* U+ ^% |% E" H' D3 b
conn = boto.connect_s3(1 J6 P1 K; x' Z8 I8 \) U) e
aws_access_key_id = access_key,5 d7 V+ W' p8 _7 U- n
aws_secret_access_key = secret_key,3 \6 C1 O: ?: q! D. C& V9 ~
host = '101.67.163.34',5 y" l% M4 \% ]3 }
is_secure=False,, _+ P" Y. B% W  z4 ~/ L7 J
calling_format = boto.s3.connection.OrdinaryCallingFormat(),  d9 b% C5 n9 n
)0 O4 ^2 b% L; w7 f, ?1 ]
bucket = conn.create_bucket('my-new-bucket')+ A) z  @+ Q1 E9 l; v' ?
for bucket in conn.get_all_buckets():
/ n+ @8 z' V, x  w( S$ e4 s7 R        print "{name}\t{created}".format(
: u. g/ ?# z$ P' ?9 }3 E4 Q                name = bucket.name,
' Q& g) M0 z, \; J6 c5 h                created = bucket.creation_date,) e+ Z  C4 k) K; W  e
)
! N! o7 S2 m/ o( U8 y, s( T运行结果
( `: ^( @# x& Y( s4 w0 D8 ?9 z9 E+ a3 _: l" L: B( }
[root@gnop029-ct-zhejiang_wenzhou-16-34 ceph-rados]# python s3test.py ; U# q, q& b! L/ ^9 R
my-new-bucket        2015-10-10T06:23:48.000Z& ^: m5 ?5 z" i
至此,Ceph集群的对象存储网关安装设置完毕
) _5 F& _  ^% q  ^/ D
) d- }; {* \0 ]附:! l8 ?2 T) w; \$ c8 t; q
  o# T% y4 K6 h0 C+ G% T* s: Q
有时候通过yum安装软件是报如下错误:
: i, r+ T' e+ t, o; ]' \' R: ]7 T: b8 e7 y9 M
Downloading Packages:# P& i9 t" p% l" s2 Q1 L
warning: rpmts_HdrFromFdno: Header V3 RSA/SHA256 Signature, key ID 0608b895: NOKEY
" Z' s: n- D* w4 B) _& B1 J3 BRetrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6( C& y% y' t! |* W0 \
# F4 N0 O& R% W4 Y$ W1 K

2 F6 v# I! C3 G7 x# p" GGPG key retrieval failed: [Errno 14] Could not open/read file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6% H2 C0 _) Z( s0 x
在执行 安装命令时带上如下参数即可:
" w) |8 T3 u2 X! w; A: C: v3 O6 V
. B8 c( o- w% Uyum install mod_proxy_fcgi   --nogpgcheck
8 N( ?( O) h/ }4 B, q到此,关于“Ceph对象存储网关的安装配置”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!
2 g+ B# {: Y0 E# ^+ q2 H
/ @6 x7 U' D0 o- a  S8 ?$ j
您需要登录后才可以回帖 登录 | 注册

本版积分规则

返回首页|Archiver|手机版|小黑屋|易陆发现技术论坛 ( 蜀ICP备2026014127号-1 )

GMT+8, 2026-6-12 02:03 , Processed in 0.018247 second(s), 22 queries .

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表