云计算-对象存储

时间:2024-11-18 09:47:42

1 原始数据存储

1.1 DAS(Direct Attached Storage,直连式存储)

类似于本机电脑硬盘,通过线,直接IO连接硬盘。

参考链接:/p/7df6ec0699ed

1.2 NAS(Network Area Storage,网络接入存储)

透过网络(内网、外网)进行存储读取资料。通俗点说,就是有一台很小很小的台式主机,里面只装了很多颗的硬碟,这台电脑很省电,又不会发热,只要有网路,就可以连到这台小电脑里面,把自己的资料储存进去,把需要的资料拿出来使用,而且你需要多少储存容量只要你买硬盘加上去就行了。

参考链接:/p/20611079

1.3 SAN(Storage Area Network,存储区域网络)

中心化服务器存储,基于以太网和光纤通道。企业最常用的存储网络架构,要求高吞吐量和低延迟的业务关键型业务往往采用这类架构运行。

参考链接:/zdx19880830/article/details/94857018

1.4 存储方式

  1. DAS和SAN是基于物理块的存储方式,而NAS是基于文件的存储方式。

  1. 块存储,操作对象是磁盘。存储协议是SCSI、iSCSI、FC。以 SCSI 为例,主要接口命令有 Read/Write/Read Capacity/Inquiry 等等。

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

2 对象存储(Object-based Storage)

2.1 背景

  1. 对象存储是云计算时代的存储技术,面向对象的存储,云厂商也称之为“云存储”。

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

  • 数据量爆炸式增长。照片、音乐、视频等多媒体创作分享。

  • 非结构化数据的占比显著增加。

  • 结构化数据:excel表格,姓名、身高、体重、年龄、性别,这种用二维表结构可以进行逻辑表达的数据。

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

  1. 由于上述两大变化,原始存储方式无法有效应对,所以提出了对象存储。

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

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

在对象存储系统里,你不能直接打开/修改文件,只能先下载、修改,再上传文件。(如:百度网盘)

2.2 对象存储中的数据组成

对象存储可以看作一个“桶”(bucket),你可以往“桶”里面放“对象(Object)”。每个对象包括三个部分:Key、Data、Metadata。

2.2.1 Key

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

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

2.2.2 Data

数据本体。不多解释。

2.2.3 Metadata

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

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

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

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

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

2.3 对象存储的架构

  • OSD对象存储设备

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

  • MDS元数据服务器

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

  • Client客户端

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

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

2.4 对象存储的应用

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

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

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

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

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

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

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

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

参考文章链接:/p/166289089