1 序言
从文件存储开始,我们开始定义信息的存储:
人们对存储的认知,大多都是从文件开始的。文件保存了信息,可进行随机读改,文件按目录进行组织,等等。
存储系统的升级、进化过程:随着信息化世界的开始,高价值数据量高速增长,对数据存储系统的需求也不断变化,推动了存储系统的不断进化。
不同场景下的分布式架构存储系统:进入互联网、AI时代后,数据量增长速度远远大于硬件能力增长速度,分布式架构取代集中架构就成了必然,适用于不同场景的大量分布式架构的存储系统如雨后春笋一般涌现出来。
总体上,存储系统的进化是由下面几个因素决定的:
衡量一个存储系统的好坏,也要从以下几个方面出发:
2 对象存储的简介
对象存储
简而言之就是基于key/value的存储。逻辑上,对象存储可看作是一个无穷大的key/value表。
很多同学都熟悉基于kv的缓存,比如redis和memcache。当kv能完善的进行持久化,就具备了对象存储的雏形。
基于kv的数据库,也是一种对象存储,只是存储容量有限,限定用于存储元数据。
一般意义上的对象存储,是存储数据的存储系统,具有容量和性能的良好的横向扩展能力,适用于存储大量的非结构化数据。
对象存储产生的原因,是为了应对大量非结构化数据的存储需求 - 这些数据量太大了,使用传统存储成本太高,规模极大扩展导致的管理和使用复杂性也大大增加。因此急需一种部署、管理、使用简单的,易于横向扩展的,适用非结构化数据的,低成本的存储系统,这就是对象存储。
相应的,对象存储的主要目的,就是简单、低成本的存取和管理大量的非结构化数据。当对象存储和云存储需求结合后,对象存储被赋予了云端数据生命全周期管理的使命。
以上就是对象存储的由来和发展方向。
3 对象存储的特点和优点
简单易用,适用范围广
标准Restful API(和基于API封装的SDK)方式访问,不依赖OS/平台,随时随地访问数据(无论是虚拟机、容器、嵌入式系统,只要有网络就可以访问)
数据组织扁平简单,本质上就是通过key去访问(value,attribute)。在此基础上,支持根据key读写val****ue、根据key范围scan出attribute等能力。数据管理能力简洁而强大,在数据量大的情况下,元数据管理性能远超文件系统。
天然云存储
1)AWS S3是被最广泛兼容的对象存储接口协议,是对象存储接口协议的实践上的通用标准。S3是为支持云存储而定义的,天然支持云原生。
2)多租户数据生命周期全程云端管理(授权;访问控制;压缩;加密;标签;日志审计;法规依从;WORM;数据配额;Qos;多版本;分层;远程复制;…)。
3)容器通过S3即时访问对象存储,无需挂载。
4)扩展性好,存储空间和性能按需(声明式 API)弹性供给,供给量上限极大。
5)故障容忍和自愈。
6)自动化运维。
低成本
数据只读,不可修改,在此前提下可优化存储系统,降低成本。
部署、管理简单,维护成本低。
4 对象存储的限制
适用数据类型范围限制
适用数据类型为非结构化数据,不适用需要随机修改的结构化数据。
访问接口的兼容性
只能通过Restful接口访问,不兼容Posix/Nas,多数老的应用如果要适用对象存储,必须通过Posix/Nas网关。
性能限制
访问延迟高(云存储软件栈,协议层和存储层分离等原因导致)。
对象存储的应用和优缺点,必须结合使用场景来阐述。本栏共分为四期,本期主要是对“对象存储”的介绍,下一期我们将介绍“对象存储的使用场景”,敬请期待。