CN104008075A - 一种分布式存储系统请求的处理方法 - Google Patents
一种分布式存储系统请求的处理方法 Download PDFInfo
- Publication number
- CN104008075A CN104008075A CN201410225095.7A CN201410225095A CN104008075A CN 104008075 A CN104008075 A CN 104008075A CN 201410225095 A CN201410225095 A CN 201410225095A CN 104008075 A CN104008075 A CN 104008075A
- Authority
- CN
- China
- Prior art keywords
- data
- back end
- request
- ssd
- write request
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明公开了一种分布式存储系统请求的处理方法,属于信息存储技术领域。本发明在以新能源供电为主、市电供电为辅的多副本分布式存储系统中,动态开启、关闭数据节点以使整个系统动态匹配新能源的电力供应。添加以SSD作为存储介质的SSD节点作为系统缓存区,将对关闭数据节点的不可延迟的及时请求划分为两个阶段:低能耗的及时在线响应阶段和高能耗的后台离线存储阶段,在线阶段保证性能需求,离线阶段充分利用新能源。同时,为兼顾系统可靠性,划分出数据节点中空闲空间作为虚拟SSD备份SSD节点中的脏数据。不同于传统的基于负载变化的数据节点开关策略,本发明在不影响请求响应的前提下,大幅度提升了新能源的利用率。
Description
技术领域
本发明属于信息存储技术领域,更具体地,涉及一种分布式存储系统请求的处理方法。
背景技术
随着信息时代的高速发展,各种信息(文字、声音及图像等)以难以置信的速度急剧增加。数据的急剧增长,给数据中心带来最直接的影响是服务器数量的不断增长,而大型数据中心的能源消耗非常惊人。与传统的高碳电能不同,新能源往往具有不稳定间隔性和动态变化的特点,如何最大化使用新能源也是数据中心面临的一个重大问题。最大化利用新能源研究中最主要的问题是如何动态匹配不稳定动态变化的新能源与系统的负荷,解决该问题一般分为两大类:
一类是通过能源调度来匹配负载能耗需求。例如:利用电池能量存储来使得波动的新能源供应稳定化。这样的方法会带来额外的大量资金开销,而且能量使用效率很低,电力在来回传输过程中就会损失5%~25%的电力,除此之外,频繁的充电会加速电池的老化。另外一种方法例如净计量(net-metering)的反馈机制,将在线生成的新能源直接连接到本地的电网,新能源供不应求就使用电网供电,相反就将多余的电力卖给电网。但是净计量还处于初期,对其过度依赖会存在一定的风险,因为电网操作员不得不频繁切换电力站来满足不可预期的电力。
另外一类是通过负载调度匹配新能源供应。从空间角度出发,对于有多个数据节点的服务器集群,可以通过负载迁移来匹配新能源。对于负载迁移的调度算法,整体负载是没有变化的,但是这些迁移带来大量额外的开销。从时间角度出发,延迟技术是比较常见的解决方案,但是延迟技术只能用于可延迟的批处理请求,而现实中大部分的请求是即时交互性请求。从硬件角度出发,可通过调节硬件的功耗状态来调节能耗需求,但会影响到系统的性能。
发明内容
针对现有技术的缺陷,本发明的目的在于提供一种分布式存储系统请求的处理方法,其针对现有技术额外资金开销大、并入电网切换复杂、额外迁移数据开销大、不能及时响应实时请求和影响系统性能等问题,提出了一种兼顾分布式存储系统能耗、性能、可靠性和运营开销的方案。
一种分布式存储系统请求的处理方法,包括以下步骤:
步骤1在以新能源供电为主、市电供电为辅的多副本分布式存储系统中,添加部分以固态硬盘(Solid State Disk,以下简称SSD)为存储介质的SSD节点作为所述分布式存储系统的缓存区;
步骤2根据所述新能源供电能力的变化动态地开启和关闭所述分布式存储系统的数据节点,在所述新能源供电充足时,开启所有数据节点以提供正常服务,同时将所述缓存区中的脏数据写回到对应数据节点中,将所述数据节点中的热数据预取到对应SSD节点中,在所述新能源供电不充足时,根据其供电能力选择关闭部分数据节点,在所述新能源供电能力不能满足所述分布式存储系统的最低电力需求时,用所述市电供电来进行补充,在任何情况下均不能关闭所有的数据节点,且所述SSD节点需要持续供电;
步骤3所述分布式存储系统接收来自客户端的请求,对于读请求则执行步骤4,对于写请求则执行步骤5;
步骤4当读请求的数据在所述缓存区命中时,直接从所述缓存区中读取即可;当所述读请求的数据不在所述缓存区命中时,从所述读请求的数据的多副本所在的任意一个未关闭的数据节点读取即可;当所述读请求的数据不在所述缓存区命中并且其多副本没有对应的数据节点开启时,唤醒其中一个副本所在的数据节点,然后从所述副本所在的数据节点读取数据;
步骤5当写请求的数据的多副本所在的所有数据节点都开启时,所述写请求的数据会写入所有副本所在的数据节点,如果所述写请求的数据是热数据,还会写入所述缓存区的对应的SSD节点;如果所述写请求的数据的多副本所在的数据节点有部分关闭,对所述部分关闭的数据节点的所述写请求就会被分为及时响应的在线阶段和后台存储的离线阶段进行处理。
进一步地,本发明步骤4具体包括以下子步骤:
(4-1)根据读请求数据的ID或标识,计算或查找其在缓存区所对应的SSD节点,并将读请求发送至该SSD节点;
(4-2)接收SSD节点返回的结果,判断返回的结果中是否有请求的数据,是则执行骤(4-3),否则执行步骤(4-4);
(4-3)从SSD节点返回的结果中获取所请求的数据并返回给客户端,流程结束;
(4-4)判断请求数据的副本所在的数据节点中是否有一个未关闭的,有则执行步骤(4-5),否则执行步骤(4-9);
(4-5)将读请求发送给一个未关闭的数据节点,然后执行步骤(4-6);
(4-6)从该数据节点返回的结果中获取请求的数据,然后返回给客户端,执行步骤(4-7);
(4-7)根据热点数据识别算法(例如,LRU、LFU或其他改进算法)判断该数据是否为热数据,是则执行步骤(4-8),否则流程结束;
(4-8)将该热数据写入缓存区中对应的SSD节点,由于热数据的访问频率非常高,若大部分请求能够在SSD节点中处理,则对于整个系统性能的提升会有很大帮助。如果对应SSD节点的空间已满,则根据热点数据识别算法(例如,LRU、LFU或其他改进算法),选择将部分相对热度较低的数据淘汰后再写入热数据,否则直接写入热数据,流程结束;
(4-9)市电补充供电,开启数据副本所在的部分数据节点(最节能的方式是只开启1个),然后执行步骤(4-4)。
更近一步地,本发明步骤5具体包括以下子步骤:
(5-1)根据写请求数据的ID或标识,计算或查找所有数据副本所在的多个数据节点,然后执行步骤(5-2);
(5-2)判断这些数据节点是否都处于开启状态,是则执行步骤(5-3),否则执行步骤(5-7);
(5-3)将写请求分发至所有数据副本所在的多个数据节点,对该写请求的处理不分阶段,其处理流程遵循原有系统的流程,然后执行步骤(5-4);
(5-4)根据热点数据识别算法(例如,LRU、LFU或其他改进算法)判断该数据是否为热数据,是则执行步骤(5-5),否则执行步骤(5-6);
(5-5)根据写请求数据的ID或标识,计算或查找其在缓存区所对应的SSD节点,并将热数据写入该SSD节点,由于热数据的访问频率非常高,若大部分请求能够在SSD节点中处理,则对于整个系统性能的提升会有很大帮助。如果对应SSD节点的空间已满,则根据热点数据识别算法(例如,LRU、LFU或其他改进算法),选择将部分相对热度较低的数据淘汰后再写入热数据,否则直接写入热数据,然后执行步骤(5-6);
(5-6)待分发的所有写请求完成返回后,原写请求完成并返回,流程结束;
(5-7)将写请求分发至未关闭的数据节点,对于关闭的数据节点,写请求进入在线阶段处理:将该写请求分发至缓存区中对应的SSD节点和虚拟SSD,以匹配新能源供电能力较低的情况,然后执行步骤(5-8);
(5-8)待所有分发的写请求完成返回后,原写请求完成并返回,执行步骤(5-9);
(5-9)在步骤(5-8)中写请求已经成功返回给客户端,但由于对关闭数据节点的写请求只经过在线阶段处理,其数据是临时缓存在缓存区中。在该存储系统内部,该部分临时缓存的数据需要写入到相应的数据节点才是最可靠的,因此该部分写请求还需要进入后期的离线阶段处理。待新能源供电能力上升,关闭的数据节点重新开启后,关闭数据节点的写请求进入离线阶段处理:将缓存区中临时写入的冷数据写入到对应开启后的数据节点中。待数据写入完成,客户端写请求最终完成,流程结束。
更近一步地,划分所有数据节点中的空闲空间作为虚拟SSD添加到缓存区中,虚拟SSD采用写日志的形式保存多个SSD节点中的脏数据,虚拟SSD中的数据在相应数据节点开启后,将写入到开启后的数据节点中。
通过本发明所构思的以上技术方案,与传统方案相比,本发明具有以下的有益效果:
(1)针对面向分布式环境下的应用,利用SSD高速缓存技术将原在线写请求划分为2个阶段,即在线阶段和离线阶段进行处理的技术方案,以优先匹配新能源为原则,使市电使用量得到缩减,使新能源的利用率最大化,能显著的节能减排。为动态匹配新能源,数据节点的关闭会使对关闭数据节点的写请求无法及时完成,但加入缓存区后,写请求采用分阶段处理,可以解决这个问题。其中,在线阶段处理可以解决由于数据节点关闭而带来的无法及时完成、返回请求的问题,且不影响、甚至可以提升整个系统的性能;离线阶段处理可以满足分布式存储系统对数据可靠存储(数据需写入数据节点)的要求,该阶段可以保证整个系统的可靠性。本发明配合有效的调度管理和缓存管理机制,使整体的可靠性、数据的完整性不受影响,还能在一定程度上优化整个系统的性能。
(2)传统节能都是基于负载变化,高负载就开启数据节点,低负载就关闭数据节点。本发明主要基于新能源,同时也考虑负载需要,通过切换数据节点的能耗状态来动态匹配新能源。这两个策略的结合使用可以更高效地减少能耗和利用新能源。
(3)本发明不仅仅考虑性能需求和新能源的利用效率,而且兼顾系统的可靠性。为了保证SSD缓存中数据的可靠性,用所有数据节点上的空闲空间组成多个虚拟SSD,采用日志写方式备份SSD中缓存的脏数据,从而使得缓存数据也需要具有相同的容错级别。即在虚拟SSD中也存放了多个副本,使得缓存数据与原数据系统具有相同的副本数目。
(4)加入SSD缓存区的技术方案除了达到匹配新能源、适时降低数据节点负载的目的外,由于SSD相比磁盘有更好的性能,缓存区还能提升整个系统的性能。SSD用于加速系统性能,虚拟SSD用来保证SSD中数据的可靠性,这样综合了SSD的高性能和磁盘阵列的低成本,以及高性能的日志写入等优势,使系统有比较好的性价比。
(5)本发明是一种兼顾能耗、性能、可靠性和运营开销的方法。
附图说明
图1为本发明分布式存储系统结构示意图;
图2为本发明客户端读请求的处理流程图;
图3为本发明客户端写请求的处理流程图;
图4为本发明新能源供电能力不足时系统的状态示意图;
图5为本发明新能源供电能力上升时系统的状态示意图;
图6为本发明写请求在现阶段的处理流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
本发明的整体思路在于,在以新能源供电为主、市电供电为辅的多副本分布式存储系统中,为了适应数据节点随新能源供电能力变化而动态开启、关闭的特点,为分布式存储系统添加有SSD节点在内的缓存区,并且将对关闭数据节点的不可延迟的及时请求划分为两个阶段:低能耗的及时在线响应阶段和高能耗的后台离线存储阶段,最终达到负载动态匹配新能源的目的。利用SSD缓存数据考虑了新能源的利用和系统的性能,再在缓存区中添加虚拟SSD,以日志形式记录SSD的脏数据,兼顾了系统的可靠性。
在本发明实施例中,分布式存储系统以开源项目sheepdog为例,系统中数据副本数量以3为例,但本发明不局限于该开源项目和所示例的数据副本数量。
本发明实施例的分布式存储系统请求的处理方法,包括以下步骤:
步骤1在以新能源供电为主、市电供电为辅的动态匹配新能源的多副本分布式存储系统中,添加部分以固态硬盘(SSD)为存储介质的SSD节点作为系统的缓存区。在本发明实施例中,SSD节点总存储容量为数据节点总存储容量的5%左右。对于缓存区节点的存储介质,以SSD为优选的,其他性能接近或优于SSD的高速存储器也可实现。
缓存区可适应新能源供电不稳定的特点,实现客户端请求的分阶段(在线阶段和离线阶段)处理,既可以临时缓存写入的冷数据,实现负载动态匹配新能源的目的,又可以缓存数据节点中的热数据,以提升性能。数据节点用以存储多副本数据,划分所有数据节点中的空闲空间作为虚拟SSD添加到缓存区中。
本步骤的优点在于:分布式存储系统主要利用新能源供电,达到了显著的节能减排的效果,同时也减小了整个系统的电力开销;利用SSD相对于普通磁盘更具能耗、性能方面的优势,给整个系统提供了性能的保障及提升;SSD缓存实现了负载动态匹配新能源的目的,使新能源的利用率最大化;同时,采用虚拟SSD弥补了因关闭数据节点带来的对系统可靠性的影响。
图1所示为本发明分布式存储系统的结构示意图。如图1所示,虚拟SSD和SSD节点同样以分布式的方式共同作为整个分布式存储系统的缓存区,整个系统由新能源和市电共同供电。在系统工作期间,由于新能源供电不稳定,为了保证整个存储系统能够持续稳定的工作,不因新能源的不稳定带来额外的掉电故障,在新能源供电不足时,市电需要对整个系统及时进行电力补充,在新能源供电能力上升时,市电的供应可能要相应减少,因此新能源和市电需要进行不间断转换。整个系统接收来自客户端的请求,当请求在缓存区命中并可以直接返回时,客户端请求完成并返回;当没有命中或需要在数据节点中完成请求处理时,客户端请求会经由数据节点处理后再返回。在系统工作期间,为适应新能源不稳定的特点,有些客户端请求会分为在线阶段(缓存区及时处理)和离线阶段(缓存区数据写入对应数据节点)分别进行处理。
步骤2数据节点动态地随新能源供电能力的变化而开启、关闭。在本发明实施例中,可以采用适应于新能源预测的现有算法或改进算法来决定数据节点的开启、关闭。在新能源供电充足时,所有数据节点开启提供正常服务,同时将缓存区中的脏数据写回到对应数据节点中,将数据节点中的热数据预取到对应SSD节点中;在新能源供电不充足时,根据其供电能力选择关闭部分数据节点。在新能源的供电能力不能满足整个分布式存储系统的最低电力需求时,用市电来补充供电。市电的及时补充能够保障整个系统的可用性和正常运行。但在任何情况下,不能关闭所有的数据节点,即整个系统至少保证部分数据节点开启以保障基本服务,同时,SSD节点需要持续供电。
本步骤的优点在于:关闭部分数据节点以减少对市电的使用,可进一步达到节能减排和减小开销的作用。
步骤3负载动态匹配新能源。整个系统接收来自客户端的请求,对于读请求则执行步骤4,对于写请求则执行步骤5。
步骤4当请求的数据在缓存区中命中时,直接从缓存区中读取即可(可以加快请求响应,提升系统性能);当请求的数据在缓存中未命中时,从请求数据的多副本所在的任意一个未关闭的数据节点读取即可;当请求的数据在缓存中未命中并且没有其多副本对应的数据节点开启时,需要唤醒其中一个副本所在的数据节点,然后从该数据节点读取数据。
步骤5当所有的数据副本所在的3个数据节点都开启时,写请求的数据会写入这3个数据节点,如果该数据是热数据,还会写入缓存区的某个SSD节点,根据所请求数据的ID通过哈希计算确定该SSD节点,热数据写入SSD节点可以为之后对于该数据的读请求提供更好的性能;如果请求的数据副本所在的数据节点有部分关闭(假设有2个),为动态匹配新能源,对该部分关闭数据节点的写请求就会被分为两个阶段处理:在线阶段和离线阶段。在线阶段是低能耗的及时响应阶段,离线阶段是高能耗的后台存储阶段。
为了保障缓存区中SSD节点内缓存数据的可靠性,即分布式存储系统中数据多备份的特点,缓存区中虚拟SSD采用写日志的形式保存多份SSD节点中的脏数据。虚拟SSD中的数据在相应数据节点开启后,将写入到开启后的数据节点。
本发明实施例中,添加的SSD节点中的数据组织方式既可以复用原分布式存储系统中的数据组织方式,也可以使用其他分布式环境下的数据组织方式。
图2所示为本发明步骤4中客户端读请求的处理流程图,具体包括以下子步骤:
(4-1)根据读请求数据的ID或标识,计算或查找其在缓存区所对应的SSD节点,并将读请求发送至该SSD节点,然后执行步骤(4-2),在本发明实施例中,根据读请求数据的ID通过哈希计算确定其对应的SSD节点;
(4-2)接收SSD节点返回的结果,判断返回的结果中是否有请求的数据,是则执行骤(4-3),否则执行步骤(4-4);
(4-3)从SSD节点返回的结果中获取所请求的数据并返回给客户端,流程结束;
(4-4)判断请求数据的副本所在的数据节点中是否有一个未关闭的,有则执行步骤(4-5),否则执行步骤(4-9);
(4-5)将读请求发送给一个未关闭的数据节点,然后执行步骤(4-6);
(4-6)从该数据节点返回的结果中获取请求的数据,然后返回给客户端,执行步骤(4-7);
(4-7)根据热点数据识别算法(例如,LRU、LFU或其他改进算法)判断该读请求数据是否为热数据,是则执行步骤(4-8),否则流程结束;
(4-8)将该热数据写入缓存区中对应的SSD节点,由于热数据的访问频率非常高,若大部分请求能够在SSD节点中处理,则对于整个系统性能的提升会有很大帮助,在本发明实施例中,根据读请求数据的ID通过哈希计算确定其对应的SSD节点。如果对应SSD节点的空间已满,则根据热点数据识别算法(例如,LRU、LFU或其他改进算法),选择将部分相对热度较低的数据淘汰后再写入热数据,否则直接写入热数据,流程结束;
(4-9)市电补充供电,开启数据副本所在的部分数据节点(最节能的方式是只开启1个),然后执行步骤(4-4)。
图3为本发明步骤5中客户端写请求的处理流程图,具体包括以下子步骤:
(5-1)根据写请求数据的ID或标识,计算或查找其所有数据副本所在的3个数据节点,然后执行步骤(5-2),在本发明实施例中,是根据请求数据对象的ID通过哈希计算确定其所有数据副本所在的3个数据节点;
(5-2)判断这些数据节点是否都处于开启状态,是则执行步骤(5-3),否则执行步骤(5-7);
(5-3)将写请求分发至所有数据副本所在的3个数据节点,对该写请求的处理不分阶段,其处理流程遵循原有系统的流程,然后执行步骤(5-4);
(5-4)根据热点数据识别算法(例如,LRU、LFU或其他改进算法)判断该写请求数据是否为热数据,是则执行步骤(5-5),否则执行步骤(5-6);
(5-5)将热数据写入缓存区中对应的SSD节点,由于热数据的访问频率非常高,若大部分请求能够在SSD节点中处理,则对于整个系统性能的提升会有很大帮助,在本发明实施例中,根据请求数据的ID通过哈希计算确定其对应的SSD节点。如果对应SSD节点的空间已满,则根据热点数据识别算法(例如,LRU、LFU或其他改进算法),选择将部分相对热度较低的数据淘汰后再写入热数据,否则直接写入热数据,然后执行步骤(5-6);
(5-6)待分发的所有写请求完成返回后,原写请求完成并返回,流程结束;
(5-7)将写请求分发至未关闭的数据节点,对于关闭的数据节点,写请求进入在线阶段处理:将该写请求分发至缓存区中SSD节点和虚拟SSD,以匹配新能源供电能力较低的情况,然后执行步骤(5-8);
(5-8)待所有分发的写请求完成返回后,原写请求完成并返回,执行步骤(5-9);
(5-9)在步骤(5-8)中写请求已经成功返回给客户端,但由于对关闭数据节点的写请求只经过在线阶段处理,其数据是临时缓存在缓存区中。在该存储系统内部,该部分临时缓存的数据需要写入到相应的数据节点才是最可靠的,因此该部分写请求还需要进入后期的离线阶段处理。待新能源供电能力上升,关闭的数据节点重新开启后,关闭数据节点的写请求进入离线阶段处理:将缓存区中临时写入的冷数据写入到对应开启后的数据节点中。待数据写入完成,客户端写请求最终完成,流程结束。
图4所示为本发明新能源供电能力不足时系统的状态示意图,数据节点中有一些因为新能源电力供应不足而关闭,关闭的数据节点在关闭期间不能处理请求,而开启的数据节点对读、写请求,则可以正常进行处理。当系统处于这种情况时,仍然会有读请求命中缓存区的热数据可用存储空间(即热数据区),此时,读请求就由缓存区的热数据区处理完成,而冷数据可用存储空间(即冷数据区)只临时缓存无法写入到已关闭的数据节点的数据。图4中虚线箭头表示这些写请求因为数据节点关闭而不能直接写入数据节点,因此只能分阶段先进入在线阶段处理,该在线阶段由于在缓存区中完成,速度快,是及时响应。
图5所示为本发明新能源供电能力上升时系统的状态示意图。当整个系统处于该状态时,开启的数据节点可以正常处理读、写请求,在热数据区命中的读请求可以由热数据区处理。由于仍然有一小部分数据节点处理关闭状态,对关闭的数据节点的写请求会先进入在线阶段进行处理,等待其重新开启之后,再进入离线阶段进行处理。
如图5所示,相较于图4中的数据节点,在新能源电力供应提升之后,有部分关闭的数据节点重新开启,成为了开启的数据节点,缓存区与重新开启的数据节点之间会有进入离线阶段处理的写请求,这是后台的存储阶段,该阶段完成后,原客户端的写请求在系统内部才算正式处理完毕,以匹配新能源供电能力提升的情况。SSD节点由此而空闲出来的存储空间可以作为热数据存储的空间,如图5中缓存区里向右的箭头所示,写请求的离线阶段处理完毕后,冷数据区多了一部分空闲空间(即SSD节点空闲出来的空间),该部分空间可以给热数据区使用,由此,热数据区会变大,冷数据区会变小。
图6所示为本发明子步骤(5-7)中写请求在现阶段处理的流程图,具体包括以下子步骤:
(5-7-1)判断数据副本所在的数据节点中处于关闭状态的数量m是否大于1,是(假设为2)则执行步骤(5-7-2),否则执行步骤(5-7-3);
(5-7-2)将m-1个写请求发送至缓存区中虚拟SSD,该虚拟SSD所在的数据节点是开启的数据节点,并且,不是数据副本原本所在的数据节点,以保证数据副本和数据缓存的副本不在同一个数据节点上,以免影响数据可靠性,然后执行步骤(5-7-3);
(5-7-3)根据请求数据的ID或标识,计算或查找其在缓存区所对应的SSD节点,在本发明实施例中,是根据数据对象的ID通过哈希计算确定其对应的SSD节点,将1个写请求发送至该SSD节点,即只要有请求的数据副本所在的数据节点有1个及以上关闭,都会缓存一份数据在SSD节点中,并且只缓存一份,主要是为了最大化利用SSD节点的空间,同时可以提升系统性能,然后执行步骤(5-7-4);
(5-7-4)在本发明实施例中,冷数据区和热数据区共同构成SSD节点的总存储空间,冷数据区大小可变但有上限,其上限为定值,该上限的确定方式不限定,例如,可以根据关闭数据节点所占的比例确定,也可以结合考虑读、写请求的比例确定,这是为了保证一定量的热数据区,从而保障整个系统的性能。判断冷数据区是否达到上限且已满,是则执行步骤(5-7-5),否则判断冷数据区是否未达上限且已满,是则执行步骤(5-7-6),否则执行步骤(5-7-7);
(5-7-5)根据淘汰算法(例如,LRU、LFU或其他改进算法),从冷数据中选择部分脏数据进行淘汰,因为冷数据区中的数据都是由于数据节点关闭而临时缓存的,此时需要用市电补充供电,开启相应的关闭数据节点,然后将淘汰的脏数据写入到开启后的数据节点。完成数据淘汰、写入后进入步骤(5-7-7);
(5-7-6)缩小热数据区,扩大冷数据区,扩大后的冷数据区不超过其上限,需要扩大的空间大小可以根据当前关闭数据节点的数量占总数据节点数量的比例来决定。当热数据区已满,或者需要缩小的空间大小大于当前热数据区剩下的空闲空间大小,则需要从热数据中选择部分相对热度较低的数据进行淘汰,根据例如LRU、LFU或其他改进淘汰算法确定需要淘汰的数据,淘汰数据的空间大小等于需要缩小的空间大小减去当前热数据区剩下的空闲空间大小。空间大小调整完毕后,执行步骤(5-7-7);
(5-7-7)将写请求的数据临时写入到SSD节点中的冷数据区后,流程结束。根据热点数据识别算法,写入的数据(脏数据)有可能也是热数据,那么在对应数据节点开启后,写入的脏数据完成数据同步后可以进入热点数据区,这样可以减少SSD节点与数据节点之间的数据流量。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (6)
1.一种分布式存储系统请求的处理方法,其特征在于,包括以下步骤:
步骤1在以新能源供电为主、市电供电为辅的多副本分布式存储系统中,添加部分以固态硬盘为存储介质的SSD节点作为所述分布式存储系统的缓存区;
步骤2根据所述新能源供电能力的变化动态地开启和关闭所述分布式存储系统的数据节点,在所述新能源供电充足时,开启所有数据节点以提供正常服务,同时将所述缓存区中的脏数据写回到对应数据节点中,将所述数据节点中的热数据预取到对应SSD节点中,在所述新能源供电不充足时,根据其供电能力选择关闭部分数据节点,在所述新能源供电能力不能满足所述分布式存储系统的最低电力需求时,用所述市电供电来进行补充,在任何情况下均不能关闭所有的数据节点,且所述SSD节点需要持续供电;
步骤3所述分布式存储系统接收来自客户端的请求,对于读请求则执行步骤4,对于写请求则执行步骤5;
步骤4当所述读请求的数据在所述缓存区命中时,直接从所述缓存区中读取即可;当所述读请求的数据不在所述缓存区命中时,从所述读请求的数据的多副本所在的任意一个未关闭的数据节点读取即可;当所述读请求的数据不在所述缓存区命中并且其多副本没有对应的数据节点开启时,唤醒其中一个副本所在的数据节点,然后从所述副本所在的数据节点读取数据;
步骤5当所述写请求的数据的多副本所在的所有数据节点都开启时,所述写请求的数据会写入所有副本所在的数据节点,如果所述写请求的数据是热数据,还会写入所述缓存区的对应的SSD节点;如果所述写请求的数据的多副本所在的数据节点有部分关闭,对所述部分关闭的数据节点的所述写请求就会被分为及时响应的在线阶段和后台存储的离线阶段进行处理。
2.如权利要求1所述的方法,其特征在于,所述步骤4具体包括以下子步骤:
(4-1)根据所述读请求的数据的ID或标识,计算或查找其在所述缓存区所对应的SSD节点,并将所述读请求发送至所述对应的SSD节点,然后执行步骤(4-2);
(4-2)接收所述对应的SSD节点返回的结果,判断所述返回的结果中是否有所述读请求的数据,是则执行骤(4-3),否则执行步骤(4-4);
(4-3)从所述返回的结果中获取所述读请求的数据并返回给所述客户端,流程结束;
(4-4)判断所述读请求的数据的副本所在的数据节点中是否有一个未关闭的,有则执行步骤(4-5),否则执行步骤(4-9);
(4-5)将所述读请求发送给一个未关闭的数据节点,然后执行步骤(4-6);
(4-6)从所述未关闭的数据节点返回的结果中获取所述读请求的数据并返回给所述客户端,执行步骤(4-7);
(4-7)根据热点数据识别算法判断所述读请求的数据是否为热数据,是则执行步骤(4-8),否则流程结束;
(4-8)将所述热数据写入所述缓存区中所述对应的SSD节点,如果所述对应的SSD节点的空间已满,则根据所述热点数据识别算法,将部分相对热度较低的数据淘汰后再写入,否则直接写入所述热数据,流程结束;
(4-9)所述市电补充供电,开启所述请求的数据的副本所在的部分数据节点,然后执行步骤(4-4)。
3.如权利要求1所述的方法,其特征在于,划分所有数据节点中的空闲空间作为虚拟SSD添加到所述缓存区中。
4.如权利要求3所述的方法,其特征在于,所述步骤5具体包括以下子步骤:
(5-1)根据所述写请求的数据的ID或标识,计算或查找所述写请求的所有数据副本所在的多个数据节点,然后执行步骤(5-2);
(5-2)判断所述多个数据节点是否都处于开启状态,是则执行步骤(5-3),否则执行步骤(5-7);
(5-3)将所述写请求分发至所有数据副本所在的所述多个数据节点,对所述写请求的处理不分阶段,其处理流程遵循所述分布式存储系统原有的流程,然后执行步骤(5-4);
(5-4)根据热点数据识别算法判断所述写请求的数据是否为热数据,是则执行步骤(5-5),否则执行步骤(5-6);
(5-5)根据所述写请求的数据的ID或标识,计算或查找其在所述缓存区所对应的SSD节点,并将所述热数据写入所述对应的SSD节点,如果所述对应的SSD节点的空间已满,则根据所述热点数据识别算法,将部分相对热度较低的数据淘汰后再写入,否则直接写入所述热数据,然后执行步骤(5-6);
(5-6)待分发的所有写请求完成返回后,所述写请求完成并返回,流程结束;
(5-7)将所述写请求分发至未关闭的数据节点,对于关闭的数据节点,所述写请求进入在线阶段处理:将所述写请求分发至所述缓存区中的相应的SSD节点和相应的虚拟SSD,然后执行步骤(5-8);
(5-8)待所有分发的写请求完成返回后,所述写请求完成并返回,执行步骤(5-9);
(5-9)待所述新能源供电能力上升,所述关闭的数据节点重新开启后,对所述关闭的数据节点的所述写请求进入离线阶段处理:将所述缓存区中临时写入的冷数据写入到对应开启后的数据节点中,写入完成后所述客户端的所述写请求最终完成,流程结束。
5.如权利要求4所述的方法,其特征在于,所述子步骤(5-7)中所述写请求的所述在现阶段处理具体包括以下子步骤:
(5-7-1)判断所述所有数据副本所在的所述多个数据节点中处于关闭状态的数量m是否大于1,是则执行步骤(5-7-2),否则执行步骤(5-7-3);
(5-7-2)将m-1个所述写请求发送至所述缓存区中的所述相应的虚拟SSD,其所在的数据节点是开启的数据节点,并且不是所述数据副本原本所在的数据节点,然后执行步骤(5-7-3);
(5-7-3)根据所述写请求的数据的ID或标识,计算或查找其在所述缓存区的所述相应的SSD节点,将1个所述写请求发送至所述相应的SSD节点,然后执行步骤(5-7-4);
(5-7-4)判断冷数据区是否达到上限且已满,是则执行步骤(5-7-5),否则判断所述冷数据区是否未达上限且已满,是则执行步骤(5-7-6),否则执行步骤(5-7-7),其中,所述冷数据区为无法写入到已关闭的数据节点的冷数据的临时缓存;
(5-7-5)根据淘汰算法,从所述冷数据中选择部分脏数据进行淘汰,用所述市电补充供电,开启相应的已关闭的数据节点,然后将淘汰的所述脏数据写入到开启后的数据节点,进入步骤(5-7-7);
(5-7-6)缩小热数据区,扩大所述冷数据区,其中所述热数据区和所述冷数据区共同构成所述SSD节点的总存储空间,扩大后的所述冷数据区不超过其上限,需要扩大的空间大小可以根据当前关闭数据节点的数量占总数据节点数量的比例来决定,当所述热数据区已满,或者需要缩小的空间大小大于当前热数据区剩下的空闲空间大小,则需要根据所述淘汰算法从所述热数据中选择部分相对热度较低的数据进行淘汰,淘汰数据的空间大小等于所述需要缩小的空间大小减去当前热数据区剩下的所述空闲空间大小,调整完毕后执行步骤(5-7-7);
(5-7-7)将所述写请求的数据临时写入到所述相应的SSD节点中的所述冷数据区后,流程结束。
6.如权利要求3所述的方法,其特征在于,所述虚拟SSD采用写日志的形式保存多个SSD节点中的脏数据,所述虚拟SSD中的数据在相应数据节点开启后,将写入到开启后的数据节点中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410225095.7A CN104008075B (zh) | 2014-05-26 | 2014-05-26 | 一种分布式存储系统请求的处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410225095.7A CN104008075B (zh) | 2014-05-26 | 2014-05-26 | 一种分布式存储系统请求的处理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104008075A true CN104008075A (zh) | 2014-08-27 |
CN104008075B CN104008075B (zh) | 2017-01-18 |
Family
ID=51368735
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410225095.7A Active CN104008075B (zh) | 2014-05-26 | 2014-05-26 | 一种分布式存储系统请求的处理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104008075B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105872040A (zh) * | 2016-03-30 | 2016-08-17 | 华中科技大学 | 一种利用网关节点缓存优化分布式块存储写性能的方法 |
CN106708435A (zh) * | 2016-12-14 | 2017-05-24 | 北京小米移动软件有限公司 | 数据处理方法及装置 |
CN106790624A (zh) * | 2016-12-30 | 2017-05-31 | Tcl集团股份有限公司 | 新节点加入服务器集群的方法及装置 |
CN107122264A (zh) * | 2017-05-15 | 2017-09-01 | 成都优孚达信息技术有限公司 | 海量数据容灾备份方法 |
CN107632784A (zh) * | 2017-09-14 | 2018-01-26 | 郑州云海信息技术有限公司 | 一种存储介质和分布式存储系统的缓存方法、装置及设备 |
CN107643875A (zh) * | 2016-07-20 | 2018-01-30 | 湖南百里目科技有限责任公司 | 一种2+1分布式存储集群系统ssd读缓存加速方法 |
CN108153491A (zh) * | 2017-12-22 | 2018-06-12 | 深圳市瑞驰信息技术有限公司 | 一种可关闭部分服务器的存储方法及架构 |
WO2020082929A1 (zh) * | 2018-10-26 | 2020-04-30 | 华为技术有限公司 | 一种数据处理方法及分布式存储系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102306157A (zh) * | 2011-07-12 | 2012-01-04 | 中国人民解放军国防科学技术大学 | 数据中心环境下一种面向节能的高可靠数据存储方法 |
CN103294534A (zh) * | 2012-11-01 | 2013-09-11 | 北京安天电子设备有限公司 | 一种分布式系统的任务管理系统及方法 |
CN103312825A (zh) * | 2013-07-10 | 2013-09-18 | 中国人民解放军国防科学技术大学 | 一种数据分布存储方法和装置 |
-
2014
- 2014-05-26 CN CN201410225095.7A patent/CN104008075B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102306157A (zh) * | 2011-07-12 | 2012-01-04 | 中国人民解放军国防科学技术大学 | 数据中心环境下一种面向节能的高可靠数据存储方法 |
CN103294534A (zh) * | 2012-11-01 | 2013-09-11 | 北京安天电子设备有限公司 | 一种分布式系统的任务管理系统及方法 |
CN103312825A (zh) * | 2013-07-10 | 2013-09-18 | 中国人民解放军国防科学技术大学 | 一种数据分布存储方法和装置 |
Non-Patent Citations (3)
Title |
---|
刘英英: "《云环境下能量高效的副本管理及任务调度技术研究》", 《中国优秀硕士学位论文全文数据库(信息科技辑)》 * |
廖彬等: "《基于存储结构重配置的分布式存储系统节能算法》", 《计算机研究与发展》 * |
林伟伟等: "《云存储系统的能耗优化节点管理方法》", 《华南理工大学学报(自然科学版)》 * |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105872040A (zh) * | 2016-03-30 | 2016-08-17 | 华中科技大学 | 一种利用网关节点缓存优化分布式块存储写性能的方法 |
CN105872040B (zh) * | 2016-03-30 | 2018-11-30 | 华中科技大学 | 一种利用网关节点缓存优化分布式块存储写性能的方法 |
CN107643875A (zh) * | 2016-07-20 | 2018-01-30 | 湖南百里目科技有限责任公司 | 一种2+1分布式存储集群系统ssd读缓存加速方法 |
CN106708435A (zh) * | 2016-12-14 | 2017-05-24 | 北京小米移动软件有限公司 | 数据处理方法及装置 |
CN106790624A (zh) * | 2016-12-30 | 2017-05-31 | Tcl集团股份有限公司 | 新节点加入服务器集群的方法及装置 |
CN107122264A (zh) * | 2017-05-15 | 2017-09-01 | 成都优孚达信息技术有限公司 | 海量数据容灾备份方法 |
CN107122264B (zh) * | 2017-05-15 | 2020-06-09 | 成都优孚达信息技术有限公司 | 海量数据容灾备份方法 |
CN107632784A (zh) * | 2017-09-14 | 2018-01-26 | 郑州云海信息技术有限公司 | 一种存储介质和分布式存储系统的缓存方法、装置及设备 |
CN108153491A (zh) * | 2017-12-22 | 2018-06-12 | 深圳市瑞驰信息技术有限公司 | 一种可关闭部分服务器的存储方法及架构 |
WO2020082929A1 (zh) * | 2018-10-26 | 2020-04-30 | 华为技术有限公司 | 一种数据处理方法及分布式存储系统 |
US11662925B2 (en) | 2018-10-26 | 2023-05-30 | Huawei Cloud Computing Technologies Co., Ltd. | Data processing method and distributed storage system |
Also Published As
Publication number | Publication date |
---|---|
CN104008075B (zh) | 2017-01-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104008075A (zh) | 一种分布式存储系统请求的处理方法 | |
CN103885728B (zh) | 一种基于固态盘的磁盘缓存系统 | |
CN104850358B (zh) | 一种磁光电混合存储系统及其数据获取和存储方法 | |
CN101763226B (zh) | 一种虚拟存储设备的缓存方法 | |
CN105892947B (zh) | 一种节能存储系统的ssd与hdd混合缓存管理方法及系统 | |
CN103530388A (zh) | 一种云存储系统中提升性能的数据处理方法 | |
US9390010B2 (en) | Cache management | |
CN103218175A (zh) | 多租户的云存储平台访问控制系统 | |
CN105917319A (zh) | 存储器单元和方法 | |
US10719118B2 (en) | Power level management in a data storage system | |
CN102207937A (zh) | 一种数据库访问方法和系统 | |
CN108932150A (zh) | 基于ssd和磁盘混合存储的缓存方法、装置及介质 | |
CN102355502B (zh) | 存储系统远程接入桌面操作系统的远程接入方法 | |
CN105022696A (zh) | 一种基于内存访问热度的大内存页整合方法 | |
CN105468297A (zh) | 一种云存储系统内主从设备数据快速同步的方法 | |
CN110795363A (zh) | 一种存储介质的热页预测方法和页面调度方法 | |
CN101853218B (zh) | 用于磁盘阵列的读取方法和系统 | |
Chen et al. | Low‐overhead inline deduplication for persistent memory | |
CN103020077A (zh) | 一种电力系统实时数据库内存管理方法 | |
CN104484136B (zh) | 一种可支撑高并发内存数据的方法 | |
CN109840247A (zh) | 文件系统及数据布局方法 | |
CN109246198A (zh) | 一种基于分布式存储集群的云主机启动控制方法和系统 | |
CN111787062A (zh) | 面向广域网络文件系统的自适应快速增量预读方法 | |
US11132128B2 (en) | Systems and methods for data placement in container-based storage systems | |
Le et al. | Namenode and datanode coupling for a power-proportional hadoop distributed file system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |