对象存储,为什么那么火?

作者|小枣君 

来源|鲜枣课堂

引言

上期文章(链接:关于存储技术的最强入门科普),小枣君给大家详细介绍了数据存储技术的基本知识,其中重点对DAS、SAN和NAS技术进行了对比分析。

我们知道,在很长的一段时间里,这三种架构几乎统治了数据存储市场。所有行业用户的数据存储需求,都是在这三者中进行选择。

然而,随着时代的发展,一种新的数据存储形态诞生,开始挑战前面三者的垄断地位。

没错,它就是云计算时代存储技术的新网红——对象存储。

哈哈,也许搞着搞着,对象就有了呢!

对象存储,也称为“面向对象的存储”,英文是Object-based Storage。现在很多云厂商,也直接称之为“云存储”。

不同的云厂商对它有不同的英文缩写命名。例如阿里云把自家的对象存储服务叫做OSS,华为云叫OBS,腾讯云叫COS,七牛叫Kodo,百度叫BOS,网易叫NOS……五花八门,反正都是一个技术。

之前小枣君介绍过,DAS和SAN是基于物理块的存储方式,而NAS是基于文件的存储方式。

在DAS和SAN中,存储资源就像一块一块的硬盘,直接挂载在主机上,我们称之为块存储。

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

文件存储的最大特点,就是所有存储资源都是多级路径方式进行访问的。例如:

C:\Program Files (x86)\Tencent\WeChat\WeChat.exe

\\NJUST-Server\学习资料\通信原理\第一章作业.doc

20世纪末,随着互联网的爆发,数据存储需求发生了两个重大的变化。

第一,就是数据量爆炸式增长。

原因我就不用说了吧?大家可以瞅瞅自己的硬盘,都藏了些什么。

Web应用的崛起、社交需求的刺激,极大地推动了多媒体内容的创作和分享。人们开始上传大量的照片、音乐、视频,加剧了数据量的爆发。

此外,信息技术的发展、企业数字化的落地,也产生了大量的数据,不断吞食着存储资源。

第二,是非结构化数据的占比显著增加。

什么是非结构化数据?

举个例子大家就明白了。我们经常做的excel表格,姓名、身高、体重、年龄、性别,这种用二维表结构可以进行逻辑表达的数据,就是结构化数据。

结构化数据

而图像、音频、视频、word文章、演示胶片这样的数据,就是非结构化数据。

根据此前的预测,到2020年(也就是今年),全球数据总量的80%,将是非结构化数据。

面对这两大趋势,因为本身技术和架构的限制,DAS、SAN和NAS无法进行有效应对。

于是,专家们就搞出了对象存储。

虽然我们说对象存储是新网红,但实际上它诞生的时间并不算短。早在1996年,美国卡内基梅隆大学就将对象存储作为一个研究项目提出来。随后,加州大学伯克利分校也有推出类似的项目。

2002年,Filepool公司推出了基于内容可寻址技术的Centera系统,算是比较早期的对象存储系统。

2006年,美国Amazon公司发布AWS S3(Simple Storage Service)服务,正式将对象存储作为一项云存储服务,引入云计算领域,从此开启了对象存储的黄金时代。

S3几乎成为对象存储的事实标准

各厂家基本上都会兼容S3

对象存储、块存储、文件存储的区别

说了半天,对象存储到底是一个什么样的技术?它和块存储、文件存储有什么区别?

首先,第一点,千万不要去看百度百科上面“对象存储”的定义,否则,你可能会怀疑人生。

想要了解对象存储,最简单直接的办法,就是从实际使用体验上进行对比。

对象存储的底层硬件介质,依然是硬盘,和块存储、文件存储没有区别。

而对象存储架构在底层硬件之上的系统,和两者完全不同。(下文会详细介绍系统架构)

不同的软件,带来了完全不同的使用体验:

块存储,操作对象是磁盘。存储协议是SCSI、iSCSI、FC。

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

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

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

对象存储,主要操作对象是对象(Object)。存储协议是S3、Swift等。

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

看出来了吧?接口命令非常简洁,没有那种目录树的概念。

