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

    文章

    4122

    浏览量

    85271
  • NAS
    NAS
    +关注

    关注

    11

    文章

    264

    浏览量

    112258
收藏 人收藏

    评论

    相关推荐

    单片机的三种总线结构

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

    verilog中端口类型有哪三种

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

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

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

    运放的三种应用

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

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

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

    运动控制的三种控制方式

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

    雷达的种类有哪三种类型

    雷达是一利用电磁波进行目标探测和跟踪的设备。它在军事、航空、海洋、天文和气象等领域具有广泛的应用。雷达的种类可以按照不同的分类方式进行划分。在本文中,我们将按照雷达的工作方式,将雷达分为三种类型
    的头像 发表于 12-21 11:38 4424次阅读

    晶体管三种接法的特点

    晶体管三种接法的特点  晶体管是一常见的电子元器件,具有开关和放大功能。根据不同的接法,晶体管的特点也会有所不同。一般来说,晶体管的接法分为共集电极、共射极和共基极三种类型。下面将详细介绍晶体管
    的头像 发表于 12-12 14:23 1149次阅读

    常见的socket三种类型

    常见的socket三种类型  Socket是计算机网络中常用的通信机制,在网络编程中起到了非常重要的作用。Socket可以分为三种类型:流套接字(Stream Socket)、数据报套接字
    的头像 发表于 12-08 11:18 2144次阅读

    拒绝EMI干扰,三种屏蔽类型的多芯导线如何选?

    拒绝EMI干扰,三种屏蔽类型的多芯导线如何选?
    的头像 发表于 12-07 16:30 407次阅读
    拒绝EMI干扰,<b class='flag-5'>三种</b>屏蔽<b class='flag-5'>类型</b>的多芯导线如何选?

    伺服电机控制器的是三种类型介绍

    伺服电机控制器的类型包括降压起动器、调速驱动器、智能控制器等三种分类,另外控制方面主要以方波控制、正弦波控制等两方式,那么下面就详细介绍一下相关内容。
    发表于 11-19 10:00 718次阅读

    伺服电机控制器的三种分类

    伺服电机控制器的类型包括降压起动器、调速驱动器、智能控制器等三种分类,另外控制方面主要以方波控制、正弦波控制等两方式。
    发表于 11-16 10:26 703次阅读

    什么是电池化成?电池化成的三种方式 三种电池化成对比

    什么是电池化成?电池化成的三种方式 三种电池化成对比  电池化成是指将物体或设备改造为可以使用电池供电的过程。在电池化成过程中,常见的电源例如燃油、电线甚至是替换掉,以便更高效、便捷地提供
    的头像 发表于 11-10 14:49 1999次阅读

    分享常见的三种配线架类型

    常见的三种配线架类型是110打线式配线架、直通型配线架和电子配线架。 110打线式配线架的前置面板是RJ45接口,每个接口都有数字标识,110打线式配线架的后置面板上是打线模块,上面标识着T568A
    的头像 发表于 10-08 10:01 1087次阅读

    耦合有哪几种类型?电路的三种耦合方式 三种耦合电路及其特点

    耦合有哪几种类型?电路的三种耦合方式 三种耦合电路及其特点 耦合是指电子元件或电路中不同部分之间的相互作用。在电路中,耦合可以分为很多种类型,其中最基本的有磁耦合和电容耦合两
    的头像 发表于 09-22 12:22 7932次阅读