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

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 。

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

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

  1. 达梦数据库实时主备集群的同步机制和切换机制

    DM数据守护介绍 1. DM 数据守护(Data Watch) 是一种集成化的高可用.高性能数据库解决方案,是数据库异地容灾的首选方案.通过部署 DM 数据守护,可以在硬件故障(如磁盘损坏).自然灾害 ...

  2. 达梦数据库DSC集群安装文档

    达梦数据库DSC集群安装文档 一. DSC安装准备工作 1 1.1. 创建安装用户 2 1.2. 配置udev存储 2 二. DMDSC 搭建 8 三. 搭建DW容灾架构 39 修改dm.ini,数据 ...

  3. 达梦数据库守护集群安装

    目录 数据库守护集群安装... 1 主备集群原理介绍... 1 搭建DM数据守护环境... 2 环境检查... 2 主备集群搭建思路... 3 安装前工作... 3 数据库安装... 6 主机配置数据 ...

  4. WebDay19 MySQL存储引擎 索引 锁 集群

    MySQL存储引擎 索引 锁 集群 一.MySQL存储引擎 1.MySQL体系结构 2.MySQL存储引擎 3.常用引擎的特性对比 4.引擎的操作 5.总结:引擎的选择 二.MySQL索引 1.索引的 ...

  5. K8s 或 K3s 集群中持久化存储方案选型

    存储架构 1 三个概念: pv , pvc ,storageclass pv - 持久化卷, 支持本地存储和网络存储, 例如hostpath,ceph rbd, nfs等,只支持两个属性, capac ...

  6. java应用系统正确的连接DM主备集群

    jdbc连接DM主备集群 一句话 为保证集群在出故障时能够正常切换,应用连接时采用服务名方式进行连接,将连接串中的ip改成服务名如下面配置的DM在应用服务器配置dm_svc.conf文件: 应用服务器 ...

  7. HDFS High Availability(HA)高可用、单点故障、主备集群、脑裂问题、数据同步问题、HDFS HA解决方案—QJM

    HDFS High Availability(HA)高可用 1.1 High Availability背景知识 1.1.1 单点故障.高可用 单点故障(英语:single point of failu ...

  8. 17.sql server数据库使用规则、二八原则、数据库查询集群--数据库读写分离多种实现、数据库配置读写分离(by-朝夕)

    Database 课程目标 环境准备: 一.二八原则 二.数据库读写分离 好处: 绝大部分的企业内部应用,可能不需要上图那么庞大的架构,一台主数据库服务器和一台查询服务器通常能满足读写分离的要求.而且 ...

  9. RHCS+Conga+GFS+cLVM共享存储的高可用性web集群

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://sohudrgon.blog.51cto.com/3088108/1599984 ...

最新文章

  1. linux 输出重定向
  2. SQL2012(32位)下载及安装(32位、64位都一样,不影响)
  3. 眼图 非差分线_利用眼图解决USB在布线中的信号完整性问题
  4. mysql 时间差_后端从mysql取值返回0时区时间数据的问题
  5. 关于STM32 IAP
  6. 零基础带你学习MySQL—修改表(六)
  7. java提示框easyui风格_[Java教程]jQuery EasyUI 提示框(Messager)用法
  8. Matlab 单形法原理,实验报告(单纯形法的matlab程序).doc
  9. 掩膜裁剪tif步骤_(8)空间数据投影变换、数据裁剪、拼接及提取
  10. 同济大学高等数学上册电子版_同济大学版高等数学 第七版 上册 课本
  11. 编程语言难度排名_文言文可编程乎?CMU中国大四学生:开源文言文编程语言获1万+标星...
  12. 解决精简版GhostXP或WIN7中木有超级终端及打开超级终端无图标的问题
  13. java-工具-开源
  14. a标签去掉下划线_怎么去掉html a超链接下划线
  15. 解决 “ImportError: attempted relative import with no known parent package“ 问题
  16. Android 更换 APP logo 无效问题处理
  17. 如何快速获取淘宝商品的详细信息?看这里就够了
  18. python不重复排列组合_python解决排列组合
  19. ARM指令浅析1(mov、ldr)
  20. 诛仙3 私服架设 仿官网

热门文章

  1. Bootstrap3 插件的选项
  2. Bootstrap 模态框插件Modal 的选项
  3. Bootstrap 排版和链接
  4. es6 Generator.prototype.throw()方法
  5. 深度学习笔记(34) 目标检测
  6. 深度学习笔记(27) 经典卷积网络
  7. linux测试游戏下载,一波超人内测版最新下载-一波超人内测版游戏下载v1.0.2-Linux公社...
  8. php echo输出两个变量,php实现关于var_dump和echo输出多变量的测试
  9. mysql 9_mysql-9索引
  10. python numpy array转置_Python numpy数组转置与轴变换