0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

三种存储类型的类比与依赖

汽车玩家 来源:新钛云服 作者:黄平安 2020-05-05 22:21 次阅读

1. 三种存储类型

随着PC、平板电脑智能手机电子设备的普及,互联网极大的提升了人们的生活水平。网络在丰富人们生活的同时,也产生了庞大的数据量。

图1 各种电子设备

IDC预测,全球数据总量预计2020年达到44个ZB,我国数据量将达到8060个EB,占全球数据总量的18%。44个ZB是什么规模呢?相当于44万亿GB。

数据量的迅速增加促进了存储行业的发展,硬件方面和软件方面都有了长足的进步。

本文主要对对象存储进行一个简单的说明,希望通过本文,您能对对象存储有个大致的了解。

主流存储类型分为三种:块存储、文件存储以及对象存储

块存储主要是将裸磁盘空间整个映射给主机,按照物理卷或逻辑卷的方式存储数据。特点:速度快、保存的数据尺寸大、数据变化频率高,缺点:可扩展程度小、容量小。(其实我们日常生活中见到的硬盘,就是块存储)

文件存储,典型代表NAS。NAS是类似一个共享文件夹,用户可以通过相应的传输协议,把数据放在上面。容量相对较大,但是速度较慢。

下面说到对象存储了,不知道大家有没有思考过一个问题。每天微信朋友圈或者微博,以及最近爆火的那些小视频app,用户上传了海量的图片或者视频,它们都是存放在什么地方的呢?我个人认为,对象存储,是存储它们的一个不错选择。

对象存储,对象指的是面向对象,集合了块存储和文件存储的优点,拥有速度快、容量大等特性。并且容易搭配云计算,是一种新的网络存储架构。

当然,三种存储类型并不是完全独立的,还是有依赖关系的。对象存储在底层存储介质方面上,还是部分依赖块存储和文件存储的。

 三种存储类型的类比与依赖

图2 三种存储类型依赖关系

为了更好的说明三者的差异,我打个比方,假设有三个人想从A地到B地,现在有三种交通方式。甲选择轿车、乙选择公共汽车、丙选择地铁。块存储类似于轿车,速度快,但是容量小(轿车只能乘坐几个人);文件存储类似于公共汽车,速度慢(公共汽车有站点和红绿灯需要考虑),但是容量较大(能多坐不少人);对象存储类似于地铁,速度快,容量大。

图3 三种存储类型类比

2.对象存储原理

2.1 对象数据组成结构

与块存储和文件存储管理数据的方式不同,对象存储是以对象的形式管理数据的。对象和文件最大的不同,就是在文件基础之上增加了元数据。一般情况下,对象分为三个部分:数据、元数据以及对象id。

对象的数据通常是无结构的数据,比如:图片、视频或文档等;对象的元数据则指的是对象的相关描述,比如:图片的大小、文档的拥有者等;对象id则是一个全局的唯一标识符,用来区分对象的。

2.2 对象访问方式

对象存储,访问对象的方式很方便,是通过REST接口对对象进行操作,用HTTP动词(GET、POST、PUT、DELETE等)描述操作。除此之外,还有一种访问方式,就是使用各大云商提供的客户端去操作对象。比如:Amazon的s3cmd、阿里云的osscmd/ossutil、腾讯云的coscmd等。这些客户端都是各个云商开发出来,可以以命令行的形式在操作系统中操作对象的工具,各大云商都有详细的文档说明,在这就不一一赘述了。

2.3 对象存储优缺点

先说优点,之前大概也提了下:

可扩展性高:对象存储能够扩展数十乃至数百EB的容量,能够充分利用高密度存储;

效率高:扁平化结构,不受复杂目录系统对性能的影响;

无需迁移:对象存储是一种横向扩展系统,随着容量的增加,数据根据算法自动分布于所有的对象存储节点;

安全性高:对象存储通常凭借HTTP调用对象存储本身提供的认证密钥来提供数据访问;

访问方便:不光支持HTTP(S)协议,采用REST的API方式调用和检索数据,同样增加了NFS和SMB支持;

成本相对低:与块存储方式相比,对象存储是最具成本效益的数据存储类型,并且与云计算搭配,把对象存储的这一特性发挥的淋漓尽致。

