Windows Azure platform
- 2. Agenda
Storage in Windows Azure
• Table, Blob, Queue
• Demo 1
• Q &A (5 minutes)
• Azure Drive
• Demo 2
• Q &A (5 minutes)
- 3. • Storage for various types of data and applications
• Distributed over data centers and physical boxes
• Storage at massive scale
- 4. Windows Azure Storage
• Table • Blob
– Entity Data Store – Blob Storage
– Partitioned by key – Partitioned by
– Not a RDBMS container
– Unlimited containers
• Queue • Drive
– Read at least once – Standard NTFS API
– Delete to remove – Mounts to any
message, otherwise returns instance as a drive
to queue
(e.g. F: )
– Partitioned by Queue Name
- 5. Windows Azure Storage Account
• User creates a globally unique storage account
name
– Can choose geo-location to host storage account
• “US Anywhere”, “US North Central”, “US South Central”,
– Can co-locate storage account with compute account
– Receive a 256 bit secret key when creating account
• Storage Account Capacity at
Commercial Availability
– Each storage account can store up to 100 TB
– Default limit of 5 storage accounts per subscription
- 6. Typical Design with Azure Storage
Browser
Cloud
Microsoft Data Center
WebRole
On-Premise
Applications
Windows Third-Party
Azure Cloud
Applications
Storage
- 7. Table Storage: Concept
• Structured Storage
• Partitioned by key
• REST API
• Security: Shared Key
• Up to 255 properties
• Continuation token
- 8. Queue Storage: Concept
• Organization: FIFO
• Message size < 8KB
• Partitioned by Name
• Queue API:
– List Queues
– Create Queue
– Delete Queue
– Put Message
– Get Message
– Peek Message
– Delete Message
- 9. Blob Storage: Concepts
Blocks or
Account Container Blob
Pages
PIC01.
JPG
images
PIC02.
JPG
sally Block or
Page 1
Block or
movies MOV1.AVI
Page 2
Block or
Page 3
- 10. Blob Storage: Blob Containers
• Number of Blob Containers
– Can have many Blob Containers that will fit in the
storage account limit
• Blob Container
– A container holds a set of blobs
– Set access policies at the container level
• Private or Public accessible
– Associate Metadata with Container
• Metadata are <name, value> pairs
• Up to 8KB per container
– List the blobs in a container
- 11. Blob Namespace
• Blob URL
http://<Account>.blob.core.windows.net/<Container>/<BlobName>
• Example:
– Storage Account – sally
– Container – music
– BlobName – rock/rush/xanadu.mp3
– http://sally.blob.core.windows.net/music/rock/rush/xanadu.mp3
- 12. Two Types of Blobs Under the
Hood
• Block Blob
– Targeted at streaming workloads
– Each blob consists of a sequence of blocks
– Size limit
• block: 64MB
• Entire Block Blob: 200GB
• Page Blob
– Targeted at random read/write workloads
– Each blob consists of an array of pages
– Size limit
• Page: 512 byte
• Entire Page Blob: 1TB
- 16. Windows Azure Drive
• Provides a durable NTFS volume for Windows Azure
applications to use
– Use existing NTFS APIs to access a durable drive
• Durability and survival of data on application failover
– Enables migrating existing NTFS applications to the cloud
• A Windows Azure Drive is a Page Blob
– Example, mount Page Blob as X:
• http://<accountname>.blob.core.windows.net/<containername>/<blobname>
– All writes to drive are made durable to the Page Blob
• Drive made durable through standard Page Blob replication
• Drive persists even when not mounted as a Page Blob
- 17. Windows Azure Drive Capabilities
• A Windows Azure Drive is a Page Blob formatted as a
NTFS single volume Virtual Hard Drive (VHD)
– Drives can be up to 1TB
• A VM can dynamically mount up to 8 drives
• A Page Blob can only be mounted by one VM at a time
for read/write
• Remote Access via Page Blob
– Can upload the VHD to its Page Blob using the blob
interface, and then mount it as a Drive
– Can download the Drive through the Page Blob interface
- 18. Windows Azure Drive Client Interface
• Create Drive
– Create a Page Blob and format it as a NTFS single volume
VHD
• Mount Drive
– Acquire the lease on the NTFS formatted Page Blob and
mount it as a drive letter
• Page Blob lease is maintained as long as drive is mounted
• Unmount Drive
• Release the Page Blob lease and unmount drive letter
• Snapshot Drive
– Snapshot Blob
• Copy Drive
– Copy Blob
- 19. Storage Durability
1. Replicate within the same geo-location
2. Allow applications to choose geo-location
3. Geo-replicate data across geo-locations
– Maintain multiple copies of your data in 2 geo-
locations, within the same geo-region
(US, Europe, Asia)
- 22. SQL Azure Failover
• Data is spread out across 3 fault domains
– Connected directly to one at a time (primary node)
– No jumping between them, only full failover
• Secondary node gets promoted to a primary
• New secondary is created
• Guaranteed consistency between the three
• Not a load balancing solution
- 24. Resources
• Getting started
http://msdn.microsoft.com/en-us/windowsazure/ff796218.aspx
• Tools and SDK
http://www.microsoft.com/windowsazure/
• White paper on Azure Storage
http://go.microsoft.com/?linkid=9710117
• Download Windows Azure Training Kit
http://www.microsoft.com/downloads/details.aspx?FamilyID=413E88F8-5
966-4A83-B309-53B7B77EDF78&displaylang=en
Email: akoval@codereign.net
Blog: http://www.codemastersintl.com/Blogs/Alexander-Koval
Editor's Notes
- This session will cover both of the main storage options in Azure: WAS and SQL Azure
- There are 4 main components in WAS – table storage is and entity data store where all of your data is combined into entities that you describe and you partition them and co-locate them by partition keyBut it’s important know that the relationships between these entities should be maintained by the application itself. Blob storage is just that – storage for large binary objects – perfect for storing large files, such as videos and music. It is also partitioned but ina different way – by logical containers that you defineQueues are simple queues, do not provide you guaranteed delivery for example as MSMQ does, but do very good job in reliable messaging scenarios. It’s important to know queue messages are available to all of your instances and therefore application should either process and delete a message or return it to the queue (which is done automatically after configured timeout period).Drives are really an NTFS wrapper around page Blob which will be covered later.