云计算环境下虚拟资源弹性伸展的方法,系统和设备与流程

文档序号:12600715阅读:300来源:国知局
云计算环境下虚拟资源弹性伸展的方法,系统和设备与流程
本申请涉及云计算
技术领域
,尤其涉及云计算环境下虚拟资源弹性伸展技术。
背景技术
:云计算领域中,资源可以按照业务的需求进行配置,比如在业务量激增的时候,可以增加资源(通常为虚拟机)服务业务,保证业务的正常处理,在业务量降低的时候,可以减少资源服务业务,这样可以提高资源的有效利用。进一步,可以动态按业务量分系统容量,以降低维护业务运行所需要的硬件成本。该技术为弹性伸缩技术,弹性伸缩技术可以用于提高容错性和可用性,在服务状态不佳时通过弹性伸缩技术增加出新的实例代替状态不佳的节点。目前,弹性伸展的基本流程包括如下:当系统实际负荷到达某个阈值(如:节点平均整机CPU>60%),需要伸展节点以支撑接入的业务。则根据需要分配新节点系统容量资源,配置新节点上的软件,在新节点上启动服务,在部分业务数据复制到新节点,新节点接入业务,这样新节点就可以提供对外服务了。然而上述流程中,根据需要分配系统容量资源时,伸展一般需要较长时间:需要搭建新的虚拟机环境和配置应用。由于搭建虚拟机环境和应用配置都需要消耗较多时间,伸展的新增节点不能及时快速提供对外服务。技术实现要素:本申请实施例提供一种弹性伸展的方法,系统和设备,用以快速伸展新增节点,使得新增节点及时对外提供服务。一方面,本发明实施例提供了一种弹性伸展方法,方法包括:管理设备启动第一执行设备,为所述第一执行设备分配互联网协议IP地址;云管理设备将所述第一执行设备的IP地址发送给负载均衡器,以及向所述第一执行设备发送伸展通知;第一执行设备接收负载均衡器根据所述第一执行设备的IP地址发送的业务请求,解析所述业务请求,并执行所述业务请求对应的业务流程,也就是说,在虚拟资源伸展过程中,执行设备已经开始处理负载均衡器发送的业务请求;第一执行设备接收所述伸展通知,获得伸展后的数据路由表;第一执行设备向所述云管理设备发送携带所述伸展后的数据路由表的记录搬迁请求;云管理设备接收了所述记录搬迁请求,将所述记录搬迁请求发送给其它执行设备;接着云管理设备接收到所述第一执行设备和所述其它执行设备的记录搬迁成功响应,向所述第一执行设备和和所述其它执行设备发送路由表更新通知;第一执行设备和所述其它执行设备分别接收所述云管理设备发送的路由表更新通知,并分别将激活的数据路由表由伸展前的数据路由表变更为所述伸展后的数据路由表。由于云管理设备在为第一执行设备分配IP地址后,在各个执行设备将激活的数据路由表更新为最新的数据路由表之前,云管理设备已经通知负载均衡器该新增的执行设备的IP地址,负载均衡器就可以分配业务请求给该新增的执行设备,这样该新增的执行设备在没有完全伸展成功前,就可以处理业务请求了,可以实现秒级伸缩。在一个可能的设计中,还包括:当所述业务流程需要调用某一类型数据模块处理所述业务流程中的部分逻辑时,根据所述伸展前的数据路由表,分配所述某一类型的数据模块处理所述业务流程中的部分逻辑。因此在数据路由表没有更新前,执行设备接收到业务请求时需要调用数据模块处理业务流程中的部分逻辑,可以按照伸展前的数据路由表分配数据模块处理所述业务流程中的部分逻辑,实现了在伸展过程中仍然可以处理业务请求,因此实现了快速弹性伸展,并进一步节约了执行设备的弹性伸展时间。能够使得执行设备快速地处理外部网络的业务请求。在一个可能的设计中,在将激活的数据路由表由伸展前的数据路由表变更为伸展后的数据路由表之后,还包括:接收所述负载均衡器分配的业务请求,解析所述业务请求,执行所述业务请求对应的业务流程;当所述业务流程需要调用某一类型数据模块处理所述业务流程中的部分逻辑时,根据所述伸展后的数据路由表,分配所述某一类型的数据模块处理所述业务流程中的部分逻辑。在数据路由表更新后,新增的执行设备就可以按照正常的执行设备进行处理业务了。在一个可能的设计中,在所述接收所述云管理设备发送的路由表更新通知之前,还包括:接收其它的执行设备发送搬迁索引号对应的记录,其中,所述搬迁索引号在所述搬迁前的数据路由表所对应的执行设备标识和在所述搬迁后的数据路由表所对应的执行设备标识是不同的,所述记录包括锁记录,排队记录或资源分配记录。在一个可能的设计中,在所述接收所述云管理设备发送的路由表更新通知之后,还包括:接收所述其它的执行设备发送搬迁索引号对应的增量记录,所述增量记录为所述其它的执行设备在所述接收其它的执行设备发送搬迁索引号对应的记录之后和在所述接收所述云管理设备发送的路由表更新通知之前所产生的记录。在弹性伸展过程中,其它的执行设备不仅可以处理外部网络的业务请求,还能够将搬迁索引号对应的增量记录发送给该新增的执行设备,这样就可以确保了记录的一致性。在一个可能的设计中,在接收所述其它的执行设备发送搬迁索引号对应的增量记录期间,还包括:所述执行设备的数据模块拒绝处理所述业务流程中的部分逻辑。为了防止记录的不一致性,在接收所述其它的执行设备发送搬迁索引号对应的增量记录期间,执行设备是不处理业务流程中的部分逻辑的。另一方面,本申请的实施例提供一种弹性伸展方法,方法包括当预伸展条件满足时,启动执行设备,为执行设备分配网络之间互连协议IP地址;这里的执行设备是新增的执行设备;当正式伸展条件满足时,将执行设备的IP地址发送给负载均衡器,负载均衡器由于获知新增的执行设备的IP地址,就可以根据负载均衡算法为该执行设备分配来自外部网络的业务请求;向所述执行设备发送伸展通知,执行设备接收到伸展通知后,就知道了目前伸展正式开始,因此根据所述伸展通知发起记录搬迁请求。管理设备接收执行设备发送的携带伸展后的数据路由表的记录搬迁请求,将记录搬迁请求发送给除执行设备外的其它的执行设备,这样除执行设备外的其它的执行设备就知道了此时需要进行记录搬迁,将需要搬迁的记录发送给该执行设备;接收到所述除上述新增的执行设备外的所有执行设备的记录搬迁成功响应,向所有执行设备发送路由表更新通知,以便于所有执行设备将激活的数据路由表由伸展前的数据路由表变更为伸展后的数据路由表。由于云管理设备在向新增的执行设备发送伸展通知的同时,也将该执行设备的IP地址发送给负载均衡器,这样该执行设备在还没有伸展成功前,就可以接收并处理负载均衡器分配的业务请求,因此可以大大节约了执行设备的弹性伸展时间,能够使得执行设备快速地处理外部网络的业务请求。在一个可能设计中,所述启动执行设备具体包括:创建虚拟机环境,安装操作系统、启动应用和数据模块。由于在正式伸展之前,云管理设备已经搭建了虚拟机环境,安装操作系统和应用以及数据模块,并启动应用和数据模块,相当于,该执行设备已经处于备用(standby)中,因此在伸展开始时,可以快速实现弹性伸展,因此进一步节约了执行设备的弹性伸展时间。另一方面,本发明实施例提供了一种云管理设备,该云管理设备具有实现上述方法实际中云管理设备行为的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。又一方面,本发明实施例提供了一种弹性伸展系统,该系统包括上述方面所述的云管理设备和执行设备。再一方面,本发明实施例提供了一种计算机存储介质,用于储存为上述云管理设备所用的计算机软件指令,其包含用于执行上述方面所涉及的程序。再一方面,本发明实施例提供了一种计算机存储介质,用于储存为上述执行设备所用的计算机软件指令,其包含用于执行上述方面所涉及的程序。相较于现有技术,本发明提供的方案可以实现执行设备的快速弹性伸展,能够使得执行设备快速地处理外部网络的业务请求。附图说明为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本发明实施例提供的可能的弹性伸展的系统框架系统示意图;图2所示为本发明实施例提供的系统示意图;图3所示为本发明实施例提供的系统示意图;图4所示为本发明实施例提供的计算机设备示意图;图5所示为本发明实施例提供的计算机设备示意图;图6所示为本发明实施例提供的弹性伸展的方法流程示意图;图7所示为本发明实施例提供的云管理设备的结构示意图;图8所示为本发明实施例提供的执行设备的结构示意图。具体实施方式为了使本申请的目的、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。本发明主要原理是:云管理设备在进行伸展新的执行设备(也可以称为节点)时,在执行设备还没有伸展成功前,也就是说,各个执行设备的数据路由表还没有更新时,云管理设备就向负载均衡器发送该新的执行设备的IP地址,从而该新的执行设备就可以接收到负载均衡器分配的业务请求。该执行设备在处理该业务请求时,如果需要数据模块来处理某个过程时,该执行设备还是按照老的数据路由表来分配数据模块。因此实现了执行设备的快速弹性伸展,能够使得执行设备快速地处理外部网络的业务请求的目的。首先,介绍本发明实施例的弹性伸展方法的一些基本概念。弹性伸展可以多种模式,基于运维人员人工决策并通过运维设备触发资源弹性收缩操作的人工手动伸展模式;基于时间周期,定时触发弹性伸展操作的定时伸展模式;基于业务监控性能指标动态决策业务是否并执行弹性伸展的业务动态伸展模式,以及基于时间周期和监控性能指标等多个复合条件触发弹性伸展的混合模式。在弹性伸展中,关键性能指标(KPI)包括资源KPI和业务KPI,其中,资源KPI包括CPU利用率、内存利用率、磁盘剩余多少、网卡相关的KPI指标,资源KPI指标由云系统预先定义的,可以不需要配置。业务KPI包括根据业务功能定义的KPI指标,例如,业务处理平均响应时间。业务KPI指标由运维人员通过云管理设备所定义的。如图1所示,本发明实施例简单的的弹性伸展的系统框架图,包括:云管理设备101,1个以上的节点102,负载均衡器(英文全称softwareloadbalancer,简称:SLB)103以及外部网络104。其中,运维人员可以通过云管理设备开启采集任务、配置伸展策略和手动触发弹性伸展等,从而可以实现运维人员管理和控制伸展流程。云管理设备存储弹性伸展策略,弹性伸展策略包括预伸展条件和正式伸展条件,预伸展指的是在云管理设备管理的各个执行设备的负担已经有点重,比如:超出了预伸展条件,但是还不严重(比如,还没有超出正式伸展条件)的情况下,由云管理设备预先启动新的执行设备;正式伸展指的是在云管理设备管理的各个执行设备的负担已经很严重,比如:超出正式伸展条件的情况下,由将启动的新的执行设备接入到负载均衡器,由负载均衡器可以为它分配业务请求,将弹性伸展分为预伸展和正式伸展目的是为了快速实现执行设备的伸展。云管理设备与多个节点相连接,从各个节点处采集性能指标,然后根据存储的弹性伸展策略决策是否进行弹性伸展,如果确定了需要进行弹性伸展时,执行伸展流程,即启动新的节点。通常情况下,云管理设备在云计算中属于平台(platform,P)层资源设备。在本发明实施例中,云管理设备根据资源伸展策略,判断当前条件是否满足预伸展条件,如果满足的话,则启动新增节点,为新增节点分配互联网协议(IP)地址,这里启动新增节点包括了创建虚拟机环境,安装操作系统、启动应用和数据模块;节点启动完成后,再根据资源伸展策略,判断当前条件是否满足正式伸展条件,如果满足的话,将新增节点的IP地址发送给SLB,这样SLB就可以根据负载均衡算法为该新增节点分配来自外部网络的业务请求了,也就是说,该新增节点可以及时提供对外服务了。云管理设备同时还向该新增节点发送伸展通知,这样新增节点就可以根据伸展通知开始向已有节点发起记录搬迁请求。当云管理设备接收到新增节点发送的携带伸展后的数据路由表的记录搬迁请求,将该记录搬迁请求发送已有节点上进行记录搬迁,这里的伸展后的数据路由表并不是当前激活的数据路由表,各个节点只会根据当前激活的数据路由表来分配数据模块。当节点上记录搬迁成功后,会向云管理设备发送记录搬迁成功响应。当云管理设备接收到所有已有节点的记录搬迁成功响应时,则表明当前数据已经搬迁成功,向包含已有节点和新增节点的所有节点发送路由表更新通知,这样所有节点将激活的数据路由表由伸展前的数据路由表变更为伸展后的数据路由表。数据路由表包含了数据模块类型,索引号和执行设备标识三者之间的对应关系,在节点处理业务请求时,如果需要调用某个类型的数据模块,可以通过数据路由表找到某个节点的数据模块。在节点伸展前和后,数据路由表的内容将发生变化,也就是说,通过数据路由表找到的数据模块也将发生变化,所以在节点扩展后,需要对各个节点存储的数据路由表进行更新,更新的时间就是各个节点记录搬迁完成后。另外,对于某个数据模块而言,每做一次处理时,都会做一次记录,当数据路由表的内容将发生变化后,可能存在某个记录原来存储在1个节点的,后来应该存储在另外一个节点了,此时就需要进行记录搬迁。下面进一步介绍涉及本发明的一些技术内容。节点上运行了虚拟机环境,操作系统、各种应用和数据模块。通常情况下,应用主要用于解析外部网络的业务请求,并执行业务请求对应的业务流程。比如:应用是HTTP服务器软件,每个节点可以启动1个以及1个以上的应用,如,应用一和应用二。通常情况下各个节点包含的应用是相同的,也就是说,每个节点处理的业务请求,因此SLB才可以将外部网络的业务请求任意一个节点上处理。具体的应用可以包括消息处理模块、消息总线和业务逻辑处理模块。消息处理模块可以处理不同消息格式或者协议的业务请求,比如,处理初始协议(SessionInitiationProtocol,SIP)消息、7号信令系统(SignalingSystem7,SS7)信令或者直径(Diameter)协议消息的能力,业务逻辑处理模块可以处理由外部网络发送的业务请求触发的业务逻辑,这里的业务种类有很多,比如:计费业务,呼叫处理业务和短信业务等等各类业务,这里不做特别限定。数据模块包括锁(lock)模块和处理模块,这里的数据模块,在有些技术文档中,也称为数据服务。其中,锁模块提供了对一些业务流程的锁服务,锁的类型有多种,通过对资源进行加锁或者解锁来实现一些业务的逻辑,例如:前传锁,或者通话锁。在后续内容将会进一步介绍锁模块的处理过程。处理模块包括了排队处理和资源分配处理两种功能。排队服务是指在业务繁忙时,根据一定的优先级策略,将新来的业务请求进行排队。一般情况下,在呼叫中心系统的坐席业务场景会用到这种排队服务。资源分配服务可以协调多个业务/呼叫间对于一个公共业务/呼叫资源的分配。在使用公共业务/呼叫资源前先申请资源,在资源使用完毕后释放资源。如果资源申请不到,可以等待或放弃。在每个节点上维护了完全相同激活的数据路由表。在本发明实施例中,数据路由表是关于数据模块类型,索引号(index)和执行设备标识(ID)之间关系的一个表格,即数据路由表包含了数据模块类型,索引号和节点ID以及之间的对应关系。通过索引号和数据模块类型可以定位到哪个节点中的该类数据模块。具体的,在应用需要触发某类型数据模块处理某个业务逻辑时,通过索引号计算算法确定索引号,然后通过索引号在数据路由表上找到相应的节点,该节点上的该类型数据模块就是被分配的处理该业务逻辑的数据模块。通常情况下,索引号计算算法为可以具体为哈希(hash)一致性算法,此时,每个节点还需要相同的维护hash长度,该hash长度通常是不允许手工修改,一般情况下,该哈希长度是一致性哈希算法的虚拟节点数。例如:部署了2个节点、并使用Hash长度53时,为了两个节点负载均衡,一个节点对应26个index,另外一个节点对应27个index,这样构成类似如下的数据,这里的模块类型包括lock和RMservice,lock指的是锁模块,RMservice指的是处理模块:模块类型索引号节点IDLock01Lock12Lock21Lock32Lock41Lock52Lock61Lock72Lock81Lock92Lock101Lock……Lock511Lock522RMService01RMService12RMService21RMService32RMService41RMService52RMService61RMService72RMService81RMService92RMService101RMService……RMService511RMService522Index与节点ID之间的对应关系,可以根据需要进行自由设定,但是应该满足每个节点对应的index的数量是均衡的,例如:上述有两个真实节点,而index的数量有53个,则1个真实节点对应26或者27个index,可以确保每个节点对应的index的数量是均衡的。至于哪些index对应节点1,哪些index对应节点2,这是可以任意设定,比如:index的序号前26个对应节点1,后27个对应节点2,或者index为奇数对应节点1,index为偶数对应节点2。如果真实节点数量发生变化了,则需要调整index与节点ID之间的对应关系,以保证每个真实节点对应的index的数量是均衡的,继续以上面这个例子来进行说明。如果此时存在三个真实节点,则节点1可以对应17或者18个index。因此,之前的节点1或者节点2应该减少对应8或者9个index,此时可以将节点1的对应任意8个或9个index对应关系改成与节点3对应,或者将节点1对应的序号排在后面的8个或9个index对应关系改成与节点3对应。在本发明实施例中,在开始弹性伸展之前,在各个节点上存储的数据路由表是伸展前的数据路由表,此时该伸展前的数据路由表是激活的数据路由表,在任何时候,只有激活的数据路由表才可以被用于查找数据模块。有了上述数据路由表后,后续如果任何一个节点接收到业务请求,应用解析了该业务请求,执行业务请求对应的业务流程,当该业务流程需要调用某类型数据模块处理该业务流程中的部分逻辑时,按照一定规则,将该业务请求转换成一个键值(Key),然后利用hash一致性算法,即KeymodHash长度,求得索引号的值,然后再用index的值找到对应的节点ID,这样就可以确定在该节点ID对应地节点上的该类型数据模块对该业务流程进行操作处理,比如:加锁或者排队之类的操作。上述业务请求对应的Key可以是1个电话号码,锁类型+电话号码,排队类型+电话号码,资源分配+电话号码等等,如果Key为字符串时,可以将其转换成为Int值。例如:一种常见的使用资源锁服务的场景是识别重复的主被叫流程。呼叫类型的业务,主叫方和被叫方各自触发一个业务处理流程。在主叫方呼叫流程中,为了防止对该呼叫进行重复计费,需要对该呼叫的计费流程进行加锁。此时就需要用锁模块对该计费流程进行加锁,于是就需要通过数据路由表来找到某个节点上的锁模块处理该加锁。假设用主叫号码和被叫号码合起来作为Key值,计算keymodHash长度,求得Index,然后再由index找到锁模块所在对应的节点ID,然后该节点ID对应的该节点的锁模块对该计费流程进行加锁。在加锁成功后,锁模块会存储这条锁记录,加锁包括了锁类型ID,资源ID,流程ID以及锁状态,锁的类型ID表示了锁的基本类型,资源ID可以为电话号码等信息,锁的类型ID和资源ID合起来成为上述Key。应用在接收到一个业务请求后,启动一个会话,对该会话分配一个流程ID,该流程ID唯一表示了该会话。需要说明的是,每个节点只存储自身节点的锁记录,并不存储其它节点的锁记录,因此锁记录不是全局数据。而在被叫方呼叫流程中,可能同样也会触发一个计费流程,此时同样也利用数据路由表来找到处理该加锁过程的锁模块。因此同样使用主叫号码和被叫号码合起来作为Key值,计算keymodHash长度,求得Index,然后再有index找到锁模块所在对应的节点ID,然后该节点ID对应的节点的锁模块对该计费流程进行加锁,由于主叫方呼叫流程和被叫方呼叫流程中寻找锁模块的Key的值是相同的,因此在被叫方流程中,根据路由表确定到上述相同的节点的锁模块。因此该锁模块根据key值首先查找其自身有没有存储这条锁记录,由于主叫方流程和被叫方流程的key值是相同的,因此最终找到了该条锁记录,这就说明了该节点的锁模块已经对该计费流程加锁,所以被叫方呼叫流程加锁失败,同时也说明该被交方触发相同的计费流程是失败的。类似的,处理模块同样也会存储自身节点的排队记录和资源分配记录,并且排队记录和资源分配记录也会包含用于计算路由表的key值。排队记录记载了处理模块对哪些key进行排队和排队开始时间等等信息,资源分配记录记载了处理模块对哪些key进行分配资源和分配哪些资源等信息。更进一步的,为了方便起见,锁记录,排队记录和资源分配记录均可能进一步包含每个key对应的index值,这样后续在搬迁记录时,就比较方便,很快确定哪些数据需要搬迁。还需要说明的是:应用在执行业务请求触发的业务逻辑时,该业务逻辑可能会触发加锁请求,排队请求或资源分配请求的一种或多种,该业务逻辑也有可能不触发加锁请求,排队请求或资源分配请求的任何一种。也就是说,有些业务逻辑,可能只需要应用自己去处理就可以了。上面介绍了在处理一个业务请求时用到的数据路由表和数据模块等内容,在节点伸展前后,数据路由表的内容将发生变化,也就是说,通过数据路由表找到的数据模块也将发生变化,下面将做进一步的介绍。通常情况下,节点为云计算的I层资源设备,如图1所示,假设本发明实施例中在资源伸展前为两个节点,分别为节点1和节点2,当执行资源伸展后,启动了节点3。接着介绍新增节点如何进行弹性伸展处理的过程,新增节点(节点3)接收到云管理设备发送的伸展通知,对处于激活的伸展前的数据路由表进行重新计算,获得伸展后的数据路由表,此时,该伸展后的数据路由表用于记录搬迁。然后节点3向云管理设备发送携带伸展后的数据路由表的记录搬迁请求,云管理设备在收到该记录搬迁请求后,会将记录搬迁请求发送给所有的已有节点(节点1和节点2)上;当所有节点的记录搬迁成功后,新增节点将接收到云管理设备发送的路由表更新通知,然后新增节点将激活的数据路由表由伸展前的数据路由表变更为伸展后的数据路由表。在激活的数据路由表由伸展前的数据路由表变更为伸展后的数据路由表之前,新增节点可以接收并处理负载均衡器分配的业务请求,不过此时新增节点仍然根据所述伸展前的数据路由表,为业务请求分配数据模块。在激活的数据路由表由伸展前的数据路由表变更为伸展后的数据路由表之后,新增节点可以接收负载均衡器分配的业务请求,不过此时新增节点将根据伸展后的数据路由表为业务请求分配数据模块。对于已有节点而已,例如:节点1或者节点2,下面以节点1来代替已有节点进行说明,当节点1接收到云管理设备发送的携带伸展后的数据路由表的记录搬迁请求;根据伸展后的数据路由表和所述伸展前的数据路由表,确定自身需要搬迁的数据,然后将这些需要搬迁的数据发送给新增节点,新增节点就保存这些需要搬迁的数据,从而提供数据服务;当所有的需要搬迁的数据发送完成后,向云管理设备发送记录搬迁成功响应,以通知云管理设备本节点1已经完成了记录搬迁。如果数据模块中存储的数据已经包含了index,节点1则比较伸展后的数据路由表和伸展前的数据路由表,查找数据模块中index对应的节点表示在伸展后的数据路由表和伸展前的数据路由表是否一致,如果不一致,则这些index对应地记录为需要搬迁的数据,将该所述需要搬迁的数据发送给新增节点,这些数据包括所模块处理的临界资源映射信息,排队处理信息和资源分配信息;如果数据模块中存储的数据没有包含了index,则对数据中每条记录的键值进行计算,获得索引号,比较所述伸展后的数据路由表和所述伸展前的数据路由表,查找所述计算的索引号对应的节点表示在伸展后的数据路由表和伸展前的数据路由表是否一致,如果不一致,则这些索引号对应地记录为需要搬迁的数据,将该所述需要搬迁的数据发送给新增节点。当节点1接收到云管理设备发送的路由表更新通知,将激活的数据路由表由伸展前的数据路由表变更为伸展后的数据路由表;在将激活的数据路由表由伸展前的数据路由表变更为伸展后的数据路由表之前,节点1还可以接收负载均衡器分配的业务请求,节点1仍然根据伸展前的数据路由表,为业务请求分配数据模块;在将激活的数据路由表由伸展前的数据路由表变更为伸展后的数据路由表之后,节点1接收负载均衡器分配的业务请求,此时则根据伸展后的数据路由表,为业务请求分配数据模块。继续如图1所示,SLB连接上述一个以上的节点,SLB是上述一个以上节点的负载均衡分发器,SLB统一接收到外部网络104的业务请求,由SLB根据负载均衡策略,将业务请求分发到中的某个节点进行处理。负载均衡策略可以有多种类型,在本发明实施例中以轮询算法为例来进行说明。本发明提供的方案可以实现执行设备的快速弹性伸展,能够使得执行设备快速地处理外部网络的业务请求如图2所示,本发明提供的一种弹性伸展系统可以包括云管理设备201和一个以上的执行设备203。在图3中,用虚线来表示弹性伸展出来的执行设备。该系统可以为弹性伸展前的系统,也可以为弹性伸展后的系统。执行设备可以为图1中的已有节点1,或节点2,也可以为图1中的新增节点3,本发明不做限定。如图3所示,本发明提供的另一弹性伸展系统可以包括云管理设备301、负载均衡器305和一个以上的执行设备303。该系统可以为弹性伸展前的系统,也可以为弹性伸展后的系统。其中,一个以上的执行设备303组成执行设备集群,或者是执行设备群组等。执行设备可以为图1中的已有节点1,或节点2,也可以为图1中的新增节点3,本发明不做限定。如图4所示,图2和图3中的云管理设备201,301可以以图4中的计算机设备(或系统)的方式来实现。图4所示为本发明实施例提供的计算机设备示意图。计算机设备400包括至少一个处理器401,通信总线402,存储器403以及至少一个通信接口404。处理器401可以是一个通用中央处理器(CPU),微处理器,特定应用集成电路(application-specificintegratedcircuit,ASIC),或一个或多个用于控制本发明方案程序执行的集成电路。通信总线402可包括一通路,在上述组件之间传送信息。所述通信接口404,使用任何收发器一类的设备,用于与其他设备或通信网络通信,如以太网,无线接入网(RAN),无线局域网(WirelessLocalAreaNetworks,WLAN)等。存储器403可以是只读存储器(read-onlymemory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(randomaccessmemory,RAM)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(ElectricallyErasableProgrammableRead-OnlyMemory,EEPROM)、只读光盘(CompactDiscRead-OnlyMemory,CD-ROM)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器可以是独立存在,通过总线与处理器相连接。存储器也可以和处理器集成在一起。其中,所述存储器403用于存储执行本发明方案的应用程序代码,并由处理器401来控制执行。所述处理器401用于执行所述存储器403中存储的应用程序代码。在具体实现中,作为一种实施例,处理器401可以包括一个或多个CPU,例如图4中的CPU0和CPU1。在具体实现中,作为一种实施例,计算机设备400可以包括多个处理器,例如图4中的处理器401和处理器408。这些处理器中的每一个可以是一个单核(single-CPU)处理器,也可以是一个多核(multi-CPU)处理器。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(例如计算机程序指令)的处理核。在具体实现中,作为一种实施例,计算机设备400还可以包括输出设备405和输入设备406。输出设备405和处理器401通信,可以以多种方式来显示信息。例如,输出设备405可以是液晶显示器(liquidcrystaldisplay,LCD),发光二级管(lightemittingdiode,LED)显示设备,阴极射线管(cathoderaytube,CRT)显示设备,或投影仪(projector)等。输入设备406和处理器401通信,可以以多种方式接受用户的输入。例如,输入设备406可以是鼠标、键盘、触摸屏设备或传感设备等。上述的计算机设备400可以是一个通用计算机设备或者是一个专用计算机设备。在具体实现中,计算机设备400可以是台式机、便携式电脑、网络服务器、掌上电脑(PersonalDigitalAssistant,PDA)、移动手机、平板电脑、无线终端设备、通信设备、嵌入式设备或有图4中类似结构的设备。本发明实施例不限定计算机设备400的类型。如图2中的云管理设备可以为图4所示的设备,云管理设备201的存储器中存储了一个或多个软件模块(例如:启动模块和交互模块等)。云管理设备201可以通过处理器以及存储器中的程序代码来实现软件模块,实现弹性伸展和业务处理。如图5所示,图2和图3中的执行设备203,303可以以图5中的计算机设备(或系统)的方式来实现。上述计算机设备(或系统)如上述图4所描述的一样。如图2或图3中的执行设备可以为图5所示的设备,执行设备203,303的存储器中存储了一个或多个软件模块(例如:业务处理模块和收发模块等)。执行设备203,303可以通过处理器以及存储器中的程序代码来实现软件模块,实现弹性伸展和业务处理。如图6所示,为本发明实施例提供的弹性伸展的方法流程示意图,这里以节点1,和节点2为已有节点,节点3为伸展的新节点为例来进行说明。包括:步骤601:当云管理设备根据资源伸展策略,确定当前满足预伸展条件时,云管理设备申请资源,启动新增节点。根据资源伸展策略,云管理设备可以伸展多个节点,这里仅仅以1个为例进行说明,下面以节点3来代替新增节点来进行说明。例如:这里的预伸展条件具体为节点平均整机CPU使用率大于40%以及当前预伸展状态的节点数小于2等;节点平均整机CPU使用率指的是云管理设备所管理的所有节点的平均CPU使用率。当前具体的预伸展条件可以根据实际情况来做设定。启动新增节点的过程可以参考上述系统框架中的描述,由于此时该节点只是启动了应用,但是还没有将该节点IP地址发送给前端SLB,即此时还不触发前端SLB对新增节点的消息分发。步骤602:当云管理设备根据资源伸展策略,确定当前满足正式伸展条件,云管理设备将该节点3的IP地址发送给SLB,同时向节点3发送伸展通知。通常情况下,正式伸展条件比预伸展条件要严格一些,并且正式伸展条件的基础是存在了已经进行预伸展的节点。例如:这里的正式伸展条件为节点平均整机的CPU使用率大于60%,预伸展状态节点数大于0时,当然伸展条件是根据实际情况进行设定的。下面步骤603介绍了SLB执行的过程,步骤604介绍了节点3的执行过程,步骤603和步骤604之间没有先后顺序关系。步骤603:SLB接收到云管理设备发送的节点3的IP地址后,此时SLB确定了目前有3个节点可以处理外部网络的业务请求,则刷新负载均衡算法,例如以轮询算法为例,将节点3加入到轮询名单上,后续有新的业务请求过来时,可以按照轮询名单将业务请求发送到该节点3上。步骤604:节点3接收到云管理设备发送的伸展通知,获取伸展后的数据路由表,节点3向云管理设备发送记录搬迁请求,该记录搬迁请求包含了伸展后的数据路由表。正如图1的系统框架所介绍的,此时,各个节点上保存的激活的数据路由表仍然为伸展前的数据路由表,各个节点也是按照伸展前的数据路由表进行分配数据模块处理相应业务逻辑的。由于节点3已经开始正式伸展了,节点3中的数据模块也即将工作了,因此需要根据节点集群中多了的节点3,刷新数据路由表,即按照图1的系统框架所介绍的数据路由表更新方法,获得伸展后的数据路由表,而此时伸展后的数据路由表还没有被激活,仍然按照伸展前的数据路由表来分配模块处理相应业务。对于同一个index。伸展后的数据路由表和伸展前的数据路由表中所对应节点ID可能发生了变化,从对应节点1或者节点2,改变对应节点3了。在接收到云管理设备发送的伸展通知后,节点3已经可以接收SLB发送的业务请求了,例如,此时SLB分配了一个业务请求给节点3,节点3在接收到该业务请求,节点3的应用解析该业务请求,触发业务请求对应的业务流程,当该业务流程需要调用某类型数据模块处理该业务流程中的部分逻辑时,需要对该业务请求进行锁处理或者排队处理时,节点3仍然按照伸展前的数据路由表来分配数据模块,也就是说,仍然由节点1或节点2的数据模块进行处理。步骤605:云管理设备接收到上述节点3发送的记录搬迁请求,把上述记录搬迁请求发送给除节点3之外的所有节点,即将上述记录搬迁请求发送给所有已有节点。步骤606:节点1和节点2分别接收到云管理设备发送的上述记录搬迁请求,确定自身节点上存储的搬迁索引号对应的记录,将上述搬迁索引号对应的记录发送到节点3上,这里的搬迁索引号在所述搬迁前的数据路由表所对应的节点标识和在所述搬迁后的数据路由表所对应的节点标识是不同的。这里记录包括锁记录,排队记录或资源分配记录。下面以节点1来说明这个过程,节点2执行的过程是类似的。如果上述数据的每条记录均已经包含了index值,则节点1比较伸展后的数据路由表和伸展前的数据路由表,获得搬迁索引号,则将搬迁索引号对应地记录发送给节点3。如果数据中没有包含了index值,则节点1对数据中每条记录的key值进行计算,获得index值,然后节点1比较伸展后的数据路由表和伸展前的数据路由表,获得搬迁索引号,则将搬迁索引号对应地记录发送给节点3。步骤607:节点3接收到来自节点1或节点3发送的需要搬迁的记录,并存储这些需要搬迁的记录。步骤608:当节点1或节点2中所有需要搬迁的记录都搬迁完成后,节点1或节点2向云管理设备发送记录搬迁成功响应。步骤609:当云管理设备接收到除节点3之外的所有节点的记录搬迁成功响应,则表示记录搬迁成功,因此向所有节点发送路由表更新通知。步骤610:各个节点接收到路由表更新通知后,将伸展后的数据路由表变成激活的数据路由表,这样节点3的伸展过程就全部完成了,此时节点3就可以和节点1,2一样处理业务请求了。步骤611:在节点1或节点2将搬迁索引号对应的记录已经发送给节点3之后到没有将伸展后的数据路由表变成激活的数据路由表之前,节点1和节点2仍然会接收到SLB发送的外部请求,此时节点1或节点2的数据模块如果进行处理时,产生的记录,将这些记录称为增量记录。此时如果将伸展后的数据路由表变成激活的数据路由表之后,按照上述步骤606,将搬迁索引号对应的增量记录发送给节点3。在同步增量记录期间,为了保证数据一致性,由于伸展后的数据路由表已经被激活了,并且节点3的数据模块接收到的数据还没有不够全面,即还没有增量记录,因此如果有些逻辑触发到节点3的数据模块的话,将直接拒绝此类逻辑。如图7所示,本发明实施例还提供了一种云管理设备的结构示意图。该云管理设备700包括:启动单元701,发送单元703和接收单元705。其中,启动单元701,用于当预伸展条件满足时,启动执行设备,为所述执行设备分配网络之间互连协议IP地址;发送单元703,用于当正式伸展条件满足时,将所述执行设备的IP地址发送给负载均衡器,以使得所述负载均衡器根据负载均衡算法为所述执行设备分配来自外部网络的业务请求;发送单元703,还用于向所述执行设备发送伸展通知,以便于所述执行设备根据所述伸展通知发起记录搬迁请求;接收单元705,用于接收所述执行设备发送的携带伸展后的数据路由表的记录搬迁请求;发送单元703,还用将所述记录搬迁请求发送给除执行设备外的其它的执行设备,以便于所述除执行设备外的其它的执行设备进行记录搬迁;接收单元705,还用于接收到所述除所述执行设备外的所有执行设备的记录搬迁成功响应;发送单元703,还用于向所有执行设备发送路由表更新通知,以便于所有执行设备将激活的数据路由表由伸展前的数据路由表变更为伸展后的数据路由表。在本实施例中,云管理设备700是以功能单元的形式来呈现。这里的“单元”可以指特定应用集成电路(application-specificintegratedcircuit,ASIC),执行一个或多个软件或固件程序的处理器和存储器,集成逻辑电路,和/或其他可以提供上述功能的器件。在一个简单的实施例中,本领域的技术人员可以想到云管理设备700可以采用图4所示的形式。启动单元701,发送单元703和接收单元705可以通过图4的处理器和存储器来实现,具体的,启动单元701可以通过由处理器来执行启动模块来实现,发送单元703和接收单元705可以通过由处理器来执行交互模块来实现。如图8所示,本发明实施例还提供了一种执行设备的结构示意图。该管理设备800包括:接收单元801,搬迁请求单元803,业务处理单元805和更新单元807。其中,接收单元801,用于接收到云管理设备发送的伸展通知,获得伸展后的数据路由表,其中伸展后的数据路由表包含了所述执行设备伸展后的数据模块类型,索引号和执行设备标识之间对应关系;搬迁请求单元803,用于向所述云管理设备发送携带所述伸展后的数据路由表的记录搬迁请求,以便于所述云管理设备将所述携带所述伸展后的数据路由表的记录搬迁请求发送给除执行设备外的所有执行设备;接收单元801,还用于接收负载均衡器发送的业务请求;业务处理单元805,用于解析所述业务请求,执行所述业务请求对应的业务流程;具体的而言,该业务处理单元805可以调用执行设备安装的各个应用来解析业务请求,执行业务请求对应的业务流程,在执行业务流程过程中,当所述业务流程需要调用某一类型执行设备安装的数据模块处理所述业务流程中的部分逻辑时,根据所述激活的数据路由表,分配某一类型的数据模块处理所述业务流程中的部分逻辑;接收单元801,还用于接收所述云管理设备发送的路由表更新通知;更新单元807,用于将激活的数据路由表由伸展前的数据路由表变更为伸展后的数据路由表,其中,所述伸展前的数据路由表包含了所述执行设备伸展前的数据模块类型,索引号和执行设备标识之间对应关系在本实施例中,执行设备800是以功能单元的形式来呈现。这里的“单元”可以指特定ASIC,执行一个或多个软件或固件程序的处理器和存储器,集成逻辑电路,和/或其他可以提供上述功能的器件。在一个简单的实施例中,本领域的技术人员可以想到执行设备800可以采用图5所示的形式。接收单元801,搬迁请求单元803,业务处理单元805和更新单元807可以通过图5的处理器和存储器来实现,具体的,接收单元801可以通过由处理器来执行收发模块来实现,搬迁请求单元803,业务处理单元805和更新单元807可以通过由处理器来执行业务处理模块来实现。本发明实施例还提供了一种计算机存储介质,用于储存为上述图8所示的云管理设备所用的计算机软件指令,其包含用于执行上述方法实施例所设计的程序。通过执行存储的程序,可以实现执行装置的弹性伸展。本发明实施例还提供了另一种计算机存储介质,用于储存为上述图7所示的执行设备所用的计算机软件指令,其包含用于执行上述方法实施例所设计的程序。通过执行存储的程序,可以执行装置的弹性伸展。本领域内的技术人员应明白,本申请的实施例可提供为方法、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的设备。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令设备的制造品,该指令设备实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1