Azure Block Blob和Page Blob之间的差异?

时间:2015-03-16 14:25:44

标签: azure azure-storage azure-storage-blobs hdinsight

当我最近开始与Windows Azure混在一起的时候,我已经找到了这样一种情况:Block Blob& Page Blob。我目前正在将一些text,csv或dat文件上传到blob存储,然后使用我的C#程序为它执行MapReduce程序。是的,我已经阅读了一些文章,例如article1article2

但无法从他们那里得到一个清晰的想法。缩短,Block Blob vs Page Blob。任何帮助将不胜感激。

6 个答案:

答案 0 :(得分:79)

这些差异在msdn,here上有很好的记录。 TL; DR:

  • 阻止 blob用于您的离散存储对象,例如jpg,日志文件等,您通常将其视为本地操作系统中的文件。最大。尺寸 200GB 4.77TB。仅定期(非高级)存储。
  • Page blob用于随机读/写存储,例如VHD(实际上,页面blob是用于Azure虚拟机磁盘的内容)。最大。尺寸8TB。由常规存储和高级存储支持。

注意:高级页面blob具有特定的大小(与常规页面blob不同,可以是任何大小,最高可达8TB)。

  • 32GB
  • 64GB
  • 128GB
  • 512GB
  • 1024GB
  • 2048GB
  • 4096GB

高级存储提供有保证的IOPS和吞吐量,具体取决于所选的页面blob大小(从120 IOPS + 25MB / s @ 32GB到7500 IOPS + 250MB / s @ 2048GB和4096GB)。有关IOPS +吞吐量详细信息的具体详细信息,请记录here

答案 1 :(得分:12)

Davids answer指出了页面和块blob之间的差异。但是也有附加Blob 。简而言之:

  • 阻止Blob :对于的大型对象,使用随机读写操作。即G。图片
  • 页面Blob :针对随机读写操作进行了优化。即G。 VHD
  • 附加Blob :针对追加操作进行了优化。即G。日志

答案 2 :(得分:9)

阻止blob可以让你有效地上传大blob。块blob由块组成,每个块由块ID标识。您可以通过编写一组块并按块ID提交块来创建或修改块blob。每个块可以是不同的大小,最大为100 MB(2016-05-31之前使用REST版本的请求为4 MB),块blob最多可包含50,000个块。因此,块blob的最大大小略大于4.75 TB(100 MB X 50,000块)。对于2016-05-31之前的REST版本,块blob的最大大小略大于195 GB(4 MB X 50,000块)。

Page blobs是一组512字节页面,针对随机读写操作进行了优化。要创建页面blob,请初始化页面blob并指定页面blob将增长的最大大小。要添加或更新页面blob的内容,可以通过指定偏移量和与512字节页边界对齐的范围来编写一个或多个页面。对页面blob的写入只能覆盖一个页面,一些页面或最多4 MB的页面blob。写入页面blob就地发生并立即提交到blob。页面blob的最大大小为1 TB。

参考:https://docs.microsoft.com/en-us/rest/api/storageservices/fileservices/Understanding-Block-Blobs--Append-Blobs--and-Page-Blobs

答案 3 :(得分:5)

块Blob 块Blob用于保存大小约为〜5 TB(50,000个100 MB块)的文本或二进制文件。块Blob的主要用例是存储从头到尾读取的文件,例如网站的媒体文件或图像文件。之所以将它们命名为block blobs,是因为必须将大于100 MB的文件作为小块上传,然后将其合并(或提交)到最终的blob中。

页面Blob
页面Blob用于保存最大8 TB大小的随机访问文件。页面Blob主要用作VHD的后备存储,用于为Azure虚拟机(Azure VM)提供持久磁盘。它们之所以命名为page blobs,是因为它们提供了对512字节页面的随机读/写访问权限。

附加Blob
附加blob由类似于块blob的块组成,但已针对附加操作进行了优化。这些通常用于将来自一个或多个源的信息记录到同一个Blob中。例如,对于在多个VM上运行的应用程序,您可能会将所有跟踪日志记录都写入相同的append Blob。单个附加Blob最多可容纳195 GB

参考: 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

答案 4 :(得分:2)

从我的角度来看,另一个答案是

块Blob

  • 由阻止列表定义
  • 主要用于存储“对象”
  • 5万个最大100 MB的块= 4.75 TB
  • 大多数对象存储方案文档,图像,视频等

附加Blob

  • 为Azure Data Lakes添加了
  • 一次操作最多可添加4 MB的块
  • 使用量显着增加-云记录,物联网数据,分布式系统同步等

页面Blob

  • 针对随机读写操作进行了优化的512字节页面的集合
  • 页面对齐的随机读写IaaS磁盘,事件中心,块级备份

答案 5 :(得分:0)

来自Microsoft 块Blob 包含有助于您通过网络管理大型文件的功能。使用块Blob,您可以并行上传多个块,以减少上传时间。每个区块都可以包含MD5哈希值以验证传输,因此您可以跟踪上传进度并根据需要重新发送区块。

何时使用

Azure文件提供一个SMB接口,客户端库和一个REST接口,该接口允许从任何位置访问存储的文件。您想将一个应用程序“举升并转移”到云中,而该云已经使用本机文件系统API在它和Azure中运行的其他应用程序之间共享数据。

Azure Blob提供客户端库和REST接口,允许在块Blob中大规模存储和访问非结构化数据。

Azure磁盘提供客户端库和REST接口,该接口允许持久地存储数据并从连接的虚拟硬盘访问数据。您想提升和转移使用本机文件系统API来将数据读写到永久磁盘的应用程序。