再提缺点:

最终一致性:由于不同节点的位置不同,数据同步时可能会有一定时间的延迟或者错误;

不易做数据库:对象存储比较适合存储那些变动不大甚至不变的文件,而对于像数据库这种需要直接与存储裸盘相互映射的应用,还是块存储更合适。

3. 对象存储应用

前面说了许多定义,可能许多朋友还是云里雾里的,不知道对象存储怎么使用。下面,我以腾讯云的对象存储(cos)为例,使用python的代码方式来实际应用一下。

cos有一个存储桶(bucket,其他云商也有)的概念,它是对象的载体,可理解为存放对象的“容器”。用户可以通过腾讯云控制器、API、SDK等多种方式管理以及配置存储桶。下图是功能的整个流程图,具体含义后面会介绍:

三种存储类型的类比与依赖

图4 上传图片和查看图片流程图

3.1 创建bucket

我就不用代码的方式创建存储桶了,直接在腾讯控制台创建一个bucket,命名为“tyun-cn-test”。bucket有三种类型私有读写、公有读私有写、公有读写,凡是带“私有”二字的,是需要请求签名的。为了测试完整,我选择私有读写的方式,来做一个上传图片的功能。

创建完bucket之后,就可以写代码了,我使用cos提供的API进行图片上传。因为我选择的bucket是私有读写的,所以上传图片之前,还需要先生成一个请求签名。

3.2 生成cos的请求签名

三种存储类型的类比与依赖

图5 生成密钥的python代码

cos的请求签名的文档写的挺详细,不过它是以PHP的方式举例的,我把它重新用python封装了一个函数,有几个参数需要注意。

函数中,sign_time为签名的有效时间,http_method为操作方式(上传文件时用PUT,获取文件时用GET),remote_file_name为上传到cos的文件名,api_url为bucket的访问地址,secret_id和secret_key都是腾讯云API密钥。

3.3 上传图片到cos

上传图片到cos的整个流程:先通过POST方式暂时把图片上传到后端服务器,然后调用cos的API,使用PUT的方式把图片上传到cos,之后返回一个图片的cos地址,最后删除后端服务器上的图片。

三种存储类型的类比与依赖

图6 服务器上image上传到cos代码

上图,就是把图片从服务器上传到cos的大致实现,其中fname是图片在服务器上的地址,_get_cos_sign()函数就是前面生成请求签名的函数。

需要注意的是,上传图片(PUT)和获取图片(GET)的方式不同,所以生成请求签名的时传递的http_method也需要区分。访问返回的图片地址,就会发现图片已经上传成功到cos上了。

4.总结

对象存储,作为一个新的存储类型,在云计算高速发展的今天,有着很大的用武之地。不过,尽管有着扩展性好、效率高等优点,其一致性仍是不好处理的问题。所以,不能把鸡蛋放在同一个篮子里。合理选择存储类型,对用户和企业来说,都是一个需要考虑的问题。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 存储
    +关注

    关注

    13

    文章

    4332

    浏览量

    85949
  • NAS
    NAS
    +关注

    关注

    11

    文章

    289

    浏览量

    112519
