|
|
楼主 |
发表于 2021-7-19 13:50:11
|
显示全部楼层
环境介绍* t8 p S9 P1 B B6 p X, D- ]. K- `
IP地址 配置 主机名 Ceph版本+ t) q: I( A8 F- M
10.15.253.161 c2m8h300 cephnode01 Octopus 15.2.4
; u9 E9 `6 y3 ]) g+ h10.15.253.193 c2m8h300 cephnode02 Octopus 15.2.48 W# x" q f' S8 |+ p- I
10.15.253.225 c2m8h300 cephnode03 Octopus 15.2.4: ]1 s+ i* M$ L4 p! W+ w& `
]$ _4 ~2 e8 L/ T#Linux系统版本. O; _$ t& @. s! m/ b% k
[root@cephnode01 ~]# cat /etc/redhat-release
" Z+ ]% e; S' c# RCentOS Linux release 8.2.2004 (Core)# I7 V$ O4 v* M
[root@cephnode01 ~]# uname -r
; C7 J; \3 [) @1 m# t* `/ G+ m4.18.0-193.14.2.el8_2.x86_64; _; d( l0 G. v, b, g& c
3 }2 U1 d2 D5 A2 O, Z
#网络设计:建议各网络单独分开
* r2 ~& M' P" D* J7 s5 ?3 X/ N10.15.253.0/24 #Public Network 公共网络
3 N4 G m' q" Z7 [1 r8 P W# s172.31.253.0/24 #Cluster Network 集群网络
7 k6 w) ~, j- B6 L9 K3 x, ^#每台ceph节点下除系统盘外,最少挂载两块相同的大容量硬盘,不需要进行分区
4 k. c! t+ H: w& Q$ k/ O[root@cephnode01 ~]# lsblk/ K) D* p! U1 Y: M+ C
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
: v2 Y2 y6 ~, A% y9 Gsda 8:0 0 20G 0 disk
5 l5 t: a; `7 ^0 S+ L: H) j├─sda1 8:1 0 200M 0 part /boot
! b3 u4 `, |/ b* l) C├─sda2 8:2 0 1G 0 part [SWAP]' H* D2 H2 [0 _* N
└─sda3 8:3 0 18.8G 0 part /# X7 Z% [$ ?) ^; A0 X L" n7 ]0 j
sdb 8:16 0 20G 0 disk
; q }3 w' e" T; x( g" J/ w# v2.1.1 Ceph安装与版本选择9 m: L. y. d6 Q# L r
https://docs.ceph.com/docs/master/install/
3 z; `- ~, {* J5 Aceph-deploy 是用于快速部署群集的工具;社区不再积极维护ceph-deploy。仅支持Nautilus版之前的Ceph版本上进行。它不支持RHEL8,CentOS 8或更新的操作系统。
5 ?; M7 F5 N- A9 _. a这里的系统环境是centos8系统,所以需要使用cephadm部署工具部署octopus版的ceph5 |5 @) D- Y! E. w; @3 C
2.1.2 基础环境准备# B8 x# S+ }' {5 U) A! ~' j
全部Ceph节点上操作;以cephnode01节点为例;7 \& A/ \( k+ p- y9 X
* ], @7 g" u0 g6 ^' k" u#(1)关闭防火墙:) p3 [1 X% _0 D* G
systemctl stop firewalld
5 J9 b% d" h z7 X8 ysystemctl disable firewalld
/ M, D* x' ~4 x( a+ `! c#(2)关闭selinux:
5 c, ]$ }. i' Bsed -i 's/enforcing/disabled/' /etc/selinux/config) r; Y2 I1 U: O' q5 m, S1 t; C
setenforce 0
. Z6 u, C* q7 z. k- `. N5 \#(3)在cephnode01上配置免密登录到cephnode02、cephnode03
# {+ n% |; j- j9 G* n/ Ddnf install sshpass -y. b/ }- W Q0 M+ {# f
ssh-keygen -t rsa -f ~/.ssh/id_rsa -P ''$ q7 ]7 @; }: s: Y' g, M! E
for ip in 161 193 225 ;do sshpass -pZxzn@2020 ssh-copy-id -o StrictHostKeyChecking=no 10.15.253.$ip ;done
4 E/ x* H9 A* d( C$ ?, n: s, n, ]. F#(4)在cephnode01上添加主机名:已经配置过则不需要再次添加
' c- w, Y! ?, C2 {cat >>/etc/hosts <<EOF/ X" h5 J% G+ ]0 d/ v
10.15.253.161 cephnode01
, j) J9 x; a% n, K, ?10.15.253.193 cephnode02' ], _" k% T. O% H2 Q6 f3 m+ z& V' {
10.15.253.225 cephnode03$ Z& ?' s# P8 j
EOF2 @: C: J/ A6 s% r/ _4 c
for ip in 193 225 ;do scp -rp /etc/hosts root@10.15.253.$ip:/etc/hosts ;done
9 ^ a& L. A# x8 i#(5)设置文件连接数最大值8 |5 @ W0 ?6 l
echo "ulimit -SHn 102400" >> /etc/rc.local9 g9 [4 D$ ?/ Z: T4 s
cat >> /etc/security/limits.conf << EOF
% w g2 @$ _' I$ |+ O4 E) |0 H* soft nofile 65535
9 T( ~- P8 O2 y( U! c0 o* hard nofile 65535
, i! O/ H/ h9 v3 ~5 jEOF: o- A# B* X# T/ m5 L
#(6)内核参数优化! `$ z0 o7 ^+ R: O/ B1 v+ g0 l
echo 'net.ipv4.ip_forward = 1' >>/etc/sysctl.conf
7 {, e6 k. g8 y( Xecho 'kernel.pid_max = 4194303' >>/etc/sysctl.conf9 h9 [- @ z, e6 `
#内存不足时低于此值,使用交换空间
4 B, @: \$ d& O0 Z; Oecho "vm.swappiness = 0" >>/etc/sysctl.conf1 B2 @* f8 l, S; ^$ v
sysctl -p
" |' X5 O" ]- B( o$ T$ z#(7)同步网络时间和修改时区;已经添加不需要配置- ~+ G- I* N* Y
安装chrony时间同步 同步cephnode01节点
& u5 E" }& m7 y/ B7 w: v/ Nyum install chrony -y( |( j$ O! X. h+ ~9 R
vim /etc/chrony.conf
" `& z. F" V3 H3 a/ r/ ]server cephnode01 iburst8 O( Q$ ~+ [5 [* s- f- L
---
" M: A; t7 o$ |1 g* dsystemctl restart chronyd.service
) W+ [7 p+ p% H9 O0 E5 J! \systemctl enable chronyd.service
: F3 g. v F, K+ xchronyc sources
; y; w$ Z1 K) T5 J4 P2 [" m* n#(8)read_ahead,通过数据预读并且记载到随机访问内存方式提高磁盘读操作
9 {( z1 q5 F* V# W/ t+ Aecho "8192" > /sys/block/sda/queue/read_ahead_kb
: D( j; {0 s) h7 K: k#(9) I/O Scheduler,SSD要用noop(电梯式调度程序),SATA/SAS使用deadline(截止时间调度程序)
* r# f2 H+ k; i#https://blog.csdn.net/shipeng1022/article/details/78604910; ]9 [2 q5 g$ E' O0 b
echo "deadline" >/sys/block/sda/queue/scheduler
I* a* U( A, N1 N8 wecho "deadline" >/sys/block/sdb/queue/scheduler
9 R ~) y! r1 v, h$ h# y5 f0 S#echo "noop" >/sys/block/sd[x]/queue/scheduler% F0 l9 z* h5 N6 }* B+ V7 u% _7 O, \
3. 添加Octopus版yum源
* A) S4 B; |8 |( O: i, Y' |+ j8 t2 L
cat >>/etc/yum.repos.d/ceph.repo <<EOF
/ k# i% _6 Y" |' Y[Ceph]
. `+ f0 ~/ K+ l; W, H& \5 Pname=Ceph packages for $basearch+ a# V8 M7 k1 ]! |( {* ~0 c
baseurl=https://mirrors.aliyun.com/ceph/rpm-octopus/el8/$basearch
: _+ I* u; k; {6 |enabled=19 H, T! w/ d8 Q7 x2 o( h- e
gpgcheck=06 L" p5 p& l; } V+ ]; a, h6 x! \
type=rpm-md5 t% [' n6 H, |3 L
[Ceph-noarch]+ }/ x/ ]! G5 X0 w! _4 G; z# \8 j% i
name=Ceph noarch packages; {! |! N; S% D- M# [6 V
baseurl=https://mirrors.aliyun.com/ceph/rpm-octopus/el8/noarch3 v1 J i, [+ P2 c
enabled=1
% Y- W/ ?/ E8 d$ \) B2 t; E, c Ygpgcheck=0
9 r8 Z( H: w7 V# Jtype=rpm-md/ x. _* j* i0 T, m
[ceph-source]: C) o# M! m& f( p+ k }
name=Ceph source packages- ]4 @: e3 G- L! L; Q; H$ j# w
baseurl=https://mirrors.aliyun.com/ceph/rpm-octopus/el8/SRPMS- |: [/ _2 ]: |4 V
enabled=1
# l& s4 E6 ~/ lgpgcheck=0
/ K( |7 @* A; f2 dtype=rpm-md
) a6 ^! ?* S$ X- p! F0 R* B qEOF
+ D' T# g3 \+ ^* T n; dyum clean all && yum makecache4 J) @) ^- N7 b9 @
#安装基础软件' F8 V$ c J4 M) ^+ S
yum install net-tools wget vim bash-completion lrzsz unzip zip -y4 K/ a2 a" q4 i
4. cephadm工具部署3 ~. [! {. }- d F1 R
https://docs.ceph.com/docs/master/cephadm/install/
3 k7 U( M f, m8 u; w4 d在15版本,支持使用cephadm工具部署,ceph-deploy在14版本前都支持
( X+ ~+ M2 k4 n2 h K- P4.1 拉取最新的cephadm并赋权
2 b; c/ I9 y8 P$ u: I在cephnode01节点配置;
3 U0 j/ C, p. }* p4 C: x# o
1 ^/ ]0 |' @( _% m, d i[root@cephnode01 ~]# curl --silent --remote-name --location https://github.com/ceph/ceph/raw/octopus/src/cephadm/cephadm
- q9 `- ^- o0 [2 B& A+ w x[root@cephnode01 ~]# chmod +x cephadm3 c# h# T$ d x e' d- D! Y& ~
[root@cephnode01 ~]#ll. M6 G. k& [8 m* Y6 V
-rwxr-xr-x. 1 root root 184653 Sep 10 12:01 cephadm
# D( W7 g: W8 v, J5 n c4.2 使用cephadm获取octopus最新版本并安装# ~% j0 }) g6 d( y$ l2 B' Y
已手动配置为国内yum源,不需要按官方文档的步骤再进行添加yum源
8 D8 M/ {2 x& g
! j8 e+ _5 i$ w" @+ O# M4 r#全部ceph节点安装/ x1 @3 L/ l( E# r o0 x
[root@cephnode01 ~]# dnf install python3 podman -y
* _& e8 J4 f. {! `; ?[root@cephnode01 ~]# ./cephadm install+ g/ x5 X3 [$ A6 I. I
...+ F- \9 D5 k) {9 C/ f2 t; L
[root@cephnode01 ~]# which cephadm% W0 v( ~; k& W# _) {& M: w6 W
/usr/sbin/cephadm, P# c! R$ H; z8 h. ^/ T) x, |0 B- S
5. 创建ceph新集群1 R* @# J' N( c3 v
5.1 指定管理节点
' U/ n% d l* r1 q" |+ {5 o" F/ \创建一个可以被任何访问Ceph集群的主机访问的网络,指定mon-ip,并将生成的配置文件写进/etc/ceph目录里) T5 w: @3 e* t3 R9 q" L
@) _7 G' C1 e' l" c[root@cephnode01 ~]# mkdir -p /etc/ceph
) h; Q; c8 G' f( [. A9 l[root@cephnode01 ~]# cephadm bootstrap --mon-ip 10.15.253.161% h" `- a M6 X" m& Z# w/ N2 l
...* C# Z& z8 q' Y: E; U# b7 Y
URL: https://cephnode01:8443/
( R t" I+ H- v User: admin
. Y2 H3 V) u2 y" m" b( ^9 I2 V/ } Password: 6v7xazcbwk
8 V: ?+ @/ P+ j |# J/ |1 ?" C( B2 {...
, h3 f4 z9 b+ i可登陆URL: https://cephnode01:8443/,首次登陆要修改密码,进行验证
$ }1 A0 [. E1 ]. U' e( }; t! b) d
/ l8 b! x/ \6 w4 v2 D- {- C) _ n0 Q# B0 e; s0 j
5.2 将ceph命令映射到本地
8 N4 n/ Q, J! S/ Y( l; E7 H& w1 yCephadm不需要在主机上安装任何Ceph包。但是,建议启用对ceph命令的简单访问。
1 Q& ]# v0 @3 ]& ?cephadm shell命令在安装了所有Ceph包的容器中启动一个bash shell。默认情况下,如果在主机上的/etc/ceph中找到配置和keyring文件,它们将被传递到容器环境中,这样就可以完全正常工作了。
. N* o3 c& j5 y5 z' G* k8 q# x; H" B# p# _9 c
[root@cephnode01 ~]# cephadm shell, a8 B7 Q9 c. {# i3 d- K" p
[root@cephnode01 ~]# alias ceph='cephadm shell -- ceph'
4 r3 M$ |, A! J( }8 a) v[root@cephnode01 ~]# exit
, J9 n6 y t O#安装ceph-common包;包括ceph,rbd,mount.ceph的命令 ?7 b, w' i- J, u$ v
[root@cephnode01 ~]# ephadm install ceph-common包;包括ceph,rbd,mount.ceph的命令& Y1 ?" B. Z! S( b$ r: W' T
#查看版本4 s7 p# u& w( o& N
[root@cephnode01 ~]# ceph -v
' L1 G2 u' X8 h8 @) t5 jceph version 15.2.4 (7447c15c6ff58d7fce91843b705a268a1917325c) octopus (stable)& l! Y' J8 h) G: T8 A* o
查看状态
# d& k: K1 \) C- r* _# \4 ]2 o
, p9 m, T* s: L; l5 N4 \[root@cephnode01 ~]# ceph status3 m1 c: t0 g; a: ]
cluster:
3 V5 S5 Q, b! M! \ id: 8a4fdb4e-f31c-11ea-be33-000c29358c7a
% z `- d' n; f health: HEALTH_OK
2 ]# r8 w4 i7 Y/ M' x3 x1 } Reduced data availability: 1 pg inactive3 S: ?5 l! O' r! |2 p9 _4 }
OSD count 0 < osd_pool_default_size 3
- n; M# H) Z! v% o2 y6 Q
9 y* U6 ~+ ^& C! e/ u* X services:
7 \3 y* E8 ]9 n4 [" F1 \' E mon: 1 daemons, quorum ceph135 (age 14m)! Q7 n1 w+ p: E7 [2 f
mgr: ceph03.oesega(active, since 10m)% c' G e# c+ Q4 j
osd: 0 osds: 0 up (since 31m), 0 in
, Z6 g" n- P* |! S6 a7 S
* X7 P) ~- k. B9 K# x; R) b( M data:
7 P8 O. d. _+ ^! k pools: 1 pools, 1 pgs2 n8 e% U4 B- Z4 U6 Z8 x
objects: 0 objects, 0 B( n3 _6 V! G3 t9 i) Q
usage: 0 B used, 0 B / 0 B avail' b4 W7 L) W# b7 u$ n6 _8 |
pgs: 100.000% pgs unknown# k) l- c) ]$ m9 C. d5 W
1 unknown
$ ^$ Q* _8 F2 M& A3 o5.3 添加新节点进ceph集群
, a3 V& I/ v. |5 a n( r5 K
3 N$ v" E- M% T4 _7 b: L[root@cephnode01 ~]# ssh-copy-id -f -i /etc/ceph/ceph.pub root@cephnode026 m$ q, q! N" S0 d. p1 e# T
[root@cephnode01 ~]# ssh-copy-id -f -i /etc/ceph/ceph.pub root@cephnode038 C9 d8 p4 N: d2 r9 Q
[root@cephnode01 ~]# ceph orch host add cephnode02
1 [: Y# W5 R \- x- C9 `Added host 'cephnode02'* T% v1 ^3 h6 r! l
[root@cephnode01 ~]# ceph orch host add cephnode034 p. a# E8 Y6 o s1 E, ? A
Added host 'cephnode03'0 X5 A7 z: Q! M) h, w
5.4 部署添加 monitor
0 k' [( u( e) f$ {4 P8 y选择需要设置mon的节点,全选; L# n7 Z( p' S M! }
" V7 h" r7 j) l0 }- y: z[root@cephnode01 ~]# ceph orch host label add cephnode01 mon. E q! z1 X+ C/ g9 P- O3 t
Added label mon to host cephnode016 Z9 w& t3 U J4 l: o4 l4 `
[root@cephnode01 ~]# ceph orch host label add cephnode02 mon
0 x2 O4 B4 ^: L( Z2 D8 MAdded label mon to host cephnode02( o7 R; _( {$ Z. z- R: S3 F4 X
[root@cephnode01 ~]# ceph orch host label add cephnode03 mon
* b. q# ^" ^! z' vAdded label mon to host cephnode035 ~& Z- J6 W; S9 O
[root@cephnode01 ~]# ceph orch host ls( e/ w1 i- ~6 a& @% Z- b/ O
HOST ADDR LABELS STATUS U2 Q$ L" S' [/ x5 m' n9 \" l
cephnode01 cephnode01 mon
: J0 ^4 J+ h* M9 B' K" ucephnode02 cephnode02 mon
+ V2 { p/ V! [9 |( ycephnode03 cephnode03 mon3 H6 t$ D) Z7 c# U3 r
告诉cephadm根据标签部署mon,这步需要等待各节点拉取images并启动容器
; r. [! w, {& W1 z1 M+ x. N1 e* C& _& `+ A
[root@cephnode01 ~]# ceph orch apply mon label:mon3 _" @, u9 x9 C% e& {5 w
具体验证是否安装完成,其他两台节点可查看下
7 R) H9 |7 O9 l2 l9 H# M3 m3 k" o% F4 h& _- |6 x
[root@cephnode02 ~]# podman ps -a
' `0 I, t4 a2 r* q" R! O...
T" q5 U, x9 r2 g[root@cephnode02 ~]# podman images
$ \. p! L& g! y6 z% K1 UREPOSITORY TAG IMAGE ID CREATED SIZE7 K" E$ L9 Z" C* v0 L8 ~
docker.io/ceph/ceph v15 852b28cb10de 3 weeks ago 1 GB
- \2 F8 E9 t+ c1 U7 r" a/ @" @docker.io/prom/node-exporter v0.18.1 e5a616e4b9cf 15 months ago 24.3 MB
* s9 p0 ^; c' O- Y; M/ Q* A6 b6. 部署OSD
% ]+ A' g' ?3 n- j* j8 L2 ?6.1 查看可使用的硬盘1 G. n! ~) D0 u2 ~( g
$ K- u' s3 m- F' B2 i[root@cephnode01 ~]# ceph orch device ls
$ u. \/ r4 G. ]7 e: KHOST PATH TYPE SIZE DEVICE AVAIL REJECT REASONS
% q3 z6 H4 B) I4 z( |ceph01 /dev/sda hdd 20.0G False locked, Insufficient space (<5GB) on vgs, LVM detected
# F& x; D3 d M: y3 Q2 lceph01 /dev/sdb hdd 20.0G True8 |7 S( E$ l: H$ E/ f/ F) U" ^5 p
ceph02 /dev/sda hdd 20.0G False Insufficient space (<5GB) on vgs, LVM detected, locked
- p0 {, t$ w+ k5 gceph02 /dev/sdb hdd 20.0G True
5 q e. h1 O4 o. {5 X) E: g, iceph03 /dev/sda hdd 20.0G False locked, Insufficient space (<5GB) on vgs, LVM detected
7 |9 X6 V( n* Hceph03 /dev/sdb hdd 20.0G True2 g2 v* e1 K$ ]3 R5 {% ]
6.2 使用所有可用硬盘
1 x! K* e; Z3 T& W& Q
1 \0 X R/ f. R- C" f" K/ m2 `[root@cephnode01 ~]# ceph orch apply osd --all-available-devices0 r+ s% y" X: _* J
添加单块盘的方式' z( m- Z( B2 `5 p5 o. r
. B3 m' V4 d3 l$ b
[root@cephnode01 ~]# ceph orch daemon add osd cephnode02:/dev/sdc
# J% w: @2 E- G) j+ Z1 D; r6.3 验证部署情况/ d3 p$ P) \ ^6 V
2 j" O3 O0 T, _! U$ W[root@cephnode01 ~]# ceph osd df/ G$ Q" p, U) _
ID CLASS WEIGHT REWEIGHT SIZE RAW USE DATA OMAP META AVAIL %USE VAR PGS STATUS/ S4 @5 z2 J* S
0 hdd 0.01949 1.00000 20 GiB 1.0 GiB 3.8 MiB 1 KiB 1024 MiB 19 GiB 5.02 1.00 1 up6 w6 d- _. C6 q0 o: X/ N
1 hdd 0.01949 1.00000 20 GiB 1.0 GiB 3.8 MiB 1 KiB 1024 MiB 19 GiB 5.02 1.00 1 up* B3 `7 u3 X! C" y8 b* H; w9 @+ ^+ h
2 hdd 0.01949 1.00000 20 GiB 1.0 GiB 3.8 MiB 1 KiB 1024 MiB 19 GiB 5.02 1.00 1 up
0 S& ~0 X6 \6 a) L) z7 |# k" q# b TOTAL 60 GiB 3.0 GiB 11 MiB 4.2 KiB 3.0 GiB 57 GiB 5.02 - s9 J9 F% @ [: B4 A
MIN/MAX VAR: 1.00/1.00 STDDEV: 0% i5 I [$ O% N x5 Q
7. 存储部署
8 A F5 h( {5 t4 d1 u, k0 |7.1 CephFS部署
- w. V- Q; U6 C" c部署cephfs的mds服务,指定集群名及mds的数量
5 }9 f0 ~! Y/ W H+ K7 \2 s) x8 z: y/ ?3 ~ r2 R# X2 I
[root@cephnode01 ~]# ceph orch apply mds fs-cluster --placement=3" [' C3 Y# S0 `+ m
/ G2 p& Y6 X' p3 |[root@cephnode01 ~]# ceph -s1 j, u( g' t* g: E8 `
cluster:, T, P8 j4 h! ? K( a
id: 8a4fdb4e-f31c-11ea-be33-000c29358c7a: w2 v* q+ j3 _5 @0 z/ h" m
health: HEALTH_OK8 N3 d& K! Q5 s! o. e. q* S5 j
. N- a& W0 ^- @6 i* x
services:6 e2 o/ P: x" C8 N' \8 ^7 Q
mon: 3 daemons, quorum cephnode01,cephnode02,cephnode03 (age 1m)( o. u( \! C$ X6 z
mgr: cephnode01.oesega(active, since 49m), standbys: cephnode02.lphrtb, cephnode03.wkthtb
8 }% ~0 R2 I1 U7 x4 X: r3 f- s* k mds: 3 up:standby
! _6 x) ^- }6 y! M3 K osd: 3 osds: 3 up (since 51m), 3 in (since 30m)
' F( Q; s; R/ A 2 ]. h" z- y: H# k! B+ |+ ?
data: w9 Z6 b' a( Q: v9 A, ?
pools: 1 pools, 1 pgs
7 ~! |4 v: o, ~: _+ R9 R+ `' S/ o ? objects: 0 objects, 0 B0 v r6 H0 O9 n4 N6 J( ^& O
usage: 3.0 GiB used, 57 GiB / 60 GiB avail0 \4 @5 l9 j3 p) Y& y/ ^. o" Z' o | a
pgs: 1 active+clean
- M( _6 ?6 o X6 r* S7.2 部署RGW' M; G0 D' j: |4 t
创建一个领域' l# R" o {0 y; B! o9 K+ P2 d% F
# A2 e; Y% m4 ~& y0 w8 H0 l
[root@cephnode01 ~]# radosgw-admin realm create --rgw-realm=rgw-org --default
( t% n* ?& m9 S/ n1 M! H{
8 ]" Q1 K# n; ]& t# R. L "id": "43dc34c0-6b5b-411c-9e23-687a29c8bd00",
0 l: S0 X& w, @ "name": "rgw-org",
; r3 G5 x& Z% `# i "current_period": "ea3dd54c-2dfe-4180-bf11-4415be6ccafd",2 G3 P0 V( T: j8 y8 |0 o9 }
"epoch": 1' D2 K! u6 l0 ~- q$ c0 B4 E
}
7 M, A l8 O7 m2 g6 S: a# ?创建一个zonegroup区域组5 f! Q4 `' d2 t
" V" z! h! a/ ?6 n; P6 A! Q[root@cephnode01 ~]# radosgw-admin zonegroup create --rgw-zonegroup=rgwgroup --master --default6 s- M ^1 ?& L" t6 O
{
* q `, ]0 f t "id": "1878ecaa-216b-4c99-ad4e-b72f4fa9193f",- C" Q: v1 r- J) z
"name": "rgwgroup"," T2 G/ Z- |; q7 H1 `
"api_name": "rgwgroup",
5 Z; l& S) e, t% J' Y "is_master": "true",
% M7 y" a0 C& L# u4 {: Q8 `$ M( { "endpoints": [],9 [# d1 B$ U9 `
"hostnames": [],# H+ |: R' c' j7 K1 R2 o
"hostnames_s3website": [],
2 H5 A. V- q% b0 h' l "master_zone": "",
4 }& F1 n( z/ u8 X' r "zones": [],
- q7 o: Q& n8 H# r. A( f "placement_targets": [],+ d6 c3 r9 @9 O8 A, i9 A
"default_placement": "",. i( u* M( M% U5 x9 j; A; H
"realm_id": "43dc34c0-6b5b-411c-9e23-687a29c8bd00",
: j/ K9 o) B* @. v' @ "sync_policy": {
% Z' i& r0 f6 [2 a: c2 i1 z "groups": []
! s0 y2 e2 w) Y3 C7 f3 k& P+ { }
' d! x6 E+ d* T v4 e+ V}9 B8 Q. ?, E( y0 N1 G7 H5 _
创建一个区域+ T" \, P# H4 P3 W3 B4 C) P
" D8 H2 [3 p; X0 s: _3 [! [[root@cephnode01 ~]# radosgw-admin zone create --rgw-zonegroup=rgwgroup --rgw-zone=zone-dc1 --master --default# U8 T! O. ^4 i' C6 |! `6 I3 i
{
, |8 O# A( y {# @ "id": "fbdc5f83-9022-4675-b98e-39738920bb57",8 I, O3 m6 g, |
"name": "zone-dc1",5 L( b# H3 d5 m
"domain_root": "zone-dc1.rgw.meta:root",
; ^6 A% `8 I3 |( x( D. b! h( E "control_pool": "zone-dc1.rgw.control",6 W' f' L1 T( p
"gc_pool": "zone-dc1.rgw.log:gc",
7 V+ S' a% P' l "lc_pool": "zone-dc1.rgw.log:lc",! y, n d& f2 r. q6 r# g! G' N
"log_pool": "zone-dc1.rgw.log",% i4 x8 [' y- T* F& ^/ V; K
"intent_log_pool": "zone-dc1.rgw.log:intent",
4 Y5 f9 B8 m1 U V: f4 B, f "usage_log_pool": "zone-dc1.rgw.log:usage",0 S0 t# A9 X! p( O I/ J, M4 ^; I
"roles_pool": "zone-dc1.rgw.meta:roles",# v3 j; b( L: p
"reshard_pool": "zone-dc1.rgw.log:reshard",
2 Z1 _: M! J' I) J "user_keys_pool": "zone-dc1.rgw.meta:users.keys",
; B e* p$ O1 [ "user_email_pool": "zone-dc1.rgw.meta:users.email",
9 U$ ~7 `# X# y |) k) G, y "user_swift_pool": "zone-dc1.rgw.meta:users.swift",
3 N" g a# B/ I "user_uid_pool": "zone-dc1.rgw.meta:users.uid",
2 Q: P' m8 j* {9 R "otp_pool": "zone-dc1.rgw.otp",
9 B5 [. g6 c( ~* _% W2 ~6 T q "system_key": {) m W4 q4 H5 i/ B; W) _
"access_key": "",0 S( V/ j" r, G6 O# Y8 O/ ^
"secret_key": ""& i7 G. p* y5 I5 r3 c. E
},
) ?- S( f% W! y "placement_pools": [1 o+ n: q5 P6 P* T ?
{; i. U1 [6 l# L
"key": "default-placement",. Z6 I; t" y$ u e' ?4 H
"val": {
1 j' P8 e8 \4 ~. O3 H "index_pool": "zone-dc1.rgw.buckets.index",
& p$ M4 L0 R8 }7 } "storage_classes": {
% B. O! @$ T/ |8 z( [ "STANDARD": {
9 d2 o* o& r5 x2 b, [- `) }0 L "data_pool": "zone-dc1.rgw.buckets.data"# D/ `0 l7 d M
}
4 p8 @. k8 W. n' ~# [ },
/ k% a* R9 w/ G8 z0 | "data_extra_pool": "zone-dc1.rgw.buckets.non-ec",# T& ?& m9 L# z% t9 o P6 g
"index_type": 0
. A- f0 E: l" t' P }
, {! u3 \8 n* W# t# F& s+ o }5 D' c+ h7 z0 `9 Q! m! {
],2 {; w9 c: e3 a5 k% y4 D6 g
"realm_id": "43dc34c0-6b5b-411c-9e23-687a29c8bd00"4 w, ^6 c" y2 r* E2 G: m0 b6 u
}
- d3 S" C' r5 q为特定领域和区域部署一组radosgw守护进程,这里只指定了两个节点开启rgw% R5 T2 o! R# n) h7 B. l$ F
1
' P8 d+ }. V0 Y( }* s# _0 C% |[root@cephnode01 ~]# ceph orch apply rgw rgw-org zone-dc1 --placement="2 cephnode02 cephnode03"5 @0 p; Z: x2 R; ?
验证
@$ p7 `6 G. h! P. T2 G, c+ M7 e' f3 d9 i$ |2 y
[root@cephnode01 ~]# ceph -s
$ ?4 |& I) ~- \7 ^3 @0 _ cluster:
8 m, {* @' `$ n4 T5 ?4 g+ [7 G id: 8a4fdb4e-f31c-11ea-be33-000c29358c7a
' Y/ ?+ M# w7 U I i. M6 q health: HEALTH_OK
4 a+ O* r5 d3 n" v
: n) U" t6 R; G& |" \- C; t services:
) }) {( v* m4 u s& t% k! h mon: 3 daemons, quorum cephnode01,cephnode02,cephnode03 (age 1m)
0 j, E: ?" x& Q6 o) x4 p5 l1 x/ ] mgr: cephnode01.oesega(active, since 49m), standbys: cephnode02.lphrtb, cephnode03.wkthtb8 Q. ~& r4 y% v. q, ?1 {2 \4 G
mds: 3 up:standby
) W; W+ u% V! W% \# ]3 A2 {8 \9 \ osd: 3 osds: 3 up (since 51m), 3 in (since 30m)0 v8 `- \' `( x# K9 }* L1 P
rgw: 2 daemons active (rgw-org.zone-dc1.cephnode02.cdgjsi, rgw-org.zone-dc1.cephnode03.nmbbsz)
/ e& C( `9 c+ K" F& g data:
7 w q7 x( Z1 X& Z) Q, R3 }- }5 A pools: 1 pools, 1 pgs" ?1 @8 R+ }' i8 l+ X/ ?
objects: 0 objects, 0 B
1 }3 K' j' C- I+ ^2 E4 _. G usage: 3.0 GiB used, 57 GiB / 60 GiB avail0 m: }6 a1 x$ M. q. q2 g1 u8 r
pgs: 1 active+clean
) W# i* P) {2 C6 D: J为RGW开启dashborad/ Q* E8 b/ M# O h6 U; {
% d9 L7 R8 @) E; z0 D6 G#创建rgw的管理用户: {! ~/ w8 Z7 t& m# w/ Y
[root@cephnode01 ~]# radosgw-admin user create --uid=admin --display-name=admin --system
, r z, H7 z, t8 q{
/ |) v' Y; z$ e- |! L5 t9 Y5 \ "user_id": "admin",
0 {7 K L( g7 x3 t0 K6 A "display_name": "admin",
1 y) V6 S% b1 X7 Q! r3 a* x7 s "email": "",
& C4 G* a+ `1 Y0 H! d% O# _ "suspended": 0,
: x5 T; y$ N+ d+ Z; y2 k$ E6 e "max_buckets": 1000,
2 S2 n& u: S6 H8 _ "subusers": [],
# S/ i+ }* f, K( g3 F r9 ?" }+ P' U "keys": [
8 s; O3 |- Q3 [4 m {
& r( s+ i% ?* ~( F0 [9 f7 k/ [ "user": "admin",) n; q2 Y$ R' c
"access_key": "WG9W5O9O11TGGOLU6OD2",4 O- d1 x: Y6 J4 P
"secret_key": "h2DfrWvlS4NMkdgGin4g6OB6Z50F1VNmhRCRQo3W"7 S. F+ j* T9 A9 k5 J/ L- l1 d
}
+ D% s' K C: O; m$ ` ],
- k+ J2 F$ z2 v/ [4 b2 Q "swift_keys": [],
0 S/ G1 Z$ H! R% T! m "caps": [],
8 f" v3 k- M* } "op_mask": "read, write, delete",
$ r7 d, e8 r/ Z$ u/ w/ E, l9 b0 @ "system": "true",+ x h* T1 k1 Z+ \$ ]- W
"default_placement": "",2 f; S8 w; O" x! m8 D
"default_storage_class": "",
: f2 W* b7 ~& v9 z "placement_tags": [],
4 j' @1 H. d# b- u "bucket_quota": {
) ?2 s( [2 i4 Q; U" `1 I "enabled": false,
" {) F% z' \5 C" {. H! L0 y "check_on_raw": false,
: z7 {! r" _. O$ p7 i: Q! o5 K: Z "max_size": -1,% C3 e6 ]8 A# i: C$ X+ u L' }
"max_size_kb": 0,
8 Q$ ~# Q! C- @# p* L4 f8 T "max_objects": -1! k# z8 Y# j/ u; \* P; [
},' P: n$ w N3 d- \' B
"user_quota": {
8 K& }9 a( [& J2 v "enabled": false, g% v* X1 P9 s* M# k$ d2 O( v, o9 P
"check_on_raw": false," \" N/ g' v2 d3 |
"max_size": -1,
5 J* b, D4 s& I2 a/ s6 D) Z3 P "max_size_kb": 0,
( p# l' v, ~% p5 R "max_objects": -1
! n3 x0 P9 F8 x% x/ e; j) O },' }& |9 y( h4 {& _& R
"temp_url_keys": [],1 e, l2 J7 G6 F% c- K
"type": "rgw",4 B& @' y+ D& h5 C' H
"mfa_ids": []1 }& j$ \- a! N0 v9 Y) \
}" [& x. V5 }3 g
设置dashboard凭证" ~5 Z9 D- R1 y8 _
- @2 u) ~$ j) a1 ]1 W[root@cephnode01 ~]# ceph dashboard set-rgw-api-access-key WG9W5O9O11TGGOLU6OD2& w4 C( ]0 U+ n6 X
Option RGW_API_ACCESS_KEY updated
' q' }8 W7 c: N: n; o: a[root@cephnode01 ~]# ceph dashboard set-rgw-api-secret-key h2DfrWvlS4NMkdgGin4g6OB6Z50F1VNmhRCRQo3W" ~: c# w' {, K$ G
Option RGW_API_SECRET_KEY updated/ i; I+ f4 u8 `4 A' J0 I' U! {$ s N
设置禁用证书验证、http访问方式及使用admin账号( i. p) P- _4 o1 O3 v- J8 H4 c* g
3 ?9 P! X% g1 a3 [+ bceph dashboard set-rgw-api-ssl-verify False
0 z* O2 k! P s( [$ G( ?) q% |# fceph dashboard set-rgw-api-scheme http
/ B# h5 x8 H# \8 A% zceph dashboard set-rgw-api-host 10.15.253.225
0 e' ^% \3 s3 g3 r# Aceph dashboard set-rgw-api-port 80$ L8 N0 K% d7 b5 s
ceph dashboard set-rgw-api-user-id admin
$ v4 N% D1 O* S8 G$ r4 I& t3 ~6 P重启RGW$ ^2 `: m( u" m& B, K, Y Q7 S( _
3 j5 m( l& W& p" N" {" {ceph orch restart rgw
A. ? Y) k8 Y, V; N$ X |
|