浅谈Windows Azure 存储服务

我们现在正处于一个数据爆炸的年代,大数据、开放数据炒的如火如荼,表明数据给我们带来了不可估量的价值。

对于企业来说,保存、管理和维护数据已经成为一项重要的挑战。大量存储设备的采购、部署、数据规模的不断增长,对于需要为其数据使用可伸缩的、持久的且具有高可用性的存储的应用程序,云计算使其有了新的方案可供选择,这正是 Microsoft 开发 Azure 存储服务的原因。

Azure存储服务包括Blob存储、表存储、队列存储和文件存储。这些服务都包含在每个存储账户中。

那么存储账户是一个唯一的命名空间,它授予你对Azure存储服务的访问权限,每个存储账户可容纳200TB的数据。一个订阅最多支持50个存储账户,也就是说你可以存储和处理PB级别的数据。

下图显示了存储帐户中各种 Azure 存储资源之间的关系:

我们再来看看各个存储之间的区别

Blob 存储

对于有大量非结构化数据要存储在云中的用户,Blob 存储提供了一种经济高效且可伸缩的解决方案。你可以使用 Blob 存储来存储如下内容:

  • 文档
  • 社交数据,例如照片、视频、音乐和博客
  • 文件、计算机、数据库和设备的备份
  • Web 应用程序的图像和文本
  • 云应用程序的配置数据
  • 大数据,例如日志和其他大型数据集

每个 Blob 都组织到一个容器中。容器还提供了一种有用的方式来向对象组分配安全策略。一个存储帐户可以包含任意数目的容器,一个容器可以包含任意数目的 Blob,直至达到存储帐户的容量限制 500 TB。

而Blob存储提供两种类型的存储服务:Block Blob和Page Blob,而两者又有什么区别呢?

Azure Block Blob

  1. Azure Block Blob概念类似网盘,可以直接存放图片、文件、照片等二进制文件,并且可以直接被客户端通过http://或者https://访问
  2. 使用Azure Block Blob不需要创建任何Azure Virtual Machine,直接可以访问使用
  3. Block Blob单个文件最大容量200GB
  4. Block Blob单个文件最大带宽60MB/S
  5. Block Blob支持文件从客户端分块上传(每块最大4MB)

Azure Page Blob

  1. Page Blob就是VHD文件
  2. VHD里的文件必须依赖于Azure Virtual Machine才能被访问,比如Tomcate, IIS, FTP等
  3. 在没有Azure Virtual Machine的情况下,VHD里的文件不能直接被http://或者https://访问
  4. VHD大小最大为1TB (这也是为什么我们在虚拟机里附加磁盘最大容量为1023GB)
  5. 一台VM能挂载的VHD数量是有限的,8 Core CPU的VM最多能挂载16块,每块1TB的VHD
  6. 每块VHD的最大IOPS为500

另外1个Azure Storage Account MAX IOPS为2万,考虑到每块VHD的MAX IOPS为500,则一个Storage Account最多容纳40个VHD。

如果把总数超过40个的VHD放在同一个存储账号里,则会因为单个存储账号2万个IOPS的限制,导致VHD的IOPS严重下降,甚至无法正常运行

表存储

表存储是 Microsoft 的 NoSQL 键/属性存储 - 它具有无模式的设计,使其不同于传统的关系数据库。采用无模式的数据存储,可以很容易地随着你的应用程序需求的发展使数据适应存储。

所谓的"键-属性"存储,就是表中的每个值都是随所键入的一个属性名称存储的。属性名称可以筛选和指定选择条件。属性集合及其值构成了实体。因为表存储是无模式的,因此同一表中的两个实体可以包含不同的属性集合,并且这些属性可以属于不同的类型。

你可以使用表存储来存储灵活的数据集,例如 Web 应用程序的用户数据、通讯簿、设备信息,以及你的服务需要的任何其他类型的元数据。你可以在一个表中存储任意数目的实体,并且一个存储帐户可以包含任意数目的表,直至达到存储帐户的容量限制 200 TB。

像 Blob 和队列一样,开发人员可以使用标准 REST 协议来管理和访问表存储,不过,表存储还支持 OData 协议的一个子集,这简化了高级查询功能并支持 JSON 和 AtomPub(基于 XML)格式

队列存储

在 设计应用程序以实现可伸缩性时,通常要将各个应用程序组件分离,使其可以独立地进行伸缩。队列存储为在应用程序组件之间进行异步通信提供了一种可靠的消息传送解决方案,无论这些应用程序组件是在云中、在桌面上、在本地服务器上运行还是在移动设备上运行。队列存储还支持管理异步任务以及构建过程工作流。

一个存储帐户可以包含任意数目的队列。一个队列可以包含任意数目的消息,直至达到存储帐户的容量限制 200 TB。每条消息最大可以为 64 KB。

对 Blob、表、队列和文件资源的访问

默认情况下,只有存储帐户所有者可以访问存储帐户中的资源。为保证你的数据的安全性,对你帐户中的资源发出的每个请求都必须进行身份验证。身份验证依赖于一个共享密钥模型。还可以将 Blob 配置为支持异步身份验证。

