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

ceph分布式运维总结

[复制链接]

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
发表于 2022-10-17 15:18:15 | 显示全部楼层 |阅读模式
6 Pool操作[color=var(--theme-color)]#6.0 pool 说明(1) pool 是 ceph 存储数据时的逻辑分区,它起到 namespace 的作用。其他分布式存储系统,比如 Mogilefs、Couchbase、Swift 都有 pool0 H% J3 l, w4 n7 X/ ^# C
的概念,只是叫法不同。每个 pool 包含一定数量的 PG,PG 里的对象被映射到不同的OSD上,因此 pool 是分布到整个集群的。除了隔离数据,我们( X# p3 a: P$ g* F" y7 P
也可以分别对不同的 POOL 设置不同的优化策略,比如副本数、数据清洗次数、数据块及对象大小等。- N' I* N$ s# e6 q
- v5 H7 F2 ~) Q% @3 N
(2) pg_num 和 pgp_num
+ L' k5 i$ G/ [. c8 j1) 创建 pool 操作: ceph osd create pool ${pool-name} ${pg_num} ${pgp_num}% o  m$ e* W2 ^9 I
2) 这里强制选择 pg_num 和 pgp_num,因为 ceph 集群不能自动计算 pg 数量。, ]% l9 a. B9 Z! S0 u; ^
3) 官方建议的 pg 使用数量
  f5 o; d; x. B* F! w' K小于 5 个 osd 设置 pg_num 为 128
7 J# r+ }; I& ^' \" ]* @" V5 到 10 个 osd 设置 pg_num 为 5125 n% W" V6 ^, t- S' l' C+ r& H' o% Z
10 到 50 个 osd 设置 pg_num 为 10240 |: `  ~1 z5 g# U) f1 y  o
如果超过 50 个 osd 你需要自己明白权衡点,并且能自行计算 pg_num 的数量,pg_num 通用计算方法如下:/ I" a& X& d3 E
             (OSDs * 100)4 a; f2 M. S$ J3 `
Total PGs = ------------0 @- V# j# r7 f/ i$ R4 l
            pool size
