开发者社区> zting科技> 正文

Windows Azure Storage (1) Windows Azure Storage Service存储服务

简介:
+关注继续查看

  Windows Azure Platform 系列文章目录

   

  如果读者使用的是国内由世纪互联运维的Azure China服务,请参考笔者的博文Azure China (4) 管理Azure China Storage Account

 

  update 2014-3-31

  Windows Azure Storage带宽10GB,WindowsAzure Blob带宽60MB

 

 

  Windows Azure PaaS本质上来说就是将你本地的应用程序打包,然后上传到Windows Azure VM进行托管运行。

  注意:任何保存在Windows Azure PaaS盘符的内容都是临时的、非持久化的。比如,我通过Windows Azure 
VM在D盘新建了一个txt文件,这个文件不会一直被保存。因为某些特殊情况,VM节点会宕机(系统升级、物理损坏)等,后台Fabric Controller会把该VM下的Web Role和Worker Role的内容迁移到同一数据中心的另外一台机器上,但是不会自动迁移D盘新建的txt文件!如果需要保存持久化的内容,一定要使用Windows Azure Storage,切记切记!

  Windows Azure Storage是支持三重冗余的,也就是说,保存在Azure Storage的内容,会在同一个数据中心保留有3个副本。这样的好处显而易见:当数据中心发生一般性故障的时候,比如磁盘损坏,机架服务器损坏等,用户保存在Azure Storage的数据不会丢失。每次对于Storage的写操作,都会对三个副本进行同步写操作,等到在副本操作完毕之后,才会返回执行成功给客户端。

  Windows Azure提供了三种不同类型的存储服务(这里的存储是非关系型数据,比如图片、文档等文件),用来提供给Windows Azure上运行的应用程序存储数据使用。依据不同的存储格式会有不同的限制,因为这些存储服务都是以分散式巨量存储(Distributed Mass Storage)为核心概念所设计出来的,为了要达成快速在分散式存储空间中存储与管理数据(还包含高可用度的赘余存储管理),微软有在数据的存储上做一些限制。

  微软还提供了REST API来方便用户操作Storage Service。

  

 

1.BLOB

BLOB(大型二进制对象)数据是用来存储文件、图片、文档等二进制格式的文件。

BLOB分为2种:

  -Block BLOB(区块型BLOB存储),这类的存储以4M为一个区块单位,单一文件最大可以存储200GB,且区块不会连续存储,可能会在不同的存储服务器分块存放。为了适应文件的上传和下载而专门进行了优化。当应用程序要求时,会一招文件的KEY以及区块存储区提供数据。

  -Page BLOB,是优化的随机访问。它会在存储区中划分一个连续的区域供应用程序存放数据,它本身可以视为一个大型的VHD(虚拟机软盘)。如果我们拿我们的应用程序迁移到Windows Azure平台上,对于文件的读写操作可能需要进行一些修改,但是通过Page Blob就可以方便我们迁移:微软特别在Page BLOB上提供了一组将Page BLOB虚拟成软盘的功能,称为Windows Azure Drive(研发代号为XDrive),它能够支持NTFS API,也就是说应用程序可以利用现有的文件管理API(包含System.IO的类型)来访问Windows Azure Drive中的文件夹与文件数据,并且这些数据会保存在Windows Azure数据中心内。

 

  Block Blob和Page Blob的区别,请参考Windows Azure Storage (19) 再谈Azure Block Blob和Page Blob

 

BLOB服务由BLOB本身以及其收纳容器(Container)构成,容器可视为一般本机上的文件夹。

你可以通过REST API来访问,如下:

http://accountName.blob.core.windows.net/<containerName>/<blobName>

accountName表示哪个Azure帐号(Account)下的资源。

blob.core.windows.net表示我访问的是blob的资源。

containerName表示容器的名字,可以认为是访问某一文件夹下的资源

blobName表示我要访问的资源的名字。

 

 

ContainerName容器,从概念上来将类似于文件夹

Container类型分为三种: Public Container,Public Blob和Private

 

Private(私有)表示,这个Container(文件夹)里面的内容,都不允许匿名访问

比如 http:/mystorage.blob.core.chinacloudapi.cn/privatephotos/1.jpg
上面的container name是privatephotos,类型是私有(private)
所以不允许匿名文档,这也是为什么你之前上传的资源无法通过IE匿名访问
对于某些私密的信息,比如内部的图片、文件,可以设置private类型

 

公共blob,表示允许访问这个某一个资源,但是无法递归访问这个container (文件夹)
对于可以匿名访问资源,比如公共图片、照片,可以设置公共blob

 

公共容器(container),表示可以递归访问这个container(文件夹)下的所有资源

 

 

注意:ContainerName的命名规则

1.必须以英文或数字开头,且名称内只能有英文、数字及dash(-)

2.不能以dash(-)开头或结尾,dash(-)不能连续出现

3.所有英文的字符都必须是小写

4.长度为3-63之间

 

Blob的命名规则:

1.除了URL的保留字符以外,其他的字符组合都可以使用

2.长度为1-1024个字符

3.尽量避免以dot(.)或者是forward slash(/)结尾。否则会造成Blob Service误判。

 

 

 2.Table

这里的Azure Table是非关系型数据库的表,不能与SQL Server中的Table混淆。

Azure Table中表最大容量是200T,每个Azure Table 都必须有Partition Key和Row Key。

Partition Key的值可以设置记录的物理位置。在Azure Table中的2条数据,如果Partition Key值相同,则表示这2条数据存储的物理位置是相同的;如果Partition Kay不同,则表示这2条数据可能存储在同一台物理介质上,或者不同的2台物理介质之上。

Row Key表示一行数据的唯一值。使用PartitionKey和RowKey可以定位一个唯一的实体。

Azure Table也提供REST API来访问,如下:

http://accountName.table.core.windows.net/<TableName>

 

 

3.Queue

Queue(队列)是一种先到先服务(First-Come, First-Serve),或称为FIFO(先入先出)的存储服务,它可以允许应用程序将消息存储到队列中排队,然后由负责处理的应用程序(通常是Worker)由队列提取消息并处理以后,将消息由队列中移除。消息可以是字符串或是最长8KB的二进制数据,队列经常会作为跨运行个体通信以及工作切割通知的消息传递之用。

Queue消息队列的每个消息(Message)最大支持64K,Queue最大容量200TB

http://<account>.queue.core.windows.net/<QueueName>

 

分类: Azure Storage

本文转自Lei Zhang的博客博客园博客,原文链接:http://www.cnblogs.com/threestone/archive/2012/01/18/2325567.html,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
成功解决WIN系统如何更改默认放在C盘的【我的文档】/【图片】位置的存储路径(修改到其它非系统的盘符)
成功解决WIN系统如何更改默认放在C盘的【我的文档】/【图片】位置的存储路径(修改到其它非系统的盘符)
428 0
【终极解决方案】为应用程序池“XXX”提供服务的进程在与 Windows Process Activation Service 通信时出现严重错误。该进程 ID 为“XXXX”。数据字段包含错误号。
原文:【终极解决方案】为应用程序池“XXX”提供服务的进程在与 Windows Process Activation Service 通信时出现严重错误。该进程 ID 为“XXXX”。数据字段包含错误号。
2549 0
SpringBoot实战(十)之使用Spring Boot Actuator构建RESTful Web服务
一、导入依赖 4.0.0 org.springframework gs-actuator-service 0.1.0 org.springframework.
1617 0
Web Service——面向服务编程的方式之一
<div style="font-family:楷体; font-size:19px; line-height:27px; widows:auto"><span style="font-family:楷体">    在上篇博客中,我们认识了面向服务编程。本篇博客,将学习Web Service,它属于实现面向服务编程的方式之一。</span></div> <div style="font-
1482 0
服务(Service)全解析(六)--避免被系统回收的Service
MainActivity如下: package cc.c; import java.util.List; import android.os.
796 0
【飞天存储服务月报】2018年9月刊
2018 杭州云栖大会上,阿里云为客户现场演示了混合云容灾服务-关键业务型(Business Critical Disaster Recovery , 简称 BCDR)上云容灾演练。BCDR 演示完整呈现了将本地服务器上运行的报账系统实时容灾 2 分钟内复制到阿里云,并在现场拔掉硬盘,出现宕机后在云上一分半钟拉起恢复业务的全过程。
3094 0
服务(Service)全解析(四)--AIDL
在Android中,每个应用程序都有自己的进程,当需要在不同的进程之间传递对象时,该如何实现呢? 显然,Java中是不支持跨进程内存共享的.
788 0
+关注
3550
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
JS零基础入门教程(上册)
立即下载
性能优化方法论
立即下载
手把手学习日志服务SLS,云启实验室实战指南
立即下载