目录
- 一、微软云计算平台
- 二、微软云操作系统Windows Azure
- (一)Windows Azure概述
- (二)Windows Azure计算服务
- (三)Windows Azure存储服务
- (四)Windows Azure Connect
- (五)Windows Azure CDN
- (六)Fabric控制器
一、微软云计算平台
传统的企业和用户在开发和部署自己的应用程序主要有两种方式:
方法 | 问题 |
---|---|
购买和维护自己基础设施 | 耗费大量的资金和维护精力 |
租用服务器或租用虚拟主机 | 后台服务器的控制权降低,受到其他应用程序的影响 |
微软的云计算技术结合了上述两种方法的优点。用户也可以将他们的应用程序和数据部署在微软云计算平台上。用户也可以在云中存储数据或依赖其他的云计算基础设施服务。
云计算平台依赖于微软强大的分布式集群,提供巨大的计算能力和存储能力,并具有很好的稳定性和可靠性。云计算平台采用量入为出的方式,用户只需按照他们动态使用的计算和存储资源来付费。
微软的云计算服务平台Windows Azure属于PaaS模式,一般面向的是软件开发商。当前版本的Windows Azure平台包括4个组成部分:
(1)Windows Azure:作为微软云计算操作系统,提供了一个在微软数据中心服务器上运行应用程序和存储数据的Windows环境。
(2)SQL Azure:它是云中的关系数据库,为云中基于SQL Server的关系型数据提供服务。
(3)Windows Azure AppFabric:为在云中或本地系统中的应用提供基于云的基础架构服务。
(4)Windows Azure Marketplace:为购买云计算环境下的数据和应用提供在线服务。
上述4个部分均运行在微软已运行的11个数据中心。11个数据中心分别部署在北美(5个)、欧洲(2个)和亚洲(4个)。
二、微软云操作系统Windows Azure
(一)Windows Azure概述
微软云计算战略的核心——云计算操作系统。Windows Azure是一个服务平台,用户利用该平台,通过互联网访问微软数据中心运行Windows应用程序和存储应用程序数据,这些应用程序可以向用户提供服务。Windows Azure提供了托管的、可扩展的、按需应用的计算和存储资源,同时还提供了云平台管理和动态分配资源的控制手段。
(1)计算服务:为在Azure平台中运行的应用提供支持。
(2)存储服务:主要用来存储二进制和结构化的数据。
(3)Fabric 控制器:主要用来部署、管理和监控应用。
(4)内容分发网络CDN:通过维持世界各地数据缓存副本,提高全球用户访问Windows Azure存储中的二进制数据的速度。
(5)Windows Azure Connect:在本地计算机和Windows Azure之间创建IP级连接,使本地应用和Azure平台相连。
(二)Windows Azure计算服务
Windows Azure服务平台的CTP版提供了一整套的开发工具和组件允许创建.NET 4.0应用程序。与传统的.NET应用程序不同的是,Windows Azure应用程序包括Web Role实例、Worker Role实例和VM Role实例,使用这三种实例的Windows Azure应用程序运行机制如图所示。
(1)Web Role:基于Web Role可以使基于Web的应用创建过程变得简单
(2)Worker Role:Worker Role设计用来运行各种各样的基于Windows的代码
(3)VM Role:VM Role运行系统提供的Windows Server 2008 R2镜像。帮助将本地的Windows Server应用移到Windows Azure。
(三)Windows Azure存储服务
Windows Azure存储服务依靠微软数据中心,允许用户在云端存储应用程序数据。 应用程序可以存储任何数量的数据,并且可以存储任意长的时间,用户可以在任何时间、任何地方访问自己的数据。
(1)Table:提供更加结构化的数据存储。
(2)Blob:存储二进制数据,可以存储大型的无结构数据,容量巨大,能够满足海量数据存储需求。
(3)Queue:用来支持在Windows Azure应用程序组件之间进行通信。
1、全局命名空间
Windows Azure Storage(WAS)实现了一个单一的全局命名空间,使得用户从世界任何地方都可以一致地存储和访问云中数据,并且存储容量可以随着时间推移任意增长。存储名空间被划分为三部分:账户名(AccountName)、分区名(PartitionName)和对象名(ObjectName),所有的数据都通过如下的URI形式访问:
http(s)://AccountName.<service>core.windows.net/PartitionName/ObjectName
账户名:DNS主机名的一部分,是客户为访问存储而选择的账户名。
分区名:使用账户名定位存储集群后,在集群内将数据访问请求进一步定位到存储节点。
对象名:用来对分区中的多个对象进行区分。对一些类型的数据,分区名可以唯一标识账户里的对象时,对象名就变得可要可不要了。
2、体系架构
3、存储域的层次结构
(1)文件流层:负责在多个服务器间分布和复制数据来保持存储域中数据的可用性。
(2)分区层:负责管理和理解上层数据抽象类型,提供一个可扩展的名空间。
(3)前端:由一组无状态服务器构成来处理访问请求。
4、双复制引擎
为了实现数据高可用,WAS通过在文件流层进行域内数据复制和在分区层进行域间数据复制,实现必要的数据容灾保护机制。
(1)域内复制:WAS在文件流层实现同步复制,保证存储域内的所有数据写在其内部是可靠的。
(2)域间复制:在对象级进行,对给定账户的整个对象或最近的差分更新进行复制。
域内复制专门为硬件失效而设计,在大规模系统内这类失效比较普遍,而域间复制提供跨地域冗余来防止地域灾难,这种情况一般不多出现。另一个原因是这两层所维护的名空间问题。
5、文件流层
WAS追加写的操作流程如下:
步骤1:客户端将追加写请求发送到主EN节点,主节点确定追加写在区块内的偏移量。
步骤2:当同一区块有多个并发追加写请求时,对所有追加写请求进行排序。
步骤3:发送追加写请求到两个次EN节点,并附上选定的区块偏移量。
步骤4:当三个EN节点都成功追加写内容到磁盘后,反馈写成功消息给客户端。
在EN节点内数据的追加写操作步骤如下:
步骤1:将所有数据追加写到日志盘。
步骤2:对数据盘上的区块追加写请求进行排队。
步骤3:如果日志操作先完成,则数据被缓存在内存中。
步骤4:一旦写成功就返回。
6、分区层
分区层存储不同类型的对象,并理解对于给定的对象类型(BLOB,表或队列)进行事务处理的意义。
分区层提供不同存储对象类型的数据模型,不同类型对象处理的逻辑和语义,大规模扩展的对象命名空间,跨多个可用分区服务器访问对象的负载平衡,访问对象的事务排序和强一致性。
(1)分区管理器:负责保存对象表到分区段的划分和每个分区段到相应分区服务器的分配情况。
负责分区服务器之间的负载平衡。
(2)分区服务器:负责处理由分区管理器分配给它的一组分区段的请求。
(3)锁服务:Paxos锁服务用于分区服务器的主服务器选举。此外,每个分区服务器为服务分区也保持锁服务租赁。
为了将负载分散到多个分区服务器和控制存储域内分区的总数,分区管理器可执行以下三种操作。
(1)负载平衡:当给定的分层管理器负载过高时,将一个或多个分区段重新分配到其他负载较低的分区服务器。
(2)划分:当单个分区段负载过高时,将其划分为两个或更多小的不重叠分区段,并重新分配它们到两个或更多分区服务器。
(3)合并:将负载低的分区段合并为对象表中一个连续键值段,并让存储域内的分区服务器数与分区段数保持在一定比例范围内。
WAS的分区服务器跟踪分区段内负载高的键值范围,并以此来确定分区段内的哪些键值需要被拆分。为了将一个分区段B拆分为两个新的分区段C和D,需要进行下列步骤。
步骤1:通知分区服务器将段B拆分为C和D
步骤2:处理B的检查点,再暂停相应的服务请求
步骤3:使用一种“MultiModify”的特殊流操作处理B的每个流
步骤4:开始将服务请求发送至新的分区C和D
步骤5:通知分区管理器拆分操作完成
分区管理器可以选择两个分区名范围不重叠的低负载分区段C和D,将它们合并为一个新的分区段E。
步骤1:将分区段C和D迁移到同一个分区服务器上,通知将C和D合并为E
步骤2:为C和D设置一个检查点,然后暂停相应的服务请求
步骤3:使用MultiModify流命令创建一个新的确认日志和E的数据流
步骤4:构建区段E的元数据流
步骤5:开始发送合并后新分区段的服务请求
步骤6:更新分区映射表和相应的元数据信息
(四)Windows Azure Connect
Connect在Windows Azure应用和本地运行的机器之间建立一个基于IPsec协议的连接,使两者更容易结合起来使用。
需要注意的是,Connect不是一个成熟的VPN(Virtual Private Network),只是一个简单的解决方案。
(1)Windows Azure应用能够直接访问本地的数据库。
(2)Windows Azure应用能够区域连接到本地环境。
(五)Windows Azure CDN
Windows Azure提供了一个内容分发网络CDN(Content Delivery Network)。这个CDN存储了距离用户较近的站点的Blobs副本。
用户第一次访问Blob时,CDN存储了Blob的副本,存放的地点与用户在地理位置上比较靠近。当这个Blob被第二次访问时,它的内容将来自于缓存,而不是来自于离它位置较远的原始数据。
例如,Windows Azure提供一天体育事件的视频,第一个用户访问视频时,用户不会从CDN中获益,因为Blob还没有缓存一个离用户较近点的位置,而同一地理位置的其他的用户将会从CDN中获得更好的性能,同时缓存副本可以使视频装载得更快。
(六)Fabric控制器
在数据中心中, Windows Azure的机器集合和运行在这些机器上的软件均由Fabric控制器控制。
Fabric控制器是一个分布式应用,拥有计算机、交换机、负载均衡器等各种资源。
- Fabric控制器控制所有运行的应用。
- Fabric控制器依赖配置信息决定运行的位置,选择物理服务器来最优化硬件使用。
- Fabric控制器使用配置文件决定需要创建的VMs(虚拟机)的数量。
- Fabric控制器在创建VMs后,还监控VMs。
Windows Azure提供给开发者5种规格的虚拟机,见表:
虚拟机规格 | 配 置 情 况 | 存 储 容 量 |
---|---|---|
Extra-small | 单核、1.0GHz CPU、768MB内存、I/O性能低 | 200GB实例存储容量 |
Small | 单核、1.6GHz CPU、1.75GB内存、I/O性能中等 | 225GB实例存储容量 |
Medium | 双核、1.6GHz CPU、3.5GB内存、I/O性能高 | 490GB实例存储容量 |
Large | 四核、1.6GHz CPU、7GB内存、I/O性能高 | 1000GB实例存储容量 |
Extra-large | 八核、1.6GHz CPU、14GB内存、I/O性能高 | 2048GB实例存储容量 |