最近我开始接触 Windows Azure
,但我遇到了一个问题,就是在 Block Blob
和 Page Blob
中该如何选择。目前我正在将一些文本、csv或dat文件上传到 blob 存储中,并使用我的 C# 程序进行 MapReduce
处理。我已经阅读了一篇文章,但是没有得到清晰的想法。简而言之,就是 Block Blob vs Page Blob
,希望能获得帮助。
最近我开始接触 Windows Azure
,但我遇到了一个问题,就是在 Block Blob
和 Page Blob
中该如何选择。目前我正在将一些文本、csv或dat文件上传到 blob 存储中,并使用我的 C# 程序进行 MapReduce
处理。我已经阅读了一篇文章,但是没有得到清晰的想法。简而言之,就是 Block Blob vs Page Blob
,希望能获得帮助。
请注意:高级页 Blob 具有特定的大小(与可达8TB的普通页 Blob 不同)。
高级存储提供保证的 IOPS 和吞吐量,取决于所选择的页 Blob 大小(从 120 IOPS + 25MB/s @ 32GB 到 7500 IOPS + 250MB/s @ 2048GB & 4096GB)。有关 IOPS+throughput 详细信息,请参见 此处。
David的回答指出了页面(Page)和块(Block)Blob之间的区别。但是还有追加(Append)Blob。简而言之:
块 Blob
块 Blob 被用于存储大小不超过 ~5TB(100MB 的 50,000 个块)的文本或二进制文件。块 Blob 的主要用途是存储从头到尾读取的文件,例如媒体文件或网站图像文件。它们被命名为 块 Blob
,因为大于 100MB 的文件必须作为小块上传,然后合并(或提交)到最终的 Blob。
页 Blob
页 Blob 用于存储大小不超过 8TB 的随机访问文件。页面 Blob 主要用于 Azure 虚拟机(Azure VM)提供持久磁盘所使用的 VHD 的后备存储。它们被命名为 页 Blob
,因为它们提供对 512 字节页面的随机读写访问。
追加 Blob
追加 Blob 由块组成,类似于块 Blob,但它们针对追加操作进行了优化。这些经常用于将来自一个或多个源的日志信息写入同一 Blob 中。例如,您可能会将所有跟踪日志写入同一追加 Blob 中,以用于在多个 VM 上运行的应用程序。单个追加 Blob 最大可达 195 GB。
参考:
了解块 Blob、附加 Blob 和页 Blob块Blob可让您高效地上传大型Blob。块Blob由一些块组成,每个块都有一个块ID。通过写入一组块并按其块ID提交它们来创建或修改块Blob。每个块可以是不同的大小,最大为100MB(对于使用2016-05-31之前的REST版本的请求为4MB),块Blob最多可以包含50000个块。因此,块Blob的最大大小略大于4.75TB(100MB X 50000块)。对于2016-05-31之前的REST版本,块Blob的最大大小略大于195GB(4MB X 50000块)。
页Blob是一组针对随机读写操作进行优化的512字节页面。要创建页Blob,您需要初始化页面Blob并指定页面Blob将增长到的最大大小。要添加或更新页面Blob的内容,您需要按照与512字节页面边界对齐的偏移量和范围编写页面或页面。页面Blob的写入可以覆盖一个页面、一些页面或最多4MB的页面Blob。页面Blob的写入发生在原地,并立即提交到Blob。页面Blob的最大大小为1TB。
在我看来,另一个答案是:
块 Blob
追加 Blob
页 Blob
来自微软的消息
块 Blob 包含有助于在网络上管理大型文件的功能。使用块 Blob,您可以并行上传多个块以减少上传时间。每个块可以包括 MD5 哈希以验证传输,因此您可以跟踪上传进度并根据需要重新发送块。
何时使用
Azure 文件提供了 SMB 接口、客户端库和 REST 接口,允许从任何地方访问存储的文件。如果您想要将已经使用本机文件系统 API 在 Azure 中与其他应用程序共享数据的应用程序“搬迁”到云中,则可以使用它。
Azure Blob 提供客户端库和 REST 接口,可以在块 Blob 中存储和访问非结构化数据。
Azure Disks 提供客户端库和 REST 接口,可允许从附加的虚拟硬盘中持久性地存储和访问数据。如果您想要将使用本机文件系统 API 从持久性磁盘读取和写入数据的应用程序“搬迁”到云中,则可以使用它。