As I recently started mingling around with Windows Azure
, I've came up to a situation where, which one to go for between the Block Blob
& Page Blob
. I'm currently in progress of uploading some text, csv or dat files to a blob storage and then do a MapReduce
program for it using my C# program. Yes I've gone through some articles such as article1, article2.
But couldn't get a clear idea from them. To cut short, Block Blob vs Page Blob
. Any help would be appreciated.
The differences are very-well documented on msdn, here. TL;DR:
- Block blobs are for your discrete storage objects like jpg's, log files, etc. that you'd typically view as a file in your local OS. Max. size
200GB4.77TB. Regular (non-Premium) storage only. - Page blobs are for random read/write storage, such as VHD's (in fact, page blobs are what's used for Azure Virtual Machine disks). Max. size 8TB. Supported by both regular and Premium Storage.
Note: Premium page blobs have specific sizings (unlike regular page blobs, which can be any size up to 8TB).
- 32GB
- 64GB
- 128GB
- 512GB
- 1024GB
- 2048GB
- 4096GB
Premium storage provides guaranteed IOPS and throughput, depending on the page blob size chosen (from 120 IOPS+25MB/s @ 32GB to 7500 IOPS+250MB/s @ 2048GB & 4096GB). Specific details around IOPS+throughput details are documented here.
Davids answer points out the differences between page and block blobs. However there are also Append Blobs. In short:
- Block Blobs: For large objects that doesn't use random read and write operations. e. g. Pictures
- Page Blobs: Optimized for random read and write operations. e. g. VHD
- Append Blobs: Optimized for append operations. e. g. Logs
Block blobs let you upload large blobs efficiently. Block blobs are comprised of blocks, each of which is identified by a block ID. You create or modify a block blob by writing a set of blocks and committing them by their block IDs. Each block can be a different size, up to a maximum of 100 MB (4 MB for requests using REST versions before 2016-05-31), and a block blob can include up to 50,000 blocks. The maximum size of a block blob is therefore slightly more than 4.75 TB (100 MB X 50,000 blocks). For REST versions before 2016-05-31, the maximum size of a block blob is a little more than 195 GB (4 MB X 50,000 blocks).
Page blobs are a collection of 512-byte pages optimized for random read and write operations. To create a page blob, you initialize the page blob and specify the maximum size the page blob will grow. To add or update the contents of a page blob, you write a page or pages by specifying an offset and a range that align to 512-byte page boundaries. A write to a page blob can overwrite just one page, some pages, or up to 4 MB of the page blob. Writes to page blobs happen in-place and are immediately committed to the blob. The maximum size for a page blob is 1 TB.
Block blobs
Block blobs are used to hold text or binary files up to ~5 TB (50,000 blocks of 100 MB) in size. The primary use case for block blobs is the storage of files that are read from beginning to end, such as media files or image files for websites. They are named block blobs
because files larger than 100 MB must be uploaded as small blocks, which are then consolidated (or committed) into the final blob.
Page blobs
Page blobs are used to hold random-access files up to 8 TB in size. Page blobs are used primarily as the backing storage for the VHDs used to provide durable disks for Azure Virtual Machines (Azure VMs). They are named page blobs
because they provide random read/write access to 512-byte pages.
Append blobs
Append blobs are made up of blocks like block blobs, but they are optimized for append operations. These are frequently used for logging information from one or more sources into the same blob. For example, you might write all of your trace logging to the same append blob for an application running on multiple VMs. A single append blob can be up to 195 GB
From Microsoft Block blobs include features that help you manage large files over networks. With a block blob, you can upload multiple blocks in parallel to decrease upload time. Each block can include an MD5 hash to verify the transfer, so you can track upload progress and re-send blocks as needed.
When to use
Azure Files Provides an SMB interface, client libraries, and a REST interface that allows access from anywhere to stored files. You want to "lift and shift" an application to the cloud which already uses the native file system APIs to share data between it and other applications running in Azure.
Azure Blobs Provides client libraries and a REST interface that allows unstructured data to be stored and accessed at a massive scale in block blobs.
Azure Disks Provides client libraries and a REST interface that allows data to be persistently stored and accessed from an attached virtual hard disk. You want to lift and shift applications that use native file system APIs to read and write data to persistent disks.
来源:https://stackoverflow.com/questions/29079268/differences-between-azure-block-blob-and-page-blob