易陆发现互联网技术论坛

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

openstack 平台cinder-backup恢复失败通过rbd方式恢复卷备处理过程份

[复制链接]
发表于 2022-7-20 11:23:11 | 显示全部楼层 |阅读模式
购买主题 本主题需向作者支付 10 金钱 才能浏览
 楼主| 发表于 2022-7-20 11:47:01 | 显示全部楼层
最后所有的      卷恢复后,删除原来的系统盘卷,记录如下:/ O+ y, |, J7 c
[root@compute06 src]# rbd ls  -p  hdd-8T-volumes |grep bak+ @& W, i$ `2 m2 f3 S
volume-84942e67-2606-4efc-b27d-f7cd7612a311-bak4 S# x8 o( I+ F* B+ ?: x  ]
volume-cac25744-8d4d-4930-bc1a-4e47dae3177a-bak8 a. D) [9 |" H+ E  p5 a, W
volume-e0a075b5-0f1e-443e-8dd4-6077b3ecec8d-bak
1 i- a* t2 K: H3 D1 [9 y[root@compute06 src]#
! N( L  g& Y) [) D[root@compute06 src]# 4 P' s2 S7 e7 s$ ?+ m6 l
[root@compute06 src]# * a) ^8 `( P. B$ j7 k6 g. z
[root@compute06 src]# 5 Z0 ^6 r7 k4 M& p0 i- ?: H
[root@compute06 src]# rbd rm hdd-8T-volumes/volume-84942e67-2606-4efc-b27d-f7cd7612a311-bak
3 m$ F( o" |* f7 ]9 f; {3 {0 \2022-07-20 11:30:32.338 7f3868c35b00 -1 librbd::image::PreRemoveRequest: 0x55aaf6c55770 check_image_snaps: image has snapshots - not removing
1 ^, e5 s) M3 N+ WRemoving image: 0% complete...failed.
- c6 X7 }- ?: u3 xrbd: image has snapshots - these must be deleted with 'rbd snap purge' before the image can be removed.3 K- K- _3 G( I- z+ f5 s
[root@compute06 src]# rbd snap purge hdd-8T-volumes/volume-84942e67-2606-4efc-b27d-f7cd7612a311-bak
: P4 J8 M' z4 d* r& s, `: }Removing all snapshots: 100% complete...done.
* k: b5 Z9 |0 T* `[root@compute06 src]# rbd rm hdd-8T-volumes/volume-84942e67-2606-4efc-b27d-f7cd7612a311-bak8 ^0 D# B4 Z, V, N0 N' E
Removing image: 100% complete...done.
9 U; ]2 B% i0 w, I/ q9 Q; y# @[root@compute06 src]# rbd rm hdd-8T-volumes/volume-cac25744-8d4d-4930-bc1a-4e47dae3177a-bak 1 p/ }) f* O: ~  }! {) U
2022-07-20 11:35:50.337 7f8d6925cb00 -1 librbd::image::PreRemoveRequest: 0x561d24561770 check_image_snaps: image has snapshots - not removing
+ n. e9 U  X( h2 q9 kRemoving image: 0% complete...failed.7 z% o/ h. i& }
rbd: image has snapshots - these must be deleted with 'rbd snap purge' before the image can be removed.% r; }( B3 y: W5 N
[root@compute06 src]# rbd snap purge hdd-8T-volumes/volume-cac25744-8d4d-4930-bc1a-4e47dae3177a-bak : l. G, `- \6 l
Removing all snapshots: 100% complete...done.
" C) X$ I% q! q5 G) m4 m[root@compute06 src]# rbd rm hdd-8T-volumes/volume-cac25744-8d4d-4930-bc1a-4e47dae3177a-bak
; E1 E, q$ ~1 C$ |Removing image: 100% complete...done.
( R% p" t+ o) t[root@compute06 src]# rbd rm hdd-8T-volumes/volume-e0a075b5-0f1e-443e-8dd4-6077b3ecec8d-bak- a% m8 A! N4 _& U8 C% [# k( f9 P7 ]
2022-07-20 11:40:58.579 7f5a311ddb00 -1 librbd::image::PreRemoveRequest: 0x55e64a4d2740 check_image_snaps: image has snapshots - not removing
5 T- t" R* C- t8 X7 QRemoving image: 0% complete...failed.  M2 L; W  D* S1 n5 |: D
rbd: image has snapshots - these must be deleted with 'rbd snap purge' before the image can be removed.
. h3 ]  [% w* E  e) C) N3 v* `[root@compute06 src]# rbd snap purge hdd-8T-volumes/volume-e0a075b5-0f1e-443e-8dd4-6077b3ecec8d-bak
9 m. T+ g# \$ X. KRemoving all snapshots: 100% complete...done.
8 J  l6 c* l- l; E[root@compute06 src]# rbd rm hdd-8T-volumes/volume-e0a075b5-0f1e-443e-8dd4-6077b3ecec8d-bak
+ Y# ?/ l! T1 r3 fRemoving image: 100% complete...done.
 楼主| 发表于 2022-7-20 11:48:24 | 显示全部楼层
上述完美完成rbd import 导入export 导出 解决openstack cinder-back报错,无法还原的问题。
 楼主| 发表于 2022-7-20 13:38:27 | 显示全部楼层
其他方式文档介绍::% X' M7 b% I8 g4 ~( F6 J, E9 ^8 B/ I
创建云盘volume-id,大小为1G
2 J' _/ U  G; J0 T# o3 U* E" \% O4 y
()[root@busybox-openstack-f7bcf88-hgdkz /]# rbd create volumes/volume-id --size 1G
, l2 j9 V2 D$ u& F! {()[root@busybox-openstack-f7bcf88-hgdkz /]# rbd ls -l volumes |grep volume-id
. }: k' i( N, B, G' Jvolume-id         1GiB                          2           
/ Q( s6 D! [5 E" C( O5 g+ i* Z: _0 e# u" L( M

) T* `9 C" d3 T! x- F2. 先尝试进行diff store, 创建backups中的base盘
# L$ ]* C1 B" p8 i* j+ G9 z5 P( Q5 r) z2 r
()[root@busybox-openstack-f7bcf88-hgdkz /]# rbd create backups/volume-volume-id.backup.base --size 1G& U' B7 H( |5 s
()[root@busybox-openstack-f7bcf88-hgdkz /]# rbd ls -l backups
9 h0 z$ }7 Y' d9 K' J  ?+ sNAME                         SIZE PARENT FMT PROT LOCK
1 \8 a4 k$ M% o6 z2 V+ }volume-volume-id.backup.base 1GiB          2           $ o, t' C! M% V9 V+ ]* H: N
0 U( W- P% B0 E4 U' w. I+ Y
! M" e7 y5 v' s: w3 o$ P
3. 创建volume-id快照1,命名规则如下$ q3 [+ x1 \  y# F2 B  H
; @5 P  q0 G: P; }
()[root@busybox-openstack-f7bcf88-hgdkz /]# rbd snap  create volumes/volume-id@backup.backup-id.snap.time1
# X! h- d3 m5 \7 d()[root@busybox-openstack-f7bcf88-hgdkz /]# rbd ls -l volumes |grep volume-id
6 m7 ]) H1 v* `" @; k3 K" zvolume-id                                 1GiB                       2           
" l1 G8 y6 J2 _$ Svolume-id@backup.backup-id.snap.time1     1GiB                       2           
8 v3 {0 g# a# `
: N) V- T- ^9 U8 W2 v* l3 Z& T% g+ }
7 {) S7 D  v7 H7 g" V; A4. 导出云盘和快照1的差异1
* S7 k; G+ I8 w/ g: h
4 D* y3 n) d! I5 |1 O) o/ y9 y()[root@busybox-openstack-f7bcf88-hgdkz /]# rbd export-diff volumes/volume-id@backup.backup-id.snap.time1 test_diff_snap_time1" X  v* p2 y8 j$ g4 s
Exporting image: 100% complete...done.
: k  J7 D0 h/ j! O, i()[root@busybox-openstack-f7bcf88-hgdkz /]# ls% X0 [- d9 o9 x$ F% O
test_diff_snap_time1
9 }5 U  {' y/ {) m8 k2 Z7 e
3 A) X' y! k3 A3 E( R1 U3 Q9 ^1 b, D: a# v' U0 \5 Q6 q3 M, _
5. 将差异1导入到backups的base盘中,此时base盘生成了一个快照" {; o: m# j  ?, B, i
3 Y* e% M/ J- n1 |- i
()[root@busybox-openstack-f7bcf88-hgdkz /]# rbd import-diff test_diff_snap_time1 backups/volume-volume-id.backup.base5 g3 i* x/ V8 z! d( r7 g$ I# a
Importing image diff: 100% complete...done.$ _) u2 ~( g' G) l" G" N
()[root@busybox-openstack-f7bcf88-hgdkz /]# rbd ls -l backups
* a( K. y) }. }% n3 ]* ]3 eNAME                                                     SIZE PARENT FMT PROT LOCK 6 r, u' U2 j9 }- [
volume-volume-id.backup.base                             1GiB          2           ' F* j& K# S. c9 c5 l) \
volume-volume-id.backup.base@backup.backup-id.snap.time1 1GiB          2           
1 s" ?( U+ w: D: c/ s" X4 F5 ?* ~. o2 j# J
) Y( J- I7 U$ w0 U: }
6. 第二次做增量备份时, 创建volume-id新的快照25 D9 d3 @; C) O4 M
/ [9 o. j: |7 }) U7 s* O/ R& y4 H' t6 E
()[root@busybox-openstack-f7bcf88-hgdkz /]# rbd snap  create volumes/volume-id@backup.backup-id2.snap.time28 ~8 u& ~. ^# g
()[root@busybox-openstack-f7bcf88-hgdkz /]# rbd ls -l backups% g+ Z: m- L" F; q# L5 M$ h2 R9 Q
NAME                                                     SIZE PARENT FMT PROT LOCK 6 u% [. u& p, ]# O* ]
volume-volume-id.backup.base                             1GiB          2           
/ j' b/ e+ d6 y; g! |1 ?volume-volume-id.backup.base@backup.backup-id.snap.time1 1GiB          2           
& a5 D. F4 r8 G( h9 P()[root@busybox-openstack-f7bcf88-hgdkz /]# rbd ls -l volumes |grep volume-id& L9 c' k8 d% u; J4 Q+ f
volume-id                                                                                     1GiB                                                                                                        2           
% O' U! Y# l" `/ fvolume-id@backup.backup-id.snap.time1                                                         1GiB                                                                                                        2           
$ k* L. _! l) r3 Bvolume-id@backup.backup-id2.snap.time2                                                        1GiB                                                                                                        2           * y3 U- `) g2 m! Y  `% U

