了解常见的 Azure 灾难
以下内容涵盖多种不同类型的灾难情况。数据中心故障不是应用程序范围内发生故障的唯一原因。设计不良或管理错误也会导致中断。请在恢复计划的设计和测试阶段设想可能导致故障的原因,这样做很重要。一个好的计划可充分利用 Azure 功能,并通过应用程序特有的策略强化这些功能。由应用程序的重要性、RPO 和 RTO 规定所选的响应。
如前所述,Azure 结构控制器会自动处理因主机虚拟机中的底层硬件或操作系统软件引起的故障。Azure 会在正常运行的服务器上创建新的角色实例,然后将其添加到负载平衡器轮换中。如果角色实例数大于一,Azure 会将处理过程切换到其他正在运行的角色实例,同时替换发生故障的节点。
但是,还会发生与任何硬件或操作系统故障无关的严重应用程序错误。应用程序可能因逻辑错误或数据完整性问题导致的灾难性异常而发生故障。必须在代码中加入足够的遥测,以使监视系统可检测到故障情况并通知应用程序管理员。完全了解灾难恢复过程的管理员可决定调用故障转移过程,也可以简单接受可用性中断以解决关键性错误。
Azure 自动将你的 Azure SQL Database 和 Azure 存储数据在同一数据中心内的不同容错域中冗余地存储三次。如果使用异地复制,则再将这些数据在另一个数据中心内存储三次。但是,如果用户或应用程序损坏了主副本中的数据,则会将损坏情况迅速复制到其他副本。不幸的是,这将产生三份损坏的数据。
若要应对可能的数据损坏,将需要管理你自己的备份,以保持事务一致性。你可以将备份存储在 Azure 中或存储在本地,具体取决于你的业务需求或治理监管。有关详细信息,请参阅灾难恢复的数据策略部分。
当 Azure 网络的某些部分中断时,你可能无法访问应用程序或数据。如果一个或多个角色实例因网络问题而不可用,则 Azure 将利用应用程序剩余的可用实例。如果应用程序因 Azure 网络中断而无法访问其数据,则可以通过使用缓存数据在本地以降级模式运行,因此需要在应用程序中为在降级模式下运行制定灾难恢复策略。某些应用程序可能做不到这一点。另一个选项是将数据存储在备用位置,直到连接恢复。如果降级模式不是好办法,则剩余的选项为产生应用程序停机时间或故障转移到备用数据中心。设计在降级模式下运行应用程序多出于业务决策而非技术决策。应用程序功能降级部分深入讨论了这一问题。
Azure 提供的许多服务可能会定期停机。设想 Azure Shared Caching 为例。这项多租区服务向应用程序提供缓存功能。设想如果依赖服务不可用,应用程序中将发生什么,这样做很重要。此方案在许多方面与网络中断方案类似,但是,单独考量每一项服务有望改进整个计划。
例如,通过 Caching,多租区共享缓存模型有一个相对较新的备选项。通过角色上的 Azure Caching,可从云服务部署中缓存到应用程序。(建议今后也这样使用 Caching)。虽然它有一个限制,只能从单个部署中访问它,但有可能使灾难恢复获益。首先,服务现在运行在你的部署本地的角色上。因此,在云服务的总体管理过程中,可更好地监视和管理缓存的状态。但是,这种类型的缓存也公布了新功能。其中一个新功能是缓存数据的高可用性。此功能通过在其他节点上保留重复的副本,帮助在一个节点发生故障时保留缓存数据。请注意,高可用性会降低吞吐量并增大延迟,因为需要在写入时更新辅助副本。它还会将每项使用的内存量加倍,因此要为此做好规划。这个具体的示例表明,每项依赖服务都可能具有提高总体可用性和帮助抵御灾难性故障的能力。
通过每个依赖服务,应了解可能产生的总中断数。在 Caching 的示例中,或许可以直接从数据库访问数据,直到 Caching 功能恢复为止。在性能方面,这将是降级模式,但可提供数据方面的完整功能。
以前的故障主要还是可在同一 Azure 数据中心内应对的故障。但是,还必须为整个数据中心发生故障的可能性做好准备。当数据中心发生故障时,数据的本地冗余副本不可用。如果启用了异地复制,则在异地数据中心内另有 Blob 和表的 3 个副本。当 Microsoft 声称数据中心发生故障时,Azure 会将所有 DNS 条目将重新映射到异地复制的数据中心。注意,你对此过程无任何控制权,并且仅对整个数据中心范围的故障进行此过程。因此,还必须依靠应用程序特有的其他备份方法才能达到最高级别的可用性。有关详细信息,请参阅灾难恢复的数据策略部分。
在灾难规划中,必须考虑到所有可能发生的灾难情况。最严重的一个故障将同时涉及所有 Azure 数据中心。如同任何其他故障一样,你可能决定在这种情况下甘冒停机时间的风险。跨越多个数据中心的广泛故障应比涉及依赖服务或单个数据中心的孤立故障少见得多。但是,对某些任务关键型应用程序而言,你可能决定还必须为此方案制定备份计划。针对此事件的计划可能包括故障转移到备选云或混合本地和云解决方案中的服务。
了解常见的 Azure 灾难的更多相关文章
- Azure 订阅和服务限制、配额和约束
最后更新时间:2016年10月24日 概述 本文档指定一些最常见的 Azure 限制.请注意,本文档目前未涵盖所有 Azure 服务.一段时间后,将展开并更新这些限制以包含多个平台. NOTE: 如果 ...
- 寻觅Azure上的Athena和BigQuery(一):落寞的ADLA
AWS Athena和Google BigQuery都是亚马逊和谷歌各自云上的优秀产品,有着相当高的用户口碑.它们都属于无服务器交互式查询类型的服务,能够直接对位于云存储中的数据进行访问和查询,免去了 ...
- 使用Azure CLI创建Linux虚拟机
Azure提供了三种方式创建虚拟机,分别是Azure CLI.Azure PowerShell和Azure门户.本文介绍使用Azure CLI来创建Linux虚拟机. 使用Azure CLI创建Lin ...
- 【Azure 存储服务】Python模块(azure.cosmosdb.table)直接对表存储(Storage Account Table)做操作示例
什么是表存储 Azure 表存储是一项用于在云中存储结构化 NoSQL 数据的服务,通过无结构化的设计提供键/属性存储. 因为表存储无固定的数据结构要求,因此可以很容易地随着应用程序需求的发展使数据适 ...
- NLP点滴——文本相似度
[TOC] 前言 在自然语言处理过程中,经常会涉及到如何度量两个文本之间的相似性,我们都知道文本是一种高维的语义空间,如何对其进行抽象分解,从而能够站在数学角度去量化其相似性.而有了文本之间相似性的度 ...
- 我个人有关 Azure 网络 SLA、带宽、延迟、性能、SLB、DNS、DMZ、VNET、IPv6 等的 Azure 常见问题解答
Igor Pagliai(微软) 2014 年 9月 28日上午 5:57 年 11 月 3 年欧洲 TechEd 大会新宣布的内容). 重要提示:这篇文章中我提供的信息具有时间敏感性,因为这些 ...
- Microsoft云备份解决方案Azure Backup的常见配置问题
这篇博客文章有助于解决 Microsoft云备份解决方案(即 Azure Backup)的常见配置问题.客户通常会在安装或注册 Azure Backup时遇到这些问题.以下是有关如何诊断和解决问题的建 ...
- 对 Azure Backup 的常见配置问题进行故障排除
Giridhar Mosay云 + Enterprise 项目经理 这篇博客文章有助于解决 Microsoft云备份解决方案(即 Azure Backup)的常见配置问题.客户通常会在安装或注册 ...
- Azure登陆的两种常见方式(user 和 service principal登陆)
通过Powershell 登陆Azure(Azure MoonCake为例)一般常见的有两种方式 1. 用户交互式登陆 前提条件:有一个AAD account 此种登陆方式会弹出一个登陆框,让你输入一 ...
随机推荐
- Extjs4 treePanel异步加载菜单(后台从数据库读取)
运行环境:springMVC+mybatis 一.建表 说明:0表示此节点为非叶子节点,即此节点还包括了子节点:1表示此节点为叶子节点,即此节点没有子节点.:关于图标iconCls是从Extjs的文件 ...
- mac下设置maven环境
在mac系统下设置maven环境. 1.首先通过终端打开 .bash_profile 2.设置maven解压后的路径地址 环境变量设置如下: MAVEN_HOME .PATH 两个变量即可 3. ...
- 关于Java中try-catch-finally-return语句的思考
我们知道return语句用在某一个方法中,一是用于返回函数的执行结果,二是用于返回值为void类型的函数中,仅仅是一个return语句(return ;),此时用于结束方法的执行,也即此return后 ...
- Python中pass语句的作用
http://mianshi.fenzhi.com/post/1529.html pass语句什么也不做,一般作为占位符或者创建占位程序,pass语句不会执行任何操作,比如:while False:p ...
- 一个UUID生成算法的C语言实现 --- WIN32版本 .
一个UUID生成算法的C语言实现——WIN32版本 cheungmine 2007-9-16 根据定义,UUID(Universally Unique IDentifier,也称GUID)在时 ...
- HDU1432+几何
题意:给N个点,求最多有多少个点在同一直线上 方法一:求出所有能形成的直线,两两比较,统计最多有多少条重合. #include<stdio.h> #include<stdlib.h& ...
- [itint5]树中最大路径和
http://www.itint5.com/oj/#13 要注意,一是空路径也可以,所以最小是0.然后要时刻注意路径顶多有两条子路径+根节点组成,所以更新全局最值时和返回上一级的值要注意分清. #in ...
- Android:控件布局(单帧布局)FrameLayout
FrameLayout:所有控件位于左上角,并且直接覆盖前面的子元素. 在最上方显示的层加上: android:clickable="true" 可以避免点击上层触发底层. 实例: ...
- 编写高效的C程序与C代码优化
本文地址:http://www.cnblogs.com/archimedes/p/writing-efficient-c-and-code-optimization.html,转载请注明源地址. 说明 ...
- eclipse 点击 open Implementation就退出eclipse
输入法不对.. 切换到纯英文的输入法. 微软自带的那个.. 我电脑上也这样. 现在好了 (安装谷歌输入法貌似存在这个问题)