第一讲:双活容灾技术和方案概述

2024-03-01 15:08

本文主要是介绍第一讲:双活容灾技术和方案概述,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

 

容灾建设在我国已有十多年的历史了,尤其是2007年发布国标GB/T20988-2007《信息系统灾难恢复规范》后,各行各业对容灾建设都非常重视,各种新的容灾技术和产品也得到了快速的发展和应用。在我国容灾发展的前十年,主要都是基于保护IT系统本身的运行而考虑的,与业务需求的关系并不太紧密,甚至在设计容灾系统时都不需要业务部门的参与。

但实际上,灾备建设往往需要从存储层、网络层,安全层、计算层、传输层、应用层等6层考虑,每层之间都有着千丝万缕的联系。然而,近年来,存储层的容灾技术越来越受到客户青睐。

存储是一门既古老有现代的技术,纵观存储计算经历的一体,分离到融合的变迁,完美诠释了从服务器中来到服务器中去的存储服务思想,从DAS到如今的SDS/HCI最大的不同的就是可靠性和有效性的提升。如同宇宙,诞生于宇宙大爆炸前的一个黑洞或高质量天体,随着星系的演变、诞生和消失后,最终还是要被黑洞所吞噬再次回到起点。这两个风马牛不相及的事情都说明过程的重要性

回到存储,从EMC被收购,HDS被整合到传闻NetApp被收购来看,单纯的存储盒子是玩不动了。数据越来越多的被放在虚拟机、容器和公有/混合云上,未来的存储应该站在云平台上来考虑如何满足Cloudnative应用需求,而不是隔离单独拼存储盒子的性能和容量。应该更加专注数据云上云下流动,数据跨厂商共享,智能运维,服务质量遵从和存储即服务等。未来客户将更加青睐如同PayU和PayG的新商业模式,所以未来云计算的所有属性将被完全赋予存储。

但是传统存储盒子自从从大型机上独立出来,在整个漫长发展的过程中,确实给我们带来很多回忆和难以忘却故事,今天还是聚焦分析下数据中心双活部署网络相关要求

建设数据中心双活需要网络系统、存储系统、计算资源、应用系统等多个系统之间紧密合作才能实现。用户业务系统同时在两个数据中心运行,包括前端的全局负载均衡、服务器前端的负载均衡、服务器集群HA技术,后端的数据库系统和存储系统技术,同时为用户提供服务。

当某个数据中心的应用系统出现问题时,由另一个数据中心的应用来持续提供服务。

双活数据中心除了存储双活技术外,最需要考虑的技术因素就是数据中心之间网络互联需求,这些因素主要包括。

· 组网方式:裸光纤直连或DWDM设备;同一城域内通过城域网的核心层进行互联,不同城域间的DC通过骨干网进行互联;DC存储通过密集型光波复用DWDM或裸光纤进行直连。

· 集群心跳:集群心跳要求二层网络

· 虚拟机vMotion:在保持业务连续性的前提下,虚拟机可在跨数据中心间实现动态迁移

· 广播隔离:广播消息需在数据中心间实现隔离

由于VM需要在两个数据中心间漂移,一般情况要求这两个数据中心都是在一个大二层的物理架构里。

· 光纤链路直连,弱化距离,与传统网络架构相同;

· 采用大二层互联,实现大二层网络有多种解决方案。

· 与网络设备解耦,通过软件定义实现数据流的重定向,其原理就是VPN,底层网络只要IP可达,不管是在同一个VLAN还是不同的VLAN,通过再次封装,实现全新统一的隔离域,同时摆脱了VLAN数量的限制。数据中心互联网络一般采用光纤互联。对于大于25km的光纤链路,需要增加DWDM波分设备,用于提高带宽降低时延。DWDM对于数据传输的时延起着关键的作用。

数据复制通过存储实现,所以存储层双活网络时延的限制需要格外关注,要保证两地业务数据的同步复制,就目前的技术水平来看,两地双活数据中心最远支持100km。HDS宣传GAD双活实际部署距离支持500km,测试发现距离每增加100km,时延大约增加1ms。实际上双活距离一直都不是问题,主要看网络时延和误码率,以及应用对RTT时延要求和容忍度。如果当距离超过了500km时,其应用能容忍5ms以上的时延,那所有的问题都不是问题。

当然,数据中心双活除了网络,还要关注其他因素,这些因素我先大致列出来,在后续章节中,将逐一分析解释。

1. 脑裂风险问题:如何避免脑裂是每个双机系统都要重视的问题,存储双活系统尤其如此,脑裂会带来长时间的存储读写IO HANG住,造成重大影响。

2. 性能影响问题:因为双活系统在写入数据时,会写两次数据,尤其是通过复制功能写到远端存储的过程,传输链路的性能也会影响整体性能。

3. 数据一致性风险问题:当写入数据时,在复制过程中,数据传递是在缓存中进行的,这样做的好处是提升了性能,问题是当出现异常宕机事件时,就会导致缓存内的数据不能写入存储中,从而造成数据的不一致。

4. 双中心间通讯不可控问题:一是链路稳定状况不可控;二是IO延时指标不可控。这些不可控因素非常容易造成灾难性影响,轻则导致数据库读写性能灾难,重则导致数据库节点直接处于僵死状态。另外,链路的不稳定会导致存储链路频繁切换,甚至会导致集群仲裁频繁发生,这对于业务连续性更是一个灾难。

5. 数据同步逻辑错误问题:存储层面的复制技术基本以存储块为单位进行的数据复制,假设数据块发生了逻辑错误,那么存储是无法检测到的,它会继续将坏的数据块儿同步到灾备端,如果因此数据库发生宕机,那么灾备端的数据库也同样无法正常启动。

