Getting Started with Azure Blob Storage

Azure Blob Storage 是 Microsoft 針對雲端推出的物件儲存體解決方案。

比較特別的地方是,Blob Storage區塊儲存(Flag Storage Scheme) 的架構,並非傳統的 階層式架構(Hierarchical Scheme),因此在儲存時並不會有「目錄」等等的階層概念。

這種架構非常適合儲存非結構化資料,例如文字或二進位資料。

Blob Storage 總共擁有三種類型的資源,分別是 Storage AccountContainers,最後才是 Blob

這三者的關係如下圖:

Blob Storage
(圖片來源:Storage Blobs Introduction

Storage Account

在使用 Azure Blob Storage 之前,必須先建立 Storage Account,並掛進 Resource Group 之下。

Storage Account 也有類型之分,不同的類型會有不同的計價標準和用途,目前最通用的是 Storage V2

細節的收費差異可以參考 Storage Account Overview

目前一個 Standard general-purpose v2Storage Account 容量上限可以存放到 5PB 的資料。

詳細規格可以參考 Scalability and performance targets for standard storage accounts

Containers

Containers 會組織一組 Blob,有點類似檔案系統中的目錄。Storage Account 可以擁有無限數量的 Containers,而一個 Containers 則可儲存無限數量的 Blob

另外,許多人可能會遇到該怎麼去規劃 Containers 數量的問題,其實 Containers 數量多寡並不會影響檔案存放或存取的效能,因為 Partition 等實作是做在 Blob 裡。

Containers 真正的用處是在於檔案權限的劃分,可以根據 Containers 設定 SAS(Shared Access Signature) 來進行部份檔案的共享。

Blob

BlobAzure Blob Storage 中的最小單位,也分為三種狀態:

  • 區塊 Blob(Block blobs):可儲存文字和二進位資料。區塊 Blob 是由可個別管理的資料區塊所組成。一個區塊 Blob 做多可以擁有 50000 個區塊、每個區塊最大上限容量為 4000 MiB。因此一個區塊 Blob 的最大容量上限為大約 190.7 TiB(4000 MiB X 50000 區塊)。
  • 附加 Blob(Append blobs):和區塊 Blob 相似,由區塊所組成,但已針對附加作業最佳化。附加 Blob 很適合特定案例,比如記錄 VM 產生的資料。
  • 分頁 Blob(Page blobs):可儲存隨機存取檔案 (大小上限為 8 TiB)。分頁 Blob 存放區可儲存虛擬硬碟 (VHD) 檔案,以作為 Azure 虛擬機器的磁碟。

規格的細節可以參考 Understanding block blobs, append blobs, and page blobs

Naming

Azure Blob Storage 中,各個資源的命名都有一定的標準。

Containers 為例,有以下的命名標準:

  • 名稱的開頭或結尾必須是字母或數字,而且只能包含字母、數字和虛線 (-) 字元。
  • 每個虛線 (-) 字元前後必須立即接著字母或數字;名稱中不允許連續虛線。
  • 名稱的所有字母必須都是小寫。
  • 名稱必須介於 3 至 63 個字元長。

詳細規則可以參考 Naming and Referencing Containers, Blobs, and Metadata

Virtual Hierarchy

通常會使用到 Storage 的情境都會需要階層式的目錄結構,因此 Azure Blob Storage 有一個 Virtual Hierarchy 的功能,根據上傳的 Blob 命名來組成「虛擬目錄」,也可以想像成檔案的 Namespace。

舉例來說,如果我們分別上傳了 a.xmlxml/b.xml,事實上是兩個 Blob 檔案,但在 Azure 的後台可以看到 a.xmlxml 目錄,目錄裡才是 b.xml

從 Azure 的後台就可以透過 Upload to folder 調整虛擬目錄的名稱了。

Upload to folder example

Categories: Azure