草庐IT

容灾的架构分析和容灾选择策略

云心鹤眼观世界 2023-12-20 原文

1.传统容灾中心的架构

容灾半径是衡量容灾方案所能承受的灾难影响范围的指标。不同灾难的影响范围是不同的,而距离也会影响到容灾技术的选择。容灾中心的架构按照源备端之间的距离,可分为本地容灾、同城双活、两地三中心。

1.1本地容灾

本地容灾一般指主机集群,当某台主机出现故障,不能正常工作时,其他的主机可以替代该主机,继续正常对外提供服务。通常可通过共享存储或双机双柜的方式实现本地容灾,其中多以共享存储为主。

共享存储由三部分组成:活动主节点,不活动备节点,共享存储。

其中两台计算资源节点提供主备角色服务,通过SAN网络附加型存储作为数据存储的介质。 主备节点共享一份存储,一旦主节点宕机,备节点可基于共享存储实现业务的接管。但共享存储的同构成本和远距离高可用接管成本过高,存在较大存储故障风险,且只支持一对一架构。

双机双柜是一种不依赖共享存储而实现的高可用保护架构,采用主备的高可用保护模式。在双机架构中,生产主机和备机具有物理层的完全独立性,应用、系统、网络和数据都是一式两份,生产主机和备机可通过存储网络或局域网进行连接。其中,本地的存储网络连接的主备高可用适用于近距离的容灾建设,受距离限制较大;异地远距离的主备高可用,则会存在极小的数据延时。

本地容灾的数据中心与灾备中心的距离比较近,通信线路质量较好,比较容易实现数据的同步复制 ,保证高度的数据完整性和数据零丢失。本地容灾一般用于防范火灾、建筑物破坏、供电故障、计算机系统及人为破坏引起的灾难。

1.2同城双活

同城双活属于本地容灾,但根据运营模式可以分为主备和双活两种形式:

主备模式即生产中心正常对外提供服务时,同步将数据单项复制到备端数据中心,且备端不对外提供服务。一旦生产中心故障,备端生产中心接管服务。这种模式资源投入较低且技术实施和后期维护相对简单,但是灾后业务恢复速度慢。

传统主备模式的弊端在于,备端长时间处于待机状态,存在资源浪费情况。且多种潜在因素如心跳线中断、网络短时间中断、应用服务器响应不及时等,容易导致在生产中心实际运行正常情况下进行误切换,即存在“脑裂”现象。

双活模式下的两个数据中心分别对外提供服务,且彼此之间保持双向复制。一旦一端故障,另一端立即接管其业务,保障业务的连续性。这种方式相较于主备模式,其业务恢复速度更快,但整体资源投入更高,实施及运维难度更复杂,且存在业务冲突风险。

业界更多采用的是两地三中心的做法。远端的备份机房能更大的提供灾备能力,能更好的抵抗地震,恐袭等情况。双活的机器必须部署到同城,距离更远的城市作为灾备机房。灾备机房是不对外提供服务的,只作为备份使用,发生故障了才切流量到灾备机房,原因主要在于:距离太远,网络延迟太大。

1.3两地三中心

两地三中心属于异地容灾,要求数据中心间距离须保证在三百公里以上,同时还必须做到“三不”,即不 在同一地震带,不在同一电网,不在同一江河流域。

最为稳固的、保护等级最高,也是成本最高的容灾方案,即“两地三中心”:本地的生产中心和灾备中心相距100km以上,进行应用级或业务级容灾保护,且在 300km 以外的异地建立灾备中心,进行数据级或应用级容灾保护。

随着IT应用的快速发展,金融,银行,政府等越来越多的用户要求核心业务7*24不断网,不断电持续运行,一些大型企业为了尽最大可能减小大自然灾害对业务连续性的影响,而选择两地三中心的容灾方案,这样的方案具备高可用和灾难备份能力。

2.容灾级别与能力

容灾系统按保护级别可分为:数据级容灾、应用级容灾、业务级容灾。

2.1数据级容灾

数据级容灾是指通过建立异地灾备中心,做数据的远程备份,在灾难发生之后要确保原有的数据不会丢失或者遭到破坏,但在数据级容灾这个级别,发生灾难时应用是会中断的。在数据级容灾方式下,所建立的异地灾备中心可以简单地把它理解成一个远程的数据备份中心。数据级容灾的恢复时间比较长,但是相比其他容灾级别来讲它的费用比较低,而且构建实施也相对简单。

2.2应用级容灾

应用级容灾是在数据级容灾的基础之上,在备份站点同样构建一套相同的应用系统,通过同步或异步复制技术,这样可以保证关键应用在允许的时间范围内恢复运行,尽可能减少灾难带来的损失,让用户基本感受不到灾难的发生,这样就使系统所提供的服务是完整的、可靠的和安全的。应用级容灾生产中心和异地灾备中心之间的数据传输是采用异类的广域网传输方式;同时应用级容灾系统需要通过更多的软件来实现,可以使多种应用在灾难发生时可以进行快速切换,确保业务的连续性。

2.3业务级容灾

业务级容灾是全业务的容灾,除了必要的IT相关技术,还要求具备全部的基础设施。其大部分内容是非IT系统(如电话、办公地点等),当大灾难发生后,原有的办公场所都会受到破坏,除了数据和应用的恢复,更需要一个备份的工作场所能够正常的开展业务。

3.云容灾优势

云容灾是一种基于云平台发展起来的服务模式。云容灾是指以云计算的服务模式为企业提供业务容灾、数据备份、数据副本利用等多种数据应用场景的服务,即容灾即服务(DRaaS, DR as a Service)。

云容灾结合云平台的计算、存储和带宽等诸多优势,相比传统容灾具备了多方面的优势:

  • 基础设施减少

摒弃采购传统的灾备服务器,借助云平台供应商提供的计算和存储平台,或直接采用云容灾DRaaS应用服务。云容灾技术方案则可有效降低维护需求和成本消耗。客户在节省更多的物理空间的同时,也可以节省更多的IT资源,将相关的维护人员解放出来,参与到其它工作中去。

  • 降低 IT 成本

根据具体需要采用更为经济、更具弹性的云存储进行备份,免去自建数据中心所带来的硬件购买及维护成本,免去维护各种硬件所带来的烦恼,实现了对资源的精细化管理,进而减少大部分的灾备支出。

  • 按需付费

云容灾可以采用云基础设施或者DRaaS模式,允许用户自由选定重要的系统和数据进行容灾。所以无论是业务接管还是演练,客户只需为实际所使用的资源付费,大大减少了资源的浪费,且提升了效率。

  • 高度灵活性

云容灾使得业务需求更容易评估,用户可以更准确地预估哪个系统、甚至哪个子系统需要维护,也可以更细粒度地选择关键的数据来优化自身的备份计划,而不是整个地完全备份,更精确地设置RPO ,即能容忍的最大数据丢失量。云中建立的高可用、高容错架构可以提升RTO和RPO,基于公有云平台或者开源的私有云技术,也可以简便快速灵活地构建容灾节点并将数据迁移或者复制到云端,提升灾难恢复的速度。

  • 快速恢复

为即使有传统定制的远程备份,仍然需要时间去做数据的恢复和业务重启,且取决于远程备份的地点远近和远程服务器的性能。而云容灾是可以充分利用云的能力,突破物理限制,在云端做到业务启动。

云容灾独有的高性能、高可靠性、高扩展性、易维护性、责任风险低以及高性价比的服务特色,帮助用户低成本建设高可用、灵活、按需付费的专业云容灾平台。

对于许多IT资源有限的用户来说,基于云的容灾不失为一个好的选择,因为云服务是一种随用随付费的模式,而企业如果自建容灾设施的话,在大多数时间又处于闲置和备用状态,所以云非常适合那些中小企业。在利用云服务设立容灾站点之后,企业对数据中心空间、IT基础设施和IT资源的依赖程度会大幅下降,进而带来运营成本的大幅下降。借助云,小型企业也能实施容灾系统,而在此之前,只有大型企业才能做到这一点。

4.云容灾级别和能力

参考传统容灾的级别划分,由于云容灾的基础设施采用了云平台,在云容灾的级别划分上,应用级和业务级的区别已经不大了,因此在这里将云容灾的容灾级别分为:数据级容灾、业务级容灾。

数据级云容灾:数据级云容灾是指通过云平台做数据的远程备份,在灾难发生之后要确保原有的数据不会丢失或者遭到破坏。

业务级云容灾:业务级云容灾是指通过云平台做数据的远程备份和恢复,保证关键应用在允许的时间范围内恢复运行,尽可能减少灾难带来的损失,保证一定的RPO和RTO。

随着IT基础架构逐渐云化,容灾也面临着云化转型,不断涌现出更多的云容灾产品和方案。

在这里列举几家代表性厂商:

  • 数据级云容灾工具:Veeam Backup & Replication

Veeam是云数据管理备份解决方案的领导者。无论是从AWS、Azure和Google Cloud中获得非常灵活的混合云功能,还是获得强大的勒索软件防护和恢复选项,Veeam都可以轻易满足。Veeam将强化的不可变存储选项、可靠的云原生备份选项、连续数据保护以及其他更多功能整合到了一个平台上。

  • 业务级云容灾工具:ZertoVirtual Replication

Zerto是一家专注于虚拟化容灾/业务连续性的软件公司。Zerto公司的旗舰产品ZertoVirtual Replication (ZVR)是一个基于虚拟机复制的软件解决方案,支持云容灾到AWS和Azure公有云,通过帮助组织机构达到恢复时间目标和恢复点目标而使运作灾难恢复和业务连续性成为可能,而同时只需要较低的成本费用。用户使用Zerto,用户可以得到可靠的,接近实时的服务器复制,而花费仅仅是SAN阵列式复制成本的一小部分。

  • 业务级云容灾工具:CloudEndure Disaster Recovery

CloudEndure是国外的一家做云灾备和负载迁移的初创公司,目前已经被AWS收购。CloudEndure Disaster Recovery 可以通过快速而可靠地将物理机、虚拟机和基于云的主机恢复到Amazon云区域,能最大限度地帮助客户缩短停机时间并减少业务中断损失,同时显著降低灾难恢复基础设施的成本。

  • 业务级云容灾工具:HyperBDR

HyperBDR是一家中国企业万博智云自主研发的业务级云原生备份与容灾工具。

HyperBDR深度对接20+以上云平台API接口,在国内的云服务厂商多样的环境下,适配多云多场景的容灾。实现支持高度自动化的异构平台容灾方案,可以自由选择目标云平台进行备份,方案灵活性更高,安全性更强。它利用云原生服务,帮助用户实现基于云平台的备份与容灾,利用底层不同的数据技术,及云原生编排能力,实现一键式容灾演练。

