对象存储介绍

对象存储的发展历史

       块是存储的基础架构,对块的管理是简单的。从全球第一个磁盘存储技术50年前诞生到现在,块的技术没有发生太大变化。磁盘工业生产遍及全球。最近几年,存储行业兴起存储虚拟化和数据整合的新概念,在这些概念和方案中,数据还是以块的形式通过网络进行读写操作。

       块形式的存储在满足数据可扩展性和数据安全性的增长方面,日益显现出其局限性和不足。国际上主要有两类网络化存储架构,它们是通过命令集来区分的。第一类是SAN(StorageAreaNetwork)结构,它采用SCSI块I/O的命令集,通过在磁盘或FC(FiberChannel)级的数据访问提供高性能的随机I/O和数据吞吐率,它具有高带宽、低延迟的优势,在高性能计算中占有一席之地,但是由于SAN系统的价格较高,且可扩展性较差,已不能满足成千上万个CPU规模的系统。第二类是NAS(NetworkAttachedStorage)结构,它采用NFS或CIFS命令集访问数据,以文件为传输协议,通过TCP/IP实现网络化存储,可扩展性好、价格便宜、用户易管理,如目前在集群计算中应用较多的NFS文件系统,但由于NAS的协议开销高、带宽低、延迟大,不利于在高性能集群中应用。

       针对Linux集群对存储系统高性能和数据共享的需求,国际上已开始研究全新的存储架构和新型文件系统,希望能有效结合SAN和NAS系统的优点,支持直接访问磁盘以提高性能,通过共享的文件和元数据以简化管理,目前对象存储系统已成为Linux集群系统高性能存储系统的研究热点,如Panasas公司的ObjectBaseStorageClusterSystem系统和ClusterFileSystems公司的Lustre等。

基于对象的存储

       在2004年,ANSI推出了基于对象的存储设备(OSD)的1.0版本规范。它定义了基于对象的存储设备的通讯协议。OSD规范描述了一个SCSI命令集合,由他提供一个高水平的OSD接口。这个接口允许客户端,比如文件系统和数据库存放和索引数据。SNIA’S技术工作组当前正在开发OSD规范的2.0版本,这个版本年内完成。
一个OSD设备存放对象,他控制着从对象到物理介质的映射图。设备同时也跟踪作为属性的元数据,例如建立时间标记,从而允许在客户端非常容易地共享数据。
可以说,OSD最大的卖点在于它结合了SAN的可扩展性和NAS的数据共享。早期的NAS架构的扩展性能并不好,因为所有的元数据的处理都集中在NAS服务器上。在有限的NAS头下扩张更多的存储受到限制,而且这个时候,NAS上的元数据处理变成了瓶颈。如果想扩展,就需要增加更多的NAS服务器,但是此时的管理成为头疼的事情,因为数据是分散的,这就是我们常说到的“NAS孤岛。
       OSD的能力在于它将客户端和OSD设备直接联系起来,并不需要中间环节管理元数据。Panasas公司,全球第一家提供商用OSD产品的公司,同时提供面向对象的存储和并行文件系统。Panasas公司的DirectFLOW的设计,客户端从带外管理的控制刀片得到目标的分布和安全属性。所有的数据流都直接从OSD存储刀片到客户端。尽管商用的OSD产品还只是凤毛麟角,但是OSD技术还是在日新月异。西捷和IBM已经展示了OSDc产品。HP已经和开放源代码厂家 lustre文件系统合作,使用OSD作为他的 StorageWork可扩展文件系统的重要部分。
       对于对象存储来讲,不光是解决了数据存储的问题,同时它还解决了数据安全性的问题。存储通常已经依赖于客户端和私有网络的认证来保护系统的安全性,不管在文件服务器内用的是FCSAN或SCSI阵列。对象存储体系结构在每一个级别上都提供了安全性:存储系统对存储设备的认证;存储系统对计算节点的认证;存储系统对计算节点命令的认证;所有命令都经CRC的完整性检查;数据和命令经由IP的私有性。这样的安全水平能给用户以信心,他们可以用更经济高效,可管理并容易访问的网络,如以太网,作为存储的传输工具,同时还提高了整个存储体系的安全性。
“对象存储设备并不适合所有的用户。”Panasas公司的CTOGarthGibson博士说。经过几年的努力,Panasas在政府,科研,能源,媒体和金融服务有了很多非常成功的案例。“Panasas是使用面向对象的存储集群,来解决计算集群的并行存储的问题”。高性能计算和存储专家胡家鎏教授说。

