易陆发现互联网技术论坛

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

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

[复制链接]
发表于 2022-6-17 17:17:03 | 显示全部楼层 |阅读模式
购买主题 本主题需向作者支付 10 金钱 才能浏览
 楼主| 发表于 2022-6-17 17:22:40 | 显示全部楼层
查看导入的ceph镜像的大小:. `. U" a. `' N$ ^4 _6 h1 Y
[root@controller1 src]# rbd info hdd-8T-volumes/volume-7339c495-25dd-44a3-b0cb-3b00cd59e070
( S1 k. C: V( T0 b$ l& qrbd image 'volume-7339c495-25dd-44a3-b0cb-3b00cd59e070':
/ f: l2 K2 u5 S2 V3 H, W; h* D        size 2.8 GiB in 717 objects
5 g3 o2 x) x3 \6 ^( d1 N1 R        order 22 (4 MiB objects)  k, B4 ^5 n! \! H  O0 p
        snapshot_count: 0) n$ M. I% y" [. f
        id: 9eb6a0f364b72b2 \0 O, H  H# h
        block_name_prefix: rbd_data.9eb6a0f364b72b
7 T- E2 O5 [# Y" K+ `- o9 U4 f! y! x        format: 2
5 P. A1 N- H% ^! Y        features: layering
2 e7 p+ Z; R" J) Y, K( e        op_features: 6 b/ l1 y1 i  d" @
        flags:
7 ?( J, [# E9 X        create_timestamp: Fri Jun 17 17:06:55 2022* F4 E% V- L( H& J+ z- l
        access_timestamp: Fri Jun 17 17:06:55 2022
4 }1 w8 q8 P7 r+ a0 }# X! F: r        modify_timestamp: Fri Jun 17 17:06:55 20226 g: m" |4 W- J" {3 }  K
 楼主| 发表于 2022-6-17 17:23:36 | 显示全部楼层
3、 快照导出的文件导入为新的RBD image 7 k( E1 {$ p% F! L$ i! V
快照的恢复过程使用的是刚刚上面提到的备份到本地的那些文件. 现在假如想恢复到v3那个快照的时间点,那么可以用两个方法 方法1:直接基于v3的时间点的快照做恢复 方法2:直接基于v1的时间点的数据,和后面的增量的v1-v3数据(要按顺序导入) 0 o' K& e) [) ?6 i) |% J, I( H
3.1增量导入:rbd import-diff ! ^7 i  x/ _1 d+ \
#方法1:直接基于v3的时间点的快照做恢复
5 r5 u$ C3 X* M4 I6 [) W* j8 a#首先随便创建一个image,名称大小都不限制,因为后面恢复的时候会覆盖掉大小的信息4 Y  O; H1 X% H( r
[root@rook-ceph-tools-6f5694c655-hzpj5 /]# rbd create replicapool/resume-v1 --size 1   
' j7 m) U, A1 Q. F" d; M$ ~5 y[root@rook-ceph-tools-6f5694c655-hzpj5 /]# rbd import-diff csz-busybox-v3 replicapool/resume-v1                                          Importing image diff: 100% complete...done., \$ b" N. D6 l7 V
[root@rook-ceph-tools-6f5694c655-hzpj5 /]#% V* w: N/ C* n
#方法2: 基于v1+ v1_v3数据恢复6 _. Z  Z! S/ L* `5 K
#首先随便创建一个image,名称大小都不限制,因为后面恢复的时候会覆盖掉大小的信息
  m4 t8 T1 ?0 [. b  ~[root@rook-ceph-tools-6f5694c655-hzpj5 /]# rbd create replicapool/resume-v3 --size 1
1 C+ H+ a6 M, r: k, x! f[root@rook-ceph-tools-6f5694c655-hzpj5 /]# rbd import-diff csz-busybox-v1 replicapool/resume-v3
  d% F1 ~: L$ T6 Z" e1 ]- T# wImporting image diff: 100% complete...done.
# M# K3 z6 p# `! F5 o, w' W[root@rook-ceph-tools-6f5694c655-hzpj5 /]# rbd import-diff csz-busybox-v1-v3 replicapool/resume-v3+ S$ r' M8 v9 @/ [. j, h$ P
1234567891011 ) Q& Y2 \3 x* Y: e! m' _  N
​ 实际项目当中就是,定期做快照,然后导出某个时间点快照的数据,然后导出增量的快照的数据,就可以了 3 x0 V% }* U* ?2 n1 \+ `! J9 S: X
3.2全量导入:rbd import 5 w7 Q/ K# `% Y8 ^( u% Y
注:不用提前创建目标image,否则rbd import会报错
4 b3 ~6 j+ w% u" \5 B" ?[root@rook-ceph-tools-6f5694c655-hzpj5 /]# rbd create replicapool/resume-full --size 1" S6 @4 I* C; N- S8 i! f) f
[root@rook-ceph-tools-6f5694c655-hzpj5 /]# rbd import-diff csz-busybox-full replicapool/resume-full8 E( t, Q" d1 }* B; S* ^4 S1 @1 T
rbd: invalid or unexpected diff banner
  W, F& S' D3 orbd: import-diff failed: (22) Invalid argument: i6 E; R- L  |! F
[root@rook-ceph-tools-6f5694c655-hzpj5 /]#( o9 `0 I  U. }0 e9 V& i
[root@rook-ceph-tools-6f5694c655-hzpj5 /]#% L: t, p. V+ L5 G  h
[root@rook-ceph-tools-6f5694c655-hzpj5 /]# rbd import csz-busybox-full replicapool/resume-full
: B. r& Q2 h2 y( Rrbd: image creation failed- j) W, W/ p& R4 X) v8 P
Importing image: 0% complete...failed.! y0 G2 m8 U0 |: o6 Z3 C- k; F
rbd: import failed: 2021-01-29T02:11:56.790+0000 7fdfdcb4b500 -1 librbd: rbd image resume-full already exists
1 n! o. ~6 @# q9 K  A. t1 \' y6 A(17) File exists/ ^; }6 L8 ?$ m% c5 P4 |
[root@rook-ceph-tools-6f5694c655-hzpj5 /]# rbd import csz-busybox-full replicapool/resume-full12 E) {$ I; q& t
Importing image: 100% complete...done.7 I- o  G1 f9 C! k6 D, J% I
[root@rook-ceph-tools-6f5694c655-hzpj5 /]#4 F* ~) b0 t" X7 ~$ a
1234567891011121314 . o- O" |& {- U0 J/ D4 O
四、如何利用这个 实际项目当中就是,定期做快照,然后导出某个时间点快照的数据,然后导出增量的快照的数据,就可以了,例如: 今天对所有的rbd的image做一个基础快照,然后导出这个快照的数据,然后从今天开始,每天晚上做一个快照,然后导出快照时间点之间的数据,这样每天导出来的就是一个增量的数据了,在做恢复的时候,就从第一个快照导入,然后按顺序导入增量的快照即可,也可以定期做一个快照,导出完整的快照数据,以防中间的增量快照漏了,然后就是要注意可以定期清理快照,如果是做备份的模式,在导入了快照数据后,也可以清理一些本地的数据,本地数据做异地机房复制的时候也可以做一下数据的压缩,来减少数据量的传输
; r5 |7 `( q* f9 c  A3 K客户端验证:将RBD image恢复到pod
- ^% M: E# X8 A, h- F( O思路:将新的image name重命名rename成原来的image name
7 X9 h( }8 w, D" ~  y8 [- k" ~删除旧的image
, @5 L6 k. n3 b$ A. F, {! R+ v# Step1:停掉pod对image的使用0 ^( p7 _/ M7 U0 X6 N
修改pod的yaml文件,将spec: replicas: 副本数改为0
) O; t1 t6 e  L2 s! m- C% n# Step2:清空旧image的snapshots
$ U& X. @" @' }1 O# V, B[root@rook-ceph-tools-6f5694c655-hzpj5 /]# rbd snap purge replicapool/csi-vol-387b2608-61f7-11eb-b9c5-0e28ddb26a3c
4 x7 d4 `% b3 @% U% v8 h& p0 rRemoving all snapshots: 100% complete...done.  J8 P" A- S: p: ^" E
# Step3:删除旧的image
3 Z; B& i9 L5 k4 O3 P. l[root@rook-ceph-tools-6f5694c655-hzpj5 /]# rbd rm replicapool/csi-vol-387b2608-61f7-11eb-b9c5-0e28ddb26a3c% b1 F( j: \  l% n
Removing image: 100% complete...done.- A$ c1 ^' _4 w
12345678
; w' H. T2 `* f: g" C) M; o将new image name重命名为old image name / J8 f% K1 V% F
[root@rook-ceph-tools-6f5694c655-hzpj5 /]# rbd rename replicapool/test-v3 replicapool/csi-vol-387b2608-61f7-11eb-b9c5-0e28ddb26a3c
9 g- R. D7 i8 B1 D1
$ ~" T% @, T# b% ~  m, ^9 M$ @# N启动pod 1 J; p8 N7 Q; i0 }5 q
修改pod的yaml文件,将spec: replicas: 副本数由0改回原值
8 w- D$ t# Q6 L1 o. O* g3 |% l3 `1
( E" |* i& k$ Z2 S$ T9 WFAQ:
+ A" S" j2 p$ j! f' Yrbd 删除image时,报错“rbd: image has snapshots - these must be deleted with ‘rbd snap purge’ before the image can be removed” 0 n6 `; N' @! ]/ i
[root@rook-ceph-tools-6f5694c655-hzpj5 /]# rbd rm replicapool/csi-vol-387b2608-61f7-11eb-b9c5-0e28ddb26a3c+ |7 F8 k, G7 w3 \) d
Removing image: 0% complete...failed.
- ]7 k( V: s5 t0 r$ \rbd: image has snapshots - these must be deleted with 'rbd snap purge' before the image can be removed.
/ o. h0 |) Z' ^+ S) f123
5 l) G8 _0 [, J+ [1 C, e解决方法:执行’rbd snap purge’删掉image相关snapshots - E2 }; ?' F) [7 `% f
rbd 删除image时,报错“rbd: error: image still has watchers”
; d6 g$ w  L. o" a- J! Q[root@rook-ceph-tools-6f5694c655-hzpj5 /]# rbd rm replicapool/csi-vol-6ee1b63a-6060-11eb-b9c5-0e28ddb26a3c
/ w: ~4 {: |" `& ?! x5 K0 J2021-01-29T06:22:09.698+0000 7fe4677fe700 -1 librbd::image::PreRemoveRequest: 0x55a645137470 check_image_watchers: image has watchers - not removing
* b+ x- R; K6 t8 p- ~1 ^3 o6 pRemoving image: 0% complete...failed.
, Q" _1 \8 g! Q' {, d  ~rbd: error: image still has watchers
& C9 h& v& U2 U: l$ yThis 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.2 M/ I$ U$ o. z' q
12345 / t2 m% `1 U2 A$ j$ H
解决方法:删除使用image的pod(修改pod的yaml文件,将spec: replicas: 副本数改为0)' i) n! b' i! V/ Z/ d
 楼主| 发表于 2022-6-17 17:25:41 | 显示全部楼层
[root@controller1 src]# rbd resize --size 50G hdd-8T-volumes/volume-7339c495-25dd-44a3-b0cb-3b00cd59e070- {; Y: g/ P7 R4 e; |9 e  S
Resizing image: 100% complete...done.
0 ]% p" ]) Z3 J6 c6 b+ H8 g[root@controller1 src]# rbd info hdd-8T-volumes/volume-7339c495-25dd-44a3-b0cb-3b00cd59e070
3 \! w3 m! \* W) a/ r1 Wrbd image 'volume-7339c495-25dd-44a3-b0cb-3b00cd59e070':
0 C- j- h7 q7 R* b0 G% F        size 50 GiB in 12800 objects
. V# x$ C' q: M, O: T$ O6 p        order 22 (4 MiB objects)0 \5 K* m! }8 k8 q: {# w' U
        snapshot_count: 0
5 G- H0 ]4 c$ m4 B. Q: W, r        id: 9eb6a0f364b72b
% P! b8 @, U" G/ S        block_name_prefix: rbd_data.9eb6a0f364b72b
) t+ S. S) v# }+ D: Z  K. R0 w        format: 2
/ a5 c; L( m0 @) Q% K        features: layering8 `0 f/ r( Y! Q1 n
        op_features: ; W3 p- o1 ?' {, {
        flags: , Z$ |( f# K/ Y  `$ d
        create_timestamp: Fri Jun 17 17:06:55 2022
" u% f# ?( K  I4 |/ ^        access_timestamp: Fri Jun 17 17:06:55 2022
5 n5 B" g8 ]6 l  U9 x+ t        modify_timestamp: Fri Jun 17 17:06:55 2022
 楼主| 发表于 2022-6-17 17:37:29 | 显示全部楼层
在openstack上扩展卷后,底层执行命令:
, E5 K; k" }2 j7 t[root@controller1 src]# rbd info hdd-8T-volumes/volume-7339c495-25dd-44a3-b0cb-3b00cd59e070
  F& _# n/ J4 M! t2 Srbd image 'volume-7339c495-25dd-44a3-b0cb-3b00cd59e070':. J/ j& L6 C+ J/ [4 l, I' z) S
        size 50 GiB in 12800 objects
- Q7 t' A: H5 w& S9 S8 G6 J# }, e! \( {        order 22 (4 MiB objects)* E9 K+ V9 H" U
        snapshot_count: 0+ A# z9 t6 C1 L  @3 [
        id: 9eb6a0f364b72b5 o7 ~! f/ C8 n! {# r" C) d/ n
        block_name_prefix: rbd_data.9eb6a0f364b72b! _$ ~  S- j; k. ]
        format: 2
# c, s3 A( r4 Y  y        features: layering
. |' P- z8 m/ ^. w' z( P* Q        op_features: ( g/ q2 o4 k$ [7 G( K& t( G; Z/ K
        flags: ' k: c/ t+ k! i! z
        create_timestamp: Fri Jun 17 17:06:55 20227 d3 Z6 K5 ^% G9 b* N8 H8 x6 ~
        access_timestamp: Fri Jun 17 17:06:55 2022# D) H7 ~3 e6 }
        modify_timestamp: Fri Jun 17 17:06:55 2022
- b2 @5 l2 A0 J. a/ t! S8 Y[root@controller1 src]# rbd info hdd-8T-volumes/volume-7339c495-25dd-44a3-b0cb-3b00cd59e070
3 \7 A; h. d" z6 _rbd image 'volume-7339c495-25dd-44a3-b0cb-3b00cd59e070':
8 }/ z- k5 H* P9 L3 |        size 51 GiB in 13056 objects
: c, t& T! W9 s        order 22 (4 MiB objects)0 M# g8 [, u/ W9 D
        snapshot_count: 0) D( i: j) L' ^
        id: 9eb6a0f364b72b
3 v) A: f" L7 \7 Q        block_name_prefix: rbd_data.9eb6a0f364b72b
2 P1 _% h0 Z3 J+ g$ G( {        format: 2" ]. g" u3 D, [6 [0 |4 \" X
        features: layering4 @/ o" L3 b, _3 \8 @) d2 P4 N% n# v
        op_features: 4 h+ V. s$ _  C9 o2 \
        flags:
: G$ i- G$ P. v        create_timestamp: Fri Jun 17 17:06:55 2022
+ r6 I5 d  G5 [) l, J3 d% E        access_timestamp: Fri Jun 17 17:06:55 2022
0 ], }$ _! T2 y% R& G2 i# g        modify_timestamp: Fri Jun 17 17:06:55 2022  t+ `; i' x8 e. ^: s- z
[root@controller1 src]# rbd info hdd-8T-volumes/volume-7339c495-25dd-44a3-b0cb-3b00cd59e070
  N1 m3 r4 V# E% P/ Orbd image 'volume-7339c495-25dd-44a3-b0cb-3b00cd59e070':. D! V0 ^0 _; s5 e- ^
        size 51 GiB in 13056 objects5 s& P6 j  p" O* q, n
        order 22 (4 MiB objects)- u. U2 R. T$ p" N
        snapshot_count: 0
8 z8 e$ j$ p+ V8 Z1 c. O; K) \        id: 9eb6a0f364b72b
& w5 B. @3 F- I5 c" l& |% j4 Q3 X        block_name_prefix: rbd_data.9eb6a0f364b72b5 s* B" }& h7 j- I
        format: 2
$ d$ |, B0 e( X3 u+ m        features: layering
3 P$ \" H3 M6 e& \" E        op_features: * [7 U) H* x) J  f/ X
        flags: 2 V' p  z0 `; g; F, i
        create_timestamp: Fri Jun 17 17:06:55 2022
! Y1 O4 ?) _( I        access_timestamp: Fri Jun 17 17:06:55 2022
# O. f6 {- F% Q4 t/ W- K        modify_timestamp: Fri Jun 17 17:06:55 2022
# A8 u6 N) W9 \6 U! o7 J& U: O[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# _$ a! X4 Y9 a) h# W
volume-98e50ac1-3b42-4393-b53f-6c6832fec4c4, ~5 l5 k0 I9 T! A
[root@host09 images]# rbd rename volumes-hdd/volume-98e50ac1-3b42-4393-b53f-6c6832fec4c4 volumes-hdd/volume-98e50ac1-3b42-4393-b53f-6c6832fec4c4-bak6 n+ y, r: _( \2 L+ [0 ?
[root@host09 images]# rbd -p volumes-hdd ls |grep 98e50ac1-3b42-4393-b53f-6c6832fec4c4
: c7 f9 ?: E3 y) ]) Pvolume-98e50ac1-3b42-4393-b53f-6c6832fec4c4-bak
3 x2 C! ?1 R2 ~% n8 ?$ {[root@host09 images]# rbd import volume-98e50ac1-3b42-4393-b53f-6c6832fec4c4.raw volumes-hdd/volume-98e50ac1-3b42-4393-b53f-6c6832fec4c4; P2 [  D6 Y! g8 ~
Importing image: 100% complete...done.
5 W2 X( `2 U6 I/ L( D1 ][root@host09 images]#
- w8 R) g' W" H' v& Z8 c
您需要登录后才可以回帖 登录 | 开始注册

本版积分规则

关闭

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

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

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

GMT+8, 2026-4-9 00:03 , Processed in 0.060257 second(s), 26 queries .

Powered by Discuz! X3.4 Licensed

© 2012-2025 Discuz! Team.

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