7 _- G; \5 q$ B4 x7 i/ L4 {! \6 ], \            , o: I& i" R+ F
例如: 60 个 osd,3 个副本/ n0 f- s' r( B3 d' b
(60 * 100)
/ @# x) @" ~) U1 i6 a----------- = 2000
1 N) K+ h; {8 R: O3 p- H4 T   35 S; Y& L3 e$ c1 T

, `2 t5 b3 d8 l# V7 g. a- b' K" ^
2^11 > 2000 < 2^10,所以 60 个 osd,副本数为 3 时,pg_num 设置为 2048,pgp_num 默认和 pg_num 保持一致。6.1 列出存储池[root@ceph-deploy ~]# ceph osd lspools
  v' a- D2 w# G$ q! D1 device_health_metrics
0 t2 r- }$ |6 H2 cephfs_data
4 G& Y  r4 w* l. S% @3 A6 f
3 cephfs_metadata6.2 创建存储池(1) 命令格式7 x9 w2 n* R5 ^, C( @
# ceph osd pool create {pool-name} {pg-num} [{pgp-num}]8 l0 C4 ~  l1 ~5 [1 |9 Y# i5 Z
  ^1 Q# O) z% s* A; H  V& G
(2) 命令举例
6 c# k4 v  T% ?7 q: V6 T$ E[root@ceph-deploy ~]# ceph osd pool create rbd-pool 64 64
  F- B0 }) _# [$ H( }! Q[root@ceph-deploy ~]# ceph osd lspools
1 f4 s* _6 S, j. s1 o1 device_health_metrics" D' t0 n( f* G9 H* z
2 cephfs_data
2 V7 B, |. e. v% X4 N  z7 |3 cephfs_metadata5 n+ g' p1 m' e5 x8 x
4 rbd-pool6.3 设置存储池配额(1) 命令格式
2 T# h; x  {9 x- Y* ^2 w. X% a# ceph osd pool set-quota {pool-name} [max_objects {obj-count}] [max_bytes {bytes}]
. r; {/ }9 I- n2 U. L# N) s( o
(2) 命令举例
! ?9 N4 ~1 i, V9 @: p[root@ceph-deploy ~]# ceph osd pool set-quota rbd-pool max_objects 10000
: r. e/ A: O3 l% t9 e) O, ^[root@ceph-deploy ~]# ceph osd dump | grep rbd-pool. x% F' h$ z) k: B6 j* _1 F
pool 4 'rbd-pool' replicated size 3 min_size 2 crush_rule 0 object_hash rjenkins pg_num 64 pgp_num 64  Q( d1 X1 V& {- h9 z
autoscale_mode on last_change 378 flags hashpspool max_objects 10000 stripe_width 06.4 删除存储池(1) 命令格式
9 ]! g8 P+ j. K0 t# ceph osd pool delete {pool-name} [{pool-name} --yes-i-really-really-mean-it]
$ c. F" G9 ~5 M! h) j  i
1 I8 \2 I8 ~8 N% J- ]3 G4 D(2) 命令举例
3 r+ t: l2 a! Y* u7 u[root@ceph-deploy ~]# ceph osd pool delete rbd-pool rbd-pool --yes-i-really-really-mean-it
9 W/ o5 w5 `+ x% @- V! |/ q, N  x6 ?- x* i$ J1 ~0 D; Q5 Q7 B
报错:
+ G3 Z. A1 d% l$ G! ~Error EPERM: pool deletion is disabled; you must first set the mon_allow_pool_delete config option to true before0 g  U# G9 C) V+ `
you can destroy a pool: T; {. M% l: `% ?, W& R
解决办法:
3 z* }! R3 Y9 m( \5 I8 [: b9 v1) 在 ceph-deploy 节点修改 ceph.conf 配置文件% O6 ?/ a0 @# e0 Y1 i5 l
[root@ceph-deploy ~]# cd /root/my-cluster/" ]& d  V3 Y- D$ F, F
[root@ceph-deploy my-cluster]# cat >> ceph.conf << EOF
% T4 u  v+ t* l4 D  ^8 v0 w3 O[mon]
2 K# Z; M1 y8 b0 _% Z, F5 A7 nmon_allow_pool_delete = true
# h' {* a3 L# hEOF9 m( k' V/ P- H1 R3 j5 y

+ y4 B# p" `" G$ [* l& {9 C9 p& p2) 推送修改的 ceph.conf 文件到所有节点(覆盖旧的/etc/ceph/ceph.conf)
2 y. v. J8 m. X# T[root@ceph-deploy my-cluster]# ceph-deploy --overwrite-conf config push ceph-deploy ceph-node01 ceph-node02 \
( Z& t! O4 e: P( Y$ |3 \ceph-node034 g2 F, F. s( T, ]! }/ c) F
# ^& Z8 `0 T. E! Y5 q8 N! x
3) 在安装 ceph-mon 服务的节点上重启 ceph-mon 服务, y% }3 g) M. k- |
# 在ceph-node01、ceph-node02、ceph-node03节点上操作+ h4 C6 m/ Z$ S# b8 t/ f
# systemctl restart ceph-mon.target$ b& T- B2 C8 N" a+ F! u
1 B; Z& k0 `" L7 I1 C
4) 查看 ceph-mon 状态- u+ q% r) N2 r4 B* R
[root@ceph-deploy my-cluster]# ceph mon stat7 m* B* ]* n- e. N: l
e1: 3 mons at {0 E7 O5 G! y% H4 C9 E
ceph-node01=[v2:172.16.1.31:3300/0,v1:172.16.1.31:6789/0],
6 p! e  H! X0 a3 ?. bceph-node02=[v2:172.16.1.32:3300/0,v1:172.16.1.32:6789/0],5 [: f& l3 k1 p+ x% j" [
ceph-node03=[v2:172.16.1.33:3300/0,v1:172.16.1.33:6789/0]8 l: B: |1 c" Z/ q6 p
}, election epoch 34, leader 0 ceph-node01, quorum 0,1,2 ceph-node01,ceph-node02,ceph-node03% g8 n3 V4 Z1 E1 n2 t6 _5 `$ ?: H

5 y* ^( |6 G3 |+ o9 r& B5) 删除指定存储池成功' }2 [; `; g; `$ d8 l
[root@ceph-deploy my-cluster]# ceph osd pool delete rbd-pool rbd-pool --yes-i-really-really-mean-it4 ]* `9 h( L, F, _8 S3 `5 G9 ^
pool 'rbd-pool' removed6.5 重命名存储池(1) 命令格式
- X# x" E/ G, R; [2 {# ceph osd pool rename {current-pool-name} {new-pool-name}0 i/ F; n* ~; x