收藏 人收藏

    评论

    相关推荐

    示波器的三种触发模式

    示波器的触发方式不仅影响波形捕捉的时机,还决定了显示的波形是否稳定。 常见的触发模式有三种: 单次触发 (Single)、 正常触发 (Normal)和 自动触发 (Auto)。下面将对这三种触发
    的头像 发表于 01-07 11:04 67次阅读
    示波器的<b class='flag-5'>三种</b>触发模式

    基本放大电路有哪三种

    基本放大电路是电子电路中至关重要的组成部分,它能够将输入信号放大到所需的电平,以便后续电路进行处理。在电子工程中,基本放大电路主要有三种形式,分别是共发射极放大电路(简称共射放大电路)、共基极放大
    的头像 发表于 10-15 11:07 1781次阅读

    mosfet的三种工作状态及工作条件是什么

    的工作状态及工作条件对于理解和设计相关电路至关重要。以下是MOSFET的三种主要工作状态及其工作条件的介绍。 一、MOSFET的三种工作状态 MOSFET根据其栅源电压(VGS)和漏源电压(VDS
    的头像 发表于 10-06 16:51 2346次阅读

    单片机的三种总线结构

    单片机的三种总线结构包括地址总线(Address Bus, AB)、数据总线(Data Bus, DB)和控制总线(Control Bus, CB)。这三种总线在单片机内部及与外部设备之间的数据传输
    的头像 发表于 09-10 11:32 3402次阅读

    放大电路的三种组态可以放大什么

    放大电路是电子学中非常重要的组成部分,它们可以将输入信号的幅度放大,以满足各种应用的需求。放大电路的三种基本组态包括共射放大电路、共集放大电路和共基放大电路。每种组态都有其特定的应用和特点。以下
    的头像 发表于 07-09 14:31 1278次阅读

    电压型逆变器可具体分为哪三种?

    电压型逆变器是一将直流电能转换为交流电能的电力电子装置,广泛应用于电力系统、工业控制、新能源发电等领域。根据其工作原理和结构特点,电压型逆变器可以分为三种类型:单相电压型逆变器、相电压型逆变器
    的头像 发表于 07-05 16:56 854次阅读

    晶体管的三种工作状态

    晶体管作为现代电子技术的基石,其工作状态直接影响电子设备的性能和功能。晶体管通常具备三种基本的工作状态:截止状态、放大状态和饱和状态。这三种状态不仅决定了晶体管在电路中的行为,也反映了晶体管作为半导体器件的基本特性。本文将详细阐述晶体管的这
    的头像 发表于 05-28 14:53 1591次阅读

    verilog中端口类型有哪三种

    在 Verilog 中,端口类型三种:输入端口(input)、输出端口(output)和双向端口(inout)。 输入端口(input)用于接收来自其他模块的信号。在一个模块中,输入端口是被调用
    的头像 发表于 02-23 10:28 2177次阅读

    边缘计算分为哪三种类型?边缘计算这项技术可以应用在哪些领域?

    边缘计算分为哪三种类型?边缘计算这项技术可以应用在哪些领域? 边缘计算是一分布式计算的模式,它将数据处理和存储的功能从传统的集中式云计算中推向网络边缘设备,以便更快速、实时地进行计算和响应。边缘
    的头像 发表于 02-06 14:38 1465次阅读

    热传递的三种方式是什么

    热传递有三种基本形式:导热(Thermal Conduction)、对流(Thermal Convection)和辐射(Thermal Radiation)。每种形式都有其独特的物理过程和应用领域
    的头像 发表于 02-06 14:02 2367次阅读
    热传递的<b class='flag-5'>三种</b>方式是什么

    运放的三种应用

    运放在电路中主要存在三种应用,放大器,滤波器,振荡器。再这三种应用电路中,运放的两大特点虚短虚断仍然成立吗? 在阻尼振荡器中,工作过程是否按照我描述的这样,在反相输入端加一个近似锯齿波的电流源,正半
    发表于 01-26 16:18

    差分晶振的输出波形解析:三种类型要知道

    差分晶振的输出波形解析:三种类型要知道  差分晶振是一常见的电路元件,用于产生高稳定性的方波信号。它采用了一个振荡电路,包含了一个典型的集成晶体振荡器和两个反向耦合的输出信号。 差分晶振的输出波形
    的头像 发表于 01-24 13:46 1307次阅读

    运动控制的三种控制方式

    非标项目中有非常多的运动控制,根据系统配置、电机类型以及精度需求的不同主要有三种控制方式:开环控制、半闭环控制、全闭环控制。
    的头像 发表于 01-23 09:48 1553次阅读
    运动控制的<b class='flag-5'>三种</b>控制方式

    嵌入式Linux开发的三种方式

    嵌入式Linux开发主要有三种方式:裸机开发、SDK开发和驱动开发。
    的头像 发表于 01-22 14:22 997次阅读

    示波器的三种触发模式

    示波器的触发模式有自动模式(Auto)、正常模式(Norm)和单次模式(Single)三种。在测不同信号时,采用不同的触发模式,才能准确测量到所需要的波形。下面以我司静电发生器TEH-10030
    的头像 发表于 01-18 08:12 2707次阅读
    示波器的<b class='flag-5'>三种</b>触发模式