对象存储是什么东东?是不是像养鱼一样,把很多鱼儿存储在一个鱼塘,开启海王模式?


醒醒,你个007的运维连一个对象都没有,还养鱼!长得挺丑,想的倒挺美!

我连对象都搞不到,你让我搞对象存储?_java


我连对象都搞不到,你让我搞对象存储?_java_02

我连对象都搞不到,你让我搞对象存储?_java_03

身为运维汪呢,尽管x生活没有,但是梦想还是要有的。也许对象存储搞着搞着,对象就有了呢!


对象存储可是云计算时代存储技术的新网红。英文是 Object-based Storage,也称为“面向对象的存储”。现在很多云厂商,也直接称之为“云存储”。不同的云厂商都喜欢给对象存储起不同的英文缩写名,例如阿里云叫做 OSS,腾讯云叫 COS,华为云叫 OBS,百度叫 BOS,网易叫 NOS,七牛叫 Kodo……五花八门,反正都是一个技术。


大家都知道DAS和SAN是基于物理块的存储方式,在 DAS 和 SAN 中,存储资源直接挂载在主机上就像一块一块的硬盘,称其为块存储。


而NAS是基于文件的存储方式,在 NAS 中,呈现出来的是一个基于文件系统的目录架构,有目录、子目录、孙目录、文件,称其为文件存储。



我连对象都搞不到,你让我搞对象存储?_java_04



1


文件存储


我连对象都搞不到,你让我搞对象存储?_java_03

文件存储的最大特点,就是所有存储资源都是多级路径方式进行访问的。例如:在互联网迭代极快的今天,数据存储需求呈现出两个重要风向指标。


1.数据量呈几何倍增长。社交媒体的崛起和内容的多样化发展,使照片、音乐、视频数据量爆发式增长。同时企业数字化发展,数据库容量需求不断增加,存储资源越发重要。


2.非结构化数据的占比显著增加。不能用二维表格呈现的逻辑表达数据,比如视频、图像、音频、word文章、演示胶片这样的数据,就是非结构化数据。DAS、SAN和NAS存储已经无法对几何倍增长的非结构化数据进行有效的应对和处理了。于是,对象存储横空出世。

我连对象都搞不到,你让我搞对象存储?_java

1


对象存储


我连对象都搞不到,你让我搞对象存储?_java_03

虽然对象存储顶着新网红的名号,但实际上它是实打实的九零后。在1996年,美国卡内基梅隆大学就将对象存储作为一个研究项目提出来。随后几年,对象存储作为一项云存储服务被正式引入云计算领域,从此开启了对象存储的黄金时期。

我连对象都搞不到,你让我搞对象存储?_java

1


区别在哪


我连对象都搞不到,你让我搞对象存储?_java_03

唠叨了半天对象存储的前世今生,我们知道了对象存储就是一种存储技术。那么对象存储和块存储、文件存储有什么不一样?


我连对象都搞不到,你让我搞对象存储?_java_10


俗话说实践是检验真理的唯一标准,我们就从实际使用体验上进行对比。


对象存储依然是以硬盘为载体的底层硬件介质,和块存储、文件存储一样。


而对象存储架构在底层硬件之上的系统,和两者完全不同。


不同的软件,带来了完全不同的使用体验:块存储,操作对象是磁盘。存储协议是SCSI、iSCSI、FC。


以SCSI为例, Read/Write/Read Capacity/Inquiry等为其主要的接口命令。


文件和文件夹是文件存储的操作对象。存储协议是 NFS、SAMBA(SMB)、POSIX等。


以 NFS(大家应该都用过“网上邻居”共享文件吧?就是那个)为例,文件相关的接口命令包括:READ/WRITE/CREATE/REMOVE/RENAME/LOOKUP/ACCESS 等等,文件夹相关的接口命令包括:MKDIR/RMDIR/READDIR 等等。


对象存储的存储协议是S3、Swift等。


以 S3 为例,主要接口命令有PUT/GET/DELETE 等。


非常简洁的接口命令,没有那种目录树的概念。


用过百度网盘或ftp服务的都懂,在系统里不能直接打开/修改文件,只能先下载、修改,再上传文件,在对象存储系统里也是熟悉的配方,一样的操作。


我连对象都搞不到,你让我搞对象存储?_java_11

我连对象都搞不到,你让我搞对象存储?_java


而且对象存储的优点多多

简单总结如下:




容量无限大


我连对象都搞不到,你让我搞对象存储?_java_03

对象存储空间大小支持弹性伸缩,不需要进行数据迁移和人工干预。所以可以根据自身需求购买相应大小的对象存储空间。而且对象存储的所有业务、存储节点采用分布式集群方式工作,各功能节点、集群都可以独立扩容。也就是说,某个对象存储系统或单个桶(bucket),并没有总数据容量和对象数量的限制。


因此只要你有足够的银子,想要多大的空间,服务商就可以给你加多大。一句话,有钱,任性。


我连对象都搞不到,你让我搞对象存储?_java



数据安全可靠


我连对象都搞不到,你让我搞对象存储?_java_03

对象存储采用了分布式架构,对数据进行多设备冗余存储(至少三个以上节点),实现异地容灾和资源隔离。


数据访问方面,所有的桶和对象都有ACL等访问控制策略,所有的连接都支持SSL加密,OBS系统会对访问用户进行身份鉴权。即使有硬盘被偷了,也无法还原出完整的对象数据,因为数据是分片存储在不同硬盘上的。


我连对象都搞不到,你让我搞对象存储?_java



使用方便


我连对象都搞不到,你让我搞对象存储?_java_03

对象存储需求用户,并不是个人买来当网盘用,而是企业或政府用户用于系统数据存储。例如企业系统的归档数据,网站、App的静态图片、音频、视频等。


对象存储提供开放的REST API接口。程序员在开发应用时,直接把存储参数写进代码,就可以通过API接口调用对象存储里的数据。相比文件存储那一串串的路径,对象存储要方便很多。