Microsoft Azure 儲存體

Azure 儲存服務 (Azure Storage) 是 Microsoft Azure 平台內實作的資料儲存服務,目前為 Azure 平台服務的主要資料保存地。

Azure 儲存服務提供了四種不同格式的儲存體,用來提供給Azure上運行的應用程式儲存資料使用。依據不同的儲存格式會有不同的限制,因為這些儲存服務都是以分散式巨量儲存(Distributed Mass Storage)為核心概念所設計出來的,為了要達成快速在分散式儲存空間中儲存與管理資料(還包含高可用度的贅餘儲存管理),微軟有在資料的儲存上做一些限制。

不論是哪一種儲存服務,Azure都有REST API[1],並符合Simple Cloud的標準[2]

Azure 儲存服務提供 99.9% 的服務水準,而唯讀式備援的唯讀端 (備援端) 為 99.99%。

Blob

Blob (大型二進位物件)資料是用來儲存像是檔案,圖片,視訊檔,可執行檔,壓縮檔等二進位格式的檔案,基本上它的儲存單位就是檔案,為了要讓BLOB的功能應用更寬廣,微軟也在 Blob 服務上開發了內容傳遞網路(Content Delivery Network)的服務,讓 Blob 可以作為大容量的檔案或資料儲存與供應的地方,以支持類似YouTube這樣的大型Web應用程式的服務。

Blob 依照性質分為兩種:

  • Block Blob(區塊型 Blob 儲存體),這類的儲存以4MB為一個區塊單位 (可依需調整,範圍為 16KB~4MB),單一檔案最大可以儲存 200GB,且區塊不會連續儲存,可能會打散到不同的儲存伺服器中存放,當應用程式要求時,會依照檔案的Key以及區塊由儲存區提取資料。另外,區塊在儲存時會經過一道認可程序,以讓應用程式決定是否要重新傳送。
  • Page Blob(分頁型 Blob 儲存體),它會在儲存區中劃分一個連續的區域供應用程式存放資料,它本身可以視為一個大型的VHD(虛擬機器磁碟),在Page Blob 的資料寫入會直接認可。而基於Page Blob 的特性,微軟特別在Page Blob 上提供了一組將Page Blob 虛擬成磁碟的功能,稱為Azure Drive(研發代號為XDrive),它能夠支援NTFS API,也就是說應用程式可以利用現有的檔案管理API(包含System.IO的類別)來存取Azure Drive中的資料夾與檔案資料,並且這些資料會保存在Azure資料中心內。

Blob 服務由 Blob 本身以及其收納容器(Container)構成,容器可視為一般本機上的資料夾。而容器和 Blob 都支援額外的Metadata設定,這些Metadata會附掛在HTTP Header中傳輸給用戶端,每一個Metadata的大小限制為8KB。Blob 也支援權限管理的功能,透過Shared Access Signature可設定 Blob 或Container的存取權限與有效期限等。

