跨中心的双活存储数据一致性如何保障?

当写入数据时,在复制过程中,数据传递是在缓存中进行的,这样做的好处是提升了性能,问题是当出现控制器节点异常宕机事件时,就会导致缓存内的数据不能写入存储中,从而造成数据的不一致,这时有没有保障单个存储数据一致性的措施?  此外,两个站点的存储之间的数据一致性,从缓存层、底层数据层又是如何保障的?

参与15

4同行回答

chenmingfuchenmingfu课题专家组基础架构组长西部某城商银行
目前,主流存储厂商都能实现存储2-4个控制器,且每个控制器都有内置锂电池的的,内置电池能够确保异常电源故障的时候或异常宕机时,缓存数据能够写入后端存储磁盘中。不同数据中心的双活存储,只要保证写I/O能够写入两个存储设备的缓存即可,主机服务器一定是要等到写操作在两端都顺...显示全部

目前,主流存储厂商都能实现存储2-4个控制器,且每个控制器都有内置锂电池的的,内置电池能够确保异常电源故障的时候或异常宕机时,缓存数据能够写入后端存储磁盘中。不同数据中心的双活存储,只要保证写I/O能够写入两个存储设备的缓存即可,主机服务器一定是要等到写操作在两端都顺利完成后才会认为写I/O这个动作完成,缓存数据一致了,存储端lun数据也就一致了,所以一致性是完全可以得到保障的。

收起
银行 · 2020-11-19
浏览2580
LX11LX11高级工程师华为
双活容灾场景下,两个站点都能同时进行读写业务,如果应用在同一个时间点对卷同一个位置进行读写,存储层需要保证在该场景下两个站点的数据是一致的。 华为双活方案通过优化后的乐观锁机制,先预判没有锁冲突,直接发起对端阵列的写请求,数据发送到对端阵列后再加锁。而当主机对...显示全部

双活容灾场景下,两个站点都能同时进行读写业务,如果应用在同一个时间点对卷同一个位置进行读写,存储层需要保证在该场景下两个站点的数据是一致的。
华为双活方案通过优化后的乐观锁机制,先预判没有锁冲突,直接发起对端阵列的写请求,数据发送到对端阵列后再加锁。而当主机对同一存储地址的数据并发访问时,也可将并发访问请求转为串行排队处理,保证两个站点数据一致性。相比传统锁机制,不需要跨站点的锁服务器,降低架构复杂度,同时在不出现冲突情况下直接进行双写操作,避免向锁服务器(甚至是对端站点的锁服务器)进行交互,提高了性能,保证跨中心的双活存储数据一致性。

收起
系统集成 · 2020-11-19
浏览2599
craziersporecrazierspore产品总监华为
当提供双活LUN的两套阵列之间的链路故障时,阵列已经无法实时镜像同步,此时只能由其中一套阵列继续提供服务。为了保证数据一致性,华为HyperMetro通过仲裁机制决定由哪套存储继续提供服务。HyperMetro支持按双活Pair或双活一致性组为单位进行仲裁。当多个双活Pair提供的业务...显示全部

当提供双活LUN的两套阵列之间的链路故障时,阵列已经无法实时镜像同步,此时只能由其中一套阵列继续提供服务。为了保证数据一致性,华为HyperMetro通过仲裁机制决定由哪套存储继续提供服务。

HyperMetro支持按双活Pair或双活一致性组为单位进行仲裁。当多个双活Pair提供的业务相互依赖时,用户需要把这些双活Pair配置为一个双活一致性组。仲裁完成后,一个双活一致性组只会在其中一套存储阵列继续提供服务。例如,Oracle数据库的数据文件、日志文件可能分别存放在不同的LUN上,访问Oracle数据库的应用系统存放在另一些LUN上,相互之间存在依赖关系。配置双活时,建议数据LUN、日志LUN和应用LUN分别配置双活pair,并且加入同一个一致性组。

HyperMetro提供了两种仲裁模式:

 静态优先级模式

 仲裁服务器模式

配置双活Pair前,需要配置双活域,双活域为逻辑概念,包括需要创建双活关系的两套存储阵列和仲裁服务器。每个双活Pair创建时均要选择双活域,每个双活域只能同时应用一种仲裁模式。

仲裁服务器模式比静态优级模式具备更高的可靠性,可保证在各种单点故障场景下,业务连续运行。因此,华为双活方案推荐采用仲裁服务器模式。

收起
银行 · 2020-11-19
浏览2563
jxnxsdengyujxnxsdengyu课题专家组系统工程师江西农信
1、控制器都有内置电池的的,而且有两个控制器,实时同步缓存数据,能够在掉电或者异常宕机时,保证缓存一定能够刷入后端存储。这个机制是肯定有保障的。2、跨站点的双活存储,只要保证写I/O能够写入两个存储缓存即可,返回主机一定是要等到双写完毕才会认为写I/O这个动作完成,缓存数...显示全部

1、控制器都有内置电池的的,而且有两个控制器,实时同步缓存数据,能够在掉电或者异常宕机时,保证缓存一定能够刷入后端存储。这个机制是肯定有保障的。
2、跨站点的双活存储,只要保证写I/O能够写入两个存储缓存即可,返回主机一定是要等到双写完毕才会认为写I/O这个动作完成,缓存数据一致了,整个数据卷或者卷组数据也就一致了,无需等到缓存达到高水位刷底层存储。

收起
银行 · 2020-11-19
浏览2682

提问者

wanggeng
系统运维工程师某银行
擅长领域: 服务器存储数据库

问题来自

相关问题

相关资料

相关文章

问题状态

  • 发布时间:2020-11-15
  • 关注会员:5 人
  • 问题浏览:4103
  • 最近回答:2020-11-19
  • X社区推广