在对象存储系统里,你不能直接打开/修改文件,只能先下载、修改,再上传文件。(如果大家用过百度网盘或ftp服务,一定可以秒懂。)

对象存储中的数据组成

对象存储呈现出来的是一个“桶”(bucket),你可以往“桶”里面放“对象(Object)”。这个对象包括三个部分:Key、Data、Metadata。

Key

可以理解文件名,是该对象的全局唯一标识符(UID)。

Key是用于检索对象,服务器和用户不需要知道数据的物理地址,也能通过它找到对象。这种方法极大地简化了数据存储。

下面这行,就是一个对象的地址范例:

看上去就是一个URL网址。如果该对象被设置为“公开”,所有互联网用户都可以通过这个地址访问它。

Data

也就是用户数据本体。这个不用解释了。

Metadata

Metadata叫做元数据,它是对象存储一个非常独特的概念。

元数据有点类似数据的标签,标签的条目类型和数量是没有限制的,可以是对象的各种描述信息。

举个例子,如果对象是一张人物照片,那么元数据可以是姓名、性别、国籍、年龄、拍摄地点、拍摄时间等。

元数据可以有很多

在传统的文件存储里,这类信息属于文件本身,和文件一起封装存储。而对象存储中,元数据是独立出来的,并不在数据内部封装。

元数据的好处非常明显,可以大大加快对象的排序,还有分类和查找。

对象存储的架构

对象存储的架构是怎样的呢?如下图所示,分为3个主要部分:

对象存储的简单架构示意图

OSD对象存储设备

这是对象存储的核心,具有自己的CPU、内存、网络和磁盘系统。它的主要功能当然是存储数据。同时,它还会利用自己的算力,优化数据分布,并且支持数据预读取,提升磁盘性能。

MDS元数据服务器

它控制Client和OSD的交互,还会管理着限额控制、目录和文件的创建与删除,以及访问控制权限。

Client客户端

提供文件系统接口,方便外部访问。

根据上面的架构可以看出,对象存储系统可以是一个提供海量存储服务的分布式架构。

对象存储的优点

对象存储的优点很多,简单归纳如下:

容量无限大

对象存储的容量是EB级以上。EB有多大?大家的硬盘普遍是TB级别。1EB约等于1TB的一百万倍,请自行脑补...

对象存储的所有业务、存储节点采用分布式集群方式工作,各功能节点、集群都可以独立扩容。从理论上来说,某个对象存储系统或单个桶(bucket),并没有总数据容量和对象数量的限制。

换句话说,只要你有足够的money,服务商就可以不停地往架构里增加资源,这个存储空间就是无限的。

你可以根据自身需求购买相应大小的对象存储空间。如果需要调整大小,也是支持弹性伸缩的,你不要进行数据迁移和人工干预。

数据安全可靠

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

根据云服务商的承诺,数据可靠性至少可以达到99.999999999%(不用数了,一共11个9)。这意味着,1000亿个文件里,每月最多只会有1个文件发生数据丢失。这比一个人被陨石击中的概率还要小143000倍。

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

使用方便

对于用户来说,对象存储是一个非常方便的存储方式。

很多人把它比喻为“代客泊车”,你只需要把车扔给他,他给你一个凭证,你通过凭证取车就可以了。你不需要知道车库的布局,也不需要自己去费力停放。

数据的存取方法也非常灵活多样。除了前面说的可以使用网页(基于http)直接访问之外,大部分云服务提供商都有自己的图形化界面客户端工具,用户存取数据就像用网盘一样。 

腾讯云的对象存储工具界面

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

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

对象存储的应用场景

对象存储的优点很多,简单归纳如下:

目前国内有大量的云服务提供商,他们把对象存储当作云存储在卖。

他们通常会把存储业务分为3个等级,即标准型、低频型、归档型。对应的应用场景如下:

标准类型:移动应用 | 大型网站 | 图片分享 | 热点音视频 

低频访问类型:移动设备 | 应用与企业数据备份 | 监控数据 | 网盘应用

归档类型:各种长期保存的档案数据 | 医疗影像 | 影视素材

根据估算,目前全球互联网70%以上的热点数据是保存在对象存储系统中的。

