我们现在正处于一个数据爆炸的年代,大数据、开放数据炒的如火如荼,表明数据给我们带来了不可估量的价值。
对于企业来说,保存、管理和维护数据已经成为一项重要的挑战。大量存储设备的采购、部署、数据规模的不断增长,对于需要为其数据使用可伸缩的、持久的且具有高可用性的存储的应用程序,云计算使其有了新的方案可供选择,这正是 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
- Azure Block Blob概念类似网盘,可以直接存放图片、文件、照片等二进制文件,并且可以直接被客户端通过http://或者https://访问。
- 使用Azure Block Blob不需要创建任何Azure Virtual Machine,直接可以访问使用
- Block Blob单个文件最大容量200GB
- Block Blob单个文件最大带宽60MB/S
- Block Blob支持文件从客户端分块上传(每块最大4MB)
Azure Page Blob
- Page Blob就是VHD文件
- VHD里的文件必须依赖于Azure Virtual Machine才能被访问,比如Tomcate, IIS, FTP等
- 在没有Azure Virtual Machine的情况下,VHD里的文件不能直接被http://或者https://访问
- VHD大小最大为1TB (这也是为什么我们在虚拟机里附加磁盘最大容量为1023GB)
- 一台VM能挂载的VHD数量是有限的,8 Core CPU的VM最多能挂载16块,每块1TB的VHD
- 每块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 存储帐户。 客户可以将其作为独立工具使用,也可以