一种可扩展的基于对象的存储系统及其控制方法

文档序号:6519478阅读:128来源:国知局
专利名称:一种可扩展的基于对象的存储系统及其控制方法
技术领域
本发明属于计算机信息存储技术领域,具体涉及一种可扩展的基于对象的存储系统及其控制方法。
背景技术
理想的存储系统应该具有下列五个特征安全性、跨平台数据共享、高性能、可扩展性及智能性。现今广泛使用的直接存取存储(DAS)、附网存储(NAS)和存储区域网(SAN)三种结构均存在不同程度的缺陷,难以同时具备上述五个特征;这些系统的本质始终没有改变,即以块(Block)或文件(File)为基本传输单位,缺少以对象(Object)为接口的存储系统所具有的智能等特性。随着存储需求的增加及存储应用日益复杂,以块或文件为基础的存储接口限制了存储工业的发展。
在地震分析、基因分析、核爆炸仿真模拟等许多前沿性的研究领域中,要求存储容量至少在1TB、甚至1PB以上,而且容量需求还在不断增长。与此同时,随着网络的普及和多媒体应用推广,对带宽的要求也在不断同步提高,某些重要领域甚至要求存储系统具有1TB/S的带宽。而现有存储系统沿用外部存储设备模式,不适应网络发展需求。主要表现为网络存储协议复杂(存储协议簇如SCSI、ATA-5、SATA、FC、iSCSI、iFCP、USB等;网络协议簇如IEEE802.x、ATM、TCP/IP、UDP、RTP/RTCP、FTP、GridFTP、SNMP等)、管理复杂、效率低、客户使用不便。现有存储设备是个哑终端,只包含数据,元数据信息则由主机组织和管理,存储设备只是被动响应;安全机制由主机实现,存储设备上的数据缺乏保护(如一块硬盘从一台主机接插到另一台主机,其数据仍然可读出);而且,如前所述,存储协议的复杂带来接口种类繁多,协议变换开销大。
由于受到服务器与存储设备连接这种传统存取模式的制约,尽管可以通过挂接高密度、大容量存储设备的方式来满足容量上的要求,但它不能同时提高存储带宽。而且大量存储设备上的I/O数据都需经由服务器转发给客户端,这种工作模式不仅容易导致外设通道拥塞,还会因为数据存取和传输过程中经历的多次存储转发,增加系统开销和传输延迟,导致平均数传率降低和服务等待时间加长。特别是当大量客户发出请求时,上述问题会更加突出,形成“服务器瓶颈”。而且,由于存储设备智能性不高,系统自适应能力低,不能主动适应应用环境的变化,这样,客户的存取服务得不到保证,又加重了管理人员的负担。
因此,有必要构造一种基于全新的对象(Object)接口,充分利用对象存储的特性,使系统具有良好的扩展性能、智能性、可提供高速数据传输率且可缓解服务器负载的海量存储系统,以满足人们日益苛刻的存储要求。

