Skip to main content

Azure Storage

Storage Account Types​

  • Standard general-purpose v2: Blob, Queue and Table storage, Azure Files
    Recommended for most scenarios.

  • Premium block blobs: Blob storage (block blobs and append blobs)
    Recommended for scenarios with high transaction rates, or low storage latency.

  • Premium page blobs: Page blobs only
    Premium storage account type for page blobs only.

  • Premium file shares: Page blobs only
    Premium storage account type for file shares only.

Premium account offer higher performance by using solid-state drives.

Azure Blob Storage Resource Types​

Blob consists of three types of resources:

  • Storage account: provides unique namespace for the data.

  • Container: organises a set of blobs, similar to directory in file system.

  • Blob: three types of blobs are supported:

    • Block blobs - store text or binary data, up to about 4.7 TB.
    • Append blobs - similar to block blobs, but optimised for append operations (like logging data).
    • Page blobs - store random access files up to 8 TB in size. Store virtual hard drive (VHD) files and serve as disks for Azure VMs.

Security Features​

All data encrypted at rest by default using Storage Service Encryption (SSE).

Supports the following access control:

  • Azure Active Directory (Azure AD)
  • RBAC

For securing data in transit one of the following can be used:

  • Client-side Encryption
  • HTTPS
  • SMB 3.0

OS and dat disks for Azure VMs can be encrypted using Azure Disk Encryption.

Types of encryption keys supported:

  • Microsoft-managed keys
  • Customer-managed keys
  • Customer-provided keys for blob read/write operations.

Redundancy Options​

Redundancy in the primary region:

  • Locally redundant storage (LRS): data copied synchronously three times within a single physical location in the primary region.
  • Zone-redundant storage (ZRS): data copied synchronously across three Azure availability zones in the primary region.

Redundancy in the secondary region:

  • Geo-redundant storage (GRS):
    synchronous LRS in the primary region,
    then asynchronous copy a single physical location in the secondary region,
    and then synchronous LRS in the secondary region.
  • Geo-zone-redundant storage (GZRS):
    synchronous ZRS in the primary region,
    then asynchronous copy to a single physical location in the secondary region,
    and then synchronous ZRS in the secondary region.

Block Blobs Access Tiers​

Selecting the right access tier helps to make solution more cost-effective. Access tiers can be switched any time.

  • Hot (online): optimised for frequent access.
  • Cool (online): optimised for large amounts of data that is infrequently accessed and stored for at least 30 days.
  • Archive (offline): optimised for data that can tolerate several hours of retrieval latency and will remain in the Archive tier for at least 180 days.

Scenarios:

  • Transition blobs to a cooler storage tier to optimise for performance and cost.
  • Delete blobs at the end of their lifecycles.
  • Define rules to be run once per day at the storage account level.
  • Apply rules to containers or a subset of blobs (using prefixes as filters).

Blob Storage Lifecycle Policies​

Rule actions:

  • tierToCool
  • enableAutoTierToHotFromCool
  • tierToArchive
  • delete

When multiple actions are applicable, lifecycle management applies the least expensive action to the blob.

Rule action conditions:

  • daysAfterModificationGreaterThan
  • daysAfterCreationGreaterThan

Example:

{
"rules": [
{
"enabled": true,
"name": "move-to-cool",
"type": "Lifecycle",
"definition": {
"actions": {
"baseBlob": {
"tierToCool": {
"daysAfterModificationGreaterThan": 30
}
}
},
"filters": {
"blobTypes": [ "blockBlob" ],
"prefixMatch": [ "sample-container/log" ]
}
}
}
]
}

Blob Data Rehydration From Archive Tier​

Rehydration can be done in either of two ways:

  • Copy an archived blob to an online tier by using copy blob or copy blob from URL operation.
  • Change a blob's access tier to an online tier by using set blob tier operation.

Rehydration priority can be set by using x-ms-rehydrate-priority header. Options include:

  • Standard priority
    • request will be processed in the order it was received
    • may take up to 15 hours.
  • High priority
    • request will be prioritised over standard priority
    • may complete in under 1 hour for objects under 10 GB in size.

Preperties and Metadata​

Blob containers support:

  • System properties: exist on each blob storage resource. Some can be read or set, while others are read-only.
  • User-defined metadata: name/value pairs that are valid HTTP header, so should adhere to all restrictions governing HTTP headers.