将设为首页浏览此站
开启辅助访问 天气与日历 收藏本站联系我们切换到窄版

易陆发现论坛

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

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

[复制链接]
发表于 2022-6-17 17:17:03 | 显示全部楼层 |阅读模式
购买主题 本主题需向作者支付 10 金钱 才能浏览
 楼主| 发表于 2022-6-17 17:22:40 | 显示全部楼层
查看导入的ceph镜像的大小:- F, m4 S; |. O( [  i1 Z: H
[root@controller1 src]# rbd info hdd-8T-volumes/volume-7339c495-25dd-44a3-b0cb-3b00cd59e070
1 X5 I1 `5 X2 b: q+ Urbd image 'volume-7339c495-25dd-44a3-b0cb-3b00cd59e070':
1 X; i& d3 }( {+ M# S6 u* l        size 2.8 GiB in 717 objects
* s( d' x  \( X5 x5 L        order 22 (4 MiB objects)
7 ^7 p$ n5 W, V+ _4 L4 e        snapshot_count: 0
; B0 H- d7 O* t        id: 9eb6a0f364b72b8 i+ q, A% M, v1 [" I& |" `& p
        block_name_prefix: rbd_data.9eb6a0f364b72b
; h/ O1 t+ `3 _        format: 2
' J+ @: S7 @1 d2 M' w# t0 a% O  r        features: layering3 Y7 Q' A$ g2 w1 B
        op_features: 2 f$ v6 \+ N1 g, `8 F# z: o6 m
        flags: 7 z, V; j  O( N* A
        create_timestamp: Fri Jun 17 17:06:55 20221 I6 l' _9 M2 M" X
        access_timestamp: Fri Jun 17 17:06:55 20228 \6 n1 E  Q# R- r
        modify_timestamp: Fri Jun 17 17:06:55 20223 ^/ L) s7 v4 S( `8 j) ?; ~
 楼主| 发表于 2022-6-17 17:23:36 | 显示全部楼层
3、 快照导出的文件导入为新的RBD image % l$ ~5 k3 }# t
快照的恢复过程使用的是刚刚上面提到的备份到本地的那些文件. 现在假如想恢复到v3那个快照的时间点,那么可以用两个方法 方法1:直接基于v3的时间点的快照做恢复 方法2:直接基于v1的时间点的数据,和后面的增量的v1-v3数据(要按顺序导入)
4 H- W* D/ m9 K4 U3.1增量导入:rbd import-diff ) u  b8 K/ a0 m
#方法1:直接基于v3的时间点的快照做恢复
6 B! j) _% q) i1 U8 T#首先随便创建一个image,名称大小都不限制,因为后面恢复的时候会覆盖掉大小的信息# h3 a, _: z# ]) p
[root@rook-ceph-tools-6f5694c655-hzpj5 /]# rbd create replicapool/resume-v1 --size 1      |# Z/ c8 j" M
[root@rook-ceph-tools-6f5694c655-hzpj5 /]# rbd import-diff csz-busybox-v3 replicapool/resume-v1                                          Importing image diff: 100% complete...done.
& S1 c! Y2 }& g; w, l4 f: M9 F, L: f[root@rook-ceph-tools-6f5694c655-hzpj5 /]#0 ~5 z# ]( I8 E4 T7 |
#方法2: 基于v1+ v1_v3数据恢复
; [. W+ B  B8 b# t#首先随便创建一个image,名称大小都不限制,因为后面恢复的时候会覆盖掉大小的信息
* d- d. M. U6 b7 F[root@rook-ceph-tools-6f5694c655-hzpj5 /]# rbd create replicapool/resume-v3 --size 1
0 t, _9 h" m5 ~, `[root@rook-ceph-tools-6f5694c655-hzpj5 /]# rbd import-diff csz-busybox-v1 replicapool/resume-v3
, i0 |- J" G4 {" |+ P4 }Importing image diff: 100% complete...done.- K7 J# n% W% f
[root@rook-ceph-tools-6f5694c655-hzpj5 /]# rbd import-diff csz-busybox-v1-v3 replicapool/resume-v3
+ ~6 X! D5 i" t) |; o9 K. n1234567891011
9 [$ I' i, W( ^4 s7 B​ 实际项目当中就是,定期做快照,然后导出某个时间点快照的数据,然后导出增量的快照的数据,就可以了
% q3 @% `, U2 V' o% {' Q3.2全量导入:rbd import
; _7 @# [8 G$ y  v! Z注:不用提前创建目标image,否则rbd import会报错
3 `" n  E! c# W/ Q, D! Z& m0 z: Z" |[root@rook-ceph-tools-6f5694c655-hzpj5 /]# rbd create replicapool/resume-full --size 1" Q/ Q- V: ]. y+ m! |
[root@rook-ceph-tools-6f5694c655-hzpj5 /]# rbd import-diff csz-busybox-full replicapool/resume-full7 l& _" `& |' N1 N/ k8 G
rbd: invalid or unexpected diff banner
% u8 Q, `' o& y  Q- m; z+ l7 N2 ~6 Nrbd: import-diff failed: (22) Invalid argument! W2 j, h  @5 R
[root@rook-ceph-tools-6f5694c655-hzpj5 /]#
" J) r, o8 d- g6 v[root@rook-ceph-tools-6f5694c655-hzpj5 /]#2 w. @1 h% k/ b& c4 b
[root@rook-ceph-tools-6f5694c655-hzpj5 /]# rbd import csz-busybox-full replicapool/resume-full
! T/ D$ R5 F  o( ^rbd: image creation failed
, o( _6 q; P& ]" O4 ^$ EImporting image: 0% complete...failed.
! h% _  L( J7 W* D- a( C6 C/ Vrbd: import failed: 2021-01-29T02:11:56.790+0000 7fdfdcb4b500 -1 librbd: rbd image resume-full already exists
+ l: E- t5 H. o(17) File exists6 a7 }9 W+ I% a' l; K6 i, Y$ m( g
[root@rook-ceph-tools-6f5694c655-hzpj5 /]# rbd import csz-busybox-full replicapool/resume-full1, g5 f) g  R1 Q( Q& U* G
Importing image: 100% complete...done.* y4 v  o+ X  O
[root@rook-ceph-tools-6f5694c655-hzpj5 /]#  W) H) K& {/ z
1234567891011121314
5 x5 a& }: h' n1 u+ v7 N 四、如何利用这个 实际项目当中就是,定期做快照,然后导出某个时间点快照的数据,然后导出增量的快照的数据,就可以了,例如: 今天对所有的rbd的image做一个基础快照,然后导出这个快照的数据,然后从今天开始,每天晚上做一个快照,然后导出快照时间点之间的数据,这样每天导出来的就是一个增量的数据了,在做恢复的时候,就从第一个快照导入,然后按顺序导入增量的快照即可,也可以定期做一个快照,导出完整的快照数据,以防中间的增量快照漏了,然后就是要注意可以定期清理快照,如果是做备份的模式,在导入了快照数据后,也可以清理一些本地的数据,本地数据做异地机房复制的时候也可以做一下数据的压缩,来减少数据量的传输 $ f: A3 N6 c9 w% Z: W$ M# i9 b5 F' \
客户端验证:将RBD image恢复到pod
/ f9 a8 ^$ L5 ?7 g; |% _/ a思路:将新的image name重命名rename成原来的image name
' }& |0 N! j$ n" U) e9 \$ }7 t" K/ E9 l删除旧的image $ U) Q9 z0 m4 |
# Step1:停掉pod对image的使用: Z  I( u% Y7 H5 G4 v: V
修改pod的yaml文件,将spec: replicas: 副本数改为0
2 U& O& f% T% n' B" `- g* g# Step2:清空旧image的snapshots6 l: e) \- f( d
[root@rook-ceph-tools-6f5694c655-hzpj5 /]# rbd snap purge replicapool/csi-vol-387b2608-61f7-11eb-b9c5-0e28ddb26a3c
. l# v! x& {0 c( k) `7 PRemoving all snapshots: 100% complete...done.
4 W8 @3 l/ D0 G7 `$ ~: D# m1 V# Step3:删除旧的image
$ Y" D2 W# u1 V& x4 G# m1 I[root@rook-ceph-tools-6f5694c655-hzpj5 /]# rbd rm replicapool/csi-vol-387b2608-61f7-11eb-b9c5-0e28ddb26a3c
8 o: y8 R' Y+ ]% b5 R' n" Y& nRemoving image: 100% complete...done.
& h( R( @8 Z# k; D% w! F12345678 * j4 Q( T( V/ R% Y( v/ v' U* `
将new image name重命名为old image name
4 |' f8 L; y" |; j* T/ l[root@rook-ceph-tools-6f5694c655-hzpj5 /]# rbd rename replicapool/test-v3 replicapool/csi-vol-387b2608-61f7-11eb-b9c5-0e28ddb26a3c. E9 q! H3 }. S' v% {6 d
1 3 c- _, {- K* m$ Y% W9 a6 E
启动pod % n9 j) q( E3 o# J, m% K
修改pod的yaml文件,将spec: replicas: 副本数由0改回原值. e9 o" c0 w; T' M6 V/ |
1 " E! V2 u1 q1 S& r, s8 W
FAQ: ( K8 F2 M5 H6 S! N# v/ r: x2 }
rbd 删除image时,报错“rbd: image has snapshots - these must be deleted with ‘rbd snap purge’ before the image can be removed”
: p$ U4 c7 j' E' {- Y$ A9 u[root@rook-ceph-tools-6f5694c655-hzpj5 /]# rbd rm replicapool/csi-vol-387b2608-61f7-11eb-b9c5-0e28ddb26a3c
% {2 {; ^& D/ y2 p$ c) YRemoving image: 0% complete...failed.
! e) ]& Y6 S2 v- [; X- `rbd: image has snapshots - these must be deleted with 'rbd snap purge' before the image can be removed.
- p3 I0 Q9 d6 n123
) l5 Z% c3 L5 E3 x# t+ S. Y解决方法:执行’rbd snap purge’删掉image相关snapshots
: |/ t% V4 r9 [) U3 o: \rbd 删除image时,报错“rbd: error: image still has watchers” , O9 N+ J; I" y. D8 V) V8 P+ K
[root@rook-ceph-tools-6f5694c655-hzpj5 /]# rbd rm replicapool/csi-vol-6ee1b63a-6060-11eb-b9c5-0e28ddb26a3c$ i7 n$ M/ `* ^( W; h- t7 g1 V7 R; w
2021-01-29T06:22:09.698+0000 7fe4677fe700 -1 librbd::image::PreRemoveRequest: 0x55a645137470 check_image_watchers: image has watchers - not removing
0 }: _8 {7 k' A; Y' y! L: g, WRemoving image: 0% complete...failed.
$ _- |; F) I, E; U* v/ d* Srbd: error: image still has watchers
, q- q1 \, a$ |4 JThis 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.
( C# {; |. n" P8 b7 b$ w# n12345 ( }. _7 v+ y2 c3 j) }/ `' L+ N
解决方法:删除使用image的pod(修改pod的yaml文件,将spec: replicas: 副本数改为0)+ P# Y* w' }& ~& q7 ?  ~
 楼主| 发表于 2022-6-17 17:25:41 | 显示全部楼层
[root@controller1 src]# rbd resize --size 50G hdd-8T-volumes/volume-7339c495-25dd-44a3-b0cb-3b00cd59e070
. E( W% K) n! V. U5 l1 R+ kResizing image: 100% complete...done./ R$ W4 y1 ]9 Z+ |4 S
[root@controller1 src]# rbd info hdd-8T-volumes/volume-7339c495-25dd-44a3-b0cb-3b00cd59e070! N5 E+ }' H/ y/ i
rbd image 'volume-7339c495-25dd-44a3-b0cb-3b00cd59e070':
& C  N% Z! B) K( C        size 50 GiB in 12800 objects' C7 F- k1 ?/ G& c. c
        order 22 (4 MiB objects)
2 s  P- x, B3 S  P9 Z        snapshot_count: 0& Z4 F$ Y- G3 l. |+ L4 a' L
        id: 9eb6a0f364b72b
" O$ i% Y+ `6 @: I        block_name_prefix: rbd_data.9eb6a0f364b72b
( a% z% x6 i3 N! [0 D2 C& G) S        format: 2% }% f; q; J. Z. A/ @
        features: layering2 f( Q7 m) D/ l/ V
        op_features:
3 a$ h/ f, P% N: W6 ^. }        flags: 5 ~6 Z& L+ G( V' Y
        create_timestamp: Fri Jun 17 17:06:55 20226 R8 d% d( g; o) k
        access_timestamp: Fri Jun 17 17:06:55 2022
8 f& J) h1 s* j        modify_timestamp: Fri Jun 17 17:06:55 2022
 楼主| 发表于 2022-6-17 17:37:29 | 显示全部楼层
在openstack上扩展卷后,底层执行命令:% m' G4 w+ Z$ _  i5 `0 r3 p3 Q' s. ]
[root@controller1 src]# rbd info hdd-8T-volumes/volume-7339c495-25dd-44a3-b0cb-3b00cd59e070
1 K& n6 ^9 J% K' \rbd image 'volume-7339c495-25dd-44a3-b0cb-3b00cd59e070':# J0 M* n2 K) h1 O& G$ b  N
        size 50 GiB in 12800 objects, b5 M' m$ p; b/ v# w
        order 22 (4 MiB objects)
, ~# X0 F/ J3 |# y: V1 E        snapshot_count: 0
( [, R6 w1 M, Q- P2 h        id: 9eb6a0f364b72b2 [( x3 v- D7 f8 M
        block_name_prefix: rbd_data.9eb6a0f364b72b$ h% R5 a( `. i  f
        format: 2; w0 \7 R: F) V! _$ }  [; N; Q
        features: layering+ j9 g5 K# {1 _7 _
        op_features:
  U! H# K/ a/ k        flags: 4 N, a/ D7 f8 n$ [
        create_timestamp: Fri Jun 17 17:06:55 2022
+ b) X5 z* p& c0 t2 F7 g        access_timestamp: Fri Jun 17 17:06:55 2022
% F- ?7 `! Y. @' u        modify_timestamp: Fri Jun 17 17:06:55 2022) D  l# M& I: X. q
[root@controller1 src]# rbd info hdd-8T-volumes/volume-7339c495-25dd-44a3-b0cb-3b00cd59e0709 w8 [0 ~, b$ N9 ~- @" b
rbd image 'volume-7339c495-25dd-44a3-b0cb-3b00cd59e070':# U3 N4 W9 ?7 Z. f
        size 51 GiB in 13056 objects. w  N8 N( l7 m6 Z# n1 Q9 t
        order 22 (4 MiB objects)) K0 _" w+ V6 e: z. S
        snapshot_count: 01 T! c3 x6 c+ q% I' q0 L' T
        id: 9eb6a0f364b72b
0 K) \) h3 M8 S1 D3 ^. ?2 ~% W        block_name_prefix: rbd_data.9eb6a0f364b72b
% D- R) A, y' i8 [, [6 z$ [6 p        format: 22 B3 A7 h: Q) T
        features: layering, j0 e( @& R# d/ e5 h( i: k: Y9 w
        op_features:
1 G- H8 S9 ^0 I5 }! v/ B/ X9 s8 Z        flags: , l- k; v) a! G" b+ l  e
        create_timestamp: Fri Jun 17 17:06:55 2022
" X9 @6 v- Q/ H  V9 Y6 b' A" G        access_timestamp: Fri Jun 17 17:06:55 2022
3 f+ k) p$ H1 c/ y. C; O8 o: p        modify_timestamp: Fri Jun 17 17:06:55 2022# r2 P) i3 H' k$ a1 ^7 X* {5 i  E
[root@controller1 src]# rbd info hdd-8T-volumes/volume-7339c495-25dd-44a3-b0cb-3b00cd59e070
( d. Z* q4 l! n% x/ @rbd image 'volume-7339c495-25dd-44a3-b0cb-3b00cd59e070':( B5 H6 f- l/ T' q( L- Z. @
        size 51 GiB in 13056 objects% s; ?- Y) r, I+ X0 R
        order 22 (4 MiB objects)
) c+ d) x' N$ K. L8 ~& k6 g+ z        snapshot_count: 0
) A  Z$ {0 g- Y# {. N        id: 9eb6a0f364b72b
$ z1 n* P. O8 Z( P0 j6 A4 `2 ]        block_name_prefix: rbd_data.9eb6a0f364b72b
0 i9 G* }* r/ W2 Z; d. {" m* N        format: 2
; [/ s/ K& w' T2 K, }! g% n2 S        features: layering
+ u, d7 B5 a# _9 j7 {7 b: g        op_features:
" o( O* b. ~3 t; C6 O        flags: 3 E% B2 D/ ?; o! w7 n3 v
        create_timestamp: Fri Jun 17 17:06:55 2022
% Z, a: f; V; S: ?( Y        access_timestamp: Fri Jun 17 17:06:55 2022# e8 ^6 s- _8 j& w" h- u
        modify_timestamp: Fri Jun 17 17:06:55 2022
3 B; Z# k* E& p+ v. A+ F[root@controller1 src]#
 楼主| 发表于 2022-6-17 17:39:50 | 显示全部楼层
一套完整的流程搞定。openstack上不创建镜像,即可完成镜像使用。
您需要登录后才可以回帖 登录 | 开始注册

本版积分规则

关闭

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

如有购买积分卡请联系497906712

QQ|返回首页|Archiver|手机版|小黑屋|易陆发现 点击这里给我发消息

GMT+8, 2022-7-4 11:00 , Processed in 0.064099 second(s), 25 queries .

Powered by LR.LINUX.cloud bbs168x X3.2 Licensed

© 2012-2022 Comsenz Inc.

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