找回密码
 注册
查看: 660|回复: 0

手动部署ceph octopus集群

[复制链接]

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
发表于 2022-7-15 12:00:04 | 显示全部楼层 |阅读模式
基础配置
8 p8 D9 Z" y  h4 T" X# D, K三台环境为centos7.9,以下配置需要在每台机器上执行1 m6 I" d; R2 k) l: h& H
配置hosts解析% l8 ]6 m9 e( N+ `) B; }5 A
cat >> /etc/hosts <<EOF' o/ [+ A' [' |8 b) r9 f
192.168.122.16 node-1
' c! S5 E6 D/ `5 P% f192.168.122.19 node-25 c- q0 T8 p9 N4 g; g" q7 p
192.168.122.18 node-3! N0 p8 h7 z; `% W7 h8 {# [+ e7 y
EOF
* _8 Q! k/ h( v4 c1 H; ], t: s9 ?复制! U& O7 o! z4 n  ^: A7 r, {" h& }- X/ _! Q
关闭防火墙和selinux- V% R5 g) f. [: q! F. Y
systemctl stop firewalld && systemctl disable firewalld4 H; I, P; g: n: g( c" ]/ O
setenforce 0 && sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
7 y  ?3 p3 }* r* r  f) o0 q6 }: z复制- d8 Z. p. u+ E! _
分别在三个节点设置主机名4 w! ?: P- k  ^! I, I) T' v
hostnamectl set-hostname node-1' q8 K+ n% B! h5 @6 D8 {
hostnamectl set-hostname node-2
  F% E: b# T" K/ K3 f2 [hostnamectl set-hostname node-3( T% q% l- g; ~3 m: g
复制
; E3 x# x0 s- R3 H6 q1 V: Y配置主机时间同步  a; Q1 [, |) f6 k
systemctl restart chronyd.service && systemctl enable chronyd.service: x7 |* h# S3 d9 @. d) a
复制
7 b8 z1 g5 y1 d/ L使用yum安装
7 W& \* v: u% l+ p安装yum-plugin-priorities
' x5 K" [. L% r yum install yum-plugin-priorities
7 B1 U2 `! a. ?6 w. w! W复制& m% T) u2 {$ K' N  n/ s
安装依赖包
: w" \9 y7 x' F# s! @& O$ \, C/ Dyum install snappy leveldb gdisk python-argparse gperftools-libs epel-release9 m" b, N: W' y, G4 A
复制
4 r# s+ k4 q$ Y: p添加ceph仓库
# q6 ?5 k7 M# o' x2 Q- x* U3 k建议使用阿里的源,国外的太慢了. q' ~9 r' N8 ]9 B
vim /etc/yum.repos.d/ceph.repo0 \* S5 E( x; ]$ s9 B3 O
[ceph]
8 d' m* h" T1 w- f+ g0 t! @1 Pname=ceph$ W, C7 V, _# W( `
baseurl=http://mirrors.aliyun.com/ceph/rpm-15.2.8/el7/x86_64/
- X$ A$ i) G$ Y# jgpgcheck=04 f* S' }# E9 `2 A8 O
[ceph-noarch]
; ^! \6 T8 [; i/ c" ], Uname=cephnoarch/ |2 Q! Q  S/ {! A6 T* R0 z
baseurl=http://mirrors.aliyun.com/ceph/rpm-15.2.8/el7/noarch/
$ W3 u& [/ \3 R0 d2 ]gpgcheck=08 E: J) m0 X/ a4 T! W
复制
2 j% A# A9 Q3 B安装ceph/ X- f; o0 j5 B2 O' j' i
yum install ceph -y, D# [0 Z0 |9 r; k0 e/ M% u
复制( L3 g/ t& S9 s9 K" B4 m  t
部署monitor节点! G7 ^5 }+ i! R
所有 Ceph 群集至少需要一个monitor,并且至少需要与存储在群集上的对象副本一样多的 OSD。引导初始mon是部署 Ceph 存储群集的第一步,这里我直接在node1、node2、node3创建三个mon。
! O$ b2 c' P6 d* a+ ?' l' ^1 ~9 {) c& Q* A在node1添加monitor. A( Q0 d8 o" t3 G  S' B
为集群生成唯一的fsid,fsid是群集的唯一标识符,代表 Ceph 存储群集主要用于 Ceph 文件系统的文件系统 ID4 O9 S; ?3 A$ U3 n5 V
uuidgen( R# S; `& v% c. [3 K! Z
复制
* p8 H, ?5 [5 ^6 u  P7 O" D" T创建ceph配置文件,将生成的fsid添加到配置文件中
% @! m/ o; |; y6 H" j; |vim /etc/ceph/ceph.repo
# D* u4 K! q* r[global]1 G6 W9 b2 V0 i, A8 H0 }6 d: Z8 N
fsid=9c079a1f-6fc2-4c59-bd4d-e8bc232d33a47 K) h" Y) ?% r
复制% G! Y& ^0 o6 Z) Q1 T, T/ W
为群集创建keyring并生成monitor keyring。monitor通过密钥相互通信。必须生成具有monitor密钥的keyring,并在引导初始monitor时提供keyring。
1 Q* u! B6 B! N* T) v! y% [" u6 J6 c* Gceph-authtool --create-keyring /tmp/ceph.mon.keyring --gen-key -n mon. --cap mon 'allow *'
, d7 G6 V/ E/ d( }. k0 k6 Q% Q1 n复制
/ `! t6 ]5 A. ]生成管理员keyring,生成用户并将用户添加到client.admin keyring中。要使用 CLI 工具,必须有一个用户,并且还必须将用户添加到monitor keyring。2 X8 w6 n; K) ?! {& T" C/ E# X
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 *'  k2 F7 l1 w8 H) J4 _( L5 O
复制
: p: n$ W* ~, e6 ^! Z$ e生成引导 osd 密钥,生成用户并将用户添加到client.bootstrap-osd keyring中。: ?' \$ L4 X$ O$ p" y' 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'; u& u- h* q0 S9 J$ k9 {$ J
复制
) \, g5 ^) D5 _将生成的键添加到 ceph.mon.keyring
& ~+ i+ X$ Z3 z3 _( xceph-authtool /tmp/ceph.mon.keyring --import-keyring /etc/ceph/ceph.client.admin.keyring
- T, U1 C7 m5 cceph-authtool /tmp/ceph.mon.keyring --import-keyring /var/lib/ceph/bootstrap-osd/ceph.keyring3 J' i+ G4 X8 c1 l
复制
7 M1 }0 h9 B  L! K9 J更改 ceph.mon.keyring的所有者。
; N' U, c% |: h. n  M& zchown ceph:ceph /tmp/ceph.mon.keyring
& f  C( F5 F, P2 L复制1 q5 F/ \: C4 Y( q
使用主机名、主机 IP 地址和 FSID 生成monitor映射。将其保存为 :/tmp/monmap
5 o7 T! Y% L7 e' Xmonmaptool --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/monmap7 ~2 v/ ^' c: W* Z. W
复制8 k5 H& d* \+ `) t2 ]; F
查看生成的monitor映射文件
0 R/ e' G9 i; d  xmonmaptool --print /tmp/monmap# x0 \3 q5 k  }9 u. K5 Z
复制
, Q. O- q! b/ i/ A' g! E在monitor主机上创建默认数据目录,目录名是{cluster-name}-{hostname}格式
- C# h- D+ I# T9 I* ~# Xmkdir /var/lib/ceph/mon/ceph-node1; y; k: G& B# r" s
chmod 755 -R /var/lib/ceph/mon/ceph-node30 e) D5 f; z; a+ x. ?
复制$ s' e, Z6 }) A/ {! i4 f5 Y
在node1节点对monitor进行初始化0 a6 `# P/ p. \; j1 o
ceph-mon --mkfs -i node1 --monmap /tmp/monmap --keyring /tmp/ceph.mon.keyring; W* K8 m4 r# X# J- X& {
复制' L( G# G( f. C/ N
可以查看数据目录生成的文件' w, M+ ?2 x4 s: S' A, m4 Q6 B

* F5 _- E3 m+ ]  l# o! k- N( D编辑ceph配置文件0 i; g8 J( [/ k
[global]
0 @& L1 ]% N$ j( d" l9 Gfsid = 9c079a1f-6fc2-4c59-bd4d-e8bc232d33a4' }1 D' t/ G7 ^8 c2 @
mon initial members = node-1,node-2,node-3
( m) F  \& f" \" [! g: Emon host = 192.168.122.16,192.168.122.19,192.168.122.18
% S! G7 M8 S! ]# q8 Umon clock drift allowed = .5- a; ?+ y0 ~. Q6 X/ {
auth cluster required = cephx4 n  v  U) k( h8 W; q+ E3 \
auth service required = cephx
  l: p& Y2 o! h* W4 G' O0 K  kauth client required = cephx
8 C6 w! R. b* R% gosd pool default size = 3  //创建pool的时候默认pool是3副本! s: E* o/ o% j: v4 `0 p1 ]
osd pool default min size = 2   //pool最少可写的副本数为2
; M0 g8 h: y8 Z& B, v- P1 W! X( p# e+ _osd pool default pg num = 80 ?; g8 V/ r  L" X& o1 t& c
osd pool default pgp num = 8
/ v1 |, G0 I  q, n0 cosd crush chooseleaf type = 0   S# z' {! @: Q) L1 s# b% ?4 Z
复制
! [4 h5 k6 ~# e- c. S将配置文件拷贝到其他节点
- O5 B1 W( p2 w4 \6 h0 Dscp /etc/ceph/ceph.conf node-2:/etc/ceph/ceph.conf& _  ~# @& W: O) _
scp /etc/ceph/ceph.conf node-3:/etc/ceph/ceph.conf
3 u1 R* e* b* L" k复制
+ ~1 d( I( A0 {5 U# B$ r将mon keyring,mon map及admin keyring拷贝到其他节点3 i) x, Z5 p" x) ^# x
scp /tmp/ceph.mon.keyring node-2:/tmp/ceph.mon.keyring
4 q; s+ f2 S# a" t  ~scp /etc/ceph/ceph.client.admin.keyring node-2:/etc/ceph/ceph.client.admin.keyring7 Z; I0 S& f& `! N* T$ P+ Q
scp /tmp/monmap node-2:/tmp/monmap
, H9 k1 S1 Z" @1 X1 Y; n/ Fscp /tmp/ceph.mon.keyring node-3:/tmp/ceph.mon.keyring
4 i1 Z. e8 j7 e  I+ c7 wscp /etc/ceph/ceph.client.admin.keyring node-3:/etc/ceph/ceph.client.admin.keyring3 f  q+ m  T+ d1 J4 _9 H8 q5 q
scp /tmp/monmap node-3:/tmp/monmap3 U3 _& [# \' }5 E$ D) f
复制. l, j) l9 L) O! n
在node2、node3上添加monitor
" @5 P, G; h  x1 a# x; i! k3 @分别在这两个节点创建数据目录
- N9 ~% e% u) B- y$ T) x! Kmkdir /var/lib/ceph/mon/ceph-node-28 Y. G4 K: L& k: P
chmod 755 -R /var/lib/ceph/mon/ceph-node-28 X, I% W* X* K( K. Q
mkdir /var/lib/ceph/mon/ceph-node-3$ k( E1 C1 t) [) e# ]" O( L. X) x$ @
chmod 755 -R /var/lib/ceph/mon/ceph-node-3
) v( z: T+ ~. t9 r复制
0 L. M# u% o1 J# k& t分别在这两个节点对monitor进行初始化, R& v. z( i8 }
ceph-mon --mkfs -i node-2 --monmap /tmp/monmap --keyring /tmp/ceph.mon.keyring
5 U2 A$ _, G2 e0 m, [2 Fceph-mon --mkfs -i node-3 --monmap /tmp/monmap --keyring /tmp/ceph.mon.keyring  G5 A3 I- ]+ v) ?, X9 U* h1 c3 j/ y
复制
% c8 r) X, [" A& i, o分别在三个节点启动ceph-mon服务% G3 a1 Q: D2 |/ t# ?* W
systemctl start ceph-mon@node-1 && systemctl enable ceph-mon@node-1! ?# F9 e2 y6 ~  f! S
systemctl start ceph-mon@node-2 && systemctl enable ceph-mon@node-24 A1 B6 w5 h7 |4 u. [' {- b
systemctl start ceph-mon@node-3 && systemctl enable ceph-mon@node-3# g7 w! G- _) U$ P
复制3 @) m  i8 W' }$ t) h
image.png
# m' ?+ l* p, j/ w5 S可以看到提示3 monitors have not enabled msgr2"$ ^4 i# K% u# y! W  u
执行以下命令恢复正常
0 |* d  D, ^8 x9 b+ w! uceph mon enable-msgr2
& \# \; w0 D  Q) [7 o复制  V3 g8 O; E' E/ Z( _- A, i- C! P
image.png
4 w+ C' E% w/ C创建MGR
! K5 g# J) J& L8 V* R; m在运行ceph-mon守护程序的每个节点上,还应该设置一个ceph-mgr守护程序。
) e2 l* V6 \! O& V- |4 b1 O3 v创建密钥目录' w/ g; ^' U$ w% t0 J4 O
所有mgr节点都要执行
% z2 \7 m2 v/ U* y# h; b# Y/ Vsudo -u ceph mkdir /var/lib/ceph/mgr/ceph-`hostname -s`( ^$ e$ b; T& T2 Q; ^
cd /var/lib/ceph/mgr/ceph-`hostname -s`# Q; t2 P$ Z& ?: Z
复制5 T% u! L# k, O# D9 P, X- z
创建身份验证密钥9 E* Z( ?. y: J0 a& V6 o& f
ceph auth get-or-create mgr.`hostname -s` mon 'allow profile mgr' osd 'allow *' mds 'allow *' > keyring
/ @- L9 N1 w1 T% F复制# P  @' ^) _! w
启动mgr守护进程
) @: l, w3 I( V, |8 ksystemctl enable ceph-mgr@`hostname -s` && systemctl start ceph-mgr@`hostname -s`! V" J- p) n; q% f& m" F2 H
复制/ Z- j0 G, M# x
看样子状态有点异常,在所有节点执行下面的命令之后重启机器即可解决5 w: D* s2 V5 n5 s3 M! Q3 @# n  P4 E
Module 'restful' has failed dependency: No module named 'pecan'* [( v% Z9 J8 B$ L6 B) s
pip3 install pecan werkzeug! x( [* U, L) I$ t% O6 t
复制
' }9 ^/ x- e" y2 `image.png
! Z% E; f6 L( @. I部署osd/ {5 b/ [) Q2 q8 p7 f- r( T
Ceph提供了该ceph-volume实用程序,该实用程序可以准备逻辑卷,磁盘或分区以供Ceph使用。该ceph-volume实用程序通过增加索引来创建OSD ID。5 `! u) Q8 D8 |) M" P5 Z. a
创建osd
0 I4 K, S% ?9 S* d5 x! _在node1执行
% H* s) F; L8 y9 jceph-volume lvm create --data /dev/sdb
" `6 y7 c" Z. J4 Z复制( x% T& q7 l; F+ J, G( P4 p7 f+ `
上面的创建过程可以分为两个阶段(准备和激活):; ]3 c# ]% O5 U
ceph-volume lvm prepare --data /dev/sdb5 q/ \6 C; P5 b7 x0 V
查看osd fsid
4 ^* ?! f6 n6 |0 [ceph-volume lvm list) V9 t( x6 i" W- H
ceph-volume lvm activate {ID} {FSID}
8 Y) k9 k% {& a2 ^- o复制
2 ^" l1 R6 Z# ?. T当创建完osd之后,我们发现osd服务已经起来了* {# X- d+ ^: y2 C

3 J: k3 |0 R8 l& g$ k当我们在node-2、node-3节点执行此命令的时候报错了,发现缺少密钥文件
. A* E; i0 [5 L! u8 o3 s/ S0 b7 @  l: ~
拷贝密钥文件
8 w5 K' ]" j3 G/ u+ r" `2 T/ `# mscp /var/lib/ceph/bootstrap-osd/ceph.keyring node-2:/var/lib/ceph/bootstrap-osd/ceph.keyring
8 d3 w$ O4 q6 ]  f. s4 p7 U' iscp /var/lib/ceph/bootstrap-osd/ceph.keyring node-3:/var/lib/ceph/bootstrap-osd/ceph.keyring
! D' c7 C7 M* v: `复制" p" m/ S8 z; u5 ?( D, R
修改密钥属主属组, m3 K1 j. |  m
chown ceph.ceph /var/lib/ceph/bootstrap-osd/ceph.keyring
* t; N; b8 Z1 g6 T& L复制
: n- c8 i, J' w0 n3 \1 @分别在node-2、node-3创建osd
) T/ `0 i; h8 H& S- Pceph-volume lvm create --data /dev/sdb
' v8 M: V: T' G& ]& H( `/ X, P复制
& u) Z9 r# q  I+ l$ q9 ~* O4 ?* i也可以分步执行
/ w, O- S) c+ m; c. E  X$ W" bceph-volume lvm prepare --data /dev/sdb
% I4 y. x6 e) T) g5 T0 G##获取osd id 和osd fsid. A8 b+ g* F& a2 Q3 x* K: W9 \
ceph-volume lvm list+ W+ q" t# {: X9 ~9 ?8 ^
##激活osd7 j# U/ \" H, i) S
ceph-volume lvm activate {ID} {FSID}
: F- H/ @4 H, T" v6 p+ M复制2 v. }- @0 r( U1 X
最后状态是这样的
' N9 w4 [7 h5 [, t
( z% i! {, Y) ?8 o) K添加MDS
6 h0 @3 p: r; m5 S9 P1 L! B! l: [创建mds数据目录4 U$ M4 ]3 Y: a
mkdir -p /var/lib/ceph/mds/ceph-`hostname -s`
5 C; q8 @, {; ~# `8 T9 pchown -R ceph.ceph /var/lib/ceph/mds/ceph-`hostname -s`* c5 t1 c0 ]3 o6 ]0 M. ]
复制! p2 ~& k$ s) a& k+ t2 ~4 z* n7 q
创建keyring
" x2 f3 f6 d, _# \% y6 G8 G. |2 dceph-authtool --create-keyring /var/lib/ceph/mds/ceph-`hostname -s`/keyring --gen-key -n mds.`hostname -s`
7 R8 p: J; n- }  H复制
1 ~- C1 F9 @0 [- B; C导入keyring并设置权限4 t) N, K9 C0 t
ceph auth add mds.`hostname -s` osd "allow rwx" mds "allow" mon "allow profile mds" -i /var/lib/ceph/mds/ceph-`hostname -s`/keyring
2 x! c. C! m; p1 P; R0 Echown ceph:ceph /var/lib/ceph/mds/ceph-`hostname -s`/keyring& Y3 z0 _5 C$ L/ p5 a
复制# m8 K* _; T) p2 o
修改ceph.conf配置文件' W1 l2 B/ G( ^! y- ?
cat >> /etc/ceph/ceph.conf <<EOF# H9 {- m" a* I5 c6 l
[mds.node-1]% H. S# p+ B( [0 K# y' _
host = node-1
9 m. U7 Z. N! b; A7 S: f/ E7 z[mds.node-2]
8 U4 ]9 _; l4 G& ~4 A5 ihost = node-2
' ]7 F, V8 t( i+ Z  u6 f[mds.node-3]1 u4 b& E, {9 ?  J2 M6 A/ k
host = node-3) Q$ ^0 q( J$ r0 K+ ?
EOF
& S2 e2 Y7 ]1 J) D6 f6 H$ }2 f复制4 T! K% T  T5 @9 l3 H. z
启动mds服务
( r& |3 r- v* E8 o+ hsystemctl enable ceph-mds@`hostname -s` && systemctl start ceph-mds@`hostname -s`
4 r1 @& C) Y0 H复制; u% L2 L) j- L9 p$ L. m
现在状态应该是这样的. x1 b* S: |% \; o' L, a3 C$ ^( Z. ]
& _, @7 I2 C9 [$ i. `1 Y
对象存储RGW安装
, |" m# @( O/ \$ mRGW是Ceph对象存储网关服务RADOS Gateway的简称,是一套基于LIBRADOS接口封装而实现的FastCGI服务,对外提供RESTful风格的对象存储数据访问和管理接口。RGW基于HTTP协议标准,因此非常适用于Web类的互联网应用场景,用户通过使用SDK或者其他客户端工具,能够很方便地接入RGW进行图片、视频以及各类文件的上传或下载,并设置相应的访问权限,共享给其他用户。/ r; S. C1 G+ |4 X+ k/ T$ \+ k  x
安装radosgw/ \# q3 i$ t; {
yum install ceph-radosgw -y2 R8 ~  [6 U+ d+ F# A0 i4 _% A. F
复制, d: t5 l# b5 l2 ~$ v. z5 B; {1 q
创建rgw相关的资源池) S* b& A2 a% R5 L& J: P
资源池列表及部分资源池功能介绍如下。2 c. S3 z) E) {# {9 h
.rgw:region和zone配置信息。4 f, H9 Z1 }9 M/ d, F+ B- W. h! m
.rgw.root:region和zone配置信息。: r1 x1 {3 W& [, V2 J
.rgw.control:存放notify信息。
! b! Q7 m- Z# g9 j' k.rgw.gc:用于资源回收。
$ {& @5 a: a" G; E2 W7 j1 j.rgw.buckets:存放数据。
# ~6 \' O- Z) _1 p0 c( X' z.rgw.buckets.index:存放元数据信息。# C7 ^# j& a: A" x& X: x+ a( n
.rgw.buckets.extra:存放元数据扩展信息。1 ~6 e, H4 @4 ^9 S
.log:日志存放。% L& A/ ^5 Y7 B. u
.intent-log:日志存放。
8 L# N! A' |1 C.usage:存放用户已用容量信息。  x5 M: Z) e/ Q2 `
.users:存放用户信息。
: L; p; K  n. [) x6 z7 `.users.email:存放用户E-mail信息。" T  _6 Y$ V- @3 j- Z, X8 G
.users.swift:存放swift类型的账号信息。
1 \9 u5 d1 ~, Z2 w.users.uid:存放用户信息。
7 O5 \( y- Q+ v9 Xceph osd pool create .rgw 8 8
1 n5 P3 E% |! F7 _ceph osd pool create .rgw.root 8 8
3 `( }! ]7 g" o  ?* X. jceph osd pool create .rgw.control 8 88 D- _1 d9 M- B( b
ceph osd pool create .rgw.gc 8 8
; S9 q7 c1 d: }! e: Jceph osd pool create .rgw.buckets 8 8  D' W6 V9 K, d
ceph osd pool create .rgw.buckets.index 8 8
; D' `  M% N9 s7 M+ \' Zceph osd pool create .rgw.buckets.extra 8 84 y3 k6 @' ?7 k7 y& p$ m2 v
ceph osd pool create .log 8 8
8 L- H, b8 j- e- C6 u+ K- sceph osd pool create .intent-log 8 8
- L! s: ]$ x: v4 o. t+ T% i; qceph osd pool create .usage 8 8
% @7 ~4 S. g& H- _% i* r0 }ceph osd pool create .users 8 84 v2 {+ E8 f2 P
ceph osd pool create .users.email 8 8
7 \6 v7 c7 M" b: I0 x  W/ C' L6 rceph osd pool create .users.swift 8 8: L: p: r5 s5 a1 x# |& \( y- i
ceph osd pool create .users.uid 8 8, P( L& u! `; ^+ b
复制
! G" X1 p7 f" F创建过程会遇到这个报错,原因是每个osd默认最多只支持250个pg,这里有两种解决办法,一种是删除之前创建的pool,并新建pool时把pg设置小一点,另一种则是修改osd默认最大pg数,这里我用了第二种,修改完配置文件后,重启mon
9 z1 a; g" h9 l/ S4 x9 AError 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)
! z% ?0 }1 ~6 |1 y, e# k% S: a编辑配置文件1 L; g4 Q% {4 s+ p0 j$ i
vim /etc/ceph/ceph.conf9 H' i- z) ?2 ?
[global]4 t6 @1 n& N* u8 |# u
mon_max_pg_per_osd = 1000' @9 ~3 H+ h' V1 z8 G$ e
#重启mon" d% a5 U* @3 Q0 p; @1 c
systemctl restart ceph-mon@`hostname -s`3 Y' r. I' X* X) C- p" E3 N
复制' ~/ y5 P# q# G4 q3 D
可以使用rados lspools查看是否创建成功
( e4 h3 l' x) P
5 K* ]1 C7 V9 b5 J8 C! S! q+ a0 r新建RADOSGW用户和keyring# c8 I- ~3 f* M$ C/ Q0 w
创建keyring* l, C. z  i) m" @2 ^2 g
ceph-authtool --create-keyring /etc/ceph/ceph.client.radosgw.keyring& T1 z& K' q# F3 s& [. q3 R2 e
chown ceph:ceph /etc/ceph/ceph.client.radosgw.keyring
1 t6 i, o4 j( u, [复制
: |7 Z' ~- D# ?: m  u; G生成ceph-radosgw服务对应的用户和key
) K4 J. }2 d' N- cceph-authtool /etc/ceph/ceph.client.radosgw.keyring -n client.rgw.node-1 --gen-key
! O3 J0 ~0 _+ n( S- g+ @ceph-authtool /etc/ceph/ceph.client.radosgw.keyring -n client.rgw.node-2 --gen-key
% j7 M, e+ r$ T/ {4 Z5 dceph-authtool /etc/ceph/ceph.client.radosgw.keyring -n client.rgw.node-3 --gen-key
- _. N+ n0 s4 s! r% J2 G复制8 c* G$ v$ M5 x8 J
添加用户访问权限
0 s8 V2 O, |* t# z* V; Z5 Jceph-authtool -n client.rgw.node-1 --cap osd 'allow rwx' --cap mon 'allow rwx' /etc/ceph/ceph.client.radosgw.keyring% S( |4 v$ o8 x# H3 H2 I
ceph-authtool -n client.rgw.node-2 --cap osd 'allow rwx' --cap mon 'allow rwx' /etc/ceph/ceph.client.radosgw.keyring
8 M6 i: s9 m, U- S9 S- I0 ]ceph-authtool -n client.rgw.node-3 --cap osd 'allow rwx' --cap mon 'allow rwx' /etc/ceph/ceph.client.radosgw.keyring
* I5 G2 V4 Q- {复制/ \$ @: x9 r! W6 l8 \
将keyring导入集群中0 v, z& U. W: B" h
ceph -k /etc/ceph/ceph.client.admin.keyring auth add client.rgw.node-1 -i /etc/ceph/ceph.client.radosgw.keyring
9 O& ^2 o/ l0 D7 U% {7 k* Oceph -k /etc/ceph/ceph.client.admin.keyring auth add client.rgw.node-2 -i /etc/ceph/ceph.client.radosgw.keyring
: J. I# }) w, z) T: q- }5 aceph -k /etc/ceph/ceph.client.admin.keyring auth add client.rgw.node-3 -i /etc/ceph/ceph.client.radosgw.keyring* |0 u4 N1 ~& u: s0 o/ E% f
复制
8 q$ A1 r3 {' t( I- M$ {编辑配置文件% Z! e: @' R0 a7 y! W" A  a
cat >> /etc/ceph/ceph.conf << EOF7 h1 Q/ w! m( q1 W. [3 R
[client.rgw.node-1]
* u  r2 s' M0 g7 p" A$ J/ q, Qhost=node-1
) R1 f- ^1 p; l/ M$ ^keyring=/etc/ceph/ceph.client.radosgw.keyring2 r/ F/ J4 a# h/ b
log file=/var/log/radosgw/client.radosgw.gateway.log
9 d& I5 U3 i& q0 }; krgw_frontends = civetweb port=8080
. A& B% _9 w& U( I. M# ]$ H- a6 L[client.rgw.node-2]  f! y7 t6 W/ P+ @
host=node-2
8 n6 G, ~* p5 f% Jkeyring=/etc/ceph/ceph.client.radosgw.keyring
9 T6 ?1 [3 R5 i/ R2 qlog file=/var/log/radosgw/client.radosgw.gateway.log  x1 l& z& O5 W2 }" e6 d' J/ a  t* [
rgw_frontends = civetweb port=80802 f6 e7 R9 W8 Z7 a, I4 f
[client.rgw.node-3]
+ t: v6 P. v) ?+ `* H( P; Nhost=node-3/ `% b4 j! D% j
keyring=/etc/ceph/ceph.client.radosgw.keyring' U" J$ A+ k% J' o
log file=/var/log/radosgw/client.radosgw.gateway.log; q% W3 k* ?$ I, Y' u
rgw_frontends = civetweb port=8080: K0 A6 ?# \, @, H
EOF
+ M5 j) i" ]3 \, @+ M复制3 F4 q" r5 O0 P9 L( c
创建日志目录6 ]/ s  J5 ?& e  ?
mkdir /var/log/radosgw. M# d* r0 L" ]  x! H; x6 G
chown ceph:ceph /var/log/radosgw# J) v. q7 T9 z3 w. @
复制
8 R) K! {/ m! s' |1 B: d  o拷贝keyring、ceph.confceph.conf到node-2、node-3
( q, f9 O( a+ w+ b# I' n: Yscp /etc/ceph/ceph.client.radosgw.keyring node-2:/etc/ceph/ceph.client.radosgw.keyring- @! F/ \/ s1 y+ k' V/ h
scp /etc/ceph/ceph.client.radosgw.keyring node-3:/etc/ceph/ceph.client.radosgw.keyring- O) G6 q* E. R3 H5 O
scp /etc/ceph/ceph.conf node-2:/etc/ceph/ceph.conf: m! g5 l1 X6 h7 p7 Z
scp /etc/ceph/ceph.conf node-3:/etc/ceph/ceph.conf- A- z4 x6 u2 }
复制/ k7 @- q- P7 U0 k7 R0 b
在node-2、node-3部署RGW0 l. k% C# m: J2 a1 d
修改keyring属主+ |8 b1 e6 E- j8 p' ~2 K' c( _
chown ceph:ceph /etc/ceph/ceph.client.radosgw.keyring5 b6 B1 f  Y) u4 K, B" }6 a! N
复制2 z) _# \* {1 x
创建日志目录并授权
$ j% f/ R/ l0 i# a9 s0 \3 ?mkdir /var/log/radosgw
' i6 z* Y$ e5 @" @) Fchown ceph:ceph /var/log/radosgw
5 ~% a- }# }/ L: e+ l* K复制
: f  D1 v8 \3 I启动rgw服务
' a7 s2 G7 T- e7 {5 @# V, _systemctl start ceph-radosgw@rgw.`hostname -s` && systemctl enable ceph-radosgw@rgw.`hostname -s`
7 g2 Y/ Y$ y' H& \' Z+ j复制) e! Z/ {$ n4 Q3 J. r  g7 |3 y
查看ceph状态,发现有个小问题
. h' m! ~. x- c6 U6 i+ ^# C# ~1 H* `4 X
使用ceph health detail查看详情,根据提示enable即可
/ [+ J2 e! u  Z5 n6 L8 t. k8 w3 w6 \) v; Z+ k- H/ {; b# \7 \
使用curl访问服务
' k0 ]6 _1 c  t! E- o- U! y8 F1 k  i) w2 L1 `* P; ?: k
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-11 23:59 , Processed in 0.015195 second(s), 22 queries .

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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