|
|
楼主 |
发表于 2021-7-19 13:50:11
|
显示全部楼层
环境介绍
' t; J$ r b1 h: {. `$ g rIP地址 配置 主机名 Ceph版本8 g( J% m; @3 W: C5 ~( q+ B
10.15.253.161 c2m8h300 cephnode01 Octopus 15.2.4
7 Y: g1 `7 |" t0 k$ e10.15.253.193 c2m8h300 cephnode02 Octopus 15.2.41 x% _3 l( o9 c# R' J
10.15.253.225 c2m8h300 cephnode03 Octopus 15.2.4
9 z" g& v, f6 K" n4 p
% U6 A8 ~2 p7 T7 @* j#Linux系统版本
2 i9 y# k4 _* W0 o) G3 q* `[root@cephnode01 ~]# cat /etc/redhat-release" I2 w1 ~, S* S1 |( y. L
CentOS Linux release 8.2.2004 (Core)7 m: g1 j+ Z8 e8 [
[root@cephnode01 ~]# uname -r
' ]! S/ M% S4 g! H4.18.0-193.14.2.el8_2.x86_64: c) x0 w% j6 E# Q8 E- q
# U5 v; A3 a7 E/ m2 N
#网络设计:建议各网络单独分开8 B% ]1 }: v2 F# `: d
10.15.253.0/24 #Public Network 公共网络4 ?" j4 f4 T C+ k+ i
172.31.253.0/24 #Cluster Network 集群网络, O' ^: e6 q, I
#每台ceph节点下除系统盘外,最少挂载两块相同的大容量硬盘,不需要进行分区9 v; W. D6 P: x# t5 V0 h
[root@cephnode01 ~]# lsblk
6 z+ q1 c5 v# o; K5 h/ ZNAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
8 Y: W( i% y4 x" M0 Xsda 8:0 0 20G 0 disk
9 n; `' `& q9 e4 V1 P6 f├─sda1 8:1 0 200M 0 part /boot
D9 w! D4 m, f4 P├─sda2 8:2 0 1G 0 part [SWAP]
, ~ N/ H, M& y, y. ]! ~; ]└─sda3 8:3 0 18.8G 0 part /& g4 O6 U7 T+ P
sdb 8:16 0 20G 0 disk
+ n6 U& S4 w* @* A2.1.1 Ceph安装与版本选择
7 K1 ]( G* n- F6 ?1 r) dhttps://docs.ceph.com/docs/master/install/8 X$ m: s; ?/ w. M* H2 `
ceph-deploy 是用于快速部署群集的工具;社区不再积极维护ceph-deploy。仅支持Nautilus版之前的Ceph版本上进行。它不支持RHEL8,CentOS 8或更新的操作系统。
" T" C" Z2 @4 U这里的系统环境是centos8系统,所以需要使用cephadm部署工具部署octopus版的ceph
% |9 r- m6 {1 y. J# @2.1.2 基础环境准备
3 r$ D: Y0 }2 F: a5 e3 @+ I全部Ceph节点上操作;以cephnode01节点为例;
" M( t1 u, |# b) s/ Y! g
7 Z7 V) d# i$ I" O#(1)关闭防火墙:
+ o, B: O. Y+ Fsystemctl stop firewalld
; V7 d& s+ _3 L5 X/ esystemctl disable firewalld
6 \' C) Z" G7 N! E#(2)关闭selinux:
7 t) p; w4 x8 ssed -i 's/enforcing/disabled/' /etc/selinux/config
' h8 L8 Y% X" }0 f/ vsetenforce 0
& ~1 J* O9 w+ R#(3)在cephnode01上配置免密登录到cephnode02、cephnode031 e& n& o% [8 ^0 L8 U3 `
dnf install sshpass -y& w/ v( g' O3 z) x& S
ssh-keygen -t rsa -f ~/.ssh/id_rsa -P ''
7 B# E# e' N: O8 A; l: h% Y8 ffor ip in 161 193 225 ;do sshpass -pZxzn@2020 ssh-copy-id -o StrictHostKeyChecking=no 10.15.253.$ip ;done' p) \' T% W/ [8 t; M4 P# `
#(4)在cephnode01上添加主机名:已经配置过则不需要再次添加
) f% ]# m6 w9 ycat >>/etc/hosts <<EOF
1 F" D- }# \1 v* p1 P/ c5 B' h10.15.253.161 cephnode01
3 F! J ^& C0 w* Y' H5 W1 Q/ }10.15.253.193 cephnode02
# C0 P4 b) ^+ N8 d4 S5 F10.15.253.225 cephnode03
% N1 \. T* }. eEOF
$ Y: {& y$ {- _for ip in 193 225 ;do scp -rp /etc/hosts root@10.15.253.$ip:/etc/hosts ;done2 v1 |5 d* l% r
#(5)设置文件连接数最大值
1 W6 d5 h* ?9 ?: P- E9 l' s) ]echo "ulimit -SHn 102400" >> /etc/rc.local, `1 r! M( ]3 i9 Y1 e4 w+ y5 B
cat >> /etc/security/limits.conf << EOF
, T- P+ N/ K, p9 M* soft nofile 65535
" H" n5 ]. e3 n% i2 V* hard nofile 655351 ^+ w' W. {# a
EOF
8 F6 H) j' u3 e4 r; y% u#(6)内核参数优化
U1 l0 s3 u u5 D1 z9 Becho 'net.ipv4.ip_forward = 1' >>/etc/sysctl.conf
% P8 U8 H7 F# j( x2 I* Xecho 'kernel.pid_max = 4194303' >>/etc/sysctl.conf
) G B4 M, m$ j6 H$ K7 s, L) J#内存不足时低于此值,使用交换空间6 I2 C# d* T I0 t; ?
echo "vm.swappiness = 0" >>/etc/sysctl.conf: B6 f& `' M( m" n* K
sysctl -p
; n+ w& }& d6 q7 w#(7)同步网络时间和修改时区;已经添加不需要配置$ X( O( b4 O! ]9 v
安装chrony时间同步 同步cephnode01节点3 @0 W. w: W+ w$ n
yum install chrony -y
" m! K4 h4 {, T# _" x- I5 Mvim /etc/chrony.conf
, Z' b( V0 a) p/ ]server cephnode01 iburst
5 \1 ?( R! n4 s/ G8 w2 X---
- x" Y( K2 ~" V; f8 K$ T H/ O7 asystemctl restart chronyd.service
9 t( C' F& f9 o# }( _: W& V/ k/ Lsystemctl enable chronyd.service+ ~, J. J5 b9 Y& P8 w) H
chronyc sources+ g9 z2 |* U' I* i' p* \) [
#(8)read_ahead,通过数据预读并且记载到随机访问内存方式提高磁盘读操作
_9 u: `, e" U1 ?. A% }. techo "8192" > /sys/block/sda/queue/read_ahead_kb* l* {* q: J' i$ C
#(9) I/O Scheduler,SSD要用noop(电梯式调度程序),SATA/SAS使用deadline(截止时间调度程序)
+ g( [! g3 E) K6 Z; S+ O- f#https://blog.csdn.net/shipeng1022/article/details/78604910
! ^1 a# o1 Y7 p# Z4 |4 zecho "deadline" >/sys/block/sda/queue/scheduler
" Q: f5 j3 }+ l- y! Wecho "deadline" >/sys/block/sdb/queue/scheduler
" c- l; V2 H3 f& ]5 F: `( N#echo "noop" >/sys/block/sd[x]/queue/scheduler
% b5 u0 k) h5 R9 v( ]+ c3. 添加Octopus版yum源" X6 n0 x, C; n f
- j& ?+ J; n: x
cat >>/etc/yum.repos.d/ceph.repo <<EOF
" d; ~# U* H( h5 I[Ceph]
6 \* r- v* a8 M1 [) k# x* fname=Ceph packages for $basearch+ _ u& l3 V8 k
baseurl=https://mirrors.aliyun.com/ceph/rpm-octopus/el8/$basearch1 \5 L& J0 S! r; ^6 T$ W3 Z
enabled=1& c: A. b3 N% N5 i8 a, p! G
gpgcheck=0, _) F6 [9 C& k+ D1 V) T
type=rpm-md" ]' d# `6 M9 }, y. k7 X& U2 d6 w
[Ceph-noarch]7 y$ n# M. o5 u; Q2 ~: F
name=Ceph noarch packages' Q8 d; P% w7 q# t( n T8 L
baseurl=https://mirrors.aliyun.com/ceph/rpm-octopus/el8/noarch
+ R! Q3 ~3 h# a" [5 j: Kenabled=1
- N; Z+ L6 X9 p" _. T1 z4 igpgcheck=0; S! S9 i- p& [4 {, S; I
type=rpm-md
( E9 Q2 y, A" b( E" O8 Y[ceph-source]! d5 J8 [3 n" [0 [
name=Ceph source packages
# z# F5 Q+ T9 ^/ w' Jbaseurl=https://mirrors.aliyun.com/ceph/rpm-octopus/el8/SRPMS8 r) o! w5 ^# F$ s. o3 a& c
enabled=1
" _5 S3 \6 G; agpgcheck=0( I8 l7 l; L0 g# P3 @2 N, ]9 V% ]
type=rpm-md
! c$ C ^/ j9 d8 G1 U7 P% d$ N SEOF
, i2 P3 b& w: L$ D; Y3 N6 pyum clean all && yum makecache, ~% M; }) w% c/ E
#安装基础软件
9 D" E- @# e$ d6 [9 a$ Z# l+ z0 Qyum install net-tools wget vim bash-completion lrzsz unzip zip -y
" N2 f5 c% e& ?/ W. c- L4. cephadm工具部署$ \' y* V2 T3 C6 C+ s6 T
https://docs.ceph.com/docs/master/cephadm/install/
: c4 @ L! [# J) h* q8 R7 B* e% C9 w在15版本,支持使用cephadm工具部署,ceph-deploy在14版本前都支持$ U1 b4 @& P- I1 o; E+ ]. C
4.1 拉取最新的cephadm并赋权
4 e4 P+ B$ G o4 J在cephnode01节点配置;
! [3 E; E7 b% F4 S- B9 f# ]/ N+ x* J7 W. y* N
[root@cephnode01 ~]# curl --silent --remote-name --location https://github.com/ceph/ceph/raw/octopus/src/cephadm/cephadm
9 t* c% {4 [2 G1 p# J! E6 t8 o[root@cephnode01 ~]# chmod +x cephadm4 h+ x w6 x+ x8 Q, V% j
[root@cephnode01 ~]#ll
4 }, F4 L* b1 S! v+ }" L-rwxr-xr-x. 1 root root 184653 Sep 10 12:01 cephadm
/ {& S- ^4 P4 w4.2 使用cephadm获取octopus最新版本并安装
* L3 f7 t' \6 F; C! B' E已手动配置为国内yum源,不需要按官方文档的步骤再进行添加yum源
2 v; l/ l1 p9 P( [; o# r) _0 X: \& `- d$ I0 D' e9 M
#全部ceph节点安装
; m9 w: _0 X8 _1 z[root@cephnode01 ~]# dnf install python3 podman -y
, ^$ G. a! Z* }[root@cephnode01 ~]# ./cephadm install2 t! U4 w( O6 J9 l$ v3 Y
.../ p F& l$ f% W4 p$ k8 x: [/ D; p
[root@cephnode01 ~]# which cephadm7 ]+ q8 P, k1 ]8 s
/usr/sbin/cephadm! {0 N: c6 [2 ]2 t
5. 创建ceph新集群0 z' p, o' H+ ?( t4 S% Q1 C7 U4 V
5.1 指定管理节点
; K+ S' @" P# l, E6 n1 l2 a创建一个可以被任何访问Ceph集群的主机访问的网络,指定mon-ip,并将生成的配置文件写进/etc/ceph目录里
3 z6 Y1 X% U$ C- W: z% V2 L' Y; L
[root@cephnode01 ~]# mkdir -p /etc/ceph; P7 c; `# [* V8 Q5 K
[root@cephnode01 ~]# cephadm bootstrap --mon-ip 10.15.253.161
/ i0 r# ]% a9 B$ T# L$ [ J! }...5 ]# f7 { n( ^( b8 f- C
URL: https://cephnode01:8443/1 h- ]7 \0 p1 R) l' T4 D3 p
User: admin0 M3 r4 g P" ^8 O
Password: 6v7xazcbwk
) Q: `) w# K ^0 k' g- A1 Y+ T...
+ l& U0 G: _; c% T m" X1 d) _可登陆URL: https://cephnode01:8443/,首次登陆要修改密码,进行验证; Q- J" o( s# m5 _
; M- ^4 R- L% b" w! r+ z& ?# @+ N( R/ ~
5.2 将ceph命令映射到本地8 y4 e2 U( ]8 p0 d. h/ y2 Q
Cephadm不需要在主机上安装任何Ceph包。但是,建议启用对ceph命令的简单访问。2 z$ l$ o9 V2 d8 k
cephadm shell命令在安装了所有Ceph包的容器中启动一个bash shell。默认情况下,如果在主机上的/etc/ceph中找到配置和keyring文件,它们将被传递到容器环境中,这样就可以完全正常工作了。7 m2 Z7 a( [5 F( `: ^: S
) j' F( q/ t3 k8 L
[root@cephnode01 ~]# cephadm shell6 `& S3 v& c7 N% M! V! a
[root@cephnode01 ~]# alias ceph='cephadm shell -- ceph') r7 I; w+ m8 o$ J7 b, i; r
[root@cephnode01 ~]# exit' p3 j7 A% y& t3 `% K
#安装ceph-common包;包括ceph,rbd,mount.ceph的命令1 Q {6 l8 A4 k. I$ w
[root@cephnode01 ~]# ephadm install ceph-common包;包括ceph,rbd,mount.ceph的命令- w9 R+ v: y6 [ F
#查看版本
R" d0 B3 h8 y8 u[root@cephnode01 ~]# ceph -v
: w1 {/ l. X. n2 V) H' _ceph version 15.2.4 (7447c15c6ff58d7fce91843b705a268a1917325c) octopus (stable)3 `9 ^/ i) o* N3 A
查看状态- b: v, W9 s" C& B% l# N
- e6 T' V# |( a# o
[root@cephnode01 ~]# ceph status& e* ~ `& [' l7 |
cluster:
; b) z3 [7 ~& Q$ \) | C+ O! I9 U id: 8a4fdb4e-f31c-11ea-be33-000c29358c7a. M) N5 E! D/ j t
health: HEALTH_OK9 H N, m s- E8 }
Reduced data availability: 1 pg inactive
9 M/ I3 Z9 {- y( p. } OSD count 0 < osd_pool_default_size 3
# q$ _* c+ L8 Z0 ?7 E( @ + U7 j* }5 q3 v, j. w" O
services:
9 i9 R9 ^# J0 d# | mon: 1 daemons, quorum ceph135 (age 14m)1 k. a: {4 n: a( ]# c& _
mgr: ceph03.oesega(active, since 10m)& x8 W' B0 a3 z" ?; X5 O, p, J3 s) X% p, N
osd: 0 osds: 0 up (since 31m), 0 in; e' }- h" a b8 A- H- ?1 x
" d( G# w' t9 L- d2 f! t5 ` data:
5 |: O. H3 Y( L; a$ s2 f2 c pools: 1 pools, 1 pgs
% \+ X5 e1 P1 q% [1 u4 b( h% F objects: 0 objects, 0 B
4 l7 I: l; T& N+ \7 W$ v2 k usage: 0 B used, 0 B / 0 B avail
: a2 k/ i$ C6 c pgs: 100.000% pgs unknown% u0 a2 k; b; b4 p- q5 b' B
1 unknown
) {& Y N( K9 F: I7 ~5.3 添加新节点进ceph集群: R+ C7 Q+ D. P) b' D6 o% k* t
' Z8 k$ g# H+ c! a9 v+ E
[root@cephnode01 ~]# ssh-copy-id -f -i /etc/ceph/ceph.pub root@cephnode02
5 W' o8 T) C; h w& z: n[root@cephnode01 ~]# ssh-copy-id -f -i /etc/ceph/ceph.pub root@cephnode03
$ W6 ~& J/ g2 l [5 t# g[root@cephnode01 ~]# ceph orch host add cephnode02
- S: f% p t6 T5 b& M' DAdded host 'cephnode02'
" l* `& r8 L$ M& K0 n[root@cephnode01 ~]# ceph orch host add cephnode03# W, U& u- j( m) q+ t
Added host 'cephnode03'# ? s* A. O% g4 \3 ?. z+ |
5.4 部署添加 monitor6 h( F( ]: u1 x* Q4 p
选择需要设置mon的节点,全选
2 c4 S5 Y* h% w) F8 M& C6 p+ f, j6 Z9 `9 `+ T& _
[root@cephnode01 ~]# ceph orch host label add cephnode01 mon
! C* e6 F; O! X$ z' PAdded label mon to host cephnode01: X% |7 v' K$ O5 {- y, m, _( j+ |2 d* I( v! j
[root@cephnode01 ~]# ceph orch host label add cephnode02 mon n, H$ r! ?2 k( S+ {# R) b5 D
Added label mon to host cephnode02
+ M5 H* U; n4 A2 B/ i[root@cephnode01 ~]# ceph orch host label add cephnode03 mon' o# P: ]5 Y( }0 I: o0 y5 w
Added label mon to host cephnode03
. O, s# p3 _+ D" p) U8 x' i[root@cephnode01 ~]# ceph orch host ls
0 K R$ F9 F4 w y4 P4 A* T7 xHOST ADDR LABELS STATUS
4 G" b$ P. B p. R/ wcephnode01 cephnode01 mon
( Q( p% {; p* l& o: _' |cephnode02 cephnode02 mon & S- B4 g' J* P! i# ^# b% K2 A2 I' p! j" M
cephnode03 cephnode03 mon( ^: o" j3 u6 B& @
告诉cephadm根据标签部署mon,这步需要等待各节点拉取images并启动容器
[. C- F, D4 ?: T7 @7 R6 B: f
3 c; ]2 R! d% e[root@cephnode01 ~]# ceph orch apply mon label:mon
$ k- H6 R# O2 o具体验证是否安装完成,其他两台节点可查看下
4 z+ f- @$ o3 `5 N$ @) P
; V7 Y5 T g2 R9 p/ s2 s' [[root@cephnode02 ~]# podman ps -a
' A, @3 R8 f: ]2 D...* `! m7 P" ?/ O: A
[root@cephnode02 ~]# podman images
) |, K ^" ~. z7 z6 H4 }4 b0 a/ t# _REPOSITORY TAG IMAGE ID CREATED SIZE( L$ Y/ x, s$ K9 q5 I3 g# Z
docker.io/ceph/ceph v15 852b28cb10de 3 weeks ago 1 GB0 Y! ?6 f- R. e* V
docker.io/prom/node-exporter v0.18.1 e5a616e4b9cf 15 months ago 24.3 MB
- ?$ j3 K* W& N* b9 J& p6. 部署OSD2 { A. S) K1 h [) z+ F
6.1 查看可使用的硬盘
1 z2 b1 n; Z6 z" p0 [2 L" H8 _! ?# w' r. x5 f
[root@cephnode01 ~]# ceph orch device ls
5 ~" ~& Y; r& x( T& eHOST PATH TYPE SIZE DEVICE AVAIL REJECT REASONS R9 p x% [+ W b6 n) q. V w% W
ceph01 /dev/sda hdd 20.0G False locked, Insufficient space (<5GB) on vgs, LVM detected 2 {6 P' R9 J2 C
ceph01 /dev/sdb hdd 20.0G True
5 T; Q1 z* s$ s7 Z; I& q+ j9 Tceph02 /dev/sda hdd 20.0G False Insufficient space (<5GB) on vgs, LVM detected, locked * t- Y* ~% I! ^3 C7 J
ceph02 /dev/sdb hdd 20.0G True
& }- r: {8 }+ ^$ \7 jceph03 /dev/sda hdd 20.0G False locked, Insufficient space (<5GB) on vgs, LVM detected : x+ I* d: b- u" C) Q5 X% v: O
ceph03 /dev/sdb hdd 20.0G True6 K& t; E; Y; h! ^. n6 l. T
6.2 使用所有可用硬盘
9 R2 [, K p9 Q5 S; Z% Q" U) N% W
$ w3 u& Q* ?4 E5 c( |[root@cephnode01 ~]# ceph orch apply osd --all-available-devices- G& R4 B- s+ K, u% n: D3 u
添加单块盘的方式! M4 j" X3 \- _
7 y8 G5 _, e* u' ?/ K
[root@cephnode01 ~]# ceph orch daemon add osd cephnode02:/dev/sdc
" L8 b9 r {& r# s6.3 验证部署情况$ i7 \! m6 G5 K) j# q9 L# v
1 l* L! }0 Y& [+ m$ E
[root@cephnode01 ~]# ceph osd df8 v! J7 J! b) w3 o f5 I3 Y
ID CLASS WEIGHT REWEIGHT SIZE RAW USE DATA OMAP META AVAIL %USE VAR PGS STATUS1 C. y+ v6 E) r1 h; A
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
7 W1 B; X/ r& R8 U* r 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
# e+ [) O9 s2 l: B 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
+ x: T1 y1 N3 g TOTAL 60 GiB 3.0 GiB 11 MiB 4.2 KiB 3.0 GiB 57 GiB 5.02 , {- H3 v# H! b+ Q8 s& z u
MIN/MAX VAR: 1.00/1.00 STDDEV: 0' F2 Q* c% ~/ `- ~9 E! A6 @
7. 存储部署
6 z" S5 j2 g! N% H7.1 CephFS部署
/ R& m& t+ | M( l部署cephfs的mds服务,指定集群名及mds的数量
. N6 M/ C( U) p) I! s# }9 r
e) N& ~+ O. U* F[root@cephnode01 ~]# ceph orch apply mds fs-cluster --placement=3
2 v$ ?, {3 }; g; } O# d9 P& T
9 q" d4 Y% R2 A. t0 ~: Y/ J[root@cephnode01 ~]# ceph -s c( [6 k& Y/ w5 \5 D3 H9 l/ E
cluster:! N' K- E8 [# L* Q* P) F
id: 8a4fdb4e-f31c-11ea-be33-000c29358c7a- v7 h$ N: _7 w* j$ `+ P" j
health: HEALTH_OK" I! J2 U% a7 {7 {( O
2 G; D5 T' N8 C! s3 ~0 u
services:4 v% y/ {# z; j
mon: 3 daemons, quorum cephnode01,cephnode02,cephnode03 (age 1m)9 s* J! o1 J" X$ B
mgr: cephnode01.oesega(active, since 49m), standbys: cephnode02.lphrtb, cephnode03.wkthtb
+ T i4 k$ n2 ^0 j8 s7 r3 J. q mds: 3 up:standby
" C, Y4 s C1 _ R7 y* } osd: 3 osds: 3 up (since 51m), 3 in (since 30m)
/ S/ [) s7 ^5 C7 n" V + p6 F$ T: y3 L1 j% N' c2 E& E
data:* j& B E# b/ O
pools: 1 pools, 1 pgs
: V+ l9 n. x% O) d objects: 0 objects, 0 B5 b4 N X1 m1 j2 a
usage: 3.0 GiB used, 57 GiB / 60 GiB avail6 D2 Q( `- E4 l9 j0 e& l. ^
pgs: 1 active+clean
: n8 ^1 u. X8 w9 g# K- X7.2 部署RGW
3 j: P# t2 _" k* Y+ ], m创建一个领域# M s' S* G, ~# ^
9 _* L1 t1 {# D8 n! ~" e! b4 t[root@cephnode01 ~]# radosgw-admin realm create --rgw-realm=rgw-org --default
+ i- D2 r4 _! R3 S$ W+ r{1 ]2 Z$ A5 M5 G4 r
"id": "43dc34c0-6b5b-411c-9e23-687a29c8bd00",
/ O. ~! C0 K7 F9 z5 D+ p5 E "name": "rgw-org",
; a% u' A+ v9 z% J9 I "current_period": "ea3dd54c-2dfe-4180-bf11-4415be6ccafd",7 f1 z, f Z( O- F- u: f
"epoch": 1
: R# r, S% W& |}! D0 h( z% k3 K# t% Q- ?
创建一个zonegroup区域组
Q# Q0 l# s; I& T6 g8 S, `4 V/ I8 d0 N1 o9 _: W
[root@cephnode01 ~]# radosgw-admin zonegroup create --rgw-zonegroup=rgwgroup --master --default+ O1 C% h, \' c! f5 ^$ J
{
$ Y0 T: c! a% ~ "id": "1878ecaa-216b-4c99-ad4e-b72f4fa9193f",0 R, H7 ?% ?- ^2 ?4 k& a
"name": "rgwgroup",1 Y7 T' ?& k! B( [5 n! t% s! l
"api_name": "rgwgroup",
1 `" B4 }5 M% F "is_master": "true",
" @( ~; f9 _( h" N* K3 j& ?+ p "endpoints": [],2 p3 s1 ?' E8 G6 p, l
"hostnames": [],5 D; x9 p( c7 A! d6 a+ @
"hostnames_s3website": [],
# j. O! n# f5 b" ] "master_zone": "",
# e6 T* K, j0 [* U "zones": [],
0 s* N. i @2 r3 U2 q9 q& M( U( i "placement_targets": [],
5 @: ?" _0 c5 r, U" R2 X' c0 @" f( \+ b "default_placement": "",
8 O! M% D4 x2 T( t' `. ~' b "realm_id": "43dc34c0-6b5b-411c-9e23-687a29c8bd00",7 t2 X3 g" k; D- h, K
"sync_policy": {9 W8 C' G1 \$ |* T3 N" u+ `( r
"groups": []
2 C9 \) S( l5 D' G. e1 S }! ]8 A: S, T! k# `9 P! |2 K2 V
}0 h* h* y" C, d3 g4 v; I7 b* s) T
创建一个区域
0 l# H. L, k" f7 q' e [$ t% l- h) a" W T7 P+ p
[root@cephnode01 ~]# radosgw-admin zone create --rgw-zonegroup=rgwgroup --rgw-zone=zone-dc1 --master --default
6 g; u2 T2 ]' r+ O+ O{
" e& C9 P) I6 ^4 k# w2 b9 v "id": "fbdc5f83-9022-4675-b98e-39738920bb57",
1 J. a, M5 Z! U& R "name": "zone-dc1",
! l, }7 M& N. L, F. D "domain_root": "zone-dc1.rgw.meta:root"," ^; S) `+ _; [- M, H
"control_pool": "zone-dc1.rgw.control",
* k+ o+ T! T/ o7 C/ c( L l0 Q( s "gc_pool": "zone-dc1.rgw.log:gc",
{, F' C5 u. }8 [ ] a% A- { "lc_pool": "zone-dc1.rgw.log:lc",
6 q( ]3 q+ F' c* i! W M5 Y5 i8 Y "log_pool": "zone-dc1.rgw.log",
. D& H; Q9 P& J9 F/ H% Y "intent_log_pool": "zone-dc1.rgw.log:intent",
8 |0 R4 H5 X! Z" t "usage_log_pool": "zone-dc1.rgw.log:usage",* c6 V, E% j# m3 C" l/ B. E% u
"roles_pool": "zone-dc1.rgw.meta:roles",0 z$ i/ f% D6 n8 V
"reshard_pool": "zone-dc1.rgw.log:reshard",
* h, o9 W8 |) G, ~ "user_keys_pool": "zone-dc1.rgw.meta:users.keys",
; }. f$ m# P$ L3 d+ u: } "user_email_pool": "zone-dc1.rgw.meta:users.email",$ @) ^" }$ \5 o% T+ Y# Q4 y9 [
"user_swift_pool": "zone-dc1.rgw.meta:users.swift",
+ V) l1 d: c# m) R, _ "user_uid_pool": "zone-dc1.rgw.meta:users.uid",
7 o Y G, I, N* D: s "otp_pool": "zone-dc1.rgw.otp",. V/ u$ ^" d" U! Q2 N7 p
"system_key": {/ E. H" z8 c1 W* H% q7 ~
"access_key": "",
+ H1 j S0 Z/ g# x+ h9 e- _2 A "secret_key": ""9 Z- q: s d. x* J
},
" n; u6 B3 ^0 ] "placement_pools": [
6 H: L" o% B2 a7 r {
7 N& [: Q$ S9 F. |0 y "key": "default-placement",: g- D, p" @( [* I+ L8 P
"val": {( v! I' `/ Q% |2 m% y W, ], T
"index_pool": "zone-dc1.rgw.buckets.index",% D* M1 F8 u8 d
"storage_classes": {
) x) l1 v- l$ ~! v "STANDARD": {% d7 E( I# X9 p- ?* W) x
"data_pool": "zone-dc1.rgw.buckets.data"0 [$ W- Q- H3 a: g& W- V8 O* k
}
% o" `; P) O% A% k8 Z& P; r },
9 m) p6 _# T$ ?9 n4 m5 W- S "data_extra_pool": "zone-dc1.rgw.buckets.non-ec",4 Q7 Z/ b! y) h. c" C3 ]
"index_type": 0
# V7 {, O! \$ ^9 w9 l$ ^8 \ }7 k K( b- i9 S* u
}
) `2 }* u5 p# p8 \ O* \4 l/ c3 D ],4 u) ]& Q p7 v8 }& u& v0 ]5 u
"realm_id": "43dc34c0-6b5b-411c-9e23-687a29c8bd00"
/ z3 q& \1 w8 {$ @5 M% v j}1 J. D& k: ~/ t( V& y: U3 `
为特定领域和区域部署一组radosgw守护进程,这里只指定了两个节点开启rgw
" O1 F7 }/ H& v& V k6 {0 y1+ c1 v" n4 U9 A* x7 |
[root@cephnode01 ~]# ceph orch apply rgw rgw-org zone-dc1 --placement="2 cephnode02 cephnode03"
+ R7 v, b4 R$ I1 p验证
' \; D1 a! |6 _9 U+ t K3 ~# |# n" O5 m
[root@cephnode01 ~]# ceph -s
; R( S( W; J y cluster:6 B6 \. _, \3 X; @
id: 8a4fdb4e-f31c-11ea-be33-000c29358c7a- T! {/ p, h8 V4 r a( \, o' F, q
health: HEALTH_OK F# \: a+ x" M2 b- [) ~$ e: `' S
( r% H" b: v8 Q& a) a0 u$ U' D services:+ V9 W ^0 }3 i3 f4 `
mon: 3 daemons, quorum cephnode01,cephnode02,cephnode03 (age 1m)6 X7 B# m% i# Y0 R
mgr: cephnode01.oesega(active, since 49m), standbys: cephnode02.lphrtb, cephnode03.wkthtb& v( e$ M9 b) _1 Q4 A% A6 R
mds: 3 up:standby0 b5 e! k5 J6 t5 Z" k' {2 D
osd: 3 osds: 3 up (since 51m), 3 in (since 30m), e+ m4 X$ g$ i) x' i. }
rgw: 2 daemons active (rgw-org.zone-dc1.cephnode02.cdgjsi, rgw-org.zone-dc1.cephnode03.nmbbsz)
9 L3 b( ]* l3 N1 Y data:2 j7 B6 c3 S, s+ T! k
pools: 1 pools, 1 pgs/ F$ ~" Z. ?; P5 C9 n0 X: \ u
objects: 0 objects, 0 B, U$ d+ X7 |$ o) y# P+ D
usage: 3.0 GiB used, 57 GiB / 60 GiB avail
2 u# k1 i1 C0 P4 b( M# v1 @9 x pgs: 1 active+clean0 L1 j6 {8 L9 o' N1 K5 C
为RGW开启dashborad
! ^. H- a2 Z' j
# N7 Q+ S' G& E' n#创建rgw的管理用户9 c; t; D$ c7 b; q
[root@cephnode01 ~]# radosgw-admin user create --uid=admin --display-name=admin --system v; [3 |5 l9 L8 L4 S3 z
{
! j: l( F: e( I: v J9 ^ "user_id": "admin",' z/ ?. W& y! {" _4 e; c. ^
"display_name": "admin",
, {# e d4 r: O "email": "",) ~7 E2 a& b; K: Y% h# S9 o
"suspended": 0,% y% A& i5 n6 G
"max_buckets": 1000,! |. I0 `4 d/ ^* }5 P& I( u1 f8 ^
"subusers": [],
. q- B5 ]+ e% ~0 ~7 R2 D8 u "keys": [
6 h6 _$ j" u( \2 r; _% I% y! o7 v B {
: C: ^0 J i, y4 @1 } "user": "admin",
- i2 \. c* R- V- l "access_key": "WG9W5O9O11TGGOLU6OD2",
0 T |; e# Y3 c {+ v0 m "secret_key": "h2DfrWvlS4NMkdgGin4g6OB6Z50F1VNmhRCRQo3W"' U: j5 i3 `, d* k0 q
}+ U0 Z p2 P3 E- c2 W9 D, S; x
],
$ z; [/ t& O, s) z "swift_keys": [],
3 Z$ E$ D; {+ G* H& C- F "caps": [],, s, o% E3 J% P- m9 T( w5 K
"op_mask": "read, write, delete",
6 S3 c A- M5 ]( h% P3 p "system": "true",$ q S8 R% }! `' d0 Y) G
"default_placement": "",
( s& X- y( L, r$ r "default_storage_class": "",: Q* A# z& o" {' b- ]2 |3 c
"placement_tags": [],! H7 V3 Y8 p. b' ]9 e
"bucket_quota": {7 E9 o$ Q7 E' U
"enabled": false,1 r+ W1 R; z G; ?
"check_on_raw": false,6 G: a: r- x1 ?8 k
"max_size": -1,
& K- U+ u0 a3 k2 ? "max_size_kb": 0,
' i& c7 i: w! S+ x5 k8 I7 ~5 ] "max_objects": -1
$ ?1 K4 \# F: g5 R+ s E },
0 m6 L4 {# `2 m; b "user_quota": {
0 s& k0 n+ x% S1 H9 z4 P; a+ k. A "enabled": false,0 j4 w1 o1 G4 r N4 K3 n3 G2 g
"check_on_raw": false,) O2 F+ p( F& {! u/ C( d
"max_size": -1,
& Q8 `' F, c) v; J) O( ^ "max_size_kb": 0,
& s; o+ A# d7 O: Z& f "max_objects": -1
: d, G+ w/ i" @3 B },2 W: n! R% v( s' P. g+ b6 D% X
"temp_url_keys": [],
1 b8 A b+ K( b/ T- X "type": "rgw",- m: s. o5 |3 @* Y* J
"mfa_ids": []
' _' W* ^0 d( V# V; Y}
5 d0 [! L% M, ^9 `* O6 t+ R设置dashboard凭证
: y0 W/ c0 t' j3 p7 }! i. X& D' p4 P m" j- i
[root@cephnode01 ~]# ceph dashboard set-rgw-api-access-key WG9W5O9O11TGGOLU6OD2: B3 J4 Q5 M. l0 c& s+ x" q: \
Option RGW_API_ACCESS_KEY updated' }; M# w4 ~1 Z; I
[root@cephnode01 ~]# ceph dashboard set-rgw-api-secret-key h2DfrWvlS4NMkdgGin4g6OB6Z50F1VNmhRCRQo3W
0 [6 a# I) O# G4 HOption RGW_API_SECRET_KEY updated
+ |1 V0 w+ s9 B3 k* \* J! a设置禁用证书验证、http访问方式及使用admin账号
: g( {0 [. ?% p* c3 [
4 ?5 a9 S$ Q& Z6 z7 lceph dashboard set-rgw-api-ssl-verify False
& V& N! R3 `8 `; N$ pceph dashboard set-rgw-api-scheme http# E* k2 E' ?7 U
ceph dashboard set-rgw-api-host 10.15.253.2258 s- Y1 H4 @# x! f) c
ceph dashboard set-rgw-api-port 80
7 R( p7 D8 ?# G$ Eceph dashboard set-rgw-api-user-id admin
" F7 R% N7 z. K, t+ o4 y重启RGW4 ?- L* U: W: C. x& K/ ?
9 H5 E" ^: a. z: g/ jceph orch restart rgw, A( `8 s# t$ ]5 p
|
|