|
|
楼主 |
发表于 2022-2-9 10:17:40
|
显示全部楼层
2. CEPH网关服务配置
& l3 v6 v* N! }1 Cceph网关其实是ceph集群的一个客户端,用户通过这个网关间接访问ceph集群,作为客户端,它需要准备如下内容:5 C& }' Q+ i l! u9 z1 B
网关名称,此处用gateway称呼
9 V; I% S0 v1 X8 d一个可以访问存储集群的用户以及对应的KEYRING
5 _9 R; V, u/ M! ~数据资源池,这个由ceph集群提供: E9 a# k% K* s0 A$ T" C5 Y# F. V
为网关服务示例准备一个数据存放空间+ |3 d+ @1 `4 ?9 X- P$ j7 [
在ceph.conf配置文件中设置gateway信息
& K! Z2 \3 P5 Z1 m
1 i8 I$ Y- m& i2.1 创建访问用户及权限设置
+ T) g. I8 e6 j2 c创建gateway keyring,一开始该文件为空7 `8 n* K' b) V- Z+ }
. l) s8 a! w3 l# V. qsudo ceph-authtool --create-keyring /etc/ceph/ceph.client.radosgw.keyring
& g8 u! q3 M- x, `8 psudo chmod +r /etc/ceph/ceph.client.radosgw.keyring. P& ~6 B. q4 H
创建网关用户名以及key 此处名字为 client.radosgw.gateway
b9 j, o" F! U0 N1 L- F) D# d+ B/ w M/ a4 Y3 U& }/ z+ G
sudo ceph-authtool /etc/ceph/ceph.client.radosgw.keyring -n client.radosgw.gateway --gen-key) w; d/ Y. G: x" i. J) [1 n
为KEYRING添加权限' A5 d$ m+ _# J+ O# i& U
% F6 r! k" v- o- |6 o: csudo ceph-authtool -n client.radosgw.gateway --cap osd 'allow rwx' --cap mon 'allow rwx' /etc/ceph/ceph.client.radosgw.keyring
7 \4 @7 |7 h) v5 }将key添加到集群中1 l8 G9 m6 V: \! ?4 i0 d/ L
$ ]7 h- K5 @4 L2 B/ O) `4 t
sudo ceph -k /etc/ceph/ceph.client.admin.keyring auth add client.radosgw.gateway -i /etc/ceph/ceph.client.radosgw.keyring: x4 b; }2 \5 j. H# s9 e
将相关的KEYRING文件拷贝到rados-gateway所在的主机 /etc/ceph/目录下1 E [4 w- K+ ^. e3 O& C
7 e' U' G# U: z1 r2.2 数据资源池创建
' A7 b8 |( e' k l0 ~. @.rgw.root( U- f6 ]4 H5 i) F2 I
.rgw.control
: e7 d+ \8 d4 |5 [* T.rgw.gc% K* N: h" o8 h* j1 [$ @( V
.rgw.buckets5 g' G4 R5 N o; \8 ?
.rgw.buckets.index" v; x1 W1 L+ y3 s0 |1 \% y
.rgw.buckets.extra' t7 T3 }" Y! |/ B; C7 W9 K
.log
) j O h# R- T. r5 J% ?.intent-log
3 ] b) D' f0 b7 t9 ]; T( e.usage
# x* W2 B$ s; k; N9 d% a.users
6 L; p3 W: t/ R V3 w. V# p.users.email
$ o6 ^! T% B, _9 L' z6 H: A. a.users.swift
% \% Q Q2 L W& C.users.uid
P$ J% s) z. [[root@gnop029-ct-zhejiang_wenzhou-16-34 conf]# ceph osd lspools% W4 [3 f! J0 K1 `) u! s! t8 C
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& D+ G% Z" h' i, L; t0 h, ^! N
2.3 将网关配置信息添加到集群配置中% P( X! y$ G% A9 d. L
[client.radosgw.gateway]$ U, M% S3 s+ | |% p5 @. Z
host=ceph-24$ r6 J" L: l+ h% |% g1 `" `
keyring=/etc/ceph/ceph.client.radosgw.keyring
. ? }2 E3 o7 rrgw socket path=/var/run/ceph/ceph.radosgw.gateway.fastcgi.sock# M0 p7 n) J; a( X) C
log file=/var/log/radosgw/client.radosgw.gateway.log
( k; U- P4 f3 i" x) w2 Nrgw frontends=fastcgi socket_port=9000 socket_host=0.0.0.0
t4 R6 \& W1 C3 h) grgw print continue=false
8 z) q; V F& m2.4 目录及权限调整" P/ V: h+ j9 v- S, D; X
创建数据目录
$ L& i( C& Q# h% V/ |7 k
3 V$ q2 k; U: ?sudo mkdir -p /var/lib/ceph/radosgw/ceph-radosgw.gateway
: ? H: l3 C$ H) f( \9 d2 y调整apache运行权限+ i+ p g* ~8 n# D7 n& ?; b
sudo chown apache:apache /var/run/ceph/ u' _% I+ ~2 G! `+ A
调整日志权限, t: p. J" v) K* W! i9 T) `! t/ A5 Z
2 u* O; I8 q# w p$ i3 G7 Vsudo chown apache:apache /var/log/radosgw/client.radosgw.gateway.log: C8 V3 e- F2 E3 u5 B& R$ m3 W T
启动网关服务sudo /etc/init.d/ceph-radosgw start9 Q, a' @) I5 X u3 S, G2 [; r
7 V- R# i8 V- @5 [
2.5 网关配置文件
' ~3 U& @4 U" {一个配置文件,用于web server和FastCGI之间的交互 h. x/ m% d& ]- o' g" X+ L
sudo vi /etc/httpd/conf.d/rgw.conf
" ^( v# a, r6 ?- d" J# E
* Z$ |( F" c/ N5 o/ y! ^<VirtualHost *:80># ^- r9 D- A2 k. @5 S/ v
ServerName 101.67.163.34
4 t% h6 w, n% q9 y' @$ v4 U0 vDocumentRoot /var/www/html1 V6 o, T; ^$ u$ ~
, C7 O* ?0 P( ^( o6 n
ErrorLog /var/log/httpd/rgw_error.log$ q1 \8 ?" S l6 k( l0 A8 p
CustomLog /var/log/httpd/rgw_access.log combined% K) j" |! e5 l7 ~ o+ Q2 K4 ^2 K
) v2 ]6 S" Z' }2 r: Q7 t" f4 mRewriteEngine On3 [! s) ^# H1 b5 _0 q! k" X
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L], W: C: _7 Y2 x- I, W! I9 Y! I
2 W. G" U' ]! U7 s
SetEnv proxy-nokeepalive 1; s: d5 S* \, K4 R/ S2 @ m, |
. E w* \) P7 f, ^; m
ProxyPass / fcgi://101.67.163.34:9000/
/ e& ~, @6 S0 C. a. L& s8 v</VirtualHost>
! O8 |) \2 l3 s其中标红的地方是要根据实际情况填写, t) B+ ?9 y+ B
6 X" y' o9 F! m" i0 \2.6 用户创建$ p7 @" x$ r! H3 u! h9 c$ J/ L0 R5 h
radosgw-admin user create --uid=xuwenping --display-name="ceph xuwenping" --email=xuwenping@d***n.com
% C1 v0 @2 w U0 j/ `; E& k5 k* b{9 o4 v1 ^& y& P. e3 Y) P# n
"user_id": "xuwenping",
6 }3 \% G2 y; i! Q% z6 k5 Y' U "display_name": "ceph xuwenping",/ o8 @) e" }' S
"email": "xuwenping@dnion.com",
! k+ Q) c: y3 S! v "suspended": 0,. J" K% u% m, N: L
"max_buckets": 1000,8 R0 X. I( L, R4 \9 m/ Y
"auid": 0,# |/ H0 u5 ?# @/ l2 s" T
"subusers": [],
& N/ {1 s" \* a) y+ C, ]9 ]: q* K "keys": [
6 d( G7 m1 S- Q. C, W* v1 `9 i {
3 T8 G! D" x1 H9 s0 G$ I "user": "xuwenping",
# @" x1 z- V. V0 U J7 A "access_key": "4J3GD7GJIJKSDCVS1I9T",
3 A8 a1 t0 z2 N( ~1 ^5 N3 O "secret_key": "yfmxvzQdWT4EmVDijOFp6oNt4kZ25y9wRVARas4I"
5 ]9 W7 }+ i& d! f1 a: D7 Y }& P) r* Z0 q9 W8 ]# G$ Q
],
! n) ?" O3 F: N4 }. X+ o! x) ] "swift_keys": [],3 o/ B" \) \' g
"caps": [],! ?- X" x b- @. ]7 n) P
"op_mask": "read, write, delete",
8 L$ A5 X0 _$ R- b& S "default_placement": "",
8 m! B/ i' X& q1 B7 {8 L "placement_tags": [],
4 C) s/ h, k+ R! R "bucket_quota": {
) L5 E" Y/ }% q A5 O! P6 g0 c "enabled": false,
( f% t4 `# C. |4 y "max_size_kb": -1, T5 r" P+ S- O( a" i, ^
"max_objects": -1. n8 M/ M& p! B' g
},6 Y+ P% { d) X) d
"user_quota": {
( R+ y# S- |" L1 h8 o "enabled": false,! d4 Q9 Q u" F7 m
"max_size_kb": -1,2 Z( f u- X8 G
"max_objects": -1; }/ @0 |0 y* W2 y
},
% q6 h2 S/ F9 D& c9 ] "temp_url_keys": []
& L9 }. E. [! U7 ]7 e4 \! }}( W2 n: G6 T0 l, m" ^
创建SWIFT类型USER
7 o9 ?- f0 W% g5 K5 [# A2 c- S6 J8 y, V6 R l9 r
sudo radosgw-admin subuser create --uid=xuwenping --subuser=xuwenping :swift --access=full! G; r* N/ N& {+ q( a8 o, j- c4 Z
9 @% {. v, a' C' u2015-10-10 14:19:19.854951 7f402eadc8a0 0 max_buckets=1000 specified=0
; R( k% U% c" x{/ h. I( h" ]: n" G, L8 l
"user_id": "xuwenping",/ p; s& {, K+ U. ^# {9 p
"display_name": "ceph xuwenping",
. Q8 `6 S. u) P4 e, G( v1 J# A' k "email": "xuwenping@dnion.com",( H) F8 [8 S2 Q T) ~' V
"suspended": 0,
' v" n) D9 q/ d: R, J7 b "max_buckets": 1000,9 B3 Q( w, f9 |/ V
"auid": 0,8 X; g6 X6 i0 g8 t4 k7 F* Q
"subusers": [7 P- @' K5 H4 a4 O M# S
{
& B( T3 ?) w& t5 [4 K: W3 m "id": "xuwenping:swift",( E o$ T7 P2 _; X6 |; ?# C
"permissions": "full-control"- i { K, i3 {. I) X0 J, }% h& m* p9 U
}
( U$ K# }) D4 y3 n1 | ],
9 Q9 {- n( h% C- ]9 p0 m9 G$ s "keys": [
% j: \ B$ z+ ^: P {. Y' d) l# p9 ^% M/ ~5 N
"user": "xuwenping",2 U$ p9 N1 B& D' [
"access_key": "4J3GD7GJIJKSDCVS1I9T",
& L- R7 B; |) W+ d* L! e "secret_key": "yfmxvzQdWT4EmVDijOFp6oNt4kZ25y9wRVARas4I"
* l* e* n# t* n, {% O0 {% I! C* V },
" _4 [+ k) r4 ~; r# n {' U- W" q+ S1 p, Y8 ~ B1 }- N
"user": "xuwenping:swift",4 @' n/ ~( m9 r c$ K
"access_key": "PEIT99BBWMZP31BD6S3I",0 U; |" F6 U; g9 C5 `% |
"secret_key": ""+ l" o7 ]5 p" V# l, g9 `& K
}1 o4 F# x2 y( B$ p5 A5 {; f
],
' g1 H! Z/ q% m3 _+ N1 B- w "swift_keys": [1 K( ]+ V5 T& M
{, s, r! X& D, R' {7 A" s3 M
"user": "xuwenping:swift",
9 E; u) Y, }4 C' g/ p1 b "secret_key": "qWHPhvUy4md1XSa2PSbcxUyMU5YXodlqxt0ZC2hn"
( j8 C8 v% r7 v, @7 N }8 T, w; e# L6 Y! V
],
. c2 ?( c9 F- [" a "caps": [],
( S! ?% {, `: ^3 L* J# u- Y "op_mask": "read, write, delete",
3 X7 p/ ^( Y- m( T* q "default_placement": "",) J5 O% u, l8 Q, f5 j+ h8 i
"placement_tags": [],. z# U& m6 X# n' p t, |) z
"bucket_quota": {
2 v4 _% A3 r/ \; z* q. w "enabled": false,
4 i9 i, M$ A8 p& C7 ` "max_size_kb": -1,) f ~; Q* l9 L! E8 Q
"max_objects": -1
' r! X# o: d. _- Q },1 Q) {" B' c1 `9 B' R0 |; [; H3 v
"user_quota": {
5 F) \7 D2 N: X6 N# Y4 ^) T. j% u ~ "enabled": false,
3 l6 @% y5 M5 F, z; F8 a7 ^9 ] "max_size_kb": -1,4 V0 k5 b$ x! T" D5 ~/ e2 f
"max_objects": -1, W4 S. | R; `1 J; R
},
$ z# Y+ w4 _& y "temp_url_keys": []
; v# v& T: Y7 T$ m3 s" z) r}
! W! o: |0 b G7 G2.7 实际验证
/ x5 W* V+ j0 i; n) b% b编写了一段python代码,用于访问网关,并创建bucket,并通过list方法罗列出当前所有的bucket (官方示例)
3 @9 M+ U) t# J% Y: s' P# e& d3 I: i. K: S( N' v0 n
依赖库安装4 t* {' N! j# G$ k/ f) Q
# V& w" r6 s; a. m! v5 g
sudo yum install python-boto# @4 n( S# R( {
import boto
' X* s% Y7 i2 `7 J9 Vimport boto.s3.connection& |3 F6 p' t+ m% s K4 f$ a
access_key = '4J3GD7GJIJKSDCVS1I9T'
: r" ~1 B% Y) ?$ _secret_key = 'yfmxvzQdWT4EmVDijOFp6oNt4kZ25y9wRVARas4I'
- N6 T6 F& j. @conn = boto.connect_s3(
+ p7 U9 B8 s) B2 Haws_access_key_id = access_key,
, ~( C0 u# _; w# n, Maws_secret_access_key = secret_key,
) ]& V, j9 }' O: l7 q9 M" thost = '101.67.163.34',. \! D( X7 {& d! S6 I$ i
is_secure=False,) Z' m1 V# G- ]0 i% l; H
calling_format = boto.s3.connection.OrdinaryCallingFormat(),2 F3 U" c# p( c% @
)) g' m; ~2 o# K: k6 t
bucket = conn.create_bucket('my-new-bucket'): Z- e; [/ u& h+ I! c8 [( P
for bucket in conn.get_all_buckets():7 i0 h$ E3 q) V8 t0 n
print "{name}\t{created}".format(
3 v e9 u y6 p8 @0 B2 L9 \ name = bucket.name,5 q% E. |5 w q- x% _% v& D
created = bucket.creation_date,. k: k* n4 h" l: r6 X9 m
)1 H' J/ ^ F9 u7 N1 u5 m1 |
运行结果: L2 g/ {/ x( P5 u8 o# q
) y8 p. y4 ^( v6 L% n* `
[root@gnop029-ct-zhejiang_wenzhou-16-34 ceph-rados]# python s3test.py ! w) |: b, U! T% b- [0 s
my-new-bucket 2015-10-10T06:23:48.000Z% N# F" m6 Y* q! M
至此,Ceph集群的对象存储网关安装设置完毕
. g' V8 m8 O6 u+ a" c3 x9 e, ]& S! Q/ ^
附:* W5 e& G8 i4 Z3 j
. T# ~: n3 a; L3 ]有时候通过yum安装软件是报如下错误:
3 o: n5 W9 x) x0 l- Q% ?; _' M, n, L2 [2 |; y$ q
Downloading Packages:/ u/ b$ \ ?4 L- ~. ?/ j% b
warning: rpmts_HdrFromFdno: Header V3 RSA/SHA256 Signature, key ID 0608b895: NOKEY
/ f Q8 ]& a' VRetrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
5 s" u* ~3 E6 w2 U! T4 B9 n; y5 ]8 Y: F) ]/ m
4 h2 r2 k" U; p6 |/ i1 `GPG key retrieval failed: [Errno 14] Could not open/read file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
5 I* t5 g7 N# @: D在执行 安装命令时带上如下参数即可:, B/ A @6 x% s$ U' K7 B8 u
( g# y7 u. m. e+ o* F; myum install mod_proxy_fcgi --nogpgcheck
9 Z! e: f$ V+ t& i/ X到此,关于“Ceph对象存储网关的安装配置”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!1 k3 A3 l; D* I7 M R, K, x
3 H3 F$ c$ f' W; d/ f% e8 |
|
|