Differences between Azure Block Blob and Page Blob?
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.
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
Ref: https://docs.microsoft.com/en-us/rest/api/storageservices/fileservices/Understanding-Block-Blobs--Append-Blobs--and-Page-Blobs
https://docs.microsoft.com/en-us/learn/modules/connect-an-app-to-azure-storage/2-explore-azure-storage
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.
Ref: https://docs.microsoft.com/en-us/rest/api/storageservices/fileservices/Understanding-Block-Blobs--Append-Blobs--and-Page-Blobs
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
Further reading: Understanding block blobs, append blobs, and page blobs