分布式主动混合存储系统的制作方法

文档序号:11450206阅读:453来源:国知局
分布式主动混合存储系统的制造方法与工艺

优先权声明

本申请要求2014年10月3日提交的新加坡专利申请no.10201406349v的优先权。

本发明涉及一种用于数据中心的存储系统。更具体地说,本发明涉及一种用于数据中心的分布式主动混合存储系统。



背景技术:

目前的存储装置或容量具有很少的智能或者就没有智能。它们是可被指示执行简单的读取/写入操作的虚拟装置。它依赖于存储服务器中的一组系统软件来提取基于块的存储装置。数据中心的数据越多,就需要越多的存储服务器来管理装置并提供存储摘要。这不仅增加了硬件成本,而且还增加了服务器维护的成本。

随着中央处理单元(cpu)和非易失性存储器(nvm)技术的发展,越来越可行的是,将系统和集群软件实现和其它数据管理的功能并入较小的控制板以优化系统的效率和性能,从而降低总拥有成本(toc)。nvm是一种以非常高的速度和/或非常低的延迟访问时间来存储数据的固态存储器和存储技术,并且即使随着电力的移除nvm仍会保留存储的数据。nvm技术的例子包括但不限于stt-mram(自旋力矩转移mram)、reram(阻变ram)和闪存储器。也可以通过各种不同的nvm技术的混合或组合来提供nvm,以实现成本和性能之间平衡。

因此,需要一种系统,其利用cpu和nvm技术来给存储装置提供智能并减少或消除它们对用于这种智能的存储服务器的依赖。此外,结合附图和本公开文本的背景,根据随后的具体实施方式和附随的属权利要求,其它期望的特点和特征将变得明显。



技术实现要素:

根据本发明的一个方面,公开了一种主动存储系统。该主动存储系统包括存储装置、非易失性存储器和主动驱动控制器。该主动驱动控制器在主动存储系统中执行数据管理和/或集群管理,该主动驱动控制器还包括用于至少接收对象和/或文件数据的数据接口。

根据本发明的另一方面,还公开了另一种主动存储系统。该主动存储系统包括元数据服务器和一个或多个主动混合节点。每个主动混合节点都包括多个混合对象存储装置(hosd)和对应的多个主动驱动控制器,多个主动驱动控制器中的每个都包括用于至少接收对应hosd的对象和/或文件数据的数据接口。多个主动驱动控制器中的一个还包括主动管理节点,该主动管理节点与元数据服务器和多个主动驱动存储装置中的每个进行交互以管理和监控主动混合节点。

附图说明

在附图中,相同的附图标记是指所有单独视图中相同或功能相似的元件,将附图连同下面的具体实施方式一起并入说明书中,并形成说明书的一部分,附图仅通过非限制性实例的方式来示例各种实施例和说明根据本发明的各种原理和优势。

参考下面的附图,在下文中描述本发明的实施例,其中:

图1是描绘根据本实施例的主动驱动存储系统的例子的图示。

图2是描绘根据本实施例的主动驱动分布式存储系统体系结构的例子的图示。

图3是描绘根据本实施例的主动驱动存储系统的例子的方框图的图示。

图4是描绘根据本实施例的一对一的键值到对象的映射的的视图的图示。

图5是描绘根据本实施例的多对一的键值到对象的映射的视图的图示。

图6是描绘根据本实施例的一对多的键值到对象的映射的视图的图示。

图7是描绘根据本实施例的主动混合节点(ahn)体系结构的例子的方框图。

图8是描绘根据本实施例的主动管理节点(amn)软件体系结构的方框图。

图9是描绘常规分布式存储系统中的数据更新过程的方框图。

图10是描绘根据本实施例的分布式主动混合存储系统的示例性网络优化的方框图。

图11是描绘根据本实施例的交换机控制板(scb)中的可编程交换包转发流程的流程图。

图12是描述根据本实施例的在遇到hosd失效时的重建过程的流程图。

技术人员应该意识到,为了简单清晰,图中的元件是示例性的,并且不一定按比例绘制。

具体实施方式

下面的详细描述实际上仅是示例性的,并且不意指限制本发明或本发明的应用和用途。此外,不意指受本发明前面的背景或下面的详细描述所提出的任何理论的约束。本发明的目的是提出一种主动存储系统,该主动存储系统包括耦合到用于执行数据管理和集群管理的系统中的混合存储装置的主动驱动控制器,集群管理包括与元数据服务器和其它主动驱动控制器交互以发现和加入集群或形成和维持集群。根据本实施例的主动驱动控制器包括用于接收对象数据、文件数据和键值数据的数据接口。

