杉岩:浅谈对象存储和块存储区别
什么是块存储
数据被存储在固定大小的块内。块内只存储数据本身;Address就是块唯一的识别信息;对于块存储,没有metadata. 当应用和数据都在本地的时候,性能会比较好;当应用和数据在地理位置上分离较远的时候,性能会较差。
适用场景:
块存储适合用于事务型数据库,可用于大部分通用业务场景下的数据存储
什么是对象存储
可以理解是一个海量的存储空间,最适合存储互联网上产生
的图片、短视频、音频等海量非结构化数据,您可以通过 API 在任何时间、任何地点访问对象存储里的数据。
每个对象包括3个部分:
- 数据本身
- 可定制化的metadata,其类型和数量也没有限制,包括“数据是什么”的上下文信息、用途、安全信息、等等。
- 全局唯一标识符
对象存储特点:
1.易于扩展:所有对象都是平级的,没有等级关系;对象的数目没有限制
2.易于分类和搜索:因为metadata tags,所以对象是自描述的
对象存储的缺点:
对象存储是最终一致性的(块存储是强一致性的),因此,对象存储不能保证一次读请求返回的是最新版本的数据。(注:似乎Ceph是强一致性的,这里还有待再研究一下)
适用场景(杉岩海量对象存储MOS亦在如下场景应用广泛):
标准类型:移动应用 | 大型网站 | 图片分享 | 热点音视频 |
低频访问类型: 移动设备 | 应用与企业数据备份 | 监控数据 | 网盘应用
归档类型:各种长期保存的档案数据 | 医疗影像 | 影视素材
块存储与对象存储的差异
另外,操作系统可以直接将块存储作为挂载的卷进行访问,而对象存储则无法在不显著降低性能的情况下进行访问。 因为块存储(例如重新映射卷)的存储管理开销很小,而对象存储的存储管理开销较大。