灾难恢复概述、策略和评估
2022年4月25日 在产品
当决定灾难恢复(DR)策略,对于大多数应用程序和系统,符合整个公司评估优先级、功能,限制,和成本是必要的。
虽然忍不住想这次谈话的范围扩大到各种技术、供应商、云提供商,和本地系统,我们将只关注涉及博士砖工作区。博士信息特定于云基础设施AWS,Azure,GCP现成的其他来源。
此外,博士如何适应业务连续性(BC),它的关系高可用性(HA)是超出了本系列的范围。足以说,仅仅利用HA服务是不够的博士一个全面的解决方案。
这个系列的初始部分博士将专注于确定一个适当的战略和实现关键用例和/或砖上运行的工作负载。我们将讨论一些基本概念博士,但我们鼓励读者去砖文档(AWS|Azure|GCP博士)的初始概述术语,工作流和高级步骤来实现解决方案。
灾难恢复规划一个砖的工作区
定义损失限制
确定一个可接受的恢复点目标(RPO),最大的有针对性的数据可能会丢失,并且恢复时间目标(RTO),有针对性的持续时间和服务水平在一个业务流程必须恢复,是一项基本一步实现战略博士用例或砖上运行的工作负载。RTO和RPO应该决定在特定的上下文,例如用例或工作负载水平,和彼此独立的。这些定义的损失限制在灾难事件中,博士会通知相应的策略,并确定实现博士应该以多快的速度从灾难事件中恢复过来。
RPO砖对象
砖对象应该与管理CI / CD和基础设施代码(IaC)工具,如起程拓殖(TF)博士,复制到一个网站。砖回购(AWS|Azure|GCP)提供git集成,促进了把源代码从配置一个或多个工作区git提供者,例如,GitHub。
砖REST api (AWS|Azure|GCP)可以用于发布版本对象DR站点的CI / CD管道,然而,这种方法有两个缺陷。首先,REST api将不会追踪目标工作区的状态,需要额外的努力,以确保所有操作是安全的和有效的。第二,一个额外的框架需要安排和执行所需的所有API调用。
起程拓殖消除了需要跟踪状态手动版本,然后应用需要改变目标工作区,代表用户进行任何必要的更改声明式的方式。进一步利用TF是砖起程拓殖的提供者允许与几乎所有Dataricks博士和云资源所需的解决方案。最后,砖是一种官方合作伙伴Hashicorp,起程拓殖可以支持多重云部署。砖起程拓殖的提供者将被用来演示实现博士作为本系列的一部分。DB-Sync是一个命令行工具,砖起程拓殖的提供者可能更容易为non-TF用户使用用于管理复制。
砖的RPO对象将最近的快照的时差的事件对象的状态和灾难。系统RPO应该确定最大RPO的所有对象。
RPO数据库和表
多个存储系统可以要求任何给定的工作负载。数据源Apache火花通过访问JDBC,如OLAP和OLTP系统,将有选择博士通过云提供商提供。博士这些系统应该被认为是作用的解决方案,但不会深入讨论每一个云提供商以来不同的备份和复制。相反,重点将逻辑数据库和表上创建的文件对象存储。
每个砖工作空间的使用砖文件系统(DBFS),一个抽象对象存储。DBFS存储重要的使用,生产不recommnded源代码和数据资产。所有用户必须读和写访问对象存储安装DBFS,除了DBFS根。此外,DBFS根不支持原生云复制服务,仅仅依赖的组合三角洲深克隆,将引发工作,DBFS CLI出口数据。由于这些限制,任何必须复制到DR站点不应该存储在DBFS。
对象存储可以安装DBFS (AWS|Azure|GCP),这将创建一个指向外部存储的指针。山可以防止数据被上本地同步DBFS但需要更新的一部分山博士因为挂载点的路径将需要直接向不同的对象存储在DR站点。坐骑很难管理和可能指向错误的存储,这就需要额外的自动化博士和验证的解决方案。直接访问对象存储在外部表可以减少复杂性和点故障。
用户可以创建使用Apache火花管理和非托管表(AWS|Azure|GCP)。metastore将管理数据管理表和管理表的默认存储位置DBFS“蜂巢/ user / /仓库”。如果管理表是用于工作负载需要博士,应该从DBFS迁移数据,并使用新的数据库与指定的位置参数,以避免默认位置。
一个非托管表时创建的位置参数中指定的创建表的声明。这将保存在指定位置表的数据,也不会被删除,如果从metastore表被删除。metastore仍然可以是一个必需的组件在非托管表博士如果源代码访问表中定义的metastore利用SparkSQL或“表”的方法(Python|ScalaSparkSession)。
直接使用一个对象存储,例如,Amazon S3,允许使用Geo-Redundant存储如果需要和避免与DBFS相关联的问题。
数据复制
对于博士来说,推荐的存储格式三角洲湖。拼花很容易转换为三角洲格式与“转换为三角洲”命令。酸的保证三角洲湖几乎消除数据腐败风险在故障转移和退回从博士的网站。此外,深克隆应该被用来复制所有三角洲表。它提供了一个增量更新能力,避免不必要的数据传输成本和额外的内置保证数据一致性,没有与阿兹,提出Geo-Redundant复制(嗯……)服务。进一步的缺点是单向的,嗯……是复制的创建需要额外的流程当退回到主网站DR站点,而深克隆可以在两个方向上工作,主站点的DR站点,反之亦然。
下图演示了使用嗯……和三角洲的初始缺陷表:
使用嗯……和δ表,需要创建额外的过程将证明一个完整的表版本(δAWS|Azure|GCPDR站点)。
比较上面的图形使用三角洲深克隆来简化复制博士,深克隆确保最新版本的三角洲表全部复制,保证文件顺序,和复制时提供了额外的控制:
深复制克隆将用于展示δ表从初级到中级站点作为这个博客系列的一部分。
文件不能被转换为δ应该依靠嗯……。在这种情况下,这些文件应该比δ文件存储在不同的位置,以避免冲突从运行嗯……和三角洲深克隆。DR站点中的一个进程需要落实到位以保证完整的数据集使用嗯……时可用性与业务;然而,这将不需要使用时深克隆。
的数据在一个对象存储,RPO取决于最后的时候复制使用三角洲深克隆或提供的sla的云提供商使用Geo-Redundant存储。
Metastore复制
几个metastore砖的部署选项可用,我们将简要地考虑每一个。
开始使用默认metastore,砖部署有一个内部统一目录(AWS|Azure|GCP)或蜂巢(AWS|Azure|GCP)metastore所有集群和SQL访问端点坚持表元数据。自定义脚本需要出口表和表从内部蜂巢metastore acl。这夫妻RPO砖工作区,这意味着RPO管理所需的元数据表将在小时时差当这些内部metastore表和表之间的acl是去年出口和灾难事件。
集群可以连接到一个现有的,外部Apache蜂巢metastore (AWS|Azure|GCP)。外部metastore允许额外的复制选项通过利用云提供商服务底层数据库实例。例如,利用multi-az生于云端数据库实例或数据库,如亚马逊极光,metastore复制。这个选项用于砖在AWS, Azure砖,砖丰富。RPO取决于sla云提供商提供的服务如果没有手动或自动导出过程。
的能力使用胶水目录作为一个metastore是独特的在AWS砖部署。RPO胶水的目录将取决于复制工具和/或提供sla AWS。
恢复时间目标(RTO)砖
RTO将测量从主站点的砖工作空间的不可用时间,DR站点的工作区达到预定的作业水平以支持关键活动。
一般来说,假设数据已经复制,这将需要源代码和依赖项工作量/用例可用,居住集群或SQL端点,metastore如果访问数据通过数据库和表(而不是直接访问文件)RTO之前实现。
RTO博士将取决于选择的策略和实现工作负载或用例。
灾难恢复策略
灾难恢复策略可以大致分为两类:主动/被动和主动/主动。在主动/被动实现中,主站点用于正常操作和保持活跃。然而,博士(或中学)网站需要预先计划好的步骤,根据一个特定的实现,是要晋升为初级。而在主动/主动战略,两个站点保持全面运作。
主动/被动策略
指示灯和备份与恢复的主要区别是立即可用的数据,包括metastore如果读写不基于路径。一些基础设施,通常没有或小成本、供应。砖的工作空间,这将意味着一个工作区,配置所需的云基础设施部署与要求砖对象(源代码、配置实例简介,服务主体,等等),但集群和SQL端点将不会创建。
- 备份和恢复很大程度上被认为是最有效的RTO。备份主站点上创建和复制到DR站点。区域故障转移、基础设施必须恢复以及执行康复数据备份。对于一个对象存储,数据仍将需要复制从主站点。
在这个场景中,所有必要的基础设施和配置数据砖对象将在DR站点上可用但不供应。基于文件的表可能需要回填和其他数据源需要从最近的备份恢复。由于大数据的本质,RTO可以天。
- 在一个指示灯实现,数据存储和数据库是最新的基于定义的RPO,和他们准备服务工作负载。其他基础设施元素定义,通常通过一个基础设施代码(IaC)工具,而不是部署。
- 热备用保持实时数据存储和数据库,除了最低生活部署。DR站点必须扩大处理所有生产工作负载。
建筑的指示灯,Warm备用部署额外的对象。例如,特定的集群或SQL端点可能被创建,但不启动,减少下游RTO为数据服务应用程序。这也可以促进连续测试可以增加信心解决博士和博士的健康网站。集群和SQL端点可能定期打开,以防止删除,用于测试,甚至不停地打开在极端情况下,有一个非常严格的RTO。
主动/主动策略(多站点)
多站点实现博士,博士主要和网站应该完全部署和操作。在发生灾难事件,只需要将新请求路由到DR站点而不是主要的。多站点提供了最有效的RTO但也是最昂贵的和复杂的。
(即复杂性起源于同步数据。表和视图),用户配置文件,定义集群,工作定义,源代码,图书馆,init脚本和其他构件之间的主和工作区博士。进一步复杂化的是硬编码连接字符串、个人访问令牌(PAT令牌),和uri的API调用各种脚本和代码。
博士确定正确的战略
分析系统成为更重要的是,失败将导致一个更大的对企业的影响和变得更加昂贵,和潜在的故障点是不断增长的环境变得更加复杂和相互关联的。上执行影响分析结果,用例和/或工作负载来确定博士是必要的,并确保团队准备的实现已经成为一个重要的活动。
每个上市策略之间存在权衡。最终,RPO, RTO将通知应该选择哪一个工作负载和用例。损失,金融和非金融,灾难事件应该权衡成本实现和维护任何给定博士的策略。基于估计的数字,一个博士的策略应该选择和实施,以确保服务的延续灾难后及时破坏。
开始
博士确定一个解决方案是使用砖Lakehouse平台所需的应用程序可以防止潜在的损失和维护与消费者信任的平台。bob体育客户端下载博士正确的战略和实施确保成本不得超过潜在损失(金融或非金融),同时提供服务恢复至关重要的应用程序和功能在发生灾难。下面的评估和指导执行的影响提供了一个起点博士和防范分析来确定一个适当的战略和实施。