技术开发 频道

3个层面解读Windows云存储架构与应用

  【IT168专稿】应用程序离不开数据,同样云计算应用程序也离不开数据的支持。Windows Azure Service Platform,微软云计算服务平台通过提供Storage Service——Windows Azure Storage来存储云应用的数据。Windows Azure Storage由三个重要部分或者说三种存储数据服务组成,它们是:Windows Azure Blob、Windows Azure Table和Windows Azure Queue。在本文中将给大家介绍Windows Azure Storage中的这三种存储服务、Visual Studio环境下配置和使用开发存储和Windows Azure Storage应用场景。

  Windows Azure 存储服务的构成

  Windows Azure Storage由三个重要部分构成:

  Windows Azure Blob:存储大型数据。

  Windows Azure Table:存储表数据,类似关系数据库中的数据表,单有所不同,将在后文中介绍。

  Windows Azure Queue:为异步工作提供分派消息服务,有点类似Windows系统的消息队列。

  它们的组成也可以使用图1来描述:

Windows Azure 存储服务的构成
图1 Windows Azure 存储服务组成

  在Windows Azure中使用存储服务最简单的方法是使用Windows Azure Blob。Blob存储二进制数据,如图像,XML文档,压缩文件和其它在容器内任意排列的字节。

  Blob存储数据是通过一个简单的层级关系来实现的,每个账户Account下有一个容器,这个容器就是用户定义的一套只有一个属性的Blobs(Blob集合),容器不直接存储数据,每个Blobs包含了多个Blob。Windows Azure Blob存储数据和层级关系如图2所示:

Windows Azure 存储服务的构成

  图2 Blob的层级关系

  Blob存储数据的地址是:http://.blob.core.windows.net/

  可以通过REST的方式来操作,也就是说可以通过如图1所示中的访问方式:Http/Https。在上传大文件的时候,我们可以先把大文件分割成多个Blob来上传,这样就解决了大文件上传的问题。Block对下载流程是透明的,下载者根本不知道也不用去知道它正在下载的文件被分成了多少个block。

  注意在PUT Blob操作中你可以上传最大64MB的数据创建一个Blob,通过上传连续块可以创建大于64MB的Blob,块最大只能是4MB。

  (2)Windows Azure Table

  Blobs只能针对大容量二级制数据存储,它真是太“不结构化”了。为了保存和使用云应用程序中具有紧密的数据,如在云存储服务中存储一个对象,这个对象是有些自己的属性,其实这样的对象我们可以看成是示例或者实体,于是Windows Azure Table就派上用场了。Windows Azure Table可以直接将实体类、实体对象存入表格结构当中。

  Windows Azure Table和SQL Server/SQL Azure的区别在于,Windows Azure Table是一种服务,旨在存储具有实体关系的数据,而不是关系数据库。Windows Azure Table 提供轻便快捷低成本的大规模存储数据,包含实体和属性。它不是关系数据库,所以不能提供类似SQL中joins的方法,也不能管理 foreign keys。事实上,一个单一的Windows Azure Table可以存储数十亿个实体,一个Windows Azure Table的大小能达到万亿字节,这是一个相当大的存储量。通过示例图3也可以说明这一点。

Windows Azure 存储服务的构成

  图3 development fabric

  (3)Windows Azure Queue

  Windows Azure Blob和Windows Azure Table都是用来存储和访问数据的。Windows Azure 提供了第三种存储服务——Windows Azure Queue,为异步工作提供分派消息服务,最常见的一个应用就是作为Worker Role实例和Web Role实例之间通讯的消息队列。有关Windows Azure Queue使用的示例我们将在应用场景来做描述。

  不管在Windows Azure Storage中是使用Blob、Queue还是Table来存储数据,为了保证数据的安全,微软云计算服务平台至少会在同一数据中心三个独立的容器中存储Blob,Table和Queue,Windows Azure基于地理位置的功能允许你将数据复制到多个微软数据中心,增强灾难恢复能力,提高特定地区的性能。

0
相关文章