管理linked break-off snapshot

1. 建立linked break-off snapshot

(1) 建立原卷

#> vxassist -g APS2_AFC_DG make vol1 4096000
#> vxprint -hrt
......
v  vol1         -            ENABLED  ACTIVE   4096000  SELECT    -        fsgen
pl vol1-01      vol1         ENABLED  ACTIVE   4096000  CONCAT    -        RW
sd APS2_AFC_DG01-02 vol1-01  APS2_AFC_DG01 94371840 4096000 0     AMS_WMS0_0 ENA

(2) 为该卷建立20DCO卷

#> vxsnap -g APS2_AFC_DG prepare vol1
#> vxprint -hrt
......
v  vol1         -            ENABLED  ACTIVE   4096000  SELECT    -        fsgen
pl vol1-01      vol1         ENABLED  ACTIVE   4096000  CONCAT    -        RW
sd APS2_AFC_DG01-02 vol1-01  APS2_AFC_DG01 94371840 4096000 0     AMS_WMS0_0 ENA
dc vol1_dco     vol1         vol1_dcl   
v  vol1_dcl     -            ENABLED  ACTIVE   560      SELECT    -        gen
pl vol1_dcl-01  vol1_dcl     ENABLED  ACTIVE   560      CONCAT    -        RW
sd APS2_AFC_DG02-03 vol1_dcl-01 APS2_AFC_DG02 94378736 560 0      AMS_WMS1_0 ENA
原卷建立好以后,可以在原卷上建立文件系统。

(3) 建立用于snapshot的卷及DCO卷

#> vxassist -g APS2_AFC_DG make snapvol 4096000
#> vxsnap -g APS2_AFC_DG prepare snapvol
#> vxprint -hrt
......
v  snapvol      -            ENABLED  ACTIVE   4096000  SELECT    -        fsgen
pl snapvol-01   snapvol      ENABLED  ACTIVE   4096000  CONCAT    -        RW
sd APS2_AFC_DG02-04 snapvol-01 APS2_AFC_DG02 94379296 4096000 0   AMS_WMS1_0 ENA
dc snapvol_dco  snapvol      snapvol_dcl
v  snapvol_dcl  -            ENABLED  ACTIVE   560      SELECT    -        gen
pl snapvol_dcl-01 snapvol_dcl ENABLED ACTIVE   560      CONCAT    -        RW
sd APS2_AFC_DG01-03 snapvol_dcl-01 APS2_AFC_DG01 98467840 560 0   AMS_WMS0_0 ENA
v  vol1         -            ENABLED  ACTIVE   4096000  SELECT    -        fsgen
pl vol1-01      vol1         ENABLED  ACTIVE   4096000  CONCAT    -        RW
sd APS2_AFC_DG01-02 vol1-01  APS2_AFC_DG01 94371840 4096000 0     AMS_WMS0_0 ENA
dc vol1_dco     vol1         vol1_dcl   
v  vol1_dcl     -            ENABLED  ACTIVE   560      SELECT    -        gen
pl vol1_dcl-01  vol1_dcl     ENABLED  ACTIVE   560      CONCAT    -        RW
sd APS2_AFC_DG02-03 vol1_dcl-01 APS2_AFC_DG02 94378736 560 0      AMS_WMS1_0 ENA

(4) 将snap卷link到原卷

