CN108255625A - 用于复杂系统构建高可用模型 - Google Patents

用于复杂系统构建高可用模型 Download PDF

Info

Publication number
CN108255625A
CN108255625A CN201810041816.7A CN201810041816A CN108255625A CN 108255625 A CN108255625 A CN 108255625A CN 201810041816 A CN201810041816 A CN 201810041816A CN 108255625 A CN108255625 A CN 108255625A
Authority
CN
China
Prior art keywords
high availabitity
objx
limitation
obj
availabitity
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
Application number
CN201810041816.7A
Other languages
English (en)
Other versions
CN108255625B (zh
Inventor
高英
黄永燊
林继强
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
South China University of Technology SCUT
Original Assignee
South China University of Technology SCUT
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by South China University of Technology SCUT filed Critical South China University of Technology SCUT
Priority to CN201810041816.7A priority Critical patent/CN108255625B/zh
Publication of CN108255625A publication Critical patent/CN108255625A/zh
Application granted granted Critical
Publication of CN108255625B publication Critical patent/CN108255625B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/008Reliability or availability analysis

Landscapes

  • Engineering & Computer Science (AREA)
  • Quality & Reliability (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

用于复杂系统构建高可用模型
技术领域
本发明涉及计算机领域,具体涉及一种用于复杂系统构建高可用模型。
背景技术
在计算机领域中,高可用(HA):通常来描述一个系统经过专门的设计,从而减少停工时间,保持其服务的高度可用性。目前针对各种系统的高可用性的研究有很多,也给出了不同的方案,但是,如何描述一个高可用系统并给出相应的评价方法却比较少。例如对于一个复杂的系统,其中可能包含很多独立运行的组件,每个组件都有多种不同的高可用方案,通过不同的排列组合,整个系统就会有很多种高可用方案,究竟哪一种高可用方案对于整个复杂系统来说是最好的,却没有相关的指引,急需为复杂系统构建一个高可用模型,并为模型提供评价函数,使得系统构建者可以根据评价函数对系统的高可用部署进行调整。
发明内容
针对现有技术中所存在的不足,本发明提供了一种用于复杂系统构建高可用模型,对高可用系统使用数学语言构建相应的高可用模型,使用该模型可以指导查找高可用系统中的非高可用部分,以便于制定修补方法提高高可用的完备性,并且提供评价函数反映高可用系统作出改变后的好坏。
为实现上述目的,本发明采用了如下的技术方案:
一种用于复杂系统构建高可用模型,包括如下步骤:
(1)、获取并建立高可用对象组,用于描述复杂系统中至少一组需要保护的高可用对象的集合;并采用下符号进行表示:
h_obj_set(obj0,obj1,...,objn)
其中h_obj_set指高可用对象组,obj0,obj1,...,objn表示指高可用对象组中的对象;
(2)、定义高可用对象运行模式,用于描述高可用对象组中的每一个元素各自运行的高可用模式,用以下符号进行表示:
h_obj_mode(mode0,mode1,...,moden)
其中,h_obj_mode指高可用对象组中的对象的运行模式,mode0,mode1,...moden表示与h_obj_set中对应的obj0,obj1,...,objn的高可用运行模式,即objx指高可用对象组中的某个高可用对象,表示成:
h_obj_mode[objx]=modex(0≤x≤n)
其中modex表示为高可用运行模式,高可用运行模式可包括Active/Active模式(A/A)、Active/Passive模式(A/P)、集群模式(Cluster)等等。
x表示为高可用对象组中的对象编号,n表示为高可用对象组中的对象数量;
(3)、定义高可用对象限制,用于描述高可用对象组中元素运行时所受到的限制,高可用对象限制使用以下符号进行表示:
h_obj_limitation(type,objx,parameters)
其中,h_obj_limitation表示高可用对象限制,type表示限制类型,objx表示某个高可用对象,parameters表示该对象限制类型所需要的参数;
对于不受限制的高可用对象,全部归为独立对象集;对于独立对象集中的对象使用以下符号进行表示:
h_obj_limitation(independence,objx)
independence是一个类型名称,表示objx所属的限制类型为独立对象集类型,与h_obj_limitation(type,objx,parameters)中的type对应,objx才是表示独立对象集中的对象,
整个独立对象集使用以下符号表示:
h_obj_independence(obj0,obj1,...,objn)
h_obj_independence表示独立对象集;
(4)、定义高可用评价函数组,用于描述复杂高可用系统的高可用性指标的一组函数,这一组函数由用户根据自定义的可测量的指标进行定义,最终用于评价复杂系统的高可用的好坏,高可用评价函数组用以下符号进行表示:
h_func_set(Z0,Z1,...,Zn)
其h_func_set表示高可用评价函数组,Z0,Z1,…,Zn表示高可用评价函数。
相比于现有技术,本发明具有如下有益效果:规范化复杂高可用系统的描述方式,以统一的数学语言作为复杂高可用系统的描述语言;系统、精准地描述复杂高可用系统的构成方式,方便理清复杂高可用系统内部的组件之间的关系;方便检查复杂高可用系统中的每一个单独部分故障时是否具有高可用性或补足方案,以便加强系统的高可用性;通过可量化的指标构成数学公式,找出复杂高可用系统中可优化的部分,在保持同等高可用性的情况下,消耗更少的资源;通过可量化的指标构成数学公式,为同一复杂高可用系统的不同高可用方案给出合理的评价,成为一种可量化对比的方法。对高可用系统使用数学语言构建相应的高可用模型,使用该模型可以指导查找高可用系统中的非高可用部分,以便于制定修补方法提高高可用的完备性,并且提供评价函数反映高可用系统作出改变后的好坏,使得系统构建者可以根据评价函数对系统的高可用部署进行调整,对改变部署前后的优劣还可以作出比较。
附图说明
图1为本发明实施例的示意图。
具体实施方式
一种用于复杂系统构建高可用模型,包括如下步骤:
(1)、获取并建立高可用对象组,用于描述复杂系统中至少一组需要保护的高可用对象的集合;并采用下符号进行表示:
h_obj_set(obj0,obj1,...,objn)
其中h_obj_set指高可用对象组,obj0,obj1,...,objn表示指高可用对象组中的对象;
(2)、定义高可用对象运行模式,用于描述高可用对象组中的每一个元素各自运行的高可用模式,用以下符号进行表示:
h_obj_mode(mode0,mode1,...,moden)
其中,h_obj_mode指高可用对象组中的对象的运行模式,mode0,mode1,...moden表示与h_obj_set中对应的obj0,obj1,...,objn的高可用运行模式,即objx指高可用对象组中的某个高可用对象,表示成:
h_obj_mode[objx]=modex(0≤x≤n)
其中modex表示为高可用运行模式,高可用运行模式可包括Active/Active模式(A/A)、Active/Passive模式(A/P)、集群模式(Cluster)等等,使用Any表示元素可以以任意模式运行,x表示为高可用对象组中的对象编号,n表示为高可用对象组中的对象数量;
(3)、定义高可用对象限制,用于描述高可用对象组中元素运行时所受到的限制,高可用对象限制使用以下符号进行表示:
h_obj_limitation(type,objx,parameters)
其中,h_obj_limitation表示高可用对象限制,type表示限制类型,objx表示某个高可用对象,parameters表示该对象限制类型所需要的参数;
对于不受限制的高可用对象,全部归为独立对象集;对于独立对象集中的对象使用以下符号进行表示:
h_obj_limitation(independence,objx)
其中independence是一个类型名称,表示objx所属的限制类型为独立对象集类型,与h_obj_limitation(type,objx,parameters)中的type对应,objx才是表示独立对象集中的对象,
整个独立对象集使用以下符号表示:
h_obj_independence(obj0,obj1,...,objn)
h_obj_independence表示独立对象集;
(4)、定义高可用评价函数组,用于描述复杂高可用系统的高可用性指标的一组函数,这一组函数由用户根据自定义的可测量的指标进行定义,最终用于评价复杂系统的高可用的好坏,高可用评价函数组用以下符号进行表示:
h_func_set(Z0,Z1,...,Zn)
其h_func_set表示高可用评价函数组,是一个或多个高可用评价函数的集合,Z0,Z1,…,Zn表示高可用评价函数。
高可用对象限制包括对象运行位置限制、对象间绑定限制、对象间运行顺序限制,对象运行位置限制用以下符号进行表示:
h_obj_limitation(location,objx,locationset,score)
其中score表示与运行位置集的相关性,取值范围为负无穷到正无穷,score的负无穷取值表示objx一定不在运行位置集上运行,正无穷取值表示objx一定在运行位置集上运行,零取值表示objx的运行位置与运行位置集无相关性,即既能在运行位置集上运行,也能不在运行位置集上运行;而locationset表示运行位置集,能直接使用运行位置进行表示,也能用运行位置角色进行描述,对于属于某一运行位置角色的运行位置,使用以下符号对运行位置进行角色赋予:
h_location_role(rolename,location0,location1,...,locationn)
h_location_role表示运行位置角色,其中rolename表示运行位置角色名称,location0,…,locationn表示运行位置,即使用rolename代替指定的locationx进行对象运行位置限制的描述;
对象间绑定限制用以下符号进行表示:
h_obj_limitation(colocation,objx,objy,score)
其中objy表示与objx不同的另一个高可用对象,Score表示objx与objy的相关性,取值范围为负无穷到正无穷,Score的负无穷取值表示objx一定不与objy运行在同一个位置上,正无穷取值表示objx一定与objy运行在同一个位置上,零取值表示objx与objy运行的位置无相关性,即既能在同一位置上运行,也能不在同一位置上运行;
对象间运行顺序限制用以下符号进行表示:
h_obj_limitation(order,objx,actionx,objy,actiony,ordertype)
其中,order表示objx所属的限制类型为顺序限制类型,与h_obj_limitation(type,objx,parameters)中的type对应,objy表示与objx不同的另一个高可用对象,actionx与actiony分别表示objx与objy的运行动作,运行动作包括:启动start、停止stop、切换为主要对象promote、切换为次要对象demote,ordertype表示objx与objy的顺序限制类型,包括:强顺序即objx的actionx执行完成后,objy的actiony才可以开始执行;当要执行objx的actionx的相反动作前,objy的actiony的相反动作一定要先完成;弱顺序,即执行objx的actionx时,同时执行objy的actiony;执行objx的actionx的相反动作时时也可以同时执行objy的actiony的相反动作。
3、如权利要求1或2所述的用于复杂系统构建高可用模型,其特征在于,还包括高可用实施闭包,用于描述为保护高可用对象组正常可用的必要组件的集合,该集合中的每一个元素相互感知,并为保护高可用对象组作出相应的保护动作,高可用实施闭包用以下符号进行表示:
h_exc_closure(exc0,exc1,...,excn)
其中h_exc_closure表示高可用实施闭包,exc0,exc1,…excn表示为保护高可用对象组正常可用的必要组件。
高可用实施闭包具有以下性质:一是两个独立互不相干的高可用实施闭包进行并操作,得到的仍是一个高可用实施闭包,此时新的高可用对象组为这两个高可用实施闭包所保护的高可用对象组的并集。二是高可用实施闭包的组件与非高可用实施闭包的组件合并,不能得到一个高可用实施闭包。
例如,创立了一个高可用对象组,该高可用对象组是一组用户数据(以下简称D),并含有以下组件:操作系统(以下简称S)以及某资源管理器(以下简称R),其中,S与R都运行在复杂系统中的每一个节点,D存在于复杂系统中的某一个节点,R可以在节点故障时将D转移至另外的节点上,若某个节点上的R发生故障时,可以通过S对R进行重启,使R进行恢复,若某个节点上的S发生故障时,其它节点的R能够识别,并使D从故障节点转移至其它正常节点上,因此,在S与R的共同作用下,D具有高可用特性,而且S与R能够相互感知并为保护D作出相应的保护动作,所以S与R组成为保护D正常可用的必要组件的最小集合,S与R为该复杂系统中的高可用实施闭包,即:
根据之前的“高可用对象组”的定义,可以发现D为本例子中的高可用对象组中的对象,因此有以下表达式:
h_obj_set(D)
根据之前的“高可用实施闭包”的定义,可以发现S和R为保护D正常可用的必要组件的最小集合,因此S和R组成本例子中的高可用实施闭包,因此有以下表达式:
h_exc_closure(S,R)
若上述D的高可用运行模式为Active/Passive模式(A/P),则
根据之前的“高可用运行模式”的定义,D的高可用模式可以用以下表达式进行描述:
h_obj_set(D)
h_obj_mode(A/P)
或者根据定义用另外的一种表达方式进行描述:
D的高可用运行模式可表示成:
h_obj_mode[D]=A/P
即D的高可用运行模式为Active/Passive模式(即A/P)。
关于高可用评价函数的实施例
关于高可用评价函数,用户可使用通用的高可用系统指标函数作为高可用评价函数,即:
其中,Z表示高可用评价函数,MTTF表示平均无故障时间,MTTR表示平均维修时间,又或者用户根据系统所使用的内存资源作为高可用评价函数,即:
其中,n表示表示高可用对象组中的对象数量,Mem(Di)表示第i个高可用对象在运行时所需要的内存大小。
关于高可用评价函数的另一实施例
若系统以优化使用CPU和内存为目标,因此定义与CPU使用率和内存使用率相关的评价函数:
h_func_set(Z0,Z1)
可用系统评价指标可以包括但不限于以下内容:
1.额外CPU使用开销。(包括但不限于CPU占用率、CPU占用时间等)
2.额外内存使用开销。(包括但不限于内存使用大小、内存使用率等)
3.额外磁盘使用开销。(包括但不限于磁盘空间使用大小、磁盘I/O等)
4.额外网络使用开销。(包括但不限于带宽的占用率、网络I/O、通信延时时间等)
5.节点开销。(包括但不限于物理节点或虚拟节点的数量、节点平均维修时间等)
以上指标应该越小越好;(物理或虚拟)节点的平均无故障时间,以上指标应该越大越好。
为了进一步的对本发明的模型的理解,以下使用一个复杂系统为例对如何使用本发明的模型进行描述:
使用的复杂系统为Openstack与CEPH组合而成的一个复杂系统,系统的服务部署方式如图1所示,
S1定义高可用对象组h_obj_set(MariaDB,Ceph_RBD,RabbitMQ,Glance_Registry,Glance_API,Cinder_API,Cinder_Scheduler,Cinder_Volume,Nova_API,Nova_ConsoleAuth,Nova_Scheduler,Nova_Conductor,Nova_NoVNCProxy,Ceph_Mon,Ceph_OSD,Neutron-L3-Agent,Neutron-DHCP-Agent,Neutron-Metadata-Agent,User_VM1);
上述符号表示了该复杂系统中,需要保护的高可用对象有MariaDB,Ceph_RBD,RabbitMQ,Glance_Registry,Glance_API,Cinder_API,Cinder_Scheduler,Cinder_Volume,Nova_API,Nova_ConsoleAuth,Nova_Scheduler,Nova_Conductor,Nova_NoVNCProxy,Ceph_Mon,Ceph_OSD,Neutron-L3-Agent,Neutron-DHCP-Agent,Neutron-Metadata-Agent这些服务,以及User_VM1的用户数据。
S2定义高可用实施闭包h_exc_closure(操作系统,服务插件,资源管理器Pacemaker,Ceph_Mon,Ceph_OSD)
上述符号表示了该复杂系统中,包含“操作系统,服务插件,资源管理器Pacemaker,Ceph_Mon,Ceph_OSD”形成的闭包。其中,服务插件以服务的形式运行在节点上的程序,用于控制资源管理器Pacemaker。
为描述方便,将MariaDB,Ceph_RBD,RabbitMQ,Glance_Registry,Glance_API,Cinder_API,Cinder_Scheduler,Cinder_Volume,Nova_API,Nova_ConsoleAuth,Nova_Scheduler,Nova_Conductor,Nova_NoVNCProxy记为“控制节点Openstack服务”,将Neutron-L3-Agent,Neutron-DHCP-Agent,Neutron-Metadata-Agent记为“计算节点Openstack服务”,将Ceph_Mon,Ceph_OSD记为“CEPH服务”。
当操作系统出现故障时,其它节点上的资源管理器将控制节点Openstack服务、计算节点Openstack服务和CEPH服务转移到正常节点上运行,其它节点上的服务插件、Ceph_Mon和Ceph_OSD将User_VM1在正常节点上恢复;
当某个节点上的服务插件出现故障时,操作系统能够对服务插件进行重启,所有高可用对象组不受影响,当某个节点上的资源管理器Pacemaker出现故障时,服务插件会重新启动资源管理器,所有高可用对象组不受影响,当某个Ceph_Mon出现故障时,资源管理器能够对Ceph_Mon进行重启,其它高可用对象组的对象不受影响,当某个Ceph_OSD出现故障时,Ceph_Mon能够发出恢复指令,使User_VM1在其它的Ceph_OSD上进行恢复,可以看出,在操作系统,服务插件,资源管理器Pacemaker,Ceph_Mon,Ceph_OSD这五个元素的共同作用下,高可用对象组才有高可用特性,若缺少其中的一个元素,则高可用对象组失去高可用特性。
S3定义高可用对象运行模式
h_obj_mode(A/A,A/P,A/P,A/P,A/P,A/P,A/P,A/P,A/P,A/P,A/P,A/P,A/P,Cluster,Cluster,A/P,Any,Any,Any)
上述符号表示高可用对象MariaDB,Ceph_RBD,RabbitMQ,Glance_Registry,Glance_API,Cinder_API,Cinder_Scheduler,Cinder_Volume,Nova_API,Nova_ConsoleAuth,Nova_Scheduler,Nova_Conductor,Nova_NoVNCProxy,Ceph_Mon,Ceph_OSD,Neutron-L3-Agent,Neutron-DHCP-Agent,Neutron-Metadata-Agent,User_VM1的运行模式分别为A/A,A/P,A/P,A/P,A/P,A/P,A/P,A/P,A/P,A/P,A/P,A/P,A/P,Cluster,Cluster,A/P,Cluster,Cluster,A/P。
S4定义高可用对象限制
h_location_role(CONTROLLER,Controller-Node-1,Controller-Node-2,Controller-Node-3)
h_location_role(COMPUTE,Compute-Node-1,Compute-Node-2,Compute-Node-3)
h_obj_limitation(location,MariaDB,CONTROLLER,正无穷)
h_obj_limitation(location,Ceph_RBD,CONTROLLER,正无穷)
h_obj_limitation(location,RabbitMQ,CONTROLLER,正无穷)
h_obj_limitation(location,Glance_Registry,CONTROLLER,正无穷)
h_obj_limitation(location,Glance_API,CONTROLLER,正无穷)
h_obj_limitation(location,Cinder_API,CONTROLLER,正无穷)
h_obj_limitation(location,Cinder_Scheduler,CONTROLLER,正无穷)
h_obj_limitation(location,Cinder_Volume,CONTROLLER,正无穷)
h_obj_limitation(location,Nova_API,CONTROLLER,正无穷)
h_obj_limitation(location,Nova_ConsoleAuth,CONTROLLER,正无穷)
h_obj_limitation(location,Nova_Scheduler,CONTROLLER,正无穷)
h_obj_limitation(location,Nova_Conductor,CONTROLLER,正无穷)
h_obj_limitation(location,Nova_NoVNCProxy,CONTROLLER,正无穷)
h_obj_limitation(location,Ceph_Mon,COMPUTE,正无穷)
h_obj_limitation(location,Ceph_OSD,COMPUTE,正无穷)
h_obj_limitation(location,Neutron-L3-Agent,COMPUTE,正无穷)
h_obj_limitation(location,Neutron-DHCP-Agent,COMPUTE,正无穷)
h_obj_limitation(location,Neutron-Metadata-Agent,COMPUTE,正无穷)
h_obj_limitation(location,User_VM1,COMPUTE,正无穷)
上述表示了部分高可用对象的运行位置限制。
h_obj_limitation(colocation,RabbitMQ,Ceph_RBD,正无穷)
h_obj_limitation(colocation,Glance_Registry,Ceph_RBD,正无穷)
h_obj_limitation(colocation,Glance_API,Ceph_RBD,正无穷)
h_obj_limitation(colocation,Cinder_API,Ceph_RBD,正无穷)
h_obj_limitation(colocation,Cinder_Scheduler,Ceph_RBD,正无穷)
h_obj_limitation(colocation,Cinder_Volume,Ceph_RBD,正无穷)
h_obj_limitation(colocation,Nova_API,Ceph_RBD,正无穷)
h_obj_limitation(colocation,Nova_ConsoleAuth,Ceph_RBD,正无穷)
h_obj_limitation(colocation,Nova_Scheduler,Ceph_RBD,正无穷)
h_obj_limitation(colocation,Nova_Conductor,Ceph_RBD,正无穷)
h_obj_limitation(colocation,Nova_NoVNCProxy,Ceph_RBD,正无穷)
上述表示了部分高可用对象间的绑定限制。
h_obj_limitation(order,MariaDB,start,Glance_Registry,start,强顺序)
h_obj_limitation(order,Glance_Registry,start,Glance_API,start,强顺序)
h_obj_limitation(order,MariaDB,start,Cinder_API,start,强顺序)
h_obj_limitation(order,Cinder_API,start,Cinder_Scheduler,start,强顺序)
h_obj_limitation(order,Cinder_Scheduler,start,Cinder_Volume,start,强顺序)
h_obj_limitation(order,MariaDB,start,Nova_API,start,强顺序)
h_obj_limitation(order,Nova_API,start,Nova_ConsoleAuth,start,强顺序)
h_obj_limitation(order,Nova_ConsoleAuth,start,Nova_Scheduler,start,强顺序)
h_obj_limitation(order,Nova_Scheduler,start,Nova_Conductor,start,强顺序)
h_obj_limitation(order,Nova_Conductor,start,Nova_NoVNCProxy,start,强顺序)上述表示了部分高可用对象间的运行顺序限制。
S5定义高可用评价函数组
由于系统以优化使用CPU使用率和内存使用率为目标,因此仅简单定义一个高可用评价函数组,其中该高可用评价函数组包含Z0和Z1两个高可用评价函数,分别为Z0对高可用对象组中的所有对象的CPU使用率进行求和,Z1对高可用对象组中的所有对象的内存使用率进行求和,
h_func_set(Z0,Z1)
在当前例子中,通过高可用对象运行模式与高可用评价函数组,可以发现,Neutron-DHCP-Agent和Neutron-Metadata-Agent的运行模式均为Any,因此仍存在可优化的地方。根据Neutron-DHCP-Agent和Neutron-Metadata-Agent本身的运行机制,这两个服务均可以以A/P的模式运行,但需要添加两条高可用对象间绑定限制:
h_obj_limitation(colocation,Neutron-DHCP-Agent,Neutron-L3-Agent,正无穷)
h_obj_limitation(colocation,Neutron-Metadata-Agent,Neutron-L3-Agent,正无穷)
添加这两条限制后,这两个服务的运行模式可改为:
h_obj_mode[Neutron-DHCP-Agent]=A/P
h_obj_mode[Neutron-Metadata-Agent]=A/P
另外,我们发现,Ceph_Mon和Ceph_OSD这两个服务既出现在高可用对象组中,也出现在高可用实施闭包中,说明其本身只作为高可用实施闭包中的元素而不成为高可用对象组中的元素时也可以使整个系统具备高可用性,因此可以在高可用对象组中去除Ceph_Mon和Ceph_OSD这两个服务。经过这两种优化后,可以发现Z0和Z1这两个评价函数的值已经降低,说明在保持同等高可用性的情况下,整个系统得到了优化。

Claims (3)

1.一种用于复杂系统构建高可用模型,其特征在于,包括如下步骤:
(1)、获取并建立高可用对象组,用于描述复杂系统中至少一组需要保护的高可用对象的集合;并采用下符号进行表示:
h_0bj_set(0bj0,0bj1,...,0bjn)
其中h_obj_set指高可用对象组,obj0,obj1,...,objn表示指高可用对象组中的对象;
(2)、定义高可用对象运行模式,用于描述高可用对象组中的每一个元素各自运行的高可用模式,用以下符号进行表示:
h_obj_mode(mode0,mode1,...,moden)
其中,h_obj_mode指高可用对象组中的对象的运行模式,mode0,mode1,...moden表示与h_obj_set中对应的obj0,obj1,...,objn的高可用运行模式,即objx指高可用对象组中的某个高可用对象,表示成:
h_obj_mode[objx]=modex(0≤x≤n)
其中modex表示为高可用运行模式,x表示为高可用对象组中的对象编号,n表示为高可用对象组中的对象数量;
(3)、定义高可用对象限制,用于描述高可用对象组中元素运行时所受到的限制,高可用对象限制使用以下符号进行表示:
h_obj_limitation(type,objx,parameters)
其中,h_obj_limitation表示高可用对象限制,type表示限制类型,objx表示某个高可用对象,parameters表示该对象限制类型所需要的参数;
对于不受限制的高可用对象,全部归为独立对象集;对于独立对象集中的对象使用以下符号进行表示:
h_obj_limitation(independence,objx)
independence是一个类型名称,表示objx所属的限制类型为独立对象集类型,与h_obj_limitation(type,objx,parameters)中的type对应,objx才是表示独立对象集中的对象,
整个独立对象集使用以下符号表示:
h_obj_independence(obj0,obj1,...,objn)
h_obj_independence表示独立对象集;
(4)、定义高可用评价函数组,用于描述复杂高可用系统的高可用性指标的一组函数,这一组函数由用户根据自定义的可测量的指标进行定义,最终用于评价复杂系统的高可用的好坏,高可用评价函数组用以下符号进行表示:
h_func_set(Z0,Z1,...,Zn)
其h_func_set表示高可用评价函数组,是一个或多个高可用评价函数的集合,Z0,Z1,…,Zn表示高可用评价函数。
2.如权利要求1所述的用于复杂系统构建高可用模型,其特征在于,高可用对象限制包括对象运行位置限制、对象间绑定限制、对象间运行顺序限制,对象运行位置限制用以下符号进行表示:
h_obj_limitation(location,objx,locationset,score)
其中score表示与运行位置集的相关性,取值范围为负无穷到正无穷,score的负无穷取值表示objx一定不在运行位置集上运行,正无穷取值表示objx一定在运行位置集上运行,零取值表示objx的运行位置与运行位置集无相关性,即既能在运行位置集上运行,也能不在运行位置集上运行;而locationset表示运行位置集,能用运行位置进行表示,也能用运行位置角色进行描述,对于属于某一运行位置角色的运行位置,使用以下符号对运行位置进行角色赋予:
h_location_role(rolename,location0,location1,...,locationn)
h_location_role表示运行位置角色,其中rolename表示运行位置角色名称,location0,…,locationn表示运行位置,即使用rolename代替指定的locationx进行对象运行位置限制的描述;
对象间绑定限制用以下符号进行表示:
h_obj_limitation(colocation,objx,objy,score)
其中objy表示与objx不同的另一个高可用对象,Score表示objx与objy的相关性,取值范围为负无穷到正无穷,Score的负无穷取值表示objx一定不与objy运行在同一个位置上,正无穷取值表示objx一定与objy运行在同一个位置上,零取值表示objx与objy运行的位置无相关性,即既能在同一位置上运行,也能不在同一位置上运行;
对象间运行顺序限制用以下符号进行表示:
h_obj_limitation(order,objx,actionx,objy,actiony,ordertype)
其中,order表示objx所属的限制类型为顺序限制类型,与h_obj_limitation(type,objx,parameters)中的type对应,objy表示与objx不同的另一个高可用对象,actionx与actiony分别表示objx与objy的运行动作,运行动作包括:启动start、停止stop、切换为主要对象promote、切换为次要对象demote,ordertype表示objx与objy的顺序限制类型,包括:强顺序即objx的actionx执行完成后,objy的actiony才可以开始执行;当要执行objx的actionx的相反动作前,objy的actiony的相反动作一定要先完成;弱顺序,即执行objx的actionx时,同时执行objy的actiony;执行objx的actionx的相反动作时时也可以同时执行objy的actiony的相反动作。
3.如权利要求1或2所述的用于复杂系统构建高可用模型,其特征在于,还包括高可用实施闭包,用于描述为保护高可用对象组正常可用的必要组件的集合,该集合中的每一个元素相互感知,并为保护高可用对象组作出相应的保护动作,两个独立互不相干的高可用实施闭包进行并操作,得到的仍是一个高可用实施闭包,此时新的高可用对象组为这两个高可用实施闭包所保护的高可用对象组的并集,高可用实施闭包的组件与非高可用实施闭包的组件合并,不能得到一个高可用实施闭包,高可用实施闭包用以下符号进行表示:
h_exc_closure(exc0,exc1,...,excn)
其中h_exc_closure表示高可用实施闭包,exc0,exc1,…excn表示为保护高可用对象组正常可用的必要组件。
CN201810041816.7A 2018-01-16 2018-01-16 基于构建高可用模型的复杂系统的评价方法 Active CN108255625B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810041816.7A CN108255625B (zh) 2018-01-16 2018-01-16 基于构建高可用模型的复杂系统的评价方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810041816.7A CN108255625B (zh) 2018-01-16 2018-01-16 基于构建高可用模型的复杂系统的评价方法

Publications (2)

Publication Number Publication Date
CN108255625A true CN108255625A (zh) 2018-07-06
CN108255625B CN108255625B (zh) 2021-02-26

Family

ID=62726698

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810041816.7A Active CN108255625B (zh) 2018-01-16 2018-01-16 基于构建高可用模型的复杂系统的评价方法

Country Status (1)

Country Link
CN (1) CN108255625B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040181366A1 (en) * 2001-10-01 2004-09-16 Novas Inc. Evaluation device, evaluation method and program
US20050044450A1 (en) * 2003-08-20 2005-02-24 Nat. Inst. Of Advanced Industrial Sci. And Tech. System and method for evaluating usability using virtual user
JP2007115110A (ja) * 2005-10-21 2007-05-10 Research Organization Of Information & Systems 信用リスク計量化モデルの寛厳性評価方法、その実施プログラム及び記録媒体
US20130338799A1 (en) * 2011-03-04 2013-12-19 Nec Corporation Availability model generation support device, availability model generation support method, and program
JP2014137778A (ja) * 2013-01-18 2014-07-28 Kddi Corp ユーザビリティに対する評価装置、評価方法及び評価プログラム
CN107547273A (zh) * 2017-08-18 2018-01-05 国网山东省电力公司信息通信公司 一种电力系统虚拟实例高可用的保障方法及系统

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040181366A1 (en) * 2001-10-01 2004-09-16 Novas Inc. Evaluation device, evaluation method and program
US20050044450A1 (en) * 2003-08-20 2005-02-24 Nat. Inst. Of Advanced Industrial Sci. And Tech. System and method for evaluating usability using virtual user
JP2007115110A (ja) * 2005-10-21 2007-05-10 Research Organization Of Information & Systems 信用リスク計量化モデルの寛厳性評価方法、その実施プログラム及び記録媒体
US20130338799A1 (en) * 2011-03-04 2013-12-19 Nec Corporation Availability model generation support device, availability model generation support method, and program
JP2014137778A (ja) * 2013-01-18 2014-07-28 Kddi Corp ユーザビリティに対する評価装置、評価方法及び評価プログラム
CN107547273A (zh) * 2017-08-18 2018-01-05 国网山东省电力公司信息通信公司 一种电力系统虚拟实例高可用的保障方法及系统

Also Published As

Publication number Publication date
CN108255625B (zh) 2021-02-26

Similar Documents

Publication Publication Date Title
McClurg et al. Efficient synthesis of network updates
CN102402481B (zh) 异步程序代码的模糊测试
CN103955399B (zh) 一种虚拟机迁移方法和装置及物理主机
CN102576310A (zh) 将物理计算资源的一部分分配给逻辑分区
US10608963B2 (en) Adjusting buffer size for network interface controller
CN109447276A (zh) 一种机器学习方法、系统、设备及应用方法
Abel et al. MeMin: SAT-based exact minimization of incompletely specified Mealy machines
Emek et al. New bounds for the controller problem
Skodawessely et al. Finding attractors in asynchronous Boolean dynamics
CN108062235A (zh) 数据处理方法及装置
CN103078754B (zh) 一种基于计数型bloom filter的网络数据流统计方法
Dijkstra Self-stabilizing systems in spite of distributed control
Guo et al. Flash: fast, consistent data plane verification for large-scale network settings
CN105281960A (zh) 软件定义网络中流量项目的管理方法
Gómez Canaval et al. NPEPE: Massive natural computing engine for optimally solving NP-complete problems in Big Data scenarios
CN108255625A (zh) 用于复杂系统构建高可用模型
CN106874072A (zh) 一种基于PowerPC处理器的嵌入式操作系统分区虚拟中断的处理方法
CN115630367A (zh) 一种基于XGBoost的路由算法关键故障点识别方法
US20180225240A1 (en) Multiple-queue integer coalescing mapping algorithm with shared based time
Zhang et al. Event-triggered consensus for second-order leaderless multi-agent systems
CN102063308B (zh) 一种用于地震勘探资料处理流程控制的方法
Hüchting et al. A theory of name boundedness
CN104516823A (zh) 一种数据存储方法和装置
CN103870313A (zh) 一种虚拟机任务调度方法及系统
Kloster et al. A nearly-sublinear method for approximating a column of the matrix exponential for matrices from large, sparse networks

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant