站点图标 起风网

ODPS主备集群双向数据复制导致主备中心网络打爆问题

简介:ODPS主备集群双向数据复制导致主备中心网络打爆问题

1. 故障问题描述

客户现场发生了ODPS主备机房相互数据全量复制导致的主备中心网络被打爆的问题,严重影响了日常运行的ODPS任务。在ODPS主备机房的环境中,用户的任务均在主机房中运行,产生的数据默认会落在主机房,通过ODPS replicationService将主机房的数据异步复制到备用机房。那么为什么会有反向同步到主机房数据的情况,需要对该问题开展排查进行根因分析。

2. 故障现象

在排查过程中观察关闭数据前后的机器网络负载状态,当打开数据主备复制的时候,机器的网卡的进出流量很大。

图1

继续排查发现主机房复制作业和备机房复制作业都在运行,而且很多都是没有更新的数据表,这种没有必要的全量数据同步造成大量的网络开销。

图2

图3

图4

3. 故障原因分析

在解决问题之前,我们需要先搞清楚ODPS同城双机房容灾整体技术方案和其中的跨机房数据异步复制工作原理。

3.1 ODPS同城双机房容灾整体技术方案

ODPS产品应用中针对每一种场景的故障或者集群灾难,其故障恢复或者服务切换方案都是不同的。该客户属于ODPS同城双机房容灾方案,我们先看下ODPS同城双机房容灾整体技术方案。

  1. 特点:
  1. 核心逻辑:
  1. 网络要求:

图5

  1. 模块具体说明如下:

3.2 跨机房数据异步复制工作原理

我们再来看下跨机房数据异步复制工作原理:

  1. 在正常工作状态下,主机房的ODPS提供服务,备机房的ODPS没有服务请求,上层数据业务都只通过两个服务域名使用ODPS:
  1. ODPS通过数据异步复制机制,由主机房的Replication Service不断将主机房的ODPS数据同步到备机房的计算集群,ODPS引入数据版本的机制:

{“LatestVersion”:*V1*,”Status”:{“ClusterA”:”*V1*”,”ClusterB”:”*V0*”}}

  1. 对于ODPS这种大规模离线数据处理系统来说,数据加工往往有突发的情况,在某个时间段产出的数据量可能非常大,受限于机房间的带宽,新上传的和新计算的数据复制到备机房需要一定的时间,ODPS提供实时查看当前未同步的数据表/分区,实时的容灾数据同步率等信息,实时数据同步率主要取决于两个因素的影响:

因为数据复制也是以飞天分布式任务来进行的,需要用到主机房的ODPS计算集群的计算资源(主要是CPU和内存),ODPS可以根据这两个因素给出数据同步完成的时间预估。

考虑到集群间带宽,存储等资源的竞争, 需要用户自行选择是否创建容灾project。通过ascm/dtcenter创建project时,可以选择创建单集群project,也可以选择创建多集群project。其中单集群project不支持容灾功能。

容灾project配置:

  1. 通过ascm/dtcenter创建多集群project之后,默认主备集群不会进行数据同步,需要通过bcc页面配置开启数据同步(maxcompute模块下 -> 运维菜单 -> 业务运维 -> 项目管理 -> 项目列表)。

图6

  1. 客户某个project的资源复制配置:

图7

配置项说明,开启资源复制后,以下配置才能生效。

注:配置数据同步为实时同步或数据同步间隔配置时间较短会较大程度占用网络带宽,建议当需要同步的数据量较大时,关闭实时同步并调大同步间隔。  

  1. 容灾复制风险和实践说明:    

图8

从具体的备机房往主中心复制作业日志截图中可以看到,集群的名字是大写,而客户在资源复制同步中设置的sourceLocation中是小写,客户侧存在错误配置的问题。

图9

和ODPS的研发同学沟通确认了这个问题的root cause是ODPS的replicationService在发起项目数据异步复制时会拿SyncObject的集群通过ots来校验备用集群对应的project的版本号。这里将大小写不同认为是备机房该项目不存在,于是发起了同步,但是在数据落地存储的时候有数据校验并不会把这些真正存储起来。于是带来了不必要的网络开销,但并不会影响数据质量。 

通过bcc修改资源配置,将SyncObject中集群改为大写,并重启ODPS的replicationService后问题得到彻底解决。

图10

4. 问题结论

ODPS主备集群做数据复制同步带宽被打满,root cause是ODPS project资源复制中的集群名是小写,而ODPS project集群的名称是大写,数据同步的时候会认为该project不存在,导致了双向同步,通过测试也验证了这一点。该问题已经通过bcc批量更正项目名中集群信息为大写,同时重启replicationService解决。

需要特别注意:客户在bcc中项目资源复制配置中需要注意保持同步数据集群名字大小写和集群名字匹配。

通过这次问题排查可以很好地了解到当前的ODPS多机房的数据同步方案和多机房的技术容灾架构。


我们是阿里云智能全球技术服务-SRE团队,我们致力成为一个以技术为基础、面向服务、保障业务系统高可用的工程师团队;提供专业、体系化的SRE服务,帮助广大客户更好地使用云、基于云构建更加稳定可靠的业务系统,提升业务稳定性。我们期望能够分享更多帮助企业客户上云、用好云,让客户云上业务运行更加稳定可靠的技术,您可用钉钉扫描下方二维码,加入阿里云SRE技术学院钉钉圈子,和更多云上人交流关于云平台的那些事。

原文链接:https://developer.aliyun.com/article/796081?

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

原文链接:https://blog.csdn.net/alitech2017/article/details/121079270

本站声明:网站内容来源于网络,如有侵权,请联系我们,我们将及时处理。

退出移动版