这是我参与「第五届青训营」伴学笔记创作活动的第 12 天,今天对对象存储的概念以及存储的结构进行了简单的学习。
数据存储方式分类
单机存储: 文件系统、Key-Value存储
单机数据库: 关系型数据库、非关系型数据库
分布式数据库: 关系型数据库、非关系型数据库
分布式存储: 分布式文件系统、对象存储
| 存储备选 | 海量支持 | 适用数据类型 |
|---|---|---|
| 单机存储 | 不支持 | 单机文件/KV |
| 单机数据库 | 不支持 | 少量结构化数据 |
| 分布式数据库 | 支持 | 大量结构化数据 |
| 分布式存储 | 支持 | 视频/图片等 |
对象存储概念
什么是对象存储: 对象存储,也称为面向对象存储(Object-based Storage),是用来描述解决和处理离散单元的方法,这些离散单元被称作为对象。
对象存储的优点:
1、海量:支持大于EB的海量存储,对象的数量无限制
2、易用:使用Restful HTTP接口,开发简单;使用云原生技术;图片视频生态丰富
3、便宜:使用普通X86服务器;具有冷热数据分级存储能力,成本低
对象存储的结构
对象存储结构由 对象、对象存储设备、元数据服务器、客户端 四部分组成
对象(Object)
对象是系统中数据存储的基本单位,一个对象实际上就是文件的数据和一组属性信息的组合,每个对象是数据和数据属性集的综合体,数据属性可以根据应用的需求进行设置,包括数据分布、服务质量等。
对象存储设备(Object-Based Disk)
每个OSD都是一个智能设备,具有自己的存储介质、处理器、内存以及网络系统等,负责管理本地的Object,是对象存储系统的核心。OSD同块设备的不同不在于存储介质,而在于两者提供的访问接口。OSD的主要功能包括数据存储和安全访问。目前国际上通常采用刀片式结构实现对象存储设备。
OBD的主要功能有三个:数据存储、智能分布、对对象元数据进行管理
元数据服务器(Metadata Server)
MDS主要控制Client与OSD对象的交互,为客户端提供元数据,主要是文件的逻辑视图,包括文件与目录的组织关系、每个文件所对应的OSD等。主要提供对象存储访问以及文件目录访问管理
客户端(Client)
为了有效支持访问OSD上的对象,需要在计算节点实现对象存储系统的Client。
对象存储的适用场景
图片、视频、文本、安装包、备份
一些对象存储平台
一些大厂的对象存储平台: 华为云OBS,阿里云OSS,腾讯云COS,百度BOS,网易NOS
一些开源的对象存储平台: MinIO,LakeFS,Ceph,OpenIO