Windows Azure Cloud Service (4) Windows Azure 平台高可用性的实现

本文涉及的产品
云数据库 RDS SQL Server,基础系列 2核4GB
RDS SQL Server Serverless,2-4RCU 50GB 3个月
推荐场景:
日志服务 SLS,月写入数据量 50GB 1个月
简介:

  《Windows Azure Platform 系列文章目录

 

  这里有两个非常重要的概念:故障域(Fault Domain)和更新域(Update Domain)。

  http://blogs.technet.com/b/yungchou/archive/2011/05/16/window-azure-fault-domain-and-update-domain-explained-for-it-pros.aspx

 

  我们先说说故障域。先举个例子,笔者的书房有一个插线板,插线板上接了我的笔记本电脑,手机充电器,电视机等电器。如果这个插线板断电了,那这个插线板上的所有电器都会断电。这个插线板和上面的电器组成了一个故障域。

  Microsoft Azure数据中心基础设施由很多的RACK组成,每一个RACK都被称为故障域。当RACK出现硬件故障时候,在RACK上的服务,不管是 Azure的计算服务、存储服务等等都会宕机。

  当客户部署了2台 Azure Virtual Machine,但是没有设置可用性集的时候,Microsoft Azure可能会把这2个Azure Virtual Machine部署在同一个RACK上,这样就可能会出现单点故障。因为这1个RACK宕机了,上面运行的2个Azure Virtual Machine都会宕机。两个Azure Virtual Machine宕机的概率和一个Azure Virtual Machine的概率是一样。

  而设置了可用性集的情况下,Microsoft Azure就会把这2台Azure Virtual Machine部署在2个不同的RACK上。微软从数据中心底层设计上,可以保证这2个不同的RACK不会同时宕机。

  

  ===================================我是分隔符===========================================

  我这里模拟一下场景:

  Contoso公司已经采购了Azure服务,计划把现有托管在IDC的企业官网迁移到Azure云平台。该企业官网面向的用户群主要是华东地区的用户。

  该企业官网部署需要服务器列表如下:
1. 1台AD服务器
2. 1台Web服务器
3. 1台SQL Server服务器

 

  在Microsoft Azure虚拟机中,用户也可以选择使用一台Azure Virtual Machine部署AD Server,一台Azure Virtual Machine部署Web Application,使用另一台Virtual Machine部署SQL Server。但是这样的场景是没有SLA保障的

  Microsoft Azure Virtual Machine承诺的99.95%的SLA是需要2台或者2台以上的Azure Virtual Machine同时运行,且所有的Virtual Machine都需要在同一个可用性集中。对于上面实例,用户如果想在Azure中实现99.95%的SLA,需要同时部署:
1. 两台AD Server虚拟机,放在同一个可用性集A中。
2. 两台Web Server虚拟机,放在另外一个可用性集B中。
3. 两台SQL Server 虚拟机,采用SQL Server 2012 Enterprise提供的Always-On功能,实现High Availability。且SQL Server所在的Virtual Machine需要在另外一个可用性集C中。
4. 将具有相同功能的多台VM放置在同一个可用性集下。

  这边还需要强调一下:
1. 可用性集A中的两台AD Server中的内容配置必须完全一致,并且需要进行AD的同步。
2. 可用性集B中的两台Web Server中的网站在部署的时候,内容必须完全一致。
3. 可用性集C中的两台SQL Server必须配置SQL Server Always-On或者SQL Mirroring,保证数据库之间的日志同步

  

  对于DB Server,比如SQL Server或者MySQL,需要在两台DB Server进行日志同步:
1. SQL Server需要在两台VM配置Always-On或者SQL Mirroring,使用日志同步
2. My SQL可以配置Master-Slave,使用Replication进行复制。
3. 这样的目的是保证在其中一台Server宕机的情况下,另外一台Server可以正常运行,因为配置了日志同步,可以保证日志不会丢。
4. 另外还要强调一下,客户端如果调用SQL Server服务的时候,需要正确配置AG Listener,这样保证在一台SQL Server宕机的情况下,AG Listener可以将请求自动发送到另外一台SQL Server上。

 

  

  然后我们谈谈更新域。比如我有2台Azure Virtual Machine做了负载均衡,名称为VM1和VM2,都部署了我的Web Application,版本为1.0,他们部署在不同的更新域Update Domain中。将来我的软件版本做了更新,升级到了2.0版本,有两种选择:

