|
|
基础配置* x; r6 j' S4 w- w
三台环境为centos7.9,以下配置需要在每台机器上执行& M9 Y! ^" |( l6 q. E
配置hosts解析4 i7 ]) D. [4 Q' A: w v' L9 i; S
cat >> /etc/hosts <<EOF- [" O* q; c: m3 O2 J5 Q
192.168.122.16 node-1! U6 _8 `+ |% y3 Y" n- h
192.168.122.19 node-25 s4 \. \- d b, J) x" e
192.168.122.18 node-30 }" f( v4 j# i; v0 U/ ]$ g
EOF% ~6 I- s" b/ ?' ]3 X5 L+ G4 {& u
复制
6 Z$ p9 @- `+ S# l4 u8 \! l% x关闭防火墙和selinux* V! \+ Q8 f* x: I! d
systemctl stop firewalld && systemctl disable firewalld
1 z) M+ Z9 ?$ u% D/ ~' Csetenforce 0 && sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config# M/ Q6 ^+ M) P
复制
; \6 z. P/ w7 |- Q' w* {# @; f分别在三个节点设置主机名& R" j; X; F) f& r' U( a
hostnamectl set-hostname node-1$ {0 ?% I- O/ E
hostnamectl set-hostname node-2
; u- J2 f$ {: J0 F: r0 B5 @( }, ehostnamectl set-hostname node-3
0 _( x- i/ e7 c. f9 a2 `) u复制
. a7 O- \- T$ f1 q. q配置主机时间同步( I: I. P1 _1 i- `. @
systemctl restart chronyd.service && systemctl enable chronyd.service
( j1 ~: |+ d3 h8 Y% V$ b复制
0 {6 C$ b. n* W: z5 a* o) ^使用yum安装
& Q9 ?8 \: X2 g! ~( ?安装yum-plugin-priorities# `, E( h. l; k7 G& V! y
yum install yum-plugin-priorities
; v) a6 w7 |* L" n0 L% }7 f5 h复制+ K# P& v/ P2 T$ g
安装依赖包
1 i, A( ?( j5 p$ Iyum install snappy leveldb gdisk python-argparse gperftools-libs epel-release( m) n2 w" ?5 M: K
复制, M' s3 u' ~5 B8 j' w! v+ w- M
添加ceph仓库
# r, |; Y4 \. [建议使用阿里的源,国外的太慢了
# I0 r$ `: ^* N/ ?vim /etc/yum.repos.d/ceph.repo* d7 o, W- p2 m
[ceph]3 [ C6 Z6 z6 w% P
name=ceph
; u. O; f# }+ W8 ]/ C# bbaseurl=http://mirrors.aliyun.com/ceph/rpm-15.2.8/el7/x86_64/
, i3 z) R+ E% {, ?' X( z; Sgpgcheck=0
0 @$ L, a- V6 F! m* f[ceph-noarch]
1 D( S" t' Y, ?4 A0 |8 Lname=cephnoarch
' a: S" i& I) k* f" Z! |# z0 Gbaseurl=http://mirrors.aliyun.com/ceph/rpm-15.2.8/el7/noarch/
. Q1 J, y- d6 Q2 I4 Rgpgcheck=0" p& w# f# [% n$ F0 G
复制
' s/ t/ ]/ u, p; l1 f8 D安装ceph* F3 K+ t+ X2 A; r8 E8 W
yum install ceph -y
! N0 [1 A) A+ \% V* T8 P6 ]复制
& A6 g" r) z5 B+ ^ U6 C: G. R' U部署monitor节点
+ ]" e# n# }! c5 T) k# n' ?所有 Ceph 群集至少需要一个monitor,并且至少需要与存储在群集上的对象副本一样多的 OSD。引导初始mon是部署 Ceph 存储群集的第一步,这里我直接在node1、node2、node3创建三个mon。6 r/ F. T; G& a3 \8 L
在node1添加monitor
9 D$ _, f6 t4 Y) m2 V; {为集群生成唯一的fsid,fsid是群集的唯一标识符,代表 Ceph 存储群集主要用于 Ceph 文件系统的文件系统 ID( v }+ h+ C; ~" R: g/ T: J9 b* f
uuidgen
8 ~$ ?1 h$ Q% D# r复制
0 N2 b& ~, ]; R* G创建ceph配置文件,将生成的fsid添加到配置文件中6 W' j% F' L; ?0 {0 ^6 E x
vim /etc/ceph/ceph.repo
# T% c9 g1 L: ~& r( L' K[global]
1 m" V1 D/ `' X' V3 ^fsid=9c079a1f-6fc2-4c59-bd4d-e8bc232d33a4
[. {' }3 X; @复制6 V# E' H0 F6 N1 L
为群集创建keyring并生成monitor keyring。monitor通过密钥相互通信。必须生成具有monitor密钥的keyring,并在引导初始monitor时提供keyring。( e$ q0 ` s8 Y9 l# I$ H6 m
ceph-authtool --create-keyring /tmp/ceph.mon.keyring --gen-key -n mon. --cap mon 'allow *'4 Z2 ?9 t1 ^, l, V- v
复制
3 t! K9 @, b1 W生成管理员keyring,生成用户并将用户添加到client.admin keyring中。要使用 CLI 工具,必须有一个用户,并且还必须将用户添加到monitor keyring。
7 Q- B, U% X) v) Z8 Gceph-authtool --create-keyring /etc/ceph/ceph.client.admin.keyring --gen-key -n client.admin --cap mon 'allow *' --cap osd 'allow *' --cap mds 'allow *' --cap mgr 'allow *'
$ Q8 r0 m& J4 c8 R4 Q复制
- b& q2 {1 S& B0 y8 e生成引导 osd 密钥,生成用户并将用户添加到client.bootstrap-osd keyring中。% O+ ^/ v1 v2 d8 n; n/ Y
ceph-authtool --create-keyring /var/lib/ceph/bootstrap-osd/ceph.keyring --gen-key -n client.bootstrap-osd --cap mon 'profile bootstrap-osd' --cap mgr 'allow r'
! G# ?, D& o( H7 _1 A7 t4 F8 e复制
" J7 C( l# B7 K* z; l( [0 g将生成的键添加到 ceph.mon.keyring
& H+ H. V" Z3 ~' }& T( i$ F- A B, O& vceph-authtool /tmp/ceph.mon.keyring --import-keyring /etc/ceph/ceph.client.admin.keyring
% X6 z1 g. t2 [* W, n* zceph-authtool /tmp/ceph.mon.keyring --import-keyring /var/lib/ceph/bootstrap-osd/ceph.keyring
_- I4 V, v! U; o6 S复制
+ K% l' j) f% Z/ X更改 ceph.mon.keyring的所有者。: k$ U$ }" |) ]& v& l: B
chown ceph:ceph /tmp/ceph.mon.keyring
% B. _% w3 a' I$ I: y5 @复制
) ]% h% `: q' @- A使用主机名、主机 IP 地址和 FSID 生成monitor映射。将其保存为 :/tmp/monmap
$ {7 e9 w. U/ J% c+ u+ T+ F }monmaptool --create --add node1 192.168.122.16 --add node2 192.168.122.19 --add node3 192.168.122.18 --fsid 9c079a1f-6fc2-4c59-bd4d-e8bc232d33a4 /tmp/monmap* e# F$ Q- Q# U1 a
复制
# x C8 `. ^" C: k/ D查看生成的monitor映射文件
1 q- t3 i; P0 K: ]' S' cmonmaptool --print /tmp/monmap
. x( _9 j: z- }% m' n- x7 w复制+ }/ U/ b5 r" y" {2 Y4 I
在monitor主机上创建默认数据目录,目录名是{cluster-name}-{hostname}格式% H H5 M- j. O. ]6 t: A/ f
mkdir /var/lib/ceph/mon/ceph-node12 ? ^* B( R0 G( w! {
chmod 755 -R /var/lib/ceph/mon/ceph-node32 }& e" H0 l# u3 p$ Q
复制$ d& ? B* U/ l. ^; J! L: |
在node1节点对monitor进行初始化
7 J! p8 P' P2 q& Pceph-mon --mkfs -i node1 --monmap /tmp/monmap --keyring /tmp/ceph.mon.keyring
' q! }8 S9 C! E* P* I/ [复制. r# g* _" q4 g# d( z
可以查看数据目录生成的文件
3 v3 a! G( F% U/ g. V3 l+ e( `
5 F @! C- B/ [& p. |/ v编辑ceph配置文件
. T9 K/ ^ J* i[global]
# r5 k. Y7 \1 q" c5 B) }2 O2 @fsid = 9c079a1f-6fc2-4c59-bd4d-e8bc232d33a40 n, l% W. h: i) E
mon initial members = node-1,node-2,node-3* X+ a" R$ [5 R& G, d- H7 E# b$ u
mon host = 192.168.122.16,192.168.122.19,192.168.122.18
5 E: h3 D0 M% @/ E- ~7 Lmon clock drift allowed = .5
# J$ Z3 Z% y" @) hauth cluster required = cephx
9 V) p0 \2 C8 ^' oauth service required = cephx
4 _2 R/ r7 k0 @7 a) Y4 b2 T9 ~# n$ aauth client required = cephx0 X3 Q2 t! K4 m. S, h
osd pool default size = 3 //创建pool的时候默认pool是3副本" a, K: h( j. }3 E& w3 C
osd pool default min size = 2 //pool最少可写的副本数为2
0 l* ~( P) B0 o$ s# L5 K; Iosd pool default pg num = 82 o- P3 _) x# H% ]
osd pool default pgp num = 8
0 D" w% q! G& K8 N! u% }osd crush chooseleaf type = 0
5 [, D+ w% Z7 H1 Q& |0 ]( H3 _复制0 A- e: k A/ w- O$ B* z! k# v
将配置文件拷贝到其他节点
1 k2 ~" P T6 q6 R+ m' iscp /etc/ceph/ceph.conf node-2:/etc/ceph/ceph.conf6 }& P; C1 ^8 T1 g1 J! ?
scp /etc/ceph/ceph.conf node-3:/etc/ceph/ceph.conf) z8 ~5 x& Z- G. ?
复制
7 r' J- A( F$ ^* ~将mon keyring,mon map及admin keyring拷贝到其他节点
1 t5 t7 g# d) Y; Q& @scp /tmp/ceph.mon.keyring node-2:/tmp/ceph.mon.keyring
2 W1 w2 ?; J3 B, Sscp /etc/ceph/ceph.client.admin.keyring node-2:/etc/ceph/ceph.client.admin.keyring
. B5 J& ~0 h4 Q! jscp /tmp/monmap node-2:/tmp/monmap
* u" y S/ h- I) jscp /tmp/ceph.mon.keyring node-3:/tmp/ceph.mon.keyring; c3 f2 @8 \& i1 M
scp /etc/ceph/ceph.client.admin.keyring node-3:/etc/ceph/ceph.client.admin.keyring- z& P0 y- r; o/ x' W! Q$ t; \
scp /tmp/monmap node-3:/tmp/monmap
' q! W2 y" _& Y' A" R& @复制
0 c* `2 C! P5 f5 k/ s+ P在node2、node3上添加monitor4 ]9 {3 x# j8 b# @
分别在这两个节点创建数据目录0 T2 ]2 M: { U( R, [2 |* \# a& M
mkdir /var/lib/ceph/mon/ceph-node-2; g$ X6 r, y5 U% Z! b: G9 A% D
chmod 755 -R /var/lib/ceph/mon/ceph-node-2& v7 J, p3 E" @# h( d
mkdir /var/lib/ceph/mon/ceph-node-31 N% F# Q# Z) t0 R0 A
chmod 755 -R /var/lib/ceph/mon/ceph-node-3# s; g1 `8 W/ o) h% e
复制4 J( l9 q. q! B
分别在这两个节点对monitor进行初始化
- d. L$ i% d3 y# L, a$ kceph-mon --mkfs -i node-2 --monmap /tmp/monmap --keyring /tmp/ceph.mon.keyring8 ]: f& l! l5 W# Q. C
ceph-mon --mkfs -i node-3 --monmap /tmp/monmap --keyring /tmp/ceph.mon.keyring
/ Q6 b( F# E6 @' }8 t. t复制 [' e; t8 }- I2 G/ q/ `
分别在三个节点启动ceph-mon服务
# K4 n) A" Q, o0 E$ y; W# usystemctl start ceph-mon@node-1 && systemctl enable ceph-mon@node-1
3 {1 a. ]. U; d- Osystemctl start ceph-mon@node-2 && systemctl enable ceph-mon@node-23 v5 F6 j u5 b$ d' S9 {$ n1 L
systemctl start ceph-mon@node-3 && systemctl enable ceph-mon@node-3! L$ ]! q- A8 d6 J+ G% g
复制* p! R P6 B5 @, I
image.png, x2 W0 A& }8 k4 L3 G
可以看到提示3 monitors have not enabled msgr2"
# C0 D' z9 F7 [执行以下命令恢复正常% y$ J) H* F( K, H' f
ceph mon enable-msgr2
7 b% c! R* _) V# u- d/ e0 {" c9 v复制
& }. ^/ n. G7 \$ }; ?# Q2 `image.png
- k7 g1 d2 @9 w( W7 r8 q创建MGR
. f" m, \# r8 X+ a- @1 r在运行ceph-mon守护程序的每个节点上,还应该设置一个ceph-mgr守护程序。# {- f9 M+ {5 P/ H3 m
创建密钥目录
8 C3 G" A- e3 B4 i/ g5 H# |所有mgr节点都要执行
: J8 r; Z$ t3 s2 M, ^sudo -u ceph mkdir /var/lib/ceph/mgr/ceph-`hostname -s`
- c7 R" b% p0 T) ?& Y& Bcd /var/lib/ceph/mgr/ceph-`hostname -s`/ m/ H6 X2 P D1 }: y( p
复制3 K5 W% W4 s$ g2 s1 C# S D" Q; s6 @
创建身份验证密钥
+ H% K$ a# M4 ?9 l% S) U6 |+ C5 Kceph auth get-or-create mgr.`hostname -s` mon 'allow profile mgr' osd 'allow *' mds 'allow *' > keyring
8 e5 i |0 ~4 D复制
) @+ p6 n3 ^& `启动mgr守护进程
7 t7 g( s) h. U) Psystemctl enable ceph-mgr@`hostname -s` && systemctl start ceph-mgr@`hostname -s`
6 o! T! \6 z6 x复制$ }9 K4 Z8 M6 U7 U
看样子状态有点异常,在所有节点执行下面的命令之后重启机器即可解决
% f: ]# K0 y% t9 q. }Module 'restful' has failed dependency: No module named 'pecan'6 T. q, {7 H' L6 p, Q
pip3 install pecan werkzeug- j$ P) I' H. o; @4 I9 P
复制
6 X5 r- @( c1 ^; Aimage.png: b5 a1 U2 f+ B" i F
部署osd D: A; _, h; Q! A9 w5 l/ N
Ceph提供了该ceph-volume实用程序,该实用程序可以准备逻辑卷,磁盘或分区以供Ceph使用。该ceph-volume实用程序通过增加索引来创建OSD ID。" a) |" X. n! `7 W! a7 F
创建osd8 Y2 j4 ~) Y. I8 |1 |* W" k9 H
在node1执行
( C i/ V5 M' Pceph-volume lvm create --data /dev/sdb$ O! V5 Z& s: J5 Y; J5 O7 p' }
复制$ K4 F R: ]: y9 ]; y+ V
上面的创建过程可以分为两个阶段(准备和激活):. J0 W/ z/ G" w* R" h
ceph-volume lvm prepare --data /dev/sdb' G5 e/ ?6 K! T5 |( g
查看osd fsid8 D0 `# Q8 [5 }4 e6 t/ r; ^ O
ceph-volume lvm list
0 w( V3 G! Z$ u# r aceph-volume lvm activate {ID} {FSID}* X8 W, x2 P/ R: q) g; o5 M
复制
; [# `7 r- D4 _0 J$ H! d# Y3 w当创建完osd之后,我们发现osd服务已经起来了
' |6 G8 @9 b0 B. q4 y! J
+ S9 v- w. a: @4 D/ C: O$ Y当我们在node-2、node-3节点执行此命令的时候报错了,发现缺少密钥文件
: P! y- Y# p% Y& z( @: {) y+ O( o2 U7 @/ ?8 V
拷贝密钥文件$ p' W- |9 m( X7 ^, K# i" K( V
scp /var/lib/ceph/bootstrap-osd/ceph.keyring node-2:/var/lib/ceph/bootstrap-osd/ceph.keyring
( U9 R, r5 S/ v+ Oscp /var/lib/ceph/bootstrap-osd/ceph.keyring node-3:/var/lib/ceph/bootstrap-osd/ceph.keyring7 O# k$ v: s& Q4 i- _" u
复制
8 V6 o7 m) ^: W, l$ K. k; K" J" T修改密钥属主属组
) A4 I' I' X2 v4 d+ r" gchown ceph.ceph /var/lib/ceph/bootstrap-osd/ceph.keyring
* N* u7 ~- F+ I$ n6 `复制! Y& Y0 J4 y! b4 k
分别在node-2、node-3创建osd
& l0 n1 I: ?* G% \9 fceph-volume lvm create --data /dev/sdb
: w+ b" A. s ~# s4 R# L+ H& p复制
a% p" ?' _3 X3 I* G/ U' N* m( P6 [也可以分步执行" k8 d; x/ Q- S* c* S! B* ?3 G7 r
ceph-volume lvm prepare --data /dev/sdb
, I+ h/ |$ b2 X% r; c6 M0 y##获取osd id 和osd fsid
/ e; k$ e' V8 k3 ^ceph-volume lvm list7 D6 Q% \7 X0 E, \3 `7 d( C
##激活osd( R7 K4 q* Z2 t8 J
ceph-volume lvm activate {ID} {FSID}& | ]2 r" ?1 M' ]( g# e0 T
复制& }" _8 E1 j, J I2 s5 j
最后状态是这样的
) b3 r, T8 t- k4 y
8 D! a+ P H9 `+ T( d添加MDS
+ V. ]- u4 X# J( {; ?6 O7 n创建mds数据目录4 N- ]+ ]; H' B3 z5 s: V
mkdir -p /var/lib/ceph/mds/ceph-`hostname -s`: x" }( E8 b" q
chown -R ceph.ceph /var/lib/ceph/mds/ceph-`hostname -s`
4 o* i) b: j/ x3 f" q7 J0 S复制. ?! F) n0 u* G9 _. k* G
创建keyring
8 [- V, ?! @) r1 f+ g; ? fceph-authtool --create-keyring /var/lib/ceph/mds/ceph-`hostname -s`/keyring --gen-key -n mds.`hostname -s`5 [% N7 U$ {4 ~$ z e4 [
复制. h* x) w* {: P! ^9 \
导入keyring并设置权限
( I7 U6 Z; X) G/ o) }5 @ceph auth add mds.`hostname -s` osd "allow rwx" mds "allow" mon "allow profile mds" -i /var/lib/ceph/mds/ceph-`hostname -s`/keyring% S$ U( f# e t* e+ K2 u, L
chown ceph:ceph /var/lib/ceph/mds/ceph-`hostname -s`/keyring6 V9 M: B& v, f# R$ m
复制# }8 N. e/ e2 l" t3 ^$ X; R1 n' H
修改ceph.conf配置文件# [0 C/ c7 U5 @' A" K) P
cat >> /etc/ceph/ceph.conf <<EOF4 n+ \2 W+ H+ U X
[mds.node-1]
/ x$ `. Z! s+ M# bhost = node-1
% S) A4 ?: a/ w, E5 N5 J/ d[mds.node-2]. }9 r6 l. m' \% d( D
host = node-2
9 J$ C+ j ?: q+ }# X/ p[mds.node-3]
* l, Y* k4 C- n! q1 Ahost = node-3
0 T+ Z1 ^; g/ oEOF5 D( {5 c/ T6 Y3 c1 Y! e
复制
- L7 `. z- o j( t+ Y$ y启动mds服务" N, X9 D8 h' _( n3 Y4 [7 d- |
systemctl enable ceph-mds@`hostname -s` && systemctl start ceph-mds@`hostname -s`
0 P5 t2 F& ^* t3 o5 @4 _( \复制
# Z! ]. Z' P# Q3 T现在状态应该是这样的( ]9 g4 _ | _- J/ N* n4 s
+ r, A- E9 E2 ?$ Z$ Y
对象存储RGW安装
) l3 A% ?; ]$ R8 uRGW是Ceph对象存储网关服务RADOS Gateway的简称,是一套基于LIBRADOS接口封装而实现的FastCGI服务,对外提供RESTful风格的对象存储数据访问和管理接口。RGW基于HTTP协议标准,因此非常适用于Web类的互联网应用场景,用户通过使用SDK或者其他客户端工具,能够很方便地接入RGW进行图片、视频以及各类文件的上传或下载,并设置相应的访问权限,共享给其他用户。
6 Z. V3 m( k1 F) i+ c/ T安装radosgw
1 {5 i3 m! ^4 e3 R/ l$ K( ~yum install ceph-radosgw -y
- M% G) m |( J: x/ v复制
: r4 ?, Y/ A9 v5 E& X4 L创建rgw相关的资源池
r# C8 w9 i" M3 K" ^1 }- O, Z" c) j资源池列表及部分资源池功能介绍如下。
1 K8 |- V2 k, K; k g. y7 J.rgw:region和zone配置信息。( T" c7 t; t) s2 N
.rgw.root:region和zone配置信息。
8 O7 g$ m/ Q: O5 J1 m \.rgw.control:存放notify信息。7 H! a- `' Q+ v3 _" K' s
.rgw.gc:用于资源回收。0 \& A; H: G" O
.rgw.buckets:存放数据。* e$ C; `9 X$ E0 d
.rgw.buckets.index:存放元数据信息。
% f6 H$ }% H1 W% A.rgw.buckets.extra:存放元数据扩展信息。7 W2 o, B# k) ]; S$ a
.log:日志存放。4 A: a4 F B0 z; f6 Q
.intent-log:日志存放。1 D( T w: ~1 d4 S( u+ d* ~
.usage:存放用户已用容量信息。* z. w+ c/ o% x4 |$ k' l7 l8 R& ^* E
.users:存放用户信息。
, E4 m; C! n* `' k- `.users.email:存放用户E-mail信息。, x o* w; {$ h0 o6 l1 F: b( E
.users.swift:存放swift类型的账号信息。& x; a! ?' b9 }" x* G
.users.uid:存放用户信息。# i4 h- r/ f& ` K
ceph osd pool create .rgw 8 8
3 I0 V& O+ K- t8 O" |+ Eceph osd pool create .rgw.root 8 8
- K* R, T4 b M- z- Xceph osd pool create .rgw.control 8 8+ G9 F) y# l. _. z. ~' E, P, u! f2 U
ceph osd pool create .rgw.gc 8 8
0 k( ^( S& ?8 F* G3 gceph osd pool create .rgw.buckets 8 8
/ ~9 n1 ?/ ~- z$ Y& k* C; vceph osd pool create .rgw.buckets.index 8 83 a, C1 i+ Z' V- r U
ceph osd pool create .rgw.buckets.extra 8 8) W; Q/ q+ e5 _1 q6 }
ceph osd pool create .log 8 8
3 |+ b+ q0 I2 ^+ B+ m1 Z2 zceph osd pool create .intent-log 8 84 B! y# Q8 n. u. V% L) {# E! V1 M
ceph osd pool create .usage 8 8( x# V) N8 Z! z. |( u6 G
ceph osd pool create .users 8 8
# L# u, z+ J4 G Q& ~ Z0 hceph osd pool create .users.email 8 83 ]/ S% T9 X3 \+ c. d, j* A
ceph osd pool create .users.swift 8 8
( E, i* v* Y+ j. mceph osd pool create .users.uid 8 86 x4 I/ [% r* S
复制
, g5 R( D0 N& ~: ~3 y6 w/ W b' p, u7 ~! A创建过程会遇到这个报错,原因是每个osd默认最多只支持250个pg,这里有两种解决办法,一种是删除之前创建的pool,并新建pool时把pg设置小一点,另一种则是修改osd默认最大pg数,这里我用了第二种,修改完配置文件后,重启mon" }- s7 w7 T3 \* ~6 S
Error ERANGE: pg_num 8 size 3 would mean 771 total pgs, which exceeds max 750 (mon_max_pg_per_osd 250 * num_in_osds 3): |' N( q4 j/ Y ?, I- m
编辑配置文件; g3 w# P9 t" P0 Z( \
vim /etc/ceph/ceph.conf
8 u" r4 L; _/ i[global]
. q3 Z9 J, H: G) X& vmon_max_pg_per_osd = 1000
0 }8 G, G2 X l#重启mon: P/ z9 z2 B [. `6 M: Q+ q
systemctl restart ceph-mon@`hostname -s`
5 B" @( I8 D% z" b, r- T复制
" Z, H& U1 y% K# h& {' W" J, o, a可以使用rados lspools查看是否创建成功
4 W$ L7 h- d J
/ Z' J' l! o0 a6 K M% L9 b新建RADOSGW用户和keyring% N# s2 v# p- \9 Q) c' R
创建keyring; Y/ K- B, C; n/ B. l7 w. Z
ceph-authtool --create-keyring /etc/ceph/ceph.client.radosgw.keyring
# a4 d" R4 e, T) Jchown ceph:ceph /etc/ceph/ceph.client.radosgw.keyring* O4 h) t% v3 k f% `( I
复制
; s$ T: z/ O' ]生成ceph-radosgw服务对应的用户和key" r4 q3 z! |! Z, X+ `
ceph-authtool /etc/ceph/ceph.client.radosgw.keyring -n client.rgw.node-1 --gen-key, V8 s4 e0 d. M. a) F" \* b
ceph-authtool /etc/ceph/ceph.client.radosgw.keyring -n client.rgw.node-2 --gen-key
( ?! u) Q* J$ L; w. k/ t Q! h7 uceph-authtool /etc/ceph/ceph.client.radosgw.keyring -n client.rgw.node-3 --gen-key
% X% E. S. v4 x- F# ?7 W9 V! k$ D; [复制 P/ @7 Y& K& u' l d
添加用户访问权限
" M4 {" \' j# ], L& G) o# P* Vceph-authtool -n client.rgw.node-1 --cap osd 'allow rwx' --cap mon 'allow rwx' /etc/ceph/ceph.client.radosgw.keyring
, L( ]+ G) I. m' t lceph-authtool -n client.rgw.node-2 --cap osd 'allow rwx' --cap mon 'allow rwx' /etc/ceph/ceph.client.radosgw.keyring7 k* w+ l! _- B- ~# n9 Y0 L
ceph-authtool -n client.rgw.node-3 --cap osd 'allow rwx' --cap mon 'allow rwx' /etc/ceph/ceph.client.radosgw.keyring: t/ H3 f, J5 Y' V
复制
; c+ e( ]; c. s/ s8 g将keyring导入集群中* Z$ u+ a4 l, T- P. [8 B
ceph -k /etc/ceph/ceph.client.admin.keyring auth add client.rgw.node-1 -i /etc/ceph/ceph.client.radosgw.keyring! g3 j9 i" u& s; R9 D
ceph -k /etc/ceph/ceph.client.admin.keyring auth add client.rgw.node-2 -i /etc/ceph/ceph.client.radosgw.keyring
' a* u- |) ?, z1 U- v3 a+ jceph -k /etc/ceph/ceph.client.admin.keyring auth add client.rgw.node-3 -i /etc/ceph/ceph.client.radosgw.keyring5 u( H& I. i3 R p2 ?- m# O
复制
6 t3 |+ H- K2 }+ t c编辑配置文件" c& I# c* [0 x
cat >> /etc/ceph/ceph.conf << EOF
0 R) p2 H- t( g7 N[client.rgw.node-1]
% }5 b+ C' b: ^ I' Y/ g. \host=node-1* E; _& p) e& x
keyring=/etc/ceph/ceph.client.radosgw.keyring
# e; \/ T* H7 z# ^log file=/var/log/radosgw/client.radosgw.gateway.log4 {' f/ p/ N0 k; [0 X3 F
rgw_frontends = civetweb port=8080; u4 q- o, r( |2 R3 u7 A) R7 p
[client.rgw.node-2]* Y9 D! _* o" x' |+ c4 x
host=node-2$ a1 ]9 U: k" b$ i1 I
keyring=/etc/ceph/ceph.client.radosgw.keyring
4 W4 i7 r6 a* U4 Dlog file=/var/log/radosgw/client.radosgw.gateway.log6 `* @+ v. K5 h1 D: R& d/ _
rgw_frontends = civetweb port=8080
2 J$ C" R. c P! f[client.rgw.node-3]& y1 Z) n% |3 L
host=node-3' S/ v ^& X* l1 O" I& s' g
keyring=/etc/ceph/ceph.client.radosgw.keyring% Q/ D1 o$ n3 q' O
log file=/var/log/radosgw/client.radosgw.gateway.log
& f1 J, `7 @+ R4 Grgw_frontends = civetweb port=8080# k( |( j1 t: V) o
EOF
+ K$ l, T( K4 ?" i3 H. W1 L7 F5 [复制
) {! |. C% |6 h& G创建日志目录+ e! C1 {+ e! T8 ^. N# @- p
mkdir /var/log/radosgw
/ ^0 Q5 g& _1 w8 J; Z& d" M( }; s jchown ceph:ceph /var/log/radosgw
; Q7 g C# H. S& X复制
1 L2 m0 s J5 L# I$ o4 h拷贝keyring、ceph.confceph.conf到node-2、node-3( _0 i$ B, A1 t
scp /etc/ceph/ceph.client.radosgw.keyring node-2:/etc/ceph/ceph.client.radosgw.keyring
; U2 ~1 k6 ^- L5 Zscp /etc/ceph/ceph.client.radosgw.keyring node-3:/etc/ceph/ceph.client.radosgw.keyring# k+ t& U3 P# B0 m
scp /etc/ceph/ceph.conf node-2:/etc/ceph/ceph.conf
- R: g$ d6 s' l: I; ]% b7 g4 ^scp /etc/ceph/ceph.conf node-3:/etc/ceph/ceph.conf
" [5 _1 B) E# d: J, u8 u复制* h0 x, H/ Y& q5 M, F
在node-2、node-3部署RGW
/ n: V$ t) L" J' L修改keyring属主
" {" E0 z6 R2 V. ?1 ichown ceph:ceph /etc/ceph/ceph.client.radosgw.keyring
: u3 e0 X- a: `: K; N复制% D+ h' [0 a4 @* h
创建日志目录并授权" X% \! p5 C$ N/ n
mkdir /var/log/radosgw
, p8 X- u- A- i9 L" L+ s1 _6 Ichown ceph:ceph /var/log/radosgw, f1 }2 T: C8 `, c5 C# B3 f4 P
复制, p1 Q; \+ o. }3 [" {( X5 ^
启动rgw服务. ^* U% }! f9 b& e+ P2 ], {
systemctl start ceph-radosgw@rgw.`hostname -s` && systemctl enable ceph-radosgw@rgw.`hostname -s`+ J( @! U& r, M% e+ b
复制
2 u, @% K$ \* F% V# C查看ceph状态,发现有个小问题3 I3 ?' o9 R" t' e% Z
0 J' |) `3 K i: E- H: H使用ceph health detail查看详情,根据提示enable即可
6 K1 |6 m2 A0 T, K5 S; d% a/ B. h& D+ A5 B1 t3 x* l
使用curl访问服务
: \8 W/ k" J3 s% P
/ T( w& ~8 S' h4 F |
|