发明内容
本发明提出一种可扩展的基于对象的存储系统及其控制方法,目的在于克服现有海量存储系统的系统结构和用户服务模式的不足,将文件(file)、块(block)方式结合起来提出一种全新的对象接口(Objectinterface);从系统结构的角度构造一种可满足人们对容量、带宽需求不断增长的海量存储系统,并减少服务器负载、提高I/O服务性能。
本发明一种可扩展的基于对象的存储系统,包括通过网络连接的1个元数据服务器、N个对象存储节点以及M个客户端;(1)元数据服务器实现多个存储对象的管理,以及数据在多个存储对象上的映射;各元数据服务器依次通过元数据服务器网络接口、元数据服务器网络通道连入网络;(2)对象存储节点由基于对象的存储控制器通过J个存储设备通道连接J套存储设备组成,负责对象数据的存储;A.基于对象的存储控制器包括运行控制模块、存储设备接口模块以及网络接口模块,各模块之间通过外围组件互连扩展总线PCI-X物理连接;B.所述的运行控制模块包括CPU、RAM和EPROM,相互之间通过外围组件互连扩展总线PCI-X物理连接,提供计算能力、方法运行环境与调度能力;C.存储设备接口模块由J个存储设备接口构成,提供该控制器与存储设备连接;D.网络接口模块包括K个网络接口;各对象存储节点通过各自的k个网络接口和k个网络通道连入网络;(3)各客户端依次通过客户端网络接口、客户端网络通道连入网络;(4)元数据服务器与客户端之间通过网络完成元数据服务器对客户的认证、授权及返回客户请求的存储对象的映射表;客户端和对象存储节点的存储设备之间通过网络进行数据的传输;元数据服务器和对象存储节点的存储设备之间通过网络实现元数据服务器对存储设备的元数据管理;上述I、J、K、M、N均为自然数。
所述的可扩展的基于对象的存储系统,其特征在于,根据性能、成本所述存储设备接口采用SCSI、FC、IDE或SATA执行面向块设备级协议的接口;所述存储设备为各类接口的磁盘驱动器;所述网络通道接口可以采用相同或不同的形式,且不局限于任何网络形态,各网络接口可以接入同一网络或不同网络中,按基于对象存储的协议接受客户请求。
本发明可扩展的基于对象的存储系统的控制方法,顺序包括下述步骤(1)元数据服务器初始化完毕后,存储系统接收客户请求,并对其进行身份验证,通过验证的合法客户请求,进行下一步骤,否则作为非法客户请求处理;(2)判断客户请求的对象类型,进行相应处理对根对象的处理请求转步骤(3),写用户对象请求转步骤(4),读用户对象请求转步骤(5),对分区对象的请求转步骤(6),对集合对象的请求转步骤(7);(3)对根对象的处理请求A.判断该根对象是否请求新注册,不是则进行相应的对象存储节点OSN管理,B.若是注册新的根对象,则将该对象存储节点OSN格式化为基于对象的存储逻辑单元,C.创建分区对象,D.元数据服务器记录相关信息,E.请求处理结束;(4)写用户对象请求A.元数据服务器返回客户有关用户对象对对象存储节点OSN的映射表及授权信息,B.客户依据映射表信息与相关对象存储节点OSN建立网络连接及发送基于对象的写命令,C.对象存储节点OSN响应客户发来的写用户对象命令,D.对象存储节点OSN与元数据服务器建立连接并提交处理用户对象请求而变更的元数据信息,E.元数据服务器更新相关的元数据信息并向对象存储节点OSN发送元数据更新成功的确认信息,
F.请求处理结束;(5)读用户对象请求A.元数据服务器返回客户有关用户对象对对象存储节点OSN的映射表及授权信息,B.客户依据映射表信息与相关对象存储节点OSN建立网络连接及发送基于对象的读命令,C.对象存储节点OSN响应客户发来的读用户对象命令,D.对象存储节点OSN将读用户对象所产生的结果返回给客户端,E.请求处理结束;(6)分区对象的请求A.检索分区对象,B.返回客户相应的请求信息,C.请求处理结束;(7)集合对象的请求A.创建或检索集合对象,B.返回客户相应的请求信息,C.请求处理结束。
本发明的存储系统的控制方法如图4所示。
可扩展的基于对象的存储系统SOSS(Scalable Object-based StorageSystem)是按存储对象提供存储服务的解决方案。SOSS将传统的基于块的文件系统的两部分——用户相关部分和存储相关部分进行分割。用户相关部分通过逻辑数据结构(如目录和文件的元数据部分)向用户提供对象调用接口(由元数据服务器管理);存储相关部分完成这些目录和文件的数据到底层物理设备逻辑块上的映射(由对象存储节点提供)。在存储系统SOSS中,对象是存储的逻辑单元,由全局对象ID(object ID)唯一确定,对象包含数据(data)、属性(attributes)和方法(methods)。存储系统SOSS有四个主要组成部分客户端(Host或Applicationservers),由可扩展的基于对象的存储控制器(Object-Based StorageController,OBSC)组成的对象存储节点(Obiect-based Storage Node,OSN),基于对象的文件系统(Object-based File System,OFS),元数据服务器(Metadata Server,MS)。各部分设计如下客户端运行在客户端的应用程序看到的是具有标准的POSIX文件系统语义的文件系统。特殊的应用可不通过文件系统直接访问对象。
对象存储节点OSN对象存储节点负责对象数据的存储。基于对象的存储可根据存储对象的属性加载相应的方法(规则或策略),故具有智能处理能力,如将数据用对象方法过滤后再传输。
元数据服务器MS实现多个存储对象的管理,以及数据在多个存储对象上的映射。其中MS通过网络对对象存储节点OSN实现管理功能,对客户端实现访问控制的功能;客户端与对象存储节点OSN之间实现数据传输功能。
基于对象的文件系统OFS采用object metadata代替inode data,元数据服务器MS负责object metadata的一致性管理,OFS基于标准Linuxext2文件系统,带有日志(joumaling)文件系统特性。
存储对象(Object)由数据(data)、属性(attributes)和方法(methods)构成,存储系统SOSS用对象属性页描述对象的特性,如对象的类型、对象的创建时间、大小等;对象的方法可针对对象的属性按照一定的规则(或策略)加载/卸载。对象分为四种类型根对象(Root Object),分区对象(Partition Object),集合对象(Collection Object)和用户对象(UserObject)。一个对象存储节点(OSN)有且仅有一个根对象,分区对象包含零个或多个用户对象(或集合对象),分区对象的数据区只含用户对象ID列表,分区对象的属性包括分区内的用户对象数目,分区内用户对象占用的空间等。集合对象用于实现用户对象的快速检索,一个分区对象可以包含零个或多个集合对象,一个用户对象可以属于零个或多个集合对象。对于分区对象,集合对象与用户对象的地位是等同的。对象存储节点内用户对象占绝大多数。所有对象以分区对象ID和用户对象标识,当对象的分区对象ID和用户对象ID值均为零时为根对象;当对象的分区对象ID为非零而用户对象ID值为零时为分区对象;当对象的分区对象ID和用户对象ID的值均不为零时为用户对象或集合对象。SOSS存储系统带来的一个明显的优点是具有较高的智能。在对象存储节点OSN构成的SOSS存储系统中,传统文件服务器上层的用户相关部分,由元数据服务器MS完成;而下层的存储相关部分下移到对象存储节点OSN中,相应的设备接口也从基于块或文件的接口变为基于对象接口。这样,文件系统的上层只负责把文件名等逻辑名称映射为对象ID,负载减小约90%,对象ID与磁盘块的映射在对象存储节点OSN内完成,元数据服务器MS不易成为处理I/O请求路径上的“瓶颈”,而且,可使用多台元数据服务器并行工作,解决元数据服务器MS的“瓶颈”问题,系统可扩展性强。
本发明具有如下特点(1)系统的可扩展性好,添加新的对象存储节点OSN只需向元数据服务器注册(注册过程后文详述)。由于元数据服务器MS只管理元数据,增加的负载很小,方便海量存储系统的扩容而不影响系统性能,且用户的规模扩大时,系统集合带宽呈线性增加。
(2)对象存储节点可根据应用环境的变化,动态加载相应的规则(rules)或者是策略(policy),实现诸如负载平衡、热点数据迁移。
(3)依据存储对象的属性,可将存储对象组织在多个对象存储节点内使对象存储节点的运行具有高度并行性。除了可以实现并行存取操作外,还可以实现对不同对象请求的并行传输。
(4)实现集中对象元数据的管理与分布对象数据的存取,保证管理的高效率与存储的高性能。
(5)数据直接在对象存储节点与用户之间传输,缩短了I/O路径,减少了系统延迟,提高了平均数传率。
基于对象的存储,可依据对象属性(诸如QoS需求等),通过加载/卸载对象的操作方法,使对象存储节点智能性提高。多个对象存储节点协同工作,实现存储系统的自组织和自管理。


图1为本发明的存储系统组成结构示意图;图2为由基于对象的存储控制器组成的对象存储节点的结构示意图;图3为本发明的存储系统实施例示意图;图4为本发明的存储系统的控制方法示意图。
具体实施例方式
如图1所示,本发明包括I个元数据服务器200.1~200.i和N个可扩展的对象存储节点900.1、900.2、…、900.n,元数据服务器200.1~200.i通过元数据服务器网络接口221.1~221.i连入网络400,同时通过网络与对象存储节点900.1、900.2、…、900.n相连;对象存储节点900.1、900.2、…、900.n分别通过各自的k个网络接口121.1~121.k连入网络,M个客户端300.1~300.m通过客户端网络接口321.1~321.m连入网络。元数据服务器200.1~200.i通过元数据服务器网络通道220.1~220.i,客户端300.1~300.m通过客户端网络通道320.1~320.m完成元数据服务器200.1~200.i对客户的认证、授权及返回客户请求的存储对象的映射表;客户端通过客户端网络通道320.1~320.m,对象存储节点通过各自的k个网络通道120.1~120.k,进行数据的传输;元数据服务器200.1~200.i通过元数据服务器网络通道220.1~220.i,对象存储节点通过各自的k个网络通道120.1~120.k,实现元数据服务器200.1~200.i对存储系统元数据管理。
图2显示了本发明的对象存储节点900的结构方块图。本发明的对象存储节点900由基于对象的存储控制器100通过存储设备接口模块112接存储设备113组成。基于对象的存储控制器100包含运行控制模块140、存储设备接口模块112以及网络接口模块122,各模块之间通过外围组件互连扩展总线PCI-X130物理连接。
运行控制模块140具体包括CPU 142、RAM 141和EPROM 143,提供计算能力、方法运行环境与调度能力。
存储设备接口模块112由存储设备接口111.1~111.j构成,提供该控制器与存储设备连接。存储设备主要是各类接口的磁盘驱动器,但不限定于该形式的存储设备。存储设备接口根据性能、成本采用SCSI、FC、IDE及SATA等执行面向块设备级协议的接口。
网络接口模块122由网络通道接口121.1~121.k组成,网络接口可以采用相同或不同的形式,且不局限于任何网络形态,各网络接口可以接入同一网络或不同网络中,按基于对象存储的协议接受客户请求。
利用本发明的基于对象接口的存储节点组建而成的存储系统,改变了传统的数据管理方式和数据存储方式。传统文件系统或数据库系统中琐碎的底层数据操作管理将移至对象存储节点900中进行,部分原来由客户端应用程序承担的数据处理也移至对象存储节点900中处理。利用可扩展的对象属性表示和灵活的数据组织形式,使得对象存储节点900可用于构建适用于多种应用的存储系统,如Web服务系统、数据库系统、文件服务系统等;利用存储对象的操作方法及方法的动态调度机制,很容易实现一个具有自管理功能的存储系统,如自动恢复、自动负载均衡、自动热点迁移等。
附图3是本发明的一个具体应用实例,元数据服务器200.1使用的是IBM xSeries 346Type 8840服务器(元数据服务器根据实际应用的需要可扩展),通过网络接口适配器接入由Cisco公司的Catalyst 3750SERIES千兆交换机形成的千兆以太网400,4个磁盘型号为ST173404LC的磁盘113.1、113.2、113.3、113.4接入基于对象的存储控制器100.1、100.2、100.3、100.4组成对象存储节点,并形成对象存储网络,客户端300.1、300.2、300.3对对象的访问请求分为根对象、分区对象、集合对象和用户对象等四种请求。其中前两种在元数据服务器200.1完成,而客户对用户对象的请求包括读用户对象、写用户对象等操作先要通过元数据服务器授权并获得对象在对象存储节点上的映射表信息。其中对用户对象的操作会涉及到大量数据流动,而其它请求是对对象存储系统的管理,所涉及的数据量相对较少。按照系统安全认证机制和对象数据分流的控制方法,系统运行时,元数据服务器将对每一个客户请求进行客户身份、权限检查,并对合法有效的请求进行授权。
本存储系统处理客户基于对象的请求分为对根对象,分区对象,集合对象和用户对象的请求处理。需要强调的是,在对象存储节点OSN可接收和处理基于对象的存储命令之前,对象存储节点OSN需要向元数据服务器注册。附图4为本发明存储系统的控制流程。
权利要求
1.一种可扩展的基于对象的存储系统,包括通过网络连接的I个元数据服务器、N个对象存储节点以及M个客户端;(1)元数据服务器实现多个存储对象的管理,以及数据在多个存储对象上的映射;各元数据服务器依次通过元数据服务器网络接口、元数据服务器网络通道连入网络;(2)对象存储节点由基于对象的存储控制器通过J个存储设备通道连接J套存储设备组成,负责对象数据的存储;A.基于对象的存储控制器包括运行控制模块、存储设备接口模块以及网络接口模块,各模块之间通过外围组件互连扩展总线PCI-X物理连接;B.所述的运行控制模块包括CPU、RAM和EPROM,相互之间通过外围组件互连扩展总线PCI-X物理连接,提供计算能力、方法运行环境与调度能力;C.存储设备接口模块由J个存储设备接口构成,提供该控制器与存储设备连接;D.网络接口模块包括K个网络接口;各对象存储节点通过各自的k个网络接口和k个网络通道连入网络;(3)各客户端依次通过客户端网络接口、客户端网络通道连入网络;(4)元数据服务器与客户端之间通过网络完成元数据服务器对客户的认证、授权及返回客户请求的存储对象的映射表;客户端和对象存储节点的存储设备之间通过网络进行数据的传输;元数据服务器和对象存储节点的存储设备之间通过网络实现元数据服务器对存储设备的元数据管理;上述I、J、K、M、N均为自然数。
2.如权利要求1所述的可扩展的基于对象的存储系统,其特征在于,根据性能、成本所述存储设备接口采用SCSI、FC、IDE或SATA执行面向块设备级协议的接口;所述存储设备为各类接口的磁盘驱动器;所述网络通道接口可以采用相同或不同的形式,且不局限于任何网络形态,各网络接口可以接入同一网络或不同网络中,按基于对象存储的协议接受客户请求。
3.如权利要求1或2所述可扩展的基于对象的存储系统的控制方法,顺序包括下述步骤(1)元数据服务器初始化完毕后,存储系统接收客户请求,并对其进行身份验证,通过验证的合法客户请求,进行下一步骤,否则作为非法客户请求处理;(2)判断客户请求的对象类型,进行相应处理对根对象的处理请求转步骤(3),写用户对象请求转步骤(4),读用户对象请求转步骤(5),对分区对象的请求转步骤(6),对集合对象的请求转步骤(7);(3)对根对象的处理请求A.判断该根对象是否请求新注册,不是则进行相应的对象存储节点OSN管理,B.若是注册新的根对象,则将该对象存储节点OSN格式化为基于对象的存储逻辑单元,C.创建分区对象,D.元数据服务器记录相关信息,E.请求处理结束;(4)写用户对象请求A.元数据服务器返回客户有关用户对象对对象存储节点OSN的映射表及授权信息,B.客户依据映射表信息与相关对象存储节点OSN建立网络连接及发送基于对象的写命令,C.对象存储节点OSN响应客户发来的写用户对象命令,D.对象存储节点OSN与元数据服务器建立连接并提交处理用户对象请求而变更的元数据信息,E.元数据服务器更新相关的元数据信息并向对象存储节点OSN发送元数据更新成功的确认信息,F.请求处理结束;(5)读用户对象请求A.元数据服务器返回客户有关用户对象对对象存储节点OSN的映射表及授权信息,B.客户依据映射表信息与相关对象存储节点OSN建立网络连接及发送基于对象的读命令,C.对象存储节点OSN响应客户发来的读用户对象命令,D.对象存储节点OSN将读用户对象所产生的结果返回给客户端,E.请求处理结束;(6)分区对象的请求A.检索分区对象,B.返回客户相应的请求信息,C.请求处理结束;(7)集合对象的请求A.创建或检索集合对象,B.返回客户相应的请求信息,C.请求处理结束。
全文摘要
一种可扩展的基于对象的存储系统及其控制方法,属于计算机信息存储技术领域,目的在于克服现有海量存储系统的系统结构和用户服务模式的不足,将文件、块方式结合起来提出一种全新的对象接口。系统包括通过网络连接的I个元数据服务器、N个对象存储节点以及M个客户端;客户端、对象存储节点、元数据服务器之间实现三方通信,系统可扩展性强,系统存储容量与数据传输集合带宽可同步增长,并且,基于对象的存储使系统具有自适应能力。本发明改变了传统的数据管理和控制方式,对象存储节点OSN完成传统文件系统繁琐的底层数据管理功能,MS实施元数据管理。系统在对象存储的基础上实现了自适应的管理功能。
文档编号G06F17/30GK1728665SQ20051001916
公开日2006年2月1日 申请日期2005年7月26日 优先权日2005年7月26日
发明者冯丹, 王芳, 曾令仿, 刘群, 周可, 施展, 李洁琼, 许蔚 申请人:华中科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1