-      用户同时更新这2台Azure Virtual Machine的软件版本。但是这样如果有客户端发起请求,会造成服务器端的无法响应。

-      Azure Fabric Controller监控这2台Azure Virtual Machine。首先更新Update Domain 0中的虚拟机软件。更新完毕后再更新Update Domain 1中的虚拟机软件,一直到所有的Azure Virtual Machine中的Web Application更新完毕,这样保证在同一时刻至少有1台Azure Virtual Machine能够响应客户端的请求。

 

  以下是故障域(Fault Domain)和更新域(Update Domain)的截图:

 

 

  以下是虚拟机可用性集的截图:

  


本文转自Lei Zhang的博客博客园博客,原文链接:http://www.cnblogs.com/threestone/archive/2012/01/18/2553272.html,如需转载请自行联系原作者
目录
相关文章
|
2月前
|
XML C# 数据格式
掌握了在Windows平台上查看DLL依赖的方法
掌握了在Windows平台上查看DLL依赖的方法
230 4
|
3月前
|
监控 Windows
Windows平台RTSP|RTMP播放器如何实时调节音量
我们在做Windows平台RTSP、RTMP播放器的时候,有这样的技术需求,特别是多路监控的时候,并不是每一路audio都需要播放出来的,所以,这时候,需要有针对音量调节的设计
|
22天前
|
C# Windows
【Azure App Service】在App Service for Windows上验证能占用的内存最大值
根据以上测验,当使用App Service内存没有达到预期的值,且应用异常日志出现OutOfMemory时,就需要检查Platform的设置是否位64bit。
41 11
|
2月前
|
NoSQL Shell MongoDB
Windows 平台安装 MongoDB
10月更文挑战第10天
50 0
Windows 平台安装 MongoDB
|
3月前
|
监控 C# 块存储
Windows平台RTSP|RTMP播放器如何叠加OSD文字
做Windows平台RTSP|RTMP播放器的时候,特别是多路播放场景下,开发者希望可以给每一路RTSP或RTMP流添加个额外的OSD台标,以区分不同的设备信息(比如添加摄像头所在位置),本文主要探讨,如何动态添加OSD台标。
Windows平台RTSP|RTMP播放器如何叠加OSD文字
|
3月前
|
Linux Android开发 iOS开发
Windows平台RTSP|RTMP播放器如何实现实时录像功能
Windows平台RTSP、RTMP播放器实时录像接口设计,实际上,除了Windows平台,我们Linux、Android、iOS平台也是一样的设计,单纯的录像模块,如果做的全面,也不是一两个接口可以搞定的
|
2月前
|
并行计算 开发工具 异构计算
在Windows平台使用源码编译和安装PyTorch3D指定版本
【10月更文挑战第6天】在 Windows 平台上,编译和安装指定版本的 PyTorch3D 需要先安装 Python、Visual Studio Build Tools 和 CUDA(如有需要),然后通过 Git 获取源码。建议创建虚拟环境以隔离依赖,并使用 `pip` 安装所需库。最后,在源码目录下运行 `python setup.py install` 进行编译和安装。完成后即可在 Python 中导入 PyTorch3D 使用。
218 0
|
13天前
|
网络安全 Windows
Windows server 2012R2系统安装远程桌面服务后无法多用户同时登录是什么原因?
【11月更文挑战第15天】本文介绍了在Windows Server 2012 R2中遇到的多用户无法同时登录远程桌面的问题及其解决方法,包括许可模式限制、组策略配置问题、远程桌面服务配置错误以及网络和防火墙问题四个方面的原因分析及对应的解决方案。
|
18天前
|
监控 安全 网络安全
Windows Server管理:配置与管理技巧
Windows Server管理:配置与管理技巧
56 3