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

Ceph对象存储如何部署

[复制链接]

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
发表于 2022-2-9 10:11:24 | 显示全部楼层 |阅读模式
因公司项目上有使用ceph对象存储的问题,需要了解测试这个对象存储的问题在哪里,于是找了很多相关的ceph对象存储资料,现在就来看看Ceph对象存储如何部署
4 s1 z  I6 ]" j# R( s; a2 r' p
' P' O1 s. S! D7 |) i
) D  N7 J: V9 u  ^6 N
: s/ |' b3 j5 U9 G' ^) f& m' V首先呢就是部署一套Ceph环境,这里就不再赘述了,网上好多安装文档,都比较清晰了。  a$ Q+ p: P3 ~1 o8 o7 S

: c& |; M- q- S  h1 c" p- u) j2 S. r3 s# y

8 [2 Z& d  h) S% I$ Q2 Z. p1 V重点说下RGW部分8 j3 Q+ N. Y% E9 _  P/ Y9 j

, E' S1 P3 d9 C- x$ H- W+ ?/ I
  h; l# K! q5 f* C6 N
  j! D# D+ B4 Z0 B3 N* o( R安装完集群之后
- S9 F4 \- g$ p( o# l/ H& H3 G) }; M: b# m* Y8 [! \+ I
ceph-deploy install --rgw devin-ceph1    #因为是测试所以只用一个rgw5 i+ Z/ r* Q1 S0 @# W- t& o
/ E$ E( `4 Q4 K2 d  w# n
然后创建RGW实例0 b* e7 m. R! q" Y. n1 K
3 D$ X* L5 }! `! U: U" Z
ceph-deploy rgw create devin-ceph1. {- I! {2 ]8 ]8 F9 x

# r0 b% J- x0 Z3 V( p那么这时候就OK了,成功后会提示你访问7480端口9 u+ K! R6 n/ G0 K" A. @

5 h9 s2 C6 c" N: Bhttp://10.0.100.201:7480
! C( H+ o) f  f0 [0 G) M  Y+ @( I) T. |% d5 @2 ?
你会看到如下内容:
9 N3 {. T. R7 s$ ?4 \
1 c; M3 ]) a" i+ n: x$ `4 X<ListAllMyBucketsResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
8 Y- Z1 Z  e1 S<Owner>
6 u- u5 w1 `1 i$ B% V+ x<ID>anonymous</ID>
4 i+ t8 g9 Q) L  I$ x<DisplayName/>5 ?, N) _8 v5 _( y& P3 d
</Owner>  A7 w4 n+ S2 e1 s( v
<Buckets/>+ }+ [* k2 F1 F+ t
</ListAllMyBucketsResult>
6 u5 s6 B# D% n* P% s% y$ d; V" Z% n7 c+ _7 v
由于RGW默认采用的是Civetweb,默认端口是7480那有人会说了,那我可不可以修改RGW端口啊。答案肯定是可以的。
& P% N+ q6 J& }. b! l) |
. {# B# r, C" G! s0 I* }8 e; y6 Q! }% L" ^1 H) C6 j

, f- [4 m7 Z. _$ f# e修改Ceph配置文件进行修改。下面看看我的配置文件* D" M* ^  b/ G& T
  E5 y( L- E- Z+ F* o
[client.rgw.devin-ceph1]
( l+ n2 [1 C5 x3 qhost = devin-ceph1: I* d8 [4 i' K0 n
rgw_enable_ops_log =true, J6 I& P: @8 v) J2 ?, z, p
rgw_frontends ="civetweb port=80"
9 V, o4 k; N1 q8 Nrgw dns name =  s3.devin.com, ^8 q4 o& h0 A- w+ w& ?
rgw socket path =/var/run/ceph-client.radosgw.sock2 F" `" i- u6 j, q. n, g
keyring =/etc/ceph/ceph.client.radosgw.keyring
2 ?9 |7 l/ A9 ^3 o# C( I+ ~( b; u! e- i
: d, P% E4 |. j! L9 w& f: V
) h+ N1 d7 ]) e3 J
可以看到我的端口设置成80了。
% E& m' N& Y  w% W- b8 ?! x6 W) T. o; s! G2 b5 u# ?- [

