找回密码
 注册
查看: 723|回复: 3

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

[复制链接]

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
发表于 2022-7-20 11:23:11 | 显示全部楼层 |阅读模式
购买主题 本主题需向作者支付 10 金钱 才能浏览

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2022-7-20 11:47:01 | 显示全部楼层
最后所有的      卷恢复后,删除原来的系统盘卷,记录如下:
8 }, W2 Z  r8 N( p. [1 E[root@compute06 src]# rbd ls  -p  hdd-8T-volumes |grep bak" y: a) T" H7 v# n) H& T
volume-84942e67-2606-4efc-b27d-f7cd7612a311-bak
- d6 F5 d1 A0 @volume-cac25744-8d4d-4930-bc1a-4e47dae3177a-bak; w4 H/ _2 I, L9 s( s: Y( {* E( H# O
volume-e0a075b5-0f1e-443e-8dd4-6077b3ecec8d-bak
; B0 o7 N' u. f3 E& u9 C[root@compute06 src]#
8 Y4 \* s! s0 f, Q4 Y[root@compute06 src]#
* V' O& w! `1 j$ T. E[root@compute06 src]# 9 s8 h3 ~5 F1 _8 j* }
[root@compute06 src]#
6 @$ Q7 w1 [4 M. a[root@compute06 src]# rbd rm hdd-8T-volumes/volume-84942e67-2606-4efc-b27d-f7cd7612a311-bak
1 M% P5 v1 F8 k% ^& f& s. j1 Q8 Q+ Z2022-07-20 11:30:32.338 7f3868c35b00 -1 librbd::image::PreRemoveRequest: 0x55aaf6c55770 check_image_snaps: image has snapshots - not removing: c- f% r3 v& q9 y+ S, x+ P4 [
Removing image: 0% complete...failed.
" d9 d' R# X& u' U  b. srbd: image has snapshots - these must be deleted with 'rbd snap purge' before the image can be removed.0 e" x! d. y3 V( d
[root@compute06 src]# rbd snap purge hdd-8T-volumes/volume-84942e67-2606-4efc-b27d-f7cd7612a311-bak; l; ?, ~& p/ S
Removing all snapshots: 100% complete...done.8 j4 n% c9 j/ \9 s2 B/ d; D
[root@compute06 src]# rbd rm hdd-8T-volumes/volume-84942e67-2606-4efc-b27d-f7cd7612a311-bak
9 C8 K5 b0 _2 ~7 j$ dRemoving image: 100% complete...done.4 z! \0 F+ |. x# n% _7 I/ i! d
[root@compute06 src]# rbd rm hdd-8T-volumes/volume-cac25744-8d4d-4930-bc1a-4e47dae3177a-bak
5 B2 ?8 E  k+ ^0 b0 j2022-07-20 11:35:50.337 7f8d6925cb00 -1 librbd::image::PreRemoveRequest: 0x561d24561770 check_image_snaps: image has snapshots - not removing
4 T* d* ]. }9 ]1 ]0 ~Removing image: 0% complete...failed.
& Z! {2 K. B. {7 `, irbd: image has snapshots - these must be deleted with 'rbd snap purge' before the image can be removed.
! a6 C: c4 Y3 J* r[root@compute06 src]# rbd snap purge hdd-8T-volumes/volume-cac25744-8d4d-4930-bc1a-4e47dae3177a-bak
; p; M+ G1 H9 I0 d% I$ lRemoving all snapshots: 100% complete...done.3 d- U$ E1 W  t: J7 Q- d/ @* v
[root@compute06 src]# rbd rm hdd-8T-volumes/volume-cac25744-8d4d-4930-bc1a-4e47dae3177a-bak 7 t3 D/ F9 ?+ K$ B0 b7 U: D9 a
Removing image: 100% complete...done.
7 e, L& o$ ?0 k[root@compute06 src]# rbd rm hdd-8T-volumes/volume-e0a075b5-0f1e-443e-8dd4-6077b3ecec8d-bak! [/ }$ P" x) R7 x( p
2022-07-20 11:40:58.579 7f5a311ddb00 -1 librbd::image::PreRemoveRequest: 0x55e64a4d2740 check_image_snaps: image has snapshots - not removing
& [! R" t$ A' g1 VRemoving image: 0% complete...failed.
; Z+ K6 X! h- lrbd: image has snapshots - these must be deleted with 'rbd snap purge' before the image can be removed.! U: b2 O6 _1 k+ V6 \
[root@compute06 src]# rbd snap purge hdd-8T-volumes/volume-e0a075b5-0f1e-443e-8dd4-6077b3ecec8d-bak6 p+ C" R/ f+ Z/ z$ h4 c5 d
Removing all snapshots: 100% complete...done.
" l) ]# J( k9 l' [[root@compute06 src]# rbd rm hdd-8T-volumes/volume-e0a075b5-0f1e-443e-8dd4-6077b3ecec8d-bak% x% ~) b! u. p* V& C+ n9 p
Removing image: 100% complete...done.

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2022-7-20 11:48:24 | 显示全部楼层
上述完美完成rbd import 导入export 导出 解决openstack cinder-back报错,无法还原的问题。

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2022-7-20 13:38:27 | 显示全部楼层
其他方式文档介绍::
" `- W+ @$ a# S& R" N4 B0 z. E 创建云盘volume-id,大小为1G9 v2 |1 ]8 b6 B+ E

, r2 w8 G! B/ w* u6 {( w()[root@busybox-openstack-f7bcf88-hgdkz /]# rbd create volumes/volume-id --size 1G  e) J4 w8 J/ `# Y; V+ ]( p; G
()[root@busybox-openstack-f7bcf88-hgdkz /]# rbd ls -l volumes |grep volume-id" o; s5 t. @& |, s3 U
volume-id         1GiB                          2           : ?1 m( _9 w1 P- h  V
- o+ k8 c' g" X' r+ [. {9 R
8 o! g$ N: I7 ~& t5 [" a& L1 W
2. 先尝试进行diff store, 创建backups中的base盘
. t: K( A& \* L3 D% x! O* F# f! E/ |! Y  t2 k' ~8 e: Y
()[root@busybox-openstack-f7bcf88-hgdkz /]# rbd create backups/volume-volume-id.backup.base --size 1G% o+ C0 {/ w9 d9 S
()[root@busybox-openstack-f7bcf88-hgdkz /]# rbd ls -l backups  \( c" n3 F  B% z
NAME                         SIZE PARENT FMT PROT LOCK
" \4 ^" t% g0 y  v9 K9 Evolume-volume-id.backup.base 1GiB          2           5 b! h+ g0 M" M8 b2 @

# {3 B/ s# {5 D7 ?/ }& K7 P3 ]4 ]- M; k  T2 e, d) s3 ~( }
3. 创建volume-id快照1,命名规则如下  S0 h1 z$ W- w! `" y* J: b
* a. c8 l0 r. `( h! K9 I
()[root@busybox-openstack-f7bcf88-hgdkz /]# rbd snap  create volumes/volume-id@backup.backup-id.snap.time1
  d( K5 g1 e- {/ Q5 O4 v()[root@busybox-openstack-f7bcf88-hgdkz /]# rbd ls -l volumes |grep volume-id
- E" B% x+ X4 `$ Xvolume-id                                 1GiB                       2           3 X/ a; @6 J3 H# ?
volume-id@backup.backup-id.snap.time1     1GiB                       2           , a% C- G( F  k- ?: i& f0 H: n

' i# i7 ^" I' W" f, v- Z; ~7 x9 M  N0 z, i+ l( y
4. 导出云盘和快照1的差异1
+ ?" M+ e' i5 v
3 o  j+ t: e  d/ V5 R% ^4 ^()[root@busybox-openstack-f7bcf88-hgdkz /]# rbd export-diff volumes/volume-id@backup.backup-id.snap.time1 test_diff_snap_time1* w0 b$ o- u, q; W  j
Exporting image: 100% complete...done.
. W7 |& K. g  p4 t/ P()[root@busybox-openstack-f7bcf88-hgdkz /]# ls
9 f1 f& q3 U# s* f9 W. ttest_diff_snap_time1
7 [  ^* I9 [# j" `! z8 J. l- Q  [( E1 Q. A) W; s6 B" D6 ^

# u- }! V  u3 k- }) @! E5. 将差异1导入到backups的base盘中,此时base盘生成了一个快照
/ U& [, ^6 r# n. g2 M9 H7 ?" Y2 f" x  W
()[root@busybox-openstack-f7bcf88-hgdkz /]# rbd import-diff test_diff_snap_time1 backups/volume-volume-id.backup.base
( o/ c* K4 Z8 ~" Z; H7 ]6 t& s& @Importing image diff: 100% complete...done.
+ E4 g, M0 I3 A()[root@busybox-openstack-f7bcf88-hgdkz /]# rbd ls -l backups
0 a  z8 t1 x$ c4 KNAME                                                     SIZE PARENT FMT PROT LOCK 9 x4 `; O# \1 {% c
volume-volume-id.backup.base                             1GiB          2           
9 N7 n+ V4 V3 nvolume-volume-id.backup.base@backup.backup-id.snap.time1 1GiB          2           : N: D6 N6 g  Q# \& Z4 _
9 z& n( A7 p, P( `4 r6 D

  Y8 T" f% E/ k/ a; ?: \6. 第二次做增量备份时, 创建volume-id新的快照21 q: N  C2 m  W1 D$ r; X/ j0 z
8 i+ l" \, N4 [1 Y( ^, U
()[root@busybox-openstack-f7bcf88-hgdkz /]# rbd snap  create volumes/volume-id@backup.backup-id2.snap.time2
* J. Z! I' R5 B()[root@busybox-openstack-f7bcf88-hgdkz /]# rbd ls -l backups  M- P3 o; q- ]( P1 g5 K8 B
NAME                                                     SIZE PARENT FMT PROT LOCK
/ j8 I! F% x2 T7 |6 d# Jvolume-volume-id.backup.base                             1GiB          2           3 Z' g. H2 y; |3 W. I, r* x
volume-volume-id.backup.base@backup.backup-id.snap.time1 1GiB          2           
/ L9 u( {3 q) u1 T6 J()[root@busybox-openstack-f7bcf88-hgdkz /]# rbd ls -l volumes |grep volume-id2 V0 g0 b( l0 Z- Y7 z( {- J
volume-id                                                                                     1GiB                                                                                                        2           % i8 h9 {* w  }/ R
volume-id@backup.backup-id.snap.time1                                                         1GiB                                                                                                        2           . t: a1 J6 g: g6 z$ y7 J/ `
volume-id@backup.backup-id2.snap.time2                                                        1GiB                                                                                                        2           - L# _/ T$ N0 N* |# W5 K
# G6 w' I- L/ u

: E3 h& s, L+ y2 f7 G: z) a7. 导出快照1和快照2的差异2
7 R: n( Y% K0 l  E. w8 H2 `
* I3 I+ ]6 S: t()[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/ ~( r3 f( A: S0 d' w2 D
Exporting image: 100% complete...done.
9 K3 }4 o3 h+ X# N; x0 i
4 a* d4 s- u2 _0 D3 t2 E8. 将差异2导入backups的base盘,此时base盘又生成了一个新的快照) j/ q$ l  x& B8 }

) A/ y0 O' k3 n. G8 n()[root@busybox-openstack-f7bcf88-hgdkz /]# rbd import-diff test_diff_snap_time1_time2 backups/volume-volume-id.backup.base
8 ^5 z4 Q6 q0 \8 t; s7 V' ?7 iImporting image diff: 100% complete...done.
- [" g' L4 p: v, @()[root@busybox-openstack-f7bcf88-hgdkz /]# rbd ls -l backups
7 S& I1 C' ^  JNAME                                                      SIZE PARENT FMT PROT LOCK # c' b1 i; c6 p
volume-volume-id.backup.base                              1GiB          2             H$ W# e0 Q) ^/ M1 f
volume-volume-id.backup.base@backup.backup-id.snap.time1  1GiB          2           0 c! C  w+ Z* H) }, ], R/ }
volume-volume-id.backup.base@backup.backup-id2.snap.time2 1GiB          2           
6 B8 p3 _& I* ?! e# y& L* h' ]/ C$ E) G% V5 u6 t! {/ E$ v$ S/ t

! m/ \: n, ]& m+ f/ _9. 删除volume-id的快照1
% s- [1 @5 i8 z
  Y4 p$ [1 L+ |5 L! o. P6 P/ B' H" M. H10. 如果diff store出现异常, 会通过full store来备份, 通过将云盘按照chunk=128M分片拷贝数据到新的云盘。) d% W. J$ X+ c( k9 F1 t
( K5 q: }' w9 i+ R) u+ M5 c* G. L
11. 备份元数据
: s, L% P/ p, U, s" l  C! g- M/ P4 h
三 RBD恢复备份的实现:
4 O/ L0 I3 S, @8 N/ J8 w; k3 H1 先检查是否满足diff restore, 需要满足下面条件; c# W4 ^4 V: ~' c7 t" a7 N

8 ]$ S5 x, u/ Y3 D/ Scheck can  diff restore:. F0 D) p2 U. M3 _3 o
1 base exist: backups/volume-volume-id.backup.base" y# L3 T4 }( r
2 restore point snapshot exist: backups/volume-volume-id.backup.base@backup.backup-id.snap.time1
$ f9 r7 m) c) ^4 N$ |) F& y: K8 X4 w" o3 volume file is rbd
( Y/ Z! e: {! H- a$ t- C4 backup[volume_id] !=  new volume_id
1 o9 p& [9 G- E( E5 rbd volume has no extents (extend)8 s, i8 g6 j7 M- h' k+ K6 P2 W
! d' d3 d7 [1 o. c( g  L

5 l0 R+ x$ c: P1 C7 v2. 如果满足diff restore条件, 先导出对应backup-id的差异
& ?+ p/ S" e- T5 q6 K4 o+ N3 v; m0 k
()[root@busybox-openstack-5c687fdc9-mpwjd /]# rbd export-diff  backups/volume-volume-id.backup.base@backup.backup-id1.snap.time1 test_diff_backup_id27 i( w2 z3 n  I6 h8 c# e  y2 b
Exporting image: 100% complete...done.! i! ?$ \) O, |) D1 J! x

+ g$ _# k$ E3 b+ P) g/ e0 A' V+ A
. }( ^% ~! H+ }1 `( k- A% `+ {3. 将对应backup-id的差异导入new-volume-id
1 q" f/ v* j& k, ]+ k
% q7 y  P7 W: G& M% P4 y& a. q% \8 T()[root@busybox-openstack-5c687fdc9-mpwjd /]# rbd import-diff test_diff_backup_id2 volumes/new-volume-id5 N: ~! j8 o* u3 c' k
Importing image diff: 100% complete...done.
5 M5 P% h( B0 k/ V0 j- s0 x- c/ S) T()[root@busybox-openstack-5c687fdc9-mpwjd /]# rbd ls -l volumes
5 P7 @0 [, X/ E! {2 O& Y5 \NAME                                       SIZE PARENT FMT PROT LOCK . w' r/ B7 S3 X
new-volume-id                              1GiB          2           6 ?: h; i- g3 q9 x6 n0 \
new-volume-id@backup.backup-id1.snap.time1 1GiB          2           
: k$ G* K, s) vvolume-id                                  1GiB          2           % e- @& `5 N3 S
volume-id@backup.backup-id1.snap.time1     1GiB          2           . N, `9 p" H7 A3 F9 ]  r2 M3 h+ ^

" S. l% f! b4 b3 @. F& k9 e' |7 k, y* Q/ C6 T) ?$ }  ~0 Q
4. 如果new volume的大小与备份的大小不一致,导入差异后需要resize。
' p7 X  q' b' L1 X0 H* V( R2 [
. l  u. @) a% e* g1 y4 W3 j- I()[root@busybox-openstack-5c687fdc9-mpwjd /]# rbd create volumes/new-volume-id2 --size 2G
2 l" _( J3 l7 q3 L/ Y9 _# `()[root@busybox-openstack-5c687fdc9-mpwjd /]# rbd import-diff test_diff_backup_id2 volumes/new-volume-id2% _% d* U4 T  D9 a' U
Importing image diff: 100% complete...done.
' r, `. J3 i- a! L5 J()[root@busybox-openstack-5c687fdc9-mpwjd /]# rbd ls -l volumes
$ x* S7 z& V& B8 V; r/ y2 VNAME                                        SIZE PARENT FMT PROT LOCK 6 h  e2 a% s4 q: G
new-volume-id                               1GiB          2           
+ {; [: I% I8 knew-volume-id@backup.backup-id1.snap.time1  1GiB          2           
& ~! `6 v1 k& E6 r6 Fnew-volume-id2                              1GiB          2           6 H" F" G. Q  i. O1 U! q7 ~
new-volume-id2@backup.backup-id1.snap.time1 1GiB          2           
4 T: v6 ]% \, m$ F4 L. G! ivolume-id                                   1GiB          2           ' {6 g5 T! q- f3 r( E
volume-id@backup.backup-id1.snap.time1      1GiB          2           , @# d5 |+ S  k7 b2 Q
()[root@busybox-openstack-5c687fdc9-mpwjd /]# " S4 C0 o+ X& y2 _
()[root@busybox-openstack-5c687fdc9-mpwjd /]# rbd resize volumes/new-volume-id2 --size 2G" M9 R! ^' w& \% M( r% Z
Resizing image: 100% complete...done., u4 Z1 T: Y6 o8 K8 F6 N" C" N
()[root@busybox-openstack-5c687fdc9-mpwjd /]# rbd ls -l volumes
& n! m1 N: Q1 Y$ z" n& u& m3 n/ i% |/ vNAME                                        SIZE PARENT FMT PROT LOCK ! T3 K* _; I7 K( p+ I6 Z3 i4 w
new-volume-id                               1GiB          2           1 {7 S' n2 h6 t6 g( v4 x- J" ?
new-volume-id@backup.backup-id1.snap.time1  1GiB          2           
2 q3 x) X2 r8 i) y; m4 Cnew-volume-id2                              2GiB          2           3 ^7 z3 @+ W+ b4 n+ p3 K2 i
new-volume-id2@backup.backup-id1.snap.time1 1GiB          2           
% E  g7 o' y$ C" {volume-id                                   1GiB          2           0 U$ d3 q* ?: W- l$ ]: p5 I
volume-id@backup.backup-id1.snap.time1      1GiB          2           
: g) c5 k+ }2 J, ~) }0 P# f
  p# I8 A" o6 u* ~6 Z$ S
! X3 n3 O: _/ w: X* M; `- }
% R. u% ~, P% B) ?7 G7 @; a5. 如果不满足diff restore条件,或者在diff restore过程中出现异常,进行full restore, 通过将云盘按照chunk=128M分片拷贝数据到新的云盘。
5 i& |  G0 X0 B: \4 z( {! n. ~3 s* f$ M% [2 d
6. 恢复元数据
您需要登录后才可以回帖 登录 | 注册

本版积分规则

返回首页|Archiver|手机版|小黑屋|易陆发现技术论坛 ( 蜀ICP备2026014127号-1 )

GMT+8, 2026-6-12 00:09 , Processed in 0.018193 second(s), 26 queries .

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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