# S, m  a" u# u! n. ?! r( {
7 N# z9 K$ \! W0 d* k7. 导出快照1和快照2的差异2
6 j. K+ P+ j. ?: v$ U  s% J( p+ w2 J& ?! i, F5 o
()[root@busybox-openstack-f7bcf88-hgdkz /]# rbd export-diff --snap backup.backup-id.snap.time1 volumes/volume-id@backup.backup-id2.snap.time2 test_diff_snap_time1_time2, ]- k+ o: p& _/ B
Exporting image: 100% complete...done.
: b8 {# Z9 a  ?# c7 o+ E: y& z: I7 @3 L5 |0 c
8. 将差异2导入backups的base盘,此时base盘又生成了一个新的快照/ I4 e" p$ T7 _' W$ i5 m- F, r7 R
  W" l  l1 n3 Q+ h! v1 c; X( v, ?* m0 N
()[root@busybox-openstack-f7bcf88-hgdkz /]# rbd import-diff test_diff_snap_time1_time2 backups/volume-volume-id.backup.base7 m3 _$ o- N. h0 a. B
Importing image diff: 100% complete...done.
: z. J% @6 c- I$ b: t()[root@busybox-openstack-f7bcf88-hgdkz /]# rbd ls -l backups- ^+ h, }8 f9 M3 d1 V  T
NAME                                                      SIZE PARENT FMT PROT LOCK & _% I* r: ?! k: X$ @
volume-volume-id.backup.base                              1GiB          2           " `. H( M1 @* N
volume-volume-id.backup.base@backup.backup-id.snap.time1  1GiB          2           
" z& A/ K0 n: o( W3 ?volume-volume-id.backup.base@backup.backup-id2.snap.time2 1GiB          2           
% a9 b5 S% H: C+ d5 k$ j6 z; V- @) k  _) ^4 g8 @
8 ]( Y; n5 P9 b3 K
9. 删除volume-id的快照14 ~1 C  @! ?5 o" ?8 v$ W+ I

* M) V# n+ n) y  o" |; K7 {5 W10. 如果diff store出现异常, 会通过full store来备份, 通过将云盘按照chunk=128M分片拷贝数据到新的云盘。
2 r6 I4 u2 K' }( v0 T% u
7 k: f, P$ |+ \+ u11. 备份元数据
* q! z1 h5 {+ ~8 W5 g  C7 s) z+ p3 M% f6 v  R0 @8 @
三 RBD恢复备份的实现:1 w, i& W' l' n# \
1 先检查是否满足diff restore, 需要满足下面条件
, U6 C' ?; Z4 c. _" t8 |
7 s' z8 S% w3 N0 c' q/ O( qcheck can  diff restore:( G) _2 W7 I+ U* x
1 base exist: backups/volume-volume-id.backup.base
6 G) G% E0 _8 U. ^! j2 D# \2 restore point snapshot exist: backups/volume-volume-id.backup.base@backup.backup-id.snap.time1
  k- ]! N" h( Q# B8 A3 volume file is rbd- o9 @% l0 k$ l  S, |- _2 s- v( J