#> vxsnap -g APS2_AFC_DG -b addmir vol1 mirvol=snapvol
“-b"参数表示让数据同步在后台执行
#> vxsnap -g APS2_AFC_DG snapwait vol1 mirvol=snapvol
Snapshot ready on volume vol1
使用snapwait等待link完成
#> vxprint -hrt
v  snapvol      -            ENABLED  ACTIVE   4096000  SELECT    -        fsgen
pl snapvol-01   snapvol      ENABLED  ACTIVE   4096000  CONCAT    -        RW
sd APS2_AFC_DG02-04 snapvol-01 APS2_AFC_DG02 94379296 4096000 0   AMS_WMS1_0 ENA
dc snapvol_dco  snapvol      snapvol_dcl
v  snapvol_dcl  -            ENABLED  ACTIVE   560      SELECT    -        gen
pl snapvol_dcl-01 snapvol_dcl ENABLED ACTIVE   560      CONCAT    -        RW
sd APS2_AFC_DG01-03 snapvol_dcl-01 APS2_AFC_DG01 98467840 560 0   AMS_WMS0_0 ENA
ln snapvol_ln   snapvol      snapvol_dco
v  vol1         -            ENABLED  ACTIVE   4096000  SELECT    -        fsgen
pl vol1-01      vol1         ENABLED  ACTIVE   4096000  CONCAT    -        RW
sd APS2_AFC_DG01-02 vol1-01  APS2_AFC_DG01 94371840 4096000 0     AMS_WMS0_0 ENA
dc vol1_dco     vol1         vol1_dcl   
v  vol1_dcl     -            ENABLED  ACTIVE   560      SELECT    -        gen
pl vol1_dcl-01  vol1_dcl     ENABLED  ACTIVE   560      CONCAT    -        RW
sd APS2_AFC_DG02-03 vol1_dcl-01 APS2_AFC_DG02 94378736 560 0      AMS_WMS1_0 ENA
ln vol1_ln      vol1         vol1_dco
   

(5) 建立linked break-off snapshot

#> vxsnap -g APS2_AFC_DG make source=vol1/snapvol=snapvol
#> vxprint -hrt
v  snapvol      -            ENABLED  ACTIVE   4096000  SELECT    -        fsgen
pl snapvol-01   snapvol      ENABLED  ACTIVE   4096000  CONCAT    -        RW
sd APS2_AFC_DG02-04 snapvol-01 APS2_AFC_DG02 94379296 4096000 0   AMS_WMS1_0 ENA
dc snapvol_dco  snapvol      snapvol_dcl
v  snapvol_dcl  -            ENABLED  ACTIVE   560      SELECT    -        gen
pl snapvol_dcl-01 snapvol_dcl ENABLED ACTIVE   560      CONCAT    -        RW
sd APS2_AFC_DG01-03 snapvol_dcl-01 APS2_AFC_DG01 98467840 560 0   AMS_WMS0_0 ENA
sp vol1_snp     snapvol      snapvol_dco
v  vol1         -            ENABLED  ACTIVE   4096000  SELECT    -        fsgen
pl vol1-01      vol1         ENABLED  ACTIVE   4096000  CONCAT    -        RW
sd APS2_AFC_DG01-02 vol1-01  APS2_AFC_DG01 94371840 4096000 0     AMS_WMS0_0 ENA
dc vol1_dco     vol1         vol1_dcl   
v  vol1_dcl     -            ENABLED  ACTIVE   560      SELECT    -        gen
pl vol1_dcl-01  vol1_dcl     ENABLED  ACTIVE   560      CONCAT    -        RW
sd APS2_AFC_DG02-03 vol1_dcl-01 APS2_AFC_DG02 94378736 560 0      AMS_WMS1_0 ENA
sp snapvol_snp  vol1         vol1_dco
#> vxsnap -g APS2_AFC_DG -vx list
NAME          DG         OBJTYPE SNAPTYPE PARENT     PARENTDG   SNAPDATE         CHANGED_DATA SYNCED_DATA
vol1          APS2_AFC_DG vol    -        -          -          - -              - -          1.9G (100%)
snapvol       APS2_AFC_DG vol   volbrk   vol1       APS2_AFC_DG 2009/08/26 17:26 0 (0%)      1.9G (100%)
"volbrk" 表示该卷是linked break-off snapshot.
此时snapvol卷已经变成了vol1卷的快照,如果原卷上已经建立了文件系统,则现在可以mount snapvol卷,用于
备份或其它操作。
fsck -F vxfs /dev/vx/rdsk/APS2_AFC_DG/snapvol
mount -F vxfs /dev/vx/dsk/APS2_AFC_DG/snapvol  /test

2. snapshot操作

snapshot建立以后,可以进行如下操作:refresh、reattach、dissociate、restore

(1) refresh

在snapshot建立后,可以通过refresh操作来刷新snapshot,以便得到一个新时间点的快照。

#> vxsnap -g APS2_AFC_DG -vx list
NAME          DG         OBJTYPE SNAPTYPE PARENT     PARENTDG   SNAPDATE         CHANGED_DATA SYNCED_DATA
vol1          APS2_AFC_DG vol    -        -          -          - -              - -          1.9G (100%)
snapvol       APS2_AFC_DG vol    volbrk   vol1       APS2_AFC_DG 2009/08/26 17:26 1.6G (83.7%) 1.9G (100%)

快照刷新时间是2009/08/26 17:26,自上次刷新以来原卷有83.7%有内容发生了改变。下面刷新快照:

#> vxsnap -g APS2_AFC_DG refresh snapvol source=vol1
刷新任务自动在后台执行
#> vxtask list
TASKID  PTID TYPE/STATE    PCT   PROGRESS
  5300         SNAPSYNC/R 07.80% 0/4096000/319488 SNAPSYNC snapvol APS2_AFC_DG
后台任务正在进行快照刷新
#> vxsnap -g APS2_AFC_DG syncwait snapvol
使用syncwait等待刷新完成
#> vxsnap -g APS2_AFC_DG -vx list
NAME          DG         OBJTYPE SNAPTYPE PARENT     PARENTDG   SNAPDATE         CHANGED_DATA SYNCED_DATA
vol1          APS2_AFC_DG vol    -        -          -          - -              - -          1.9G (100%)
snapvol       APS2_AFC_DG vol    volbrk   vol1       APS2_AFC_DG 2009/08/27 14:16 0 (0%)      1.9G (100%)
快照的最新刷新时间是2009/08/27 14:16.

(2) reattach

reattach命令是把snapshot再link回原卷,重新恢复snap卷与原卷的link关系。link回原卷后,可以使用snap make命令再建立snapshot.

#> vxsnap -g APS2_AFC_DG -vx list
NAME          DG         OBJTYPE SNAPTYPE PARENT     PARENTDG   SNAPDATE         CHANGED_DATA SYNCED_DATA
vol1          APS2_AFC_DG vol    -        -          -          - -              - -          1.9G (100%)
snapvol       APS2_AFC_DG vol    volbrk   vol1       APS2_AFC_DG 2009/08/27 15:03 1G (55.4%)  1.9G (100%)
volbrk表示snapvol是vol1的linked break-off snapshot
#> vxsnap -g APS2_AFC_DG reattach snapvol source=vol1
#> vxsnap -g APS2_AFC_DG -vx list
NAME          DG         OBJTYPE SNAPTYPE PARENT     PARENTDG   SNAPDATE         CHANGED_DATA SYNCED_DATA
vol1          APS2_AFC_DG vol    -        -          -          - -              - -          1.9G (100%)
snapvol       APS2_AFC_DG vol    mirvol   vol1       APS2_AFC_DG - -             0 (0%)       1.9G (100%)
mirvol表示snapvol卷已经变成vol1的mirror卷了。
#> vxsnap -g APS2_AFC_DG make source=vol1/snapvol=snapvol
#> vxsnap -g APS2_AFC_DG -vx list
NAME          DG         OBJTYPE SNAPTYPE PARENT     PARENTDG   SNAPDATE         CHANGED_DATA SYNCED_DATA
vol1          APS2_AFC_DG vol    -        -          -          - -              - -          1.9G (100%)
snapvol       APS2_AFC_DG vol    volbrk   vol1       APS2_AFC_DG 2009/08/27 15:09 384K (0.0%) 1.9G (100%)
使用make命令又把snapvol从mirror卷变成了linked break-off snapshot

(3) dissociate

dissociate是将snapshot与原卷分离,删除snapshot与原卷的关联. 分离后snapshot和原卷变成两个独立的卷。

