CN117093357A - 弹性搜索集群的资源调度方法、装置及系统 - Google Patents
弹性搜索集群的资源调度方法、装置及系统 Download PDFInfo
- Publication number
- CN117093357A CN117093357A CN202210764591.4A CN202210764591A CN117093357A CN 117093357 A CN117093357 A CN 117093357A CN 202210764591 A CN202210764591 A CN 202210764591A CN 117093357 A CN117093357 A CN 117093357A
- Authority
- CN
- China
- Prior art keywords
- node
- target
- target index
- rate
- index
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 131
- 239000012634 fragment Substances 0.000 claims abstract description 112
- 230000015654 memory Effects 0.000 claims description 26
- 230000002596 correlated effect Effects 0.000 claims description 9
- 238000004590 computer program Methods 0.000 claims description 7
- 238000013500 data storage Methods 0.000 abstract description 20
- 230000008569 process Effects 0.000 description 48
- 101000724404 Homo sapiens Saccharopine dehydrogenase Proteins 0.000 description 36
- 102100028294 Saccharopine dehydrogenase Human genes 0.000 description 36
- 238000010586 diagram Methods 0.000 description 24
- 238000013508 migration Methods 0.000 description 19
- 230000005012 migration Effects 0.000 description 19
- 239000003795 chemical substances by application Substances 0.000 description 12
- 230000000875 corresponding effect Effects 0.000 description 12
- 206010047289 Ventricular extrasystoles Diseases 0.000 description 8
- 238000004891 communication Methods 0.000 description 8
- 238000005129 volume perturbation calorimetry Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 7
- 238000007726 management method Methods 0.000 description 5
- 238000012544 monitoring process Methods 0.000 description 5
- 238000012217 deletion Methods 0.000 description 4
- 230000037430 deletion Effects 0.000 description 4
- 238000000926 separation method Methods 0.000 description 4
- 101150018711 AASS gene Proteins 0.000 description 3
- 238000011038 discontinuous diafiltration by volume reduction Methods 0.000 description 3
- 238000005192 partition Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 230000001276 controlling effect Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
- G06F9/5088—Techniques for rebalancing the load in a distributed system involving task migration
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供了一种弹性搜索集群的资源调度方法、装置及系统,属于数据存储技术领域。本申请提供的方案能够统计目标索引的数据写入速率,并能够在该数据写入速率处于目标速率范围之外时,动态调整该目标索引的多个分片所占用的节点的资源量。由于目标索引的数据存储容量,以及所支持的最大数据写入速率均与该多个分片所占用的资源量相关,因此本申请提供的方案能够在不改变目标索引所包括的分片数量的前提下,实现对目标索引的数据存储容量和最大数据写入速率的动态调节。由此,不仅有效提高了数据写入的灵活性,且有效提高了集群资源的利用率。
Description
本申请要求于2022年5月11日提交的申请号为202210510751.2、发明名称为“一种数据处理方法和计算机”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请涉及数据存储技术领域,特别涉及一种弹性搜索集群的资源调度方法、装置及系统。
背景技术
弹性搜索(elastic-search,ES)是一种分布式、高扩展和高实时的数据搜索引擎,其能够以集群(cluster)为单位提供数据搜索服务。其中,集群通常包括多个节点(node),每个节点可以是一台物理机或虚拟机(virtual machine,VM)。
在ES集群中,数据存储和搜索的最小单位为文档,用于存储文档的逻辑空间(即容器)称为索引(index)。为了提高索引的数据存储量以及实现高可用性,可以将索引划分为多个分片(shard),并为每个分片创建对应的至少一个副本(replica)。其中,每个分片与其所对应的至少一个副本分布在不同的节点中。在索引中存储文档时,需要先基于该文档的标识(identity,ID),以及该索引所包括的分片的数量,计算出用于存储该文档的目标分片。之后,即可将文档存储至该目标分片,并由目标分片将文档同步至其所对应的至少一个副本。当需要从索引中读取文档时,可以基于文档的ID以及索引包括的分片的数量,确定出存储有该文档的目标分片,并从该目标分片中进行读取。
由于在索引中存储文档,以及从索引中读取文档时,需要基于该索引所包括的分片的数量计算目标分片,因此索引所包括的分片的数量应是固定的。也即是,在索引创建后,该索引所包括的分片的数量将无法再修改。由此,导致数据写入的灵活性较低。
发明内容
本申请提供了一种弹性搜索集群的资源调度方法、装置及系统,可以解决ES集群中数据写入灵活性较低的技术问题。
第一方面,提供了一种ES集群的资源调度方法,该ES集群包括多个第一节点,该多个第一节点用于承载目标索引的多个分片。该方法包括:统计目标索引的数据写入速率,以及基于该目标索引的数据写入速率处于目标速率范围之外,调整该目标索引的多个分片所占用的节点的资源量。
由于目标索引的数据存储容量,以及所支持的最大数据写入速率均与该多个分片所占用的资源量相关,因此本申请提供的方案能够在不改变目标索引所包括的分片数量的前提下,实现对目标索引的数据存储容量和最大数据写入速率的动态调节。由此,不仅有效提高了数据写入的灵活性,且有效提高了集群资源的利用率。
可选地,基于该目标索引的数据写入速率处于目标速率范围之外,调整该多个分片所占用的节点的资源量的过程可以包括:基于该目标索引的数据写入速率大于目标速率范围的上限,在该ES集群新增至少一个第二节点,并将该多个分片中的至少一个分片迁移至该至少一个第二节点。
通过在ES集群中新增至少一个第二节点,可以实现对ES集群的扩容,并使得目标索引所占用的资源量增多。由此,能够有效提升目标索引的数据存储容量和最大数据写入速率,以使得该目标索引的数据写入性能能够与当前实际的数据写入速率相匹配。
可选地,在ES集群新增至少一个第二节点之前,该方法还可以包括:基于该目标索引的数据写入速率与该目标速率范围的上限的差值,确定待新增的至少一个第二节点的数量。其中,该数量与差值正相关,且该至少一个第二节点的节点规格均为预设规格。
本申请提供的方案可以根据写入速率的差值,在ES集群中新增预设规格的至少一个第二节点。该新增第二节点的方式较为简单,效率较高。
可选地,在ES集群新增至少一个第二节点之前,该方法还可以包括:基于该目标索引的数据写入速率与该目标速率范围的上限的差值,以及互不相同的多种备选的节点规格,确定待新增的至少一个第二节点的数量,以及每个第二节点的节点规格。其中,每个第二节点的节点规格是从该多种备选节点的规格中选取的。
若资源池中的可用节点具有多种不同的节点规格,则本申请提供的方案可以根据写入速率的差值,从该多种不同节点规格的可用节点中确定至少一个第二节点。该新增第二节点的方式的灵活性较高。例如,本申请提供的方案可以基于每种备选的节点规格的成本,采用成本优先的策略确定至少一个第二节点。由此,可以有效降低新增节点的成本。
可选地,该至少一个第二节点包括的处理器核的总数m1可以满足:m1≥(s1-s2)/s0。其中,s1为目标索引的数据写入速率,s2为目标速率范围的上限,s0为每个处理器核的数据写入速率阈值。
基于上述公式,可以确保新增至少一个第二节点后,用于承载目标索引的多个第一节点以及至少一个第二节点的数据写入性能可以与该目标索引的数据写入速率相匹配。
可选地,该至少一个第二节点所采用的资源可以为竞价资源。由于竞价资源的成本较低,因此本申请提供的方案可以优先采用竞价资源作为新增节点的资源。
可选地,该至少一个分片可以满足下述条件中的至少一种:分片中已写入的数据量小于第一阈值;分片所在的第一节点中分布的分片的总数大于第二阈值。
基于上述条件可知,本申请提供的方案可以选择已写入的数据量较小的分片进行迁移,和/或,选择分片数量较多的第一节点中的分片进行迁移。由此,可以有效提高分片的迁移效率,降低迁移成本,并确保各个第一节点中的分片数量较为均衡。
可选地,基于该目标索引的数据写入速率处于目标速率范围之外,调整该多个分片所占用的节点的资源量的过程可以包括:基于该目标索引的数据写入速率小于目标速率范围的下限,从该多个第一节点中确定待删除的至少一个第一目标节点;将该至少一个第一目标节点中分布的分片均迁移至除该至少一个第一目标节点之外的其他第一节点,以及删除该至少一个第一目标节点。
若目标索引的数据写入速率小于目标速率范围的下限,则表明ES集群中的多个第一节点的数据写入性能未被充分利用。由此,能够通过删除至少一个第一节点的方式缩减ES集群的容量,从而有效提高ES集群的资源利用率,并降低ES集群的成本。
可选地,每个第一目标节点中分布的分片的总数小于第三阈值。也即是,本申请提供的方案可以删除分片数量较少的第一节点。由此,可以确保在删除该至少一个第一目标节点之前,能够快速将该至少一个第一目标节点中的分片迁移至其他第一节点。
可选地,基于该目标索引的数据写入速率处于目标速率范围之外,调整该多个分片所占用的节点的资源量的过程可以包括:基于该目标索引的数据写入速率处于目标速率范围之外,调整该多个第一节点中至少一个第一节点的节点规格。
本申请提供的方案还能够在不改变分片所属的第一节点的前提下,通过动态调整第一节点的节点规格,以实现对目标索引所占用的资源量的调节。
可选地,基于该目标索引的数据写入速率处于目标速率范围之外,调整该多个第一节点中至少一个第一节点的节点规格的过程可以包括:基于该目标索引的数据写入速率大于目标速率范围的上限,增大该多个第一节点中至少一个第二目标节点的节点规格。其中,该至少一个第二目标节点可以是ES集群中分片数量较多的第一节点。
可选地,基于该目标索引的数据写入速率处于目标速率范围之外,调整该多个第一节点中至少一个第一节点的节点规格的过程可以包括:基于该目标索引的数据写入速率小于目标速率范围的下限,减小该多个第一节点中至少一个第三目标节点的节点规格。其中,该至少一个第三目标节点可以是ES集群中分片数量较少的第一节点。
可选地,该多个第一节点中第四目标节点所采用的资源为竞价资源。该方法还可以包括:基于该第四目标节点所采用的竞价资源的剩余可用时长小于时长阈值,在该ES集群新增至少一个第三节点;将该第四目标节点中分布的分片均迁移至该至少一个第三节点,以及删除该第三目标节点。
由于竞价资源的成本较低,因此本申请提供的方案可以采用竞价资源作为第四目标节点的资源,并可以在该竞价资源的剩余使用时长小于时长阈值时,及时将第四目标节点中的分片迁移至新增的第三节点。由此,可以在确保ES集群的数据读写性能的前提下,有效降低ES集群的成本。
可选地,该至少一个第三节点所采用的资源可以包括按需资源和/或竞价资源。其中,按需资源是指根据业务需求购置的资源,其成本比竞价资源高。例如,本申请提供的方案可以按照成本优先的策略,确定该至少一个第三节点所采用的资源的类型。
可选地,该ES集群还可以包括多个第四节点,该多个第四节点用于承载目标索引的多个副本。该方法还可以包括:统计该目标索引的数据读取频率,以及基于该目标索引的数据读取频率位于目标频率范围之外,调整该目标索引所包括的副本的数量。
本申请提供的方案通过调整目标索引所包括的副本的数量,可以使得目标索引所包括的副本的数量能够与该数据读取频率相匹配。由此,可以在确保数据读取性能的前提下,有效提高ES集群的资源利用率。
可选地,基于该目标索引的数据读取频率位于目标频率范围之外,调整该目标索引所包括的副本的数量的过程可以包括:基于该目标索引的数据读取频率大于目标频率范围的上限,在ES集群新增至少一个第五节点,并在每个第五节点中新增该目标索引的至少一个副本。
通过在ES集群中新增第五节点,并在第五节点中新增至少一个副本,可以有效提升该ES集群的数据读取性能。
可选地,基于该目标索引的数据读取频率位于目标频率范围之外,调整该目标索引所包括的副本的数量的过程可以包括:基于该目标索引的数据读取频率小于目标频率范围的下限,删除该多个第四节点中至少一个第五目标节点中分布的副本,之后,删除该至少一个第五目标节点。
若目标索引的数据读取频率小于目标频率范围的下限,则表明ES集群中的多个第四节点的数据读取性能未被充分利用。由此,能够通过删除至少一个第五目标节点的方式缩减ES集群的容量,从而有效提高ES集群的资源利用率,并降低ES集群的成本。
第二方面,提供了一种ES集群的资源调度装置,该资源调度装置可以包括至少一个模块,该至少一个模块可以用于实现上述方面所提供的ES集群的资源调度方法。
第三方面,提供了一种计算设备集群,该计算设备集群包括至少一个计算设备,每个计算设备包括处理器和存储器。该至少一个计算设备的处理器用于执行该至少一个计算设备的存储器中存储的指令,以使得计算设备集群执行上述方面所提供的ES集群的资源调度方法。
第四方面,提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序指令,当该计算机程序指令由计算设备集群执行时,该计算设备集群执行如上述方面所提供的ES集群的资源调度方法。
第五方面,提供了一种包含指令的计算机程序产品,当该指令被计算设备集群运行时,使得该计算设备集群执行如上述方面所提供的ES集群的资源调度方法。
第六方面,提供了一种ES系统,该ES系统包括:ES集群,以及该ES集群的资源调度装置,该资源调度装置可以用于实现上述方面所提供的ES集群的资源调度方法。
综上所述,本申请提供了一种弹性搜索集群的资源调度方法、装置及系统,属于数据存储技术领域。本申请提供的方案能够统计目标索引的数据写入速率,并能够在该数据写入速率处于目标速率范围之外时,动态调整该目标索引中多个分片所占用的节点的资源量。由于目标索引的数据存储容量,以及所支持的最大数据写入速率均与该多个分片所占用的资源量相关,因此本申请提供的方案能够在不改变目标索引所包括的分片数量的前提下,实现对目标索引的数据存储容量和最大数据写入速率的动态调节。由此,不仅有效提高了数据写入的灵活性,且有效提高了集群资源的利用率。
附图说明
图1是本申请实施例提供的一种ES集群的结构示意图;
图2是本申请实施例提供的一种ES集群的资源调度方法的应用场景的示意图;
图3是本申请实施例提供的一种ES集群的资源调度方法的流程图;
图4是本申请实施例提供的一种对ES集群进行扩容的方法流程图;
图5是本申请实施例提供的一种AASS组件新增第二节点的示意图;
图6是本申请实施例提供的一种客户端代理组件迁移分片的示意图;
图7是本申请实施例提供的一种扩容后的ES集群的示意图;
图8是本申请实施例提供的一种对ES集群进行减容的方法流程图;
图9是本申请实施例提供的一种AASS组件指示客户端代理组件启动删除流程的示意图;
图10是本申请实施例提供的另一种客户端代理组件迁移分片的示意图;
图11是本申请实施例提供的一种AASS组件删除第一目标节点的示意图;
图12是本申请实施例提供的一种不同节点规格的第一节点的数据写入性能的示意图;
图13是本申请实施例提供的另一种ES集群的资源调度方法的流程图;
图14是本申请实施例提供的一种资源调度装置确定节点替换策略的示意图;
图15是本申请实施例提供的一种AASS组件新增第三节点的示意图;
图16是本申请实施例提供的一种AASS组件删除第四目标节点的示意图;
图17是本申请实施例提供的一种AASS组件新增第五节点的示意图;
图18是本申请实施例提供的一种目标索引的数据读取频率的示意图;
图19是本申请实施例提供的一种目标索引的数据写入频率的示意图;
图20是本申请实施例提供的一种ES集群的资源调度装置的结构示意图;
图21是本申请实施例提供的一种计算设备的结构示意图;
图22是本申请实施例提供的一种计算设备集群的结构示意图。
具体实施方式
下面结合附图详细介绍本申请实施例提供的ES集群的资源调度方法、装置及系统。
首先,对本申请实施例中涉及的下述术语进行解释。
ES:基于Lucene(一种全文搜索引擎)开发得到的一种分布式、高扩展和高实时的数据搜索引擎,其能够以集群为单位提供数据搜索服务。
ES集群,多个节点(node)的集合,能够独立提供搜索服务。例如,参考图1,ES集群可以包括节点1至节点3共3个节点。
节点:也可以称为ES服务器、ES实例或计算实例,其包含处理器、内存和磁盘等基础的物理资源。一个节点可以是一台物理机,一个VM,或一个物理机中的容器。
索引:用于存储数据的逻辑空间,相当于数据库。
分片:由索引划分得到,用于承载索引中的数据。每个索引可以划分为多个分片,该多个分片能够分布在不同的节点中,由此能够有效提升索引的数据存储容量。其中,每个分片可以是一个Lucene实例。例如,参考图1,索引可以划分为分片S1至分片S5共5个分片。其中,分片S1和分片S3分布在节点1中,分片S2和分片S4分布在节点2中,分片S5分布在节点3中。
副本:对分片进行拷贝得到,是分片的备份。每个分片可以具有一个或多个副本,且每个副本与其对应的分片分布在不同的节点中。例如,参考图1,分片S1至分片S5中的每个分片均具有1个副本,且分片S1至分片S5的副本依次为副本R1至副本R5。其中,副本R1和副本R3分布在节点3中,副本R2和副本R4分布在节点1中,副本R5分布在节点2中。
由于副本中存储的数据与分片中存储的数据相同,且副本能够处理数据查询(query)请求,即提供数据查询服务,因此能够有效提高数据查询吞吐量,且实现高可用性。其中,对于为分片创建了副本的场景,分片也可以称为主分片(primary shard),副本也可以称为副本分片(replica shard)。
图2是本申请实施例提供的一种ES集群的资源调度方法的应用场景的示意图。如图2所示,该应用场景包括ES集群,以及应用托管组件。并且,该应用场景可以划分为管理面和数据面。其中,ES集群的管理面可以包括主节点(master node)、客户端节点(clientnode)和请求缓存(request cache)。该主节点用于维护ES集群的状态,例如创建和删除索引等。客户端节点主要负责数据的存储,以及处理应用(也称为客户端)的数据索引请求和数据读取请求。可以理解的是,该主节点也可以具有客户端节点所具有的功能。请求缓存用于缓存数据索引请求和数据读取请求。其中,数据索引请求用于请求在索引中写入数据,也可以称为数据写入请求;数据读取请求用于请求读取索引中的数据,也可以称为数据查询请求。
ES集群的数据面可以包括读(reader)集群和写(writer)集群。该读集群包括节点Nr1至节点NrN共N个节点,N为大于1的整数。读集群中的每个节点中可以分布有索引的一个或多个副本,且该读集群可以用于处理数据读取请求。写集群包括节点Nw1至节点NwM共M个节点,M为大于1的整数。该写集群中的每个节点中可以分布有索引的一个或多个分片,且该写集群可以用于处理数据写入请求。也即是,在需要向某个索引写入数据时,可以只向写集群中分布的分片写入数据,并由该写集群中的分片将数据同步至读集群中的一个或多个副本。在从某个索引中读取数据(即查询数据)时,可以只从读集群中分布的副本中读取数据。由此,可以实现数据的读写分离,从而有效提高数据的读写效率。
该应用托管组件也可以称为智能云应用弹性引擎(smart cloud APP elasticengine,Scase)服务组件,其能够提供全域应用托管服务。继续参考图2,该应用托管组件可以包括:位于管理面的全域调度组件和应用队列管理组件,以及位于数据面的客户端代理(client proxy)组件、应用网关(application gateway,AGW)、应用弹性伸缩服务(application autoscale service,AASS)组件和服务(server)软件开发工具包(softwaredevelopment kit,SDK)。在图2所示的应用场景中,写集群中的每个分片,以及读集群中的每个副本均能够由一个搜索进程(也称Lucene进程或应用进程)托管。该搜索进程中集成有服务SDK。该应用托管组件中各个组件的功能如下:
服务SDK:用于控制搜索进程的启停,以及上报搜索业务的监控数据。该监控数据可以包括:每秒读写量、搜索进程的状态以及搜索进程所包括的线程数等。
应用队列管理组件:负责搜索进程的托管,以及管理搜索进程的队列的大小。
AGW:用于搜索进程的控制。例如,汇聚收集服务SDK采集到的监控数据,以及向服务SDK下发控制指令,以使服务SDK控制搜索进程的启停,并控制分片或副本的迁移。
AASS组件:监控搜索进程的流量(包括写入数据量和数据读取请求的数量),以及协调应用指标与集群的底层资源,实现应用驱动的弹性服务。
客户端代理组件:用于将数据写入请求和数据读取请求进行分流控制,也即是,将数据写入请求分流至写集群中的各个节点,以及将数据读取请求分流至读集群中的各个节点。
全域调度组件:提供资源池的全局资源视图,以及基于资源池中可用节点的节点规格,按照预设策略(例如成本优先的策略)决策ES集群中节点的组合方式。
继续参考图2,该应用场景还可以包括存储服务组件,例如对象存储服务(objectstorage service,OBS)组件。该存储服务组件用于实现分片与副本之间的数据同步。
本申请实施例提供了一种ES集群的资源调度方法,该ES集群包括多个第一节点,该多个第一节点中分布有目标索引的多个分片。其中,每个第一节点中可以分布有目标索引的至少一个分片。可以理解的是,该ES集群中可以承载至少一个索引,该目标索引可以是该至少一个索引中的任一索引。还可以理解的是,该目标索引的多个分片均是指主分片,该多个第一节点可以组成目标索引的写集群。例如,该多个第一节点可以是图2中的节点Nw1至节点NwM。
本申请实施例提供的方法可以应用于资源调度装置,该资源调度装置可以是诸如图2所示应用场景中的应用托管组件。参考图3,该资源调度方法包括:
步骤101、统计目标索引的数据写入速率。
在本申请实施例中,资源调度装置可以实时或周期性地统计目标索引的数据写入速率。资源调度装置在每个统计时刻统计到的数据写入速率可以是指:在该统计时刻之前的第一目标时长内的平均数据写入速率,即第一目标时长内接收到的需写入至目标索引的总数据量与该第一目标时长的比值。其中,该数据写入速率的单位可以是比特每秒(bitsper second,bps)。
可选地,资源调度装置可以统计在第一目标时长内接收到的针对该目标索引的数据写入请求的个数,并统计每个数据写入请求所请求写入的数据的数据量。资源调度装置可以将第一目标时长内接收到的各个数据写入请求所请求的数据量累加,从而得到第一目标时长内接收到的需写入至目标索引的总数据量。之后,资源调度装置可以计算该总数据量与第一目标时长的比值,并将该比值确定为目标索引的数据写入速率。
示例的,假设该资源调度装置为图2所示的应用托管组件,则AGW或客户端代理组件可以统计在第一目标时长内接收到的针对该目标索引的数据写入请求的个数,并统计每个数据写入请求所请求写入的数据的数据量。AASS组件可以基于AGW或客户端代理组件统计的数据,计算该目标索引的数据写入速率。
步骤102、基于目标索引的数据写入速率处于目标速率范围之外,调整多个分片所占用的节点的资源量。
资源调度装置中预先存储有目标速率范围,该目标速率范围可以是目标索引当前所能够支持的数据写入速率的范围。由于目标索引当前由多个第一节点承载,因此该目标速率范围也可以理解为该多个第一节点所能够支持的数据写入速率的范围。并且,该目标速率范围可以基于该多个第一节点的节点规格确定。
其中,节点规格的衡量指标至少可以包括:节点包括的处理器核的数量。或者,该衡量指标还可以包括节点的内存大小。若某个节点具有x个处理器核,且内存为y吉字节(gigabyte,G),则该节点的节点规格可以表示为xUyG。其中,x和y均为正整数。U为单元(unit)的缩写,是一种表示服务器外部尺寸的单位,在本申请实施例中可以用于表示处理器核的数量。
可以理解的是,第一节点的节点规格越高,其所能够支持的最大数据写入速率也越高,即第一节点的数据写入性能也越好。因此,资源调度装置可以基于该多个第一节点的节点规格来确定目标速率范围。
可选地,资源调度装置可以获取预设的每个处理器核的数据写入速率阈值s0,即单核数据写入速率。之后,可以基于该数据写入速率阈值s0与多个第一节点所包括的处理器核的总数m的乘积,确定目标速率范围。例如,该目标速率范围可以为(s0×m)±Δs。其中,Δs为预设的写入速率波动值,其可以为大于或等于0的数。其中,该数据写入速率阈值s0可以是由应用(即客户端)配置的,且可以是应用对单个处理器核的数据写入性能进行测试得到的。
例如,若某个应用的单个搜索进程运行时所需占用的资源量为1U4G,且该单个搜索进程在1U4G的节点中运行时,该节点所支持的最大的数据写入速率为2兆比特每秒(Mbps),则该应用可以配置每个处理器核的数据写入速率阈值s0为2Mbps。若某个应用的单个搜索进程运行时所需占用的资源量为2U8G,且该单个搜索进程在2U8G的节点中运行时,该节点所支持的最大的数据写入速率为2Mbps,则该应用可以配置每个处理器核的数据写入速率阈值s0为1Mbps。
假设资源调度装置中配置的每个处理器核的数据写入速率阈值s0为2Mbps。ES集群中包括10个第一节点,每个第一节点包括的处理器核的数量均为4,即该10个第一节点所包括的处理器核的总数m为40。相应的,资源调度装置可以确定目标速率范围为(80±Δs)Mbps。若该预设的写入速率波动值Δs为0,则该目标速率范围可以等于80Mbps。
当目标索引的数据写入速率处于目标速率范围之外时,资源调度装置可以确定该多个第一节点的数据写入性能与目标索引的数据写入速率并不匹配。其中,若目标索引的数据写入速率大于目标速率范围的上限,则资源调度装置可以确定该多个第一节点的数据写入性能无法支持目标索引当前实际的数据写入速率,即数据可能产生堆积,无法及时有效地写入至目标索引。若目标索引的数据写入速率小于目标速率范围的下限,则资源调度装置可以确定该多个第一节点的数据写入性能未被充分利用,即ES集群的资源利用率较低。
基于此,资源调度装置可以动态调整目标索引的多个分片所占用的资源量,以使得该多个分片所占用的资源量能够与该目标索引当前实际的数据写入速率相匹配。由此,可以在确保数据写入性能较高的前提下,有效提高ES集群的资源利用率,即实现了基于写服务质量(quality ofservice,QOS)的弹性策略。
在第一种可选的实现方式中,资源调度装置可以通过调整目标索引中多个分片所占用的节点的数量,以实现对该多个分片所占用的资源量的调节。在第二种可选的实现方式中,资源调度装置可以通过调整该多个第一节点中至少一个第一节点的节点规格,以实现对该多个分片所占用的资源量的调节。
下文以第一种实现方式为例,对上述步骤102的实现过程进行介绍。参考图4,该步骤102可以包括:
步骤102a1、基于目标索引的数据写入速率大于目标速率范围的上限,在ES集群中新增至少一个第二节点。
当目标索引的数据写入速率大于目标速率范围的上限时,为了增大目标索引所占用的资源量,资源调度装置可以在ES集群中新增至少一个用于承载该目标索引的分片的第二节点。
作为第一种示例,资源调度装置可以基于目标索引的数据写入速率与目标速率范围的上限的差值,确定待新增的至少一个第二节点的数量。其中,该至少一个第二节点的数量与该差值正相关。并且,该至少一个第二节点的节点规格均为预设规格,即该至少一个第二节点的节点规格相同。由于在第一种示例中,待新增的节点的节点规格均为预设规格,因此资源调度装置可以直接基于写入速率的差值,确定待新增的至少一个第二节点的数量。该新增第二节点的方式较为简单,效率较高。
在该第一种示例中,假设预设规格中的处理器核的数量为m0,则该待新增的至少一个第二节点的数量n1可以满足:
n1≥(s1-s2)/(s0×m0) 公式(1);
其中,s1为目标索引的数据写入速率,s2为该目标速率范围的上限,s0为每个处理器核的数据写入速率阈值。上述公式(1)还可以变形为:(n1×m0)≥(s1-s2)/s0,其中(n1×m0)即为该至少一个第二节点所包括的处理器核的总数。
作为第二种示例,若资源池(例如云平台)中的可用节点具有互不相同的多种备选的节点规格,则资源调度装置可以基于目标索引的数据写入速率与目标速率范围的上限的差值,以及该多种备选的节点规格,确定待新增的至少一个第二节点的数量,以及每个第二节点的节点规格。其中,每个第二节点的节点规格是从该多种备选的节点规格中选取的,且不同第二节点的节点规格可以相同,也可以不同。在该第二种示例中,该新增的至少一个第二节点所包括的处理器核的总数m1可以满足:
m1≥(s1-s2)/s0 公式(2)。
可选地,资源调度装置可以基于每种备选的节点规格的成本,采用成本优先的策略确定至少一个第二节点的数量,以及每个第二节点的节点规格。由此,可以在改善ES集群的数据写入性能的前提下,有效降低新增节点的成本。
示例的,资源调度装置可以先从资源池的可用节点中确定出能够满足上述公式(2)的多种节点组合方式,其中,不同节点组合方式中的第二节点的数量不同,和/或,至少一个第二节点的规格不同。之后,资源调度装置可以从该多种节点组合方式中选择成本最低的一种节点组合方式,并按照该成本最低的一种节点组合方式新增至少一个第二节点。
假设目标索引的数据写入速率s1为100Mbps,该目标速率范围的上限s2为80Mbps,且每个处理器核的数据写入速率阈值s0为2Mbps。资源调度装置基于上述公式(2)可以确定:待新增的至少一个第二节点所包括的处理器核的总数m1需大于等于10。若待新增的第二节点的节点规格均为预设规格:2U8G,即每个第二节点中的处理器核的数量m0均等于2,则资源调度装置可以在ES集群中新增5个2U8G的第二节点。
若资源池中的可用节点具有2U8G和4U16G共两种备选的节点规格,且一个4U16G的节点的成本低于2个2U8G节点的成本。则资源调度装置基于成本优先的策略,可以在ES集群中新增2个4U16G的第二节点,以及1个2U8G的第二节点。
可选地,若资源池中的可用节点包括采用竞价(spot)资源的节点,则由于竞价资源的成本较低,因此在上述步骤102a1中,资源调度装置可以优先选择该采用竞价资源的节点作为待新增的第二节点。也即是,该至少一个第二节点所采用的资源可以为竞价资源。其中,采用竞价资源的节点也可以称为spot实例。
步骤102a2、将多个分片中的至少一个分片迁移至该至少一个第二节点。
资源调度装置在ES集群中新增至少一个第二节点后,即可将目标索引中的至少一个分片迁移至该至少一个第二节点。其中,每个第二节点中可以承载目标索引的一个或多个分片。
可选地,资源调度装置所迁移的至少一个分片可以满足下述条件中的至少一种:分片中已写入的数据量小于第一阈值;分片所在的第一节点中分布的分片的总数大于第二阈值。
基于上述条件可知,资源调度装置可以选择已写入的数据量较小的分片进行迁移,和/或,选择分片数量较多的第一节点中的分片进行迁移。由此,可以有效提高分片的迁移效率,降低迁移成本,并可以确保各个第一节点中的分片数量较为均衡。
其中,该第一阈值和第二阈值均可以是资源调度装置中预先配置的固定值。或者,该第一阈值可以是基于目标索引中各个分片已写入的数据量确定的,例如可以是目标索引的各个分片中已写入的数据量的均值或下四分位数。该第二阈值可以是基于各个第一节点中的分片数量确定的,例如可以是各个第一节点中的分片数量的均值或上四分位数。
可以理解的是,资源调度装置也可以通过其他方式确定待迁移的至少一个分片。例如,资源调度装置可以从目标索引的多个分片中随机选取待迁移的至少一个分片。
还可以理解的是,资源调度装置在确定出待迁移的至少一个分片后,可以基于负载均衡的策略,将上述至少一个分片迁移至新增的至少一个第二节点。
下文以资源调度装置为图2所示的应用托管组件为例,对上述步骤102a1和步骤102a2的实现过程进行介绍。
首先,AASS组件在检测到目标索引的数据写入速率大于目标速率范围的上限后,可以确定扩容策略,该扩容策略包括待新增的至少一个第二节点的数量,以及待新增的每个第二节点的节点规格。例如,AASS组件可以根据数据写入速率与目标速率范围的上限的差值,确定扩容策略。或者,AASS组件可以将该差值上报至全域调度组件,全域调度组件进而可以根据该差值和资源池中多种备选的节点规格,确定扩容策略,并将该扩容策略下发至AASS组件。
之后,AASS组件即可按照该扩容策略在ES集群中新增至少一个第二节点,并调整分片的部署策略。其中,分片的部署策略可以是指目标索引中的各个分片与其所分布的节点的对应关系,即分片与节点的映射关系。
例如,参考图5,假设目标索引包括分片S1至分片S4共4个分片,用于承载该4个分片的读集群包括节点1和节点2共2个第一节点。其中,节点1中分布有分片S1和分片S3,节点2中分布有分片S2和分片S4。AASS组件若确定目标索引的数据写入速率大于目标速率范围的上限,则可以在读集群中新增节点3和节点4共2个第二节点。并且,AASS组件可以调整分片的部署策略为:分片S3部署至节点3,分片S4部署至节点4。
进一步的,客户端代理组件可以实时对接AASS组件以获取新增的第二节点的服务状态,并同步分片的部署策略。客户端代理组件在确定新增的第二节点的服务状态均为准备完成(ready)状态后,即可按照分片的部署策略,将至少一个分片迁移至新增的至少一个第二节点。例如,参考图6,客户端代理组件可以将分片S3迁移至节点3,并将分片S4迁移至节点4。
在完成分片迁移后,客户端代理组件还需更新分流策略,并按照更新后的分流策略对数据写入请求进行分流。其中,分流策略是指向用于承载目标索引的各个节点分发数据写入请求的策略。例如,参考图6,在迁移分片S3和分片S4之前,客户端代理组件可以基于分流策略向节点1和节点2分发数据写入请求。并且,从图6可以看出,在迁移分片S3和分片S4的过程中,客户端代理组件并不会向节点3和节点4分发数据写入请求。参考图7,客户端代理组件在完成分片S3和分片S4的迁移后,可以基于更新后的分流策略,向节点1、节点2、节点3和节点4分发数据写入请求。
在上述扩容过程中,新增至少一个第二节点所需的时长大约为3至5分钟,分片迁移和流量切换所需的时长大约为1分钟。
图8是本申请实施例提供的一种对ES集群进行减容的方法流程图。参考图8,上述步骤102还可以包括:
步骤102b1、基于目标索引的数据写入速率小于目标速率范围的下限,从多个第一节点中确定待删除的至少一个第一目标节点。
当目标索引的数据写入速率小于目标速率范围的下限时,为了提高ES集群的资源利用率,并降低ES集群的成本,资源调度装置可以从多个第一节点中确定待删除的至少一个第一目标节点。
可选地,每个第一目标节点中分布的分片的总数可以小于第三阈值。也即是,资源调度装置可以删除分片数量较少的第一节点。由此,可以确保在删除该至少一个第一目标节点之前,能够快速将该至少一个第一目标节点中的分片迁移至其他第一节点。
其中,该第三阈值可以是资源调度装置中预先配置的固定值。或者,该第三阈值可以是基于各个第一节点中的分片数量确定的,例如可以是各个第一节点中的分片数量的均值或下四分位数。
作为第一种示例,若该ES集群中各个第一节点的节点规格均为预设规格,则资源调度装置可以基于目标索引的数据写入速率与目标速率范围的下限的差值,确定待删除的至少一个第一目标节点的数量。其中,该至少一个第一目标节点的数量与该差值正相关。
假设该预设规格中的处理器核的数量为m0,则该待删除的至少一个第一目标节点的数量n2可以满足:n2≤(s3-s1)/(s0×m0) 公式(3);
其中,s1为目标索引的数据写入速率,s3为该目标速率范围的下限,s0为每个处理器核的数据写入速率阈值。上述公式(3)还可以变形为:(n2×m0)≤(s3-s1)/s0,其中(n2×m0)即该至少一个第一目标节点所包括的处理器核的总数。
可以理解的是,该目标速率范围的下限s3可以小于目标速率范围的上限s2,或者,该目标速率范围的下限s3可以等于上限s2,即该目标速率范围可以是一个速率阈值。
作为第二种示例,若各个第一节点的节点规格不完全相同,则资源调度装置可以基于目标索引的数据写入速率与目标速率范围的下限的差值,以及该各个第一节点的节点规格确定待删除的至少一个第一目标节点。并且,该至少一个第一目标节点所包括的处理器核的总数m2可以满足:m2≤(s3-s1)/s0 公式(4)。
可选地,在该第二种示例中,资源调度装置还可以基于不同节点规格的第一节点的成本,采用成本优先的策略确定待删除的至少一个第一目标节点,以有效降低ES集群的成本。
例如,资源调度装置可以先确定出能够满足上述公式(4)的多种节点组合方式,其中,不同节点组合方式中的第一节点的数量不同,和/或,至少一个第一节点的规格不同。之后,资源调度装置可以从该多种节点组合方式中选择成本最高的一种节点组合方式,并将该成本最高的一种节点组合方式确定为待删除的至少一个第一目标节点的组合方式。
步骤102b2、将至少一个第一目标节点中分布的分片均迁移至除至少一个第一目标节点之外的其他第一节点。
资源调度装置确定出待删除的至少一个第一目标节点后,即可将该至少一个第一目标节点中分布的分片均迁移至除至少一个第一目标节点之外的其他第一节点。例如,资源调度装置可以基于负载均衡的策略迁移分片,以确保分片迁移后,除该至少一个第一目标节点之外的各个第一节点中的分片数量较为均衡。
步骤102b3、删除至少一个第一目标节点。
资源调度装置完成分片迁移后,即可删除该至少一个第一目标节点。由此,能够有效缩减ES集群的容量,即实现对ES集群的减容,从而有效降低ES集群的成本。
下文以资源调度装置为图2所示的应用托管组件为例,对上述步骤102b1至102b3的实现过程进行介绍。
首先,AASS组件在检测到目标索引的数据写入速率小于目标速率范围的下限后,可以确定减容策略,该减容策略包括待删除的至少一个第一目标节点,以及该至少一个第一目标节点中的分片的部署策略。之后,如图9所示,AASS组件可以向客户端代理组件发送节点删除通知,以指示客户端代理组件启动删除流程。客户端代理组件接收到该节点删除通知后,可以同步AASS组件中的减容策略,并根据该减容策略将至少一个第一目标节点中的分片均迁移至其他第一节点。例如参考图10,客户端代理组件可以将节点3中的分片S3迁移至节点1,并将节点4中的分片S4迁移至节点2。
分片迁移完成后,客户端代理组件可以切断节点3和节点4的业务流。并且,客户端代理组件可以通知AASS组件该至少一个第一目标节点可删除。AASS组件进而可以通过AGW监测该至少一个第一目标节点的服务状态,在确定该至少一个第一目标节点中的数据和进程均删除后,AASS组件即可删除该至少一个第一目标节点。例如,参考图10和图11,AASS组件可以删除节点3和节点4。
可以理解的是,在本申请实施例中,AASS组件可以直接调用ES集群的弹性计算服务(elastic computer service,ECS)或者自动伸缩服务(autoscaling service,AS)的接口来新增第二节点,或删除第一目标节点。其中,由于调用ECS的接口删除节点的过程支持执行删除脚本,因此ECS会执行预置在服务SDK中的删除回调,以实现第一目标节点中数据和进程的删除。AGW可以通过服务SDK更新节点的服务状态,该服务状态包括节点中的进程状态和会话数量等。AASS组件通过监测AGW,确定节点中的数据和进程均删除后,会调用ECS的接口自动删除第一目标节点。或者,也可以由AGW调用删除函数,以删除第一目标节点中的数据和进程。当节点中的数据和进程均删除完成后,再调用ECS接口删除第一目标节点。
下文以上述第二种实现方式(即调整目标索引所占用的多个第一节点中至少一个第一节点的节点规格)为例,对上述步骤102的实现过程进行介绍。
在该第二种实现方式中,ES集群中的多个第一节点均可以采用无服务器(serverless)架构。资源调度装置在检测到目标索引的数据写入速率处于目标速率范围之外时,可以调整该多个第一节点中至少一个第一节点的节点规格。也即是,资源调度装置无需调整用于承载目标索引的节点的数量,也无需迁移目标索引的分片,而是能够通过动态调整至少一个第一节点的节点规格,以实现对该目标索引所占用的资源量的调节。
如前文所述,节点规格的衡量指标至少可以包括:节点的处理器核的数量。因此,资源调度装置调整第二目标节点的节点规格可以是指:调整该第二目标节点所包括的处理器核的数量。若该节点规格的衡量指标还包括节点的内存大小,则调整第二目标节点的节点规格可以是指:调整该第二目标节点所包括的处理器核的数量,以及内存大小。
在该第二种实现方式中,资源调度装置若确定目标索引的数据写入速率大于目标速率范围的上限,则可以增大该多个第一节点中至少一个第二目标节点的节点规格。
其中,每个第二目标节点中分布的分片的总数可以大于第四阈值。也即是,资源调度装置可以增大分片数量较多的第一节点的节点规格。该第四阈值可以是资源调度装置中预先配置的固定值。或者,该第四阈值可以是基于各个第一节点中的分片数量确定的,例如可以是各个第一节点中的分片数量的均值或上四分位数。
可以理解的是,上述至少一个第二目标节点还可以通过其他方式确定,例如资源调度装置可以从多个第一节点中随机选取至少一个第二目标节点。或者,资源调度装置可以将该多个第一节点均确定为第二目标节点,即资源调度装置可以增大每个第一节点的节点规格。
在该第二种实现方式中,资源调度装置若确定目标索引的数据写入速率小于目标速率范围的下限,则可以减小该多个第一节点中至少一个第三目标节点的节点规格。
其中,每个第三目标节点中分布的分片的总数可以小于第五阈值。也即是,资源调度装置可以减小分片数量较少的第一节点的节点规格。该第五阈值可以是资源调度装置中预先配置的固定值。或者,该第五阈值可以是基于各个第一节点中的分片数量确定的,例如可以是各个第一节点中的分片数量的均值或下四分位数。
可以理解的是,上述至少一个第三目标节点还可以通过其他方式确定,例如资源调度装置可以从多个第一节点中随机选取至少一个第三目标节点。或者,资源调度装置可以将该多个第一节点均确定为第三目标节点,即资源调度装置可以减小每个第一节点的节点规格。
还可以理解的,资源调度装置可以基于目标索引的数据写入速率s1,调整该至少一个第二目标节点(或至少一个第三目标节点)的节点规格。并且,调整节点规格后的多个第一节点所包括的处理器核的总数m3可以满足:m3≥s1/s0 公式(5)。
示例的,假设每个处理器核的数据写入速率阈值s0为2Mbps,且ES集群中包括10个节点规格为4U16G的第一节点,即该10个第一节点所包括的处理器核的总数为40。若目标索引的数据写入速率s1为100Mbps,则资源调度装置基于上述公式(5)可以确定,该10个第一节点所包括的处理器核的总数需大于等于50才能满足目标索引的数据写入速率s1的需求。基于此,资源调度装置可以将ES集群中3个第一节点的节点规格由4U16G调整为8U32G,此时,调整节点规格后的多个第一节点所包括的处理器核的总数m3为52。
若目标索引的数据写入速率s1为40Mbps,则资源调度装置基于上述公式(5)可以确定,该10个第一节点所包括的处理器核的总数大于等于20即可满足目标索引的数据写入速率s1的需求。基于此,资源调度装置可以将该ES集群中10个第一节点的节点规格均由4U16G调整为2U8G,此时,调整节点规格后的多个第一节点所包括的处理器核的总数m3为20。
可选地,资源调度装置在检测到目标索引的数据写入速率位于目标速率范围之外时,可以采用上述第一种实现方式和第二种实现方式中的任一种实现方式,调整目标索引中多个分片所占用的资源量。或者,资源调度装置还可以将上述两种实现方式结合,来调整目标索引中多个分片所占用的资源量,即资源调度装置既可以调整用于承载目标索引的节点的数量,又可以调整至少一个第一节点的节点规格。
在本申请实施例中,资源调度装置中可以预先配置有节点规格与节点性能的对应关系,该对应关系中记录有不同节点规格所对应的节点性能。其中,节点性能可以采用下述参数表征:节点所能够承载的分片的数量,以及节点所支持的最大数据写入速率。资源调度装置在检测到目标索引的数据写入速率位于目标速率范围之外时,可以基于该对应关系,确定待新增的第二节点的节点规格,和/或,调整第一节点的节点规格。
可以理解的是,对于不同类型的应用的搜索进程(包括索引进程和读取进程),节点运行该搜索进程所需的资源量是不同的。例如,运行应用1的单个搜索进程所需的资源量为1U2G,运行应用2的单个搜索进程所需的资源量可以为2U4G。基于此,对于每个类型的应用,资源调度装置中可以配置有与该类型的应用所关联的对应关系,该对应关系中的节点性能可以是对该类型的应用进行测试得到的。
示例的,资源调度装置中配置的与某个类型的应用所关联的对应关系可以如表1所示。参考表1,节点规格为2U8G的节点所能够承载的分片的数量为1,其所支持的最大数据写入速率为4Mbps。节点规格为8U32G的节点所能够承载的分片的数量也为1,但其所支持的最大数据写入速率能够达到16Mbps。
表1
节点规格 | 承载的分片的数量 | 最大数据写入速率(Mbps) |
2U8G | 1 | 4 |
4U16G | 1 | 8 |
8U32G | 1 | 16 |
12U48G | 1 | 24 |
16U64G | 2 | 32 |
24U96G | 2 | 48 |
32U128G | 2 | 64 |
参考图12,假设资源调度装置将ES集群中节点1和节点2的节点规格均调整为32U,在ES集群中新增了节点规格为4U的节点3和节点4,并将分片S3迁移至节点3,将分片S4迁移至节点4。结合上述表1可知,该节点1和节点2所支持的最大数据写入速率均为64Mbps,节点3和节点4所支持的最大数据写入速率均为8Mbps。该4个节点所支持的总的数据写入速率可以达到144Mbps。
可选地,该多个第一节点中的第四目标节点所采用的资源可以为竞价资源。该竞价资源是一种成本较低,且成本(即价格)随供需关系变化的资源。
作为第一种可能的示例,资源调度装置可以在特定时段内(例如夜间)购置固定时长的竞价资源,以作为第四目标节点的资源。当该竞价资源的运行时长达到该固定时长时,将会被自动释放,即该竞价资源将被资源池收回。
作为第二种可能的示例,资源调度装置可以按照预设的目标价格购置竞价资源,以作为第四目标节点的资源。若该目标价格高于竞价资源的市场价,且资源池的资源库存足够,则ES集群可以持续占用该竞价资源。若该目标价格低于竞价资源的市场价,或者资源池的资源库存不存,则资源池将向资源调度装置发送预警通知,并在一定时长后自动释放(即收回)该竞价资源。
图13是本申请实施例提供的另一种资源调度方法的流程图。如图13所示,该资源调度方法还可以包括:
步骤103、基于第四目标节点所采用的竞价资源的剩余可用时长小于时长阈值,在ES集群中新增至少一个第三节点。
当该竞价资源的剩余可用时长小于时长阈值时,资源调度装置可以在ES集群(例如写集群)中新增至少一个第三节点,以便将该第四目标节点中的分片迁移至该至少一个第三节点。其中,该时长阈值可以大于迁移第四目标节点中的分片所需的时长。由此,可以确保在第四目标节点所采用的竞价资源被释放之前,第四目标节点中的分片能完成迁移,从而避免对业务造成影响。
可选地,资源调度装置新增的至少一个第三节点所采用的资源可以包括按需资源和/或竞价资源。例如,资源调度装置可以按照成本优先的策略,从资源池中选择按需资源和/或竞价资源以作为至少一个第三节点所采用的资源。其中,按需资源是指根据业务需求购置的资源,其成本比竞价资源高。
在第一种示例中,若资源调度装置是按照固定时长购置的竞价资源,则资源调度装置可以实时监测第四目标节点所采用的竞价资源的剩余可用时长。该剩余可用时长可以等于该固定时长与竞价资源的已使用时长的差值。当该剩余可用时长小于资源调度装置中预先配置的时长阈值时,资源调度装置即可在ES集群中新增至少一个第三节点。
例如,假设资源调度装置为第四目标节点购置的竞价资源的固定时长为2小时,且该时长阈值为20分钟,则资源调度装置可以在竞价资源的已使用时长达到1小时40分钟时,在ES集群中新增至少一个第三节点。假设该目标索引用于存储直播日志数据,则由于直播日志数据一般按照5分钟的粒度打包,上传至ES集群并索引,因此在竞价资源的剩余可用时长为20分钟时启动分片的迁移流程,对分片是预留有充足的迁移时间的,可以避免影响业务性能。
若资源调度装置是按照目标价格购置的竞价资源,则资源调度装置可以在接收到资源池发送的预警通知时,确定该竞价资源的剩余可用时长小于时长阈值,并在ES集群中新增至少一个第三节点。其中,该时长阈值可以为资源池发送预警通知到自动释放该竞价资源之间的预留时长。
可以理解的是,资源调度装置在ES集群中新增至少一个第三节点时,可以基于目标索引的数据写入速率确定待新增的至少一个第三节点的数量,以及每个第三节点的规格。例如,该至少一个第三节点,以及ES集群中除第四目标节点之外的其他第一节点所包括的处理器核的总数可以满足上述公式(5)。
步骤104、将第四目标节点中的分片均迁移至该至少一个第三节点。
在本申请实施例中,资源调度装置新增至少一个第三节点后,即可将第四目标节点中的分片均迁移至该至少一个第三节点。例如,资源调度装置可以基于负载均衡的策略,向该至少一个第三节点迁移分片。该步骤104的实现过程可以参考上述步骤102a2和步骤102b2,此处不再赘述。
步骤105、删除第四目标节点。
在完成分片迁移,且第四目标节点所采用的竞价资源的剩余可用时长为零时,资源调度装置即可删除该第四目标节点,以释放第四目标节点所采用的竞价资源。该步骤105的实现过程可以参考上述步骤102b3,此处不再赘述。
下文以资源调度装置为图2所示的应用托管组件为例,对上述步骤103至步骤105的实现过程进行介绍。
参考图14,AASS组件在监测到第四目标节点(例如图14中的节点3和节点4)所采用的竞价资源的剩余可用时长小于时长阈值时,可以确定节点替换策略,该节点替换策略包括待新增的至少一个第三节点的数量,以及待新增的每个第三节点的节点规格。例如,AASS组件可以将节点需求信息上报至全域调度组件,全域调度组件进而可以根据该节点需求信息和多种备选的节点规格,确定节点替换策略,并将该节点替换策略下发至AASS组件。其中,节点需求信息可以是指所需新增的处理器核的总数。
之后,AASS组件即可按照该节点替换策略在ES集群中新增至少一个第三节点,并调整分片的部署策略。例如,参考图15,AASS组件可以新增节点5和节点6共2个第三节点。并且,AASS组件可以调整分片的部署策略为:分片S3部署至节点5,分片S4部署至节点6。
进一步的,客户端代理组件即可按照该调整后的分片部署策略,将至少一个分片迁移至新增的至少一个第三节点。例如,参考图15,客户端代理组件可以将节点3中的分片S3迁移至节点5,并将节点4中的分片S4迁移至节点6。当节点3和节点4所采用的竞价资源的剩余可用时长为零时,如图16所示,AASS组件可以删除该节点3和节点4。
基于上述分析可知,本申请实施例提供的方法可以通过调整目标索引中的多个分片所占用的资源量,实现对目标索引的数据写入性能的灵活调节,即能够实现ES集群的写弹性。基于此,本申请实施例提供的方案可以用于存储写入数据量较多,且写入数据量随时间波动较大的场景。例如,该目标索引可以用于存储媒体日志数据或交易系统的交易数据。其中,媒体日志数据可以包括:直播日志数据和点播日志数据等。
上文是以资源调度装置根据目标索引的数据写入速率,调整目标索引中的多个分片所占用的资源量为例进行的说明。在本申请实施例中,该ES集群还可以包括多个第四节点,该目标索引还可以包括多个副本,该多个副本由该多个第四节点承载。该多个第四节点可以组成目标索引的读集群。例如,该多个第四节点可以是图2中的节点Nr1至节点NrN。该资源调度装置还可以基于目标索引的数据读取频率,对目标索引所包括的副本的数量进行灵活调节,以实现ES集群的读弹性。继续参考图13,本申请实施例提供的资源调度方法还可以包括:
步骤106、统计目标索引的数据读取频率。
在本申请实施例中,资源调度装置可以实时或周期性地统计目标索引的数据读取频率,该数据读取频率可以是指在单位时间内接收到的针对目标索引的数据读取请求的数量。可选地,资源调度装置在每个统计时刻统计到的数据读取频率可以是指:在该统计时刻之前的第二目标时长内接收到的数据读取请求的次数与该第二目标时长的比值。例如,假设该第二目标时长的统计单位为秒,则该数据读取频率可以为每秒请求数(queries persecond,QPS)。
其中,该第二目标时长与统计数据写入速率时的第一目标时长可以相等,也可以不等。例如,该第二目标时长和第一目标时长均可以为5分钟。
步骤107、基于目标索引的数据读取频率位于目标频率范围之外,调整目标索引所包括的副本的数量。
目标索引中的每个副本是对该目标索引的一个分片进行拷贝得到的,即每个副本中存储的数据与该副本对应的分片中存储的数据相同。并且,目标索引中不同分片所具有的副本的数量可以相同,也可以不同。
可以理解的是,目标索引的副本可以提供数据查询服务,且目标索引所包括的副本的数量越多,该目标索引所支持的最大数据读取频率也就越高。在本申请实施例中,资源调度装置中预先存储有目标频率范围,该目标频率范围可以是根据目标索引当前所包括的副本的数量确定的。
还可以理解的是,在目标索引中存储文档(文档是数据存储的最小单位)时,需基于该目标索引所包括的分片的数量,计算用于存储该文档的目标分片的标识。例如,可以采用下述公式计算目标分片的标识shard_num:
shard_num=hash(routing)%num_primary_shards 公式(6);
其中,hash表示哈希运算,routing为预设的路由键,num_primary_shards为目标索引所包括的分片的数量。在从目标索引中读取该文档时,同样需基于上述公式(6)确定存储有该文档的目标分片的标识。基于上述分析可知,为了确保数据的准确查询,在目标索引创建后,该目标索引所包括的分片的数量将无法再修改。
由于目标索引所包括的分片数量无法调整,而副本的数量可以灵活调节,因此目标索引所包括的副本的数量越多,其所能够支持的最大数据读取频率也越高,即该多个第四节点的数据读取性能也越好。又由于ES集群中每个第四节点所能承载的副本的数量与该第四节点的节点规格正相关,因此在本申请实施例中,可以基于ES集群中多个第四节点的节点规格,确定该目标频率范围。
其中,该多个第四节点与上文所述的多个第一节点可以存在交集,或者,该多个第四节点可以独立于该多个第一节点。例如,参考图2,假设ES集群采用读写分离的方式部署,则该多个第一节点可以是指写集群中的节点,该多个第四节点可以是指读集群中的节点。
可选地,资源调度装置可以获取预设的每个处理器核的数据读取频率阈值r0,即单核数据读取频率。之后,可以基于该数据读取频率阈值r0与多个第四节点所包括的处理器核的总数m4的乘积,确定目标频率范围。例如,该目标频率范围可以为(r0×m4)±Δr。其中,Δr为预设的读取速率波动值,其可以为大于或等于0的数。
示例的,假设每个处理器核的数据读取频率阈值r0为5QPS,ES集群中包括10个4U16G的第四节点,则该10个第四节点所包括的处理器核的总数m4为40。相应的,资源调度装置可以确定目标频率范围为(200±Δr)QPS。若该预设的读取速率波动值Δr为0,则该目标频率范围可以等于200QPS。
当目标索引的数据读取频率处于目标频率范围之外时,资源调度装置可以确定该多个第四节点的数据读取性能与目标索引的数据读取频率并不匹配。其中,若目标索引的数据读取频率大于目标频率范围的上限,则资源调度装置可以确定该多个第四节点的数据读取性能无法支持该数据读取频率。若目标索引的数据读取频率小于目标频率范围的下限,则资源调度装置可以确定该多个第四节点的数据读取性能未被充分利用,即ES集群的资源利用率较低。
基于此,资源调度装置可以调整目标索引所包括的副本的数量,以使得目标索引所包括的副本的数量能够与该数据读取频率相匹配。由此,可以在确保数据读取性能的前提下,有效提高ES集群的资源利用率。
在本申请实施例中,若目标索引的数据读取频率大于该目标频率范围的上限,则资源调度装置可以在ES集群中新增至少一个第五节点,并可以在每个第五节点中新增目标索引的至少一个副本。其中,每个第五节点中新增的副本的数量可以与该第五节点的节点规格正相关。也即是,第五节点的节点规格越高,则在该第五节点中新增的副本的数量可以越多。
作为第一种可能的示例,该至少一个第五节点的节点规格均为预设规格。相应的,该至少一个第五节点的数量可以是基于数据读取频率与该目标频率范围的上限的差值确定的,且该至少一个第五节点的数量与该差值正相关。
在该第一种示例中,假设预设规格中的处理器核的数量为m0,则该待新增的至少一个第五节点的数量n3可以满足:
n3≥(r1-r2)/(r0×m0) 公式(7);
其中,r1为目标索引的数据读取频率,r2为该目标频率范围的上限,r0为每个处理器核的数据读取频率阈值。上述公式(7)还可以变形为:(n3×m0)≥(r1-r2)/r0,其中(n3×m0)即为该新增的至少一个第五节点所包括的处理器核的总数。
假设每个处理器核的数据读取频率阈值r0为5QPS,该目标频率范围的上限r2为200QPS,且资源池中可用节点的节点规格均为4U16G,即m0=4。参考图17,若AASS组件通过AGW检测到目标索引的数据读取频率r1为210QPS,则AASS组件根据上述公式(7)可以确定需新增的一个节点规格为4U16G的第五节点。相应的,如图17所示,AASS组件可以在ES集群中新增节点3,并在节点3中新增一个副本,该一个副本由一个搜索进程托管,该搜索进程中集成有服务SDK。
作为第二种可能的示例,资源池中的可用节点具有互不相同的多种备选的节点规格。资源调度装置可以基于数据读取频率与该目标频率范围的上限的差值,以及该互不相同的多种备选的节点规格,确定待新增的至少一个第五节点的数量,以及每个第五节点的节点规格。其中,每个第五节点的节点规格是从多种备选节点的规格中选取的,且不同第五节点的节点规格可以相同,也可以不同。
在该第二种示例中,该至少一个第五节点所包括的处理器核的总数m5可以满足:
m5≥(r1-r2)/r0 公式(8)。
可选地,资源调度装置可以基于每种备选的节点规格的成本,采用成本优先的策略确定至少一个第五节点的数量,以及每个第五节点的节点规格。由此,可以在确保有效改善ES集群的数据读取性能的前提下,降低新增节点的成本。
在本申请实施例中,若目标索引的数据读取频率小于该目标频率范围的下限,则资源调度装置可以从多个第四节点中确定出至少一个第五目标节点,并可以删除每个第五目标节点中分布的副本。之后,资源调度装置即可删除该至少一个第五目标节点。
其中,该至少一个第五目标节点可以满足下述条件中的至少一种:节点中分布的副本的数量小于第六阈值;节点的数据读取频率小于第七阈值。也即是,资源调度装置可以删除分片数量较少的第四节点,和/或,删除接收到的数据读取请求的数量较少的第四节点。该第六阈值和第七阈值均可以是资源调度装置中预先配置的固定值。或者,该第六阈值可以是基于各个第四节点中的副本数量确定的,例如可以是各个第四节点中的副本数量的均值或下四分位数。该第七阈值可以是基于各个第四节点的数据读取频率确定的,例如可以是各个第四节点中的数据读取频率的均值或下四分位数。
图18是本申请实施例提供的一种目标索引的数据读取频率的示意图,且图18以目标索引用于存储媒体日志数据为例进行示意。图18中的横轴为时间,单位为小时,纵轴为数据读取频率,单位为次/分钟。参考图18可以看出,该目标索引的数据读取频率整体较低,峰值约为7次/分钟。若ES集群中一个第四节点所支持的数据读取频率为20QPS,则可以确保较好的数据读取性能。
图19是本申请实施例提供的一种目标索引的数据写入频率的示意图,且图19以目标索引用于存储媒体日志数据为例进行示意。图19中的横轴为时间,单位为小时,纵轴为数据写入频率,单位为次/分钟。参考图19可以看出,目标索引的数据写入频率的峰值范围大约为0.56万(W)次/分钟至13.7W次/分钟。由于目标索引的数据写入频率较高,因此该目标索引的数据写入速率也较高。且从图19还可以看出,该目标索引的数据写入速率随时间的波动也较大。由于本申请实施例提供的方案能够根据目标索引的数据写入速率动态调节目标索引所占用的资源量,因此能够实现数据写入性能的动态弹性,从而在确保数据写入性能的前提下,有效提高ES集群的资源利用率。
可以理解的是,本申请实施例提供的ES集群的资源调度方法的步骤先后顺序可以进行适当调整,步骤也可以根据情况进行相应增减。例如,上述步骤103至步骤105可以根据情况删除;或者,上述步骤106和步骤107可以根据情况删除;又或者,上述步骤106和步骤107可以在步骤105之前执行;再或者,上述步骤103至步骤105可以在步骤102之前执行。
综上所述,本申请实施例提供了一种ES集群的资源调度方法。该方法能够统计目标索引的数据写入速率,并能够在该数据写入速率处于目标速率范围之外时,动态调整该目标索引的多个分片所占用的节点的资源量。由于目标索引的数据存储容量,以及所支持的最大数据写入速率均与该多个分片所占用的资源量相关,因此本申请实施例提供的方法能够在不改变目标索引所包括的分片数量的前提下,实现对目标索引的数据存储容量和最大数据写入速率的动态调节。由此,不仅有效提高了数据写入的灵活性,且有效提高了集群资源的利用率。
此外,本申请实施例提供的方法还可以基于目标索引的数据读取频率,灵活调节目标索引所包括的副本的数量,由此实现了ES集群的读弹性。又由于在ES集群中新增节点时,可以灵活选择新增的节点的节点规格以及节点所采用的资源的类型,因此有效提高了新增节点时的灵活性,并可以降低了新增节点的成本。例如,经测试,在目标索引存储日志数据的场景中,通过实现写集群的弹性,可以将ES集群的成本降低50%。若资源调度装置还能够基于成本优先的原则,灵活选择节点的节点规格以及节点所采用的资源的类型,则可以将ES集群的成本降低70%。
本申请实施例提供了一种ES集群的资源调度装置,该资源调度装置可以用于实现上述方法实施例提供的ES集群的资源调度方法。该ES集群包括用于承载目标索引的多个第一节点,该目标索引包括多个分片。该资源调度装置可以部署于云平台中,例如该资源调度装置可以是诸如图2所示的应用托管组件。如图20所示,该资源调度装置包括:
统计模块201,用于统计目标索引的数据写入速率。该统计模块201的功能实现可以参考上述步骤101的相关描述。
调整模块202,用于基于该目标索引的数据写入速率处于目标速率范围之外,调整该多个分片所占用的节点的资源量。该调整模块202的功能实现可以参考上述步骤102的相关描述。
可选地,该调整模块202可以用于:基于该目标索引的数据写入速率大于该目标速率范围的上限,在该ES集群中新增至少一个第二节点;将该多个分片中的至少一个分片迁移至该至少一个第二节点。该调整模块202的功能实现还可以参考上述步骤102a1至步骤102a2的相关描述。
作为一种可选的实现方式,该调整模块202还可以用于:在该ES集群中新增至少一个第二节点之前,基于该目标索引的数据写入速率与该目标速率范围的上限的差值,确定待新增的该至少一个第二节点的数量。其中,该数量与该差值正相关,且该至少一个第二节点的节点规格均为预设规格。
作为另一种可选的实现方式,该调整模块202还可以用于:在该ES集群中新增至少一个第二节点之前,基于该目标索引的数据写入速率与该目标速率范围的上限的差值,以及互不相同的多种备选的节点规格,确定待新增的该至少一个第二节点的数量,以及每个第二节点的节点规格。其中,每个第二节点的节点规格是从该多种备选节点的规格中选取的。
可选地该至少一个第二节点包括的处理器核的总数m1满足:m1≥(s1-s2)/s0。其中,s1为目标索引的数据写入速率,s2为目标速率范围的上限,s0为每个处理器核的数据写入速率阈值。
可选地,该至少一个第二节点所采用的资源为竞价资源。
可选地,该至少一个分片满足下述条件中的至少一种:分片中已写入的数据量小于第一阈值;分片所在的第一节点中分布的分片的总数大于第二阈值。
可选地,该调整模块202可以用于:基于该目标索引的数据写入速率小于该目标速率范围的下限,从该多个第一节点中确定待删除的至少一个第一目标节点;将该至少一个第一目标节点中分布的分片均迁移至除该至少一个第一目标节点之外的其他第一节点;删除该至少一个第一目标节点。该调整模块202的功能实现还可以参考上述步骤102b1至步骤102b3的相关描述。
可选地,该至少一个第一目标节点满足:节点中分布的分片的总数小于第三阈值。
可选地,该调整模块202可以用于:基于该目标索引的数据写入速率处于目标速率范围之外,调整该多个第一节点中至少一个第一节点的节点规格。
可选地,该调整模块202可以用于:基于该目标索引的数据写入速率大于该目标速率范围的上限,增大该多个第一节点中至少一个第二目标节点的节点规格。或者,基于该目标索引的数据写入速率小于该目标速率范围的下限,减小该多个第一节点中至少一个第三目标节点的节点规格。
可选地,该多个第一节点中第四目标节点所采用的资源为竞价资源;该调整模块202还可以用于:基于该第四目标节点所采用的竞价资源的剩余可用时长小于时长阈值,在该ES集群中新增至少一个第三节点;将该第四目标节点中分布的分片均迁移至该至少一个第三节点;删除该第四目标节点。该调整模块202的功能实现还可以参考上述步骤103至步骤105的相关描述。
可选地,该至少一个第三节点所采用的资源包括按需资源和/或竞价资源。
可选地,该ES集群还可以包括多个第四节点,该多个第四节点用于承载目标索引的多个副本。该统计模块201,还可以用于统计该目标索引的数据读取频率。该统计模块201的功能实现还可以参考上述步骤106的相关描述。
该调整模块202,还可以用于基于该目标索引的数据读取频率位于目标频率范围之外,调整该目标索引所包括的副本的数量。该调整模块202的功能实现还可以参考上述步骤107的相关描述。
可选地,该调整模块202可以用于:基于该目标索引的数据读取频率大于该目标频率范围的上限,在该ES集群中新增至少一个第五节点;在每个第五节点中新增该目标索引的至少一个副本。
可选地,该调整模块202可以用于:基于该目标索引的数据读取频率小于该目标频率范围的下限,删除该多个第四节点中至少一个第五目标节点中分布的副本,并删除该至少一个第五目标节点。
可以理解的是,若该资源调度装置为图2所示的应用托管组件,则该统计模块201的功能可以由服务SDK、AGW和AASS组件实现,该调整模块202的功能可以由AASS组件、客户端代理组件和全域调度组件实现。
综上所述,本申请实施例提供了一种ES集群的资源调度装置。该装置能够统计目标索引的数据写入速率,并能够在该数据写入速率处于目标速率范围之外时,动态调整该目标索引的多个分片所占用的节点的资源量。由于目标索引的数据存储容量,以及所支持的最大数据写入速率均与该多个分片所占用的资源量相关,因此本申请实施例提供的装置能够在不改变目标索引所包括的分片数量的前提下,实现对目标索引的数据存储容量和最大数据写入速率的动态调节。由此,不仅有效提高了数据写入的灵活性,且有效提高了集群资源的利用率。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的资源调度装置以及各模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
可以理解的是,资源调度装置中的各个模块(例如统计模块201和调整模块202)均可以通过软件实现,或者可以通过硬件实现。示例性的,下文以统计模块201为例,介绍统计模块201的实现方式。类似的,调整模块202的实现方式可以参考统计模块201的实现方式。
模块作为软件功能单元的一种举例,统计模块201可以包括运行在计算实例上的代码。其中,计算实例可以包括物理主机(计算设备)、虚拟机、容器中的至少一种。进一步地,上述计算实例可以是一台或者多台。例如,统计模块201可以包括运行在多个主机/虚拟机/容器上的代码。需要说明的是,用于运行该代码的多个主机/虚拟机/容器可以分布在相同的区域(region)中,也可以分布在不同的region中。进一步地,用于运行该代码的多个主机/虚拟机/容器可以分布在相同的可用区(availability zone,AZ)中,也可以分布在不同的AZ中,每个AZ包括一个数据中心或多个地理位置相近的数据中心。其中,通常一个region可以包括多个AZ。
同样,用于运行该代码的多个主机/虚拟机/容器可以分布在同一个虚拟私有云(virtual private cloud,VPC)中,也可以分布在多个VPC中。其中,通常一个VPC设置在一个region内,同一region内两个VPC之间,以及不同region的VPC之间跨区通信需在每个VPC内设置通信网关,经通信网关实现VPC之间的互连。
模块作为硬件功能单元的一种举例,统计模块201可以包括至少一个计算设备,如服务器等。或者,统计模块201也可以是利用专用集成电路(application-specificintegrated circuit,ASIC)实现、或可编程逻辑器件(programmable logic device,PLD)实现的设备等。其中,上述PLD可以是复杂程序逻辑器件(complex programmable logicaldevice,CPLD)、现场可编程门阵列(field-programmable gate array,FPGA)、通用阵列逻辑(generic array logic,GAL)或其任意组合实现。
统计模块201包括的多个计算设备可以分布在相同的region中,也可以分布在不同的region中。统计模块201包括的多个计算设备可以分布在相同的AZ中,也可以分布在不同的AZ中。同样,统计模块201包括的多个计算设备可以分布在同一个VPC中,也可以分布在多个VPC中。其中,所述多个计算设备可以是服务器、ASIC、PLD、CPLD、FPGA和GAL等计算设备的任意组合。
需要说明的是,在其他实施例中,统计模块201可以用于执行上述资源调度方法中的任意步骤,调整模块202也可以用于执行上述资源调度方法中的任意步骤。统计模块201和调整模块202负责实现的步骤可根据需要指定,通过统计模块201和调整模块202分别实现资源调度方法中不同的步骤来实现资源调度装置的全部功能。
图21是本申请实施例提供的一种计算设备的结构示意图。参考图21,该计算设备可以包括:总线2102、处理器2104、存储器2106和通信接口2108。处理器2104、存储器2106和通信接口2108之间通过总线2102通信。计算设备可以是服务器或终端设备。应理解,本申请实施例不限定计算设备中的处理器、存储器的个数。
总线2102可以是外设部件互连标准(peripheral component interconnect,PCI)总线或扩展工业标准结构(extended industry standard architecture,EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图21中仅用一条线表示,但并不表示仅有一根总线或一种类型的总线。总线2104可包括在计算设备各个部件(例如,存储器2106、处理器2104、通信接口2108)之间传送信息的通路。
处理器2104可以包括中央处理器(central processing unit,CPU)、图形处理器(graphics processing unit,GPU)、微处理器(micro processor,MP)或者数字信号处理器(digital signal processor,DSP)等处理器中的任意一种或多种。
存储器2106可以包括易失性存储器(volatile memory),例如随机存取存储器(random access memory,RAM)。处理器2104还可以包括非易失性存储器(non-volatilememory),例如只读存储器(read-only memory,ROM),快闪存储器,机械硬盘(hard diskdrive,HDD)或固态硬盘(solid state drive,SSD)。
存储器2106中存储有可执行的程序代码,处理器2104执行该可执行的程序代码以分别实现前述统计模块和调整模块的功能,从而实现上述方法实施例提供的资源调度方法。也即,存储器2106上存有用于执行资源调度方法的指令。
通信接口2103使用例如但不限于网络接口卡、收发器一类的收发模块,来实现计算设备与其他设备或通信网络之间的通信。
本申请实施例还提供了一种计算设备集群。该计算设备集群包括至少一台计算设备。该计算设备可以是服务器,例如是中心服务器、边缘服务器,或者是本地数据中心中的本地服务器。在一些实施例中,计算设备也可以是台式机、笔记本电脑或者智能手机等终端设备。
如图22所示,该计算设备集群包括至少一个计算设备。该计算设备集群中的一个或多个计算设备中的存储器2106中可以存有相同的用于执行上述资源调度方法的指令。
在一些可能的实现方式中,该计算设备集群中的一个或多个计算设备的存储器2106中也可以分别存有用于执行上述资源调度方法的部分指令。换言之,一个或多个计算设备的组合可以共同执行用于执行上述资源调度方法的指令。
需要说明的是,计算设备集群中的不同的计算设备中的存储器2106可以存储不同的指令,分别用于执行资源调度装置的部分功能。也即,不同的计算设备中的存储器2106存储的指令可以实现统计模块和调整模块中的一个或多个模块的功能。
在一些可能的实现方式中,计算设备集群中的一个或多个计算设备可以通过网络连接。其中,所述网络可以是广域网或局域网等等。
本申请实施例还提供了一种计算机可读存储介质。所述计算机可读存储介质可以是计算设备能够存储的任何可用介质或者是包含一个或多个可用介质的数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘)等。该计算机可读存储介质包括指令,所述指令指示计算设备执行上述方法实施例提供的ES集群的资源调度方法。
本申请实施例还提供了一种包含指令的计算机程序产品。所述计算机程序产品可以是包含指令的,能够运行在计算设备上或被储存在任何可用介质中的软件或程序产品。当所述计算机程序产品在至少一个计算设备上运行时,使得至少一个计算设备执行上述方法实施例提供的ES集群的资源调度方法。
本申请实施例还提供了一种弹性搜索系统,该弹性搜索系统能够提供云搜索服务(cloud search service,CSS)。该弹性搜索系统可以包括诸如图1所示的ES集群,以及用于对该ES集群的资源进行调度的资源调度装置。
其中,该ES集群可以包括多个节点。该多个节点可以采用读写分离的方式部署,且可以采用存算分离的方式部署。
该资源调度装置可以用于实现上述方法实施例提供的ES集群的资源调度方法。例如,该资源调度装置可以是图2所示的应用托管组件,且该资源调度装置的结构可以参考图20至图22中的任一附图。
在本申请实施例中,术语“第一”、“第二”和“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。本申请中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的保护范围。
Claims (38)
1.一种弹性搜索集群的资源调度方法,其特征在于,所述弹性搜索集群包括多个第一节点,所述多个第一节点用于承载目标索引的多个分片;所述方法包括:
统计所述目标索引的数据写入速率;
基于所述目标索引的数据写入速率处于目标速率范围之外,调整所述多个分片所占用的节点的资源量。
2.根据权利要求1所述的方法,其特征在于,所述基于所述目标索引的数据写入速率处于目标速率范围之外,调整所述多个分片所占用的节点的资源量,包括:
基于所述目标索引的数据写入速率大于所述目标速率范围的上限,在所述弹性搜索集群中新增至少一个第二节点;
将所述多个分片中的至少一个分片迁移至所述至少一个第二节点。
3.根据权利要求2所述的方法,其特征在于,在所述弹性搜索集群中新增至少一个第二节点之前,所述方法还包括:
基于所述目标索引的数据写入速率与所述目标速率范围的上限的差值,确定待新增的所述至少一个第二节点的数量;
其中,所述数量与所述差值正相关,且所述至少一个第二节点的节点规格均为预设规格。
4.根据权利要求2所述的方法,其特征在于,在所述弹性搜索集群中新增至少一个第二节点之前,所述方法还包括:
基于所述目标索引的数据写入速率与所述目标速率范围的上限的差值,以及互不相同的多种备选的节点规格,确定待新增的所述至少一个第二节点的数量,以及每个第二节点的节点规格;
其中,每个第二节点的节点规格是从所述多种备选节点的规格中选取的。
5.根据权利要求2至4任一所述的方法,其特征在于,所述至少一个第二节点包括的处理器核的总数m1满足:
m1≥(s1-s2)/s0;
其中,s1为所述目标索引的数据写入速率,s2为所述目标速率范围的上限,s0为每个处理器核的数据写入速率阈值。
6.根据权利要求2至5任一所述的方法,其特征在于,所述至少一个第二节点所采用的资源为竞价资源。
7.根据权利要求2至6任一所述的方法,其特征在于,所述至少一个分片满足下述条件中的至少一种:
分片中已写入的数据量小于第一阈值;
分片所在的第一节点中分布的分片的总数大于第二阈值。
8.根据权利要求1所述的方法,其特征在于,所述基于所述目标索引的数据写入速率处于目标速率范围之外,调整所述多个分片所占用的节点的资源量,包括:
基于所述目标索引的数据写入速率小于所述目标速率范围的下限,从所述多个第一节点中确定待删除的至少一个第一目标节点;
将所述至少一个第一目标节点中分布的分片均迁移至除所述至少一个第一目标节点之外的其他第一节点;
删除所述至少一个第一目标节点。
9.根据权利要求8所述的方法,其特征在于,每个第一目标节点中分布的分片的总数小于第三阈值。
10.根据权利要求1至9任一所述的方法,其特征在于,所述基于所述目标索引的数据写入速率处于目标速率范围之外,调整所述多个分片所占用的节点的资源量,包括:
基于所述目标索引的数据写入速率处于目标速率范围之外,调整所述多个第一节点中至少一个第一节点的节点规格。
11.根据权利要求10所述的方法,其特征在于,所述基于所述目标索引的数据写入速率处于目标速率范围之外,调整所述多个第一节点中至少一个第一节点的节点规格,包括:
基于所述目标索引的数据写入速率大于所述目标速率范围的上限,增大所述多个第一节点中至少一个第二目标节点的节点规格。
12.根据权利要求10所述的方法,其特征在于,所述基于所述目标索引的数据写入速率处于目标速率范围之外,调整所述多个第一节点中至少一个第二目标节点的节点规格,包括:
基于所述目标索引的数据写入速率小于所述目标速率范围的下限,减小所述多个第一节点中至少一个第三目标节点的节点规格。
13.根据权利要求1至12任一所述的方法,其特征在于,所述多个第一节点中第四目标节点所采用的资源为竞价资源;所述方法还包括:
基于所述第四目标节点所采用的竞价资源的剩余可用时长小于时长阈值,在所述弹性搜索集群中新增至少一个第三节点;
将所述第四目标节点中分布的分片均迁移至所述至少一个第三节点;
删除所述第四目标节点。
14.根据权利要求13所述的方法,其特征在于,所述至少一个第三节点所采用的资源包括按需资源和/或竞价资源。
15.根据权利要求1至14任一所述的方法,其特征在于,所述弹性搜索集群还包括多个第四节点,所述多个第四节点用于承载所述目标索引的多个副本,所述方法还包括:
统计所述目标索引的数据读取频率;
基于所述目标索引的数据读取频率位于目标频率范围之外,调整所述目标索引所包括的副本的数量。
16.根据权利要求15所述的方法,其特征在于,所述基于所述目标索引的数据读取频率位于目标频率范围之外,调整所述目标索引所包括的副本的数量,包括:
基于所述目标索引的数据读取频率大于所述目标频率范围的上限,在所述弹性搜索集群中新增至少一个第五节点;
在每个第五节点中新增所述目标索引的至少一个副本。
17.根据权利要求15所述的方法,其特征在于,所述基于所述目标索引的数据读取频率位于目标频率范围之外,调整所述目标索引所包括的副本的数量,包括:
基于所述目标索引的数据读取频率小于所述目标频率范围的下限,删除所述多个第四节点中至少一个第五目标节点中分布的副本;
删除所述至少一个第五目标节点。
18.一种弹性搜索集群的资源调度装置,其特征在于,所述弹性搜索集群包括用于承载目标索引的多个第一节点,所述目标索引包括多个分片;所述资源调度装置包括:
统计模块,用于统计所述目标索引的数据写入速率;
调整模块,用于基于所述目标索引的数据写入速率处于目标速率范围之外,调整所述多个分片所占用的节点的资源量。
19.根据权利要求18所述的资源调度装置,其特征在于,所述调整模块,用于:
基于所述目标索引的数据写入速率大于所述目标速率范围的上限,在所述弹性搜索集群中新增至少一个第二节点;
将所述多个分片中的至少一个分片迁移至所述至少一个第二节点。
20.根据权利要求19所述的资源调度装置,其特征在于,所述调整模块,还用于:
基于所述目标索引的数据写入速率与所述目标速率范围的上限的差值,确定待新增的所述至少一个第二节点的数量;
其中,所述数量与所述差值正相关,且所述至少一个第二节点的节点规格均为预设规格。
21.根据权利要求19所述的资源调度装置,其特征在于,所述调整模块,还用于:
基于所述目标索引的数据写入速率与所述目标速率范围的上限的差值,以及互不相同的多种备选的节点规格,确定待新增的所述至少一个第二节点的数量,以及每个第二节点的节点规格;
其中,每个第二节点的节点规格是从所述多种备选节点的规格中选取的。
22.根据权利要求19至21任一所述的资源调度装置,其特征在于,所述至少一个第二节点包括的处理器核的总数m1满足:
m1≥(s1-s2)/s0;
其中,s1为所述目标索引的数据写入速率,s2为所述目标速率范围的上限,s0为每个处理器核的数据写入速率阈值。
23.根据权利要求19至22任一所述的资源调度装置,其特征在于,所述至少一个第二节点所采用的资源为竞价资源。
24.根据权利要求19至23任一所述的资源调度装置,其特征在于,所述至少一个分片满足下述条件中的至少一种:
分片中已写入的数据量小于第一阈值;
分片所在的第一节点中分布的分片的总数大于第二阈值。
25.根据权利要求18所述的资源调度装置,其特征在于,所述调整模块,用于:
基于所述目标索引的数据写入速率小于所述目标速率范围的下限,从所述多个第一节点中确定待删除的至少一个第一目标节点;
将所述至少一个第一目标节点中分布的分片均迁移至除所述至少一个第一目标节点之外的其他第一节点;
删除所述至少一个第一目标节点。
26.根据权利要求25所述的资源调度装置,其特征在于,每个第一目标节点中分布的分片的总数小于第三阈值。
27.根据权利要求18至26任一所述的资源调度装置,其特征在于,所述调整模块,用于:
基于所述目标索引的数据写入速率处于目标速率范围之外,调整所述多个第一节点中至少一个第一节点的节点规格。
28.根据权利要求27所述的资源调度装置,其特征在于,所述调整模块,用于:
基于所述目标索引的数据写入速率大于所述目标速率范围的上限,增大所述多个第一节点中至少一个第二目标节点的节点规格。
29.根据权利要求27所述的资源调度装置,其特征在于,所述调整模块,用于:
基于所述目标索引的数据写入速率小于所述目标速率范围的下限,减小所述多个第一节点中至少一个第三目标节点的节点规格。
30.根据权利要求18至29任一所述的资源调度装置,其特征在于,所述多个第一节点中第四目标节点所采用的资源为竞价资源;所述调整模块,还用于:
基于所述第四目标节点所采用的竞价资源的剩余可用时长小于时长阈值,在所述弹性搜索集群中新增至少一个第三节点;
将所述第四目标节点中分布的分片均迁移至所述至少一个第三节点;
删除所述第四目标节点。
31.根据权利要求30所述的资源调度装置,其特征在于,所述至少一个第三节点所采用的资源包括按需资源和/或竞价资源。
32.根据权利要求18至31任一所述的资源调度装置,其特征在于,所述弹性搜索集群还包括多个第四节点,所述多个第四节点用于承载所述目标索引的多个副本,所述装置还包括:
所述统计模块,还用于统计所述目标索引的数据读取频率;
所述调整模块,还用于基于所述目标索引的数据读取频率位于目标频率范围之外,调整所述目标索引所包括的副本的数量。
33.根据权利要求32所述的资源调度装置,其特征在于,所述调整模块,用于:
基于所述目标索引的数据读取频率大于所述目标频率范围的上限,在所述弹性搜索集群中新增至少一个第五节点;
在每个第五节点中新增所述目标索引的至少一个副本。
34.根据权利要求32所述的资源调度装置,其特征在于,所述调整模块,用于:
基于所述目标索引的数据读取频率小于所述目标频率范围的下限,删除所述多个第四节点中至少一个第五目标节点中分布的副本;
删除所述至少一个第五目标节点。
35.一种计算设备集群,其特征在于,包括至少一个计算设备,每个计算设备包括处理器和存储器;
所述至少一个计算设备的处理器用于执行所述至少一个计算设备的存储器中存储的指令,以使得所述计算设备集群执行如权利要求1至17任一所述的方法。
36.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序指令,当所述计算机程序指令由计算设备集群执行时,所述计算设备集群执行如权利要求1至17任一所述的方法。
37.一种包含指令的计算机程序产品,其特征在于,当所述指令被计算设备集群运行时,使得所述计算设备集群执行如权利要求1至17任一所述的方法。
38.一种弹性搜索系统,其特征在于,所述系统包括:弹性搜索集群,以及所述弹性搜索集群的资源调度装置,所述资源调度装置用于实现如权利要求1至17任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2022/136923 WO2023216571A1 (zh) | 2022-05-11 | 2022-12-06 | 弹性搜索集群的资源调度方法、装置及系统 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2022105107512 | 2022-05-11 | ||
CN202210510751 | 2022-05-11 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117093357A true CN117093357A (zh) | 2023-11-21 |
Family
ID=88777670
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210764591.4A Pending CN117093357A (zh) | 2022-05-11 | 2022-06-29 | 弹性搜索集群的资源调度方法、装置及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117093357A (zh) |
-
2022
- 2022-06-29 CN CN202210764591.4A patent/CN117093357A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11237871B1 (en) | Methods, systems, and devices for adaptive data resource assignment and placement in distributed data storage systems | |
US9442763B2 (en) | Resource allocation method and resource management platform | |
WO2018028229A1 (zh) | 数据的分片存储方法、装置及系统 | |
WO2023216571A1 (zh) | 弹性搜索集群的资源调度方法、装置及系统 | |
US8751657B2 (en) | Multi-client storage system and storage system management method | |
US11157457B2 (en) | File management in thin provisioning storage environments | |
US20190245924A1 (en) | Three-stage cost-efficient disaggregation for high-performance computation, high-capacity storage with online expansion flexibility | |
US20190163371A1 (en) | Next generation storage controller in hybrid environments | |
US20060190760A1 (en) | System and method for failover | |
CN110096220B (zh) | 一种分布式存储系统、数据处理方法和存储节点 | |
US10616134B1 (en) | Prioritizing resource hosts for resource placement | |
CN110825704B (zh) | 一种读数据方法、写数据方法及服务器 | |
CN109144972B (zh) | 一种数据迁移的方法以及数据节点 | |
US20120246206A1 (en) | File server system and storage control method | |
JP7467593B2 (ja) | リソース割振り方法、記憶デバイス、および記憶システム | |
JP2005031987A (ja) | コンテンツ配信システムにおけるコンテンツ配置管理システム及びコンテンツ配置管理プログラム | |
CN113553179A (zh) | 分布式键值存储负载均衡方法及系统 | |
CN115834587A (zh) | 一种选择目标存储服务器的方法、装置及电子设备 | |
Wang et al. | Provision of storage QoS in distributed file systems for clouds | |
WO2020235055A1 (ja) | 仮想マシン監視装置、仮想マシン監視方法およびプログラム | |
JP2011209811A (ja) | 仮想マシンシステムおよび仮想マシン配置方法 | |
CN116954863A (zh) | 数据库调度方法、装置、设备及存储介质 | |
WO2022142515A1 (zh) | 管理实例的方法、装置以及云应用引擎 | |
CN117093357A (zh) | 弹性搜索集群的资源调度方法、装置及系统 | |
WO2023070935A1 (zh) | 一种数据存储方法、装置及相关设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |