找回密码
 注册
查看: 517|回复: 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 都有 pool6 _; i. k& D( }' ~; ~
的概念,只是叫法不同。每个 pool 包含一定数量的 PG,PG 里的对象被映射到不同的OSD上,因此 pool 是分布到整个集群的。除了隔离数据,我们2 y2 V0 b9 H  K" w7 m9 B
也可以分别对不同的 POOL 设置不同的优化策略,比如副本数、数据清洗次数、数据块及对象大小等。# t, \: E2 \3 E4 q2 Z# p' U7 V

- y9 n" W' M: O% O; D/ u" v) t(2) pg_num 和 pgp_num
  K/ b4 c: U7 N. f+ H7 h; F1) 创建 pool 操作: ceph osd create pool ${pool-name} ${pg_num} ${pgp_num}$ ^, j. h4 [% Z) k3 @
2) 这里强制选择 pg_num 和 pgp_num,因为 ceph 集群不能自动计算 pg 数量。( w: U  A) U4 {' ]; Q
3) 官方建议的 pg 使用数量6 u' \. Y; o: V' e8 [! h+ w; E% I
小于 5 个 osd 设置 pg_num 为 128
( W3 U. i' A* ]% L* m" i- c5 到 10 个 osd 设置 pg_num 为 512) S( w6 _( J' n7 x! U
10 到 50 个 osd 设置 pg_num 为 1024
* G. T' R0 U; r如果超过 50 个 osd 你需要自己明白权衡点,并且能自行计算 pg_num 的数量,pg_num 通用计算方法如下:
. m7 Q& b% u# ~4 b9 s7 R, u             (OSDs * 100)
- H: @' R$ H. P' Q( tTotal PGs = ------------  ~. v. v) ^* o/ F: D- ^) M, A
            pool size% L: m/ x4 [5 F! p! D/ [$ p- M$ A6 w
            
8 D9 c! e( Q( V$ r例如: 60 个 osd,3 个副本" K9 q; Z2 R/ o: @2 l+ o& p9 v% l8 h4 Y- \
(60 * 100): [) L' @' q  c7 r  ?9 ~
----------- = 2000' M; U+ ~& Q. |, Z9 f
   3$ \. r$ v4 l, U) Z: [7 z

/ M+ O& K' T% f8 H! _, ^; ]
2^11 > 2000 < 2^10,所以 60 个 osd,副本数为 3 时,pg_num 设置为 2048,pgp_num 默认和 pg_num 保持一致。6.1 列出存储池[root@ceph-deploy ~]# ceph osd lspools3 O% v" t5 Z0 ]5 m/ k" m7 ]: Y/ `
1 device_health_metrics; \% x$ d) b$ Q; Q" e
2 cephfs_data) N" ^1 e1 `$ I, O- n4 c' Q$ p
3 cephfs_metadata6.2 创建存储池(1) 命令格式+ X# x- C; s6 w" O3 }, Y9 ^
# ceph osd pool create {pool-name} {pg-num} [{pgp-num}]  O6 f: B+ u+ W0 D

  F, X7 U0 q) M2 O/ z* d4 h0 E0 e(2) 命令举例: |- m, T) L. B; f; C
[root@ceph-deploy ~]# ceph osd pool create rbd-pool 64 648 v/ D+ r8 }% N, t- b
[root@ceph-deploy ~]# ceph osd lspools
: B9 I+ h3 l# C2 u4 j1 device_health_metrics8 F; P! d9 R, ?; c0 h
2 cephfs_data
0 h! C9 A0 H& w' q; p+ t  x9 E3 cephfs_metadata
. s  i- E& ?2 B; a' A  V4 D
4 rbd-pool6.3 设置存储池配额(1) 命令格式6 v5 f5 T+ s" r4 Z% B7 G1 j9 z! i
# ceph osd pool set-quota {pool-name} [max_objects {obj-count}] [max_bytes {bytes}]# m  g# f0 p$ T+ x+ \! K8 B

, B7 P: d' [) ?& B(2) 命令举例
" H. @1 K) s: z[root@ceph-deploy ~]# ceph osd pool set-quota rbd-pool max_objects 10000
8 G  v; R  }3 C* a[root@ceph-deploy ~]# ceph osd dump | grep rbd-pool: t' Y6 y: j* k; d
pool 4 'rbd-pool' replicated size 3 min_size 2 crush_rule 0 object_hash rjenkins pg_num 64 pgp_num 64
2 v% P  D. }) j. |9 M; k2 V. D0 j* ~
autoscale_mode on last_change 378 flags hashpspool max_objects 10000 stripe_width 06.4 删除存储池(1) 命令格式& y2 b: |' n/ s6 N
# ceph osd pool delete {pool-name} [{pool-name} --yes-i-really-really-mean-it]" v/ ^0 w% ]5 T
$ D) C9 `1 y0 _$ _: q' p
(2) 命令举例" [, H9 l; H3 k- `2 z* N1 Q6 F9 f
[root@ceph-deploy ~]# ceph osd pool delete rbd-pool rbd-pool --yes-i-really-really-mean-it
" r* m! q, j" r2 N3 X. m
. Z6 K' M6 b0 q9 L报错:  i( U" s: i$ O. d/ d
Error EPERM: pool deletion is disabled; you must first set the mon_allow_pool_delete config option to true before* U" t! W$ b. |9 [2 P4 m+ i
you can destroy a pool$ U4 z! b* H6 H% u
解决办法:
: P% B2 G+ D# R# V1 d/ V" R% [% ]1) 在 ceph-deploy 节点修改 ceph.conf 配置文件
! ?) Y$ F! l' ]6 s; q: l& J[root@ceph-deploy ~]# cd /root/my-cluster/
# w, v3 ~% V1 Z0 Q$ N3 X[root@ceph-deploy my-cluster]# cat >> ceph.conf << EOF" W& U  k* x+ D8 t7 f, `
[mon]5 ~& i6 A- e- [# ~# G2 T8 o& D5 b" _
mon_allow_pool_delete = true% u* Z/ M9 r( U; i3 w
EOF- V7 r4 Y1 u6 \3 s- f1 c

% x  Y+ S- e4 ~8 G4 Y& n( {2) 推送修改的 ceph.conf 文件到所有节点(覆盖旧的/etc/ceph/ceph.conf)
* `2 f4 J- w; O, r[root@ceph-deploy my-cluster]# ceph-deploy --overwrite-conf config push ceph-deploy ceph-node01 ceph-node02 \
* v6 `9 C0 L" I% t& S+ Kceph-node03
' L2 s/ b/ R' S' A
, x9 `; L8 p) q9 n' i7 z4 T9 x8 D: m3) 在安装 ceph-mon 服务的节点上重启 ceph-mon 服务
" a$ L4 N) c7 q' K# t" ?; k# 在ceph-node01、ceph-node02、ceph-node03节点上操作
2 {. `. x" a$ m6 d: e: I# systemctl restart ceph-mon.target
2 w3 s0 K$ V& T5 ^% Z+ Z4 K+ ]  I. A
4) 查看 ceph-mon 状态+ I+ k$ h) l$ Y: R; q
[root@ceph-deploy my-cluster]# ceph mon stat  c+ j" D. w. e) \- d6 L
e1: 3 mons at {5 X& s$ R9 |/ x1 t
ceph-node01=[v2:172.16.1.31:3300/0,v1:172.16.1.31:6789/0],
# @6 `2 p8 G! w& U2 Fceph-node02=[v2:172.16.1.32:3300/0,v1:172.16.1.32:6789/0],
' c! K* B7 i- G. K/ i( P9 Aceph-node03=[v2:172.16.1.33:3300/0,v1:172.16.1.33:6789/0]
* A8 b+ d4 C5 ]& l: a7 l}, election epoch 34, leader 0 ceph-node01, quorum 0,1,2 ceph-node01,ceph-node02,ceph-node03. Q, ~1 _* J6 p0 M! n$ p* j
7 w& B( L% d4 K( T9 o  _. _( P
5) 删除指定存储池成功+ T" {! [. P! e$ V' U) E8 l; E$ z
[root@ceph-deploy my-cluster]# ceph osd pool delete rbd-pool rbd-pool --yes-i-really-really-mean-it
( X3 x% A2 a. P# H, L
pool 'rbd-pool' removed6.5 重命名存储池(1) 命令格式
% _5 G: S6 b8 K/ }$ t; I4 m# ceph osd pool rename {current-pool-name} {new-pool-name}, h8 c/ K. |6 r0 w" R
* @8 p! d0 [1 D  j5 w# s# o
(2) 命令举例; _# l6 b) C" Z* m0 ?
[root@ceph-deploy ~]# ceph osd pool rename cephfs_data cephfs_data_lc% h8 p/ S" A0 B% V2 S- P
[root@ceph-deploy ~]# ceph osd pool rename cephfs_metadata cephfs_metadata_lc
  |7 g+ F; f+ J# S) w( G) {5 z[root@ceph-deploy ~]# ceph osd lspools
# A' l7 B0 ?; E1 device_health_metrics
# Q* f7 S! Y' g1 @4 l" B2 cephfs_data_lc
8 O+ w0 r3 x( E- k. l$ `. }9 ~5 @3 cephfs_metadata_lc
) q! B( i8 R, h: ][root@ceph-deploy ~]# ceph fs ls8 b( C8 Q* \0 `
name: cephfs, metadata pool: cephfs_metadata_lc, data pools: [cephfs_data_lc ]6.6 查看存储池统计信息# 显示整个集群的所有磁盘利用率信息,包含池信息/ U1 r* Y5 L: p% z/ f3 p6 N
[root@ceph-deploy ~]# ceph df9 \4 X1 h; p: V6 G! I
--- RAW STORAGE ---0 ^: V! l4 g' g; X! }
CLASS SIZE     AVAIL   USED     RAW USED %RAW USED
/ `. O  l# o4 @2 R. M. bhdd   120 GiB 110 GiB 3.8 GiB   9.8 GiB       8.18
! J$ {# c$ ?3 K; JTOTAL 120 GiB 110 GiB 3.8 GiB   9.8 GiB       8.18
9 ?2 A$ e0 Y5 O3 D  Q3 `
3 n+ Y2 U" |) Z% Z5 b0 y$ v) x, @--- POOLS ---
! f7 W( U0 G( R$ d" Z$ n1 m9 WPOOL                   ID PGS STORED   OBJECTS USED     %USED MAX AVAIL3 i. S; h' u3 X* v( g, l% @$ g
device_health_metrics   1   1     0 B       0     0 B     0     34 GiB
4 b2 f" ]9 X4 x2 _' ecephfs_data_lc         2   64 1.2 GiB     302 3.5 GiB   3.30     34 GiB
, M4 V4 y# J+ L. o; N2 Zcephfs_metadata_lc     3   16 263 KiB       23 2.3 MiB     0     34 GiB1 c% \; a$ I8 m$ n7 b! j
% K6 T! o9 ^% M% ]
# 显示池的利用率统计信息
4 ^" U/ f1 s3 X! A
[root@ceph-deploy ~]# rados df
图示:[color=var(--theme-color)]
6.7 给存储池做快照(1) 命令格式
% v+ i. q/ y  Y6 ~) c# g3 i5 ?/ s8 y# ceph osd pool mksnap {pool-name} {snap-name}
* @; S0 }! k# X5 z" R' H( g  V! ]. v* n
(2) 命令举例
6 g! z8 p' n  ?* Z, _$ E2 x( r[root@ceph-deploy ~]# ceph osd pool mksnap cephfs_data_lc cephfs_data_lc_snap, T, R3 E4 ~3 f3 Z1 {
[root@ceph-deploy ~]# ceph osd dump | grep cephfs_data_lc
2 o9 U3 a# r" r[root@ceph-deploy ~]# rados lssnap -p cephfs_data_lc7 s9 p; _  }4 l; a. ]- a
1cephfs_data_lc_snap2021.12.22 14:01:15
( b, d0 o0 C' U+ O1 n
1 snaps6.8 删除存储池的快照(1) 命令格式, Q8 L5 {: b0 Y1 B* B, h1 O& Q7 O+ U
# ceph osd pool rmsnap {pool-name} {snap-name}
% p7 l, Z  Z2 {! m$ u7 j4 n$ Z4 e7 g3 T6 E- q
(2) 命令举例
0 z) ~4 g4 T7 c1 V, S" ~[root@ceph-deploy ~]# ceph osd pool rmsnap cephfs_data_lc cephfs_data_lc_snap
" D  h% v5 n  g( q6 b; K$ ?7 }! Z, Aremoved pool cephfs_data_lc snap cephfs_data_lc_snap/ ?% M0 _) o+ _: Z2 u% M& }0 ^
[root@ceph-deploy ~]# rados lssnap -p cephfs_data_lc
6 T/ t8 E) p. J
0 snaps6.9 获取存储池选项值(1) 命令格式+ g- |+ p) f" ~. m3 R% a: J
# ceph osd pool get {pool-name} {key}! e# r- n; Z& \5 O4 q* z& b9 m
, q$ D# r, A6 k* W1 q) Y
(2) 命令举例
4 G& O8 K' ?/ X# 查看可以使用的 key
% ]: F) ]* O/ S, @3 i+ g[root@ceph-deploy ~]# ceph osd pool get cephfs_data_lc ?" Q' j4 ]$ G3 d6 e% b
# 查看存储池的副本数
* w9 ~- r% B) L' ~[root@ceph-deploy ~]# ceph osd pool get cephfs_data_lc size) q+ u3 Q( X0 @7 w: I' t
size: 33 |# H% t! k8 B
[root@ceph-deploy ~]# ceph osd dump | grep 'replicated size'6.10 调整存储池选项值(1) 命令格式2 I5 e7 ], ~" R& g$ l
# ceph osd pool set {pool-name} {key} {value}
' v. n7 l  o1 X0 K* p( psize       # 设置存储池中的对象副本数,详情参见设置对象副本数,仅适用于副本存储池。
2 q! `" o* d) _min_size   # 设置 I/O 需要的最小副本数,详情参见设置对象副本数,仅适用于副本存储池。
' m) x% ]8 g* ]% qpg_num     # 计算数据分布时的有效 PG 数,只能大于当前 PG 数。
% b7 o4 t. E$ ?$ G$ @pgp_num   # 计算数据分布时使用的有效 PGP 数量,小于等于存储池的 PG 数。
; X6 V  z; r$ t0 W( x0 n8 C* Qhashpspool # 给指定存储池设置/取消 HASHPSPOOL 标志。
. Q. |* g8 v2 d9 w/ {3 Y! J& Ftarget_max_bytes     # 达到 max_bytes 阀值时会触发 Ceph 冲洗或驱逐对象。
8 k% S7 r4 n8 j/ M1 Ptarget_max_objects   # 达到 max_objects 阀值时会触发 Ceph 冲洗或驱逐对象。
3 C, L# n& m* _2 P1 `; P5 ], hscrub_min_interval   # 在负载低时,洗刷存储池的最小间隔秒数,如果是 0,就按照配置文件里的 osd_scrub_min_interval 。1 n; U2 B- _, i" f: j- c; b. w0 N
scrub_max_interval   # 不管集群负载如何,都要洗刷存储池的最大间隔秒数,如果是 0,就按照配置文件里的 osd_scrub_max_interval 。
4 w/ r! P( b3 e$ r' p# B" f, I( Ldeep_scrub_interval # "深度"洗刷存储池的间隔秒数,如果是 0,就按照配置文件里的 osd_deep_scrub_interval 。
1 p: R7 q4 {1 ?
# c9 i$ ?; s$ Z; Y. X(2) 命令举例(更改存储池的副本数)
, [6 m2 d% L5 h1 l! E4 |( l- R# 更改前存储池实际最大可用容量* M: a! ?( e# h6 w0 m( l1 X
[root@ceph-deploy ~]# ceph df
3 K4 V; l9 T& S4 ?! m0 W--- RAW STORAGE ---9 _0 R" A8 K7 \( T% g
CLASS SIZE     AVAIL   USED     RAW USED %RAW USED
) J0 g& w& H  G2 G& ~hdd   120 GiB 110 GiB 3.8 GiB   9.8 GiB       8.189 w# }9 V% \8 `  ]5 C
TOTAL 120 GiB 110 GiB 3.8 GiB   9.8 GiB       8.18
8 |& t* n# x8 y5 f6 X- r% y
0 p/ f; D7 l6 N  J2 m% A3 |--- POOLS ---
6 B  I% P. a7 bPOOL                   ID PGS STORED   OBJECTS USED     %USED MAX AVAIL
! s, E% V  o0 i/ ?+ V& w9 [5 xdevice_health_metrics   1   1     0 B       0     0 B     0     34 GiB
# A( x- t. \# P* Qcephfs_data_lc         2   64 1.2 GiB     302 3.5 GiB   3.30     34 GiB
; E2 p$ C. ?  r0 O. ycephfs_metadata_lc     3   16 263 KiB       23 2.3 MiB     0     34 GiB- ^' U. R' p5 s' y/ H8 s+ ]6 J
% u. \& C4 `1 w
# 更改存储池的副本数由 3 变为 2. W9 @5 }! J0 X
[root@ceph-deploy ~]# ceph osd pool get cephfs_data_lc size
) [8 Q, K* ~* y* s# csize: 3
1 k, {8 x) q# G[root@ceph-deploy ~]# ceph osd pool set cephfs_data_lc size 2% Z7 Y2 n; b/ Z
set pool 2 size to 2
$ t" \- c0 ?5 P3 [# x$ ^[root@ceph-deploy ~]# ceph osd pool get cephfs_data_lc size
4 c4 X( f2 ]4 G5 G( l* Zsize: 2- F) |5 R. e( L
8 `0 T* i4 C8 }6 Y3 T7 a1 O; C
# 更改后存储池实际最大可用容量/ c: i- S1 K& t. y  R# _% C: r
[root@ceph-deploy ~]# ceph df2 v& G9 |9 z: ^
--- RAW STORAGE ---
+ p1 t9 d+ a( Q1 @CLASS SIZE     AVAIL   USED     RAW USED %RAW USED
9 q# D( n7 p* |0 l6 Dhdd   120 GiB 111 GiB 2.6 GiB   8.6 GiB       7.206 O4 ~% G% q8 V  n. v4 d7 C' ^+ y8 n
TOTAL 120 GiB 111 GiB 2.6 GiB   8.6 GiB       7.20
! ^% w! ~9 t  U0 ]  G4 }* G1 \' E; Y
--- POOLS ---# T" T6 S2 i0 ~: w
POOL                   ID PGS STORED   OBJECTS USED     %USED MAX AVAIL
2 z5 E- [5 A& K) _- w; b3 `) p/ cdevice_health_metrics   1   1     0 B       0     0 B     0     35 GiB
+ p* M; L7 O: Q: h. d# A2 N) {cephfs_data_lc         2   64 1.2 GiB     302 2.3 GiB   2.21     52 GiB) K! B6 \( P# [! |
cephfs_metadata_lc     3   16 263 KiB       23 2.3 MiB     0     35 GiB
/ S$ T& E+ a( ]6 p6 G* i: q* ?
4 s* p, [: T0 {. ?+ T注:
5 e5 t6 ~1 i6 h& _$ Icephfs_data_lc 存储池的实际可用容量由 34GiB(总容量 120GiB 减去集群占用容量后除以 3 副本数) 变为 52GiB(总容量 120GiB 减去集
8 K1 @  X. X5 Q$ e3 Q  G
群占用容量后除以 2 副本数),自己手动计算的结果和 ceph 集群计算的结果相差不多。多个存储池对 ceph 集群存储容量是共享的。6.11 pool快照的使用(1) 将测试文件导入至存储池中,并指定一个新的 object 名字# Q7 O7 j- y) @% l" g$ ^2 @
# 格式
( a, \) |( q+ {! K0 `7 a- {# rados -p {pool-name} put {object-name} {file-name}; L! w. X7 D0 @/ n1 S# h5 k5 N% Y
[root@ceph-deploy ~]# rados -p cephfs_data_lc put testobject /etc/hosts$ P1 _5 V) G$ j& l( P8 ^

; {1 {/ ^$ u7 L(2) 查看 pool 中的 object 文件
( ]! j$ o) a- ?[root@ceph-deploy ~]# rados -p cephfs_data_lc ls | grep 'testobject'/ W5 a4 ?5 D- Z" _: c) l
testobject
6 Q. H2 @0 l) c' Y& T3 E3 x( U& c$ a# g3 d2 K% Z; k7 g7 q
(3) 创建 pool 快照( v' u- L4 A4 l
[root@ceph-deploy ~]# ceph osd pool mksnap cephfs_data_lc cephfs_data_lc_snap+ R4 U& [; c( H* Z2 V
created pool cephfs_data_lc snap cephfs_data_lc_snap
+ q5 X9 q4 L/ q1 C$ u1 Z* x/ P# w( ^" X, F: q8 K3 ]
(4) 查看 pool 快照
# d, X! C2 S* q! R1 h- T[root@ceph-deploy ~]# rados lssnap -p cephfs_data_lc& \1 p% b9 ^6 L
3cephfs_data_lc_snap2021.12.22 15:57:05
4 M+ x7 P/ }% y1 snaps
- R, l  s5 ^7 Q  H' q2 B6 N' o3 C9 d* }9 z% k& m# g
(5) 删除 object 对象1 i7 Z+ M4 Z$ q( K* _4 o% i) ?
[root@ceph-deploy ~]# rados -p cephfs_data_lc rm testobject5 T* R- {' i: H9 [  D

! l# D+ J2 Y* g# u2 E6 j(6) 再次查看 pool 下的对象. _) b4 J! n, q: ^/ w
[root@ceph-deploy ~]# rados -p cephfs_data_lc ls | grep 'testobject'* ]# a1 P) k# v
testobject
4 U( ?5 \4 Z( _+ V3 Z# u% _. R2 P. G  o4 j
[root@ceph-deploy ~]# rados -p cephfs_data_lc rm testobject' ~9 f' M0 w3 ]' U
error removing cephfs_data_lc>testobject: (2) No such file or directory
6 `# c/ h- g! T- J1 R) V9 c7 Q. _2 R7 a
注:
0 N7 [( A5 t( u* D根据上面输出可以看出,虽然确实已经删除对象文件,但是这个池中还是有这个 object 文件存在,实际上已经不再占存储空间
( T9 f! W3 z" ]& [3 b- r了,相当于是一个缓存的输出,主要原因是被打了快照的对象文件在快照被删除之前被删除了,即使后面快照被删除后还会存在。
: t6 A5 b8 |0 W2 V" n( H! {9 Y4 i, V2 o
(7) 指定 pool 快照中的对象文件进行回滚
. g4 {1 M: P( ~, N2 D* |" @[root@ceph-deploy ~]# rados rollback -p cephfs_data_lc testobject cephfs_data_lc_snap
& S- k* X' Z% m' d# `( krolled back pool cephfs_data_lc to snapshot cephfs_data_lc_snap9 }! R+ j8 t8 o5 j# N2 [( N
( R$ q9 ~( a7 }& }' b3 `
[root@ceph-deploy ~]# rados -p cephfs_data_lc ls | grep 'testobject'
& y  k8 O% @0 p- J9 \+ ctestobject1 J( |7 x1 W, }

& S- E# \/ S4 ]' m& R2 ^* t注:9 T: D9 U  F$ i& {" ?$ |+ d4 z
根据 ls 输出显示看不出什么,所以我们来再删除测试一下+ o1 g- e% @4 L
  F/ |2 g- _! w9 o
(8) 删除 object 测试4 W1 x' t, s9 a& J' i! }; |
[root@ceph-deploy ~]# rados -p cephfs_data_lc rm testobject' E) C6 X+ b$ H& D! d9 B0 E
[root@ceph-deploy ~]#! F- X2 f* ]2 Q$ i  _8 x
4 o) l) @3 \* w
注:
- ^( k  B! L7 G" L; w( }5 r( c8 G可见已经可以正常删除,即代表文件通过快照已恢复,代表快照回滚恢复功能正常,到这里快照测试也就结束了
; g: g' {$ z; R
* j/ m5 C, T8 X! z$ J. u5 y- {(9) 删除快照, \# `3 m5 o! ]6 D* q$ l
[root@ceph-deploy ~]# ceph osd pool rmsnap cephfs_data_lc cephfs_data_lc_snap+ ~  f0 s; P! Z3 b
removed pool cephfs_data_lc snap cephfs_data_lc_snap
* o2 G# g% ^- v0 d9 R3 h- Q% M" ~# t7 }& I* C9 W% j7 W  I
[root@ceph-deploy ~]# rados lssnap -p cephfs_data_lc, N( {2 j+ m; T( Y$ `! `* U
0 snaps9 {1 e. S! y! x1 t7 m; a: c
; |- s1 j6 W5 X; p* C' r
[root@ceph-deploy ~]# rados -p cephfs_data_lc ls | grep 'testobject', [/ x, J9 m6 f" W& n8 ^
testobject! V7 t. M) `8 Z0 R% X& ^" z

& o* `& g8 `9 y' r' c) U[root@ceph-deploy ~]# rados -p cephfs_data_lc rm testobject
! t4 \- @) M0 f3 e/ d3 y, Uerror removing cephfs_data_lc>testobject: (2) No such file or directory
$ h$ J7 ?' z! F- }
+ R7 X2 _3 J$ `4 x; f3 L% x(10) 结论3 b0 J9 S- V! P
1) Pool 池的快照相对来说是有局限性的,没办法直接恢复快照里边全部 object 对象文件,只能一个个来恢复,这样的设计效果可能是因为如
1 P( ^/ r6 v$ Y4 C+ Z  t果 pool 池直接整体恢复,会导致整个 ceph 集群数据混乱,毕竟集群中数据是分布式存放的。4 s8 k% @* H. w  P7 j7 f+ l7 d1 L
2) ceph 支持对整个 pool 创建快照,作用于这个 pool 的所有对象。
/ X$ F8 S  E1 ]3) ceph 有两种 pool 模式8 y' t. y, F% f/ _5 C
Pool Snapshot,创建一个新的pool时,默认也是这种模式。
* p# V! r3 p0 u' H7 `Self Managed Snapsoht,用户管理的 snapshot,这个用户指的是 librbd,也就是说如果在 pool 中创建了 rbd 实例就自动转化为这种模式。
1 H+ M; D) ~* i2 }  N( d注意: 这两种模式是相互排斥,只能使用其中一个,因此,如果 pool 中曾经创建了 rbd 对象(即使当前删除了所有的image实例)就不能再对这个
; R- T- j& A& J0 G% g; P
pool 做快照了,反之,如果对一个 pool 做了快照,就不能创建 rbd image 了。7 用户管理[color=var(--theme-color)]#
Ceph 把数据以对象的形式存于各存储池中。Ceph 用户必须具有访问存储池的权限才能够读写数据。另外,Ceph 用户必须具有执行权限才能够使用 Ceph 的管理命令。
7.1 查看用户信息1 查看所有用户信息3 |1 R' D* r2 J; k) [0 c; p
[root@ceph-deploy ~]# ceph auth list
# o9 L1 {  D/ r& n2 Z
) J' a* F) X9 ~" T- j2 获取所有用户的key与权限相关信息, n8 x/ s& W2 l
[root@ceph-deploy ~]# ceph auth get client.admin
& r( y" W0 e7 C) h5 E6 S0 Rexported keyring for client.admin7 R( S# W1 ]& m+ \2 u
[client.admin]- l$ k: Y- ~  ^: q0 o
key = AQArL5JhBEiAKRAAymBtomUPKP6M/BSI17oXyg==
& U" [5 ?' D7 V0 e/ D8 qcaps mds = "allow *": Y* Y. U9 L: i
caps mgr = "allow *"+ ^" I, i8 {# [; ]0 n1 _" w0 `4 [
caps mon = "allow *". g1 }8 @! y3 M$ Z
caps osd = "allow *". e* C0 Y  E/ F, Z2 g

+ g6 V/ o3 @! ^4 t3 如果只需要某个用户的key信息,可以使用pring-key子命令
) T# s3 k) o7 L' _: w' t$ _) v[root@ceph-deploy ~]# ceph auth print-key client.admin
+ Y/ b1 c) |1 J7 n  `  G
AQArL5JhBEiAKRAAymBtomUPKP6M/BSI17oXyg==7.2 添加用户# ceph auth add client.john mon 'allow r' osd 'allow rw pool=liverpool'" M' }  K/ Z7 g
# ceph auth get-or-create client.paul mon 'allow r' osd 'allow rw pool=liverpool'
0 N2 x: n) S; Y7 [! I! j+ @# ceph auth get-or-create client.george mon 'allow r' osd 'allow rw pool=liverpool' -o george.keyring
* V; X% n" F0 K- `, G
# 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'
- D  R8 h# D& y8 N" o; r" g# ceph auth caps client.paul mon 'allow rw' osd 'allow rwx pool=liverpool'
* `2 [7 K; B% R1 P# r' w# ceph auth caps client.brian-manager mon 'allow *' osd 'allow *'
5 _. A0 P8 H/ v$ b
# ceph auth caps client.ringo mon ' ' osd ' '7.4 删除用户# ceph auth del {TYPE}.{ID}
' q' k9 J* W& J  `1 S" V
说明: 其中,{TYPE} 是 client,osd,mon 或 mds 的其中一种。{ID} 是用户的名字或守护进程的 ID。, y% J  |) a) N  n
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-12 01:06 , Processed in 3.253762 second(s), 22 queries .

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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