了解常见的 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 此种登陆方式会弹出一个登陆框,让你输入一 ...
随机推荐
- jsp的静态包含与动态包含:<%@ include file="" %>和<jsp:include page=""></jsp:include>区别与分析
<%@ include file="" %>是将文件原封不动的copy进现有的文件中,像是拼接好后,再编译成为servlet运行. <jsp:include pa ...
- 团体程序设计天梯赛-练习集L1-017. 到底有多二
L1-017. 到底有多二 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 一个整数“犯二的程度”定义为该数字中包含2的个数与其 ...
- eclipse进行开发
最近在用eclipse进行开发的时候遇到了一个很奇怪的问题,其实这个问题很早以前就遇到了只是苦于一直没有需找到答案.直到今天又遇到了,才觉得这真是个很实用很使用的功能,所以分享给大家,希望对大家有帮助 ...
- 使用rsyslog+loganalzey收集日志显示客户端ip
http://www.ituring.com.cn/article/128536 rsyslog localhost 转发 http://bigsec.net/one/tool/rsyslog.htm ...
- Redis-PHP-Hash 表相关API
Hashes 相关 ================================ hDel - 删除一个哈希 key hExists - 检查哈希 key是否存在 hGet - 获得某哈希 key ...
- CF135A Replacement
http://codeforces.com/problemset/problem/135/A 题意 : 我能说我卡在这个题的题意上很久吗.....这个题就是在数组里找一个数,然后找另一个数把他替换掉, ...
- Android ViewPager的每个页面的显示与销毁的时机
大家在用viewPager的时候要创建一个pagerAdapter对象,用于给viewPager设置页面的. viewPager里面有一个container容器. viewPager的容器缓存3个显示 ...
- java I/O Stream 代码学习总结
一. InputStream 类学习介绍 mark方法 public void mark(int readlimit) 在此输入流中标记当前的位置.对 reset 方法的后续调用会在最后标记的位置重新 ...
- http://jingyan.baidu.com/article/e4511cf33479812b855eaf67.html
http://jingyan.baidu.com/article/e4511cf33479812b855eaf67.html
- iOS开发之集成ijkplayer视频直播
ijkplayer 是一款做视频直播的框架, 基于ffmpeg, 支持 Android 和 iOS, 网上也有很多集成说明, 但是个人觉得还是不够详细, 在这里详细的讲一下在 iOS 中如何集成ijk ...