技术疑问:Azure Block Blobs属于block storage、object storage还是两者兼具?
块存储与对象存储是否互斥?Azure Block Blobs属于哪类?
我原本认为块存储(block storage)与对象存储(object storage)是两种完全不同且互斥的存储类型,但Azure的“Block Blobs”命名却让人感觉它同时属于这两类。
核心问题:块存储与对象存储真的是互斥的吗?还是二者并不互斥,Azure Block Blobs确实同时属于块存储和对象存储?
已有认知
- 我知道BLOB中的“ob”代表“object”,Azure Blob Storage大致对应AWS的S3对象存储服务;Azure Disk Storage大致对应AWS的EBS(弹性块存储),因为二者都提供虚拟磁盘;Azure Files则大致对应AWS的EFS(弹性文件系统)。这部分对应关系是清晰的——AWS的S3、EBS、EFS是独立服务,Azure的Blob Storage、Disk Storage、Files则是存储账户下的独立子组件。
- AWS将对象存储与块存储拆分为独立服务(S3和EBS),加上网上大量“object storage vs block storage”的对比内容和课程,让我一直认为这两类存储是截然不同、互斥的。但Azure在术语使用上的差异(比如Block Blobs),让我产生了困惑。
- 我找过两个相关的技术问题,第一个只讲了Block Blob和Page Blob的区别,没解答我的疑问;第二个问题似乎暗示,块存储和对象存储可能是不同层级的概念——块存储是更通用的上层概念,对象存储是它的特定子类型或实现方式。我还试着用动物类比(虽然不太恰当):比如块存储像“马科动物”,对象存储像“马”或“斑马”这类具体物种;或者反过来,对象存储是“斑马”,块存储既可以指“马”这个物种,也能指代整个马科?“磁盘设备上的块存储”可能就对应“马”这个具体物种?
解答
结论先行
块存储和对象存储并非互斥,它们是从不同维度定义的存储概念——Azure Block Blobs本质上属于对象存储,但它的底层实现采用了块化的存储方式,这也是其名称中“Block”的由来。
具体解释
维度差异:访问方式 vs 存储架构
- 对象存储是从数据访问和管理方式定义的:以“对象”为基本单元,每个对象包含数据、元数据和唯一标识符,通过REST API等方式访问,不依赖文件系统层级结构,适合海量非结构化数据存储。Azure Blob Storage(包括Block Blobs)完全符合这个定义,属于对象存储范畴。
- 块存储是从底层存储架构定义的:将数据分割成固定大小的“块”进行存储和管理,块可以独立读写。这种架构既可以用于传统的块设备(比如Azure Disk Storage、AWS EBS,直接给虚拟机提供虚拟磁盘),也可以作为对象存储的底层实现方式——比如Azure Block Blobs就是把对象拆分成最大100MB的块(最终合并成一个完整对象),这种设计能提升大对象的上传/下载效率、支持断点续传。
AWS与Azure的术语差异
AWS把“块存储”的概念绑定到了可挂载的虚拟磁盘服务(EBS),而把对象存储单独作为S3服务,这让很多人误以为两者是互斥的类别。但Azure的命名更直白:- Azure Disk Storage是传统意义上的“块存储服务”——提供可挂载的虚拟块设备;
- Azure Block Blobs是采用块化实现的对象存储,它的“Block”描述的是底层存储的技术细节,而非服务的类别。
修正你的类比:
更准确的类比应该是:块存储是“用积木(块)搭建东西的方式”,对象存储是“搭建出来的雕塑(对象)”——你可以用积木搭建雕塑,也可以用积木搭建房子(对应传统块设备)。二者不是上下级或互斥关系,而是“实现方式”和“产品形态”的关系。
内容的提问来源于stack exchange,提问作者hasManyStupidQuestions
相关产品推荐
相关产品推荐