$ q; l3 F( S$ n4 y: s( `* O. D' p9 S9 p( S! r
修改完配置文件之后同步到个节点然后重启rgw服务
2 _: D8 e' X4 D# N7 R) B
' ]0 c- q: M& r; E# \' cceph-deploy --overwrite-conf config push devin-ceph1 devin-ceph2 devin-ceph3
  ~8 {" K" h% @" w; H3 ]2 D7 u1 X; X# R$ l# o' V+ b# U5 V8 {  z
systemctl restart ceph-radosgw.target9 `! i# p" h8 ?2 o
: q; B- k3 \* T8 j2 O0 t9 F0 S
那么到此RGW安装完成了,那么RGW怎么使用呢?或者说怎么证明我的RGW是好的?% F- K4 i/ J. q9 t

5 q& F$ M$ e3 l. {9 ]3 B5 x! M
# M/ O$ \9 v+ I7 ^4 Q' i
! @, ?! n- V* s! L. `0 t可能会有人说:你笨啊,刚才都能访问页面了,就证明成功了呗。) z) }& h/ w# i- d6 W
3 [. W4 A' W9 l0 ^

7 A% E/ M) t/ N& I5 t- H9 _
; k9 i/ R( K, A可能又会有人说:光访问个页面管P用啊,要能用才行。& o& \& R0 e6 D3 f4 X

1 Q' D7 Q3 m4 Z4 M2 O. r9 e6 b  R# z- U9 P: U( O
8 w* O$ r0 ~& ?  b% i8 t7 L
别急,下面我们来说下两种方式来玩,一种是S3cmd方式
5 ?' @( o. T2 H9 \
3 x. N4 q# J" y7 M  K7 [1 V
1 H, }( x; z! f0 O" K. H8 }$ \- J
2 I( @7 l! ]9 A$ x首先安装S3cmd( Q1 Y# H  b' v: ~: C" l4 y9 w. X+ D
& T2 i, u1 m8 l9 B: ]% _$ ^
yum –y install s3cmd. x- M4 \8 C& l* ^# f: v
* \7 ~! y; S, Z
安装完之后运行s3cmd --configure进行初始化配置(说白了就是生成个配置文件)1 @9 a0 U: A* B' H: D& h6 M/ T

1 O  d) Y0 }' ?4 t. y+ F) H. ?) t" ?

: R9 S2 \5 w  V9 U: s, T: z然后会提示你输入access key和secret key,没玩过ASW相关产品的童鞋可能会说,这俩key是干嘛的。用行话来说呢简称AK和SK。所谓key嘛就是用来认证和验证的。我们来看看如何生成。5 q$ d# l' ^6 U5 q% u
7 Q# d9 @! F9 E( H2 {' @# v/ ?

) K4 T- |6 R! |1 f+ `" h( G! T( U( i' k7 B% \
你要用工具连接RGW那么首先得有用户吧,那来创建个用户/ }( O3 `, I! t7 |1 W4 U* n

1 T8 U) A- |3 ~9 C! I8 n7 M9 F8 j& o: xradosgw-admin user create —uid=devin —display-name=“Devin” —email=devin@example.com
* \8 M1 @6 M0 Q8 y: L, {6 l- |0 ]1 }3 e8 K( N3 d: M! F& d
创建完之后会有AK和SK的信息,记得复制下待会还要用。% C9 a6 M; e5 B; n6 z, q

9 C$ c) R. U+ ?
2 j/ Y' S+ z3 q. Z. N) h( c( g) m' A8 H( v5 i7 q: R
那么复制完之后在进行s3cmd –configure配置
* ~5 ~! v8 F3 i& r3 n( A5 c% w4 Y. |6 l) Z
( n: Y' H; A1 `; h) T" k9 w

: g' }1 m$ J( b: Y. v& m配置完之后就可以开始玩了。附赠s3cmd常用命令
; O, s" u$ L+ @  G. g
( ^; v9 T$ q+ I" i8 vs3cmd ls  #查看可用的bucket/ X' S8 [- Q" D3 V$ d, Y: M/ t  i
s3cmd mb s3://devin_bucket  #创建bucket,且bucket名字是唯一的,不能重复
! H9 z; R( n& \. Z9 q8 Z4 `s3cmd ls s3://devin_bucket  #列出bucket内容
. G# @+ L" A# a/ _: u9 c" m
. j: L; x' ~3 S+ {s3cmd put devin.txt s3://devin_bucket  #上传本地file到指定的bucket
4 Q2 k6 Q; B) G, _- w6 M+ [' ^s3cmd put --acl-public devin.txt s3://devin_bucket  #上传本地file到指定的bucket,并开启file的匿名访问权限; v& D4 s/ Y2 F$ g* s1 ?& F/ [
s3cmd get s3://devin_bucket/devin.txt  #下载file到本地; s& a+ Y7 S/ t
7 J3 s5 D* X/ A1 k% L+ ^7 W
可能在玩的时候会遇到问题,那么怎么排错呢?
6 K2 s  @% M9 d3 Y+ e+ H6 f
5 v) C& o$ n3 G$ Z: i% V" ]% ]% y' Q) \
2 ~% z$ u, Z% g4 h6 v. E; \
0 [- L8 W4 B7 J. I  ]可以在s3cmd的命令后面加上-d 也就是开启debug然后排错。
& \: L# z7 E% _: ]$ ?" q
1 m7 j/ U* o7 b6 H
2 J: }) `: r- ?3 @5 Q2 k: j( A- b
遇到最多的问题就是解析问题。那么如何解决解析的问题呢?
4 }3 K5 `% }5 j' r5 ]
; \! c% C0 R/ F3 R  c
! s' P9 R- N& l6 y4 A( a$ H6 y% M7 a
, n5 K( @5 ]. K, B: `可以查看下这篇文章 《教你如何配置轻量级DNS》。9 Y7 w' v' u" `" ]1 [) B/ S( @
2 G* D5 p9 M: h; z8 q

! S+ f/ y4 G9 E0 ~  p  D4 x
1 P- {) s* O: x. k' n, J然后还有一种方式,就是python-boto方式7 z- c" p7 t6 k8 c/ w' ]
" R. O: e1 V4 x

5 V8 ~$ P8 g' k4 ^# z! B) X' x
0 n* c) E, ]' d: b2 D& j首先安装python-boto
( K. \. I0 Y$ M3 X7 D- Y
6 Y) l  _: q' }/ ^4 Eyum install python-boto; x9 T$ B* Y! g  p
0 ]8 N. }2 q5 K' m- X# J
然后创建个python脚本
0 R* Q3 j* |: v7 N
2 M9 Y; A2 p* zvi s3test.py
9 b& I0 C9 |# U8 M+ y- d7 z3 E, t3 E. Z6 ?; _( ^" v% n- r
内容如下:8 ~  Y" t' R7 G) s

  G! N) J" r" W( a7 {3 V$ Rimport boto.s3.connection$ X. s& g' F9 h4 P$ l0 |

/ f+ |+ }! b) R& m2 Gaccess_key = 'Y2S78LKZ1ROD0MGIDUBC'
4 M  G9 n1 [1 J$ Y5 [% n% Lsecret_key = 'LyGCgoydLI2MGA7C0PtynyfBa3aKODNYQ0sHDMtP'' [& A" |% q3 m- N3 `7 g4 ?
conn = boto.connect_s3() |2 B; C" B3 O
       aws_access_key_id=access_key,9 _, s, S/ f1 N1 A# `
       aws_secret_access_key=secret_key,
4 l! B- i9 U* h/ T& S        host='s3.devin.com', port=80,
/ C  E# U2 W$ m) _7 ~       is_secure=False, calling_format=boto.s3.connection.OrdinaryCallingFormat(),' ?; O7 L5 Q$ }! a* k
       )
$ ~, i% C+ a. _& \/ ^+ ?" i( T4 Y( D/ q, z  S
bucket = conn.create_bucket('devin-bucket')" u9 L$ D- r7 ~2 }% d) ]
for bucket in conn.get_all_buckets():; S" n: |* V( N6 y
    print"{name} {created}".format(
8 D5 a# J; [1 k& v       name=bucket.name,3 O$ [2 h' J( I# {
       created=bucket.creation_date,
4 w  @/ L( b. _+ [)
/ H! L8 E1 \& P, h3 D4 ?( |4 u# o; x0 ^
这里要注意修改的地方就是AK和SK还有host域名7 t7 x: H% k# i3 w, u

8 N0 }" J) v# O; U
8 b* l% \! R9 A2 q) `) \$ R$ u4 R% c9 b( N
完事之后就是执行下脚本& {2 {9 d3 V9 R% W( ]) A

0 w8 ?1 u! R" Cpython s3test.py' j9 B9 V4 q5 I6 J9 x

& \# T6 a: I! p0 J脚本大概意思就是说导入boto s3模块然后借用AK、SK来进行验证创建一个名为devin-bucket的bucket,创建完成之后并打印出来结果。
4 Z0 i# y& [: _6 I; \6 c! X/ m1 |7 C; e7 e, m" H2 V8 E2 a

& p5 ]# V! w6 P' |% k
- x% c! f/ l0 _. ~. h3 g. S2 p+ ?8 T7 C' x% K2 U
  A; _$ G2 ~" p+ n4 x! c0 E6 c
OK,本文Ceph对象存储到此就讲述结束了下篇文章来讲述如何对接OwnCloud网盘应用。* p  b' ]( S/ L- z, O8 F" Y6 _% _, y

% j" \& k- V5 }: e. Y+ ]; |
5 f9 @# ~0 a* [- `8 f5 z

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2022-2-9 10:17:40 | 显示全部楼层
2. CEPH网关服务配置
1 y) a. j- y) p) X' eceph网关其实是ceph集群的一个客户端,用户通过这个网关间接访问ceph集群,作为客户端,它需要准备如下内容:& ?! E8 b( t' P
网关名称,此处用gateway称呼6 `7 \) e! d- @# v1 Q; K$ N' m
一个可以访问存储集群的用户以及对应的KEYRING  k  j- ]8 @) O- r! K1 m
数据资源池,这个由ceph集群提供
- G2 Q& m( W/ ^6 e: q5 T' B( b为网关服务示例准备一个数据存放空间. ]! i& P4 Q/ q
在ceph.conf配置文件中设置gateway信息
; H' p. \- U$ z) j6 S" h% o* e% b/ V3 o4 \4 G# g& B4 [
2.1 创建访问用户及权限设置4 K$ R( \7 {2 p- k  N( F5 S
创建gateway keyring,一开始该文件为空9 C1 M. m) N# [- Q
- C: x1 P, |$ V+ n+ b! D
sudo ceph-authtool --create-keyring /etc/ceph/ceph.client.radosgw.keyring+ j  L" y/ z' `! f7 r- Z0 K
sudo chmod +r /etc/ceph/ceph.client.radosgw.keyring
6 F7 b7 M/ p! Y( J6 r. b% W创建网关用户名以及key  此处名字为 client.radosgw.gateway 2 b2 u1 Z9 N* V) i9 [

6 W; b+ y$ P" Q0 `sudo ceph-authtool /etc/ceph/ceph.client.radosgw.keyring -n client.radosgw.gateway --gen-key
# Y/ c( X/ i# ]为KEYRING添加权限
4 b! ~1 Q- A+ n3 l6 m
- {) D5 T, \8 a7 Nsudo ceph-authtool -n client.radosgw.gateway --cap osd 'allow rwx' --cap mon 'allow rwx' /etc/ceph/ceph.client.radosgw.keyring
, P7 L, g2 L( n1 q. y6 f将key添加到集群中0 K6 t- D7 O! ~* k! Q% S' N
! ~) Z' t' ~9 k! B1 X
sudo ceph -k /etc/ceph/ceph.client.admin.keyring auth add client.radosgw.gateway -i /etc/ceph/ceph.client.radosgw.keyring% b' ^# k/ K0 n
将相关的KEYRING文件拷贝到rados-gateway所在的主机 /etc/ceph/目录下
/ ?6 [% G6 x) G% U  D$ E2 Z; a# q" {! L) |5 Y, e/ X
2.2 数据资源池创建1 V' f2 z9 U6 N' {$ P
.rgw.root# h: m' p7 b9 v5 |; k
.rgw.control: E; ?/ q& G& k& Q! o
.rgw.gc
1 w, t3 |4 l9 }.rgw.buckets
9 w+ }) u2 b6 l. S.rgw.buckets.index
# y/ L9 I" n' p) |- O2 C( C4 J.rgw.buckets.extra
6 o4 ?7 ?" Y, ]; U.log; `/ r1 i* L- ?' W" ~7 ]! l$ ]
.intent-log; W1 \5 Q' h3 G" B$ B. T
.usage
0 M# @* O9 e3 {, J1 }! [, a0 Y.users
2 j& p# b8 V$ g1 l6 g0 b* _7 N.users.email9 z$ u# j( \% t4 W% }
.users.swift
$ v7 C+ }6 Z! n4 f0 ?' y.users.uid
3 W; A7 ?/ `% K! |3 ?$ o4 j[root@gnop029-ct-zhejiang_wenzhou-16-34 conf]# ceph osd lspools
* H' i( z, k! y4 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  n% R* b8 l) p) u: Q) O9 }3 m
2.3 将网关配置信息添加到集群配置中
3 B4 W. \/ `3 b[client.radosgw.gateway]
/ z% y: C% |0 _3 ^0 z0 Whost=ceph-24
& C, ^- v/ h1 D5 u4 {! Q+ C1 kkeyring=/etc/ceph/ceph.client.radosgw.keyring
' k% d4 [6 |, w6 O* v& |9 Wrgw socket path=/var/run/ceph/ceph.radosgw.gateway.fastcgi.sock
. \& d2 F0 F1 `; S- q; C9 ylog file=/var/log/radosgw/client.radosgw.gateway.log
2 S3 O3 _9 b6 G3 b5 {( Grgw frontends=fastcgi socket_port=9000 socket_host=0.0.0.0$ }9 o2 [- @/ U
rgw print continue=false
; m' J; U& p- v" o1 w& d" L; q3 X, a2.4 目录及权限调整% Q1 u$ M2 c  C0 M; s: M* R
创建数据目录
: G0 S9 _/ W9 Y3 P1 M2 l
3 [: t- X7 u: O7 g1 `) Psudo mkdir -p /var/lib/ceph/radosgw/ceph-radosgw.gateway   
( L$ z. g) U4 s0 X  o4 ]* C9 }调整apache运行权限
% j- D# ]7 K' Y+ |3 w6 R/ Qsudo chown apache:apache /var/run/ceph: v( l+ g) i! Y  U
调整日志权限4 _1 h5 ?( k$ h& j, r  k
) v9 I( O; a. {: b/ f9 ]1 u
sudo chown apache:apache /var/log/radosgw/client.radosgw.gateway.log
/ _1 [# O' R6 I: E! _# S启动网关服务sudo /etc/init.d/ceph-radosgw start
/ s/ i  `, ?$ |3 U4 z* g- S& {
9 J) X% w5 d1 O" r/ I2.5 网关配置文件
, x1 O; d" z) I& @9 J! i6 k. A一个配置文件,用于web server和FastCGI之间的交互5 Y7 H" Z$ O2 H9 v) a& ~
sudo vi /etc/httpd/conf.d/rgw.conf$ b' a" z3 o8 w: m$ W

! U* C9 [' q. u% G" W1 X0 Q9 N<VirtualHost *:80>7 t, r  J3 o& h( r
ServerName 101.67.163.34  L( K' K) ]+ Y# |
DocumentRoot /var/www/html
! r* o+ l( c- I  j
2 |) t" G5 X. i" |: k1 H& @% qErrorLog /var/log/httpd/rgw_error.log  U7 c: H5 I, Q! V4 m# [7 D
CustomLog /var/log/httpd/rgw_access.log combined
' ?, U1 {( Y/ o& x7 A
. |/ G6 Z6 V( P8 M" r3 YRewriteEngine On: b2 k# ^$ m& ^" j
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]$ E# Q( Z7 Q2 F5 j7 r  V; a

0 Q% E7 c9 A1 ~. @5 h' v/ RSetEnv proxy-nokeepalive 1
8 r! O9 D7 U2 a& t( D5 p/ O4 t/ [1 H
8 a- R1 C4 I, W6 I0 j7 [ProxyPass / fcgi://101.67.163.34:9000/
' W& G  k! j, S5 f) `, p</VirtualHost>  Q% t3 p- b" @* Y' P
其中标红的地方是要根据实际情况填写
4 s4 n0 K5 e1 j# H7 Z) H4 J2 L3 Z, Q8 ~5 K) Q
2.6 用户创建
, N! w1 u7 }3 x+ T6 ~. pradosgw-admin user create --uid=xuwenping --display-name="ceph xuwenping" --email=xuwenping@d***n.com& X) [) S0 W5 t) L
{
7 n9 h4 ?- G& H+ p' Y; D    "user_id": "xuwenping",
" U. H; ^9 m  n, |2 P: f    "display_name": "ceph xuwenping",( O; }4 [& O* L2 @
    "email": "xuwenping@dnion.com",( {0 }$ d. g; o! ?
    "suspended": 0,
1 U1 {# s* i2 c1 X    "max_buckets": 1000,
& m' f- _: Q: u    "auid": 0,
$ A) A, d' ^8 m8 X! k  M1 C    "subusers": [],
# Z9 X  |2 h; _  Y* i    "keys": [
' X1 r2 C. G: X- C, m& q; @3 W        {
9 K, h8 F* _3 B7 Z' ]6 o1 X            "user": "xuwenping",, i5 z8 {! y  D6 s
            "access_key": "4J3GD7GJIJKSDCVS1I9T",
: w, c* o2 g7 v7 q+ q            "secret_key": "yfmxvzQdWT4EmVDijOFp6oNt4kZ25y9wRVARas4I"0 V: m! `) z( W
        }& ?3 H& [, P4 \+ Q, w  i
    ],5 ]9 a4 X1 B" [  t+ s/ N. y
    "swift_keys": [],9 b, H9 _4 s" x% @! T- [- E
    "caps": []," J9 V+ H$ H' y* q
    "op_mask": "read, write, delete",
' i1 h/ {- }1 V2 ?0 U9 H* t    "default_placement": "",' j& d5 [) a. E3 ?
    "placement_tags": [],
3 `. [9 H0 c( M# \/ W    "bucket_quota": {( a9 R/ {/ z$ Y7 m2 T( I
        "enabled": false,
( d6 D) a# f/ K        "max_size_kb": -1," |" v0 p) A( E) z3 v$ `' L
        "max_objects": -1
! u$ K  r: _; T# o+ |% h/ |, W    },
1 y9 n9 E9 i/ g. R) p8 k* S% v# X' c    "user_quota": {6 `0 E+ S4 K" q8 ^( R+ l
        "enabled": false,# G* A$ }  c% L5 k9 M6 }2 o9 ]
        "max_size_kb": -1,
: y) P) N3 s$ _1 n: h  o        "max_objects": -1
, }( Z  r5 t! d) a0 K) _" y$ i    },
5 S8 o% V& a$ y  z: q) W- p3 o    "temp_url_keys": []' F* u$ o; G% u' G; }( h) Q
}
% }$ f3 J1 ]. X/ C2 P* E: A创建SWIFT类型USER
% ^7 n1 A5 i6 M4 c# Y5 V" q: v& b
& f0 q2 i6 z6 A% h1 r2 t8 u; Csudo radosgw-admin subuser create --uid=xuwenping --subuser=xuwenping :swift --access=full
: d/ O' _- f0 D9 u
5 Z! O! Y/ e1 i2015-10-10 14:19:19.854951 7f402eadc8a0  0 max_buckets=1000 specified=05 K6 H5 u$ o9 s0 Z
{
! g' O7 s' g8 b# B/ A3 d' W    "user_id": "xuwenping",6 _2 E. Y6 w; V: D  K6 s. v
    "display_name": "ceph xuwenping",' ]/ _! B& t8 H: T- N4 t
    "email": "xuwenping@dnion.com",
/ S8 `  T0 z* {5 ~: Q* ~5 Z    "suspended": 0,+ O5 T+ a8 u) b+ N; G* Z: u* q
    "max_buckets": 1000,
% B0 u& G( _0 ], ]5 ?    "auid": 0,' h2 A5 I; f. g) F9 F: B
    "subusers": [
% z2 N5 m% @3 g) w) M        {( X: }+ _2 K/ G  ?
            "id": "xuwenping:swift",
4 S- Q, L$ ~3 ~: U  i7 z6 s( x            "permissions": "full-control"* H( O( x* S* Y+ X7 M
        }% G& T2 G" O* W$ F, r: f% ]
    ],
) b& n( C9 D4 I$ B, r' k/ |    "keys": [! H/ m/ f$ ]$ B: T* w& r! Q4 j
        {
# g( o3 G2 e7 c; d& m& D# u            "user": "xuwenping",5 q4 I: H+ ]5 f0 h+ d6 y
            "access_key": "4J3GD7GJIJKSDCVS1I9T",
2 y5 e+ k/ a( F+ U# i) K            "secret_key": "yfmxvzQdWT4EmVDijOFp6oNt4kZ25y9wRVARas4I"  F. w$ F9 j& o
        },
+ h* b) i1 e7 d0 C$ P' r- K: ?! h        {8 ?8 f* u3 ^% k8 X: @5 m- |! A
            "user": "xuwenping:swift",
3 G' A  \+ K) v* O, |            "access_key": "PEIT99BBWMZP31BD6S3I",' @: m$ Z! @% t$ z
            "secret_key": ""6 H  D7 t/ }/ T2 |8 L4 s
        }$ }- {4 \# Y5 p# \3 d  d
    ],1 c. Q" C) @, q$ \# t* m; C2 C3 |
    "swift_keys": [
& i2 B" Y- a: V7 O' \% O        {. i0 E" t6 i7 ~* s1 p% i. ~
            "user": "xuwenping:swift",( z- f: X! C5 B* Q; j7 s
            "secret_key": "qWHPhvUy4md1XSa2PSbcxUyMU5YXodlqxt0ZC2hn"! E+ `4 |) d5 x8 @( }& @% t
        }8 P" h8 h( O/ R
    ],5 x+ {4 H0 w; ^4 v; x
    "caps": []," W9 l2 p# X: C' C* ~4 d
    "op_mask": "read, write, delete",$ q! t+ c8 a1 E0 n0 A
    "default_placement": "",$ }5 q8 F! j  }/ Z/ K, N% ?5 |" ^0 r$ p
    "placement_tags": [],
