微软云计算平台
微软云计算平台
微软的云计算技术
- 用户可以将他们的应用程序和数据部署在微软云计算平台上。
- 用户可以在云中存储数据或依赖其他的云计算基础设施服务。
- 云计算平台依赖于微软强大的分布式集群
- 提供巨大的计算能力和存储能力,并具有很好的稳定性和可靠性
- 云计算平台采用量入为出的方式
- 用户只需按照他们动态使用的计算和存储资源来付费
Windows Azure组成
- 微软的云计算服务平台Windows Azure属于PaaS模式,一般面向的是软件开发商。当前版本的Windows Azure平台包括4个组成部分。
组成部分 | 说明 |
---|---|
Windows Azure | 作为微软云计算操作系统,提供在微软数据中心服务器上运行应用程序和存储数据的Windows环境 |
SQL Azure | 云中的关系数据库,为云中基于SQL Server的关系型数据提供服务 |
Windows Azure AppFabric | 为在云中或本地系统中的应用提供基于云的基础架构服务 |
Windows Azure Marketplace | 为购买云计算环境下的数据和应用提供在线服务 |
- Windows Azure平台体系架构
微软云操作系统Windows Azure
Windows Azure概述
- Windows Azure:服务平台,用户利用该平台,通过互联网访问微软数据中心运行Windows应用程序和存储应用程序数据,这些应用程序可以向用户提供服务。
- Windows Azure体系架构
- Windows Azure组成部分
服务类型 | 说明 |
---|---|
计算服务 | 为在Azure平台中运行的应用提供支持 |
存储服务 | 主要用来存储二进制和结构化的数据 |
Fabric 控制器 | 主要用来部署、管理和监控应用 |
内容分发网络CDN | 通过维持世界各地数据缓存副本,提高全球用户访问Windows Azure存储中的二进制数据的速度 |
Windows Azure Connect | 在本地计算机和Windows Azure之间创建IP级连接,使本地应用和Azure平台相连 |
Windows Azure计算服务
- Windows Azure服务平台的CTP版提供一整套的开发工具和组件允许创建.NET 4.0应用程序。
- Windows Azure应用程序包括Web Role实例、Worker Role实例和VM Role实例,使用这三种实例的Windows Azure应用程序运行机制如图所示。
- Web Role:Web Role可以简化Web的应用创建过程
- Worker Role:Worker Role用来运行各种各样的基于Windows的代码
- VM Role:VM Role运行系统提供的Windows Server 2008 R2镜像。帮助将本地的Windows Server应用移到Windows Azure。
Windows Azure存储服务
-
Table:提供更加结构化的数据存储
-
Blob:存储二进制数据,存储大型的无结构数据,容量巨大,满足海量数据存储需求。
-
Queue:用来支持在Windows Azure应用程序组件之间进行通信
-
Windows Azure存储服务依靠微软数据中心,允许用户在云端存储应用程序数据。 应用程序可以存储任何数量的数据,并且可以存储任意长的时间,用户可以在任何时间、任何地方访问自己的数据。
全局命名空间
- 账户名:DNS主机名的一部分,是客户为访问存储而选择的账户名
- 分区名:使用账户名定位存储集群后,在集群内将数据访问请求进一步定位到存储节点
- 对象名:用来对分区中的多个对象进行区分。对一些类型的数据,分区名可以唯一标识账户里的对象时
体系架构
- WAS的一个重要特征是能够存储和访问达到甚至超过EB级的海量数据,其产品系统由**存储域(Storage Stamp)和位置服务(Location Service)**构成。
- 存储域功能:个装满存储节点的存储柜构成的一个集群,每个存储柜都有单独的冗余网络和电源实现的容错保护机制。
- 位置服务功能:位置服务管理所有的存储域。同时也负责不同的存储域之间的账户名空间管理。把账户分配到各个存储域上,并实现跨存储域管理这些账户来支持灾难恢复和负载平衡。
存储域的层次结构
- 从存储域包括以下三层:
- 文件流层:存储数据在硬盘上,负责在多个服务器间分布和复制数据来保持存储域中数据的可用性
- 分区层:负责管理和理解上层数据抽象类型(Blob、表、队列和文件),提供一个可扩展的名空间,保证数据对象事务处理顺序和强一致性,在数据流层之上存储数据,缓存数据对象来减少磁盘I/O。
- 前端。由一组无状态服务器构成来处理访问请求。一旦接收到一个请求,该层便会查找账户名,认证请求,再把请求路由到分区层的服务器。
双复制引擎
- 为了实现数据高可用,WAS通过在文件流层进行域内数据复制和在分区层进行域间数据复制,实现必要的数据容灾保护机制。
- 域内复制:WAS在文件流层实现同步复制,保证存储域内的所有数据写在其内部是可靠的
- 域间复制:在对象级进行,对给定账户的整个对象或最近的差分更新进行复制
- 域内复制专门为硬件失效而设计,在大规模系统内这类失效比较普遍,而域间复制提供跨地域冗余来防止地域灾难,这种情况一般不多出现。另一个原因是这两层所维护的名空间问题。
文件流层
-
文件流层提供一个只为分区层使用的内部接口,具有类似文件系统的名空间和应用接口,但所有的写只能追加。
-
用户可允许对称为流(Stream)的大文件进行打开、关闭、删除、重命名、读、追加写以及合并等操作。一系列追加的块(Block)被称为区块(Extent),流就是一连串有序区块的指针列表。
-
文件流层包括流管理器(Stream Manager,SM)和区块节点(Extent Node,EN)两大部分。
-
流管理器:负责管理文件流的名空间、流到区块的映射,以及区块到存储节点的分配信息。
-
区块节点:每个节点保存流管理器分配的区块副本和相应的数据块。区块节点不知道上层的流信息,只处理区块和块信息
分区层
- 分区层存储不同类型的对象,并理解对于给定的对象类型(BLOB,表、队列或文件)进行事务处理的意义。
- 分区层能够提供5种服务:不同存储对象类型的数据模型,不同类型对象处理的逻辑和语义,大规模扩展的对象命名空间,跨多个可用分区服务器访问对象的负载平衡,以及访问对象的事务排序和强一致性。
- 分区层提供一种重要的内部数据结构——对象表(Object Table)。对象表可动态地划分为多个分区段(RangePartition),并将这些分区段分散到同一存储域中的多个分区服务器上。
- 分区层包括三个主要的体系结构模块:一个分区管理器(PM)、多个分区服务器(PS)和一个锁服务。
- 分区管理器:负责保存对象表到分区段的划分和每个分区段到相应分区服务器的分配情况。负责分区服务器之间的负载平衡。
- 分区服务器:负责处理由分区管理器分配给它的一组分区段的请求
- 锁服务:Paxos锁服务用于分区服务器的主服务器选举。此外,每个分区服务器为服务分区也保持锁服务租赁。
为将负载分散到多个分区服务器和控制存储域内分区的总数,分区管理器可执行以下三种操作:
- 负载平衡:当给定的分层管理器负载过高时,将一个或多个分区段重新分配到其他负载较低的分区服务器。
- 划分:当单个分区段负载过高时,将其划分为两个或更多小的不重叠分区段,并重新分配它们到两个或更多分区服务器。
- 合并:将负载低的分区段合并为对象表中一个连续键值段,并让存储域内的分区服务器数与分区段数保持在一定比例范围内
Windows Azure Connect
- Connect 在Windows Azure应用和本地运行的机器之间建立一个基于IPsec协议的连接,使两者更容易结合起来使用。
- Connect不是一个成熟的VPN(Virtual Private Network),只是一个简单的解决方案
- Windows Azure应用能够直接访问本地的数据库。
- Windows Azure应用能够区域连接到本地环境。
Windows Azure CDN
- Windows Azure提供一个内容分发网络CDN(Content Delivery Network)。CDN存储距离用户较近的站点的Blobs副本。
- 用户第一次访问Blob时,CDN存储Blob的副本,存放的地点与用户在地理位置上比较靠近。当这个Blob被第二次访问时,它的内容将来自于缓存,而不是来自于离它位置较远的原始数据。
Fabric控制器
- 在数据中心中, Windows Azure的机器集合和运行在这些机器上的软件均由Fabric控制器控制。
- Fabric控制器是一个分布式应用,拥有计算机、交换机、负载均衡器等各种资源。
- Fabric控制器控制所有运行的应用。
- Fabric控制器依赖配置信息决定运行的位置,选择物理服务器来最优化硬件使用。
- Fabric控制器使用配置文件决定需要创建的VMs(虚拟机)的数量。
- Fabric控制器在创建VMs后,还监控VMs。