对象存储虽然看上去很好很强大,但也不是没有缺点。它最大的缺点,和它的工作模式有关。

它是那种把整个数据取出来,修改,再放回去的模式,不支持直接在存储上修改,哪怕只是加一行数据,都不行。所以,它不适合存储需要频繁擦写的数据(例如关系型数据库的数据)。

在数据的一致性保证上,对象存储也存在先天的不足。不过,据说目前技术上已经有了很大改进。

好啦,以上就是关于对象存储的全部内容。感谢大家的耐心观看!我们下期再见!

往期推荐

3 周带你 Get 大厂工程师基础能力CSDN 开学见面礼!

什么是自动驾驶?

这个数据仓库,竟然把淘宝和京东干翻了。。

被 AI 算法“监控”的打工人

点分享

点收藏

点点赞

点在看

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/514287.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用react实现select_React笔记——核心概念:9.表单

1、受控组件在 React 中,可变状态(mutable state)通常保存在组件的 state 属性中,并且只能通过使用 setState()来更新。state:唯一数据源渲染表单的 React 组件还控制着用户输入过程中表单发生的操作。被 React 以这种方式控制取值的表单输入…

压测场景下的 TIME_WAIT 处理

简介: 压测场景下的 TIME_WAIT 处理 1. 序 某专有云项目具备压测场景,在Windows的压测机上用 LoadRunner 进行业务的压力测试,压测运行一段时间后出现大量端口无法分配的报错。 其实通过问题描述,以及 Windows的报错信息基本确定…

DataX在数据迁移中的应用

简介: DataX在数据迁移中的应用 1. DataX定义 首先简单介绍下datax是什么。 DataX是阿里巴巴集团内被广泛使用的离线数据同步工具/平台,实现包括 MySQL、Oracle、SqlServer、Postgre、HDFS、Hive、ADS、HBase、TableStore(OTS)、MaxCompute(ODPS)、DRDS…

华为发布《绿色5G白皮书》,定义绿色5G网络八大技术方向

全球“碳达峰、碳中和”已成主流趋势,为了助力全球运营商绿色网络“双碳”行动计划的达成,在华为首届无线媒体沙龙上,华为无线网络SRAN产品线总裁马洪波发表了“绿色5G,E2四化八大方向,共赢双碳未来”主题演讲&#xf…

判断是否包含大写字符_Python最常用的数据类型中字符串基础函数使用知识点讲解...

字符串是 pthon 中最常用的数据类型。我们可以使用单引号、双引号或者三对单双引号来创建字符串。创建字符串很简单,只要为变量分配一个值即可。Python 的字符串有什么内建函数可以使用?len()方法返回对象(字符、列表、元组等)长度或项目个数。每个字符一…

Arthas 使用的各类方式

简介: Arthas 是阿里巴巴开源的 Java 诊断工具。让我们能够在线排查项目发生的问题。除了知道它的存在之外,我们也需要知道我们如何去安装使用它,以便于提高我们日常开发解决 BUG 的效率。 方案介绍 方案一:本地直接运行 往往最…

antd autoplay按f12才会轮播_涨知识了!原来这才是电脑键盘上,F1到F12的正确用法...

在这个快节奏的时代,工作效率可以说是非常重要的,所以熟练掌握电脑就是提高效率的好方法!那如何快速的掌握电脑呢?这就不妨先了解下键盘上F1-F12的正确用法哦,每个都是提高效率的快捷键。F1:获取帮助如果你…

新型数据中心需要什么样的存储

作者:浪潮信息首席架构师 叶毓睿 智算时代的序幕已经拉开,互联的万物,一切皆计算机。智慧计算融入到千行万业的图景,正在徐徐铺开。这是一个数据成为生产要素的时代,智慧计算将劳动者由人变成了人AI,将数据…

王者荣耀服务器未响应8月5日苹果,王者荣耀:世冠小组赛8月5日前瞻预测

14:00 深圳DYG vs GOG深圳DYG在上周的比赛遭遇两连败,目前排在A组倒数第二位。队伍进行人员轮换后,Giao在比赛中的发挥可圈可点,但其他队员的状态都下滑明显。辅助位星宇从春季赛的状态就一般,到本次世冠仍然没有提升,…

