基于青训营的学习视频和一些资料,本文主要介绍了对象存储的一些基本概念、优势以及TOS对象存储的使用、特点等。
Num8
对象存储介绍
对象存储,也叫做基于对象的存储,是用来描述解决和处理离散单元的方法的通用术语,这些离散单元被称作为对象。
就像文件一样,对象包含数据,但是和文件不同的是,对象在一个层结构中不会再有层级结构。每个对象都在一个被称作存储池的扁平地址空间的同一级别里,一个对象不会属于另一个对象的下一级。
相对于存储局域网(SAN)和网络附加存储(NAS)网络存储架构,对象存储(Object-based Storage)是一种新的网络存储架构,基于对象存储技术的设备就是对象存储设备(Object-based Storage Device)简称 OSD。总体上来讲,对象存储综合了 NAS 和 SAN 的优点,同时具有 SAN 的高速直接访问和 NAS 的分布式数据共享等优势,提供了具有高性能、高可靠性、跨平台以及安全的数据共享的存储体系结构。
对象存储架构
核心是将数据通路(数据读或写)和控制通路(元数据)分离,并且基于对象存储设备构建存储系统,每个对象存储设备是智能的,能够自动管理其上的数据分布。对象存储结构由对象存储设备、元数据服务器、对象存储系统的客户端三部分组成。
对象存储优势
- 可伸缩性强:可以轻松横向扩容对象存储的扁平架构,而不会受到文件存储或块存储那样的限制。对象存储基本没有大小限制,因此只需添加新设备,即可将数据扩大到 EB 级。
- 复杂性低:对象存储没有文件夹或目录,也就不具有层次结构系统的大多数复杂性。由于没有复杂的树或分区,检索文件变得十分轻松,因为您不需要知道确切位置。
- 易于搜索:元数据是对象的一部分,使您无需借助单独的应用即可轻松搜索和导航。它也更加灵活,并且可以深度自定义。您可以使用各种特性和信息来为对象添加标记,例如用量、费用以及自动删除、保留和分层的政策。
- 具有弹性:对象存储可以自动复制数据并存储在多个设备和多个地理位置。这有助于防范服务中断和数据丢失,并可为灾难恢复策略提供支持。
- 成本效益高:对象存储在设计时考虑了成本因素,与基于文件和块的系统相比,能够以更低的价格存储大量数据。使用对象存储时,您只为需要的容量付费,即使存储大量数据,也能很好地控制费用。
对象存储的使用
申请bucket
对象存储很多云厂商都支持,本文重点介绍字节的 TOS 对象存储。
通过 http 请求即可操作 bucket,构建 bucket 名称,数据描述(数据类别、数据访问级别、保密级别等。用于系统审计),填写吞吐需求,最后提交。
- PUT(修改):参数:bucket,key,对象内容;返回:成功、失败
- GET(获取):参数:bucket,key;返回:对象内容
- HEAD:参数:bucket,key;返回:对象元信息
- DELETE:参数:bucket,key;返回:成功、失败
restful接口
使用 HTTP 协议的 PUT、GET、HEAD、DELETE 方法。
MultiUpload接口
防止大对象上传失败:将大对象分为小对象,标上uploadID,然后分开上传。
- InitUpload:参数:bucket,key;返回:uploadId
- UploadPart:参数:uploadId,partId,part内容;返回:成功、失败
- CompleteUpload:参数:uploadId,partId Array;返回:成功、失败
Listprefix接口(分页查询)
提供分页功能
- ListPrefix参数:
- prefix: key前缀
- delimiter:分隔符,默认为/
- max-keys :本次分页数量
- start-after: 分页起始对象
- KeyListPrefix返回:
- common-prefix:共同前缀
- objects: 对象 key 列表
- isTruncated:是否已经列举完
TOS对象存储的特点
三层架构
元信息层<<(写入/读取对象元信息)<<接入层>>(写入/读取对象内容)>>存储引擎层
- 接入层:接入解析并处理接口请求,解析 HTTP、安全校验等。
- 元信息层:存储对象元信息。
- 存储引擎层:存储对象内容。
总结业务场景
经典业务场景分为容量型和 QPS 型。
- 容量型:代表业务包括片源存储、转码视频存储。特点为大容量、大吞吐、高耐久度。挑战包括可拓展性(容量、吞吐扩展)、成本(要存很多数据,因此需要单价低)、持久度。
- QPS 型:代表业务包括审核抽帧存储。特点为 QPS 极高。挑战为 QPS 的可扩展性。
问题解决
可拓展性:分布式存储
持久度:备份,多机架/多机房/多地区
成本降低
EC(Erasure Coding)冗余编码,用更少的空间达到多副本一样的持久度。
冷热转换:将热点存在快而小的存储介质中,冷数据存于大而慢的磁盘中。
高可用
集群拆分,降低爆炸半径(机房故障后,不可用机器的占比)。增量双向同步(所有机器记录增量,把增量更改传给其它机器)。
小结
对象存储提供了具有高性能、高可靠性、跨平台以及安全的数据共享的存储体系结构,希望大家看完有所收获。