private void EnsureContainerExists(
{
    var container = GetContainer();
    container.CreateIfNotExist();

    var permissions = container.GetPermissions();
    permissions.PublicAccess = BlobContainerPublicAccessType.Container;
    container.SetPermissions(permissions);
}

private CloudBlobContainer GetContainer()
{
    var account = CloudStorageAccount.FromConfigurationSetting("DataConnectionString");
    var client = account.CreateCloudBlobClient();

    return client.GetContainerReference(RoleEnvironment.GetConfigurationSettingValue("ContainerName"));
}

Table

Table(表格)是給具結構化資料的應用程式儲存與管理的一種儲存服務,它在Azure儲存區中會以Key-Value鍵值對方式儲存,並且由Partition來切割在Azure儲存區的儲存位置,它實際的資料是XML,透過REST API呼叫時,會需要依據SDK上的說明,自行建置XML的要求與解析回應的資料,但若是.NET Framework的開發人員,在Azure SDK中提供的Microsoft.WindowsAzure.StorageClient命名空間就有提供輔助的API以及類別,將這件事在API中處理掉了。SDK提供的輔助組件所應用的技術是WCF Data Services,因此若對WCF Data Services熟悉的開發人員,會很容易的上手Table儲存的開發。

namespace TableExample
{
    public class Contact : TableServiceEntity
    {
        public string Name { get; set; }
        public string Address { get; set; }
        public string Phone { get; set; }
        public string Cellphone { get; set; }

        public Contact()
        {
            base.PartitionKey = "ContactTable";
            base.RowKey = Guid.NewGuid().ToString();
        }
    }
}

雖然Table可以儲存結構化的資料,但它並不是關聯性資料庫,所以像是join,彙總函數等都無法使用,要由開發人員另外處理。

Queue

Queue(佇列)是一種先到先服務(First-Come, First-Serve),或稱為FIFO(先入先出)的儲存服務,它可以允許應用程式將訊息儲存到佇列中排隊,然後由負責處理的應用程式(通常是Worker)由佇列提取訊息並處理以後,將訊息由佇列中移除。訊息可以是字串或是最長8KB的二進位資料,佇列經常會作為跨執行個體通訊以及工作切割通知的訊息傳遞之用。

protected void cmdAddQueue_Clickobject sender, EventArgs e
{
    CloudStorageAccount account = CloudStorageAccount.FromConfigurationSetting("DataConnectionString";
    CloudQueueClient queueClient = account.CreateCloudQueueClient();
    CloudQueue queue = queueClient.GetQueueReference("theaterseatorders");

    queue.CreateIfNotExist();

    queue.AddMessage(new CloudQueueMessage("SEATNUM=1-1,[email protected]"));
    queue = null;
}

File

檔案服務是 Azure 近期 (2014) 才加入的新規資料儲存服務,它也是用來儲存二進位檔案,但它和 Blob 不同的是 Blob 是 Internet-facing (面向 Internet) 的檔案儲存服務,檔案服務則是給同一區域內的 Azure 服務 (如虛擬機器服務) 共享檔案資源的服務,它使用 SMB 2.1 (推出時) 與 SMB 3.0 (GA時) 網路芳鄰的方式簡化存取檔案的工作,同時也可以支援由資料中心外部的網路芳鄰連線。

備援

自v1.5版起的 Azure Storage 開始支援異地備援 (Geo-replication)的功能[3],只要應用程式將資料傳送到TABLE或BLOB儲存,Azure會自動將資料往鄰近的資料中心傳遞,以備援儲存服務,當主要的資料中心發生斷線或是無法提供服務時,Azure核心中的DNS Service會自動將要求導向到備援的資料中心繼續提供服務。

  • 異地備援所產生的網路與儲存成本由微軟自行吸收,不另計費。
  • 異地備援的工作是非同步且自動化,應用程式無需做任何修改。
  • 異地備援可以透過聯繫Windows Azure支援團隊的方式停用。

目前 Azure 儲存服務支援下列備援類型:

  • LRS (Local Redundant Service): 在區域內將資料產生三份複本儲存。
  • ZRS (Zone Redundant Service): 在區域內除了原本的三份複本之外,再額外產生三份複本,此模式只支援 Blob 格式。
  • GRS (Geo-Replication Service): 在已配對的資料中心間異地備援,兩邊都產生三份的複本。
  • RA-GRS (Read-Only Geo-Replication Service): 在已配對的資料中心間異地備援,但另一邊的儲存可讀取 (但唯讀)。

涼儲存

涼儲存 (Cool Storage) 是微軟在 Build 2016 研討會中所發表的新儲存功能,它可以將資料儲存在較持久的儲存裝置,並且利用資料保存技術將儲存成本壓低,以適用於長時間儲存又不需經常存取的資料 (經常存取的稱為熱資料),涼儲存僅適用於區塊式 Blob 儲存體 (Block Blob),每單位 GB 的儲存成本比一般儲存功能便宜約 50%,但由涼儲存將資料取出或存入時除本身的交易成本外,尚需要支付額外每 GB 單位的取出與寫入成本 (Data Retrival/Data Write),取出成本比寫入成本要高。

參考

  1. ^ Windows Azure Storage Service REST API References. [2016-03-17]. (原始内容存档于2016-11-13). 
  2. ^ Simple Cloud API. [2016-03-17]. (原始内容存档于2012-02-09). 
  3. ^ Inside Windows Azure storage: what's new and under the hood deep dive @ BUILD WINDOWS. [2016-03-17]. (原始内容存档于2020-11-27). 
即服务英语As a service
技术
应用程序
平台
  • 阿里云
  • 腾讯云
  • 百度云
  • 新浪云
  • 网易云
  • 金山云
  • 华为云
  • 明源雲
  • 搜狗云输入法
  • 亚马逊
  • AppScale英语AppScale
  • Box
  • Bluemix英语Bluemix
  • CloudBolt英语CloudBolt
  • 云铸造英语Cloud Foundry
  • 可卡因英语Cocaine (PaaS)
  • Creatio英语Creatio
  • 引擎工厂英语Engine Yard
  • Helion英语HPE Helion
  • GE Predix英语Predix (software)
  • Google App Engine
  • GreenQloud英语GreenQloud
  • Heroku
  • IBM雲英语IBM Cloud
  • Inktank英语Inktank Storage
  • Jelastic英语Jelastic
  • Mendix英语Mendix
  • Microsoft Azure
  • MindSphere英语MindSphere
  • Netlify英语Netlify
  • 甲骨文云
  • OutSystems英语OutSystems
  • openQRM英语openQRM
  • OpenShift
  • PythonAnywhere英语PythonAnywhere
  • RightScale英语RightScale
  • Scalr英语Scalr
  • Force.com
  • SAP云平台英语SAP Cloud Platform
  • VCloud Air
  • WaveMaker英语WaveMaker
基础设施
  • 阿里雲
  • 亚马逊云计算服务
  • Abiquo企业版英语Abiquo Enterprise Edition
  • CloudStack英语Apache CloudStack
  • Citrix云英语Citrix Cloud
  • CtrlS英语CtrlS
  • DigitalOcean
  • EMC Atmos英语EMC Atmos
  • Eucalyptus英语Eucalyptus (software)
  • 富士通英语FUJITSU Cloud IaaS Trusted Public S5
  • GoGrid英语GoGrid
  • Google雲端平台
  • GreenButton英语GreenButton
  • GreenQloud英语GreenQloud
  • IBM雲英语IBM Cloud
  • iland英语iland
  • Joyent
  • Linode
  • Lunacloud英语Lunacloud
  • Microsoft Azure
  • Mirantis英语Mirantis
  • Netlify英语Netlify
  • Nimbula英语Nimbula
  • Nimbus英语Nimbus (cloud computing)
  • OpenIO英语OpenIO
  • OpenNebula英语OpenNebula
  • OpenStack
  • 甲骨文云
  • OrionVM英语OrionVM
  • Rackspace云英语Rackspace Cloud
  • Safe Swiss云英语Safe Swiss Cloud
  • SoftLayer英语SoftLayer
  • Zadara Storage英语Zadara Storage
  • Libvirt
  • Libguestfs
  • OVirt英语OVirt
  • Virtual Machine Manager
  • Wakame-vdc英语Wakame-vdc
  • VCloud Air
  • 分类 分类
  • 共享资源页面 共享资源
Microsoft Azure家族
運算服務
應用程式服務
  • 應用服務英语Microsoft Azure Web Sites
  • API管理服務
  • 服務匯流排
  • 媒體服務
  • 物聯網服務集
  • Mobile Engagement
資料服務
  • 資料庫服務
  • 資料倉儲服務英语Azure SQL Data Warehouse
  • 儲存服務
  • DocumentDB英语DocumentDB
  • Redis Cache
  • 搜尋服務英语Azure Search
  • Cosmos DB英语Azure Cosmos DB
分析服務
  • Microsoft Azure HDInsights
  • 機器學習服務
  • 資料流分析
  • 資料工廠
  • 事件中樞
  • 資料湖
網路服務
  • 虛擬網路
  • ExpressRoute
  • 流量管理員
  • 內容傳遞網路服務
身份識別與存取管理
開發人員服務
  • 應用程式洞察服務
  • DevOps
  • HockeyApp
管理服務
  • 排程器
  • 自動化
  • 營運洞察服務
  • 金鑰保存庫
  • 營運洞察服務
  • 資訊安全中心
  • 備份服務
  • 站台備援
人物
創始人
  • 薩蒂亞·納德拉(董事长兼首席执行官)
  • 迪娜·杜伯倫
  • 瑪利亞·克拉維
  • David Marquardt英语David Marquardt
  • Charles Noski英语Charles Noski
  • Helmut Panke英语Helmut Panke
  • Mason Morfit英语Mason Morfit
  • John W. Stanton英语John W. Stanton
高層領導團隊
公司副總裁
  • Gabe Aul英语Gabe Aul (副總裁)
  • 理查德·拉希德(高級副總裁)
  • S. Somasegar英语S. Somasegar(高級副總裁)
部門
產品系列
網絡
大會
  • Build
  • Inspire
  • MIX英语MIX (Microsoft)
  • PDC
  • Ignite英语Microsoft Ignite
  • WinHEC
批評
訴訟
  • 阿爾卡特-朗訊訴微軟英语Alcatel-Lucent v. Microsoft Corp.
  • 蘋果訴微軟英语Apple Computer, Inc. v. Microsoft Corp.
  • 歐盟微軟競爭案英语Microsoft Corp v Commission
  • 微軟訴Lindows英语Microsoft Corp. v. Lindows.com, Inc.
  • 微軟訴MikeRoweSoft
  • 微軟訴Shah英语Microsoft Corp. v. Shah
  • 合众国诉微软案
收購英语List of mergers and acquisitions by Microsoft
  • 6Wunderkinder
  • 动视暴雪
    • 收购案英语Acquisition of Activision Blizzard by Microsoft
  • Altamira Software英语Altamira Software
  • AltspaceVR英语AltspaceVR
  • aQuantive
  • Azyxxi
  • Mixer
  • The Blue Ribbon SoundWorks英语The Blue Ribbon SoundWorks
  • Bungie
  • Calista Technologies英语Calista Technologies
  • Colloquis英语Colloquis
  • Connectix英语Connectix
  • Consumers Software英语Consumers Software
  • Danger英语Danger Inc.
  • Farecast英语MSN Travel
  • FASA Studio
  • Fast Search & Transfer英语Microsoft Development Center Norway
  • Fast Search & Transfer英语Fast Search & Transfer
  • 螢火蟲英语Firefly (website)
  • Forethought英语Forethought, Inc.
  • GIANT Company Software
  • GitHub
  • GreenButton英语GreenButton
  • Groove Networks英语Groove Networks
  • High Heat Major League Baseball英语High Heat Major League Baseball
  • Hotmail
  • Jellyfish.com英语Jellyfish.com
  • 領英
  • LinkExchange英语LinkExchange
  • Lionhead Studios
  • Massive Incorporated英语Massive Incorporated
  • Mobile Data Labs英语MileIQ
  • Mojang Studios
  • 诺基亚设备和服务
  • Nuance Communications
  • Onfolio
  • Pando Networks英语Pando Networks
  • 感知像素
  • PlaceWare英语PlaceWare
  • Powerset
  • ProClarity英语ProClarity
  • Rare
  • Revolution Analytics英语Revolution Analytics
  • ScreenTonic英语ScreenTonic
  • Secure Islands英语Secure Islands
  • Simplygon英语Simplygon
  • Skype
  • Sunrise Atelier英语Sunrise Calendar
  • Winternals Software
  • SwiftKey
  • Winternals Software英语Sysinternals
  • Teleo英语Teleo
  • Telekinesys Research
  • Tellme Networks英语Tellme Networks
  • Twisted Pixel Games
  • Vermeer Technologies英语Vermeer Technologies
  • Visio Corporation英语Visio Corporation
  • Vivaty英语Flux (software)(解散)
  • VoloMetrix英语VoloMetrix
  • VXtreme英语NetShow
  • WebTV Networks
  • Xamarin
  • Yammer
  • Yupi英语Yupi
  • ZeniMax Media
  • 分类 分类
  • 共享资源页面 共享資源
  • 微軟主题
  • 歷史