参考图1,图100描绘了根据本实施例系统100的主动驱动存储系统的例子。主动驱动存储系统包括三个主要组成部分:应用服务器102、主动混合节点(ahn)104和主动管理节点(amn)106。ahn104是一种具有附接的硬盘驱动器(hdd)112和非易失性存储器(nvm)110的混合存储节点。多个ahn104可以形成集群120。amn106包含少量的nvm作为存储介质。数据包130经由网络140在应用服务器102和ahn104之间流动。

参考图2,其描绘了根据本实施例的主动驱动分布式存储系统200的体系结构的例子。主动驱动分布式存储系统包括经由因特网204耦合到多个主动混合驱动器206的应用/客户端服务器202。在数据中心配置中,主动混合驱动器206可被安装在机架(诸如42u机架210)中,该机架包括用于将安装在其中的主动混合驱动器206耦合到应用/客户端服务器202的可编程交换机220。由于数据直接传输到主动混合驱动器206,所以这种体系结构消除了存储节点。

参考图3,其示例了根据本实施例的分布式主动混合驱动存储系统302的例子的示意图300。应用服务器102耦合到ahn104、304,其中一些ahn104包括nvm110、hdd112和主动驱动控制器306,其它的ahn304包括nvm110、固态驱动器(ssd)310和主动驱动控制器306。多个ahn104、304可形成集群315。为了提高性能和增加存储利用率,分布式主动混合存储系统302采用并行数据访问和纠删码。为了写入数据,应用服务器102可将数据分条到不同的ahn104、304,使用元数据服务器320跟踪部分数据。在读取数据期间,应用服务器102可同时从不同的ahn104、304中同步读取多个条以实现高性能。

参考图4,映射图400描绘了根据本实施例的一对一的键值与对像映射的视图。对象410由三部分组成:对象标识(oid)412、对象数据414和对象元数据416。oid412是对象410的唯一id/名称。对象数据414是对象410的实际内容。对象元数据416可以是对象410的任何预先设定的属性或信息。

键值(kv)接口建立在对象存储的顶部。映射层被设计和实现为将kv条目420映射到对象410。将kv映射到对象有各种机制。在如映射图400所描绘的一对一映射中,每个kv条目420都被映射到单个对象410。kv条目420包括键422、值424和其它信息426。键422被映射432到对象id412。值424被映射434到对象数据414。其它信息426可包括版本、校验和值大小,并被映射436到对象元数据416。

图5描绘了根据本实施例的多对一映射方案的视图的映射图500。多个kv条目520被映射到同一个对象510。对象id512表示键的范围522。具有在范围522内的键的kv条目520都被映射到这个对象510。对于每个条目520,其键524和属性526都被映射532到对象元数据516。属性526可通过在对象元数据516中搜索键524来找到。有存储在对象元数据516中的命名为“偏移”的属性526,当每个值528都被映射534到对像数据514时,“偏移”表示键值的存储代表的偏移540。