#> vxsnap -g APS2_AFC_DG -vx list
NAME          DG         OBJTYPE SNAPTYPE PARENT     PARENTDG   SNAPDATE         CHANGED_DATA SYNCED_DATA
vol1          APS2_AFC_DG vol    -        -          -          - -              - -          1.9G (100%)
snapvol       APS2_AFC_DG vol    volbrk   vol1       APS2_AFC_DG 2009/08/27 15:09 384K (0.0%) 1.9G (100%)
#> vxsnap -g APS2_AFC_DG dis snapvol
#> vxsnap -g APS2_AFC_DG -vx list
无输出,表示已经没有snapshot的关联关系了。
#> vxprint -hrt
......
v  snapvol      -            ENABLED  ACTIVE   4096000  SELECT    -        fsgen
pl snapvol-01   snapvol      ENABLED  ACTIVE   4096000  CONCAT    -        RW
sd APS2_AFC_DG02-04 snapvol-01 APS2_AFC_DG02 94379296 4096000 0   AMS_WMS1_0 ENA
dc snapvol_dco  snapvol      snapvol_dcl
v  snapvol_dcl  -            ENABLED  ACTIVE   560      SELECT    -        gen
pl snapvol_dcl-01 snapvol_dcl ENABLED ACTIVE   560      CONCAT    -        RW
sd APS2_AFC_DG01-03 snapvol_dcl-01 APS2_AFC_DG01 98467840 560 0   AMS_WMS0_0 ENA
v  vol1         -            ENABLED  ACTIVE   4096000  SELECT    -        fsgen
pl vol1-01      vol1         ENABLED  ACTIVE   4096000  CONCAT    -        RW
sd APS2_AFC_DG01-02 vol1-01  APS2_AFC_DG01 94371840 4096000 0     AMS_WMS0_0 ENA
dc vol1_dco     vol1         vol1_dcl   
v  vol1_dcl     -            ENABLED  ACTIVE   560      SELECT    -        gen
pl vol1_dcl-01  vol1_dcl     ENABLED  ACTIVE   560      CONCAT    -        RW
sd APS2_AFC_DG02-03 vol1_dcl-01 APS2_AFC_DG02 94378736 560 0      AMS_WMS1_0 ENA
vol1与snapvol变成了单独的卷,二者之间已经没有了任何关联关系。
dissociate后,如果需要做linked break-off snapshot,则需要执行vxsnap addmir和vxsnap make
#> vxsnap -g APS2_AFC_DG -b addmir vol1 mirvol=snapvol
#> vxsnap -g APS2_AFC_DG snapwait vol1 mirvol=snapvol
Snapshot ready on volume vol1
#> vxsnap -g APS2_AFC_DG make source=vol1/snapvol=snapvol
#> vxsnap -g APS2_AFC_DG -vx list
NAME          DG         OBJTYPE SNAPTYPE PARENT     PARENTDG   SNAPDATE         CHANGED_DATA SYNCED_DATA
vol1          APS2_AFC_DG vol    -        -          -          - -              - -          1.9G (100%)
snapvol       APS2_AFC_DG vol    volbrk   vol1       APS2_AFC_DG 2009/08/27 15:29 64K (0.0%)  1.9G (100%)

(4) restore

restore可以把snapshot的内容恢复到原卷中,相当于从备份中恢复. restore时要求原卷与snapshot卷都不能被任何程序打开.

#> vxsnap -g APS2_AFC_DG -vx list
NAME          DG         OBJTYPE SNAPTYPE PARENT     PARENTDG   SNAPDATE         CHANGED_DATA SYNCED_DATA
vol1          APS2_AFC_DG vol    -        -          -          - -              - -          1.9G (100%)
snapvol       APS2_AFC_DG vol    volbrk   vol1       APS2_AFC_DG 2009/08/28 22:41 1013.3M (50.7%) 1.9G (100%)
snapvol与vol1卷中有1013.3M数据是不同的.
#> vxsnap -g APS2_AFC_DG restore vol1 source=snapvol
#> vxtask list
TASKID  PTID TYPE/STATE    PCT   PROGRESS
  5414         SNAPSYNC/R 15.30% 0/4096000/626688 SNAPSYNC vol1 APS2_AFC_DG
