一种针对由异构存储设备组成的对象存储系统的对象分布算法的制作方法

文档序号:12119205阅读:579来源:国知局
一种针对由异构存储设备组成的对象存储系统的对象分布算法的制作方法与工艺

本发明涉及计算机分布式存储系统领域,尤其涉及针对异构存储设备组成的对象存储系统中的对象分布算法。



背景技术:

随着移动互联网的不断发展,数据呈现一种爆炸式的增长,传统文件系统已经无法满足现有应用的大容量、高性能和高可靠性等要求,对象存储系统具有块存储、文件存储不可比拟的可靠性、可扩放性、可管理性和共享性等特点,采用对象存储系统存储海量数据已经成为一种主流的解决方案。对象存储系统由对象存储设备(Object-Based Storage device,OSD)和元数据服务器(Metadata Server,MDS)组成,对象是读写的基本单位。OSD管理对象存放在硬盘的块位置,对外提供对象读写接口。

对象存储系统当中首先需要解决对象的管理问题,常用的方法是采用对象分布算法管理对象和其存放的存储节点映射关系。数据分布算法必须具有如下特点:第一,对象首先需要随机存放到成千上百个OSD节点,同时根据OSD节点自身的能力(存储容量,存储性能,带宽等)设置其权值,每个OSD节点存储的对象数目和其权值成正比,保证节点的负载均衡;第二,在存储系统的运行当中,需要增加新的存储设备满足存储需求,达到寿命的硬盘需要替换,系统必须能够自动迁移对象保证负载均衡,同时为了不影响系统性能,必须迁移尽可能少的对象;第三,为了保证对象可靠性,对象分布算法需要支持对象冗余机制,比如副本和纠删码等。

当前的对象分布算法仅仅单独考虑存储设备的容量或性能,而诸如SSD、PCM、RRAM等新型存储介质拥有比HDD更优的性能,由于工艺及其介质自身特性,它们的容量比HDD低。异构存储设备组成的对象存储系统如果采用当前的对象分布算法将无法充分利用存储设备的容量或者性能,因为当前的对象分布算法若采用设备容量作为权值则无法充分利用存储设备的性能,若采用设备性能作为权值则无法充分利用存储设备的容量。因此当前的对象分布算法并不适用于异构存储系统。



技术实现要素:

为了解决异构存储系统的对象分布及其管理问题,本发明的目的在于提供一种针对由异构存储设备组成的对象存储系统的对象分布算法,能够充分利用存储系统中存储设备的性能和容量。

为了实现上述目的,本发明采用了以下技术方案:

上述针对异构存储设备的对象分布算法,包括初始化过程、对象查找过程和节点变化过程三个部分。

设存储系统的OSD和对象具有不同的标识符,初始化时,存储系统需要构造ring map(环形拓扑),ring map由容量型环形空间、性能型环形空间和OSD IP等描述OSD元数据的信息组成(不同的OSD具有不同的元数据信息)。因为容量型环形空间的构造过程和性能型环形空间构造过程相似,以下仅仅描述容量型环形空间的构造过程。首先根据OSD的容量大小决定其具有的虚拟节点数目,并且每个虚拟节点都具有唯一标识符,此处OSD容量和其具有的虚拟节点数目成正比。对各个OSD的虚拟节点通过哈希取模运算映射到同一个[0,2^32]的空间上,并且该[0,2^32]的空间首尾相连从逻辑上组成环形结构,称为容量型环形空间。性能型环形空间是独立于容量型环形空间的另一个环形结构,构造过程和容量型环形空间构造过程相似,唯一不同的是映射到性能型环形空间上的某个OSD的虚拟节点的数目和该OSD的性能成正比。

上述哈希取模运算使OSD的虚拟节点都被随机分布到环形结构内,且分布到任意位置的概率相等,由于具有唯一标识符,各个虚拟节点的位置不重叠。

客户端读取或写入对象时,首先读取本地配置文件,判断存储系统对客户端提供性能型还是容量型服务,比如归档应用只需要存储系统提供容量型服务,大数据处理等需要存储系统提供性能型服务。判断服务类型后,客户端此时从存储系统获取ring map,客户端对读写的对象进行哈希取模,若存储系统提供给客户端的是性能型服务,则对象映射到性能型环形空间;若存储系统提供给客户端的是容量型服务,则映射到容量型环形空间。从对象所在环形空间的位置为起始点顺时针查找相邻最近的虚拟节点,并确定该虚拟节点所对应的OSD,则该对象就存放在此OSD中,对象的定位过程(即查找过程)结束。此时,客户端从确定的OSD读取对象或写入对象至确定的OSD。