, b7 C: ?5 y  C    "bucket_quota": {0 K" S0 @4 W  l& l' T
        "enabled": false,+ m9 N4 r+ c6 s1 k+ m* l( e
        "max_size_kb": -1,5 u" n+ m( i. q% o# b* |, J8 T
        "max_objects": -1
$ y$ q* A/ y, o1 i# l  e: O( r8 g3 F    },
* F: i6 @+ J. E/ I    "user_quota": {
# d$ J* i+ \) k' }        "enabled": false,7 }) r/ n/ {* P: G
        "max_size_kb": -1,/ z) k2 g8 E" \' j+ h
        "max_objects": -1: d6 q  _8 Q, A- M3 l; h8 Z
    },
, ]% C3 Q: S' S. Q% J4 M/ B0 w    "temp_url_keys": []" a$ ~. m& B8 h& F/ `/ ^
}
0 G, @- X% e4 z" p; S! Z$ X" f2.7 实际验证/ u* S3 m! X! W( N/ U; R
编写了一段python代码,用于访问网关,并创建bucket,并通过list方法罗列出当前所有的bucket (官方示例)
) x- N, x1 G, G0 L( w4 X6 k7 u+ H
依赖库安装  N/ P6 \: _* o* G

& [- H) X& x0 y! U$ Ksudo yum install python-boto
) @. ?4 g3 s7 D$ I: Ximport boto( ^! `. R( p. k4 b' H, Q
import boto.s3.connection
5 ~1 k( ^* z$ K4 p1 E8 t* Iaccess_key = '4J3GD7GJIJKSDCVS1I9T'# s: T. @' m- B) t% z/ u
secret_key = 'yfmxvzQdWT4EmVDijOFp6oNt4kZ25y9wRVARas4I'
4 B4 G$ T: y% H2 o, z/ Yconn = boto.connect_s3(
- \8 o: I1 }/ I! ?$ v0 L" D# C# daws_access_key_id = access_key,* G: Z6 z$ e7 g" K
aws_secret_access_key = secret_key,# S6 U& a, i$ v' s; J% t- K# B5 ~
host = '101.67.163.34',
; _: H9 Q# x7 Fis_secure=False,+ x' M2 x. i9 R9 h
calling_format = boto.s3.connection.OrdinaryCallingFormat(),
4 g9 E: P! ]5 P4 N1 ^2 h  B- Y( f" })
0 Z4 x0 [  U9 e4 p% p2 Kbucket = conn.create_bucket('my-new-bucket'), u; }$ N! ]$ ]1 @
for bucket in conn.get_all_buckets():
( ^, m" @- u+ ~! P  H. J  T/ `        print "{name}\t{created}".format(, p1 o. R" V) ?* v$ |2 z( s
                name = bucket.name,
2 k3 w$ ^5 |% u. i4 ^                created = bucket.creation_date,- Q! j' g5 ?9 e$ P6 B. U
)
6 l" u# @% l5 ?7 v  c9 O运行结果
0 R2 q; x0 I7 q: {3 {' S& b$ }8 S2 H* X8 G0 U# Z7 [8 \
[root@gnop029-ct-zhejiang_wenzhou-16-34 ceph-rados]# python s3test.py
8 q* q1 n' ]4 wmy-new-bucket        2015-10-10T06:23:48.000Z7 x/ ]* L+ g" w3 O- k0 j" i/ j# J
至此,Ceph集群的对象存储网关安装设置完毕3 }4 }" b5 J3 C* {3 J* U) I5 a
7 d# G, ?+ C* `
附:( B) J& D2 l: Y4 k5 |
+ u5 w4 x* m. }/ T; E- l* |
有时候通过yum安装软件是报如下错误:
- l# P. B& s" A$ i6 S0 |7 m- g6 e0 r( `5 {
Downloading Packages:
% o' o8 t8 r8 fwarning: rpmts_HdrFromFdno: Header V3 RSA/SHA256 Signature, key ID 0608b895: NOKEY
+ I: J9 ^, b) o  w- o0 }! N/ RRetrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
$ o# w" b1 U' f. N  r: T
% V* j/ q6 D8 p, Z; m* l0 \! f. h8 p+ T, f- @9 d8 U
GPG key retrieval failed: [Errno 14] Could not open/read file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-66 C! u2 K! R/ r) g
在执行 安装命令时带上如下参数即可:
9 @& |( {5 b9 c$ j% l6 q6 ]2 D* `, w  h7 O  {/ @2 @+ X; N
yum install mod_proxy_fcgi   --nogpgcheck1 x3 f* B0 h! M! h( J4 z
到此,关于“Ceph对象存储网关的安装配置”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!
1 ?4 V% {5 d6 X  M" U) f5 P$ ^
" ?- U7 ]; D9 W& n! W* M" [
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-12 00:06 , Processed in 0.016965 second(s), 22 queries .

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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