执行restore后,任务在后台执行
#> vxsnap -g APS2_AFC_DG -vx list
NAME          DG         OBJTYPE SNAPTYPE PARENT     PARENTDG   SNAPDATE         CHANGED_DATA SYNCED_DATA
vol1          APS2_AFC_DG vol    -        -          -          - -              - -          1.9G (100%)
snapvol       APS2_AFC_DG vol    volbrk   vol1       APS2_AFC_DG 2009/08/28 22:41 192K (0.0%) 1.9G (100%)
restore完成后,原卷与snapshot恢复一致.

3.  删除snapshot

方法一、先dissociate,然后再删除卷
dissociate后,snapshot与原卷分别变成了两个没有任何关联的独立卷,然后用vxassist直接删除snapvol卷即可。
方法二、先reattach,再rmmir,最后删除卷
reattach将snapshot link回原卷,使snapvol卷重新变为原卷的镜像
rmmir删除镜像卷,也就是删除snapvol卷与原卷之间的link关系
vxassist可以删除snapvol卷

#> vxsnap -g APS2_AFC_DG -vx list
NAME          DG         OBJTYPE SNAPTYPE PARENT     PARENTDG   SNAPDATE         CHANGED_DATA SYNCED_DATA
vol1          APS2_AFC_DG vol    -        -          -          - -              - -          1.9G (100%)
snapvol       APS2_AFC_DG vol    volbrk   vol1       APS2_AFC_DG 2009/08/27 15:29 64K (0.0%)  1.9G (100%)
snapvol是vol1的linked break-off snapshot
#> vxsnap -g APS2_AFC_DG reattach snapvol source=vol1
#> vxsnap -g APS2_AFC_DG -vx list
NAME          DG         OBJTYPE SNAPTYPE PARENT     PARENTDG   SNAPDATE         CHANGED_DATA SYNCED_DATA
vol1          APS2_AFC_DG vol    -        -          -          - -              - -          1.9G (100%)
snapvol       APS2_AFC_DG vol    mirvol   vol1       APS2_AFC_DG - -             0 (0%)       1.9G (100%)
reattach后,snapvol变成了vol1的镜像卷
#> vxsnap -g APS2_AFC_DG rmmir vol1 mirvol=snapvol
#> vxsnap -g APS2_AFC_DG -vx list (输出为空)
rmmir删除了镜像卷,vxsnap list显示为空说明snapvol卷与原卷已经没有link关系了.
#> vxprint -hrt
....
v  snapvol      -            ENABLED  ACTIVE   4096000  SELECT    -        fsgen
pl snapvol-01   snapvol      ENABLED  ACTIVE   4096000  CONCAT    -        RW
sd APS2_AFC_DG02-04 snapvol-01 APS2_AFC_DG02 94379296 4096000 0   AMS_WMS1_0 ENA
dc snapvol_dco  snapvol      snapvol_dcl
v  snapvol_dcl  -            ENABLED  ACTIVE   560      SELECT    -        gen
pl snapvol_dcl-01 snapvol_dcl ENABLED ACTIVE   560      CONCAT    -        RW
sd APS2_AFC_DG01-03 snapvol_dcl-01 APS2_AFC_DG01 98467840 560 0   AMS_WMS0_0 ENA
v  vol1         -            ENABLED  ACTIVE   4096000  SELECT    -        fsgen
pl vol1-01      vol1         ENABLED  ACTIVE   4096000  CONCAT    -        RW
sd APS2_AFC_DG01-02 vol1-01  APS2_AFC_DG01 94371840 4096000 0     AMS_WMS0_0 ENA
dc vol1_dco     vol1         vol1_dcl   
v  vol1_dcl     -            ENABLED  ACTIVE   560      SELECT    -        gen
pl vol1_dcl-01  vol1_dcl     ENABLED  ACTIVE   560      CONCAT    -        RW
sd APS2_AFC_DG02-03 vol1_dcl-01 APS2_AFC_DG02 94378736 560 0      AMS_WMS1_0 ENA
vxprint命令显示snapvol与vol1已经变成了两个没有关联的独立卷.
此时可以用vxassist remove volume命令删除snapvol卷.

原文地址:https://www.cnblogs.com/cqubityj/p/3325627.html