摘要:为了解决磁盘存储空间限度的问题,提出分盘存储伎俩,从而实现备集群备份文件扩散存储的目标。

1. 摘要

双集群容灾场景下,须要将主集群中的数据备份到备集群。然而,随着主集群数据量的增大,备集群不存在一个独自的大容量磁盘用于寄存主集群发来的备份集,或寄存备份集的盘符空间不足以存储主集群发来的所有备份文件。然而,容灾场景中依然要能反对双集群的备份复原。因而,为了解决磁盘存储空间限度的问题,提出分盘存储伎俩,从而实现备集群备份文件扩散存储的目标。

2. 分盘存储原理

在双集群容灾设计中,主集群的角色是只做备份,备集群的角色是只做复原。为了实现主备数据的同步,须要将备份集以.rch的格局进行数据拷贝。

如上图所示,在优化前,主集群会将压缩在roachbackup中的数据全副scp到备集群的roachbackup中,这样的存储形式,会对备集群磁盘空间造成十分大的累赘。

在优化后,主集群会将压缩数据scp到备集群实例目录中的roachbackup文件夹,而后通过软链接的形式,备份目录中不同的DN和CN链接到了roachbackup文件夹。因为CN和DN散布在不同的磁盘上,同时软连贯使得roach看到的门路和以前一样,这样就实现了数据分盘寄存的目标。

3. 分盘存储步骤

第一步:在备集群CN和DN实例目录下创立文件夹roachbackup,主集群依据config.ini创立备集群的media目录下的目录链接:

比方/data1/roach3/mediadata/roach/20210129_181026/ecs-env-2998/dn_6001_6002为一个符号链接,此符号链接能够指向备集群roachbackup目录/data1/ha_install_3/data1/roachbackup/20210129_091422/master1目录。其中,master1子目录为archive/data/data_colstore,别离代表着日志/行存数据/列存数据

第二步: 备集群复原前clean集群时,跳过各实例目录的roachbackup文件夹。

第三步:在备份目录和实例目录不同的backupkey文件夹下,有不同的节点目录,在节点目录下有cn和dn目录,将备份目录下的cn和dn软连贯到实例目录。

第四步:只有全量备份和全量复原时必须这样做,增量备份复原可选。依照当初的设计逻辑,全量和增量备份都建设了软链接。

第五步:复原实现后,备集群删除创立的符号链接、各实例目录下的roachbackup文件夹,即复原即删。对于主集群roachbackup目录,边传输数据,边删除数据,即传输即删。

4. 分盘存储后果

如上图所示,对于cn和dn目录,都通过软连贯形式连贯到了roachbackup对应的data_cn,master1,dummy1。通过软连贯形式,roach在scp时,认为是传输到了一个磁盘上,但实际上写到了软连贯对应的其余盘上,这样的话,数据也就实现了寄存在不同磁盘上的目标。

5. 软连贯含意

分盘存储中,实现的根底就是软连贯的建设。那么,软连贯是什么意思呢?

软链接有着本人的inode号以及用户数据块。只不过用户数据块中寄存的内容是另一文件的路径名的指向。

如上图所示,在备集群复原dn_6001_6002数据时,实际上是去/data1/ha_install_3/data1/roachbackup/20210129_091422/master1目录中去读取真正的数据,从而实现数据拜访,最终实现备集群备份集的复原性能。

6. 论断

随着数据仓库业务的倒退以及客户数据量的增大,这就要求双集群容灾须要一直的迭代,深刻开掘客户需要是研发的第一性准则。

双集群容灾工作存在很多的策略,如分盘存储,生命周期清理,断点续备份和断点续复原,主备切换。继往开来,双集群新的个性仍需开发,如自动化测试工具、过程监控工具和云化等。将来可期,实现产品生态丰盛的目标始终是研发的第一生产力。

本文分享自华为云社区《GaussDB(DWS)备份容灾之分盘存储》,原文作者:zxy_db 。

点击关注,第一工夫理解华为云陈腐技术~