易陆发现互联网技术论坛

 找回密码
 开始注册
查看: 921|回复: 6
收起左侧

openstack上创建卷,底层ceph 删除卷,然后rbd导入卷,创建新的虚机即可使用

[复制链接]
发表于 2022-6-17 17:17:03 | 显示全部楼层 |阅读模式
购买主题 本主题需向作者支付 10 金钱 才能浏览
 楼主| 发表于 2022-6-17 17:22:40 | 显示全部楼层
查看导入的ceph镜像的大小:
; \1 F  w% z2 ]3 r[root@controller1 src]# rbd info hdd-8T-volumes/volume-7339c495-25dd-44a3-b0cb-3b00cd59e070
% z! Q& x8 x. n4 _$ {rbd image 'volume-7339c495-25dd-44a3-b0cb-3b00cd59e070':. T/ V$ G3 W6 A. O- B& w9 M6 D8 R
        size 2.8 GiB in 717 objects8 {- P3 I+ D, m( Z( C5 E- J
        order 22 (4 MiB objects)6 I) y0 K  y9 U2 A$ @( f" y
        snapshot_count: 0' ^5 f8 W* M; o3 h# F! ?
        id: 9eb6a0f364b72b
: D4 g; Y( [/ n, v7 I9 ]        block_name_prefix: rbd_data.9eb6a0f364b72b
: W; P" l( A' V  U9 v        format: 2
. |  |# [: h2 ]6 U, ]        features: layering
: f! o* C2 F0 |' T, L% i        op_features: . w! t* |4 T9 g- X% H1 }. f
        flags: " U+ m% A) s5 H2 |7 H9 B# J
        create_timestamp: Fri Jun 17 17:06:55 2022
: ?8 ]: P& J. K        access_timestamp: Fri Jun 17 17:06:55 2022
: O8 {/ J; P3 R% f+ q        modify_timestamp: Fri Jun 17 17:06:55 2022( E5 O& [: L4 \8 N: i8 o0 b. n
 楼主| 发表于 2022-6-17 17:23:36 | 显示全部楼层
3、 快照导出的文件导入为新的RBD image 5 ^, [1 [* p! m, `3 A  z
快照的恢复过程使用的是刚刚上面提到的备份到本地的那些文件. 现在假如想恢复到v3那个快照的时间点,那么可以用两个方法 方法1:直接基于v3的时间点的快照做恢复 方法2:直接基于v1的时间点的数据,和后面的增量的v1-v3数据(要按顺序导入)
/ a0 c9 T, w6 J3.1增量导入:rbd import-diff
5 j* y1 x* x# A#方法1:直接基于v3的时间点的快照做恢复
0 d# Z0 F' ?9 B: j5 ?, g7 b#首先随便创建一个image,名称大小都不限制,因为后面恢复的时候会覆盖掉大小的信息& ~) f; @- A- `
[root@rook-ceph-tools-6f5694c655-hzpj5 /]# rbd create replicapool/resume-v1 --size 1   
) [; o: Z/ N* M" u1 _7 H$ @[root@rook-ceph-tools-6f5694c655-hzpj5 /]# rbd import-diff csz-busybox-v3 replicapool/resume-v1                                          Importing image diff: 100% complete...done.7 F, x, |- a8 e/ e* Q4 f$ g. X* h/ ^
[root@rook-ceph-tools-6f5694c655-hzpj5 /]#: O" s5 F5 j! U1 \
#方法2: 基于v1+ v1_v3数据恢复( R- {: f6 O! y3 I; L
#首先随便创建一个image,名称大小都不限制,因为后面恢复的时候会覆盖掉大小的信息$ ^- m+ L/ d/ H. i- A, U
[root@rook-ceph-tools-6f5694c655-hzpj5 /]# rbd create replicapool/resume-v3 --size 17 t: Q& y3 [3 i6 m5 W$ H2 R& Q
[root@rook-ceph-tools-6f5694c655-hzpj5 /]# rbd import-diff csz-busybox-v1 replicapool/resume-v3/ g" m' N4 R/ n' F4 Y7 Z; o
Importing image diff: 100% complete...done.7 _3 L% A) L" E' P! H/ E
[root@rook-ceph-tools-6f5694c655-hzpj5 /]# rbd import-diff csz-busybox-v1-v3 replicapool/resume-v3% e- `, E- |9 R8 E' u
1234567891011 : E5 G& y9 [! z4 i- n
​ 实际项目当中就是,定期做快照,然后导出某个时间点快照的数据,然后导出增量的快照的数据,就可以了 " ]% Y: o% R2 s+ u, y6 O
3.2全量导入:rbd import ( `" |- m" l8 r8 _9 w! D
注:不用提前创建目标image,否则rbd import会报错
& E& v! \. G, H9 _' c[root@rook-ceph-tools-6f5694c655-hzpj5 /]# rbd create replicapool/resume-full --size 1
. O6 X. T8 k* c* ]5 Y. [+ d; l[root@rook-ceph-tools-6f5694c655-hzpj5 /]# rbd import-diff csz-busybox-full replicapool/resume-full
& Z, I( \9 I5 e5 W; ~* Q; Krbd: invalid or unexpected diff banner
) N2 K$ T( j, B) Irbd: import-diff failed: (22) Invalid argument$ g$ y4 C! ^0 V% P" r
[root@rook-ceph-tools-6f5694c655-hzpj5 /]#
7 F: P# ^" E" w[root@rook-ceph-tools-6f5694c655-hzpj5 /]#
) |6 h; E4 R1 X[root@rook-ceph-tools-6f5694c655-hzpj5 /]# rbd import csz-busybox-full replicapool/resume-full
( }8 `. h, R7 H. M: Arbd: image creation failed
8 o; N0 P- f( O* s4 s+ ]: jImporting image: 0% complete...failed.
+ z1 B# V' f  s: @4 T8 [' yrbd: import failed: 2021-01-29T02:11:56.790+0000 7fdfdcb4b500 -1 librbd: rbd image resume-full already exists
# X8 [/ z4 k7 B, H8 l(17) File exists
$ L8 y( a% g* p6 s! L# P( G[root@rook-ceph-tools-6f5694c655-hzpj5 /]# rbd import csz-busybox-full replicapool/resume-full19 L; ]0 b8 V! D2 W, {. u
Importing image: 100% complete...done.1 ~7 c4 f! d& c. O$ S7 [
[root@rook-ceph-tools-6f5694c655-hzpj5 /]#
6 @+ c+ n0 c0 X1 A; u; s4 n! i1234567891011121314   ~9 ^1 D$ Y8 |) e  s$ j/ `4 i% L
四、如何利用这个 实际项目当中就是,定期做快照,然后导出某个时间点快照的数据,然后导出增量的快照的数据,就可以了,例如: 今天对所有的rbd的image做一个基础快照,然后导出这个快照的数据,然后从今天开始,每天晚上做一个快照,然后导出快照时间点之间的数据,这样每天导出来的就是一个增量的数据了,在做恢复的时候,就从第一个快照导入,然后按顺序导入增量的快照即可,也可以定期做一个快照,导出完整的快照数据,以防中间的增量快照漏了,然后就是要注意可以定期清理快照,如果是做备份的模式,在导入了快照数据后,也可以清理一些本地的数据,本地数据做异地机房复制的时候也可以做一下数据的压缩,来减少数据量的传输 3 ~( M; |4 E  e1 h) |
客户端验证:将RBD image恢复到pod
4 P1 r0 U5 I: C( |思路:将新的image name重命名rename成原来的image name
6 \* W. }3 n( _3 n* L删除旧的image
0 s5 x) Q+ i3 {5 ]+ L/ ]# Step1:停掉pod对image的使用
, R& F0 T2 q3 L3 m4 C! ~修改pod的yaml文件,将spec: replicas: 副本数改为0
0 I! A# ?4 c4 G, ?" t# Step2:清空旧image的snapshots6 ^- J) c2 i3 X
[root@rook-ceph-tools-6f5694c655-hzpj5 /]# rbd snap purge replicapool/csi-vol-387b2608-61f7-11eb-b9c5-0e28ddb26a3c
5 [; z; @( n# C4 v3 f9 mRemoving all snapshots: 100% complete...done.
  G5 E; G' i, E% v# Step3:删除旧的image( R$ ?5 N, S0 c7 P; t
[root@rook-ceph-tools-6f5694c655-hzpj5 /]# rbd rm replicapool/csi-vol-387b2608-61f7-11eb-b9c5-0e28ddb26a3c* {3 p( X5 f# y# n
Removing image: 100% complete...done.
1 I8 \" \5 s7 @! z4 B$ }3 b( e' P+ p12345678 ' N* e; M$ c, u: S
将new image name重命名为old image name 6 F% P. K9 j& @" F
[root@rook-ceph-tools-6f5694c655-hzpj5 /]# rbd rename replicapool/test-v3 replicapool/csi-vol-387b2608-61f7-11eb-b9c5-0e28ddb26a3c) }: P/ @( b8 B* z7 ?5 \' {
1 , L" C: {! m  B# S
启动pod
8 D7 D" f$ L/ W  [修改pod的yaml文件,将spec: replicas: 副本数由0改回原值8 B2 Q0 z: ~4 G. f: z8 Y
1 + I2 h; ~" W5 p7 a" L6 e! h
FAQ:
6 U. n6 ?4 N1 }9 srbd 删除image时,报错“rbd: image has snapshots - these must be deleted with ‘rbd snap purge’ before the image can be removed” # f1 ~3 T( u# X
[root@rook-ceph-tools-6f5694c655-hzpj5 /]# rbd rm replicapool/csi-vol-387b2608-61f7-11eb-b9c5-0e28ddb26a3c
( ~: o  B7 [3 z5 x/ wRemoving image: 0% complete...failed.
/ T. ?4 v7 Y" L; `+ ]rbd: image has snapshots - these must be deleted with 'rbd snap purge' before the image can be removed.' h, e) B( _! s! ^9 s8 }$ o
123
& e- }! R6 v$ n' @解决方法:执行’rbd snap purge’删掉image相关snapshots
4 v* l' U* M+ Z& f; Q3 Erbd 删除image时,报错“rbd: error: image still has watchers” 1 u$ a5 l6 P( U( k8 u4 Y- @8 M
[root@rook-ceph-tools-6f5694c655-hzpj5 /]# rbd rm replicapool/csi-vol-6ee1b63a-6060-11eb-b9c5-0e28ddb26a3c
( R% c1 D6 i& \( A2021-01-29T06:22:09.698+0000 7fe4677fe700 -1 librbd::image::PreRemoveRequest: 0x55a645137470 check_image_watchers: image has watchers - not removing1 L! `& y8 E) k& c4 A, C
Removing image: 0% complete...failed.
0 }; _  u# K  ?5 b  P  p4 drbd: error: image still has watchers. p' u/ d% H5 N1 G' M: E% m( }
This means the image is still open or the client using it crashed. Try again after closing/unmapping it or waiting 30s for the crashed client to timeout./ _( p9 x4 {3 v# ]
12345   V" E, }, n9 l9 q* n. s: G$ b, ]
解决方法:删除使用image的pod(修改pod的yaml文件,将spec: replicas: 副本数改为0)
1 H1 v) Q( A2 f0 b
 楼主| 发表于 2022-6-17 17:25:41 | 显示全部楼层
[root@controller1 src]# rbd resize --size 50G hdd-8T-volumes/volume-7339c495-25dd-44a3-b0cb-3b00cd59e070
: G% o/ `$ T* U9 t5 @6 v& l6 I9 vResizing image: 100% complete...done.
: Y! O2 h' u: c2 A[root@controller1 src]# rbd info hdd-8T-volumes/volume-7339c495-25dd-44a3-b0cb-3b00cd59e0704 P, f7 _, X+ F1 ~" ]
rbd image 'volume-7339c495-25dd-44a3-b0cb-3b00cd59e070':8 o% q" H" Y( I$ |3 ~
        size 50 GiB in 12800 objects
: ?# D( U7 Q& W! M4 A        order 22 (4 MiB objects)" _% e- N+ k  R. Z
        snapshot_count: 05 Z) g4 k0 B, w6 X, K) y/ y; A6 O
        id: 9eb6a0f364b72b
! o. k+ j  d4 r* i2 ~' g( m        block_name_prefix: rbd_data.9eb6a0f364b72b
! q! L$ i$ u7 a: n        format: 2# T1 [( f2 S! \, o" s6 E% x0 m
        features: layering
7 u8 \7 T( `; H        op_features:
* j1 [0 H' r+ Q        flags:
0 I, }- f# a* W, ]( A7 N        create_timestamp: Fri Jun 17 17:06:55 2022
3 C* y' a  ]# T5 E, Z) C/ [        access_timestamp: Fri Jun 17 17:06:55 20228 q' f: ~! @9 d$ ]
        modify_timestamp: Fri Jun 17 17:06:55 2022
 楼主| 发表于 2022-6-17 17:37:29 | 显示全部楼层
在openstack上扩展卷后,底层执行命令:" v( }9 b4 U. k/ n# G# M
[root@controller1 src]# rbd info hdd-8T-volumes/volume-7339c495-25dd-44a3-b0cb-3b00cd59e070, F: D2 w- \+ x4 M# @7 t" v
rbd image 'volume-7339c495-25dd-44a3-b0cb-3b00cd59e070':' _2 A( b# P' E, p. R1 {
        size 50 GiB in 12800 objects+ Z1 L3 o9 Q# l! f1 i0 }
        order 22 (4 MiB objects)
# s0 p8 w$ _, y, `# t- I( r        snapshot_count: 07 r, G! N/ ~* a# E+ C* n! U' }
        id: 9eb6a0f364b72b
! ~5 {( S" b1 A" R, _        block_name_prefix: rbd_data.9eb6a0f364b72b$ A. }; Z1 q% \4 g3 c7 _
        format: 2
0 K2 B1 N3 f5 L9 Z9 h7 u        features: layering
  {: U: P7 W* B5 b7 e! ~) E        op_features:
, f# f: [# H/ x( T3 Z+ ]        flags:
4 n6 c. }+ L1 B% m        create_timestamp: Fri Jun 17 17:06:55 2022+ f/ B0 v! _' q- b' K* V
        access_timestamp: Fri Jun 17 17:06:55 2022
6 V; X. X3 I+ V$ i# i        modify_timestamp: Fri Jun 17 17:06:55 2022  U! K; b" o/ |- W% X
[root@controller1 src]# rbd info hdd-8T-volumes/volume-7339c495-25dd-44a3-b0cb-3b00cd59e070
+ b9 l0 Z: w/ p5 N; w% orbd image 'volume-7339c495-25dd-44a3-b0cb-3b00cd59e070':! t# [, D# W6 L- Q
        size 51 GiB in 13056 objects0 Z( k6 N+ D$ Q/ i8 i6 v
        order 22 (4 MiB objects)
5 Y+ t0 U, |/ J' L7 S        snapshot_count: 0
2 m( S1 |4 j* c6 h' m        id: 9eb6a0f364b72b
* l# G) t" q( x2 G        block_name_prefix: rbd_data.9eb6a0f364b72b
: k# f+ r, H$ ^+ C( j; }        format: 2/ x9 q0 V- n, d! {4 K" D" X1 S
        features: layering, U/ e$ j7 p# z2 h
        op_features:
3 r2 g4 h5 j- K" K0 Y        flags:
# }  g1 }$ ]: Y* p" y        create_timestamp: Fri Jun 17 17:06:55 20226 B) ~! z; K# f
        access_timestamp: Fri Jun 17 17:06:55 2022! s: _, O+ J) ], ^# Q. P0 e" E
        modify_timestamp: Fri Jun 17 17:06:55 2022# K' H( H1 Y& ~7 X6 K+ N& p4 N- O
[root@controller1 src]# rbd info hdd-8T-volumes/volume-7339c495-25dd-44a3-b0cb-3b00cd59e0700 b; x5 i3 Q, v: H, E. ?
rbd image 'volume-7339c495-25dd-44a3-b0cb-3b00cd59e070':
: q& i/ h- C" b+ U+ d% l        size 51 GiB in 13056 objects
! Z) Z9 ^/ v; [) P& q1 `# J        order 22 (4 MiB objects): |: x1 N  H3 s2 A& _6 f  r
        snapshot_count: 06 O) x: d1 r5 w' [" H
        id: 9eb6a0f364b72b
2 S! `* S2 u, L        block_name_prefix: rbd_data.9eb6a0f364b72b
- B6 d! @' q& ~: y        format: 2
( q/ Y) G8 G9 D2 d! e" f& Q6 P6 T3 C        features: layering
, B% T. H2 S4 v& k  H0 s        op_features:
+ |1 C, D  g3 m8 o& d% p        flags: - H/ z0 h! Y# d2 Y/ j9 a
        create_timestamp: Fri Jun 17 17:06:55 2022$ G0 U$ v7 B8 B( P2 F  c
        access_timestamp: Fri Jun 17 17:06:55 20227 R1 H! B6 r4 T& b/ h. f1 W
        modify_timestamp: Fri Jun 17 17:06:55 2022
4 n) [9 x. `# }% f7 o5 d[root@controller1 src]#
 楼主| 发表于 2022-6-17 17:39:50 | 显示全部楼层
一套完整的流程搞定。openstack上不创建镜像,即可完成镜像使用。
 楼主| 发表于 2022-7-13 17:01:05 | 显示全部楼层
[root@host09 images]# rbd -p volumes-hdd ls |grep 98e50ac1-3b42-4393-b53f-6c6832fec4c4* ^4 i/ |8 w$ U
volume-98e50ac1-3b42-4393-b53f-6c6832fec4c4
+ s3 j: o9 g" i[root@host09 images]# rbd rename volumes-hdd/volume-98e50ac1-3b42-4393-b53f-6c6832fec4c4 volumes-hdd/volume-98e50ac1-3b42-4393-b53f-6c6832fec4c4-bak
' a( v4 N/ c# F1 n+ K& y: D" [[root@host09 images]# rbd -p volumes-hdd ls |grep 98e50ac1-3b42-4393-b53f-6c6832fec4c4; b6 v0 h1 m  G/ s# t
volume-98e50ac1-3b42-4393-b53f-6c6832fec4c4-bak$ g5 b4 B: i3 _8 j5 d$ T9 a+ n
[root@host09 images]# rbd import volume-98e50ac1-3b42-4393-b53f-6c6832fec4c4.raw volumes-hdd/volume-98e50ac1-3b42-4393-b53f-6c6832fec4c42 b5 y8 \1 V7 S  E
Importing image: 100% complete...done.  a* _0 _: p1 P7 J
[root@host09 images]#
% `- j$ z+ _: X" {7 M
您需要登录后才可以回帖 登录 | 开始注册

本版积分规则

关闭

站长推荐上一条 /4 下一条

北京云银创陇科技有限公司以云计算运维,代码开发

QQ|返回首页|Archiver|小黑屋|易陆发现技术论坛 ( 蜀ICP备2026014127号-1 )点击这里给我发消息

GMT+8, 2026-4-8 23:38 , Processed in 0.508334 second(s), 26 queries .

Powered by Discuz! X3.4 Licensed

© 2012-2025 Discuz! Team.

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