背景技术
由于计算机技术的应用需求,数据呈爆炸性增涨的态势,因为基于商用化组件的集群存储具有高可扩展性,因此其正成为应对大数据的下一代存储系统体系架构。然而,随着系统规模的不断扩展,系统中的硬件失效已成为一种常态。这些硬件失效的主要原因有硬件过热、电源失效、磁盘损坏、网络配线与维护等。此外,由于自然灾害、黑客攻击等也会导致系统失效。各种失效会导致存储系统的可用性降低到95%至99.6%范围。这对于广大用户来讲是不可接受的。数据复制技术是提高系统可用性的一种传统方法,它通过对大量的数据复制多个副本,可以大大地提高系统的容错能力,也可以实现系统中的负载均衡,使得系统的整体性能也有所提高。
目前,已有大量的研究集中于动态的数据复制技术。在国内,王意洁等人提出在P2P系统中基于LDPC编码的动态数据复制算法Dyre,在结点邻居中保存数据块的副本来提高数据块的有效性。林伟等人针对数据复制系统的状态稳定性开发了一个基于Linux的逻辑卷管理器的远程数据复制系统并确保系统的工作方式处于正确的状态下。杨朝红等人提出了一个基于主从异步复制技术的容灾实时系统SDPR,它采用严格的主从异步复制技术和多线程技术来提高系统的性能。石柯等人提出一种RICMAN的数据复制方法来提高断续性连接移动自组网络的数据可用性,它将数据的副本复制到一系列拓补结构相对稳定和资源充足的特定结点上,为处于同一分区的结点提供数据服务。但是上面所述的数据复制技术的目的都是为了提高系统中的数据可用性,而并没有考虑将其利用到节省能耗的方面。
在一个典型服务器的主要组成部分中,一个CPU、一个主板、一个扩展插槽、一个IDE磁盘驱动器、一个风扇和一个DDR内存的峰值功率分别是40W、25W、25W、12W、10W、9W。从能耗的角度上来看,一台服务器的能量消耗并不是什么大的问题,但是从数据中心中的成百上千的服务器来看,整个数据中心的能量消耗就是一个非常需要解决的问题。
因此,如何在确保存储系统提供的总体服务质量不降低的前提下,还能够大幅度降低整个存储系统的能耗成为一个亟待解决的技术问题。
发明内容
本发明的主要目的在于克服现有技术的缺点与不足,提供一种基于数据行为的低能耗集群存储复制装置,该装置包括热结点集合和冷结点集合,根据结点类型的不同,上述服务器集合通过采用不同的处理方式,降低了数据中心的存储服务器的消耗。
本发明的另一个目的在于提供一种基于上述装置的低能耗集群存储复制方法,该方法通过对存储结点划分为热结点和冷结点,根据结点类型不同采用不同的处理方式,进而很好地降低了数据中心的存储服务器的高能量消耗问题。
本发明的目的通过以下的技术方案实现:一种基于数据行为的低能耗集群存储复制装置,包括:
元数据服务器,用于接收客户发送的文件读写请求,然后根据存储服务器的具体的负载情况,把请求转发到一台相应的存储服务器进行处理;
存储服务器,分为热结点集合和冷结点集合,其中:
热结点集合,用于存储数据量较小的且被客户频繁访问到的热点数据,一直处于工作状态,这些热点数据有多个副本,不同的副本数据存放在热结点集合里的不同结点上;
冷结点集合,用于存放一些数据量较大的、偶尔被客户访问的冷点数据,平时处于休眠状态,只有当客户请求需要访问冷结点时,才会被唤醒来处理客户的请求,处理完毕后,再次进入休眠状态。
一种基于上述装置的低能耗集群存储复制方法,根据存储服务器的具体的负载情况,将存储服务器分为热结点集合和冷结点集合,热结点集合处于常开状态,存储被客户频繁访问到的热点数据,并且这些热点数据有多个副本,不同的副本存放在热结点集合里的对应不同的结点上;冷结点集合存放数据量较大的、只会偶尔被客户访问的冷点数据,在无请求时自动转入休眠状态,一旦有请求到来就立即转回工作状态来处理请求。这种方法基于的原理是:客户的数据访问行为往往服从80/20法则,即80%的请求会集中于20%的热点数据,而只有20%的请求才会访问80%的冷点数据。因此,本发明在保证了存储集群系统性能的服务质量的前提下,能够大幅度地降低系统的能耗。
具体包括以下步骤:
(1)、客户向元数据服务器发送文件读写请求时,元数据服务器读取该请求的文件号,文件的读写操作信息,然后执行步骤(2);
(2)、元数据服务器从副本目录表中查找文件号,以检查该文件是否存在于内网中的其它结点上,如果找不到此文件号对应的记录,则元数据服务器向客户返回文件不存在的标识;如果找到该文件号对应的记录,则执行步骤(3);
(3)、元数据服务器递增该文件的访问次数,并将其更新到原记录之中,如果文件的访问次数超过存储系统中的热点阈值,则执行步骤(4),否则执行步骤(5);
(4)、元数据服务器将该文件标识为热点数据文件并更新到文件记录中,然后告之该文件所在的结点将该文件复制k份副本保存到热结点集合上的k个热结点里,其中k为最优副本数,然后再更新该文件的所在位置;
(5)、元数据服务器从文件记录中获取该文件的副本处于内网中的存储结点,并且根据这些结点号查找结点目录表,以确定这些结点是热结点还是冷结点,如果文件是位于热结点上,则执行步骤(6),如果文件是位于冷结点上,则执行步骤(8);
(6)、元数据服务器根据热结点的具体负载情况进行调度,将请求转发到一热结点上,然后执行步骤(7);
(7)、当热结点接收到转发的请求时,先确认该请求是读文件还是写文件,如果是读文件,热结点就将请求的文件数据直接传输给客户;如果是写文件,则等待接收客户发送数据;读写完数据文件之后,完成此次读写操作,退出;
(8)、元数据服务器通过网络接口唤醒休眠中的冷结点,并将请求转发到该冷结点上,然后执行步骤(9);
(9)、当冷结点接收到转发的请求时,先确认该请求是读文件还是写文件,如果是读文件,冷结点就将请求的文件数据直接传输给客户;如果是写文件,则等待接收客户发送数据;读写完数据文件之后,冷结点再次进入休眠状态,完成此次读写操作,退出。
优选的,所述步骤(4)中,热结点集合中的热点数据有k个副本,其中,k是最优副本数,通过以下公式求解:
k=ln(1-a)/ln(1-e-λT);
其中,a是数据的可靠性需求,λ是结点的失效率,T是数据的存储期限。最优副本数k,主要是为了提高访问数据文件的可靠性和并发性。可靠性是指能够保障在系统中某个结点发生错误造成数据访问的失效时,通过数据的复制,让数据文件存在多个副本,这样即使一个结点中的副本文件访问失效,也可以及时切换到另一个结点中访问其数据文件副本。并发性是指允许多个请求同时到来时能够并发访问不同结点中的相同副本内容。副本的数量越多,系统中的数据可靠性和并发性就越高,但是当副本的数量达到某个值之后,数据的可靠性就接近1,即使此时再增加副本的个数,系统的可靠性也不会有明显的提高,此时该副本的个数就是最优副本数。
作为一种优选,所述步骤(6)中,元数据服务器根据热结点的具体负载情况进行调度的方法是轮转调度算法,该算法是假设所有存储服务器的处理性能都相同,而不管存储服务器的当前连接数和响应速度,以轮转的方式依次将客户的请求转发到不同的存储服务器。该算法相对简单,不需要记录当前的连接状态,但是较不适用于存储服务器中处理性能不一样的情况。
作为另一种优选,所述步骤(6)中,元数据服务器根据热结点的具体负载情况进行调度的方法是最小连接调度算法,该算法是把当前的客户请求转发到当前连接数最小的存储服务器,记录各个存储服务器已建立连接的个数,元数据服务器通过各个存储服务器当前的连接数得到存储服务器的负载情况,从而把负载变化很大的请求均匀地分布到各个存储服务器上。从而能够实现负载均衡的策略。
所述步骤(3)中,存储系统中的热点阈值是根据历史文件访问次数来确定的。在实际应用中可以根据需求灵活设定,假如认为单个文件的访问次数达到系统中所有文件的总访问次数的10%为热点数据文件,则将热点阈值设置为历史文件总访问次数的10%。
本发明与现有技术相比,具有如下优点和有益效果:
1、本发明将存储服务器分为热结点集合和冷结点集合,即将每个结点区分为热结点和冷结点。其中,热结点都处于工作状态并存储少量的热点数据文件的副本,以对外提供服务并保证系统的服务质量。冷结点则存储非频繁访问的大量冷点数据,并将其置于低能耗状态,从而降低整个存储系统的能耗。
2、本发明中对热点数据文件进行多副本备份,以提高系统的容错能力和实现系统中的负载均衡。即使一个结点中的副本访问失效,也可以及时切换到另一个结点来访问其数据文件副本,从而大大提高了数据访问的可用性和并发性,而且还可以在存储系统处于高负载的情况下能够将访问相同数据的请求转发到不同的热结点上,减缓高负载服务器的压力。
3、本发明对热点数据进行多副本备份时,复制的对象仅包含少量频繁访问的热点数据,比现有的镜像复制技术要减少大量的存储开销。鉴于客户的数据访问请求服从80/20法则,仅备份热点数据足以满足数据的高可用性,而且还能节省存储空间。
具体实施方式
下面结合实施例及附图对本发明作进一步详细的描述,但本发明的实施方式不限于此。
实施例1
如图1所示,一种基于数据行为的低能耗集群存储复制装置,包括:
元数据服务器,主要负责向客户提供虚拟服务,客户发送的请求首先会到达元数据服务器,然后元数据服务器根据存储服务器的具体的负载情况,通过选择一种有效的调度算法,把请求转发到一台合适的存储服务器进行处理,当存储服务器处理完毕后就不需要再经过元数据服务器而是直接把结果直接返回到客户端,这样,元数据服务器在集群存储系统上就充当着一个负载均衡的角色;
存储服务器,分为热结点集合和冷结点集合,其中:
热结点集合,它存储数据量较小的且被客户频繁访问到的热点数据,它一直处于工作状态来保证存储系统的服务质量,这些热点数据是有多个副本的,不同的副本数据会存放在热结点集合里的不同结点上。多个副本数据能够为客户提供数据的高可用性,而且可以在系统处于高负载的情况下能够将访问相同数据的请求转发到不同的热结点上,减缓高负载服务器的压力;
冷结点集合,它存放一些数据量较大的,只会偶尔被客户访问的冷点数据,根据80/20法则,大部分客户请求都集中于热点数据,因此在通常情况下,冷结点都处于休眠状态,为存储系统节省大量能量,只有当客户请求需要访问冷结点时,它才会被唤醒来处理客户的请求,处理完毕后,它会再次进入休眠状态来节省能耗。
所述元数据服务器将使用到副本目录表查询客户请求的文件处于哪些结点中,还会使用到结点目录表查询文件所在的结点的负载情况以及该结点属于热结点还是冷结点,用来转发到合适的结点上来处理请求。
为了便于分析本发明,以下结合本实施例所述方法的算法流程图(图2)、冷结点的状态迁移图(图3)作详细分析。
如图2所示,本实施例所述方法如下:客户端向元数据服务器发送文件读写请求时,元数据服务器读取该请求的相关信息,如文件号,文件的读写操作等信息,然后元数据服务器从副本目录表中查找文件号,以检查该文件是否存在于内网中的其它结点上。如果找不到此文件号对应的记录,则元数据服务器向客户返回文件不存在的标识;如果找到该文件号对应的记录,则递增该文件的访问次数,并将其更新到原记录之中,如果文件的访问次数超过存储系统中的热点阈值,即文件符合热点数据文件的条件,元数据服务器就将该文件标记为热点数据文件并更新到文件记录中,然后告之该文件所在的结点将该文件复制k份副本保存到热结点集合上的k个热结点里,其中k为最优副本数,然后再更新该文件的所在位置。元数据服务器从文件记录中获取该文件的副本处于内网中的存储结点,并且根据这些结点号查找结点目录表,以确定这些结点是热结点还是冷结点。如果文件是位于热结点上,元数据服务器根据热结点的具体负载情况,选择一种有效的调度算法,如轮转调度算法、最小连接调度算法等,将请求转发到一个合适的热结点上;如果文件是位于冷结点上,元数据服务器通过网络接口唤醒休眠中的冷结点,并将请求转发到该冷结点上。当存储结点接收到转发的请求时,先确认该请求是读文件还是写文件,如果是读文件,存储结点就将请求的文件数据直接传输给客户;如果是写文件,则等待接收客户发送数据。读写完数据文件之后,对于热结点而言,它会继续处于工作状态,等待处理下一个请求;而对于冷结点的状态转换,如图3所示,如果从存储系统中加入冷结点,它就会转换为工作状态,如果冷结点从存储系统中离开,就会转换为关闭状态。为了节省系统的能耗,冷结点处理完请求会进入休眠状态,一旦接收到请求,马上转换为工作状态来处理文件请求。
热结点集合中的热点数据有k个副本,其中,k是最优副本数,它通过以下公式求解:
k=ln(1-a)/ln(1-e-λT);
其中,a是数据的可靠性需求,λ是结点的失效率,T是数据的存储期限。
轮转调度算法是假设所有存储服务器的处理性能都相同,而不管存储服务器的当前连接数和响应速度,它以轮转的方式依次将客户的请求转发到不同的存储服务器,该算法相对简单,不需要记录当前的连接状态,但是不适用于存储服务器中处理性能不一样的情况。最小连接调度算法是把当前的客户请求转发到当前连接数最小的存储服务器,它需要记录各个存储服务器已建立连接的个数,元数据服务器通过各个存储服务器当前的连接数来估算存储服务器的负载情况,它能把负载变化很大的请求比较均匀地分布到各个存储服务器上,从而能够实现负载均衡的策略。
上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。