4 backup[volume_id] !=  new volume_id5 U% f5 e9 C5 }- d" g% U
5 rbd volume has no extents (extend); ?8 m2 M3 v, o+ p& y7 B" |
5 X/ S; ~7 _+ c1 h& P

) j  K' T5 G+ l8 o: a8 C2. 如果满足diff restore条件, 先导出对应backup-id的差异
0 Y, v/ l9 j. \- u2 {: a& J- I" D: l% S. W6 T- K: }
()[root@busybox-openstack-5c687fdc9-mpwjd /]# rbd export-diff  backups/volume-volume-id.backup.base@backup.backup-id1.snap.time1 test_diff_backup_id2' t. Q6 h5 H% n
Exporting image: 100% complete...done.
- g* d  k' J( t( K9 G$ \
% K- D3 i9 B9 O( q- ~
, H$ j: P' y/ T; P- P2 {0 U3. 将对应backup-id的差异导入new-volume-id
9 E- {( g% V- x) k+ b: F( b6 O* N1 N, K8 ]- F1 U
()[root@busybox-openstack-5c687fdc9-mpwjd /]# rbd import-diff test_diff_backup_id2 volumes/new-volume-id
3 g" f  l7 w" r+ QImporting image diff: 100% complete...done.- N' G) `: O; _& U, {5 Y' x
()[root@busybox-openstack-5c687fdc9-mpwjd /]# rbd ls -l volumes
: B; N* Y6 y: M! UNAME                                       SIZE PARENT FMT PROT LOCK
/ a( D  a- W; C5 rnew-volume-id                              1GiB          2           
% q6 C7 q$ c$ K3 i- e8 wnew-volume-id@backup.backup-id1.snap.time1 1GiB          2           $ V5 ~6 _% M3 f3 j5 v) y
volume-id                                  1GiB          2           
* j( D+ }1 `8 p- hvolume-id@backup.backup-id1.snap.time1     1GiB          2           ! r( X8 P0 N3 P. f8 S2 G

. D1 b2 X3 c  a; b! b- @" @
, G6 p/ T9 u" X- B& r4. 如果new volume的大小与备份的大小不一致,导入差异后需要resize。5 h, Y6 a5 W" d9 f

# z# J- @, m* H1 \% }()[root@busybox-openstack-5c687fdc9-mpwjd /]# rbd create volumes/new-volume-id2 --size 2G
; w+ o* M% q  x()[root@busybox-openstack-5c687fdc9-mpwjd /]# rbd import-diff test_diff_backup_id2 volumes/new-volume-id2
* P' W1 o( _  A2 @Importing image diff: 100% complete...done.# o: P5 ]" I& V3 Q
()[root@busybox-openstack-5c687fdc9-mpwjd /]# rbd ls -l volumes
8 x3 B3 \% @+ q4 ~. S( xNAME                                        SIZE PARENT FMT PROT LOCK 8 c/ l  L0 U& H' ^4 `
new-volume-id                               1GiB          2           , w' Y6 |, A9 z, b5 ^! k
new-volume-id@backup.backup-id1.snap.time1  1GiB          2           7 U3 x+ l8 \0 y7 D1 f6 L
new-volume-id2                              1GiB          2           : D1 _, F; W7 Y& e4 i  c
new-volume-id2@backup.backup-id1.snap.time1 1GiB          2           
5 z, U5 `9 O0 Z7 Q: C" }) O. Rvolume-id                                   1GiB          2           
+ R; l$ V9 b) Y% t, ?( O; |volume-id@backup.backup-id1.snap.time1      1GiB          2           
$ @4 f% W2 s8 Z  h8 Q()[root@busybox-openstack-5c687fdc9-mpwjd /]# # d6 V# J/ ]" d6 D) `! H
()[root@busybox-openstack-5c687fdc9-mpwjd /]# rbd resize volumes/new-volume-id2 --size 2G  }; D& G8 D) F
Resizing image: 100% complete...done.
5 T) n  ?  R% l()[root@busybox-openstack-5c687fdc9-mpwjd /]# rbd ls -l volumes
9 Q0 X+ R. _7 GNAME                                        SIZE PARENT FMT PROT LOCK ( x* t$ H/ p3 B+ V# b  u
new-volume-id                               1GiB          2           7 F9 C. A( A4 _6 r  U
new-volume-id@backup.backup-id1.snap.time1  1GiB          2           ' q+ h, E' n. g/ P+ Y! i% n
new-volume-id2                              2GiB          2           3 m0 ^3 q# f/ i! R& P# u
new-volume-id2@backup.backup-id1.snap.time1 1GiB          2           
  \* D$ G4 U) C- T2 y& ^volume-id                                   1GiB          2           
' q7 q! S2 _8 o1 O5 }$ P# _volume-id@backup.backup-id1.snap.time1      1GiB          2           
7 h% o% E. c7 E( ~# Q
: @- \" E- x, }( F" u' i, f- x  K: q3 A0 A
/ J8 }2 n3 U( f
5. 如果不满足diff restore条件,或者在diff restore过程中出现异常,进行full restore, 通过将云盘按照chunk=128M分片拷贝数据到新的云盘。1 ^6 x1 _! Z$ K# B( N$ x9 v! `
" K* k& M& h8 \  s
6. 恢复元数据
您需要登录后才可以回帖 登录 | 开始注册

本版积分规则

关闭

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

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

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

GMT+8, 2026-4-9 01:12 , Processed in 0.060991 second(s), 26 queries .

Powered by Discuz! X3.4 Licensed

© 2012-2025 Discuz! Team.

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