数据零丢失——对象存储双活数据中心最佳实践

2022年01月 · XSKY

前言


对象存储因其灵活的架构和较为全面的功能支持,被应用于广泛的业务场景。传统对象存储的多站点容灾技术,底层采用的是异步的复制技术,如果发生站点故障,数据有丢失风险。随着对象存储逐渐进入企业关键业务,关键业务对存储系统提出的业务连续性灾难恢复的要求越来越高,很多用户也需要对象存储实现和块存储一样的容灾能力,即数据零丢失RPO=0)真双活数据中心。在这样的背景下,XSKY星辰天合的对象双活数据中心存储方案应运而生。本文将介绍基于星辰天合的延展集群,如何实现对象业务的数据和业务双活。

延展集群功能介绍


星辰天合延展集群功能为跨地域业务双活方案提供存储支撑。延展集群需要与业务紧密配合实现业务高可用,本文以对接对象存储场景为例介绍业务高可用解决方案及其配置方法。

出于对关键业务容灾避免业务宕机保障业务持续可用的目的考虑,很多企业开始兴建双活数据中心,特别是金融行业。XEOS可跨同城数据中心部署存储延展集群,实现数据中心级故障域存储多副本数据镜像在两个数据中心,保证任何一个数据中心内所有存储节点故障,业务零切换数据零丢失

微信图片_20220127101945.png

XEOS分布式存储系统支持将集群内的存储节点放置在不同的数据中心中,确保一个数据对象的多个副本保存在不同地理位置的存储节点上,实现多副本数据高可用。从管理面到底层存储,可运行在二层或三层网络之上,支持不同子网间的部署通信,降低用户网络配置的复杂度。


部署模式和存储池规划

存储策略和存储池

XEOS采用存储策略管理桶、对象在存储池之间的分配策略,不但能借助缓存池实现小文件合并,也能实现整池扩容、活动池等高级数据池管理,在延展集群场景中,将存储策略的索引池和数据池设置为延展池,即可建立数据和业务的跨数据中心双活基础。


微信图片_20220127102030.png


基于存储策略延展池可以实现业务的单桶双活部署多桶双活部署

单桶双活部署示例



微信图片_20220127102049.gif


单桶双活下,在两个数据中心各自创建对象路由,主数据中心故障时将业务和对象数据访问切换到备份数据中心,当主数据中心恢复时,只需将访问入口调整为到主数据中心(通过VIP快速切换就可以),数据的副本将由星辰天合分布式存储引擎自动实现双数据中心分布。


多桶双活部署示例

星辰天合分布式存储引擎支持设置延展池数据的主副本位置,通过设置主副本位置可以实现数据优先本数据中心读写,当出现数据中心级故障时,读写自动切到到另一数据中心。

微信图片_20220127102111.gif


模式对比

单桶双活模式可以轻松实现RPO=0RTO≈0的容灾方案多桶双活模式可以充分利用两个数据中心的资源,实现业务的双活互备


业务接入方案

在完成基础资源的搭建后,通过不同的接入方案,可以更好的进行业务规划和RTO优化。


微信图片_20220127102151.png


XEOS通过对象路由对外提供统一的访问入口。对象路由由一组负载均衡组成,每一个负载均衡器配置一个VIP,负载均衡器故障时,VIP可以自动漂移到其它负载均衡器上,保障接入高可用。

DNS Server上配置好请求域名对应对象路由上的一组VIP。客户端从DNS Server获得一个VIP后从对应的负载均衡器接入。DNS Server按一定的策略向客户端返回不同的VIP,保证对象路由的多个负载均衡器间接入流量均衡或故障切换。
负载均衡器接收客户端请求,按照负载均衡策略轮询转发请求到
S3网关。S3网关是无状态的,不同请求之间在网关上不存在依赖关系,可以水平扩展S3网关数量。当S3网关故障时,对象路由能自动检测和调整负载,将其从服务列表中剔除。


全转发


微信图片_20220127102213.png


在全转发的接入模式下,两个数据中心共用一个对象路由,其中负载均衡器分别位于两个数据中心,同时将请求分发到后端的全部S3网关。

通过这种模式,可以实现当对象路由1故障时vip1自动漂移到负载均衡器2上。
通过
bucket1接入的业务,以数据中心1为主,数据中心2为备,实现业务数据主备自动切换


分组转发

微信图片_20220127102233.png

在分组转发的场景下,规划两个对象路由,其中对象路由1只转发请求到本数据中心的网关,通过将bucket1的存储策略设置为以延展池1作为数据池,可以实现bucket1的读写IO都优先落入数据中心1,保障读写的本地性,bucket2则可以实现数据中心2的优先本地读写。
这种接入模式,可以实现数据中心的本地优先读写,以及两个数据中心互为主备的模式,充分利用两个数据中心的资源。


配置实例

以下为全转发场景的配置实例节点dc1-1dc1-2dc1-3dc1-4分布于数据中心1的两个机架中,节点dc2-1dc2-2dc2-3dc2-4分布于数据中心2的两个机架中,仲裁节点位于远端。


微信图片_20220127102304.png


创建1个对象路由,其中在dc1-1dc2-1上分别创建负载均衡器,其中负载均衡器1生效VIP10.150.49.236,负载均衡器2生效的VIP10.150.49.220


微信图片_20220127102323.png

S3网关处于对象路由后端,由对象路由统一管理和转发请求。


微信图片_20220127102342.png

当数据中心1故障时,负载均衡器的VIP 10.150.49.220将会自动漂移到数据中心2的负载均衡器2上,实现业务的自动切换。

微信图片_20220127102400.png

故障切换方案

故障场景

故障影响

业务切换方案

存储节点故障

存储池中部分副本故障,网关、路由可以正常提供服务

业务层无需切换

s3网关故障

部分网关无法提供服务

业务层无需切换对象路由自动检测健康状态和权重

对象路由故障(全转发)

对象路由及后端s3网关无法提供服务

业务层无需切换vip自动漂移到另一数据中心

数据中心故障(全转发)

数据中心总体无法提供服务

业务层无需切换vip自动漂移

对象路由故障(分组转发)

对象路由及后端s3网关无法提供服务

通过DNS或者业务切换endpoint VIP

数据中心故障(分组转发)

数据中心总体无法提供服务

通过DNS或者业务切换endpoint VIP

RPO=0的对象双活案例

济南市儿童医院


微信图片_20220127102441.png

微信图片_20220127102446.png


通过XEOS延展集群方案配置,实现院区2数据中心之间双活。PACS数据采用对象存储,其IO路径远远优于文件存储、块存储,配合SSD等固态加速盘,读写性能上远超越传统集中式存储。


某证券公司


微信图片_20220127102514.jpg


需求

1.实现数据和业务的跨数据中心双活

2.数据中心间业务全自动切换,无需人工干预

3.除了物理错误之外,数据IO需要支持防止勒索病毒加密或篡改内容等逻辑错误保障方案


方案

1.采用XEDP+延展集群部署方案,实现双活和自动切换,RTO≈0RPO=0

2.通过XEOS多版本功能,避免数据的误操作或恶意修改

3.通过XEOS数据流动引擎,对接蓝光存储系统,实现数据的长期合规存储,实现数据的跨介质存储


微信图片_20220127102646.png


收益

1.通过星辰天合成熟的双活方案,快速部署,业务无需调整,实现异地容灾和在线存储

2.通过XEOS丰富的功能和流动引擎,实现异质容灾和离线归档


写在最后


星辰天合支持业界普遍支持的对象多站点技术,但对象延展集群,是业界为数不多支持数据零丢失的对象同城双活容灾方案,让对象存储可以实现和块存储一样的容灾能力,也使得对象存储支撑关键业务成为可能。星辰天合的对象真双活方案,已经在多个客户得到应用,大大拓展了对象存储的应用范围,让对象存储也成为支撑国计民生关键业务的坚实基石。