易陆发现互联网技术论坛

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

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

[复制链接]
发表于 2022-6-17 17:17:03 | 显示全部楼层 |阅读模式
购买主题 本主题需向作者支付 10 金钱 才能浏览
 楼主| 发表于 2022-6-17 17:22:40 | 显示全部楼层
查看导入的ceph镜像的大小:* b! l; j& ^4 ~
[root@controller1 src]# rbd info hdd-8T-volumes/volume-7339c495-25dd-44a3-b0cb-3b00cd59e070
3 ]! S" z6 l  ^7 @' O* Frbd image 'volume-7339c495-25dd-44a3-b0cb-3b00cd59e070':+ Z( q* x8 {) h# C
        size 2.8 GiB in 717 objects2 a# t0 N1 _& r% y! k9 `. E
        order 22 (4 MiB objects)
. W& B& W6 h' h2 H  B# X$ B- L% a        snapshot_count: 0
. w3 n: g  `: R4 q* h; Q        id: 9eb6a0f364b72b
2 K7 k  _9 g* F& Q6 k$ F9 C8 N/ G        block_name_prefix: rbd_data.9eb6a0f364b72b4 Q, W" B8 c! Y0 G+ ?8 m3 x4 p; h
        format: 23 Y' I: U8 G9 Z1 s1 h( X+ E+ Z# U+ Q9 O
        features: layering
8 e$ |( b. J* L( p: M        op_features: * Y% g; G- c) W" f
        flags:
/ \5 o! K( Q+ W        create_timestamp: Fri Jun 17 17:06:55 2022
4 d& J) [8 f  u% x        access_timestamp: Fri Jun 17 17:06:55 20226 j. d6 D8 r6 E) {% u# g
        modify_timestamp: Fri Jun 17 17:06:55 2022
- N! D6 R5 n* @) O. Q
 楼主| 发表于 2022-6-17 17:23:36 | 显示全部楼层
3、 快照导出的文件导入为新的RBD image
. i: E2 Z- z- v0 I6 S8 z* ~快照的恢复过程使用的是刚刚上面提到的备份到本地的那些文件. 现在假如想恢复到v3那个快照的时间点,那么可以用两个方法 方法1:直接基于v3的时间点的快照做恢复 方法2:直接基于v1的时间点的数据,和后面的增量的v1-v3数据(要按顺序导入) ( {* J3 k1 R- P7 A# ]: K
3.1增量导入:rbd import-diff
0 l- F8 E- ^, @#方法1:直接基于v3的时间点的快照做恢复6 Z' j0 d; R  W1 q* ~
#首先随便创建一个image,名称大小都不限制,因为后面恢复的时候会覆盖掉大小的信息9 u4 ~0 \# g1 [: d) k, E
[root@rook-ceph-tools-6f5694c655-hzpj5 /]# rbd create replicapool/resume-v1 --size 1   
8 V0 J1 M" X. Y& g* O[root@rook-ceph-tools-6f5694c655-hzpj5 /]# rbd import-diff csz-busybox-v3 replicapool/resume-v1                                          Importing image diff: 100% complete...done.0 l, ]1 |* {' P+ V% M$ q
[root@rook-ceph-tools-6f5694c655-hzpj5 /]#
' L0 ~+ j& d7 B2 L3 Z& Y7 }7 {#方法2: 基于v1+ v1_v3数据恢复: [9 ^0 L, f$ R+ g) p2 H" f5 l0 v; ~/ H
#首先随便创建一个image,名称大小都不限制,因为后面恢复的时候会覆盖掉大小的信息5 a! \3 c! o7 r8 A) y# C5 W5 N
[root@rook-ceph-tools-6f5694c655-hzpj5 /]# rbd create replicapool/resume-v3 --size 1" B* f% L4 L# v1 h7 c6 t
[root@rook-ceph-tools-6f5694c655-hzpj5 /]# rbd import-diff csz-busybox-v1 replicapool/resume-v3" y$ H/ p" N. C4 G! Y/ y# d
Importing image diff: 100% complete...done.2 s; j3 A0 H) v- n2 Q2 ~5 |
[root@rook-ceph-tools-6f5694c655-hzpj5 /]# rbd import-diff csz-busybox-v1-v3 replicapool/resume-v30 b% {" l) v( o  U1 N
1234567891011
; z% V3 d5 B, j3 N8 R5 C​ 实际项目当中就是,定期做快照,然后导出某个时间点快照的数据,然后导出增量的快照的数据,就可以了
- x% c7 d) R* L6 N' n; h3.2全量导入:rbd import
  l5 R8 G) @# r: k& X注:不用提前创建目标image,否则rbd import会报错 % @0 c* I% m/ S" R5 A
[root@rook-ceph-tools-6f5694c655-hzpj5 /]# rbd create replicapool/resume-full --size 1
; H5 C5 _" {( h# |; G! G: N. u9 Z[root@rook-ceph-tools-6f5694c655-hzpj5 /]# rbd import-diff csz-busybox-full replicapool/resume-full
* U# {& T8 j( L" ]rbd: invalid or unexpected diff banner; _6 U" m. v! @! e
rbd: import-diff failed: (22) Invalid argument# w% {! i, M; q
[root@rook-ceph-tools-6f5694c655-hzpj5 /]#
! v, F# h& w2 {8 t[root@rook-ceph-tools-6f5694c655-hzpj5 /]#
3 Q5 C; {4 `3 R6 J; l[root@rook-ceph-tools-6f5694c655-hzpj5 /]# rbd import csz-busybox-full replicapool/resume-full8 r8 j2 ^, |" P, I8 V: C: R
rbd: image creation failed
3 q, p/ h$ p0 EImporting image: 0% complete...failed.
, Y  j: N; i  ^3 d, lrbd: import failed: 2021-01-29T02:11:56.790+0000 7fdfdcb4b500 -1 librbd: rbd image resume-full already exists
. n( e5 h4 B, G6 ~(17) File exists
' A: F# t& t& `) ][root@rook-ceph-tools-6f5694c655-hzpj5 /]# rbd import csz-busybox-full replicapool/resume-full10 o) _7 ~! }5 M3 {1 n6 q
Importing image: 100% complete...done.
9 x: r/ s8 m. A# r7 g[root@rook-ceph-tools-6f5694c655-hzpj5 /]#
$ c& k$ E) Y, h2 O- S9 \) t1234567891011121314 ' g9 o0 M  G. ?& w' |
四、如何利用这个 实际项目当中就是,定期做快照,然后导出某个时间点快照的数据,然后导出增量的快照的数据,就可以了,例如: 今天对所有的rbd的image做一个基础快照,然后导出这个快照的数据,然后从今天开始,每天晚上做一个快照,然后导出快照时间点之间的数据,这样每天导出来的就是一个增量的数据了,在做恢复的时候,就从第一个快照导入,然后按顺序导入增量的快照即可,也可以定期做一个快照,导出完整的快照数据,以防中间的增量快照漏了,然后就是要注意可以定期清理快照,如果是做备份的模式,在导入了快照数据后,也可以清理一些本地的数据,本地数据做异地机房复制的时候也可以做一下数据的压缩,来减少数据量的传输
/ A9 J" w% [8 A. E4 @4 G5 @( U客户端验证:将RBD image恢复到pod
9 h2 y4 v" ~# }  [3 |思路:将新的image name重命名rename成原来的image name - A# y; i+ `: J& G
删除旧的image
5 r2 g! M! b$ K3 W+ O# Step1:停掉pod对image的使用6 e" Q( p9 U* ]7 _( z
修改pod的yaml文件,将spec: replicas: 副本数改为0+ c  R" H/ F2 B1 x& n$ R
# Step2:清空旧image的snapshots
& B" C1 b+ [. M( r- w[root@rook-ceph-tools-6f5694c655-hzpj5 /]# rbd snap purge replicapool/csi-vol-387b2608-61f7-11eb-b9c5-0e28ddb26a3c
0 R! q1 X+ D# u0 _3 U7 a& K% k1 M4 cRemoving all snapshots: 100% complete...done.7 X+ Z" @3 r/ d& \8 k
# Step3:删除旧的image
1 k5 L" [3 S  F6 v  u[root@rook-ceph-tools-6f5694c655-hzpj5 /]# rbd rm replicapool/csi-vol-387b2608-61f7-11eb-b9c5-0e28ddb26a3c
3 u; a6 M, A" d6 tRemoving image: 100% complete...done.
! O5 _5 r( u) I  m. f" c12345678
, j5 W, D0 v+ p9 _9 X8 A将new image name重命名为old image name
5 F* C9 P, ?+ ^) J  f[root@rook-ceph-tools-6f5694c655-hzpj5 /]# rbd rename replicapool/test-v3 replicapool/csi-vol-387b2608-61f7-11eb-b9c5-0e28ddb26a3c
- V1 ^% h+ j% B3 E/ e+ P, d1 $ B1 Y2 ]) ?; k7 G8 f) u& X% ~( S, H
启动pod : R5 O! Q5 t( _  f
修改pod的yaml文件,将spec: replicas: 副本数由0改回原值
% h9 x9 [4 O- U9 T( T1 $ [9 r: v  \( P* b" G4 q( n; F7 r
FAQ:
2 o8 W" a: t$ ~1 P1 U+ Rrbd 删除image时,报错“rbd: image has snapshots - these must be deleted with ‘rbd snap purge’ before the image can be removed”
* X: }, ~5 b# a% ?8 C6 K: e[root@rook-ceph-tools-6f5694c655-hzpj5 /]# rbd rm replicapool/csi-vol-387b2608-61f7-11eb-b9c5-0e28ddb26a3c
: E  M, ^' O1 I$ ~! \% J+ B2 p  fRemoving image: 0% complete...failed.6 E! b9 y; P6 ?6 R
rbd: image has snapshots - these must be deleted with 'rbd snap purge' before the image can be removed.
6 U5 B% K- A6 q" A8 e123
( F  {* l/ E/ ?& y9 G9 S解决方法:执行’rbd snap purge’删掉image相关snapshots
5 z6 r" T2 P/ V1 D$ k: _% Erbd 删除image时,报错“rbd: error: image still has watchers”
& L9 D5 `( B, x7 w2 [[root@rook-ceph-tools-6f5694c655-hzpj5 /]# rbd rm replicapool/csi-vol-6ee1b63a-6060-11eb-b9c5-0e28ddb26a3c: I; H* n! k+ ]. ?0 m( K
2021-01-29T06:22:09.698+0000 7fe4677fe700 -1 librbd::image::PreRemoveRequest: 0x55a645137470 check_image_watchers: image has watchers - not removing
3 M! i6 C1 U9 K4 s( A9 g5 }Removing image: 0% complete...failed.
) ?: s3 I1 G; f2 e# \% d, F! brbd: error: image still has watchers
7 _1 m1 k# l# d4 @1 O: XThis 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.
) Y+ I3 d9 Z# {% }$ D8 g) ~12345
: ]/ G- S8 Y$ F3 b3 s解决方法:删除使用image的pod(修改pod的yaml文件,将spec: replicas: 副本数改为0)# ?, o& p( W5 U3 F+ A6 Q
 楼主| 发表于 2022-6-17 17:25:41 | 显示全部楼层
[root@controller1 src]# rbd resize --size 50G hdd-8T-volumes/volume-7339c495-25dd-44a3-b0cb-3b00cd59e070: t1 h, z" ~' n9 S% p& C; Y
Resizing image: 100% complete...done.) H( u7 P0 y6 E1 P. r! r
[root@controller1 src]# rbd info hdd-8T-volumes/volume-7339c495-25dd-44a3-b0cb-3b00cd59e070, r  Z+ L! F, t; R( G. _
rbd image 'volume-7339c495-25dd-44a3-b0cb-3b00cd59e070':6 m/ i& ]) w' Z: _1 J' k
        size 50 GiB in 12800 objects% t. _3 c% E8 n% t. t% P
        order 22 (4 MiB objects)- Y$ B: Q3 T9 i
        snapshot_count: 0
9 |8 a5 E* [2 o* [        id: 9eb6a0f364b72b& [- @( v, o% D
        block_name_prefix: rbd_data.9eb6a0f364b72b
" a' u2 j" {; ?        format: 29 N! A$ ]! L( j9 H! S: O8 T
        features: layering7 E! }7 d7 x5 N8 ~7 i% X
        op_features: ' F8 @1 `) [6 {# |& V
        flags:
, {/ Z0 y# d( M9 Q  v, ~        create_timestamp: Fri Jun 17 17:06:55 2022& I1 U. ~# `$ \& t
        access_timestamp: Fri Jun 17 17:06:55 2022
" p) V- |; J, @8 F" h! \: x4 [; ^        modify_timestamp: Fri Jun 17 17:06:55 2022
 楼主| 发表于 2022-6-17 17:37:29 | 显示全部楼层
在openstack上扩展卷后,底层执行命令:
  C; V- Q% l. p" a: c% r& O  C  C. G[root@controller1 src]# rbd info hdd-8T-volumes/volume-7339c495-25dd-44a3-b0cb-3b00cd59e0706 n& p# S) M2 ^3 B9 W3 T6 i
rbd image 'volume-7339c495-25dd-44a3-b0cb-3b00cd59e070':; `. r6 ]! Y! h
        size 50 GiB in 12800 objects( n' a, s0 a3 a! g
        order 22 (4 MiB objects)
+ Q. {& M5 c/ m        snapshot_count: 02 I9 b5 D; h" g& I6 y
        id: 9eb6a0f364b72b* B# g' W1 i2 k
        block_name_prefix: rbd_data.9eb6a0f364b72b
& B6 W; R% k( R# F( O        format: 21 J) o9 N* F, e6 l, l
        features: layering. e& \6 q0 e; H3 q! t
        op_features:
* Z1 L. }1 Y, f, g        flags:
; c2 W" I1 w7 I        create_timestamp: Fri Jun 17 17:06:55 2022
6 [1 d: j* V$ i9 S) i9 Z        access_timestamp: Fri Jun 17 17:06:55 20226 b+ V7 s; f: C: c
        modify_timestamp: Fri Jun 17 17:06:55 2022. C1 ~* Z, g, n9 N' _) R& n
[root@controller1 src]# rbd info hdd-8T-volumes/volume-7339c495-25dd-44a3-b0cb-3b00cd59e070$ A3 n1 E- T: a! P6 F
rbd image 'volume-7339c495-25dd-44a3-b0cb-3b00cd59e070':
! a. x# B3 N1 d' ^3 c6 `        size 51 GiB in 13056 objects% V5 c8 N! S  _: C
        order 22 (4 MiB objects)( q* v* P4 V3 B7 W$ Q" u4 @
        snapshot_count: 0: q, t# v4 ^7 x  \8 k3 W
        id: 9eb6a0f364b72b# X, E: Z6 a) U' h: C6 Z
        block_name_prefix: rbd_data.9eb6a0f364b72b/ E9 J' [3 J% y' F9 D7 ~
        format: 2
; M2 h* F0 V3 W# _        features: layering
/ W& P" D& [! U( m5 ~3 p/ I6 l        op_features:
% C) @$ j6 M+ R1 W        flags: # \7 I  l" X4 E& _  g0 x
        create_timestamp: Fri Jun 17 17:06:55 2022; A8 L% ~/ U3 T" x
        access_timestamp: Fri Jun 17 17:06:55 2022
9 \; {! V$ D8 c- n        modify_timestamp: Fri Jun 17 17:06:55 20222 B& [0 _" y: y
[root@controller1 src]# rbd info hdd-8T-volumes/volume-7339c495-25dd-44a3-b0cb-3b00cd59e070
) A) \, P0 c2 `! i' a% G, s8 W7 {rbd image 'volume-7339c495-25dd-44a3-b0cb-3b00cd59e070':3 T% W9 n$ b! b7 w5 c. i- d
        size 51 GiB in 13056 objects
5 W( p' n: e  r7 n, u0 t8 O/ V& I8 h5 R        order 22 (4 MiB objects)
% Y, _% T. t3 b' e1 s- S        snapshot_count: 0
- y3 X( a, J( o2 _/ ?        id: 9eb6a0f364b72b
' _) f, ~$ {/ _- t$ ]% ~        block_name_prefix: rbd_data.9eb6a0f364b72b( N8 J0 x/ W/ t, G5 H0 X) L
        format: 2
1 y! X( @! B3 i: ~/ I, U0 U        features: layering
6 K7 K, b. D7 ^" i; k* F. ?        op_features:
3 F) ?. X3 P. w        flags: ; F' D0 v! J5 {5 z4 F, ]
        create_timestamp: Fri Jun 17 17:06:55 2022
- H( y  m6 N7 D4 M1 W$ i        access_timestamp: Fri Jun 17 17:06:55 2022* f9 m) W7 i* f/ u  o! p& G5 I
        modify_timestamp: Fri Jun 17 17:06:55 2022
  l& e% }; ~! h; p2 g# q0 R+ [& T[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) g  d' I% v4 x& Z. g. ]* f$ R* m
volume-98e50ac1-3b42-4393-b53f-6c6832fec4c4
4 J0 i+ |0 f4 \" u4 ^[root@host09 images]# rbd rename volumes-hdd/volume-98e50ac1-3b42-4393-b53f-6c6832fec4c4 volumes-hdd/volume-98e50ac1-3b42-4393-b53f-6c6832fec4c4-bak5 k; T% l2 E( B$ ^; K, _# M; f
[root@host09 images]# rbd -p volumes-hdd ls |grep 98e50ac1-3b42-4393-b53f-6c6832fec4c4
0 t; \: X5 B2 J8 W. F$ S& ]volume-98e50ac1-3b42-4393-b53f-6c6832fec4c4-bak- n  `& d" r# a& f' F2 s8 _
[root@host09 images]# rbd import volume-98e50ac1-3b42-4393-b53f-6c6832fec4c4.raw volumes-hdd/volume-98e50ac1-3b42-4393-b53f-6c6832fec4c4
& H% l5 T0 d6 h- sImporting image: 100% complete...done.
3 s! ]' O1 ?6 g- \" b: Z[root@host09 images]#
& A+ E5 l: }& H9 q$ E: e
您需要登录后才可以回帖 登录 | 开始注册

本版积分规则

关闭

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

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

QQ|返回首页|Archiver|小黑屋|易陆发现技术论坛 点击这里给我发消息

GMT+8, 2026-4-8 15:28 , Processed in 0.048143 second(s), 26 queries .

Powered by Discuz! X3.4 Licensed

© 2012-2025 Discuz! Team.

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