在创建你的存储帐户时为其分配了两个用于身份验证的私有访问密钥。设置两个密钥可以确保你的应用程序在你定期重新生成密钥(这是一种常用的安全密钥管理做法)时仍然保持可用。

如果你不需要为你的存储资源实施用户受控访问,则可以创建一个共享访问签名。共享访问签名是一个可以附加到 URL 的令牌,可以实现对容器、Blob、表或队列的委托访问。持有令牌的任何人都可以在令牌有效期间使用它指定的权限访问它指向的资源。请注意,当前不支持 Azure 文件存储共享访问签名。

最后,你可以指定一个容器及其 Blob 或某个特定的 Blob 可供公开访问。当你指定某个容器或 Blob 为公用的时,任何人都可以匿名读取它,不需要进行身份验证。公用容器和 Blob 非常适用于公开在网站上托管的资源,例如媒体和文档。若要降低全球受众的网络延迟,你可以通过 Azure CDN 来缓存网站使用的 Blob 数据。

可靠的数据持久性和高可用性

在冗余方面,Windows Azure 提供了存储的三个冗余级别:

  • 本地冗余存储 (LRS):Windows Azure 在一个区域内维护数据的多个副本以提供高持久性。
  • 地域冗余存储 (GRS):Windows Azure 通过在同一地域内相隔数百英里的两个区域之间进行复制来异步提供额外的数据持久性。在两个区域中,Windows Azure 维护数据的多个副本。
  • 读取访问地域冗余存储 (RA-GRS):除了地域冗余的存储服务外,Windows Azure 提供对辅助区域(它具有主存储系统中数据的最终一致的版本)中存储账户的只读访问。当主区域中的存储账户不可用时,客户可以使用此服务访问其数据。

那对于 Windows Azure 存储服务的数据冗余是如何保障的?

Windows Azure 提供了异地冗余。中国北京及上海两个数据中心是有独占 10G 以上带宽相连。数据储存方面,Azure 支持两种模式:

同一数据中心的文件冗余,即在同一个数据中心文件进行三重备份。

不同数据中心的异地冗余,文件在异地数据中心也进行三重冗余,这样在两个不同           的数据中心一共有 6 重备份。

举个例子,用户向位于上海的 Windows Azure 数据中心上传了一份文件,同时开启了异地冗余。首先该用户的文件会在上海的数据中心进行三重备份;同时,Windows Azure 会利用上海和北京之间的专线,异步的在北京的数据中心也进行三重备份。在某些极端的情况下,假设上海的数据中心因为地震、战争、洪水等原因完全宕机了,该用户的文件还能安全的保存在北京的数据中心,不会丢失。


快速的通过Windows Azure 门户创建和管理存储账户

进入Azure的管理门户,点击新建>数据服务>存储>快速创建,输入存储账户的URL(唯一的),选择地域冗余或者其他。

完成新建,在门户中可以看到建好的存储账户

点击刚才建好的存储账户,进入此存储账户的快速启动页,可以下载存储资源管器及 Microsoft Azure SDK。

在门户下方,点击管理访问密钥

在出现的对话框,可以看到有2个密钥,我们可以进行重新生成或复制

在"监视"中,为每项服务设置监视级别和数据保留策略:

  • 最少 - 收集经过汇总的有关 Blob、表和队列服务的入口/出口、可用性、延 迟及成功百分比等度量值。
  • 详细  除最少监视度量值外,在 Windows Azure 存储服务 API 中为每 项存储操作收集一组相同的度量值。通过详细监视度量值可对应用程序运行 期间出现的问题进行进一步分析。
  • 关闭 - 关闭监视。现有监视数据将一直保留到保留期结束。

若要设置数据保留策略,请在"保留期(天)"中,键入要保留数据的天数,范围介于 1365 天之间。如果不需要设置保留策略,请输入零。

勾选需要监控的日志类型,然后点击保存

在使用Windows Azure存储服务时,我们可以借助以下常用工具对存储账户进行操作,这 些工具包括:

Azure Storage Explorer

Azure Storage Explorer是一款免费的Azure存储服务查看管理器,可用来查看Windows Azure 服务的各种存储类型,比如表存储,队列存储,Blob 存储,并且对里面的数据进行 查询,删除等操作。

Azure Storage Explorer是一款开源软件,其源代码发布在 http://azurestorageexplorer.codeplex.com/

对于中国区用户,如需下载适用于由世纪互联运营的Windows Azure存储服务的Azure Storage Explorer工具,请访问: http://shaunstorage.blob.core.chinacloudapi.cn/share/AzureStorageExplorerCN.zip

AzCopy

AzCopy 是一款用于操作 Windows Azure 存储账户的命令行实用程序。该实用程序旨在 简化和加速数据传输任务,使您可以轻松将数据传入或传出 Windows Azure 存储帐户。 客户可以将其作为独立工具使用,也可以

时间: 2024-08-02 09:34:55