对象存储的特性

       无论OSD是从HPC走到企业级应用中,或是通过其他方式,均面临需要被企业级的用户所接受这样的事实。从传统的存储变成OSD存储,需要在多个层面上作改变,这包括,存储设备,存储网络,文件系统和数据库。
       OSD面临着巨大的机遇。如GarthGibson博士所讲,大规模并行数据存储的问题通过数据对象,和属性可以得到解决。在这个时候,对象存储的特性才得以发挥。而这些都是基于块的存储所不能解决的。
       对象存储可以以这种方式使用而与应用无关。应用系统可以和以前使用文件导向的系统一样使用,所有的工作通过文件系统实现对文件的存取。这个时候,应用直接存储数据对象而不是向文件系统写数据。

       对象存储自诞生的那一天起已经表现出其巨大的活力,它可以提供数据安全,容易的数据共享,强大的可扩展功能,完全具备走向企业级数据中心的能力。我们很高兴地看到,对象存储的国际标准已经制定,很多全球一线的存储厂商和服务器厂家均加入到此阵营中。各个厂家的对象存储产品已经或即将面世。但是,同时我们也看到,对象存储全面取代传统的块存储还需时日。


对象存储组成结构

对象存储结构

核心是将数据通路(数据读或写)和控制通路(元数据)分离,并且基于对象存储设备(Object-based Storage Device,OSD)构建存储系统,每个对象存储设备具有一定的智能,能够自动管理其上的数据分布。
对象存储结构组成部分:
 
对象存储架构
对象存储架构

1、对象

对象是系统中数据存储的基本单位,一个对象实际上就是文件的数据和一组属性信息(Meta Data)的组合,这些属性信息可以定义基于文件的RAID参数、数据分布和服务质量等,而传统的存储系统中用文件或块作为基本的存储单位,在块存储系统中还需要始终追踪系统中每个块的属性,对象通过与存储系统通信维护自己的属性。在存储设备中,所有对象都有一个对象标识,通过对象标识OSD命令访问该对象。通常有多种类型的对象,存储设备上的根对象标识存储设备和该设备的各种属性,组对象是存储设备上共享资源管理策略的对象集合等。
 
对象的层次关系理解
对象的层次关系理解(图片来源SNIA)
Figure 3: Image showing that object contains data, OID, metadata, and attributes.
对象的组成(图形来源Oracle)
 

2、对象存储设备

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

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

MDS控制Client与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不一致引发的问题。
 

4、对象存储系统的客户端Client

为了有效支持Client支持访问OSD上的对象,需要在计算节点实现对象存储系统的Client,通常提供POSIX文件系统接口,允许应用程序像执行标准的文件系统操作一样。
 

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

1、分布元数据 传统的存储结构元数据服务器通常提供两个主要功能。 
(1)为计算结点提供一个存储数据的逻辑视图(Virtual File System,VFS层),文件名列表及目录结构。
(2)组织物理存储介质的数据分布(inode层)。对象存储结构将存储数据的逻辑视图与物理视图分开,并将负载分布,避免元数据服务器引起的瓶颈(如NAS系统)。元数据的VFS部分通常是元数据服务器的10%的负载,剩下的90%工作(inode部分)是在存储介质块的数据物理分布上完成的。在对象存储结构,inode工作分布到每个智能化的OSD,每个OSD负责管理数据分布和检索,这样90%的元数据管理工作分布到智能的存储设备,从而提高了系统元数据管理的性能。另外,分布的元数据管理,在增加更多的OSD到系统中时,可以同时增加元数据的性能和系统存储容量。
 
2、并发数据访问 对象存储体系结构定义了一个新的、更加智能化的磁盘接口OSD。OSD是与网络连接的设备,它自身包含存储介质,如磁盘或磁带,并具有足够的智能可以管理本地存储的数据。计算结点直接与OSD通信,访问它存储的数据,由于OSD具有智能,因此不需要文件服务器的介入。如果将文件系统的数据分布在多个OSD上,则聚合I/O速率和数据吞吐率将线性增长,对绝大多数Linux集群应用来说,持续的I/O聚合带宽和吞吐率对较多数目的计算结点是非常重要的。对象存储结构提供的性能是目前其它存储结构难以达到的,如ActiveScale对象存储文件系统的带宽可以达到10GB/s。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值