1. 前言2. 存储方式2.1 存储方式对比3. 存储类型2.1 块存储2.2 文件存储2.3 对象存储(Object-based Storage)1. 对象存储中的数据组成2. 对象存储的架构3. 对象存储的有点
1. 前言
三种存储方式:DAS、NAS、SAN
三种存储类型:块存储、文件存储、对象存储
2. 存储方式
(1) 直连式存储 (DAS:Direct Attached Storage)
(2) 网络存储设备 (NAS:Network Attached Storage)
(3) 存储网络 (SAN:Storage Area Network)
存储方案内部使用的硬盘,多为SATA/SAS,追求高性能也用SSD,经过串联/RAID之后,对主机提供访问接口。
2.1 存储方式对比
DAS和SAN是基于物理块的存储方式,而NAS是基于文件的存储方式。
在DAS和SAN中,存储资源就像一块一块的硬盘,直接挂载在主机上,我们称之为块存储。
而在NAS中,呈现出来的是一个基于文件系统的目录架构,有目录、子目录、孙目录、文件,我们称之为文件存储。
文件存储的最大特点,就是所有存储资源都是多级路径方式进行访问的。例如:
C:\Program Files (x86)\Tencent\WeChat\WeChat.exe
3. 存储类型
2.1 块存储
块存储,英文 block storage ,在一些地方也成为 raw block storage(裸块存储)。块存储所用的设备叫块设备(block device),常见的块设备有磁盘、闪存等。为啥叫块设备呢?因为这些设备的存储都是按照一块块区域进行划分的,比如磁盘是按照盘面、扇区等将数据进行分开存储。
块存储系统的性能是所有存储类型系统中最好的,所以块存储系统也是所有存储系统中最有挑战的。块存储为什么性能最好呢?因为数据在读写磁盘的过程中少了一些牵绊的流程(文件系统或者其他校验等)
2.2 文件存储
磁盘刚出厂的时候里面是没有数据的,可以理解为一片空白。这种磁盘我们可以理解为上面的块存储,可以随意的存储数据,但是并不能很好的组织我们的数据。想象一张白纸,你可以随意的写东西,但是这种情况下,你写出的内容并不能好好的组织,相当的凌乱。
文件存储系统可以看做是在块存储之上加了一层文件系统,当然这个文件系统的范围可以很广。可以这么讲,凡是支持 POSIX 接口的都可以归类为文件系统。既然加了一层,当然性能没有块存储那么好。
2.3 对象存储(Object-based Storage)
对象存储,也称为“面向对象的存储”。大部分的云服务提供商的云盘就是对象存储系统。这类系统有两个特点:接口 Rest化,数据整体更新
1. 对象存储中的数据组成
对象存储呈现出来的是一个“桶”(bucket),你可以往“桶”里面放“对象(Object)”。这个对象包括三个部分:Key、Data、Metadata。
- Key
可以理解文件名,是该对象的全局唯一标识符(UID)。
Key是用于检索对象,服务器和用户不需要知道数据的物理地址,也能通过它找到对象。这种方法极大地简化了数据存储。
下面这行,就是一个对象的地址范例:
看上去就是一个URL网址。如果该对象被设置为“公开”,所有互联网用户都可以通过这个地址访问它。
- Data
也就是用户数据本体。这个不用解释了。
- Metadata
Metadata叫做元数据,它是对象存储一个非常独特的概念。
元数据有点类似数据的标签,标签的条目类型和数量是没有限制的,可以是对象的各种描述信息。
举个例子,如果对象是一张人物照片,那么元数据可以是姓名、性别、国籍、年龄、拍摄地点、拍摄时间等。
元数据可以有很多
在传统的文件存储里,这类信息属于文件本身,和文件一起封装存储。而对象存储中,元数据是独立出来的,并不在数据内部封装。
元数据的好处非常明显,可以大大加快对象的排序,还有分类和查找。
2. 对象存储的架构
对象存储的架构是怎样的呢?如下图所示,分为3个主要部分:
对象存储的简单架构示意图
- OSD对象存储设备
这是对象存储的核心,具有自己的CPU、内存、网络和磁盘系统。它的主要功能当然是存储数据。同时,它还会利用自己的算力,优化数据分布,并且支持数据预读取,提升磁盘性能。
- MDS元数据服务器
它控制Client和OSD的交互,还会管理着限额控制、目录和文件的创建与删除,以及访问控制权限。
- Client客户端
提供文件系统接口,方便外部访问。
根据上面的架构可以看出,对象存储系统可以是一个提供海量存储服务的分布式架构。
3. 对象存储的有点
- 容量无限大
- 数据安全可靠
- 使用方便