$ B& v8 l/ [1 w1 U- A: F+ E(2) 命令举例4 ~+ B& @4 G$ Q, D1 P
[root@ceph-deploy ~]# ceph osd pool rename cephfs_data cephfs_data_lc
6 [" X' [% ?* L* B$ D[root@ceph-deploy ~]# ceph osd pool rename cephfs_metadata cephfs_metadata_lc& e+ r; ?  W( E/ C" y! @
[root@ceph-deploy ~]# ceph osd lspools
( k; X/ ]7 K, }2 c1 device_health_metrics) I7 U+ J$ M7 O# ]$ U
2 cephfs_data_lc1 M1 M, a  ^4 @$ T
3 cephfs_metadata_lc/ F3 |( k% D  B% N/ C- o
[root@ceph-deploy ~]# ceph fs ls2 W' r* {* c; L3 u
name: cephfs, metadata pool: cephfs_metadata_lc, data pools: [cephfs_data_lc ]6.6 查看存储池统计信息# 显示整个集群的所有磁盘利用率信息,包含池信息% @$ E: K$ J% z) f# m8 O
[root@ceph-deploy ~]# ceph df
! a9 ~5 d' }" B--- RAW STORAGE ---
5 p* Q6 o0 m, p7 H7 v9 cCLASS SIZE     AVAIL   USED     RAW USED %RAW USED
0 A2 s  g% Z9 ^9 g* Nhdd   120 GiB 110 GiB 3.8 GiB   9.8 GiB       8.18
% e: j6 n/ P. N% J# [* e' wTOTAL 120 GiB 110 GiB 3.8 GiB   9.8 GiB       8.18
6 J# H+ l  B+ ?+ C& s& z
9 f. A- D0 v* `# _--- POOLS ---
9 w5 E1 _, r' y; Y( \, W, \POOL                   ID PGS STORED   OBJECTS USED     %USED MAX AVAIL/ r- w+ z9 R/ x
device_health_metrics   1   1     0 B       0     0 B     0     34 GiB5 @- X& N3 k+ Q- `3 _
cephfs_data_lc         2   64 1.2 GiB     302 3.5 GiB   3.30     34 GiB# o$ n; m! }! \( d* d) I, I  I
cephfs_metadata_lc     3   16 263 KiB       23 2.3 MiB     0     34 GiB- M& w4 m8 J% n/ y, t
! J# `$ E- P6 Z% X
# 显示池的利用率统计信息- h1 J9 y6 i8 x: R% C+ p$ X  M
[root@ceph-deploy ~]# rados df
图示:[color=var(--theme-color)]
6.7 给存储池做快照(1) 命令格式- r' q/ k+ y! G" |1 J
# ceph osd pool mksnap {pool-name} {snap-name}8 i( T5 x, G3 V* r

) C; r8 f! l8 z; J2 A3 c( v2 |(2) 命令举例3 M* Z0 ?  E" V! j/ Q* B
[root@ceph-deploy ~]# ceph osd pool mksnap cephfs_data_lc cephfs_data_lc_snap' ~6 b( _& F# J. c0 t0 z' l
[root@ceph-deploy ~]# ceph osd dump | grep cephfs_data_lc
' N6 B- l  y- n% F0 R5 e1 N[root@ceph-deploy ~]# rados lssnap -p cephfs_data_lc1 u# ]& b) u6 K9 K+ ~
1cephfs_data_lc_snap2021.12.22 14:01:15
* e/ n9 ^6 b+ ?6 [5 V
1 snaps6.8 删除存储池的快照(1) 命令格式
; j4 B( t$ t! P* A( ~# ceph osd pool rmsnap {pool-name} {snap-name}# L' v; k4 d4 E/ n  Z/ Y3 S1 H

$ b8 D7 K9 g" Y  u(2) 命令举例
/ m$ Y( k# F% d[root@ceph-deploy ~]# ceph osd pool rmsnap cephfs_data_lc cephfs_data_lc_snap
3 @5 |+ t& o1 h7 r1 sremoved pool cephfs_data_lc snap cephfs_data_lc_snap
: ?" I( {6 t- }/ Y$ f! k9 u# v! q[root@ceph-deploy ~]# rados lssnap -p cephfs_data_lc, [& q6 \+ [! r: h* O. c5 p
0 snaps6.9 获取存储池选项值(1) 命令格式
8 r% U) _- k' f2 f6 q' \. k# a# ceph osd pool get {pool-name} {key}
* g. b( O& v0 W3 `' r" {+ f, U- S6 ^$ ?7 p4 R
(2) 命令举例
; l+ H: E; m/ O1 u# X1 i# 查看可以使用的 key* }5 J  F3 e( g; H; Z9 T& A
[root@ceph-deploy ~]# ceph osd pool get cephfs_data_lc ?
( C) _% p( v/ X# 查看存储池的副本数! N5 _% X: ~2 Z, z5 X% o$ D
[root@ceph-deploy ~]# ceph osd pool get cephfs_data_lc size4 X- I& P  K( k' I% _
size: 3! |1 B2 z( r+ Q8 T6 Y- W& W  |8 k
[root@ceph-deploy ~]# ceph osd dump | grep 'replicated size'6.10 调整存储池选项值(1) 命令格式
; E, e. p2 R* k7 L$ n6 O# ceph osd pool set {pool-name} {key} {value}
3 H0 ?2 e- z& T: |0 H  a( R5 E0 Fsize       # 设置存储池中的对象副本数,详情参见设置对象副本数,仅适用于副本存储池。
3 _# B  |! @. p: r* Z+ i1 Umin_size   # 设置 I/O 需要的最小副本数,详情参见设置对象副本数,仅适用于副本存储池。0 A; I- o2 y2 r: ]" ?, f
pg_num     # 计算数据分布时的有效 PG 数,只能大于当前 PG 数。
9 e% j2 z3 ]; a$ z) kpgp_num   # 计算数据分布时使用的有效 PGP 数量,小于等于存储池的 PG 数。% B! E# `  k; E* B
hashpspool # 给指定存储池设置/取消 HASHPSPOOL 标志。
1 @* _6 t" B" W6 c6 atarget_max_bytes     # 达到 max_bytes 阀值时会触发 Ceph 冲洗或驱逐对象。
8 }% t3 Q9 g7 Rtarget_max_objects   # 达到 max_objects 阀值时会触发 Ceph 冲洗或驱逐对象。& z3 x/ d  l' V1 c6 @
scrub_min_interval   # 在负载低时,洗刷存储池的最小间隔秒数,如果是 0,就按照配置文件里的 osd_scrub_min_interval 。
  V4 Q' p9 T( q* {! escrub_max_interval   # 不管集群负载如何,都要洗刷存储池的最大间隔秒数,如果是 0,就按照配置文件里的 osd_scrub_max_interval 。0 M+ O) P; p1 R4 [0 r- T; H
deep_scrub_interval # "深度"洗刷存储池的间隔秒数,如果是 0,就按照配置文件里的 osd_deep_scrub_interval 。
1 D, ]4 R2 d0 B9 K
8 b7 H! |1 n7 ?4 e(2) 命令举例(更改存储池的副本数)
' z! `9 k8 B3 c0 o2 j: _# 更改前存储池实际最大可用容量/ ]% ^- F8 D' C( _  I- e( {
[root@ceph-deploy ~]# ceph df! G0 ]% T& X  m0 y
--- RAW STORAGE ---
/ Y& ^* K: q: O" F5 D! Z; rCLASS SIZE     AVAIL   USED     RAW USED %RAW USED
- i* ]5 q9 }' u, F- G( fhdd   120 GiB 110 GiB 3.8 GiB   9.8 GiB       8.181 |9 P# m* U2 B: k, P8 X
TOTAL 120 GiB 110 GiB 3.8 GiB   9.8 GiB       8.18
$ [+ F; i+ i9 M& f7 E0 B# k: X4 e( L0 @
--- POOLS ---
4 b1 X/ u; n1 TPOOL                   ID PGS STORED   OBJECTS USED     %USED MAX AVAIL
! M2 }0 {+ ?! k6 E% w8 M, bdevice_health_metrics   1   1     0 B       0     0 B     0     34 GiB
: L2 e6 E. `1 L) wcephfs_data_lc         2   64 1.2 GiB     302 3.5 GiB   3.30     34 GiB/ W$ w0 |7 a  D* P9 U  m8 d
cephfs_metadata_lc     3   16 263 KiB       23 2.3 MiB     0     34 GiB7 A) n! K- O. m

  P. W+ Q9 `! p6 I# x0 Y# 更改存储池的副本数由 3 变为 2
# v" C2 Q. ^7 N2 A$ G[root@ceph-deploy ~]# ceph osd pool get cephfs_data_lc size0 g8 G5 Q% I+ w. ?& V! x
size: 3
# |' a0 M% x* R[root@ceph-deploy ~]# ceph osd pool set cephfs_data_lc size 2
, A4 t' h+ y/ C* p# h8 @set pool 2 size to 2
+ }( V0 j1 E) ], ~. P[root@ceph-deploy ~]# ceph osd pool get cephfs_data_lc size3 j( k* R' r; P1 ^( n' ^
size: 2, i/ \4 y/ d: {, @! K
0 x. H. Q4 W: q
# 更改后存储池实际最大可用容量8 G* \0 q& A( _7 o4 u+ n% z8 t
[root@ceph-deploy ~]# ceph df& g7 s/ X/ l0 I7 }* k
--- RAW STORAGE ---
) s3 l' F4 G1 G8 U% f$ ICLASS SIZE     AVAIL   USED     RAW USED %RAW USED" q$ t1 [# c9 r! [! z+ O0 _
hdd   120 GiB 111 GiB 2.6 GiB   8.6 GiB       7.20( a  F. o$ m. l  q
TOTAL 120 GiB 111 GiB 2.6 GiB   8.6 GiB       7.20/ I$ K% {; S; A1 v7 ?4 V

3 u/ j7 l- w5 |1 e- Q& V) H--- POOLS ---
3 n0 v* Y% C7 }$ z" W3 pPOOL                   ID PGS STORED   OBJECTS USED     %USED MAX AVAIL
; M! \' _9 C& [( F# D9 m: _device_health_metrics   1   1     0 B       0     0 B     0     35 GiB
2 @& ]4 Z! ?# K9 O5 ]" xcephfs_data_lc         2   64 1.2 GiB     302 2.3 GiB   2.21     52 GiB- \6 H6 u# \/ H$ l
cephfs_metadata_lc     3   16 263 KiB       23 2.3 MiB     0     35 GiB
1 V( x" u& d+ r- A- K; L/ V' k; f7 R' h" A; e
注:
4 ?! c. Y( e: q! L, a: e, E9 R$ ecephfs_data_lc 存储池的实际可用容量由 34GiB(总容量 120GiB 减去集群占用容量后除以 3 副本数) 变为 52GiB(总容量 120GiB 减去集3 I/ E% i6 }3 ^8 q
群占用容量后除以 2 副本数),自己手动计算的结果和 ceph 集群计算的结果相差不多。多个存储池对 ceph 集群存储容量是共享的。6.11 pool快照的使用(1) 将测试文件导入至存储池中,并指定一个新的 object 名字4 s' G3 O5 `5 H/ t3 c( d+ J
# 格式( F, X5 i( ]$ _7 t6 C- O! C% v9 k
# rados -p {pool-name} put {object-name} {file-name}% o6 U, A- T& r; d4 [) r
[root@ceph-deploy ~]# rados -p cephfs_data_lc put testobject /etc/hosts+ G' I3 A; y# E$ F( q. Y5 ]
+ M8 Q" L+ |/ T5 ~7 Q" E
(2) 查看 pool 中的 object 文件6 |* o: G# ~3 t3 A" w& S9 k
[root@ceph-deploy ~]# rados -p cephfs_data_lc ls | grep 'testobject'/ {! A7 u% c. _: v: C
testobject
  s4 s, T% z( c' g* I
- l2 b' y& @6 E7 b(3) 创建 pool 快照
, m/ ^7 {; g& @* S# h[root@ceph-deploy ~]# ceph osd pool mksnap cephfs_data_lc cephfs_data_lc_snap! e* H9 N) |% {2 Q9 W; {2 L
created pool cephfs_data_lc snap cephfs_data_lc_snap
. v% Y* Z' y/ @& }  }* u+ F; V# v8 C
(4) 查看 pool 快照
# E; o+ D  v8 ?# H5 f# k% z[root@ceph-deploy ~]# rados lssnap -p cephfs_data_lc
5 N3 R& U  [; `- G3cephfs_data_lc_snap2021.12.22 15:57:05
- C7 a$ W  S# [, B, M7 T1 snaps/ O$ ?/ \3 j& z) ^

* w! Y7 y( F4 q" @6 h( P# [(5) 删除 object 对象
/ b% w8 {& c6 u& J* n[root@ceph-deploy ~]# rados -p cephfs_data_lc rm testobject. ~( m1 @4 T  `1 U; x  K& W
+ p) S7 ]) A! ^$ S4 c  Y; l
(6) 再次查看 pool 下的对象
! t+ @: {. y0 L, ~8 O[root@ceph-deploy ~]# rados -p cephfs_data_lc ls | grep 'testobject'
! x: P) b8 |9 V1 F6 a2 utestobject
) {2 [7 R, @: X4 x6 |/ F7 e% L+ p
; B; u  l- ?) }) _: \[root@ceph-deploy ~]# rados -p cephfs_data_lc rm testobject
+ E2 Y9 q  L& n# f" zerror removing cephfs_data_lc>testobject: (2) No such file or directory3 b' o0 J' D5 `! p/ s. V
$ x, o1 ^# E. x8 D
注:
2 y9 j; X# ?' B$ `根据上面输出可以看出,虽然确实已经删除对象文件,但是这个池中还是有这个 object 文件存在,实际上已经不再占存储空间
  L2 `) g$ d; \" N4 Z2 |9 c4 D了,相当于是一个缓存的输出,主要原因是被打了快照的对象文件在快照被删除之前被删除了,即使后面快照被删除后还会存在。
3 {3 f6 K5 ^' w# u+ g: D5 x1 A
) Z5 r8 r( z. ^(7) 指定 pool 快照中的对象文件进行回滚/ A- B( ^8 I: `  R$ U
[root@ceph-deploy ~]# rados rollback -p cephfs_data_lc testobject cephfs_data_lc_snap3 _, K% k2 L4 c+ [. ~) Z3 k" ]2 }3 f
rolled back pool cephfs_data_lc to snapshot cephfs_data_lc_snap7 T5 c& e# |- ~/ O7 r8 M. s) m( Q

. ~' a$ r  h4 a0 N7 W[root@ceph-deploy ~]# rados -p cephfs_data_lc ls | grep 'testobject', A2 ?* f, _0 S7 E$ `
testobject* m3 b( R! }0 x# D8 d' F
" u& L7 O7 q$ Z" L" z) I
注:
0 ~7 z- s: N# l8 N根据 ls 输出显示看不出什么,所以我们来再删除测试一下
8 N! i# z% i9 e7 p" q) c) g! S6 r- E
(8) 删除 object 测试
/ ^7 e/ Z. u9 z4 o3 I[root@ceph-deploy ~]# rados -p cephfs_data_lc rm testobject9 F5 c  C0 w/ w/ V/ @! O
[root@ceph-deploy ~]#
: i: [  i5 Q7 ]
9 ?3 }$ V/ \$ U( ~  R; d! Q注:
  M, n* Q# n9 z可见已经可以正常删除,即代表文件通过快照已恢复,代表快照回滚恢复功能正常,到这里快照测试也就结束了/ t& C# u7 R4 z/ r
8 ]& A$ r" ?( ]. z+ @4 h. d, u
(9) 删除快照
- v3 N+ F9 E0 F* f. V) p& n  d7 u[root@ceph-deploy ~]# ceph osd pool rmsnap cephfs_data_lc cephfs_data_lc_snap
; @$ ]$ _6 D/ Lremoved pool cephfs_data_lc snap cephfs_data_lc_snap
/ b8 i! c+ T" r: s5 w: B
3 x6 T9 c0 p6 t( x4 J: ^- c& @' J[root@ceph-deploy ~]# rados lssnap -p cephfs_data_lc
5 C6 D; m5 j1 U$ x  H- v. @9 l2 _0 snaps
  J5 r1 S. V  s  w$ Z
! l4 j. Q: H+ I[root@ceph-deploy ~]# rados -p cephfs_data_lc ls | grep 'testobject'  p3 j1 q( ?( n, O) z
testobject' f  [$ ^. S0 b' O5 z0 J

" ?& ]3 l! l3 `+ l6 |* f# P[root@ceph-deploy ~]# rados -p cephfs_data_lc rm testobject
1 ?5 ?7 @- f; }9 m& Aerror removing cephfs_data_lc>testobject: (2) No such file or directory! i( X; r6 D9 F+ w  H: L
& s' c! a' Z7 _5 |! |0 t( i: m
(10) 结论
2 i* p0 a. g* Z) Y4 {1) Pool 池的快照相对来说是有局限性的,没办法直接恢复快照里边全部 object 对象文件,只能一个个来恢复,这样的设计效果可能是因为如
( U  @# L( Q4 j$ C$ {: r/ x7 I) W果 pool 池直接整体恢复,会导致整个 ceph 集群数据混乱,毕竟集群中数据是分布式存放的。
6 s, ~6 \, e  _2) ceph 支持对整个 pool 创建快照,作用于这个 pool 的所有对象。& W8 @  k  e6 s! n8 V
3) ceph 有两种 pool 模式1 z) a- a" Z  Z, h8 X/ s% v* e
Pool Snapshot,创建一个新的pool时,默认也是这种模式。, ~: R8 H0 [  I/ p. s8 P( W  |% K
Self Managed Snapsoht,用户管理的 snapshot,这个用户指的是 librbd,也就是说如果在 pool 中创建了 rbd 实例就自动转化为这种模式。
7 f% R# X# @5 H$ e# R( r* F) l: s注意: 这两种模式是相互排斥,只能使用其中一个,因此,如果 pool 中曾经创建了 rbd 对象(即使当前删除了所有的image实例)就不能再对这个; D* K+ j& ~& }9 E9 i% n
pool 做快照了,反之,如果对一个 pool 做了快照,就不能创建 rbd image 了。7 用户管理[color=var(--theme-color)]#
Ceph 把数据以对象的形式存于各存储池中。Ceph 用户必须具有访问存储池的权限才能够读写数据。另外,Ceph 用户必须具有执行权限才能够使用 Ceph 的管理命令。
7.1 查看用户信息1 查看所有用户信息
2 H0 \% m* u' L, i8 D[root@ceph-deploy ~]# ceph auth list. p. ~- k6 i8 ^7 u
; x9 l4 I  j# O& w
2 获取所有用户的key与权限相关信息% R8 P6 @1 ^% C' a
[root@ceph-deploy ~]# ceph auth get client.admin" N. ~6 z. Q' K9 Q, h9 a
exported keyring for client.admin, F0 ~6 h5 t9 L2 d
[client.admin]# W! {: |, W$ C% I4 m, ~, N( p2 |
key = AQArL5JhBEiAKRAAymBtomUPKP6M/BSI17oXyg==! C$ H6 m) M7 `3 Q/ I4 R& g* w
caps mds = "allow *"
/ G# w1 E2 o7 K8 @4 gcaps mgr = "allow *"; v" \' a. h) O9 F" z* a) A
caps mon = "allow *"& a7 m% f0 g+ K0 T9 k. V! n
caps osd = "allow *"
: r( e7 _" v8 o  [
4 L0 i1 ?% _9 f3 g3 W3 如果只需要某个用户的key信息,可以使用pring-key子命令0 @. G0 W# W, ~. M
[root@ceph-deploy ~]# ceph auth print-key client.admin
! V8 O+ P. N' H( V
AQArL5JhBEiAKRAAymBtomUPKP6M/BSI17oXyg==7.2 添加用户# ceph auth add client.john mon 'allow r' osd 'allow rw pool=liverpool'
9 `7 ^( y  M3 q- f; P8 t# ceph auth get-or-create client.paul mon 'allow r' osd 'allow rw pool=liverpool'
$ p. U& k- m. ?1 Q/ L5 w4 ~7 o6 e# ceph auth get-or-create client.george mon 'allow r' osd 'allow rw pool=liverpool' -o george.keyring  Y. X" h& A) O# U0 [) c2 y
# ceph auth get-or-create-key client.ringo mon 'allow r' osd 'allow rw pool=liverpool' -o ringo.key7.3 修改用户权限# ceph auth caps client.john mon 'allow r' osd 'allow rw pool=liverpool'* z: V6 t' d: \7 l, q
# ceph auth caps client.paul mon 'allow rw' osd 'allow rwx pool=liverpool'
* \* V1 z& \; h  |; k# ceph auth caps client.brian-manager mon 'allow *' osd 'allow *'0 E' m" T; I1 T/ H1 S0 V
# ceph auth caps client.ringo mon ' ' osd ' '7.4 删除用户# ceph auth del {TYPE}.{ID}( _. T! i( o. Y! ]! ^/ D
说明: 其中,{TYPE} 是 client,osd,mon 或 mds 的其中一种。{ID} 是用户的名字或守护进程的 ID。* F: a; s0 f' b3 p, t3 d
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-11 23:03 , Processed in 0.022632 second(s), 23 queries .

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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