对象存储概述

前言

今天碰巧看到一篇介绍对象存储概念的博客,感觉内容通俗易懂。现在做个简单的笔记,其中修改了原文的部分内容和结构。

对象存储概述

什么是对象存储? 

相对于存储局域网(SAN)和网络附加存储(NAS)网络存储架构,对象存储(Object-based Storage)是一种新的网络存储架构,基于对象存储技术的设备就是对象存储设备(Object-based Storage Device)简称 OSD。总体上来讲,对象存储综合了 NAS  SAN 的优点,同时具有 SAN 的高速直接访问和 NAS 的分布式数据共享等优势,提供了具有高性能、高可靠性、跨平台以及安全的数据共享的存储体系结构。

对象存储架构

核心是将数据通路(数据读或写)和控制通路(元数据)分离,并且基于对象存储设备构建存储系统,每个对象存储设备是智能的,能够自动管理其上的数据分布。对象存储结构由对象存储设备、元数据服务器、对象存储系统的客户端部分组成。 

对象 

对象是系统中数据存储的基本单位,每个 Obeject 是数据和数据属性集的综合体,数据属性可以根据应用的需求进行设置,包括数据分布、服务质量等。在传统的存储系统中用文件或块作为基本的存储单位,块设备要记录每个存储数据块在设备上的位置。Object 维护自己的属性,从而简化了存储系统的管理任务,增加了灵活性。Object 的大小可以不同,可以包含整个数据结构,如文件、数据表项等。在存储设备中,所有对象都有一个对象标识,通过对象标识 OSD 命令访问对象。通常由多种类型的对象,存储设备上的根对象标识存储设备和该设备的各种属性组,象是存储设上共享资源管理策略的对象集合等。 

对象存储设备 

每个 OSD 都是一个智能设备,具有自己的存储介质、处理器、内存以及网络系统等,负责管理本地的 Object,是对象存储系统的核心。OSD 同块设备的不同不在于存储介质,而在于两者提供的访问接口。OSD 的主要功能包括数据存储和安全访问、目前国际上通常采用刀片式结构实现对象存储设备。OSD 提供三个主要功能: 
(1) 数据存储OSD 管理对象数据,并将它们放置在标准的磁盘系统上,OSD 不提供接口访问方式,Client 请求数据时用对象ID、偏移进行数据读写。 
(2) 智能分布OSD 用其自身的 CPU 和内存优化数据分布,并支持数据的预取。由于 OSD 可以智能地支持对象的预取,从而可以优化磁盘的性能。 
(3) 每个对象数据的管理OSD 管理存储在其上对象的元数据,该元数据与传统的 inode 元数据相似,通常包括对象的数据块和对象的长度。而在传统的 NAS 系统中,这些元数据是由文件服务器提供的,对象存储架构将系统中主要的元数据管理工作由 OSD 来完成,降低了 Client 的开销。 

元数据服务器(Metadata Server,MDS) 

MDS 控制 Client  OSD 对象的交互,为客户端提供元数据,主要是文件的逻辑视图,包括文件与目录的组织关系、每个文件所对应的 OSD 等。主要提供以下几个功能: 
(1) 对象存储访问MDS 构造、管理描述每个文件分布的视图,允许 Client 直接访问对象。MDS  Client 提供访问该文件所含对象的权限,OSD 在接收到每个请求时先验证该权限,然后才可以访问。 
(2) 文件和目录访问管理MDS 在存储系统上构建一个文件结构,包括限额控制、目录和文件的创建和删除、访问控制等。 
(3) Client Cache一致性为了提高 Client 性能,在对象存储系统设计时通常支持 Client  Cache。由于引入 Client 方的 Cache,带来了 Cache 一致性的问题,MDS支持基于 Client 的文件 Cache,当 Cache 的文件发生改变时,将通知 Client 刷新Cache,从而防止 Cache 不一致引发的问提。 

对象存储系统的客户端

为了有效支持 Client 支持访问 OSD 上的对象,需要在计算节点实现对象存储系统的 Client。现有的应用对数据的访问大部分都是通过 POSIX 文件方式进行的,同时为了提高性能,也具有对数据的 Cache 功能和文件的条带功能。同时,文件系统必须维护不同客户端上 Cache 的一致性,保证文件系统的数据一致。文件系统访问流程: 
(1) 客户端应用发出读请求; 
(2) 文件系统向元数据服务器发送请求,获取要读取的数据所在的 OSD; 
(3) 然后直接向每个 OSD 发送数据读取请求; 
(4) OSD 得到请求后,判断要读取的 Object,并根据此 Object 的认证方式,对客户端进行认证,如果客户端得到授权,则将 Object 的数据返回给客户端; 
(5) 文件系统收到 OSD 返回的数据以后,读操作完成。

对象存储文件系统的关键技术 

分布元数据 

(1) 为计算结点提供一个存储数据的逻辑视图(Virtual File System,VFS层),文件名列表及目录结构。 
(2) 组织物理存储介质的数据分布(inode层)。对象存储结构将存储数据的逻辑视图与物理视图分开,并将负载分布,避免元数据服务器引起的瓶颈(如NAS系统)。元数据的 VFS 部分通常是元数据服务器的 10% 的负载,剩下的 90% 工作(inode部分)是在存储介质块的数据物理分布上完成的。在对象存储结构,inode 工作分布到每个智能的 OSD,每个 OSD 负责管理数据分布和检索,这样 90% 的元数据管理工作分布到智能的存储设备,从而提高了系统元数据管理的性能。另外,分布的元数据管理,在增加更多的 OSD 到系统中时,可以同时增加元数据的性能和系统存储容量。

并发数据访问

对象存储体系结构定义了一个新的、更加智能的磁盘接口 OSD。OSD 是与网络连接的设备,它自身包含存储介质,如磁盘或磁带,并足够的智能可以管理本地存储的数据。计算结点直接与 OSD 通信,访问它存储的数据,由于 OSD 很智能,所以不需要文件服务器的介入。如果将文件系统的数据分布在多个 OSD 上,则聚合I/O速率和数据吞吐率将线性增长,对绝大多数 Linux 集群应用来说,持续的I/O聚合带宽和吞吐率对较多数目的计算结点是非常重要的。对象存储结构提供的性能非常好,如 ActiveScale 对象存储文件系统的带宽可以达到 10GB/s。

转载自:对象存储(Object-based Storage)概述_刘爱贵的博客-CSDN博客_object storage

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值