|
|
楼主 |
发表于 2021-7-19 13:50:11
|
显示全部楼层
环境介绍
' T% q: M9 n' p, c2 CIP地址 配置 主机名 Ceph版本
0 K; ]; Q# P; F% p; q1 T10.15.253.161 c2m8h300 cephnode01 Octopus 15.2.41 y& ]% \: `( l6 v" z2 x+ e c7 `
10.15.253.193 c2m8h300 cephnode02 Octopus 15.2.44 \9 B1 y& c$ R
10.15.253.225 c2m8h300 cephnode03 Octopus 15.2.4
4 |) b* X- h X' S% s4 x1 L
o& z6 m( m, [#Linux系统版本
" C4 L/ `4 n0 R/ ?8 b* J; f6 v[root@cephnode01 ~]# cat /etc/redhat-release
V9 v4 K/ A% N& E0 v# o! d# ~CentOS Linux release 8.2.2004 (Core)
- Z6 [- M" d+ |! l( w6 W[root@cephnode01 ~]# uname -r
7 ]. U. @! G$ Q6 j- |. f- z+ H4.18.0-193.14.2.el8_2.x86_64
1 g6 u9 x; A0 n# F9 X4 T+ q" b; L: Q9 `
#网络设计:建议各网络单独分开6 j/ `! n( W& e" `
10.15.253.0/24 #Public Network 公共网络* d! Z6 _+ P5 r
172.31.253.0/24 #Cluster Network 集群网络9 @0 k: t9 x4 o- t
#每台ceph节点下除系统盘外,最少挂载两块相同的大容量硬盘,不需要进行分区+ _. w, c* @; U5 u0 t0 c
[root@cephnode01 ~]# lsblk1 K) T4 c: J% O* E' M. L- W( |( S) c
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT' n1 E( E( T/ Y9 S! |9 e
sda 8:0 0 20G 0 disk9 J% f( h/ R( y. j6 i$ X+ k; {
├─sda1 8:1 0 200M 0 part /boot
1 \# p- G/ ]& Q0 a2 [4 G├─sda2 8:2 0 1G 0 part [SWAP]
; t: ]. v0 q' ~& X+ k└─sda3 8:3 0 18.8G 0 part /
6 A. ?+ G, F2 w5 z" nsdb 8:16 0 20G 0 disk
1 {$ F( x" |6 P$ p5 g2.1.1 Ceph安装与版本选择
0 }1 \5 t3 H0 t( h9 E) L) Jhttps://docs.ceph.com/docs/master/install/
3 k# W2 p+ J- g x9 W2 N) vceph-deploy 是用于快速部署群集的工具;社区不再积极维护ceph-deploy。仅支持Nautilus版之前的Ceph版本上进行。它不支持RHEL8,CentOS 8或更新的操作系统。 |1 |5 {; e9 {: o: u
这里的系统环境是centos8系统,所以需要使用cephadm部署工具部署octopus版的ceph" {1 n* v: {4 ^# t% W
2.1.2 基础环境准备 @4 I$ w/ Y* i# j: E
全部Ceph节点上操作;以cephnode01节点为例;
- l2 ?' n+ k3 z3 O
" \$ i& X" v+ I8 w1 X#(1)关闭防火墙:
4 N: J/ E6 q1 s# i7 wsystemctl stop firewalld7 H# G) D: B7 I( G Z
systemctl disable firewalld
* Q; S. k8 J$ t6 {9 k#(2)关闭selinux:
! M" n( y" ?5 P3 n8 N$ F% d3 y- [sed -i 's/enforcing/disabled/' /etc/selinux/config
% g5 z4 }9 i# c. o2 }; Jsetenforce 0
" g, f" d& D6 O2 ?+ c#(3)在cephnode01上配置免密登录到cephnode02、cephnode03
& a/ p2 E0 m/ L1 L. adnf install sshpass -y
; g9 P$ i( o- \% [# V. P* \ssh-keygen -t rsa -f ~/.ssh/id_rsa -P ''
+ `4 Q8 J3 \# k- @for ip in 161 193 225 ;do sshpass -pZxzn@2020 ssh-copy-id -o StrictHostKeyChecking=no 10.15.253.$ip ;done/ L* m! U6 V6 ^" p
#(4)在cephnode01上添加主机名:已经配置过则不需要再次添加$ ?; E* U7 A' ]( y2 N. P
cat >>/etc/hosts <<EOF
* a$ B; p( G0 l" e: }10.15.253.161 cephnode01
E0 @( {& A5 w- Q$ C# ?10.15.253.193 cephnode02* x4 U2 q- W+ e4 F
10.15.253.225 cephnode03
" p5 S- U& h* I! _+ }4 O9 dEOF, Z* C. i3 @6 [3 e9 M9 |: L% k
for ip in 193 225 ;do scp -rp /etc/hosts root@10.15.253.$ip:/etc/hosts ;done2 O3 N* }9 c! G, V2 g4 Y% f7 Q
#(5)设置文件连接数最大值( a6 B* Y, _+ }, o+ a
echo "ulimit -SHn 102400" >> /etc/rc.local
1 s; M2 T! |4 x u( M, p* {4 scat >> /etc/security/limits.conf << EOF7 p6 q# ^2 l. J3 f% {2 h+ L/ M+ }
* soft nofile 655356 V6 l' _8 D& T w
* hard nofile 65535
' C& J2 R- d3 A& ]EOF
% Z2 Z" G# h! ~) O5 }2 ^ E#(6)内核参数优化
B: u& I! a2 s4 ]$ V& Jecho 'net.ipv4.ip_forward = 1' >>/etc/sysctl.conf
% x; f2 k; I& X& k+ \" M, @echo 'kernel.pid_max = 4194303' >>/etc/sysctl.conf# p' f+ b* ?7 e) [# X4 S0 B* @
#内存不足时低于此值,使用交换空间
+ y) }0 F" W: f, D# ?8 gecho "vm.swappiness = 0" >>/etc/sysctl.conf0 f( V/ m. a: |" {* x7 w6 B; x$ D
sysctl -p
# i, `$ ]0 f( M: H#(7)同步网络时间和修改时区;已经添加不需要配置. A) k: p; \8 k, \9 [3 v" }! L- p
安装chrony时间同步 同步cephnode01节点$ z& c6 V/ n! s* _
yum install chrony -y
8 i6 j$ N- i1 t1 E( Ivim /etc/chrony.conf
1 o* G- b& p# I7 k2 I3 Qserver cephnode01 iburst7 ?6 F$ F% ~$ ~* E$ q
---( ?! o' M5 ~! d4 ^
systemctl restart chronyd.service
0 N4 \ p; {. m/ Vsystemctl enable chronyd.service
6 \( k+ b& h: S7 c/ L( Lchronyc sources7 f1 x W7 Y% e1 ~
#(8)read_ahead,通过数据预读并且记载到随机访问内存方式提高磁盘读操作
0 o7 O# l( ?' @$ X$ U5 A1 {( |) Q1 ~echo "8192" > /sys/block/sda/queue/read_ahead_kb
+ C; m3 E1 p. T, D( y#(9) I/O Scheduler,SSD要用noop(电梯式调度程序),SATA/SAS使用deadline(截止时间调度程序)2 d/ q0 d+ M! z, M
#https://blog.csdn.net/shipeng1022/article/details/786049109 r$ g6 v' k& E
echo "deadline" >/sys/block/sda/queue/scheduler) ]5 L6 s# g4 P4 x
echo "deadline" >/sys/block/sdb/queue/scheduler
7 F. w7 L/ Y1 `8 g4 l; A' y% Y9 K7 l( k#echo "noop" >/sys/block/sd[x]/queue/scheduler: P9 z9 h( h, W, W( {. A
3. 添加Octopus版yum源4 j6 K D3 u" C' H8 e) i
; d+ T) R$ O* } J5 O; d4 lcat >>/etc/yum.repos.d/ceph.repo <<EOF6 p+ S9 k9 U, ]
[Ceph]
9 D% l e# n7 q1 A/ W4 wname=Ceph packages for $basearch: u- N( e( A0 F5 j
baseurl=https://mirrors.aliyun.com/ceph/rpm-octopus/el8/$basearch
5 U: u/ U7 A5 ]enabled=1+ |6 X& Y# S) d
gpgcheck=0
6 w; z* P! `! h% `$ v5 ctype=rpm-md
r+ g& ~0 F" ~7 K4 V6 L4 o+ F: i[Ceph-noarch]
: [ \4 N% b! ]% N, k c' Xname=Ceph noarch packages8 ]2 K- y% C3 A9 v
baseurl=https://mirrors.aliyun.com/ceph/rpm-octopus/el8/noarch
$ W2 j- i" Y- A6 g* fenabled=1
4 k l* S G$ z. f5 I0 `gpgcheck=0
2 {! w* N: E- o) U7 X( Ttype=rpm-md
9 w4 f+ l7 v8 w1 K8 r[ceph-source]; ]5 F8 J: s; p& i8 d6 Z5 H
name=Ceph source packages& J- [% b2 W1 x. O/ v8 |% O
baseurl=https://mirrors.aliyun.com/ceph/rpm-octopus/el8/SRPMS
6 ^3 ^4 {$ `- T5 p$ kenabled=1 @1 |7 G6 L6 i! ^
gpgcheck=07 j [' N: I$ W" k* f; A
type=rpm-md8 J B4 V& Z3 @9 D! |
EOF
& C5 h' i- R5 }, O3 dyum clean all && yum makecache& m- z* H U" n% {/ T
#安装基础软件; B3 X( ~" ?4 k1 @3 J
yum install net-tools wget vim bash-completion lrzsz unzip zip -y
9 s$ ]' A8 J) R0 a* o1 T4. cephadm工具部署
# S9 D; X( G! @% i8 h9 H" r/ W+ Qhttps://docs.ceph.com/docs/master/cephadm/install/8 n# d) O! ]) n7 H' d
在15版本,支持使用cephadm工具部署,ceph-deploy在14版本前都支持# F; h. l1 y) D' a* G5 C% w8 x
4.1 拉取最新的cephadm并赋权; B( c7 c( q% g2 G
在cephnode01节点配置;7 \6 I* }9 i. V- K4 S
: F3 e* [7 I( ?8 i2 V* @[root@cephnode01 ~]# curl --silent --remote-name --location https://github.com/ceph/ceph/raw/octopus/src/cephadm/cephadm9 N/ O8 f9 Q0 b
[root@cephnode01 ~]# chmod +x cephadm
, z: B. o6 }+ S) g& r9 X% Y$ z3 {[root@cephnode01 ~]#ll. Z9 v2 ?9 }, I( p5 t/ Y1 w$ b
-rwxr-xr-x. 1 root root 184653 Sep 10 12:01 cephadm
. w _- y; o# h& t7 D5 W4.2 使用cephadm获取octopus最新版本并安装
$ J# h& Q r" d- S9 }/ r已手动配置为国内yum源,不需要按官方文档的步骤再进行添加yum源) J2 C& y+ K, I5 _4 _7 T
: |/ q' {; I1 Q# p$ {& ^: f
#全部ceph节点安装% p& d$ D% l7 U5 y' G* i
[root@cephnode01 ~]# dnf install python3 podman -y
. Y/ }) x% b6 R0 l' j* h[root@cephnode01 ~]# ./cephadm install, n9 N9 }, ^/ }
...
$ P) ]$ B; T1 Z$ M[root@cephnode01 ~]# which cephadm
& Q+ _) z0 S( O/usr/sbin/cephadm
# w* b+ a( c1 p" H" T5. 创建ceph新集群
7 Q% L1 V% }" p n9 m2 a5.1 指定管理节点
, e/ h3 p6 k' i- U创建一个可以被任何访问Ceph集群的主机访问的网络,指定mon-ip,并将生成的配置文件写进/etc/ceph目录里& ^; Z' F H3 X% W) o2 Q
- a Y* V1 N8 M0 G) v$ d$ K x2 t[root@cephnode01 ~]# mkdir -p /etc/ceph @' H- n3 {; u, H
[root@cephnode01 ~]# cephadm bootstrap --mon-ip 10.15.253.161
( {, n* p, p6 @6 R w1 F...8 `/ p6 p* c( s4 Y9 d: A* c& [
URL: https://cephnode01:8443/9 n% y+ K; S. ], k2 O
User: admin
$ r+ F; L" v+ L6 |. w Password: 6v7xazcbwk: H, y2 x2 V R& M
...5 L' F. N% n- |4 b
可登陆URL: https://cephnode01:8443/,首次登陆要修改密码,进行验证6 z3 P3 J4 p$ F0 M) m
8 m$ o1 i5 ]; f4 [- \$ _' W* K
& L5 C' h7 c1 U# k; E! y5.2 将ceph命令映射到本地
6 N3 J' W4 d' C7 T/ HCephadm不需要在主机上安装任何Ceph包。但是,建议启用对ceph命令的简单访问。
" l, ~$ _$ {4 s) t! ~cephadm shell命令在安装了所有Ceph包的容器中启动一个bash shell。默认情况下,如果在主机上的/etc/ceph中找到配置和keyring文件,它们将被传递到容器环境中,这样就可以完全正常工作了。
/ R# H& i* l* f
5 j/ R6 [: R( ?, M; G1 `' T[root@cephnode01 ~]# cephadm shell
+ j4 b7 b) ?0 r. x+ ][root@cephnode01 ~]# alias ceph='cephadm shell -- ceph', _3 x4 c( w, l. Z5 H
[root@cephnode01 ~]# exit3 }& ?2 [4 V: Q* ^9 X6 ~) _8 ^8 W
#安装ceph-common包;包括ceph,rbd,mount.ceph的命令& Q/ T: j1 M. b& Z$ r
[root@cephnode01 ~]# ephadm install ceph-common包;包括ceph,rbd,mount.ceph的命令
4 J. C6 `: Y! E#查看版本2 f* w d7 q* C. l6 F y
[root@cephnode01 ~]# ceph -v& V4 i4 S0 i7 O
ceph version 15.2.4 (7447c15c6ff58d7fce91843b705a268a1917325c) octopus (stable)& _& v" k- K0 R9 t4 H4 Q
查看状态
8 T3 T6 B0 m) D0 ?
, r# j% G" ?6 V: {; c1 [5 L[root@cephnode01 ~]# ceph status
$ i9 Z- k: s) D% Y, C% J* Y! n cluster:& G5 {# e- k6 x- l1 u; _* B1 |, w' c
id: 8a4fdb4e-f31c-11ea-be33-000c29358c7a+ F z l4 G' Y
health: HEALTH_OK. M. c6 n& s O# ?) f* Q
Reduced data availability: 1 pg inactive8 ?1 L: O0 U$ l0 u
OSD count 0 < osd_pool_default_size 3
1 f, B1 Q, N& d- ] % o" k4 W5 g# L* p" C1 ^, C+ c
services:2 f9 R6 W/ ]' U
mon: 1 daemons, quorum ceph135 (age 14m) \/ O9 f4 l7 n& ?. a
mgr: ceph03.oesega(active, since 10m)
( u6 b) [% Y5 z! s. D osd: 0 osds: 0 up (since 31m), 0 in
( e" a* \% G6 z* |" J" x( R
$ `; R$ ^& f# W+ P: a6 m, a0 l data:
& { z% p: m/ G4 Q# I9 y O pools: 1 pools, 1 pgs! X2 j( s+ s- t4 g: n
objects: 0 objects, 0 B
! U3 e3 y. k" w; v; j usage: 0 B used, 0 B / 0 B avail: h# r* ?. F/ ?7 O
pgs: 100.000% pgs unknown
( J4 o6 m: v& q0 U 1 unknown
; a E a- r9 K: C& f; F5.3 添加新节点进ceph集群4 y) Y0 Z) P. s7 O4 w
5 p6 x# p4 S! R4 {% u
[root@cephnode01 ~]# ssh-copy-id -f -i /etc/ceph/ceph.pub root@cephnode02
- j( @8 Y4 j; U U+ F[root@cephnode01 ~]# ssh-copy-id -f -i /etc/ceph/ceph.pub root@cephnode03
6 l4 E9 h) R& j. q4 s: T[root@cephnode01 ~]# ceph orch host add cephnode02
5 F3 {1 H+ n: y6 C0 @, QAdded host 'cephnode02'
. k9 ?" E3 Z5 t/ |[root@cephnode01 ~]# ceph orch host add cephnode03
: W1 m8 A2 d6 O. z( mAdded host 'cephnode03'
( ^( Y. m2 z8 S% }( e6 P( u5.4 部署添加 monitor
" I) X( E3 m1 Q选择需要设置mon的节点,全选
' B8 D5 M3 m4 Z. m% v
- B& I2 P0 k' {3 X( w[root@cephnode01 ~]# ceph orch host label add cephnode01 mon
% T9 U5 W. R7 W* n1 L0 w/ SAdded label mon to host cephnode017 x8 u7 U* y1 |
[root@cephnode01 ~]# ceph orch host label add cephnode02 mon
/ s s+ g; F4 I2 Z6 T" d9 J* h+ rAdded label mon to host cephnode025 j v$ M" M8 K$ ^ R1 K, U
[root@cephnode01 ~]# ceph orch host label add cephnode03 mon
. N% Z+ J) a/ _Added label mon to host cephnode036 Q Q9 Y8 s" \6 Y' g
[root@cephnode01 ~]# ceph orch host ls
, Y2 S! ]# l: v% X7 ?HOST ADDR LABELS STATUS " l# k' }' I, i- R$ _8 Z
cephnode01 cephnode01 mon
0 ?) R4 f( G; Zcephnode02 cephnode02 mon + Q% o) H4 b# W3 i, U
cephnode03 cephnode03 mon, h! v. l- e6 l3 h% _: t' ^
告诉cephadm根据标签部署mon,这步需要等待各节点拉取images并启动容器
( |9 ^8 d }0 r! C: O" m: p/ F* C: G5 c0 {/ W; P. I
[root@cephnode01 ~]# ceph orch apply mon label:mon
8 P" l" M6 H3 G. E8 L" D: s具体验证是否安装完成,其他两台节点可查看下8 K/ Q8 `* j" y' r2 c0 Q2 ^
8 {" ]# A6 J* _6 d6 v$ L0 v. m! z
[root@cephnode02 ~]# podman ps -a
% I& E9 Y; w E4 r, p7 v& i- D( A...7 |7 e/ Y, y+ E) d# n
[root@cephnode02 ~]# podman images
# l) d5 D0 K* `5 N* m8 rREPOSITORY TAG IMAGE ID CREATED SIZE
5 b) ~( I" q5 Q" L& O5 ? qdocker.io/ceph/ceph v15 852b28cb10de 3 weeks ago 1 GB
2 t, l! P9 g3 T7 [: F1 f; ~docker.io/prom/node-exporter v0.18.1 e5a616e4b9cf 15 months ago 24.3 MB
i- p0 y' r' P6. 部署OSD1 r- j+ }" l4 b2 x i9 t# M+ O8 d
6.1 查看可使用的硬盘
5 H0 n3 ~0 x. z- l m- u2 C# E" A2 J" ]1 |1 k* G
[root@cephnode01 ~]# ceph orch device ls
! t4 A* f9 ^- d0 r. Q6 J# S: ^HOST PATH TYPE SIZE DEVICE AVAIL REJECT REASONS
( A% v2 L- C- b q) s4 `# Gceph01 /dev/sda hdd 20.0G False locked, Insufficient space (<5GB) on vgs, LVM detected
; U+ i3 p0 P4 S. _4 M( qceph01 /dev/sdb hdd 20.0G True2 {1 S8 e; i \5 ?1 `: Z
ceph02 /dev/sda hdd 20.0G False Insufficient space (<5GB) on vgs, LVM detected, locked - A# ]8 W9 M2 M* i8 w3 w$ ~
ceph02 /dev/sdb hdd 20.0G True5 u4 F& p, Y# n; c; c& S: t. X
ceph03 /dev/sda hdd 20.0G False locked, Insufficient space (<5GB) on vgs, LVM detected
3 G7 |% S1 o' X6 u/ ?ceph03 /dev/sdb hdd 20.0G True, R8 i V+ `5 K; M9 r& T+ u
6.2 使用所有可用硬盘
2 l; K8 z, M" c" f7 q; p8 t9 @) Q+ I p4 B; l5 ?* g' V
[root@cephnode01 ~]# ceph orch apply osd --all-available-devices
* t% s9 r9 C! \# a$ U添加单块盘的方式
" |- Z% W/ R9 I! E
. R: v. j( f7 F3 e* a: X[root@cephnode01 ~]# ceph orch daemon add osd cephnode02:/dev/sdc* Y1 O( H6 P3 t# @2 z# L
6.3 验证部署情况
+ F9 j* v3 q3 J& B* v- H3 d
4 }' v2 `- t& H7 k8 A9 L[root@cephnode01 ~]# ceph osd df/ `9 K! D/ B" E, m4 n1 C
ID CLASS WEIGHT REWEIGHT SIZE RAW USE DATA OMAP META AVAIL %USE VAR PGS STATUS
/ f& Q* M" l" E. [! d 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 h% _8 G% ^1 R' Z0 c4 J
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
/ N$ T( C9 ^- a- s 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, ]9 R& {: C( c8 w
TOTAL 60 GiB 3.0 GiB 11 MiB 4.2 KiB 3.0 GiB 57 GiB 5.02 $ V% e9 U! J: @1 a& i$ Z
MIN/MAX VAR: 1.00/1.00 STDDEV: 0
& h( @$ v, Z4 A' y' k7. 存储部署1 \2 B3 p U& Z! g1 V; E4 ]
7.1 CephFS部署
% K4 {. o4 Z8 X% C部署cephfs的mds服务,指定集群名及mds的数量! L+ W2 l$ J% q8 y- u
4 u; M9 r2 S& ?. Z2 o( x) P$ [[root@cephnode01 ~]# ceph orch apply mds fs-cluster --placement=3
% Z( ?0 y; D$ G# B* D. r
. M8 L- {2 s+ o( o5 }3 p[root@cephnode01 ~]# ceph -s5 w$ c, P+ E$ J& S X' n+ j0 l* l* N, d, j% J
cluster:
6 S% B3 g p" C' k% T id: 8a4fdb4e-f31c-11ea-be33-000c29358c7a! Z& z. d. ? Z! c4 j% J7 V$ a" ^
health: HEALTH_OK
8 [& o; a/ E+ }- \8 H( v
& d: d# { I, s services:
4 f, P$ v/ H2 c9 i' x1 x0 ] mon: 3 daemons, quorum cephnode01,cephnode02,cephnode03 (age 1m)
, }6 y0 B. f7 p7 b1 p" z mgr: cephnode01.oesega(active, since 49m), standbys: cephnode02.lphrtb, cephnode03.wkthtb
* t7 M; z; a) P, {) J l% D mds: 3 up:standby4 |8 q6 W \/ J3 R" D
osd: 3 osds: 3 up (since 51m), 3 in (since 30m)
. m/ v( ^; a3 R ) @, K1 w- v/ { N9 ?
data:, v- n( a8 ~' B6 O+ }9 \6 D
pools: 1 pools, 1 pgs3 j* U3 @) W* F
objects: 0 objects, 0 B
' v: j' J/ [7 @% l$ G usage: 3.0 GiB used, 57 GiB / 60 GiB avail0 ?+ ?! t* r1 Q' @7 p4 H
pgs: 1 active+clean
# @" c p( s* ~ E, r, V7.2 部署RGW
* S( Z/ J- _; h创建一个领域. `6 s) o3 m8 G6 Q* G
6 b# e) G/ X- Q! M) ^[root@cephnode01 ~]# radosgw-admin realm create --rgw-realm=rgw-org --default5 W. u. r k6 e5 {
{
% n. a. R, {) k K+ ]: s1 J& E "id": "43dc34c0-6b5b-411c-9e23-687a29c8bd00",$ z$ t' W1 d2 [( ^2 O) J
"name": "rgw-org", o) ?4 l7 r2 h4 c
"current_period": "ea3dd54c-2dfe-4180-bf11-4415be6ccafd",
7 t1 C& z: K5 j "epoch": 1
. C0 ], c t4 y6 P/ x9 ^! n# d} e+ Y+ g3 H! F$ H4 Q5 b5 Z
创建一个zonegroup区域组
/ ^; O1 f7 i( O) d8 r5 A- L$ d2 @5 M! C' R M- ^
[root@cephnode01 ~]# radosgw-admin zonegroup create --rgw-zonegroup=rgwgroup --master --default
- N0 T; ?+ {7 A8 {0 k6 E' p/ u{9 R+ @/ k* e+ P1 x/ T! x+ D
"id": "1878ecaa-216b-4c99-ad4e-b72f4fa9193f",5 l) o7 j0 x% X. N
"name": "rgwgroup",6 @5 ]9 D9 V- [* A: g' e2 Q* F
"api_name": "rgwgroup",
; @' f1 L7 M a& ^2 |; F "is_master": "true",) Z7 P2 F; Q$ P: }' K5 I$ b
"endpoints": []," {: J- s& V6 h5 O
"hostnames": [],
5 D2 O& b, o' A* Y d, M c: t9 B "hostnames_s3website": [],
1 W5 |7 M6 y' z! Z0 z& | "master_zone": "",
9 F# t9 T* l" g% W3 X; _0 x "zones": [],
/ ?, X* C% R( o' E8 @ "placement_targets": [],
4 A1 w) h& C& J- ^! t) B# f "default_placement": "",
8 t5 J$ N0 z4 [ "realm_id": "43dc34c0-6b5b-411c-9e23-687a29c8bd00",* H9 ` R/ N3 `8 Q- {1 {! m5 q( k" y2 h
"sync_policy": {
7 C( G# y+ c, B "groups": []
" z/ |7 R' S0 w, H' ^ }) U* B- N1 m- Y5 Z6 p- I0 L
}+ N- l3 l$ U1 ?
创建一个区域
: A# T6 ]- B2 H
9 V' M4 ?9 u* ][root@cephnode01 ~]# radosgw-admin zone create --rgw-zonegroup=rgwgroup --rgw-zone=zone-dc1 --master --default! b5 q. p7 C4 Z( H) m _# Q
{
7 W, B) L5 k C' O "id": "fbdc5f83-9022-4675-b98e-39738920bb57",1 h. \4 n. m$ {9 A: ^4 o7 R' [! ]
"name": "zone-dc1",
+ t1 d) U/ s" n$ `9 p "domain_root": "zone-dc1.rgw.meta:root",
4 q6 K" v6 z" ]+ q3 U0 y4 h "control_pool": "zone-dc1.rgw.control",
. e& p7 c: m2 c5 F; E "gc_pool": "zone-dc1.rgw.log:gc",
3 l3 I2 `% d, n A; ] "lc_pool": "zone-dc1.rgw.log:lc",
# S) P( C+ C: R% T% C "log_pool": "zone-dc1.rgw.log",
" L* V$ S, v& {+ T! O1 D1 m "intent_log_pool": "zone-dc1.rgw.log:intent",
! k* \) e- e) `* _/ G9 T5 Q$ b "usage_log_pool": "zone-dc1.rgw.log:usage",! r: o$ Z1 M$ p U2 {* ~0 Y0 q
"roles_pool": "zone-dc1.rgw.meta:roles",
. m6 E% y) G* |; F, g "reshard_pool": "zone-dc1.rgw.log:reshard",
+ s6 d0 H# ?* ^ [* H" \# N "user_keys_pool": "zone-dc1.rgw.meta:users.keys",
) L; x$ v, N5 c% C: E, U "user_email_pool": "zone-dc1.rgw.meta:users.email",
q0 T* E% [5 y) ?# P# q1 C3 X "user_swift_pool": "zone-dc1.rgw.meta:users.swift",1 v9 D, u" n/ V$ S
"user_uid_pool": "zone-dc1.rgw.meta:users.uid",
# b6 p4 G2 |" ^8 R7 W4 i "otp_pool": "zone-dc1.rgw.otp", m1 L$ Z+ R( k1 b/ t( y. b8 Q
"system_key": {0 `/ U" e. b; J; ^
"access_key": ""," ^7 D( p* s$ R) C& i9 q
"secret_key": "") {- ?5 g' D' c/ \; g3 F
}, M9 L' E- Y2 x: ]0 x9 }7 x" T& K# q
"placement_pools": [
3 m% N$ t \8 h/ f; x7 D {% x" b8 i" P9 R
"key": "default-placement",( |" X! O7 y9 O
"val": {
5 A2 p4 B2 b* T/ f q "index_pool": "zone-dc1.rgw.buckets.index",
0 A* G/ K6 D0 e( b "storage_classes": {4 i: w& R1 K9 d" Y+ ^7 L7 f% }; L
"STANDARD": {
' Y" m4 G& p, U) o* u% U "data_pool": "zone-dc1.rgw.buckets.data"; M+ w' y$ O h5 v( s0 `( H
}
4 {, p3 J/ d+ t% S },
8 I% \, \ Y( Z$ T. ?. ^ "data_extra_pool": "zone-dc1.rgw.buckets.non-ec",) v9 w7 Q; P1 L' t/ `% H, ^
"index_type": 0: O7 c/ t4 X. e9 B* C, t: }
}# s. K) y4 K- U! ^& [. z" d
}# i# F" e3 ]* G M$ W. W9 p
],
' W8 U; `' v1 h( c7 d h "realm_id": "43dc34c0-6b5b-411c-9e23-687a29c8bd00"
% B; J# O0 M' Z6 C/ A6 j$ J}+ w4 Y7 {" T; w% `$ i0 u
为特定领域和区域部署一组radosgw守护进程,这里只指定了两个节点开启rgw; V, m3 {- j4 @$ v
1
# O3 ]4 B: ?7 y# K* c2 K: L[root@cephnode01 ~]# ceph orch apply rgw rgw-org zone-dc1 --placement="2 cephnode02 cephnode03"; a$ G. a2 c. s; y# z5 @+ ^
验证9 Q& \( C; c+ f6 x
- e5 T+ p9 L+ y1 O
[root@cephnode01 ~]# ceph -s( X" z0 S9 K* E3 K q7 b
cluster:" m0 K2 M; i5 ]- _/ Q
id: 8a4fdb4e-f31c-11ea-be33-000c29358c7a4 `- o6 w. r. r; A; D% H5 ~* v/ O
health: HEALTH_OK, J/ v# _ m/ n) a3 p9 o" p
0 i; l# A8 d- }2 L' X! n services:
8 O G: ^: w( o& @0 @" @; U mon: 3 daemons, quorum cephnode01,cephnode02,cephnode03 (age 1m)
5 I2 w5 h; H: q+ {4 w$ h* g mgr: cephnode01.oesega(active, since 49m), standbys: cephnode02.lphrtb, cephnode03.wkthtb/ i& o7 Q E/ d; H& B5 \! B# r
mds: 3 up:standby
2 I% z7 r. _" R- U osd: 3 osds: 3 up (since 51m), 3 in (since 30m)" r& n, L# ?3 s/ O
rgw: 2 daemons active (rgw-org.zone-dc1.cephnode02.cdgjsi, rgw-org.zone-dc1.cephnode03.nmbbsz)6 p! L$ ^2 n. }- Z6 k/ R* U" i
data:
$ G2 }5 P6 I E h( l' J. E+ A pools: 1 pools, 1 pgs/ R$ ?" _- C' u' ]" O
objects: 0 objects, 0 B" H, _- c6 ?! n( {) n# w
usage: 3.0 GiB used, 57 GiB / 60 GiB avail: F& i! _) z8 g Q ^( \( [+ J
pgs: 1 active+clean( u/ J" Q5 d/ _5 ~
为RGW开启dashborad
D, ^+ [- S! y7 u' d8 ]1 c0 r& s' M) E- {2 p- i
#创建rgw的管理用户. P9 }& M5 B, T$ i& Y
[root@cephnode01 ~]# radosgw-admin user create --uid=admin --display-name=admin --system& W5 H: E# v/ b
{
9 N( H' q9 D# Y. L! a. k% u "user_id": "admin",4 F" `) B. L% p8 ?% T& y" r
"display_name": "admin",
. ^& Q$ D. L+ t1 {) Z1 Q# a* t "email": "",8 M/ G0 d% L$ e* p5 Q
"suspended": 0,3 A. q M9 c2 m9 k0 F+ ^1 W
"max_buckets": 1000,2 Q3 ^- Q( t/ T/ U4 G. a/ l
"subusers": [],
. Q/ _. Z) D7 I4 J K! Y% m "keys": [
( M- x7 K- \# @' m$ g9 P8 k {
/ b" s6 E8 I* w+ u3 u "user": "admin",
- M' j% b j( h' A "access_key": "WG9W5O9O11TGGOLU6OD2",$ w" E( R5 C% d' m
"secret_key": "h2DfrWvlS4NMkdgGin4g6OB6Z50F1VNmhRCRQo3W"7 }% X% c/ O9 K" C4 u" n
}
2 I, E, T# U8 w- E& b ],
! Z' v, l$ R: |- H. U9 M% b( v "swift_keys": [],) s3 Z( ]( \! U( l* Z& n( |
"caps": [],
3 |. k- X: n9 R. ^ "op_mask": "read, write, delete", L5 ]4 u7 Z8 N; `. y' p k& s
"system": "true",1 Z/ J( }* j& b4 W& z d
"default_placement": "",' g" ~+ o4 N, Q# Q# |4 e( F
"default_storage_class": "",
) l e( @( H" ]$ N: o4 F "placement_tags": [],
+ Y* X: @0 z/ ~, K: ~ "bucket_quota": {2 w$ f( i* | } t: [7 d
"enabled": false,# Y2 m- }6 U' O; K
"check_on_raw": false,& k- h8 i& n6 \3 l. a
"max_size": -1,
0 I0 N; w& `! v( V5 P0 {& M2 l$ F; [ "max_size_kb": 0,
' o) a/ N3 M9 O" X$ ?, A2 ] "max_objects": -1- D( |: T( d/ S- i( \
},
, ~; r- `9 x, M- s" I. i2 a6 z" T "user_quota": {5 n w2 Q1 @- d' r
"enabled": false,
9 P* ^% L( F0 X9 m% d8 t! W6 O "check_on_raw": false,
F& F0 ^. Y4 m+ s# B, i "max_size": -1,
3 D' Q7 F+ i+ M/ M' D$ I8 B0 B "max_size_kb": 0,
& X' W! p* x0 }2 Q; e4 | "max_objects": -1
5 L; C% f! ~- z* q( y! Q) n0 |+ g },3 k! b) P; M+ l" W% n8 `6 z
"temp_url_keys": [],
2 }+ |8 w4 s6 ^/ Y7 {& m "type": "rgw",+ o6 p$ o. k. G
"mfa_ids": []
* ~) ?% l8 j$ l; `3 h+ O8 Z}" s% w( X1 j- s5 ^
设置dashboard凭证
4 y# {! E& g" ~
, _& }8 B3 G* T: w( {[root@cephnode01 ~]# ceph dashboard set-rgw-api-access-key WG9W5O9O11TGGOLU6OD20 F& d' w' M' S# z$ l' W0 _" B6 F
Option RGW_API_ACCESS_KEY updated# h% k5 Y" W9 z5 A5 c* s2 S! ?
[root@cephnode01 ~]# ceph dashboard set-rgw-api-secret-key h2DfrWvlS4NMkdgGin4g6OB6Z50F1VNmhRCRQo3W
" I2 @0 g7 J5 s4 r$ s4 HOption RGW_API_SECRET_KEY updated
9 L6 j* o( |6 o8 N! l1 Y' s7 j设置禁用证书验证、http访问方式及使用admin账号
( ^, V$ _2 K! E. |
$ p5 Y8 u: A. u9 yceph dashboard set-rgw-api-ssl-verify False0 w( [/ M7 N# T* ?: m# T
ceph dashboard set-rgw-api-scheme http
# Z E2 v# R" _+ I& zceph dashboard set-rgw-api-host 10.15.253.225
8 d9 x" H7 c+ X$ i* c) v+ Zceph dashboard set-rgw-api-port 80: ?( w9 R2 }( ?: o# a
ceph dashboard set-rgw-api-user-id admin' U* C5 {* e) D
重启RGW" y+ Z- |5 u4 S7 m* H0 Q; u
$ g0 e! @- X0 ~1 h+ f$ R4 l! oceph orch restart rgw
4 C8 Q: d- c8 Y' C |
|