有关容灾的架构分析和容灾选择策略的更多相关文章

  1. ruby - Rails 3 的 RGB 颜色选择器 - 2

    状态:我正在构建一个应用程序,其中需要一个可供用户选择颜色的字段,该字段将包含RGB颜色代码字符串。我已经测试了一个看起来很漂亮但效果不佳的。它是“挑剔的颜色”,并托管在此存储库中:https://github.com/Astorsoft/picky-color.在这里我打开一个关于它的一些问题的问题。问题:请建议我在Rails3应用程序中使用一些颜色选择器。 最佳答案 也许页面上的列表jQueryUIDevelopment:ColorPicker为您提供开箱即用的产品。原因是jQuery现在包含在Rails3应用程序中,因此使用基

  2. ruby - 我正在学习编程并选择了 Ruby。我应该升级到 Ruby 1.9 吗? - 2

    我完全不是程序员,正在学习使用Ruby和Rails框架进行编程。我目前正在使用Ruby1.8.7和Rails3.0.3,但我想知道我是否应该升级到Ruby1.9,因为我真的没有任何升级的“遗留”成本。缺点是什么?我是否会遇到与普通gem的兼容性问题,或者甚至其他我不太了解甚至无法预料的问题? 最佳答案 你应该升级。不要坚持从1.8.7开始。如果您发现不支持1.9.2的gem,请避免使用它们(因为它们很可能不被维护)。如果您对gem是否兼容1.9.2有任何疑问,您可以在以下位置查看:http://www.railsplugins.or

  3. ruby-on-rails - Rails 单选按钮 - 模型中多列的一种选择 - 2

    我希望用户从一个模型的三个选项中选择一个。即我有一个模型视频,可以被评为正面/负面/未知目前我有三列bool值(pos/neg/unknown)。这是处理这种情况的最佳方式吗?为此,表单应该是什么样的?目前我有类似的东西但显然它允许多项选择,而我试图将它限制为只有一个..怎么办? 最佳答案 如果要使用字符串列,让我们说rating。然后在你的表单中:#...#...它只允许一个选择编辑完全相同但使用radio_button_tag: 关于ruby-on-rails-Rails单选按钮-模

  4. ruby-on-rails - CarrierWave - PDF - 只选择第一页 - 2

    我的Rails应用程序中安装了carrierwave。但是,当用户上传多页pdf时,我只希望应用程序获取文档中的第一页并将其转换为jpeg。这可能吗?用什么命令?这是我的uploader。#encoding:utf-8classImageUploader[200,300]##defscale(width,height)##dosomething#end#Createdifferentversionsofyouruploadedfiles:version:thumbdoprocess:resize_to_fill=>[150,210]process:convert=>:jpgdefful

  5. ruby-on-rails - ActiveAdmin 自定义选择过滤器下拉名称 - 2

    对于用户模型,我有一个过滤器来检查用户的预订状态,该状态由整数值(0、1或2)表示。UserActiveAdmin索引页上的过滤器是通过以下代码实现的:filter:booking_status,as::select然而,这会导致下拉选项为0、1或2。当管理员用户从下拉列表中选择它们时,我更愿意自己将它们命名为“未完成”、“待定”和“已确认”之类的名称。有没有办法在不改变booking_status在模型中的表示方式的情况下做到这一点? 最佳答案 假设booking_status是模型中的枚举字段,您可以使用:过滤器:booking

  6. ruby - Ruby 和 Ruby on Rails 中的三层架构 - 2

    我是一名决定学习Ruby和RubyonRails的ASP.NETMVC开发人员。我已经有所了解并在RoR上创建了一个网站。在ASP.NETMVC上开发,我一直使用三层架构:数据层、业务层和UI(或表示)层。尝试在RubyonRails应用程序中使用这种方法,我发现没有关于它的信息(或者也许我只是找不到它?)。也许有人可以建议我如何在RubyonRails上创建或使用三层架构?附言我使用ruby​​1.9.3和RubyonRails3.2.3。 最佳答案 我建议在制作RoR应用程序时遵循RubyonRails(RoR)风格。Rails

  7. ruby-on-rails - 多次选择一个随机数,但绝不会两次选择相同的随机数 - 2

    这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:HowdoIgeneratealistofnuniquerandomnumbersinRuby?我想做的事:Random.rand(0..10).timesdoputsRandom.rand(0..10)end但如果随机数已经显示过,则无法再次显示。如何最轻松地做到这一点?

  8. ruby - mixin方法名冲突时如何选择调用方法? - 2

    当你在类中包含方法名冲突的模块时,它会使用类定义的方法。有没有办法选择我想运行的?moduleBdefself.hello"helloB"endendclassAincludeBdefself.hello"helloA"endendA.hello#=>thisprints"helloA",whatifIwant"helloB"? 最佳答案 Ben,当你在Ruby中调用一个方法(比如hello)时,会发生以下情况:如果接收者的特征类有一个名为hello的方法,它将被调用。如果不是:如果接收者的类有一个名为hello的实例方法,它将被调

  9. ruby - 更快的 n 选择 k 来组合数组 ruby - 2

    在尝试解决“网格上的路径”问题时,我编写了代码defpaths(n,k)p=(1..n+k).to_ap.combination(n).to_a.sizeend代码工作正常,例如ifn==8andk==2代码返回45,这是正确的路径数。但是,当使用较大的数字时,代码非常慢,我正在努力想出如何加快这个过程。 最佳答案 与其构建组合数组只是为了计算它,不如编写function定义组合的数量。我敢肯定还有包含此功能和许多其他组合函数的gem。请注意,我使用的是gemDistribution对于Math.factorial方法,但这是另一种

  10. ruby-on-rails - 覆盖 Controller 中的 protect_from_forgery 策略 - 2

    我想使用两种不同的protect_from_forgery策略构建一个Rails应用程序:一种用于Web应用程序,一种用于API。在我的应用程序Controller中,我有这行代码:protect_from_forgerywith::exception为了防止CSRF攻击,它工作得很好。在我的API命名空间中,我创建了一个继承self的应用程序Controller的api_controller,它是API命名空间中所有其他Controller的父类,我将上面的代码更改为:protect_from_forgery:null_session.遗憾的是,我在尝试发出POST请求时遇到错误:“

随机推荐