写点什么

分盘存储:实现数据库备集群备份文件分散存储

发布于: 2021 年 02 月 01 日

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


1. 摘要


双集群容灾场景下,需要将主集群中的数据备份到备集群。然而,随着主集群数据量的增大,备集群不存在一个单独的大容量磁盘用于存放主集群发来的备份集,或存放备份集的盘符空间不足以存储主集群发来的所有备份文件。但是,容灾场景中仍然要能支持双集群的备份恢复。因此,为了解决磁盘存储空间限制的问题,提出分盘存储手段,从而实现备集群备份文件分散存储的目的。


2. 分盘存储原理


image


在双集群容灾设计中,主集群的角色是只做备份,备集群的角色是只做恢复。为了实现主备数据的同步,需要将备份集以.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 目录,边传输数据,边删除数据,即传输即删。


image


4. 分盘存储结果


image


image


如上图所示,对于 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 。


点击关注,第一时间了解华为云新鲜技术~


发布于: 2021 年 02 月 01 日阅读数: 31
用户头像

提供全面深入的云计算技术干货 2020.07.14 加入

华为云开发者社区,提供全面深入的云计算前景分析、丰富的技术干货、程序样例,分享华为云前沿资讯动态,方便开发者快速成长与发展,欢迎提问、互动,多方位了解云计算! 传送门:https://bbs.huaweicloud.com/

评论

发布
暂无评论
分盘存储:实现数据库备集群备份文件分散存储