浅谈Windows Azure 存储服务的相关文章

玩转Windows Azure存储服务——高级存储

在上一篇中我们中,我们把Windows Azure的存储服务用作网盘,本篇我们继续挖掘Windows Azure的存储服务——高级存储.高级存储自然要比普通存储高大上的,因为高级存储是SSD存储!其吞吐量和IOPS自然是普通存储没法比的.在高级存储功服务推出之前,用户为了提升磁盘性能,通常需要挂载多个持久盘做成RAID 0来使用.一个最大号的虚拟机,最多可以挂载16个持久盘,若将这16个磁盘组成RAID 0,理论上其整体磁盘性能可以提高16倍——当然这个只是理论值,因为是软RAID,总是要消耗一

Windows Azure文件共享服务--File Service

部署在Windows Azure上的虚拟机之间如何共享文件?例如:Web Server A和Web Server B组成负载均衡集群,两个服务器需要一个共享目录来存储用户上传的文件.通常,大家可能首先想到的是在一个虚拟机上开放一个共享目录或者NFS服务(Linux).其实,Windows Azure的文件共享服务就可以很好的解决这个问题,而且不需要在虚拟机上开放共享目录或者提供NFS服务. 文件共享服务是Windows Azure存储服务的一部分.每个存储账户(Storage Account)都

浅谈Windows Server APPFABRIC

    hi,everyone !真的是好久好久没有update blog了,因为最近忙着备考,没有时间对<数据结构与算法>进行研究学习了.所以,blog一直未更新.today is Friday,心里比较轻松,(哈哈,上班族懂我的感受),有时间写篇技术文章了.正好,最近研究了一些新技术,这篇文章权当对技术的梳理归纳吧.子曰:"温故而知新,可以为师也."对于knowledge,我们一定要时常复习.thought.归纳.practice.只有这样,我们才能真正的掌握它.Ein

Windows Azure存储共享配置介绍

我们都知道windows azure上创建的vm全部格式都为.vhd格式文件,这样我们就可以使用azure powershell将本地的hyper-v的vm上传到windows azure的存储容器中,然后挂载到新的windows azure vm中,那如果我们要将本地的某个软件上传到windows azure上工vm使用怎么办呢,我们都知道,microsoft的所有软件收费都相当高,当然也包括windows azure上的个个服务,如果我们需要一台SQL Server数据库服务器的话,如果使用

Windows Azure存储容器私有,公共容器,公共Blob的区别

当我们在Windows Azure中创建或编辑存储的容器时,需要选择访问类型,本文将描述一下这三个选项的区别. 1. 私有: 默认选项,顾名思义,用户不能通过URL匿名进行访问容器或容器内的任何Blob,访问必须要提供存储帐户名称与访问密钥. 2. 公共Blob 选择该选项后,容器内的所有文件均可通过URL进行匿名访问,但无法访问容器元数据属性或容器内列表. 示例:通过该URL可直接匿名下载该文件: https://imcfile.blob.core.windows.net/mycontaine

浅谈python字符串存储形式

http://blog.csdn.net/zhonghuan1992 钟桓 2014年8月31日 浅谈python字符串存储形式 记录一下自己今的天发现疑问并且给出自己现有知识有的回答.长话短说,用过python的人对于 == 和 is 应该不陌生,但是这里我还是介绍一下. ==是用来判断两个东西是否相等,比如: a = 10: b = 10: print(a == b): 输出是true: 再看一个例子: a = [1,2,3]; b = [1,2,3]; c = [1,2,4]; print

浅谈Windows平台下C++调用静态链接库的方式

浅谈Windows平台下C++调用静态链接库的方式 1. 什么是静态链接库?为什么要用静态链接库? 维基百科上关于静态库的解释是这样的:在计算机科学里,静态库(英语:Static library, Statically-linked library),或称静态库,是一个外部函数与变量的集合体.静态库的文件内容,通常包含一堆程序员自定的变量与函数,其内容不像动态链接库那么复杂,在编译期间由编译器与连接器将它集成至应用程序内,并制作成目标文件以及可以独立运作的可执行文件. 由上面的解释可以很清楚的看

介绍Windows Azure HDInsight服务的Hadoop Storm的视频

介绍Windows Azure HDInsight服务的Hadoop Storm的原理,用例及开发入门的视频,收藏一下: http://channel9.msdn.com/Shows/Data-Exposed/General-Availability-and-Whats-new-with-the-Azure-Storm-Service

浅谈Windows API编程

WinSDK是编程中的传统难点,个人写的WinAPI程序也不少了,其实之所以难就难在每个调用的API都包含着Windows这个操作系统的潜规则或者是windows内部的运行机制…… WinSDK是编程中的传统难点,曾经听有一个技术不是很好的朋友乱说什么给你API谁都会用,其实并非那么简单,个人写的WinAPI程序也不少了,其实之所以难就难在每个调用的API都包含着Windows这个操作系统的潜规则或者是windows内部的运行机制. 首先来谈谈句柄,初学习WinSDK的朋友刚看到这个词头大了吧?