|
|
基础配置. D, g2 y# }, ]9 J/ Q
三台环境为centos7.9,以下配置需要在每台机器上执行
- V) n7 R+ V1 y/ J! l( l配置hosts解析5 V8 T5 ]3 Y# V3 u
cat >> /etc/hosts <<EOF
4 k4 C5 w) c! |9 X192.168.122.16 node-1
8 r6 h- \6 G9 a$ v, }6 b! L192.168.122.19 node-2- z! M6 p& X' w0 Q
192.168.122.18 node-3
5 X$ v U @ {8 FEOF6 p% c% d" [5 W$ o
复制
) h6 B8 F4 q7 N p关闭防火墙和selinux
/ q' F- a. W c( J jsystemctl stop firewalld && systemctl disable firewalld
7 ~0 k/ J2 l7 W; Q# Tsetenforce 0 && sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config% X' ?( A# k$ Z! Q: T+ }% P, N
复制4 ` n7 d/ B o, [9 T' Q
分别在三个节点设置主机名
5 Z' X3 g4 e: Y2 \% Bhostnamectl set-hostname node-13 T8 u5 @0 j7 n; \/ E
hostnamectl set-hostname node-2
" o/ I# p/ W7 S5 e) a6 Yhostnamectl set-hostname node-3
- o6 A) g0 X, f% K7 G5 a# a( C复制1 R/ {; d1 t- B. L) F" V
配置主机时间同步
$ Q0 s1 y+ t5 W# Z# h0 osystemctl restart chronyd.service && systemctl enable chronyd.service
+ J5 K j# D2 H复制! p6 X2 ]/ o- Y2 d! a
使用yum安装' H7 Q6 E0 }- }7 t5 ]+ T0 n
安装yum-plugin-priorities4 r* X- U1 ~- c2 P5 Q" {' J
yum install yum-plugin-priorities
9 V8 G2 r) R. p8 e9 |复制
6 B4 B- }& v1 B/ S2 u( C安装依赖包+ z$ o8 p8 l& c9 R" h! m& u# n
yum install snappy leveldb gdisk python-argparse gperftools-libs epel-release S, _( I; p. z
复制& N2 y' W) Z! a8 q
添加ceph仓库
/ N, P3 w: R$ A! ], ~' V' |) C' L建议使用阿里的源,国外的太慢了
# j6 b: m- | d, i M, [2 F, [9 fvim /etc/yum.repos.d/ceph.repo" n5 c4 ]) y2 F; S8 `& Z0 {
[ceph]
* v" f; y: X1 A. @! W! E& Iname=ceph
# N( t0 v5 K1 D- W% L& v" Gbaseurl=http://mirrors.aliyun.com/ceph/rpm-15.2.8/el7/x86_64/' e6 K# y' X' Z" c) L! G# n7 W. y
gpgcheck=0 U, y4 e' V2 Q8 e0 K8 z, Q
[ceph-noarch]& f0 p& J" h/ K5 L% k7 q0 G' f
name=cephnoarch! A' E' b: A* n. z, f
baseurl=http://mirrors.aliyun.com/ceph/rpm-15.2.8/el7/noarch/. y) K$ z# Q3 m/ C" }& x) \
gpgcheck=0
# a, ^( H) [, u复制& n, h$ N0 ^0 m2 U+ q/ I
安装ceph
* w. X: T% H! I- _% t' s' }yum install ceph -y1 \; E7 h( _& y" k
复制- u9 l' _" W7 |; }/ a3 P8 {
部署monitor节点+ c V1 H: M0 P, w7 Z0 m6 O9 J
所有 Ceph 群集至少需要一个monitor,并且至少需要与存储在群集上的对象副本一样多的 OSD。引导初始mon是部署 Ceph 存储群集的第一步,这里我直接在node1、node2、node3创建三个mon。
, u; y0 `; s$ x8 |在node1添加monitor" C+ B0 Q }% b; @6 O
为集群生成唯一的fsid,fsid是群集的唯一标识符,代表 Ceph 存储群集主要用于 Ceph 文件系统的文件系统 ID" K% q5 \4 ^" u9 v$ J' [/ a* @
uuidgen
8 o; N! s8 K- B. {复制
) e* u% w4 Y/ O# N g1 B创建ceph配置文件,将生成的fsid添加到配置文件中7 g. E: D$ X W* Q
vim /etc/ceph/ceph.repo2 y: H* E/ O+ t* e
[global]
4 R3 M6 q$ o; C* mfsid=9c079a1f-6fc2-4c59-bd4d-e8bc232d33a4
# W* I* a, b3 Y$ f* _: w复制
: g, ? `/ e9 w5 q2 H为群集创建keyring并生成monitor keyring。monitor通过密钥相互通信。必须生成具有monitor密钥的keyring,并在引导初始monitor时提供keyring。; a) h h# c& M U1 D+ [- D1 P" c
ceph-authtool --create-keyring /tmp/ceph.mon.keyring --gen-key -n mon. --cap mon 'allow *'& ^+ K2 {! Y, y' C! W
复制% F. _- w" R/ z6 c( q3 k
生成管理员keyring,生成用户并将用户添加到client.admin keyring中。要使用 CLI 工具,必须有一个用户,并且还必须将用户添加到monitor keyring。3 b. i2 z( }9 m# M$ V
ceph-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 *'2 [, R% s& Y" u; s
复制
0 U2 m/ Y- t% y& c* n生成引导 osd 密钥,生成用户并将用户添加到client.bootstrap-osd keyring中。4 S' K& b' C* r
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'
5 B7 l, D& t4 }8 b" R复制" A: [( J. b @" v4 ?8 o
将生成的键添加到 ceph.mon.keyring
7 `8 q% m0 E1 f5 X2 l! Jceph-authtool /tmp/ceph.mon.keyring --import-keyring /etc/ceph/ceph.client.admin.keyring
0 L" C1 k% e/ W5 M) S% Pceph-authtool /tmp/ceph.mon.keyring --import-keyring /var/lib/ceph/bootstrap-osd/ceph.keyring
9 f* B( ~ m0 O0 f复制
- ]& N" l9 ~ M+ q& i3 L8 \. l更改 ceph.mon.keyring的所有者。
, p5 K$ L: f; ~9 w* B6 N2 Schown ceph:ceph /tmp/ceph.mon.keyring
5 A$ D- e: }5 `复制
( ^/ [6 |5 T2 d; K- B R. q使用主机名、主机 IP 地址和 FSID 生成monitor映射。将其保存为 :/tmp/monmap3 ~( f1 V& q( |6 L
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& S4 O" m/ ^2 j J7 b( k
复制
- ]9 Z9 C' U1 U6 Q/ G查看生成的monitor映射文件
. x* ]0 _6 e& b c& M. }monmaptool --print /tmp/monmap
- i- H4 w+ h7 o0 C q+ P7 a复制$ }+ V% b- }% E( W
在monitor主机上创建默认数据目录,目录名是{cluster-name}-{hostname}格式6 \; R) w: ] ~1 n' ]
mkdir /var/lib/ceph/mon/ceph-node1
5 f$ _3 c8 i' s( b; O0 `chmod 755 -R /var/lib/ceph/mon/ceph-node3
; B, R4 d; @: r* D, H! O0 B) o复制2 X) Q- [4 x6 ^5 p" l
在node1节点对monitor进行初始化, L* e4 a5 } k) a5 t. y
ceph-mon --mkfs -i node1 --monmap /tmp/monmap --keyring /tmp/ceph.mon.keyring5 S* q5 i& h6 n0 w/ p* T3 b0 b
复制5 s5 ? T1 I# P. [
可以查看数据目录生成的文件7 E; l( e2 N/ j& p! E1 q8 g
/ J8 p _& o# ~1 ]! m编辑ceph配置文件
t: e2 f& d1 t, p3 n[global]9 _: r9 w3 z9 @
fsid = 9c079a1f-6fc2-4c59-bd4d-e8bc232d33a4
; g' D: y; n8 G& D4 ]2 H- c% e; [mon initial members = node-1,node-2,node-3
" t- J: ~) w/ ]5 ]; d( v4 n! Qmon host = 192.168.122.16,192.168.122.19,192.168.122.182 [2 G( n. F X7 P* M' C/ I) C
mon clock drift allowed = .5/ `, h# k$ L$ A, ~1 b/ H/ Y c+ H
auth cluster required = cephx
) l) y3 x7 a: ]4 R+ a& Gauth service required = cephx
0 y6 E; Q) u1 j1 z. D: iauth client required = cephx8 Y- ?# w; l" E
osd pool default size = 3 //创建pool的时候默认pool是3副本
% @+ c4 ?, X3 ^( f' cosd pool default min size = 2 //pool最少可写的副本数为29 F% E5 ~. k# P2 x6 s
osd pool default pg num = 8
" \! e% R# D. g, P1 H+ N- k' losd pool default pgp num = 8: u* v' v1 V( A* `' w9 H' H: L5 n) i
osd crush chooseleaf type = 0 8 E3 E* V& @! X- A( p7 p. {* O
复制% N6 _* I: q- z% S3 y
将配置文件拷贝到其他节点
+ b' Y3 s& o- Y! @! Escp /etc/ceph/ceph.conf node-2:/etc/ceph/ceph.conf! E- k; w+ k) D% D& d
scp /etc/ceph/ceph.conf node-3:/etc/ceph/ceph.conf
, F) m2 G* e/ r7 d0 V3 ]复制
% R* \- d8 ?& O$ y将mon keyring,mon map及admin keyring拷贝到其他节点7 _9 n: h2 ?! J4 L" v
scp /tmp/ceph.mon.keyring node-2:/tmp/ceph.mon.keyring* G( b- E8 d3 q$ ]
scp /etc/ceph/ceph.client.admin.keyring node-2:/etc/ceph/ceph.client.admin.keyring
8 c. w9 Y2 X2 w( z* R, S( q5 F6 H2 bscp /tmp/monmap node-2:/tmp/monmap' m0 I/ L+ C, q b5 i; y$ o5 [9 t
scp /tmp/ceph.mon.keyring node-3:/tmp/ceph.mon.keyring6 @' X. r. J2 l7 q$ f
scp /etc/ceph/ceph.client.admin.keyring node-3:/etc/ceph/ceph.client.admin.keyring
- ~3 ]0 q7 V3 y2 [scp /tmp/monmap node-3:/tmp/monmap
i- F- t N8 r, ?8 N( a3 a复制
: D, F3 T% D& s, A" t5 A在node2、node3上添加monitor
* h; U G% N0 d& Y分别在这两个节点创建数据目录, G+ e& n0 ^: w! y2 k7 R, D j0 i
mkdir /var/lib/ceph/mon/ceph-node-2. N/ E1 W: y9 x
chmod 755 -R /var/lib/ceph/mon/ceph-node-2
3 C) M5 ^* r% J' t& G3 X/ ^) e# y+ X( Bmkdir /var/lib/ceph/mon/ceph-node-3
) H( p8 ~, \9 M3 w) {chmod 755 -R /var/lib/ceph/mon/ceph-node-3
+ Y" a& n( w& `: k4 Q) q复制$ }. ^1 X$ C- R
分别在这两个节点对monitor进行初始化
6 b g% ?% P0 B% W1 j8 sceph-mon --mkfs -i node-2 --monmap /tmp/monmap --keyring /tmp/ceph.mon.keyring
- o p( @' Y& K' kceph-mon --mkfs -i node-3 --monmap /tmp/monmap --keyring /tmp/ceph.mon.keyring* E7 w( |3 [5 c3 w B9 M. J6 x
复制
6 G5 y' V% H" r+ y# C分别在三个节点启动ceph-mon服务
5 ~" N& j( ^2 ?systemctl start ceph-mon@node-1 && systemctl enable ceph-mon@node-16 `9 {# B" J9 U: U- c2 Z
systemctl start ceph-mon@node-2 && systemctl enable ceph-mon@node-2 e" g( h1 f) c4 q6 r: A! n- c9 k/ F
systemctl start ceph-mon@node-3 && systemctl enable ceph-mon@node-3: `' ~; _ }* E7 N
复制
) x" `# T/ H% ?: A' k# e8 R- himage.png `$ f" ~9 G7 ~) e
可以看到提示3 monitors have not enabled msgr2"
( }3 f, m6 y% J执行以下命令恢复正常 e4 j5 D9 V- H7 W; a
ceph mon enable-msgr2
/ A' @- k) g4 ~3 x. O复制
+ t0 g+ K$ L3 jimage.png+ W; }2 Z4 e: ^
创建MGR
2 {" t9 j Y, e- `, R ~" b在运行ceph-mon守护程序的每个节点上,还应该设置一个ceph-mgr守护程序。, \) s& U# e) P
创建密钥目录
& W. P5 E Y9 g# e8 r: L. B所有mgr节点都要执行
5 O7 U) z" V, |( ]- _sudo -u ceph mkdir /var/lib/ceph/mgr/ceph-`hostname -s`; V& z+ J+ t7 d
cd /var/lib/ceph/mgr/ceph-`hostname -s`: U" ?) s! R: X$ I: V- `
复制9 p+ P \+ M7 x
创建身份验证密钥4 g/ R. c( ~! u# v, V( B, i
ceph auth get-or-create mgr.`hostname -s` mon 'allow profile mgr' osd 'allow *' mds 'allow *' > keyring% q* C; p" {% _$ i) S3 Q# j
复制8 |$ L( S1 k, i# z% q/ a
启动mgr守护进程/ W9 c! }) G! X4 C
systemctl enable ceph-mgr@`hostname -s` && systemctl start ceph-mgr@`hostname -s`
7 @/ `8 Z4 L% q7 t复制
- S+ R2 `' q( q' ]1 q3 e z; M9 J看样子状态有点异常,在所有节点执行下面的命令之后重启机器即可解决
" K4 w O% ?" x" S: u- sModule 'restful' has failed dependency: No module named 'pecan'; {5 m8 ?3 z" h1 }+ d
pip3 install pecan werkzeug
! f/ ~& e) a1 }6 ?# T+ l" }+ y复制
% x6 z! B$ j7 h* M! qimage.png
' Y, Y0 k! ]% t$ Y, G4 l( E部署osd% _' E, L/ n3 e9 C7 j% Z
Ceph提供了该ceph-volume实用程序,该实用程序可以准备逻辑卷,磁盘或分区以供Ceph使用。该ceph-volume实用程序通过增加索引来创建OSD ID。
( k% f% e L/ {7 o; I3 _创建osd) {+ C1 d9 X) n( a( T! w
在node1执行
% ?7 `, d' B, Vceph-volume lvm create --data /dev/sdb" U: s- R6 Y4 p% Q- F9 g6 I
复制
+ c1 K6 \$ R5 Z3 l1 W上面的创建过程可以分为两个阶段(准备和激活):, T3 U6 P8 q& a( u8 t. s% h
ceph-volume lvm prepare --data /dev/sdb
9 z- O% G6 V. E% g7 x查看osd fsid
/ t: B, U2 E" z. h" @' sceph-volume lvm list) |& E2 b @% c; f7 I
ceph-volume lvm activate {ID} {FSID}
* l h7 a( a0 A7 N. p+ G: X复制
+ f* V+ B( \# R1 \% v4 I0 {$ s; a当创建完osd之后,我们发现osd服务已经起来了
j, p+ }3 t" X' N8 n6 O, S/ f1 {1 T
当我们在node-2、node-3节点执行此命令的时候报错了,发现缺少密钥文件
1 J- m8 j# R) p- _, r3 L0 M. d; b/ e% b$ a6 |
拷贝密钥文件. M# Z2 N6 _7 b1 \1 H
scp /var/lib/ceph/bootstrap-osd/ceph.keyring node-2:/var/lib/ceph/bootstrap-osd/ceph.keyring
& {, ^: n& Y0 `! \& e% Pscp /var/lib/ceph/bootstrap-osd/ceph.keyring node-3:/var/lib/ceph/bootstrap-osd/ceph.keyring
- p P, V) @5 T0 I+ ?复制9 n" j2 C4 ]. n
修改密钥属主属组/ C6 K: ~: ~9 V0 _6 O: G' Q
chown ceph.ceph /var/lib/ceph/bootstrap-osd/ceph.keyring8 ^, s( S. `8 _5 }: |+ U% M2 M: }: P
复制
% W' n3 t _+ _' y) ~分别在node-2、node-3创建osd
: `. X* O) o2 t+ G/ N7 hceph-volume lvm create --data /dev/sdb
1 n8 i1 G2 H7 {/ B$ B复制
4 J( q2 ^( l+ U/ U8 K" R$ U也可以分步执行# \) ?$ _3 Q2 c6 E7 d" b" l) n- k
ceph-volume lvm prepare --data /dev/sdb/ U/ u* v% K$ ], ~! N" ?4 b6 P
##获取osd id 和osd fsid
! X3 s% Z3 T5 |, X4 ?/ {ceph-volume lvm list5 ?+ P8 K& ?: N% p; A0 E. Z6 @
##激活osd9 l; @# |1 i* ?+ M( O" B# U a
ceph-volume lvm activate {ID} {FSID}
4 w0 W- X2 J+ B+ o复制1 o7 p$ h: v' V3 P0 O3 V8 o
最后状态是这样的1 O ~ f& g+ }& s; F
" |3 R7 l. ]/ ? f3 g7 G/ e3 r添加MDS
0 D4 z* ^2 T y) B% N创建mds数据目录" p$ L9 B2 h/ R' z# _* Q6 D
mkdir -p /var/lib/ceph/mds/ceph-`hostname -s`/ h- b s K- c! @8 Q6 A1 [9 W
chown -R ceph.ceph /var/lib/ceph/mds/ceph-`hostname -s`
; K+ I3 g2 v/ K9 v复制0 ~2 Q, Y# Q! l5 k5 ^
创建keyring2 h8 ]; l: R2 Q# C D
ceph-authtool --create-keyring /var/lib/ceph/mds/ceph-`hostname -s`/keyring --gen-key -n mds.`hostname -s`/ m3 x" N) |+ `' l: w) j
复制, Z7 D+ z" h- b9 D' f4 R1 ^" E# Z
导入keyring并设置权限
E6 n; W; ? [, V/ oceph auth add mds.`hostname -s` osd "allow rwx" mds "allow" mon "allow profile mds" -i /var/lib/ceph/mds/ceph-`hostname -s`/keyring1 @3 U4 g3 Z1 n4 C( g
chown ceph:ceph /var/lib/ceph/mds/ceph-`hostname -s`/keyring
2 ~; N% n4 [+ ]" o" R5 i复制
; n0 M; A$ g* v0 I; t% E: a修改ceph.conf配置文件6 K; t$ u' l8 S! k
cat >> /etc/ceph/ceph.conf <<EOF
; Q( r" Y9 a. Q3 X; W[mds.node-1]
" A3 a) e' \3 ^) p" Jhost = node-1
4 p$ B: W! X0 n4 \2 {$ u( M[mds.node-2]
8 P& k1 l+ L8 \+ k3 Mhost = node-2( ]% S4 f5 C& ]' q8 |( v- d8 M! y
[mds.node-3]
0 P% o& s9 e5 A1 V, W& Nhost = node-3
. m8 Y+ S2 e; D7 V% B- O) gEOF2 m+ T' D! L% Y4 T9 x
复制) c7 [3 C1 l2 |
启动mds服务
}5 I( \2 w: Q) a! X7 rsystemctl enable ceph-mds@`hostname -s` && systemctl start ceph-mds@`hostname -s`
$ _0 d8 P( Z. _; z6 v- F复制
# K0 @2 I8 ~. b& e" p$ |现在状态应该是这样的8 C7 k8 }2 S d+ D. V2 i
8 t" a& u6 }9 O# ]对象存储RGW安装6 [3 u j% U( {2 u2 f
RGW是Ceph对象存储网关服务RADOS Gateway的简称,是一套基于LIBRADOS接口封装而实现的FastCGI服务,对外提供RESTful风格的对象存储数据访问和管理接口。RGW基于HTTP协议标准,因此非常适用于Web类的互联网应用场景,用户通过使用SDK或者其他客户端工具,能够很方便地接入RGW进行图片、视频以及各类文件的上传或下载,并设置相应的访问权限,共享给其他用户。
" n$ d6 O, d. x! U9 U% Y; n安装radosgw
% F+ Y9 y! N$ F& a3 W, i$ Dyum install ceph-radosgw -y
( V! }! _% O# ~/ M8 \ ^ o复制! L7 k0 E& L# N
创建rgw相关的资源池
6 I" ?, ~) `: D) U资源池列表及部分资源池功能介绍如下。
; M1 A8 \/ o2 H+ @.rgw:region和zone配置信息。9 x; x$ v2 r0 {
.rgw.root:region和zone配置信息。
, X F& f0 U' p9 Y, d9 O.rgw.control:存放notify信息。
0 F) f) ]2 J( Y9 L.rgw.gc:用于资源回收。: \0 L: H, Q, E" T
.rgw.buckets:存放数据。
o, d0 I t1 o# k.rgw.buckets.index:存放元数据信息。
( G$ l R1 l( z: {, @( F.rgw.buckets.extra:存放元数据扩展信息。6 E3 q, C* g8 ^2 W9 P2 f
.log:日志存放。
. P0 | z7 {4 A.intent-log:日志存放。
/ g2 O" q3 |; t9 Y/ q.usage:存放用户已用容量信息。7 [7 H4 q0 q: w
.users:存放用户信息。
- d* O0 Y$ v, C" B# }( T6 h.users.email:存放用户E-mail信息。! c' e: f$ |/ {" J
.users.swift:存放swift类型的账号信息。* Y6 {& k* G8 ^
.users.uid:存放用户信息。
$ f- u4 g0 _0 _* A4 Zceph osd pool create .rgw 8 8
3 q# T$ ^1 S, U% t% P4 F, _ceph osd pool create .rgw.root 8 8
0 k: I6 u% o5 Oceph osd pool create .rgw.control 8 82 E ?: d% a1 ]1 T% h B; c# u
ceph osd pool create .rgw.gc 8 8# e2 [; Z8 J, J1 n
ceph osd pool create .rgw.buckets 8 8
8 Z- R, _1 ?9 T3 K, hceph osd pool create .rgw.buckets.index 8 8
4 A: b8 b0 e# d' z& E) k Kceph osd pool create .rgw.buckets.extra 8 8% G% o# \; U" M1 v$ f
ceph osd pool create .log 8 8
: x" }. }! m) F1 {5 c8 B1 n/ h) fceph osd pool create .intent-log 8 8; s( W3 r4 u. I$ u# N
ceph osd pool create .usage 8 8# j$ }* J( N _0 X
ceph osd pool create .users 8 8
5 |( `2 l. T0 S$ `. ~ceph osd pool create .users.email 8 8
+ z" ]# f' O( m% k+ e' c1 q0 ?ceph osd pool create .users.swift 8 8: q: w2 [6 _, ~) p% ]2 a
ceph osd pool create .users.uid 8 80 p4 v" N+ a k4 w" v
复制
: |- o. x- l" E0 V创建过程会遇到这个报错,原因是每个osd默认最多只支持250个pg,这里有两种解决办法,一种是删除之前创建的pool,并新建pool时把pg设置小一点,另一种则是修改osd默认最大pg数,这里我用了第二种,修改完配置文件后,重启mon
( d5 H& v* J6 b; p5 hError 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)4 |9 h$ u- `$ K! r8 _
编辑配置文件
" ^5 M6 Y4 U a* g( ]: Vvim /etc/ceph/ceph.conf
/ P! x+ |* s+ n$ _7 |3 S2 V+ \* i[global]+ f" o/ c- `. x3 k4 q2 P
mon_max_pg_per_osd = 1000
3 z) ]% _' g2 n0 ?. S#重启mon
0 s2 |5 X+ i+ _- d* x; ^systemctl restart ceph-mon@`hostname -s`4 D4 M) e& y% R. \1 W& E) m; G
复制
5 p6 g8 ~! t7 ]8 G0 O! B可以使用rados lspools查看是否创建成功
5 I3 r/ |/ g) z/ v$ i! y8 w+ c. R/ D' x* M' f* ?
新建RADOSGW用户和keyring
: L) j# X) f6 ]3 k; h, A L' ?: N4 w创建keyring
, T) @6 O( [2 N/ Lceph-authtool --create-keyring /etc/ceph/ceph.client.radosgw.keyring& }1 P& [+ y( G8 s8 M) L
chown ceph:ceph /etc/ceph/ceph.client.radosgw.keyring5 d g4 u( f, X0 l
复制
) b. h9 W' j+ Q1 x生成ceph-radosgw服务对应的用户和key
7 |: D! v5 a- C5 d2 Xceph-authtool /etc/ceph/ceph.client.radosgw.keyring -n client.rgw.node-1 --gen-key
9 ?% X- g5 p+ B, J2 l$ p7 v0 Wceph-authtool /etc/ceph/ceph.client.radosgw.keyring -n client.rgw.node-2 --gen-key
5 \8 D3 k$ x" j% E* Aceph-authtool /etc/ceph/ceph.client.radosgw.keyring -n client.rgw.node-3 --gen-key' y3 C' |0 |) I- m" |6 f5 _
复制9 d X/ g+ [$ u& a
添加用户访问权限) ?: e$ {! j9 q& B0 c! M
ceph-authtool -n client.rgw.node-1 --cap osd 'allow rwx' --cap mon 'allow rwx' /etc/ceph/ceph.client.radosgw.keyring# e# I ?. {! e) @# |
ceph-authtool -n client.rgw.node-2 --cap osd 'allow rwx' --cap mon 'allow rwx' /etc/ceph/ceph.client.radosgw.keyring
0 m5 k+ G! {0 S6 ]' I, sceph-authtool -n client.rgw.node-3 --cap osd 'allow rwx' --cap mon 'allow rwx' /etc/ceph/ceph.client.radosgw.keyring) ~2 t; p: m$ y3 Y$ x, g$ a
复制
( e. ~0 ] r* G8 K将keyring导入集群中 _6 k7 D+ y! P6 o
ceph -k /etc/ceph/ceph.client.admin.keyring auth add client.rgw.node-1 -i /etc/ceph/ceph.client.radosgw.keyring2 j% q) I8 i$ C8 c1 l- d) o- K6 ^
ceph -k /etc/ceph/ceph.client.admin.keyring auth add client.rgw.node-2 -i /etc/ceph/ceph.client.radosgw.keyring
8 `0 i' n C. sceph -k /etc/ceph/ceph.client.admin.keyring auth add client.rgw.node-3 -i /etc/ceph/ceph.client.radosgw.keyring
1 H% E# m( o$ W- `8 R! x, X& z' E复制- Z, P( b8 d4 t: c$ z6 F
编辑配置文件
, K. ~9 D! l7 D. _, U$ W; ~cat >> /etc/ceph/ceph.conf << EOF
* ^+ u$ {. E% O. u[client.rgw.node-1]+ d8 \* C0 a. n; C
host=node-1
' N5 y/ |5 t$ V5 Ekeyring=/etc/ceph/ceph.client.radosgw.keyring( R0 e# I- t( g0 |) d3 d
log file=/var/log/radosgw/client.radosgw.gateway.log. w( e# k. b* l i
rgw_frontends = civetweb port=8080
/ d, U* @" c' t# A4 r[client.rgw.node-2]; z( I5 w/ L3 k, H" q
host=node-2
9 q6 l0 l" f0 Z; W: ~keyring=/etc/ceph/ceph.client.radosgw.keyring* ?' ~. n- B, o" g, V3 `
log file=/var/log/radosgw/client.radosgw.gateway.log
* _* M+ ~9 l; r4 [% q( }; |7 i/ Zrgw_frontends = civetweb port=8080
[9 S8 A0 s9 O. y) }- E# d# c8 Q[client.rgw.node-3]& ?5 T& i) J: {5 c4 Y
host=node-3
6 a T+ Q' Y$ e kkeyring=/etc/ceph/ceph.client.radosgw.keyring" b% l" ^* }* J0 J
log file=/var/log/radosgw/client.radosgw.gateway.log8 D8 {5 G- F# }7 U3 h& Z" n4 L& T
rgw_frontends = civetweb port=8080
& j/ _+ K3 m! F8 }; y0 n6 g; E* h& q5 }7 DEOF1 E/ x+ ?7 A9 E! \% b
复制
+ W) t5 ?0 o% X9 p, \创建日志目录1 ]5 O) O4 W8 ^2 M( K1 _
mkdir /var/log/radosgw
1 M* G! Q- t$ @* u9 V& W& u. w" h4 M0 Fchown ceph:ceph /var/log/radosgw2 R# H: j9 a3 |% B8 p
复制
8 P r1 ?$ o. Z R$ u拷贝keyring、ceph.confceph.conf到node-2、node-35 H) m- Z" o5 X9 K1 u! R% [
scp /etc/ceph/ceph.client.radosgw.keyring node-2:/etc/ceph/ceph.client.radosgw.keyring
/ f/ j4 ?& ^9 U6 H& q+ g, { i! a" Pscp /etc/ceph/ceph.client.radosgw.keyring node-3:/etc/ceph/ceph.client.radosgw.keyring! K; Q9 Y/ t% v( \
scp /etc/ceph/ceph.conf node-2:/etc/ceph/ceph.conf) k4 V3 t _6 P( z2 y6 S
scp /etc/ceph/ceph.conf node-3:/etc/ceph/ceph.conf; f0 }; K$ g% t. u6 M7 X' Z% S
复制
' L! K) i' a) s1 P! g6 j在node-2、node-3部署RGW
0 f$ Q! ?; U1 p% h% @ m修改keyring属主
7 j9 W" R/ r& F' e% l/ ]. ~/ f2 fchown ceph:ceph /etc/ceph/ceph.client.radosgw.keyring
. \1 u3 P2 }; z- t3 p复制+ v- s6 D3 E0 B6 Y$ k3 t
创建日志目录并授权. r1 _3 _# t8 w: x$ M7 s0 c
mkdir /var/log/radosgw
+ P- v( i3 H/ Z8 l4 Zchown ceph:ceph /var/log/radosgw$ M) {$ h, V, F* ?: Q1 M
复制
& e6 _% y; ?7 W, O: i: C: t8 V启动rgw服务 q4 \9 M, b" B# U/ S
systemctl start ceph-radosgw@rgw.`hostname -s` && systemctl enable ceph-radosgw@rgw.`hostname -s`
& J8 q6 ]; D3 q! p3 N" t/ b" z复制
3 b% x+ `+ |2 k' J, z查看ceph状态,发现有个小问题3 d* n. y2 q& S* i5 a
2 \; `4 ]/ s1 e2 }4 m( s2 |
使用ceph health detail查看详情,根据提示enable即可
# P9 ?, Q% z* V0 Q6 j7 p, K n5 k9 j* N( {& q5 [! I, a- i' C( n
使用curl访问服务
: C* E6 V d1 K* r9 p4 T7 s* o1 P
5 @2 Q, E; b! Q$ f( x |
|