6. 存储网络故障泛滥问题:两个数据中心的SAN网络打通,整合为一张大的SAN网络,可能会因为局部的存储网络故障而波及到整个存储网络,造成重大影响。

7. 集群仲裁一致性问题:所谓的仲裁一致性问题,是指双中心之间的双活存储集群和数据库集群的仲裁结果是否能保证一致性。当不一致时,对业务系统将造成灾难性影响。

8. 存储多路径控制的策略问题:倘若采用存储厂商自己的多路径,可能存在兼容性问题,很多双活方案采用系统自带多路径缓和这一问题。

此外,业务层的等级划(RTO/RPO)分也是灾备方案设计的基础和前提。不同的业务连续性要求不同的容灾技术和等级,在本专题课程中,主要聚焦双活方案(存储层、网络层,安全层、计算层、传输层、应用层等6层双活),其实现的效果:RTO/RPO均为0.

本号专注技术架构和行业解决方案,构建专业交流平台,分享一线技术实践,洞察行业前沿趋势,内容覆盖云计算、大数据、超融合、软件定义网络、数据保护解决方案,订阅即可收听业界主流双活方案设计关键技术内容。

<专栏部分精华内容>

  • 剖析SVC Stretch Cluster双活方案
  • 剖析Clustered Metro Cluster双活方案
  • 剖析PowerHA/SVC HyperSwap双活方案
  • 剖析HAM/GAD双活方案方案
  • 剖析VIS/HyperMetro双活方案方案
  • 剖析Vplex双活数据中心存储方案方案
  • 剖析SRDF/Mtreo和MetroSync双活方案
  • 剖析HPE、Dell和Fujitsu双活方案

 

这篇关于第一讲:双活容灾技术和方案概述的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/762882

相关文章

Java利用JSONPath操作JSON数据的技术指南

《Java利用JSONPath操作JSON数据的技术指南》JSONPath是一种强大的工具,用于查询和操作JSON数据,类似于SQL的语法,它为处理复杂的JSON数据结构提供了简单且高效... 目录1、简述2、什么是 jsONPath?3、Java 示例3.1 基本查询3.2 过滤查询3.3 递归搜索3.4

Python中随机休眠技术原理与应用详解

《Python中随机休眠技术原理与应用详解》在编程中,让程序暂停执行特定时间是常见需求,当需要引入不确定性时,随机休眠就成为关键技巧,下面我们就来看看Python中随机休眠技术的具体实现与应用吧... 目录引言一、实现原理与基础方法1.1 核心函数解析1.2 基础实现模板1.3 整数版实现二、典型应用场景2

IDEA中Git版本回退的两种实现方案

《IDEA中Git版本回退的两种实现方案》作为开发者,代码版本回退是日常高频操作,IntelliJIDEA集成了强大的Git工具链,但面对reset和revert两种核心回退方案,许多开发者仍存在选择... 目录一、版本回退前置知识二、Reset方案:整体改写历史1、IDEA图形化操作(推荐)1.1、查看提

Python实现html转png的完美方案介绍

《Python实现html转png的完美方案介绍》这篇文章主要为大家详细介绍了如何使用Python实现html转png功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 1.增强稳定性与错误处理建议使用三层异常捕获结构:try: with sync_playwright(

Java使用多线程处理未知任务数的方案介绍

《Java使用多线程处理未知任务数的方案介绍》这篇文章主要为大家详细介绍了Java如何使用多线程实现处理未知任务数,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 知道任务个数,你可以定义好线程数规则,生成线程数去跑代码说明:1.虚拟线程池:使用 Executors.newVir

MySQL中闪回功能的方案讨论及实现

《MySQL中闪回功能的方案讨论及实现》Oracle有一个闪回(flashback)功能,能够用户恢复误操作的数据,这篇文章主要来和大家讨论一下MySQL中支持闪回功能的方案,有需要的可以了解下... 目录1、 闪回的目标2、 无米无炊一3、 无米无炊二4、 演示5、小结oracle有一个闪回(flashb

Android App安装列表获取方法(实践方案)

《AndroidApp安装列表获取方法(实践方案)》文章介绍了Android11及以上版本获取应用列表的方案调整,包括权限配置、白名单配置和action配置三种方式,并提供了相应的Java和Kotl... 目录前言实现方案         方案概述一、 androidManifest 三种配置方式

Java嵌套for循环优化方案分享

《Java嵌套for循环优化方案分享》介绍了Java中嵌套for循环的优化方法,包括减少循环次数、合并循环、使用更高效的数据结构、并行处理、预处理和缓存、算法优化、尽量减少对象创建以及本地变量优化,通... 目录Java 嵌套 for 循环优化方案1. 减少循环次数2. 合并循环3. 使用更高效的数据结构4

Vue中动态权限到按钮的完整实现方案详解

《Vue中动态权限到按钮的完整实现方案详解》这篇文章主要为大家详细介绍了Vue如何在现有方案的基础上加入对路由的增、删、改、查权限控制,感兴趣的小伙伴可以跟随小编一起学习一下... 目录一、数据库设计扩展1.1 修改路由表(routes)1.2 修改角色与路由权限表(role_routes)二、后端接口设计

关于最长递增子序列问题概述

《关于最长递增子序列问题概述》本文详细介绍了最长递增子序列问题的定义及两种优化解法:贪心+二分查找和动态规划+状态压缩,贪心+二分查找时间复杂度为O(nlogn),通过维护一个有序的“尾巴”数组来高效... 一、最长递增子序列问题概述1. 问题定义给定一个整数序列,例如 nums = [10, 9, 2