数据仓库之变形金刚——集群resize原理介绍

举报
闻鲜生 发表于 2020/12/03 12:00:10 2020/12/03
【摘要】 摘要数据仓库,往往意味着海量的数据,超大的集群,就像一个超大的金刚。一旦数据仓库搭建完成,集群迁移、集群规模扩展、集群架构调整需要花费很大的代价,对上层应用业务的影响周期也比较长。DWS提供了集群resize的功能。支持集群规模的scale out,也支持硬件规格的scale up,同时支持集群拓扑结构的重组。就如同使数仓这个金刚可以变形了。那让我们一起来看看他是如何变形的吧!背景介绍先简单...


摘要

数据仓库,往往意味着海量的数据,超大的集群,就像一个超大的金刚。一旦数据仓库搭建完成,集群迁移、集群规模扩展、集群架构调整需要花费很大的代价,对上层应用业务的影响周期也比较长。DWS提供了集群resize的功能。支持集群规模的scale out,也支持硬件规格的scale up,同时支持集群拓扑结构的重组。就如同使数仓这个金刚可以变形了。那让我们一起来看看他是如何变形的吧!

技术定义

先简单介绍数据仓库几个概念:

  • Scale Out(也就是Scale horizontally)横向扩展,向外扩展:

Scale out代表分布式计算的能力,通过在原有系统上增加节点来扩展存储能力和计算能力。对于数仓来说就是扩展集群规模。为了不出现木桶效应,要求新扩的机器硬件配置和老集群一致。

  • Scale Up(也就是Scale vertically)纵向扩展,向上扩展:

Scale up代表以主机或机箱式为主的扩展CPU或内存存储的能力。通过在原有系统上提升硬件配置(如磁盘、内存、CPU、网卡等),来提升存储能力和计算能力。对于数仓来说就是升级硬件配置,升级有些硬件配置可能需要升级操作系统。

  • DWS逻辑拓扑结构:

这个图大家在之前的博文中应该见过,本次从resize的角度介绍下。

DWS的组件从功能角度可分为功能组件和数据组件。

  • 数据组件:提供数据处理的组件,如DN节点,目前DWS均衡部署,每个机器上的DN数目一般相同。
  • 功能组件:提供特定功能的组件,如GTM提供全局事务处理,CN处理业务接入,CM处理集群管理,WLM处理负载均衡。这些组件一般数量固定,在集群安装时按照特定规则部署在集群的某些机器上。随着集群规模的调整,初始的配置可能已经不是最优配置了。因此存在调整集群拓扑结构来调优的诉求。

  • Redshift的cluster resize解决方案如下,包括原地resize和快照恢复到异构集群方式resize。

技术原理

GaussDB(DWS)resize基于多nodegroup和数据重分布实现,同时提供了横向扩展和纵向扩展的能力,resize期间老集群只支持只读业务。

  • 典型resize流程示意图如下:
  1. 老集群同网络内,新建一个独立的集群,新集群的拓扑结构和硬件配置可以和老集群完全不同。
  2. 新老集群融合成一个大集群,并做老集群到新集群的数据重分布。数据重分布期间,新集群对外不可见,老集群对外提供业务。
  3. 数据重分布完成,新老集群分裂,此时新老集群的各自的数据是完全相同的,用户可以运行业务,对比新老集群的性能。

  • 集群resize的完整流程图如下

  • 集群resize的数据重分布逻辑

数据重分布的核心思想是把1个nodegroup的数据select insert into到1个新的nodegroup上。Scale-out扩容的数据重分布新的nodegroup是包含老的nodegroup的,而集群resize的新的nodegroup和老的nodegroup的DN是完全没有交集的。如下:

具体功能

  • 小规格的集群纵向扩展为大规格更少节点集群;
  • 小规格的集群纵向扩展为大规格更多节点集群;
  • 小规格的集群纵向扩展为大规格相同节点集群;
  • 大规格的集群向下调整为小规格的集群。

技术应用

6.5.1版本交付的需求,主要给DWS使用,支撑DWS从小规格节点Scale-up为更大规格的节点。主要场景为XX客户POC使用低配xlarge规格,切换生产时想使用大规格高配12xlarge集群。且通过不重装集群、不导出/导入数据方式直接切换。

扩展场景:

  • 新建集群的集群规模新增或者减少。
  • 新建集群的硬件配置可以高配或者低配。
  • 新建集群的功能组件的的配置(数量,位置)可以变更。

规格约束及演进方向

  • resize的耗时依赖于老集群的IO read(可能瓶颈),新集群的IO write和新老节点间的网络IO。公式为:

max(老集群单raid数据量/IO read速率新集群单raid数据量/IO write速率总数据量/老节点数/发送速率,  总数据量/新节点数/接收速率)

  • 新集群单raid数据量 = 总数据量/新集群节点数/raid组数   --假设无明显数据倾斜。
  • 集群resize过程中集群存在业务秒级闪断。
  • 集群resize过程中提供只读服务,后续版本提供在线能力。

结语

集群resize提供一键式集群的扩容和迁移的能力。来解决数仓使用过程中规格调整,规模扩展,拓扑变更的诉求。



想了解GuassDB(DWS)更多信息,欢迎微信搜索“GaussDB DWS”关注微信公众号,和您分享最新最全的PB级数仓黑科技~

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。