|
|
楼主 |
发表于 2021-7-19 13:50:11
|
显示全部楼层
环境介绍
" e( T3 c+ Y1 r+ J- EIP地址 配置 主机名 Ceph版本2 W8 T; O0 ]" x" H, ~2 L# S
10.15.253.161 c2m8h300 cephnode01 Octopus 15.2.4
s3 m& U3 N, }3 @, Y10.15.253.193 c2m8h300 cephnode02 Octopus 15.2.4
9 F1 ?5 M, b/ h5 }* ]2 E10.15.253.225 c2m8h300 cephnode03 Octopus 15.2.4
& e4 s) q: o% p9 h, ^2 L# R8 a% l8 E# N6 a
#Linux系统版本
: J) E9 h" h! v& `6 i; O[root@cephnode01 ~]# cat /etc/redhat-release# d0 P' u: }4 L7 m" P* E4 M
CentOS Linux release 8.2.2004 (Core)
- h2 V ~- R0 z6 t# h! y4 F[root@cephnode01 ~]# uname -r
1 l9 u ?+ r9 t$ j( I6 V I& K: c4.18.0-193.14.2.el8_2.x86_64
6 S) N! J/ B d8 z9 F
3 h. o8 A9 O3 r# a# g7 Q#网络设计:建议各网络单独分开 O% I0 T0 N. g6 t; L
10.15.253.0/24 #Public Network 公共网络- t8 M6 u8 @. N8 O. x2 G
172.31.253.0/24 #Cluster Network 集群网络
- f+ c4 |6 n: w8 b) f) p. S& [#每台ceph节点下除系统盘外,最少挂载两块相同的大容量硬盘,不需要进行分区6 W2 {+ S! `1 c- X3 K# d, A
[root@cephnode01 ~]# lsblk* A. V. T( `: C* B# S
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
! m! O6 ?) j" @: ^6 Ksda 8:0 0 20G 0 disk, V9 G4 h' u; S7 G' V7 |0 ]
├─sda1 8:1 0 200M 0 part /boot
& U" j( A9 F5 I6 T' [6 T( H3 F├─sda2 8:2 0 1G 0 part [SWAP]
: v; E" X; i- Y9 w) r└─sda3 8:3 0 18.8G 0 part /% C" T. `3 h; t4 a1 _; Z
sdb 8:16 0 20G 0 disk: n3 w2 S. O% V
2.1.1 Ceph安装与版本选择
: a% d$ t2 |! i! R e8 S9 qhttps://docs.ceph.com/docs/master/install/
# B# I' H# t5 ]3 I) g6 _ceph-deploy 是用于快速部署群集的工具;社区不再积极维护ceph-deploy。仅支持Nautilus版之前的Ceph版本上进行。它不支持RHEL8,CentOS 8或更新的操作系统。
0 i6 q; V1 X8 l t& u这里的系统环境是centos8系统,所以需要使用cephadm部署工具部署octopus版的ceph
: }' {+ V; Z' }: j( O; z2.1.2 基础环境准备
1 t- V" b) }! P3 f; B& R$ d z全部Ceph节点上操作;以cephnode01节点为例;( E: G4 b! i+ Y6 w U! ~. O3 y
7 o2 T! [$ C8 \' g#(1)关闭防火墙:0 k$ s/ p9 o- J; R! Y9 G I: A
systemctl stop firewalld- ]6 p, D% Q0 O) B9 w
systemctl disable firewalld5 O3 Y5 @8 u4 @5 j4 U; n, D
#(2)关闭selinux:
\: m2 p6 S3 ~sed -i 's/enforcing/disabled/' /etc/selinux/config
. G2 x% N* J8 }1 D9 v6 K/ ~2 dsetenforce 07 q0 {$ L5 [8 y) Q1 ?2 C
#(3)在cephnode01上配置免密登录到cephnode02、cephnode03
, m- `9 ]3 e1 `! V# j6 idnf install sshpass -y5 C( K, d" i3 {8 B
ssh-keygen -t rsa -f ~/.ssh/id_rsa -P ''% k+ `3 n" s8 x S3 C& H6 \
for ip in 161 193 225 ;do sshpass -pZxzn@2020 ssh-copy-id -o StrictHostKeyChecking=no 10.15.253.$ip ;done
7 q6 g! ^8 ~1 i, k; Q v- |#(4)在cephnode01上添加主机名:已经配置过则不需要再次添加
* @- [$ X$ Q" l1 v) z0 scat >>/etc/hosts <<EOF, h1 j0 j# W2 O
10.15.253.161 cephnode01+ i$ S7 m6 {. E4 D4 G0 ^/ W
10.15.253.193 cephnode02( x$ ]9 z, |8 A: S
10.15.253.225 cephnode03
. c" C6 L4 w0 VEOF
& ]0 J$ M* ]5 E* e0 y9 b# pfor ip in 193 225 ;do scp -rp /etc/hosts root@10.15.253.$ip:/etc/hosts ;done
1 H7 [9 E7 ^; k( i( P2 c5 J& K5 g' d#(5)设置文件连接数最大值 H2 f \" y) F7 |) _
echo "ulimit -SHn 102400" >> /etc/rc.local
! c* }( |; d8 ^9 {+ D2 zcat >> /etc/security/limits.conf << EOF
" T* N0 @: S% ]( F* soft nofile 65535; U: V7 x2 O6 {' y9 I% ~" ?9 m
* hard nofile 65535
; P0 T; Y0 e$ {' iEOF ]/ ]/ `6 O K% ^/ q
#(6)内核参数优化" U' j, b3 x3 {6 ]6 \
echo 'net.ipv4.ip_forward = 1' >>/etc/sysctl.conf
* V4 }% H4 x) g) ~5 M' U$ v8 f [echo 'kernel.pid_max = 4194303' >>/etc/sysctl.conf
- |6 l" d# A/ H' |5 [#内存不足时低于此值,使用交换空间
; E, q4 e( p3 b5 g& e X( X5 }echo "vm.swappiness = 0" >>/etc/sysctl.conf
% K5 y9 w- w- C. l& _6 Lsysctl -p% [3 F$ [9 q* n, S% c1 h
#(7)同步网络时间和修改时区;已经添加不需要配置
6 A( Z9 b! z% k/ @安装chrony时间同步 同步cephnode01节点
3 {- ]' v" m T6 V# b5 ryum install chrony -y% Y! W- \$ F& G
vim /etc/chrony.conf1 @3 M9 u. a6 `" |2 c% S
server cephnode01 iburst. k L9 K- U4 g. j" d; ?
---
) [# I* v" y$ O! M6 d& a3 `' `2 Asystemctl restart chronyd.service: }5 K; t$ N% n9 E
systemctl enable chronyd.service0 h/ i- r1 Q: R- f
chronyc sources; W# \! }# c) p* D
#(8)read_ahead,通过数据预读并且记载到随机访问内存方式提高磁盘读操作
: k: k& R/ i2 L$ cecho "8192" > /sys/block/sda/queue/read_ahead_kb
o* i# h+ }- F$ s- u$ L#(9) I/O Scheduler,SSD要用noop(电梯式调度程序),SATA/SAS使用deadline(截止时间调度程序)1 i& ^1 ~7 N! z) F
#https://blog.csdn.net/shipeng1022/article/details/78604910
7 C/ {. {, @' U: b5 q& b2 `6 _! M+ iecho "deadline" >/sys/block/sda/queue/scheduler
( l) U A' P0 ?% h% t; zecho "deadline" >/sys/block/sdb/queue/scheduler6 k$ ^5 U" V; s7 `) _: E
#echo "noop" >/sys/block/sd[x]/queue/scheduler u3 ~1 r* e8 j# y/ e, D
3. 添加Octopus版yum源
7 n( ~- Z. K- C
5 C' g; |1 L1 }; P ]) Fcat >>/etc/yum.repos.d/ceph.repo <<EOF1 ]) \: _5 |# _; U
[Ceph]/ ~/ d! Q; ]1 X# } L1 m4 x8 o
name=Ceph packages for $basearch- x. m- C1 ]0 F; G$ g
baseurl=https://mirrors.aliyun.com/ceph/rpm-octopus/el8/$basearch
- K, G* ?( A+ _: [/ x" _enabled=1
2 i! S" r7 F% jgpgcheck=0* g. C; s T" u7 T
type=rpm-md* S% n/ m" M' L- s4 O/ V' d6 X5 @
[Ceph-noarch]: g- X, U7 t) J3 \+ e) Y& ?
name=Ceph noarch packages8 L ]$ ^# Z1 S Y- F) t' f' H9 v
baseurl=https://mirrors.aliyun.com/ceph/rpm-octopus/el8/noarch9 H& S0 O% h, N
enabled=1
+ _! y! u1 p7 ggpgcheck=0
: j* ], [) I2 a3 V6 m+ b }8 mtype=rpm-md+ a! }5 C( g( A( t
[ceph-source]5 D4 w' D9 I# C, }/ N" \6 m8 L9 k
name=Ceph source packages
- P9 i5 J# D$ x4 d& J+ x# K+ b/ qbaseurl=https://mirrors.aliyun.com/ceph/rpm-octopus/el8/SRPMS
0 @2 S+ F- s- {2 m0 I9 denabled=1$ O! ^; T, Q" Z% y( E9 v9 Z, x3 l+ i
gpgcheck=0
Y1 |- x% j1 `3 A- {3 o6 k$ `# mtype=rpm-md
* D" ^( c0 ]7 L: O% oEOF
3 C1 T P" }, g" J4 c8 E. Byum clean all && yum makecache1 z: l, P' G0 l; v% O6 b
#安装基础软件
! r; L: s$ }6 Eyum install net-tools wget vim bash-completion lrzsz unzip zip -y- F# `! ?" l! z4 e C; B
4. cephadm工具部署
7 N6 r! s. g- R9 a$ P, f" mhttps://docs.ceph.com/docs/master/cephadm/install/
Q+ t; \2 Z9 d+ L# B& h在15版本,支持使用cephadm工具部署,ceph-deploy在14版本前都支持
8 m0 C: B/ U+ ]; j' e, H4.1 拉取最新的cephadm并赋权
! F# ^0 j/ Y* f" c% A& d在cephnode01节点配置;2 c$ j& J7 m% K& k
$ ^5 ]5 Z% P: {1 M) |
[root@cephnode01 ~]# curl --silent --remote-name --location https://github.com/ceph/ceph/raw/octopus/src/cephadm/cephadm
) x, {3 ~- ~0 ?* C[root@cephnode01 ~]# chmod +x cephadm8 ]0 z3 {- b, Q" D C+ ` U1 p. i
[root@cephnode01 ~]#ll9 _4 |7 t4 ^+ q/ `3 J3 q
-rwxr-xr-x. 1 root root 184653 Sep 10 12:01 cephadm
0 |9 }5 \; C- h) i$ |$ C$ u4 o+ \/ M: V4.2 使用cephadm获取octopus最新版本并安装$ t2 v: d) z8 L9 l( B5 o7 q; S
已手动配置为国内yum源,不需要按官方文档的步骤再进行添加yum源
! s2 k% L- K& ~% ?: D/ B
, a% }2 M3 U( \ C5 |. L#全部ceph节点安装
. y" e& O; g4 `5 o0 `5 W[root@cephnode01 ~]# dnf install python3 podman -y9 U3 B9 j0 q# V4 k# Y' n7 h( p) l
[root@cephnode01 ~]# ./cephadm install
. @4 r% f. Z; h' q' R...+ h" p+ w1 N' z9 |: |* ?. B
[root@cephnode01 ~]# which cephadm
# a0 D- C! g5 O6 { }/usr/sbin/cephadm1 q% ~" ?7 j5 X- T0 T8 X) D$ S( _
5. 创建ceph新集群
0 ?% P4 P# `3 s" i. S7 f5.1 指定管理节点% ^8 H o! Q8 j4 p
创建一个可以被任何访问Ceph集群的主机访问的网络,指定mon-ip,并将生成的配置文件写进/etc/ceph目录里 f& L$ F3 H: o( o: B9 R3 ?
/ m, r4 e% a: Y. Q* u[root@cephnode01 ~]# mkdir -p /etc/ceph. V* U: ^; {, w) @: @$ P
[root@cephnode01 ~]# cephadm bootstrap --mon-ip 10.15.253.161
Z7 J& x, j4 U' K" C' E...
/ R' d- x" P9 f" U7 t) c URL: https://cephnode01:8443/% |1 Y! D: d Y- o1 m2 x' Z% I
User: admin
+ C/ D/ [) [9 n" L7 Q Password: 6v7xazcbwk
9 z! u7 w* M4 P, D$ t& S! `.../ `: E; U% ?" {* c
可登陆URL: https://cephnode01:8443/,首次登陆要修改密码,进行验证
4 C. N% q7 `& b$ U
. l4 |6 W% [# j5 l8 g
/ F- ^0 W- R1 G s" {; E7 t* T& i5 t/ a5.2 将ceph命令映射到本地+ b# H' R5 S/ j
Cephadm不需要在主机上安装任何Ceph包。但是,建议启用对ceph命令的简单访问。
. o. X" m5 I9 `) scephadm shell命令在安装了所有Ceph包的容器中启动一个bash shell。默认情况下,如果在主机上的/etc/ceph中找到配置和keyring文件,它们将被传递到容器环境中,这样就可以完全正常工作了。
y4 [. v. s- Z" A) q2 Q9 h' P3 n" Q8 x* y' o2 L( s- j5 V
[root@cephnode01 ~]# cephadm shell
/ j0 N+ w$ Y# D1 X[root@cephnode01 ~]# alias ceph='cephadm shell -- ceph'' r2 t/ y5 q8 U% k
[root@cephnode01 ~]# exit
+ S6 a. b4 k1 P! I+ s#安装ceph-common包;包括ceph,rbd,mount.ceph的命令0 v2 U: V) ] w! f P
[root@cephnode01 ~]# ephadm install ceph-common包;包括ceph,rbd,mount.ceph的命令
% s* }" g# c- D- ?; _2 H( ]8 D#查看版本
! D% D3 T$ X; E% \% \- `[root@cephnode01 ~]# ceph -v
% Z7 r& J2 Z, o9 W/ O' N. Yceph version 15.2.4 (7447c15c6ff58d7fce91843b705a268a1917325c) octopus (stable)
6 H/ x, T {5 F! k5 Y O查看状态8 Q+ A- [5 G0 _5 t7 }2 a7 u. z
' u0 M1 ~. h3 o/ W0 B# U[root@cephnode01 ~]# ceph status
, \: ]4 Z, T2 j& }4 x* ? cluster:4 {2 e! M+ {% }8 U6 Q' @
id: 8a4fdb4e-f31c-11ea-be33-000c29358c7a' I: C/ R* Q9 B: v- u5 j+ ] |
health: HEALTH_OK
2 |6 K5 K% o- r6 z/ L Reduced data availability: 1 pg inactive
: J6 s8 o8 X9 Y OSD count 0 < osd_pool_default_size 3
/ f, q. F% w; q& O8 I 3 P$ A N& ~) p# a9 o2 g
services:; g# Q3 }1 j8 `$ Z& Z
mon: 1 daemons, quorum ceph135 (age 14m)- @& H L5 \2 n: z: X
mgr: ceph03.oesega(active, since 10m)/ b) {4 P0 M) a
osd: 0 osds: 0 up (since 31m), 0 in9 r( ^' Q" b2 y/ O
; U! t: d* E& E1 M5 k+ i
data:
1 ~- o1 n' {; y* e5 y1 v pools: 1 pools, 1 pgs) E0 z- K* z, m# F- K5 A
objects: 0 objects, 0 B+ D. \& B$ w* {- k1 @1 i5 F1 U) i
usage: 0 B used, 0 B / 0 B avail4 [1 G' a# f' `) ~6 X
pgs: 100.000% pgs unknown& E; {) o5 T; H" \8 k6 o! P
1 unknown$ h2 ]3 ^1 |+ A; u4 B g
5.3 添加新节点进ceph集群" O' b" E4 R2 X* L
: s: k2 v0 N9 l2 P H+ ~
[root@cephnode01 ~]# ssh-copy-id -f -i /etc/ceph/ceph.pub root@cephnode02
8 [# _3 I4 c& Q1 a7 i4 i[root@cephnode01 ~]# ssh-copy-id -f -i /etc/ceph/ceph.pub root@cephnode03* @* f1 b2 ^( A" _0 Y0 a' Q
[root@cephnode01 ~]# ceph orch host add cephnode02
/ g/ x Y6 L* |" HAdded host 'cephnode02'2 `, S ?* D& H9 t0 J% Q5 ~
[root@cephnode01 ~]# ceph orch host add cephnode037 S' y: o X2 s6 Z
Added host 'cephnode03'
8 T: P2 H! s3 q' A9 _' X5.4 部署添加 monitor
" m0 p4 a! ^' Y" Q6 A. D, o选择需要设置mon的节点,全选
% d N3 X/ p( x; Z1 f% \7 y8 x) H. t9 ?
[root@cephnode01 ~]# ceph orch host label add cephnode01 mon5 U0 q) V% ^4 F7 x
Added label mon to host cephnode01
5 G# t. [! D- b/ W[root@cephnode01 ~]# ceph orch host label add cephnode02 mon. M Y, S( e3 V6 @) ]3 Z \3 O) b
Added label mon to host cephnode02
2 A- t* t# B5 A0 h+ a- v: y( `6 L[root@cephnode01 ~]# ceph orch host label add cephnode03 mon
# v% a$ b. x' s5 M; q# WAdded label mon to host cephnode03
; J9 w1 Q0 s4 G& Z% A[root@cephnode01 ~]# ceph orch host ls% `7 o; k1 B& ~/ u1 o$ C; G
HOST ADDR LABELS STATUS
0 [7 ~. k, i6 b. T; B" Bcephnode01 cephnode01 mon
; c6 C" J3 z. Z( S J, K. u" Ocephnode02 cephnode02 mon & z X, D [' a3 [ X/ g9 i
cephnode03 cephnode03 mon
8 p: }9 ?6 M' z3 g) X3 ^: {' f' M8 m告诉cephadm根据标签部署mon,这步需要等待各节点拉取images并启动容器
4 o7 P; Z7 R" i+ ?) D6 h: J3 E k/ n) ]2 x% O
[root@cephnode01 ~]# ceph orch apply mon label:mon+ Y+ q* d, Q' y
具体验证是否安装完成,其他两台节点可查看下
4 |& r/ N9 ?$ m, S3 M6 h6 |& k( C* U
[root@cephnode02 ~]# podman ps -a
$ k. o( U; E, g/ C: ^( l...
: W, u: q; q0 j( u& X[root@cephnode02 ~]# podman images
# {1 j7 `: l( f( h+ K' a/ B/ yREPOSITORY TAG IMAGE ID CREATED SIZE b" \5 L. Q5 N$ P' y4 O: G6 Y# [
docker.io/ceph/ceph v15 852b28cb10de 3 weeks ago 1 GB
; }8 T2 w5 _, w X+ q4 Z2 ?docker.io/prom/node-exporter v0.18.1 e5a616e4b9cf 15 months ago 24.3 MB; X8 o. h6 F( I& T
6. 部署OSD# n+ b' K3 _, j8 c" P# ?
6.1 查看可使用的硬盘7 V4 ^# |5 N: {8 Z" U+ u9 J
7 @3 j' k. L! ?9 }[root@cephnode01 ~]# ceph orch device ls# _6 C! y: Q" y6 @( e
HOST PATH TYPE SIZE DEVICE AVAIL REJECT REASONS + b/ n: b6 V$ {. |2 u2 ]; Q, x
ceph01 /dev/sda hdd 20.0G False locked, Insufficient space (<5GB) on vgs, LVM detected
8 d- q2 `- {& ]0 Q, [$ o, Fceph01 /dev/sdb hdd 20.0G True5 E( P, G0 {. j$ Z# I. M' [
ceph02 /dev/sda hdd 20.0G False Insufficient space (<5GB) on vgs, LVM detected, locked
3 s( C3 O1 S% W* r2 N) Uceph02 /dev/sdb hdd 20.0G True
5 \) g' T) B. m+ ]3 D; u: J0 I \8 kceph03 /dev/sda hdd 20.0G False locked, Insufficient space (<5GB) on vgs, LVM detected 3 F% V: N. C& S
ceph03 /dev/sdb hdd 20.0G True
- _7 L; [, k' ]" t+ ]0 j. ]5 L9 I6.2 使用所有可用硬盘( X. _& H }( b7 O& z- V; L U
( {. h" {3 ~, c3 }
[root@cephnode01 ~]# ceph orch apply osd --all-available-devices
8 l7 O/ z) h- v& J$ f3 e6 }添加单块盘的方式5 u- E( e* Q D4 \! W
7 p8 x3 }/ C) o, u: N[root@cephnode01 ~]# ceph orch daemon add osd cephnode02:/dev/sdc) h k! v. D9 Z: s b
6.3 验证部署情况" C8 r1 U' ?0 p3 N6 t
( t5 Q/ w9 L) O" ~% u7 y
[root@cephnode01 ~]# ceph osd df3 V, `0 a6 |3 `9 d9 |
ID CLASS WEIGHT REWEIGHT SIZE RAW USE DATA OMAP META AVAIL %USE VAR PGS STATUS1 X, D& J; M2 e
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 up+ q, X3 ~. C+ \! T
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 up9 K, f, X3 s0 M# b0 W! d) R
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
. N) f2 `! a5 I6 y" V' f TOTAL 60 GiB 3.0 GiB 11 MiB 4.2 KiB 3.0 GiB 57 GiB 5.02
, S* j2 x- R& DMIN/MAX VAR: 1.00/1.00 STDDEV: 0
. M2 ~+ a1 p% x6 E7 v, ^0 Q7. 存储部署2 e) }: L1 V/ Q) D2 i) f- ^
7.1 CephFS部署
; L& K2 p) }! M. ^部署cephfs的mds服务,指定集群名及mds的数量
, A6 L% s+ e/ }5 n1 x3 T. x+ L: \
. r- N5 b# ~4 [( m) ?! i[root@cephnode01 ~]# ceph orch apply mds fs-cluster --placement=3
- ~: P. {: p) ^4 r: I3 b
1 Z- _1 G; F3 [0 x8 M. I5 L3 E0 X[root@cephnode01 ~]# ceph -s! R3 Q- Q7 U6 O+ i, Q
cluster: o% w- Z. V3 v/ m' i( N
id: 8a4fdb4e-f31c-11ea-be33-000c29358c7a; ]/ B. u) d' [+ w
health: HEALTH_OK4 E% e8 Q! q$ G1 \7 {% J9 ?, D
% E6 u7 Z: ^- f/ g: X. n services:1 L# o2 Z+ b+ U5 \' B- p, J* }
mon: 3 daemons, quorum cephnode01,cephnode02,cephnode03 (age 1m)6 M! G: P& S7 |, F6 P/ z
mgr: cephnode01.oesega(active, since 49m), standbys: cephnode02.lphrtb, cephnode03.wkthtb( ]* r, T6 n8 D5 _" S ~$ E3 |; \$ }
mds: 3 up:standby' E0 l$ e* D6 n3 n5 h( Y7 D
osd: 3 osds: 3 up (since 51m), 3 in (since 30m) b8 s' a$ o, d/ \
/ b2 k4 u, B1 v. Z' u/ H data:
( p) A/ V& l$ j" y# I G- s9 ]$ M pools: 1 pools, 1 pgs4 @/ S/ f# a1 }
objects: 0 objects, 0 B7 T! k8 i* }, ~2 I
usage: 3.0 GiB used, 57 GiB / 60 GiB avail) u2 \( s! r8 X$ m) c
pgs: 1 active+clean
/ w/ F$ c- x/ }: o1 D0 R- d7.2 部署RGW! K& E9 b, j f0 P% @
创建一个领域+ [9 s) g9 r. G$ ^2 U' \
9 {! r! d% X7 ?+ F6 m
[root@cephnode01 ~]# radosgw-admin realm create --rgw-realm=rgw-org --default
( H0 i7 z) E4 {" g( L{* F/ G. ~/ f8 t' z
"id": "43dc34c0-6b5b-411c-9e23-687a29c8bd00",& i) @. i! b1 w) ?( |
"name": "rgw-org",$ b9 h! I2 z8 H6 K
"current_period": "ea3dd54c-2dfe-4180-bf11-4415be6ccafd",
' O! J; @6 g. w4 ?- }4 U "epoch": 1% J0 ^2 Q6 G' y5 e3 S& z
}0 ~# i! x! j2 X- c* X; a; Q
创建一个zonegroup区域组: D/ t3 t- X) L/ O' W/ A
5 F* m8 J- |8 N" l[root@cephnode01 ~]# radosgw-admin zonegroup create --rgw-zonegroup=rgwgroup --master --default# M; u% z1 w; ~
{5 H1 t" ^2 H) a7 i& G' i. x1 J
"id": "1878ecaa-216b-4c99-ad4e-b72f4fa9193f",
8 H" w" t: n6 p* D7 a "name": "rgwgroup",
{2 g3 V5 z" N; N2 y, E1 g "api_name": "rgwgroup",
1 _8 G0 {- r) T7 g0 T "is_master": "true",# l* t2 g9 X9 _: M' H
"endpoints": [],! ^: X/ T2 I5 b/ N! l1 J
"hostnames": [],
9 n: M$ Z: \# Q& W8 S! B3 q "hostnames_s3website": [],% B, P9 u }& W! r( g/ u+ P3 S
"master_zone": "",% Q4 G0 }9 _# H( a x
"zones": [],+ F* H. ]0 ^0 c% O4 I3 `
"placement_targets": [],
% l$ a: E1 E0 d "default_placement": "",
. J8 p3 O6 G2 i6 m "realm_id": "43dc34c0-6b5b-411c-9e23-687a29c8bd00",
' M; P8 }: E V5 k9 G4 c "sync_policy": {
% P, V# |, Q, P, T9 z9 ` "groups": []
$ H% w) v' m$ l/ Y( ~ }
+ V$ E7 C9 M) m. ~7 j}* o; z' Z7 B' o
创建一个区域0 V6 Q/ n$ R1 Y8 ~- q2 E
" c J7 O3 a, c
[root@cephnode01 ~]# radosgw-admin zone create --rgw-zonegroup=rgwgroup --rgw-zone=zone-dc1 --master --default
# v5 F h0 r! u( v{
2 v0 \( Q7 S M/ p "id": "fbdc5f83-9022-4675-b98e-39738920bb57",) I8 I, A; T9 m
"name": "zone-dc1",
: f" A6 o3 V& R& |) N "domain_root": "zone-dc1.rgw.meta:root",
& W9 P& l8 f1 ?- f f "control_pool": "zone-dc1.rgw.control",
7 J2 ~* ^5 ~9 E! H ]& Q/ G "gc_pool": "zone-dc1.rgw.log:gc",! B+ K% p- a7 A, D. L
"lc_pool": "zone-dc1.rgw.log:lc",; f _) {1 R0 }6 V P# N9 }6 ]
"log_pool": "zone-dc1.rgw.log",
+ t [7 @8 K* F3 V# [/ g0 V- |) g "intent_log_pool": "zone-dc1.rgw.log:intent",8 q& a" m; B) m7 p" z
"usage_log_pool": "zone-dc1.rgw.log:usage",
3 L( I) l8 X6 i U ?' c9 a "roles_pool": "zone-dc1.rgw.meta:roles",
a2 b$ \( M% t/ l0 v' K% O' ? "reshard_pool": "zone-dc1.rgw.log:reshard",
3 M. l x" H, [' G: O6 I "user_keys_pool": "zone-dc1.rgw.meta:users.keys",! F9 z' x8 l) x( f$ H$ Y* ?
"user_email_pool": "zone-dc1.rgw.meta:users.email",7 M2 C! x: |2 b8 `6 L
"user_swift_pool": "zone-dc1.rgw.meta:users.swift",
$ {9 M. C* F- @2 l+ {3 u "user_uid_pool": "zone-dc1.rgw.meta:users.uid",
4 d# R3 z4 |* b2 C% T/ \- c5 ? "otp_pool": "zone-dc1.rgw.otp",
+ h9 D6 A4 j7 y$ R f# d! x4 M8 e6 H+ D "system_key": {
/ d8 v) W. ^6 z3 c, O6 ] "access_key": "",
/ A( I1 g7 } d% j2 k. f8 } "secret_key": ""
8 @. `9 L: x3 Q' x+ q, [) V },& J R, E6 `- P- C- ?) c
"placement_pools": [8 D6 l8 P' o5 [3 |# }; k' l0 n
{' e# F1 Z$ w @7 H" |" h. S
"key": "default-placement",
7 k- L! A ~8 `6 r1 N "val": {+ W4 d6 R& k; U9 ]
"index_pool": "zone-dc1.rgw.buckets.index",
" G* m! V. q M) u "storage_classes": {$ U d' @* u. L* u
"STANDARD": {
7 d9 s5 }- ` }7 d4 M7 S g4 X "data_pool": "zone-dc1.rgw.buckets.data"! d0 f5 D* `) C1 x6 ~% @
}" E5 G3 b- {4 e. W7 c
},
+ X( ~% Q! A2 h* l& ]$ n "data_extra_pool": "zone-dc1.rgw.buckets.non-ec",' C' {* `2 c* F" X4 k: q/ l9 K
"index_type": 06 f+ K& |8 d, c2 ~- Z, C
}
3 E I4 I: T: ]* o5 a }
1 u; {4 A; f. W+ H, ?! B: v7 d0 q ],' c2 h5 e2 }+ P. R: ~8 k5 B6 O
"realm_id": "43dc34c0-6b5b-411c-9e23-687a29c8bd00"
& T/ y: h- ]( i% }! d% L}5 }3 j# P- d) R: W
为特定领域和区域部署一组radosgw守护进程,这里只指定了两个节点开启rgw
; @# m/ s) [+ @; ~" W16 F( C8 y+ J# C! w6 G$ K+ P
[root@cephnode01 ~]# ceph orch apply rgw rgw-org zone-dc1 --placement="2 cephnode02 cephnode03"
! `3 f% u" {6 [% ?+ y$ C+ ^验证
* H* t/ j+ z& F8 S0 ^3 e* `5 ~! O: _6 M7 u- K0 f" g) `
[root@cephnode01 ~]# ceph -s( a) E) u& r! E4 k$ {
cluster:: W5 T( t) ~" P
id: 8a4fdb4e-f31c-11ea-be33-000c29358c7a
( o. n/ ]. a. Z- {8 [ health: HEALTH_OK" r2 o: x* F% a' D# V8 a0 x
& A5 ]0 R$ x, d$ a/ o9 Y, T
services:
7 ^. W9 u6 i# v# t mon: 3 daemons, quorum cephnode01,cephnode02,cephnode03 (age 1m)
) L4 N, H( e# |9 O mgr: cephnode01.oesega(active, since 49m), standbys: cephnode02.lphrtb, cephnode03.wkthtb: J& H% j; n; U9 \8 v
mds: 3 up:standby" y2 t. @ d; S0 x& R; b3 i+ @: t
osd: 3 osds: 3 up (since 51m), 3 in (since 30m)
$ z/ L- H i# K L. Z rgw: 2 daemons active (rgw-org.zone-dc1.cephnode02.cdgjsi, rgw-org.zone-dc1.cephnode03.nmbbsz)
8 [9 n# P% z- Z. S/ y2 Y( N0 s data:, o3 M; L4 r; i8 _
pools: 1 pools, 1 pgs+ r$ W. t' w3 t. F
objects: 0 objects, 0 B
: j: e, D8 h. ?8 V, _ usage: 3.0 GiB used, 57 GiB / 60 GiB avail3 J2 R5 ]$ k4 r1 k+ d! V+ A
pgs: 1 active+clean+ x9 H9 m4 c- h
为RGW开启dashborad
8 B( d8 S4 L' E4 N7 J; X& s, t' P( _ y" U
#创建rgw的管理用户
! i/ L4 C7 I q6 [& ^[root@cephnode01 ~]# radosgw-admin user create --uid=admin --display-name=admin --system
3 \- `8 h+ h; t8 k0 x{
, B7 ]. Q f* d& X1 Q3 c2 y% w v: D "user_id": "admin",8 S9 ]' M4 m9 h8 @1 _& P6 |- G
"display_name": "admin",
0 H; c9 m m$ ?0 _ "email": "",
2 h/ N: z; | K# J, V7 A8 J$ ]0 a, w "suspended": 0,0 m% H- E- R0 k0 N" Y
"max_buckets": 1000,
6 {, g2 G6 |: w+ M2 c3 r "subusers": [],
, v! v% U% G- P* ? w "keys": [
, Z, t' y* S( m {
( L& O0 U* O8 C7 s" |5 B "user": "admin",
# p" ~! m4 T- {! @5 I$ f) i0 r% r "access_key": "WG9W5O9O11TGGOLU6OD2",0 c3 V9 w! E# [' y! Y \" \' ]9 O8 y
"secret_key": "h2DfrWvlS4NMkdgGin4g6OB6Z50F1VNmhRCRQo3W"7 d+ N' `. S* o$ b& z
}
% n. M) U; ~( R: y2 [ ],
) A9 l) H; P: W2 c; E5 q "swift_keys": [],0 G8 y5 J' n4 x4 x6 ^
"caps": [],) U3 p3 ?$ ^6 F( I' E8 ?
"op_mask": "read, write, delete",+ _' Q- M! Y0 U. g/ N" I
"system": "true",( h1 i/ I( V; J3 e |
"default_placement": "",# \) `/ ?# k8 X* S/ a/ f
"default_storage_class": "",* f+ B! {, d6 t7 x6 c% s/ `
"placement_tags": [],
! t, F0 |; e0 E a7 o( } "bucket_quota": {
]3 ~ R4 b0 A0 p4 M9 E "enabled": false,' t+ k' [- W) f% K- J2 p+ [
"check_on_raw": false,. K7 _. s7 _9 Y
"max_size": -1,- N6 V ~, r2 g, n
"max_size_kb": 0,2 A4 G d+ n0 U6 n* l
"max_objects": -1% _- i9 N1 s+ O& w9 a
},
. R. G% H9 \% k0 a Q# A "user_quota": {
Q$ X/ g7 ~8 |9 s1 F. |- Z "enabled": false,
- X3 p& O; d: Z9 O "check_on_raw": false,. ~. F! {+ v6 S- B+ `
"max_size": -1,
4 K5 \' K. g Y* w5 I, Y! c. h& \ "max_size_kb": 0,4 f. ]: j/ q0 M, F+ K4 d* t0 V
"max_objects": -1
1 \2 h" C' M& @4 A& x2 O3 }1 D; r },
% V$ \8 e4 b4 B2 n" Q; E% g "temp_url_keys": []," A/ a) `( K+ Z
"type": "rgw",
# b1 V8 p6 K- |, n. K9 N) x "mfa_ids": []! _+ Z% `/ M; x1 D3 t$ [2 `, l
}1 D5 H k. X7 ^' g( Y1 T) w4 v+ a9 u
设置dashboard凭证
+ [) E, z# A. H0 {5 e6 A. V5 w
2 R& ~$ K9 t4 Z[root@cephnode01 ~]# ceph dashboard set-rgw-api-access-key WG9W5O9O11TGGOLU6OD28 _: X, A/ v1 S* {
Option RGW_API_ACCESS_KEY updated
_% {2 |1 y5 Y! |[root@cephnode01 ~]# ceph dashboard set-rgw-api-secret-key h2DfrWvlS4NMkdgGin4g6OB6Z50F1VNmhRCRQo3W- d: ]2 y( s* J. O* o
Option RGW_API_SECRET_KEY updated
- D4 q5 P& {3 c设置禁用证书验证、http访问方式及使用admin账号5 a6 Z' q G. o" V, `: Z
# {5 X% u. U# P% yceph dashboard set-rgw-api-ssl-verify False# l# I4 c( n3 q
ceph dashboard set-rgw-api-scheme http
. T: y+ `( m! b& G& W4 f' G2 Fceph dashboard set-rgw-api-host 10.15.253.225
' e% t: s* [6 c4 oceph dashboard set-rgw-api-port 80
8 w6 d- H- S; Q" [- Gceph dashboard set-rgw-api-user-id admin
* F. S/ w1 ], U0 }重启RGW9 E5 ^2 Q6 l3 C" s0 E! e" r D3 N* ?# b9 F
2 B( S. u. c2 o; yceph orch restart rgw
8 w, o# c. n0 _9 }8 b |
|