多中心容灾实践:如何实现真正的异地多活?

简介: 在异地多活的实现上,数据能够在三个及以上中心间进行双向同步,才是解决真正异地多活的核心技术所在。本文基于三中心且跨海外的场景,分享一种多中心容灾架构及实现方式,介绍几种分布式ID生成算法,以及…

HBM3内存子系统传输速率惊人,带宽突破1TB/S!

记者 | 邓晓娟 8月25日,内存IP厂商Rambus推出HBM3内存接口子系统。内含完全集成的PHY和数字控制器,传输速率达8.4Gbps;可为AI/ML和高性能计算(HPC)等应用和解决方案提供1TB/s的带宽速率;采用标准的16通道设…

android 如何读取cgi_Python基础教程(十):CGI编程、MySQL数据库

Python CGI编程什么是CGICGI 目前由NCSA维护,NCSA定义CGI如下:CGI(Common Gateway Interface),通用网关接口,它是一段程序,运行在服务器上如:HTTP服务器,提供同客户端HTML页面的接口。网页浏览为了更好的了解CGI是如何工作的&…

10亿+文件数压测,阿里云JindoFS轻松应对

简介: Apache Hadoop FileSystem (HDFS) 是被广为使用的大数据存储方案,其核心元数据服务 NameNode 将全部元数据存放在内存中,因此所能承载的元数据规模受限于内存,单个实例所能支撑的文件个数大约 4亿。JindoFS块模式是阿里云基…

一文简单弄懂tensorflow_在tensorflow中设置梯度衰减

我是从keras入门深度学习的,第一个用的demo是keras实现的yolov3,代码很好懂(其实也不是很好懂,第一次也搞了很久才弄懂) 然后是做的车牌识别,用了tiny-yolo来检测车牌位置,当时训练有4w张图片&a…

打破“单点防护”缺陷,山石网科发布“云网端”XDR解决方案

编辑 | 宋 慧 供稿 | 山石网科 出品 | CSDN云计算 近年来,CISO面临的安全形势可谓“内忧外患”,对内面临多样化的网络接入途径、庞大且繁杂的IT资产;对外面临攻防关系、攻防手段、网络攻击的数量等呈指数级增长等问题,给组织的…

Serverless 场景下 Pod 创建效率优化

简介: 众所周知,Kubernetes 是云原生领域的基石,作为容器编排的基础设施,被广泛应用在 Serverless 领域。弹性能力是 Serverless 领域的核心竞争力,本次分享将重点介绍基于 Kubernetes 的 Serverless 服务中&#xff0…

安装wordcloud_COVID19数据分析实战:WordCloud 词云分析

↑↑点击上方蓝字,回复资料,N个G的惊喜前言上一篇文章(链接)我们对COVID19_line_list数据集进行了清洗以及初步分析。本文中我们将分析如何用词云来展示文本信息的概要。比如我们从词云百度百科截取文字,制作词云。简单来说,词云就…

到达率99.9%:闲鱼消息在高速上换引擎(集大成)

简介: 记录这一年闲鱼消息的优化之路 1. 背景 在2020年年初的时候接手了闲鱼的消息,当时的消息存在各种问题,网上的舆情也是接连不断:“闲鱼消息经常丢失”、“消息用户头像乱了”、“订单状态不对”(相信现在看文章的…

1小时打造HaaS版小小蛮驴智能车

1、认识一下小小蛮驴真面目 1.1、组件部分 HaaS100核心板 HaaS100是一款物联网场景中的标准硬件,并配套嵌入到硬件中的软件驱动及功能模块,为用户提供物联网设备高效开发服务。 HaaS100核心板有着丰富的外设接口,如下所示: 智…

Spring Boot Admin 集成诊断利器 Arthas 实践

简介: Arthas 是 Alibaba 开源的 Java 诊断工具,具有实时查看系统的运行状况;查看函数调用参数、返回值和异常;在线热更新代码;秒解决类冲突问题;定位类加载路径;生成热点;通过网页诊…