容量型环形空间和性能型环形空间在存储系统OSD变化后其变化相似。存储系统的OSD变化分为增加OSD、删除OSD两种情况。第一种情况,存储系统增加OSD后,根据新加入OSD的容量和性能分别计算其具有的虚拟节点数目,并将新加入OSD的对应虚拟节点通过哈希取模分别映射到容量型环形空间和性能型环形空间上,此时所有的客户端对其拥有的对象重新计算(是根据上述查找方法)存放的OSD位置,若OSD位置未发生变化,则此对象不发生迁移,若OSD位置发生变化,则此对象发生迁移。通过分析可以得出环形空间上新加入的虚拟节点会从相邻的虚拟节点迁移部分对象到自身存储(OSD是实体,它们映射在ring map上的是虚拟节点,OSD对应ring map的多个虚拟节点,对象是存储在OSD的,但是对象查找过程中算法是先找到存储该对象的OSD的虚拟节点,然后就可以找到该虚拟节点对应的OSD),其他对象不会发生迁移,因此对象迁移量可以保持在很小的范围内。第二种情况,删除OSD后,从容量型环形空间和性能型环形空间上删除此OSD的所有虚拟节点,并且每个客户端对其拥有的对象重新计算存放的OSD位置,若存储位置发生变化,则发生对象迁移。存储系统内存储的对象迁移完成后,使存储系统保持对象均匀分布。

本发明的有益效果体现在:

本发明考虑了异构存储设备的容量和性能的关系,可以使存储系统对外提供容量型和性能型两种存储服务,充分利用存储系统的容量和发挥存储系统的性能,特别适用于异构存储系统。

附图说明

图1a是存储系统OSD映射到环形空间的示意图(容量型环形空间);

图1b是存储系统OSD映射到环形空间的示意图(性能型环形空间);

图2是对象映射到性能型环形空间的示意图;

图中:VN01~08表示8个虚拟节点,id=1~3表示3个具有不同标识符的OSD,object表示对象。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步地详细说明。应当理解,此处所描述的实施例仅用于解释本发明的基本构想,并不用于限定本发明。

本发明针对异构存储系统设计了一种高效的、简洁的对象分布算法,其基于一致性hash算法和对象存储系统中存储设备的容量和性能关系的分析结果而提出,可以使存储系统对外提供容量型和性能型两种服务,与一致性hash算法相比,本发明的对象分布算法开销较低,具有较好的可应用性,本发明的对象分布算法具体步骤如下:

如图1a、图1b所示,本发明的对象分布算法首先构造容量型环形空间和性能型环形空间。首先根据存储系统OSD的容量和性能特性分别计算其具有的虚拟节点数目,容量型环形空间中每个OSD的虚拟节点数目可以为其中m是OSD数量之和,ci是第i个OSD的容量,min(ci)表示存储系统中容量最低的OSD的容量。这个公式表示每个OSD的虚拟节点数目和其容量成正比。同理可得,性能型环形空间中每个OSD的虚拟节点数目可以为其中pi表示第i个OSD的性能,min(pi)表示存储系统中性能最低的OSD的性能。

客户端对其对象进行读写操作时,客户端和存储系统的节点(存储系统中所有节点都存储ring map)通信,获取ring map信息,ring map中包括容量型环形空间、性能型环形空间和OSD IP信息等,由客户端读取其(客户端自身)配置信息,确定存储系统对此客户端提供的服务类型,若为容量型服务,则客户端计算对象映射在容量型环形空间的位置,从对象所在环形空间的位置为起始点顺时针查找相邻最近的虚拟节点,并确定该虚拟节点所对应的OSD,则该对象就存放在此OSD中,若为性能型服务,则客户端计算对象映射在性能型环形空间的位置,客户端查找存放对象的OSD的过程和容量型环形空间相似。客户端从ring map中获取存放对象的OSD IP信息后客户端和相应OSD通信完成对象读写操作。

环形空间的对象查找过程如图2所示,客户端A读取其配置文件信息,获取存储系统为客户端A提供性能型存储服务,客户端A从存储系统获取ring map,并且计算对象b在性能型环形空间的映射位置和其对应的OSD,从ring map中查询OSD IP信息,客户端A和存储系统通信完成对象b的读写。

存储系统OSD变化后,存储系统需要更新ring map。若是增加OSD的情况,存储系统分别根据新加入的OSD容量和性能计算其在容量型环形空间和性能型环形空间的虚拟节点数目,对每个虚拟节点哈希取模映射到对应环形空间,同时新加入OSD的信息也存储到ring map,向所有客户端推送最新的(即更新后的)ring map。若是因为存储设备失效、故障等原因删除存储系统的OSD,此时分别将OSD在容量型环形空间和性能型环形空间的虚拟节点删除,同时删除OSD IP信息等,并且向所有客户端推送最新的ring map。所有的客户端接收到更新后的ring map会调用各自的配置信息,重新计算(根据上述查找方法)其拥有的对象的最新存放位置,若对象的存储位置发生改变,则对象迁移到新的OSD。

本发明的对象分布算法使存储系统具有双模式运行状态,能够充分利用存储系统中存储设备的性能和容量,可以对外提供高性能存储服务和大容量存储服务。客户端只需要根据其自身应用特点显式选择不同的服务类型,具有较好的可应用性。同时,本发明的对象分布算法时间复杂度是O(log m),空间复杂度是O(m),因此开销较低。另外,本发明的对象分布算法可以更细粒度控制对象分布到存储设备的概率,一些访问频率较高的对象的副本以更高的概率分布到高性能存储设备,而一些占用较大空间的对象的副本可以以更高的概率分布到大容量存储设备,充分发挥存储系统的容量和性能特性。

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