图6描绘了根据本实施例的一对多的键值到对象的映射的视图的映射图,其中每个kv条目620被映射到多个对象610。键622被映射到多个对象id612,每个对象id612都组合有后缀(#000、#001等)的键622。属性624存储在第一对象610的元数据614中。属性strip_sz626表示映射到每个对象数据616的值630的片段大小628。最后的对象数据616可存储比strip_sz628少的字节。备选地,每个对象610可存储不同的片段大小628,单个片段大小存储在对象614、615的元数据中。

参考图7,方框图700描绘了具有节点后台程序704的ahn702的体系结构。后台程序是作为后台进程运行的一种计算机程序,并且可以有许多后台程序,诸如混合对象存储装置(hosd)后台程序,该hosd后台程序包括一个或多个hosd或映射减少工作706,其在ahn702是大的大数据存储池的存储节点时能处理映射减少工作。还可以有实现的其它后台程序,诸如重建后台程序708或元数据分类后台程序(例如,以将数据分类以用于本地存储)。应用或客户端服务器(例如,服务器102)可将工作发布和安装到ahn702中执行,节点后台程序704中的消息处理程序710为ahn702提供了与应用/客户端服务器102通信的信息处理能力,其中客户端服务器可以是对象客户端712或键值(kv)客户端714。

ahn702还包括对象存储716、本地文件存储718和混合存储720,混合存储720包括hdd112和nvm110。本地文件存储包括对象元数据416(或对象元数据516、614、615)和对象数据文件414(或对象数据文件514、616)。对象存储716包括用于与对象客户端712接口的对象接口722和用于与kv客户端714接口的键值接口724。键值接口724负责kv到对象的映射,如图4、5和6所示的映射,对象存储716中的文件存储726负责对象到文件的映射。数据压缩和混合数据管理728也是对象存储716的控制形式。

更详细地描述了形成ahn702的操作和功能的软件体系结构和模块。可执行软件存储在用于程序代码存储的非易失性介质中,并在执行启动时通过ahn处理器将其召回到主存储器中。ahn702提供了与对象客户端服务器712和kv客户端服务器714中的应用接口的对象接口和键值(kv)接口。对象接口722是关于基础对象存储716的本地接口。对象存储716可被备选地实现为文件存储(例如,文件存储726)以将对象存储为文件。

软件有三个主要层:节点后台程序704、对象存储716和本地文件系统718。节点后台程序层704是指各种独立运行的程序或软件后台程序。消息处理后台程序710处理与其它anh、amn和客户终端的、用于形成和保持分布式集群系统并在客户端服务器和anh之间提供数据传输的、基于tcp/ip的通信协议。

重建后台程序708负责通过对来自相关的尚存的数据和校验码驱动器的数据进行解码而执行从系统中的失效驱动器重建丢失的数据的过程。映射减少后台程序706为映射减少框架中的工作跟踪提供映射减少和大数据分布式文件系统(hdfs)接口,以将数据分析任务指定给anh执行,使得处理所需要的数据可以在anh节点中的多个存储装置中的一个存储装置中被直接本地访问。客户端可安装程序后台程序730被配置为执行存储在附接到anh的任何一个或多个存储装置上的程序。由于应用或客户端服力器可将工作发布和安装到ahn中执行,所以客户端可安装程序后台程序可与客户终端进行通信,以将可执行程序上传和安装到附接到anh的一个或多个存储装置。

运行在ahn702中计算的数据的原则是使计算更接近存储,即后台程序大部分时间只需要访问来自本地ahn702的数据和将工作的结果发送回应用或客户端服务器。在许多情况下,数据计算的结果的大小要比用于计算的本地数据小很多。这样,可以减少需要在网络140上传输的数据量,并可随着存储资源分配大数据处理或计算,以便大大提高整个系统性能。

对象存储716是一种将对象接口722和kv接口724提供到节点后台程序层704的软件层。对象存储层716还通过文件存储726将对象映射到文件,以使对象能被下层的文件系统存储和管理。数据压缩和混合数据管理是对象存储层716中的另外两个主要模块(为了简单通过图7的单模块728示出)。根据本实施例,数据压缩分别对数据写入和读取执行行内数据编码和解码。混合数据管理根据本实施例管理混合存储,以使经常使用的数据存储在nvm中。在对象存储层716中还可实现其它的数据管理服务,诸如存储服务质量(qos)。

本地文件系统层718通过将每个对象分解成一个或多个存储装置的对应扇区块,来提供用于存储对象元数据416和对象数据414的下层的一个或多个存储装置的数据块的文件系统管理。根据本实施例,用于删除对象的数据扇区块被本地文件系统层718回收,以便将来分配用于存储新创建的对象的扇区空间。

参考图8,方框图800描绘了根据本实施例的主动管理节点(amn)802的软件体系结构的例子。amn802可经由消息处理后台程序812与amn802所属的集群中的其它amn(如果有)804、ahn806、应用服务器808和交换机控制板(scb)交换机810进行通信。

amn802是一种多功能节点。除了集群管理和监控功能814之外,由于新节点的加入或、失效和不活动的ahn、或对ahn的不平衡的数据访问,amn802从数据迁移和重建后台程序816发送迁移数据的指令。此外,amn802还能够通过经由交换机控制器后台程序818向scb交换机810发送向发送器未指定的目的地转发数据包的指令,有利地减少网络流量。

消息处理程序后台程序812实现了与其它amn(如果有)、集群中的ahn、应用服务器和可编程交换机的通信协议。集群管理和监控后台程序814提供了形成和保持有关集群的信息的算法和功能。客户服务器与集群管理和监控后台程序814进行通信,以在集群中提取最新的hosd拓扑结构,以便确定相应的hosd来存储或检索数据。基于集群的监控状态,由于新节点的加入、或失效和不活动的ahn、或对ahn的不平衡的数据访问,amn802从数据迁移和重建后台程序816发送迁移数据的指令。此外,amn802还可以经由交换机控制器后台程序818向可编程交换机发送复制和转发数据包到目的地的指令,以自主地减少客户端通信的负载。

参考图9,方框图900描绘了具有为可靠性而实现有纠删码的常规分布式存储系统中的数据更新过程。应用服务器902经由网络交换机904耦合到包括数据节点906(即,dn1、dn2,…,dnn)和校验节点908(即,pn1、pn2和pn3)的存储器。校验节点908保持来自dn1至dnn的编码数据,以便每当将数据写入数据节点(例如,在步骤912将数据w写入dn1),就将数据复制到校验节点908(例如,在步骤914将数据w复制到pn1、pn2和pn3)。如果校验节点908的编码数据由reedsolomon码来计算,则存储系统可同时维持三个节点失效。元数据服务器910还经由网络交换机904耦合到数据节点906和校验节点908。

参考图10,方框图1000示例了根据本实施例的分布式主动混合存储系统1002的示例性网络优化。应用服务器902经由网络交换机904与分布式主动混合存储系统1002进行通信。网络交换机904与分布式主动混合存储系统1002的可编程交换机1004进行接口,以与ahn数据节点1006和ahn校验节点1008通信。可编程交换机1004包括流量表1010和校验节点索引1012,并响应于来自amn1014的可编程命令进行操作。数据节点1006和校验节点1008可以是在amn1014控制下的主动混合驱动存储集群中的hosd。应用服务器902和存储节点(即,数据节点1006和校验节点1008)之间的数据传输使用tcp/ip作为传输和路由协议在网络上实现。数据节点1006和校验节点1008是主动混合节点,诸如ahn702(图7),并使用主动混合节点702的软件体系结构解除了将多个数据副本发送到不同存储节点的应用服务器902。这种结构还降低了数据中心网络交换机904带宽的消耗。

参考图11,流程图1100描绘了根据本实施例的、在可编程交换机1004(图10)的交换机控制板(scb)中的、用于转发应用服务器902的引入数据的可编程交换包转发流程。当从应用服务器902接收1102数据包时,可编程交换机1004的scb检查数据包报头和对应的有效载荷参数信息,并检查1104流量表1010和校验节点1012,以确定该数据包是否是写入数据包并将该包转发到ahn节点1006。

如果在流量表中没有找到1106相关条目,则将数据包报头和相关的有效载荷参数发送到amn1014以获得用于这个包或流量的新条目,并根据从包含新表条目信息的amn1014接收的响应,在可编程交换机1004中更新1108流量和校验节点表。当找到1106该条目时,将数据包转发1110到包含该条目所指示的目标hosd的ahn。从应用服务器902接收的具有相同数据的独立数据写入请求通过可编程交换机1004来重复1112、1114,以转发到与校验节点表1012中的对应条目所列出的数据节点1006相关的每个校验节点1008。校验节点1008和数据节点1006由分布式存储集群中的hosd来提供。

参考图12,流程图1200描绘了在一个或多个hosd失效时的重建过程。最初,ahn识别1202其附接的hosd/hdd失效。一旦识别出替代驱动器,就开始重建过程。在单个hosd/hdd失效1204和来自同一ahn的多个hosd/hdd失效1206的情况下,附接到出现hosd失效的ahn的amn802的重建后台程序使用ahn702包含的对象映射开始1208重建过程。首先,重建后台程序816搜索1210在所附接的nvm中可用的数据,并将其直接复制到替代hosd/hdd。在重建每个对象之后或者在重建1214多个对象之后,更新1212也用作重建映射的对象映射。

对于多个hosd/hdd失效横跨不同的ahn1216发生的情况,每个ahn将负责自己的hosd/hdd重建1218。对于每个ahn,重建过程是重建后台程序816,该重建后台程序816查找1220在所附接的nvm中可用的数据并将其直接复制到替代hosd/hdd,以及在重建每个对象之后或者在重建1214多个对象之后,更新1212也用作重建映射的对象映射。

因此,可以看出,本实施例提供了一种系统,其利用cpu和nvm技术给存储装置提供智能并减少或消除它们为了这种智能而对该存储服务器的依赖。此外,本实施例提供了一种有利的方法,其通过使数据计算更接近数据存储和只转发数据计算结果来减少网络通信,其中数据计算结果大小比在网络上用于计算的本地数据小很多。在这种方式中,能够减少需要在网络上传输的数据量,并能随着存储资源分配大数据处理或计算,从而大大提高了整个系统性能。虽然在本发明的上述详细描述中已经给出了示例性实施例,但应该意识到会存在大量变化。

应该进一步意识到,示例性实施例仅是示例性的,并不意指以任何方式限制本发明的范围、适用性、操作或配置。相反地,前述详细描述将为本领域的技术人员提供实现本发明的示例性实施例的方便路线图,应该理解,在不偏离附属权利要求所阐述的本发明的范围的情况下,可在示例性实施例所描述的元件的功能和布置和操作的方法方面制造各种变更。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1