CN103473112A - 一种基于两地三中心的灾备信息系统仿真方法 - Google Patents

一种基于两地三中心的灾备信息系统仿真方法 Download PDF

Info

Publication number
CN103473112A
CN103473112A CN2013103962916A CN201310396291A CN103473112A CN 103473112 A CN103473112 A CN 103473112A CN 2013103962916 A CN2013103962916 A CN 2013103962916A CN 201310396291 A CN201310396291 A CN 201310396291A CN 103473112 A CN103473112 A CN 103473112A
Authority
CN
China
Prior art keywords
data center
backup
local
product
num
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
CN2013103962916A
Other languages
English (en)
Other versions
CN103473112B (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.)
Beijing University of Posts and Telecommunications
Original Assignee
Beijing University of Posts and Telecommunications
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 Beijing University of Posts and Telecommunications filed Critical Beijing University of Posts and Telecommunications
Priority to CN201310396291.6A priority Critical patent/CN103473112B/zh
Publication of CN103473112A publication Critical patent/CN103473112A/zh
Application granted granted Critical
Publication of CN103473112B publication Critical patent/CN103473112B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供的是一种基于两地三中心的灾备信息系统仿真方法。该仿真按照用户的实际需求搭建模拟的灾备信息系统,实现灾难导致的故障的注入、故障修复、故障检测、数据中心的切换和回切、数据存储、数据有效性验证等灾备信息系统演练过程,系统中存在系统信号三种状态:正常状态、故障状态和中心替代状态,利用系统信号实现灾备流程的控制,降低了成本,提高了工作效率,同时使用灾备数据和生产数据共享存储的存储方式,节省了空间。

Description

一种基于两地三中心的灾备信息系统仿真方法
(一)技术领域
本发明涉及的是一种基于两地三中心的灾备信息系统仿真方法。
(二)背景技术
随着社会信息化建设的不断发展,人们对信息系统的依赖程度越来越高。因此,加强信息系统的灾备建设,确保在灾难发生的时候,信息系统上的关键业务和数据能够得到保护,实现信息系统数据的最小量丢失和快速恢复受到了广泛的重视。而如何验证灾备信息系统的建设效果是当前研究的重点问题。
目前对于灾备信息系统的验证主要有两种方式:第一种方式是利用实际环境搭建灾备中心以及灾备网络并进行实际灾备演练;第二种方式是通过搭建虚拟网络环境,通过仿真的方法来模拟实际系统的运行。第一种方式接近于实际,因此验证效果较为真实,但是由于需要事先建设备份中心和备份网络,还需要大量的人力物力参与,成本过高、实现复杂,因此往往用于灾备演练而非灾备验证。第二种方式主要采用模拟的方法,在灾备信息系统建设前通过建立信息系统环境和业务模式进行系统级仿真,从而可以快速验证相关技术的有效性。
根据《信息系统灾难恢复规范》中的定义,RTO是指灾难发生后,信息系统或业务能力从停顿到必须恢复的时间要求。RPO是指灾难发生后,系统和数据必须恢复到的时间点的要求。
本发明提供了一种基于两地三中心的灾备信息系统仿真方法,目标是在低成本、不影响现有应用系统的前提下,利用仿真的方法最大程度地模拟实际灾备信息系统及其灾备流程。模拟搭建灾备信息系统,是指对于系统中的每个数据中心通过服务器层、汇聚交换机层、核心交换机层和出口路由器层来进行抽象,并在本中心的服务器层和汇聚交换机层、汇聚交换机层和核心交换机层、核心交换机层和出口路由器层之间以及用户和每个数据中心的每个出口路由器之间建立双工物理链路,以此作为服务器和用户之间交互的服务链路,同时本系统利用随机产生器生成的用户编号为访问源、本地数据中心的服务器编号为访问目标,通过传输层源代理和目的代理分别绑定到访问源节点和访问目标节点实现传输层的连接,利用应用层协议代理绑定到传输层源代理实现应用层连接,并通过控制应用层协议代理的开始和结束时刻实现对一次访问数据流的控制。灾备流程的仿真是指通过给用户提供充足的配置接口自动化地实现灾难故障的定时发生和定时修复、故障检测、数据中心的切换和回切、数据存储、数据有效性验证等功能,达到低成本高效率进行灾备演练的目的,从而对灾备建设进行效果分析。
(三)发明内容
本发明的目的在于一种基于两地三中心的灾备信息系统仿真方法。该仿真按照用户的实际需求搭建模拟的灾备信息系统,实现灾难导致的故障的注入、故障修复、故障检测、数据中心的切换和回切、数据存储、数据有效性验证等灾备信息系统演练过程,系统中存在系统信号system_signal有三种状态:正常状态即system_signal=normal_state,故障状态即system_signal=bad_state,中心替代状态即system_signal=replace_state,利用system_signal标志实现灾备流程的控制。
本发明的目的是这样实现的:
设灾备信息系统采用两地三中心的架构,即包括本地数据中心、本地备份数据中心和异地备份数据中心,且三个数据中心的软硬件环境和网络环境完全相同,假定系统中可能发生故障的一个组成部分称为一个故障对象,在一个时刻一个故障对象可能是正常状态也可能是故障状态,当系统中的所有故障对象的状态导致本地数据中心不能正常提供服务,则称此种系统状态为系统故障状态,第一次检测到此种系统状态的时间点称为故障发生时刻,否则,称系统状态为系统正常状态;当检测到系统故障状态之后,又检测到本地数据中心可以正常提供服务,则称此种系统状态为系统修复状态,第一次检测到此种状态的时间点称为故障修复时刻,否则,称此种系统状态为系统忍受状态;正常情况下,灾备信息系统维持一个数据中心作为生产数据中心为用户提供服务,默认的生产数据中心为本地数据中心;在生产过程中,灾备信息系统存在的每个故障对象的状态时刻发生变化,影响着系统状态的改变,当第一次检测到系统状态为系统故障状态,则更新系统信号为故障状态,即执行system_signal=bad_state,此时灾备信息系统便会依次检测本地备份数据中心和异地备份数据中心,若在RTO和RPO的限制内检测到本地备份数据中心可以提供服务,则停止检测并更新系统信号为中心替代状态,即执行system_signal=replace_state,同时将数据流切换到本地备份数据中心并将本地备份数据中心作为生产数据中心使用;若在RTO和RPO的限制内检测到异地备份数据中心可以提供服务,则停止检测并更新系统信号为中心替代状态,即执行system_signal=replace_state,同时将数据流切换到异地备份数据中心,并将异地备份数据中心作为生产数据中心使用;若在RTO和RPO的限制内第一次检测系统状态为系统修复状态,更新系统信号为正常状态,即执行system_signal=normal_state,重新将数据流切回到本地数据中心并将本地数据中心作为生产数据中心使用;若到了RTO和RPO限制的时间仍找不到可用的数据中心,则系统崩溃;本系统中采用源节点编号、目的服务器节点编号、流开始时刻、流结束时刻、应用层协议编号、实时字节、存储节点编号、和标识backup_or_product_flag八个字段构成一条描述信息来描述一条数据流此刻的状态,其中,当backup_or_product_flag值为1时,表示此条描述信息描述的是当前数据中心生产的数据流的生产信息,当backup_or_product_flag值为2时,表示此条描述信息是其他数据中心生产的数据流在本中心保存的备份信息,生产过程中以被切换的数据流信息为基础新创建的连接到当前数据中心的数据流、本次生产中以随机产生的信息为基础新创建的连接到当前数据中心的数据流,以及当前数据中心中所有还未结束的数据流为描述对象,构造描述信息记录同步写入到三个数据中心的数据流信息存储文件中;当切换数据中心前后需要进行数据有效性验证操作时,即对每个数据中心生产的数据流执行查找是否其他两个数据中心均存在备份,则有效数据计数器validation_result_is_hit_num加1,否则,无效数据计数器validation_result_is_miss_num加1的操作,最后将验证时刻和验证结果构成验证结果描述信息记录写入到验证结果存储文件中,从而方便验证本系统中对零数据丢失的实现;本系统中利用公式
Figure BDA0000376620780000031
Figure BDA0000376620780000032
来估算一次寻找数据流的存储的操作,即若存在存储设备的剩余空间不小于本次数据流的估算值,则存储,否则,系统警报存储空间不足,系统崩溃;本系统中设置变量been_changed_datacenter_num,其值只有1和2,用来识别被切换的数据流的来源,假设当前由本地数据中心作为生产数据中心,若been_changed_datacenter_num=1,则此时被切换的数据流的来源为本地备份数据中心,否则,此时被切换的数据流的来源为异地备份数据中心;假设当前由本地备份数据中心作为生产数据中心,若been_changed_datacenter_num=1,则此时被切换的数据流的来源为本地数据中心,否则,此时被切换的数据流的来源为异地备份数据中心;假设当前由异地备份数据中心作为生产数据中心,若been_changed_datacenter_num=1,则此时被切换的数据流的来源为本地数据中心,否则,此时被切换的数据流的来源为本地备份数据中心;
设用户设置了参数包括生产结束时刻user_set_product_end_time、存储服务器的最大存储能力user_set_max_store_size和数据流发送的一个数据包的最大值user_set_max_packet_size;设系统中存在三个数据流信息存储文件用于分别存储对应的数据中心生产的数据流的信息,存在一个仿真结束原因记录文件用于存储仿真结束的原因,并且存在一个数据有效性验证结果存储文件用于存储系统中对数据进行有效性验证的结果;设灾备信息系统中每个数据中心的出口路由器层设备个数为c1,核心交换机层设备个数为c2,汇聚交换机层设备个数为c3,服务器层应用服务器设备个数为c4,服务器层存储服务器设备个数为c5,则按照从出口路由器层到核心交换层到汇聚交换机层再到服务器层的顺序,对于每一层的设备节点按照本地数据中心到本地备份数据中心再到异地备份数据中心的顺序遵循递增规律设置整型编号后,则本地数据中心的出口路由器编号依次为1,2,……,c1,本地备份数据中心的出口路由器编号依次为c1+1,c1+2,……,2c1,异地备份数据中心的出口路由器编号依次为2c1+1,2c1+2,……,3c1,本地数据中心的核心交换机编号依次为3c1+1,3c1+2,……,3c1+c2,本地备份数据中心的核心交换机编号依次为3c1+c2+1,3c1+c2+2,……,3c1+2c2,异地本地备份数据中心的核心交换机编号依次为3c1+2c2+1,3c1+2c2+2,……,3c1+3c2,本地数据中心的汇聚交换机编号依次为3c1+3c2+1,3c1+3c2+2,……,3c1+3c2+c3,本地备份数据中心的汇聚交换机编号依次为3c1+3c2+c3+1,3c1+3c2+c3+2,……,3c1+3c2+2c3,异地备份数据中心的汇聚交换机编号依次为3c1+3c2+2c3+1,3c1+3c2+2c3+2,……,3c1+3c2+3c3,本地数据中心的应用服务器编号依次为3c1+3c2+3c3+1,3c1+3c2+3c3+2,……,3c1+3c2+3c3+c4,本地备份数据中心的应用服务器编号依次为3c1+3c2+3c3+c4+1,3c1+3c2+3c3+c4+2,……,3c1+3c2+3c3+2c4,异地备份数据中心的应用服务器编号依次为3c1+3c2+3c3+2c4+1,3c1+3c2+3c3+2c4+2,……,3c1+3c2+3c3+3c4,本地数据中心的存储服务器编号依次为3c1+3c2+3c3+3c4+1,3c1+3c2+3c3+3c4+2,……,3c1+3c2+3c3+3c4+c5,本地备份数据中心的存储服务器编号依次为3c1+3c2+3c3+3c4+c5+1,3c1+3c2+3c3+3c4+c5+2,……,3c1+3c2+3c3+3c4+2c5,异地备份数据中心的存储服务器编号依次为3c1+3c2+3c3+3c4++2c5+1,3c1+3c2+3c3+2c4+2c5+2,……,3c1+3c2+3c3+3c4+3c5,我们设定三个数据中心中的每个硬件层次上编号差值为本层设备个数的硬件设备拥有的完全相同的服务能力;设该系统存在m个用户节点,编号依次为3c1+3c2+3c3+3c4+3c5+1,3c1+3c2+3c3+3c4+3c5+2,……,3c1+3c2+3c3+3c4+3c5+m;设系统中包括p种应用层协议;设该系统包含n个故障对象,故障对象i的状态值表示为Ni,其中,i=1,2,……,n,且每个故障对象的状态值只有1和0两种,1表示故障对象处于正常状态,0表示故障对象处于故障状态,当故障对象1,2,……,n1的状态值均为1时候,本地数据中心可正常提供服务,否则,本地数据中心不能正常提供服务;当故障对象n1+1,n1+2,……,n1+n2的状态值均为1时候,本地备份数据中心可正常提供服务,否则,本地数据中心不能正常提供服务;当故障对象n1+n2+1,n1+n2+2,……,n1+n2+n3的状态值均为1时候,异地备份数据中心可正常提供服务,否则,异地备份数据中心不能正常提供服务,则基于两地三中心的灾备信息系统仿真方法的具体方法步骤为:
(1)根据用户设置参数user_set_product_end_time、user_set_max_packet_size和user_set_max_store_size,利用随机数生成器生成随机参数,包括:生产结束时刻product_end_time∈[0,user_set_product_end_time]、数据包大小的极限值max_packet_size∈[0,user_set_max_packet_size]、RTO极限值rto_time∈[0,product_end_time]、RPO极限值rpo_time∈[0,product_end_time]、存储服务器的存储能力max_store_size∈[0,user_set_max_store_size]、数据流发送间隔send_interval_time∈[0,product_end_time]、故障发生时刻down_time∈[0,product_end_time],故障维持时间down_period∈[0,product_end_time],故障对象i在系统初始化时刻对应的的状态N_initial_statei∈{0,1},故障对象i在故障发生时刻对应的状态N_down_statei∈{0,1},以及故障对象i在故障修复时刻对应的状态N_up_statei∈{0,1},其中,i=1,2,……,n;
(2)初始化表示本地数据中心生产的数据流个数的变量local_product_num、本地备份数据中心生产的数据流个数的变量localbackup_product_num和异地备份数据中心生产的数据流个数的变量remotebackup_product_num,初始值均为0;初始化表示当前的生产数据中心生产的数据流个数的变量temp_product_num和分别表示当前的两个备份数据中心生产的数据流个数的变量temp1_product_num、temp2_product_num,初始值均为0;初始化表示从当前两个备份数据中心切换到当前生产数据中心的数据流的目的服务器节点编号的增加值的变量id_diff_1和id_diff_2,均初始化为0;初始化表示三个数据中心各自生产的数据流的源节点编号、目的服务器节点编号、流开始时刻、流结束时刻、应用层协议编号和存储服务器编号信息的生产信息的数组变量,初始值均为0;初始化表示各存储服务器的已占空间大小的数组变量store,初始值均为0,即执行store(i1)=0,其中,i1=3c1+3c2+3c3+3c4+1,3c1+3c2+3c3+3c4+1,……,3c1+3c2+3c3+3c4+3c5;初始化系统信号为正常状态,即执行system_signal=normal;初始化所有故障对象的状态为正常,即执行Ni2=1,其中,i2=1,2,……,n;初始化表示故障修复时刻的变量up_time,即执行up_time=0;
(3)初始化所有故障对象的状态,即在系统开始运行之时执行Ni3=N_initial_statei3的操作,其中,i3=1,2,……,n;
(4)向系统注入定时的故障,即在down_time对系统中的所有故障对象执行Ni4=N_down_statei4的操作,计算故障修复时刻并向系统注入定时的故障恢复,即执行up_time=down_time+down_period,并在up_time执行Ni4=N_upi4的操作,其中,i4=1,2,……,n;
(5)获取当前执行时刻current_time,并比较current_time是否小于product_end_time,若是,则执行步骤(6);
否则,将“当前执行时刻到达生产结束时刻,仿真结束”字样写入仿真结束原因记录文件,执行步骤(37);
(6)以当前执行时刻作为流开始时刻,即执行new_flow_start_time=current_time,利用随机数生成器产生本次新数据流的随机信息,包括源节点编号new_flow_from_id∈[3c1+3c2+3c3+3c4+3c5+1,3c1+3c2+3c3+3c4+3c5+m]、目的服务器节点编号new_flow_to_id∈[3c1+3c2+3c3+1,3c1+3c2+3c3+c4]、数据流结束时刻new_flow_end_time∈[new_flow_start_time,product_end_time],以及应用层协议编号new_flow_app_app_protocol_id∈[1,p],同时系统从存储开始节点开始寻找存储节点id,满足其剩余空间max_store_size-store(id)不小于当前数据流产生的数据量的估算值,若能找到这样的id,则将节点编号i作为此次数据流的存储字段值,即执行new_flow_store_id=id,执行步骤(7);
否则,将“存储设备不足,仿真结束”写入仿真结束原因记录文件,并执行步骤(37);
(7)检测故障对象1,2,……,n1的状态,若对于
Figure BDA0000376620780000061
都有Ni5=1,则判定本地数据中心可以为用户提供服务,执行步骤(10);
否则,执行步骤(8);
(8)检测故障对象n1+1,n1+2,……,n1+n2的状态,若对于
Figure BDA0000376620780000062
Figure BDA0000376620780000071
都有Ni6=1,则判定本地备份数据中心可以为用户提供服务,执行步骤(34);否则,执行步骤(9);
(9)检测故障对象n1+n2+1,n1+n2+2,……,n的状态,若对于
Figure BDA0000376620780000072
Figure BDA0000376620780000073
都有Ni7=1,则判定异地备份数据中心可以为用户提供服务,则执行步骤(35);
否则,执行步骤(36);
(10)检测系统信号,若system_signal=bad_state或者system_signal=replace_state,则将系统信号更新为正常状态,即执行system_signal=normal_state,同时将本地数据中心更新为当前的生产数据中心,将本地备份数据中心和异地备份数据中心更新为此时的两个备份数据中心,同时更新当前的生产数据中心和备份数据中心生产的数据流的个数,即执行temp_product_num=local_product_num,temp1_product_num=localbackup_product_num,temp2_product_num=remotebackup_product_num,并设置从当前两个备份数据中心切换到当前生产数据中心的数据流的目的服务器节点编号的增加值,即执行id_diff_1=-c4,id_diff_2=-2c4,执行步骤(11);
否则,执行步骤(30);
(11)记录当前时刻current_time,并比较current_time是否小于rto_time和rpo_time,若是,则执行步骤(12);
否则,将“在RTO和RPO设置的时间内找不到数据中心作为生产数据中心为用户提供
服务,仿真结束”字样写入仿真结束原因记录文件,并执行步骤(37);
(12)进行切换数据流之前的数据有效性验证操作,即对本地数据中心、本地备份数据中心和异地备份数据中心依次执行在此数据中心的数据流信息存储文件中查找backup_or_product_flag=1的记录r1,并在另外两个数据中心的数据流信息存储文件中查找backup_or_product_flag=2且其他描述字段值均与记录r1中对应的字段值相同的记录r2,若记录r2存在,则validation_result_is_hit_num加1;
否则,执行validation_result_is_miss_num加1;
(13)将当前执行时刻current_time和验证结果validation_result_is_hit_num、validation_result_is_miss_num存储到存储验证结果的文件中,同时初始化计数器i8=0,初始化本次中心切换操作已被执行切换数据流操作的数据中心的个数been_changed_datacenter_num=1;
(14)比较i8是否小于或等于temp1_product_num,若是,则执行步骤(15);
否则,执行步骤(26);
(15)获取当前时刻current_time,并比较current_time是否小于或等于temp1_end_time(i8),若是,则执行步骤(17);
否则,执行i8加1,并执行步骤(16);
(16)检测been_changed_datacenter_num的值,若been_changed_datacenter_num值为1,则执行步骤(14);
否则,执行步骤(27);
(17)将此条数据流切换到当前生产数据中心,并建立新的传输层连接,同时从存储开始节点开始寻找存储节点id,满足其剩余空间max_store_size-store(id)不小于当前数据流产生的数据量的估算值,若能找到这样的id,则将此id选为当前被切换的数据流的存储服务器位置,执行步骤(18);
否则,将“存储设备不足,仿真结束”字样写入仿真结束原因记录文件,执行步骤(37);
(18)检测本地数据中心是否为当前生产数据中心,即比较当前生产数据中心生产的数据流访问的应用服务器编号是否小于或者等于本地数据中心应用服务器编号最大值3c1+3c2+3c3+c4,若是,确定本地数据中心为当前生产数据中心,设backup_or_product=1,获得此数据流的实时字节real_byte,此时,对数据流的描述字段均已获得,则构造一条数据流描述信息记录写入到本地数据中心的数据流信息存储文件中,同时设backup_or_product=2,构成备份信息记录写入到其他两个数据中心的数据流信息存储文件中,temp_product_num加1,执行步骤(19);否则,执行步骤(21);
(19)检测been_changed_datacenter_num的值,若been_changed_datacenter_num值为1,则确定此条被切换的数据流来自本地备份数据中心,将此被切换的数据流在本地备份数据中心的生产信息和在其他两个数据中心的备份信息中的结束时刻字段更新为当前时刻,执行i8加1,并执行步骤(16);
否则,执行步骤(20);
(20)将此被切换的数据流在异地备份中心的生产信息和在其他两个数据中心的备份信息中的结束时刻字段更新为当前时刻,执行i8加1,执行步骤(16);
(21)检测本地备份数据中心是否为当前生产数据中心,即比较当前生产数据中心生产的数据流访问的应用服务器编号是否大于本地数据中心应用服务器编号最大值3c1+3c2+3c3+c4且小于或等于本地备份数据中心应用服务器编号最大值3c1+3c2+3c3+2c4,若是,则确定本地备份数据中心为当前生产数据中心,设backup_or_product=1,获得此数据流的实时字节real_byte,此时,对数据流的描述字段均已获得,则构造一条数据流描述信息记录写入到本地备份数据中心的数据流信息存储文件中,同时设backup_or_product=2,构造备份信息记录写入到其他数据中心的数据流信息存储文件中,temp_product_num加1,执行步骤(22);
否则,异地备份数据中心为当前的生产数据中心,设backup_or_product=1,获得此数据流的实时字节real_byte,此时对数据流的描述字段均已经获得,则构造一条数据流描述信息记录写入到异地备份数据中心的数据流信息存储文件中,同时设backup_or_product=2,构造备份信息记录写入到其他数据中心的数据流信息存储文件中,temp_product_num加1,执行步骤(24);
(22)检测been_changed_datacenter_num的值,若been_changed_datacenter_num值为1,则确定此条被切换的数据流来自本地数据中心,将此被切换的数据流在本地数据中心的生产信息和在其他两个数据中心的备份信息中的结束时刻字段更新为当前时刻,执行i8加1,并执行步骤(16);;
否则,确定此条被切换的数据流来自异地备份数据中心,执行步骤(23);
(23)将此被切换的数据流在异地备份数据中心的生产信息和在其他两个数据中心的备份信息中的结束时刻字段更新为当前时刻,执行i8加1,并执行步骤(16);
(24)检测been_changed_datacenter_num的值,若been_changed_datacenter_num值为1,则确定此条被切换的数据流来自本地数据中心,将此被切换的数据流在本地数据中心的生产信息和在其他两个数据中心的备份信息中的结束时刻字段更新为当前时刻,执行i8加1,并执行步骤(16);
否则,确定此条被切换的数据流来自本地备份数据中心,执行步骤(25);
(25)将此被切换的数据流在本地备份数据中心的生产信息和在其他两个数据中心的备份信息中的结束时刻字段更新为当前时刻,执行i8加1,并执行步骤(16);
(26)将另一个数据中心的数据流切换到当前的生产数据中心,更新本次中心切换中已被执行切换数据流操作的数据中心的个数been_changed_datacenter_num=2,并执行i8=0,temp1_product_num=temp2_product_num,id_diff_1=id_diff_2;
(27)比较i8是否小于或等于temp1_product_num,若是,则执行步骤(15);
否则,数据流切换完成,更新当前数据中心的生产信息,即执行步骤(28);
(28)进行切换数据流之后的数据有效性验证操作,即对本地数据中心、本地备份数据中心和异地备份数据中心依次执行在此数据中心的数据流信息存储文件中查找backup_or_product_flag=1的记录r3,并在另外两个数据中心的数据流信息存储文件中查找backup_or_product_flag=2且其他描述字段值均与记录r3中对应的字段值相同的记录r4,若记录r4存在,则validation_result_is_hit_num加1;
否则,执行validation_result_is_miss_num加1;
(29)将当前执行时刻current_time和验证结果validation_result_is_hit_num、validation_result_is_miss_num存储到存储验证结果的文件中;
(30)根据前面步骤(6)中新产生的数据流的信息对新数据流建立传输层和应用层连接,同时记录新数据流信息,temp_product_num加1;
(31)检测本地数据中心是否为当前生产数据中心,即比较当前生产数据中心生产的数据流访问的应用服务器编号是否小于或者等于本地数据中心应用服务器编号最大值3c1+3c2+3c3+c4,若是,则确定本地数据中心为当前的生产数据中心,并更新本地数据中心的生产的数据流信息,并更新其生产数目,即执行local_product_num=temp_product_num,backup_or_product_flag(i9)=1,获得当前数据流的实时字节real_byte(i9),此时对数据流的描述字段均已经获得,则构造一条数据流描述信息记录写入到当前作为生产数据中心的数据中心的数据流信息存储文件中,同时,执行backup_or_product_flag(i9)=2,构造备份信息记录写入到其他两个数据中心的数据流信息存储文件中,其中,i9=0,1,……,local_product_num,执行步骤(5);
否则,即执行步骤(32);
(32)检测本地备份数据中心是否为当前生产数据中心比较当前生产数据中心生产的数据流访问的应用服务器编号是否大于本地数据中心应用服务器编号最大值3c1+3c2+3c3+c4且小于或等于本地备份数据中心应用服务器编号最大值3c1+3c2+3c3+2c4,若是,则确定本地备份数据中心为当前生产数据中心,更新本地备份数据中心的生产信息和其生产数目,即执行localbackup_product_num=temp_product_num,backup_or_product_flag(i10)=1,获得当前数据流的实时字节real_byte(i10),此时对数据流的描述字段均已获得,则构造一条数据流描述信息记录写入到本地数据中心的数据流信息存储文件中,同时执行backup_or_product_flag(i10)=2,构造信息记录写入到其他两个数据中心的数据流信息存储文件中,其中,i10=0,1,……,localbackup_product_num,执行步骤(5);
否则,确定异地备份数据中心为当前的生产数据中心,执行步骤(33);
(33)更新异地备份数据中心的生产信息和其生产数目,即执行remotebackup_product_num=temp_product_num,backup_or_product_flag(i11)=1,获得当前数据流的实时字节real_byte(i11),此时,对数据流的描述字段均已获得,则构造一条数据流描述信息记录写入到本地数据中心的数据流信息存储文件中,执行backup_or_product_flag(i11)=2,构造备份信息记录写入到其他两个数据中心的数据流信息存储文件中,其中,i11=0,1,……,remotebackup_product_num,执行步骤(5);
(34)检测系统信号,若system_signal=bad_state,则将系统信号更新为中心替代信号,即执行system_signal=replace_state,同时将本地备份数据中心更新为当前的生产数据中心,将本地数据中心和异地备份数据中心更新为当前的备份数据中心,同时更新当前的生产数据中心和备份数据中心生产的数据流的个数,即执行temp_(product_num)=localbackup_(product_num),temp1_product_num=localbackup_product_num,temp1_product_num=remotebackup_product_num,并设置从当前两个备份数据中心切换到当前生产数据中心的数据流的目的服务器节点编号的增加值,即执行id_diff_1=c4,id_diff_2=-c4,并执行步骤(11);
否则,执行步骤(30);
(35)检测系统信号,若system_signal=bad_state,则将系统信号更新为中心替代信号,即执行system_signal=replace_state,同时将异地备份数据中心更新为当前的生产数据中心,将本地数据中心和本地备份数据中心更新为当前的备份数据中心,同时更新当前的生产数据中心和备份数据中心生产的数据流的个数,即执行temp_product_num=remotebackup_product_num,temp1_product_num=local_product_num,temp2_product_num=localbackup_product_num,并设置从当前两个备份数据中心切换到当前生产数据中心的数据流的目的服务器节点编号的增加值,即执行id_diff_1=2c4,id_diff_2=c4,并执行步骤(11);
否则,执行步骤(30);
(36)获取当前执行时刻current_time,并将判断current_time是否小于rto_time和rpo_time,若是,则系统继续忍受,执行步骤(5);
否则,将“在RTO和RPO设置的时间内找不到数据中心作为生产数据中心为用户提供服务,仿真结束”字样写入仿真结束原因记录文件,并执行步骤(37);
(37)仿真结束;
本发明的关键在于如何搭建灾备信息系统以及实现灾备过程。为此,通过给用户提供配置接口控制搭建灾备信息系统,并通过定时注入故障发生和故障修复来实现计划性灾难的模拟,最后通过设定变量的控制,仿真实现了正常阶段的本地数据中心正常生产的过程、故障发生时切换到备用的数据中心过程、故障修复时回切到本地数据中心的过程,并在整个灾备过程中实现了详细的信息记录以及数据有效性验证操作,从而既实现了对灾备信息系统的搭建过程又实现了灾备过程的说明。
其主要创新点如下:
1.提供了充分的配置接口,可满足不同用户使用的需求。
2.提供了计划性灾难的配置接口,方便用户实现不同类型的计划性灾难的注入。
3.实现了系统高度的自动化管理,用户配置参数之后无需参数到灾备过程中。
4.提供了灾难恢复数据有效性验证的功能,实现在中心切换和回切之后自动进行数据有效性验证的过程。
5.实现备份数据和生产数据的混合存储,大大节省了存储空间;
(四)附图说明
图1、灾备信息系统架示意图
(五)具体实施方式
下面结合附图举例对本发明做更详细地描述:
本发明所述方法的特征在于:
设灾备信息系统采用两地三中心的架构,即包括本地数据中心、本地备份数据中心和异地备份数据中心,且三个数据中心的软硬件环境和网络环境完全相同,假定系统中可能发生故障的一个组成部分称为一个故障对象,在一个时刻一个故障对象可能是正常状态也可能是故障状态,当系统中的所有故障对象的状态导致本地数据中心不能正常提供服务,则称此种系统状态为系统故障状态,第一次检测到此种系统状态的时间点称为故障发生时刻,否则,称系统状态为系统正常状态;当检测到系统故障状态之后,又检测到本地数据中心可以正常提供服务,则称此种系统状态为系统修复状态,第一次检测到此种状态的时间点称为故障修复时刻,否则,称此种系统状态为系统忍受状态;正常情况下,灾备信息系统维持一个数据中心作为生产数据中心为用户提供服务,默认的生产数据中心为本地数据中心;在生产过程中,灾备信息系统存在的每个故障对象的状态时刻发生变化,影响着系统状态的改变,当第一次检测到系统状态为系统故障状态,则更新系统信号为故障状态,即执行system_signal=bad_state,此时灾备信息系统便会依次检测本地备份数据中心和异地备份数据中心,若在RTO和RPO的限制内检测到本地备份数据中心可以提供服务,则停止检测并更新系统信号为中心替代状态,即执行system_signal=replace_state,同时将数据流切换到本地备份数据中心并将本地备份数据中心作为生产数据中心使用;若在RTO和RPO的限制内检测到异地备份数据中心可以提供服务,则停止检测并更新系统信号为中心替代状态,即执行system_signal=replace_state,同时将数据流切换到异地备份数据中心,并将异地备份数据中心作为生产数据中心使用;若在RTO和RPO的限制内第一次检测系统状态为系统修复状态,更新系统信号为正常状态,即执行system_signal=normal_state,重新将数据流切回到本地数据中心并将本地数据中心作为生产数据中心使用;若到了RTO和RPO限制的时间仍找不到可用的数据中心,则系统崩溃;本系统中采用源节点编号、目的服务器节点编号、流开始时刻、流结束时刻、应用层协议编号、实时字节、存储节点编号、和标识backup_or_product_flag八个字段构成一条描述信息来描述一条数据流此刻的状态,其中,当backup_or_product_flag值为1时,表示此条描述信息描述的是当前数据中心生产的数据流的生产信息,当backup_or_product_flag值为2时,表示此条描述信息是其他数据中心生产的数据流在本中心保存的备份信息,生产过程中以被切换的数据流信息为基础新创建的连接到当前数据中心的数据流、本次生产中以随机产生的信息为基础新创建的连接到当前数据中心的数据流,以及当前数据中心中所有还未结束的数据流为描述对象,构造描述信息记录同步写入到三个数据中心的数据流信息存储文件中;当切换数据中心前后需要进行数据有效性验证操作时,即对每个数据中心生产的数据流执行查找是否其他两个数据中心均存在备份,则有效数据计数器validation_result_is_hit_num加1,否则,无效数据计数器validation_result_is_miss_num加1的操作,最后将验证时刻和验证结果构成验证结果描述信息记录写入到验证结果存储文件中,从而方便验证本系统中对零数据丢失的实现;本系统中利用公式
Figure BDA0000376620780000132
来估算一次寻找数据流的存储的操作,即若存在存储设备的剩余空间不小于本次数据流的估算值,则存储,否则,系统警报存储空间不足,系统崩溃;本系统中设置变量been_changed_datacenter_num,其值只有1和2,用来识别被切换的数据流的来源,假设当前由本地数据中心作为生产数据中心,若been_changed_datacenter_num=1,则此时被切换的数据流的来源为本地备份数据中心,否则,此时被切换的数据流的来源为异地备份数据中心;假设当前由本地备份数据中心作为生产数据中心,若been_changed_datacenter_num=1,则此时被切换的数据流的来源为本地数据中心,否则,此时被切换的数据流的来源为异地备份数据中心;假设当前由异地备份数据中心作为生产数据中心,若been_changed_datacenter_num=1,则此时被切换的数据流的来源为本地数据中心,否则,此时被切换的数据流的来源为本地备份数据中心;
设用户设置了参数包括生产结束时刻user_set_product_end_time、存储服务器的最大存储能力user_set_max_store_size和数据流发送的一个数据包的最大值user_set_max_packet_size;设系统中存在三个数据流信息存储文件用于分别存储对应的数据中心生产的数据流的信息,存在一个仿真结束原因记录文件用于存储仿真结束的原因,并且存在一个数据有效性验证结果存储文件用于存储系统中对数据进行有效性验证的结果;设灾备信息系统中每个数据中心的出口路由器层设备个数为c1,核心交换机层设备个数为c2,汇聚交换机层设备个数为c3,服务器层应用服务器设备个数为c4,服务器层存储服务器设备个数为c5,则按照从出口路由器层到核心交换层到汇聚交换机层再到服务器层的顺序,对于每一层的设备节点按照本地数据中心到本地备份数据中心再到异地备份数据中心的顺序遵循递增规律设置整型编号后,则本地数据中心的出口路由器编号依次为1,2,……,c1,本地备份数据中心的出口路由器编号依次为c1+1,c1+2,……,2c1,异地备份数据中心的出口路由器编号依次为2c1+1,2c1+2,……,3c1,本地数据中心的核心交换机编号依次为3c1+1,3c1+2,……,3c1+c2,本地备份数据中心的核心交换机编号依次为3c1+c2+1,3c1+c2+2,……,3c1+2c2,异地本地备份数据中心的核心交换机编号依次为3c1+2c2+1,3c1+2c2+2,……,3c1+3c2,本地数据中心的汇聚交换机编号依次为3c1+3c2+1,3c1+3c2+2,……,3c1+3c2+c3,本地备份数据中心的汇聚交换机编号依次为3c1+3c2+c3+1,3c1+3c2+c3+2,……,3c1+3c2+2c3,异地备份数据中心的汇聚交换机编号依次为3c1+3c2+2c3+1,3c1+3c2+2c3+2,……,3c1+3c2+3c3,本地数据中心的应用服务器编号依次为3c1+3c2+3c3+1,3c1+3c2+3c3+2,……,3c1+3c2+3c3+c4,本地备份数据中心的应用服务器编号依次为3c1+3c2+3c3+c4+1,3c1+3c2+3c3+c4+2,……,3c1+3c2+3c3+2c4,异地备份数据中心的应用服务器编号依次为3c1+3c2+3c3+2c4+1,3c1+3c2+3c3+2c4+2,……,3c1+3c2+3c3+3c4,本地数据中心的存储服务器编号依次为3c1+3c2+3c3+3c4+1,3c1+3c2+3c3+3c4+2,……,3c1+3c2+3c3+3c4+c5,本地备份数据中心的存储服务器编号依次为3c1+3c2+3c3+3c4+c5+1,3c1+3c2+3c3+3c4+c5+2,……,3c1+3c2+3c3+3c4+2c5,异地备份数据中心的存储服务器编号依次为3c1+3c2+3c3+3c4++2c5+1,3c1+3c2+3c3+2c4+2c5+2,……,3c1+3c2+3c3+3c4+3c5,我们设定三个数据中心中的每个硬件层次上编号差值为本层设备个数的硬件设备拥有的完全相同的服务能力;设该系统存在m个用户节点,编号依次为3c1+3c2+3c3+3c4+3c5+1,3c1+3c2+3c3+3c4+3c5+2,……,3c1+3c2+3c3+3c4+3c5+m;设系统中包括p种应用层协议;设该系统包含n个故障对象,故障对象i的状态值表示为Ni,其中,i=1,2,……,n,且每个故障对象的状态值只有1和0两种,1表示故障对象处于正常状态,0表示故障对象处于故障状态,当故障对象1,2,……,n1的状态值均为1时候,本地数据中心可正常提供服务,否则,本地数据中心不能正常提供服务;当故障对象n1+1,n1+2,……,n1+n2的状态值均为1时候,本地备份数据中心可正常提供服务,否则,本地数据中心不能正常提供服务;当故障对象n1+n2+1,n1+n2+2,……,n1+n2+n3的状态值均为1时候,异地备份数据中心可正常提供服务,否则,异地备份数据中心不能正常提供服务,则基于两地三中心的灾备信息系统仿真方法的具体方法步骤为:
(1)根据用户设置参数user_set_product_end_time、user_set_max_packet_size和user_set_max_store_size,利用随机数生成器生成随机参数,包括:生产结束时刻product_end_time∈[0,user_set_product_end_time]、数据包大小的极限值max_packet_size∈[0,user_set_max_packet_size]、RTO极限值rto_time∈[0,product_end_time]、RPO极限值rpo_time∈[0,product_end_time]、存储服务器的存储能力max_store_size∈[0,user_set_max_store_size]、数据流发送间隔send_interval_time∈[0,product_end_time]、故障发生时刻down_time∈[0,product_end_time],故障维持时间down_period∈[0,product_end_time],故障对象i在系统初始化时刻对应的的状态N_initial_statei∈{0,1},故障对象i在故障发生时刻对应的状态N_down_statei∈{0,1},以及故障对象i在故障修复时刻对应的状态N_up_statei∈{0,1},其中,i=1,2,……,n;
(2)初始化表示本地数据中心生产的数据流个数的变量local_product_num、本地备份数据中心生产的数据流个数的变量localbackup_product_num和异地备份数据中心生产的数据流个数的变量remotebackup_product_num,初始值均为0;初始化表示当前的生产数据中心生产的数据流个数的变量temp_product_num和分别表示当前的两个备份数据中心生产的数据流个数的变量temp1_product_num、temp2_product_num,初始值均为0;初始化表示从当前两个备份数据中心切换到当前生产数据中心的数据流的目的服务器节点编号的增加值的变量id_diff_1和id_diff_2,均初始化为0;初始化表示三个数据中心各自生产的数据流的源节点编号、目的服务器节点编号、流开始时刻、流结束时刻、应用层协议编号和存储服务器编号信息的生产信息的数组变量,初始值均为0;初始化表示各存储服务器的已占空间大小的数组变量store,初始值均为0,即执行store(i1)=0,其中,i1=3c1+3c2+3c3+3c4+1,3c1+3c2+3c3+3c4+1,……,3c1+3c2+3c3+3c4+3c5;初始化系统信号为正常状态,即执行system_signal=normal;初始化所有故障对象的状态为正常,即执行Ni2=1,其中,i2=1,2,……,n;初始化表示故障修复时刻的变量up_time,即执行up_time=0;
(3)初始化所有故障对象的状态,即在系统开始运行之时执行Ni3=N_initial_statei3的操作,其中,i3=1,2,……,n;
(4)向系统注入定时的故障,即在down_time对系统中的所有故障对象执行Ni4=N_down_statei4的操作,计算故障修复时刻并向系统注入定时的故障恢复,即执行up_time=down_time+down_period,并在up_time执行Ni4=N_upi4的操作,其中,i4=1,2,……,n;
(5)获取当前执行时刻current_time,并比较current_time是否小于product_end_time,若是,则执行步骤(6);
否则,将“当前执行时刻到达生产结束时刻,仿真结束”字样写入仿真结束原因记录文件,执行步骤(37);
(6)以当前执行时刻作为流开始时刻,即执行new_flow_start_time=current_time,利用随机数生成器产生本次新数据流的随机信息,包括源节点编号new_flow_from_id∈[3c1+3c2+3c3+3c4+3c5+1,3c1+3c2+3c3+3c4+3c5+m]、目的服务器节点编号new_flow_to_id∈[3c1+3c2+3c3+1,3c1+3c2+3c3+c4]、数据流结束时刻new_flow_end_time∈[new_flow_start_time,product_end_time],以及应用层协议编号new_flow_app_app_protocol_id∈[1,p],同时系统从存储开始节点开始寻找存储节点id,满足其剩余空间max_store_size-store(id)不小于当前数据流产生的数据量的估算值,若能找到这样的id,则将节点编号i作为此次数据流的存储字段值,即执行new_flow_store_id=id,执行步骤(7);
否则,将“存储设备不足,仿真结束”写入仿真结束原因记录文件,并执行步骤(37);
(7)检测故障对象1,2,……,n1的状态,若对于
Figure BDA0000376620780000171
都有Ni5=1,则判定本地数据中心可以为用户提供服务,执行步骤(10);
否则,执行步骤(8);
(8)检测故障对象n1+1,n1+2,……,n1+n2的状态,若对于
Figure BDA0000376620780000172
Figure BDA0000376620780000173
都有Ni6=1,则判定本地备份数据中心可以为用户提供服务,执行步骤(34);
否则,执行步骤(9);
(9)检测故障对象n1+n2+1,n1+n2+2,……,n的状态,若对于
Figure BDA0000376620780000174
Figure BDA0000376620780000175
都有Ni7=1,则判定异地备份数据中心可以为用户提供
服务,则执行步骤(35);
否则,执行步骤(36);
(10)检测系统信号,若system_signal=bad_state或者system_signal=replace_state,则将系统信号更新为正常状态,即执行system_signal=normal_state,同时将本地数据中心更新为当前的生产数据中心,将本地备份数据中心和异地备份数据中心更新为此时的两个备份数据中心,同时更新当前的生产数据中心和备份数据中心生产的数据流的个数,即执行temp_product_num=local_product_num,temp1_product_num=localbackup_product_num,temp2_product_num=remotebackup_product_num,并设置从当前两个备份数据中心切换到当前生产数据中心的数据流的目的服务器节点编号的增加值,即执行id_diff_1=-c4,id_diff_2=-2c4,执行步骤(11);
否则,执行步骤(30);
(11)记录当前时刻current_time,并比较current_time是否小于rto_time和rpo_time,若是,则执行步骤(12);否则,将“在RTO和RPO设置的时间内找不到数据中心作为生产数据中心为用户提供服务,仿真结束”字样写入仿真结束原因记录文件,并执行步骤(37);
(12)进行切换数据流之前的数据有效性验证操作,即对本地数据中心、本地备份数据中心和异地备份数据中心依次执行在此数据中心的数据流信息存储文件中查找backup_or_product_flag=1的记录r1,并在另外两个数据中心的数据流信息存储文件中查找backup_or_product_flag=2且其他描述字段值均与记录r1中对应的字段值相同的记录r2,若记录r2存在,则validation_result_is_hit_num加1;
否则,执行validation_result_is_miss_num加1;
(13)将当前执行时刻current_time和验证结果validation_result_is_hit_num、validation_result_is_miss_num存储到存储验证结果的文件中,同时初始化计数器i8=0,初始化本次中心切换操作已被执行切换数据流操作的数据中心的个数been_changed_datacenter_num=1;
(14)比较i8是否小于或等于temp1_product_num,若是,则执行步骤(15);
否则,执行步骤(26);
(15)获取当前时刻current_time,并比较current_time是否小于或等于temp1_end_time(i8),若是,则执行步骤(17);
否则,执行i8加1,并执行步骤(16);
(16)检测been_changed_datacenter_num的值,若been_changed_datacenter_num值为1,则执行步骤(14);
否则,执行步骤(27);
(17)将此条数据流切换到当前生产数据中心,并建立新的传输层连接,同时从存储开始
节点开始寻找存储节点id,满足其剩余空间max_store_size-store(id)不小于当前数据流产生的数据量的估算值,若能找到这样的id,则将此id选为当前被切换的数据流的存储服务器位置,执行步骤(18);
否则,将“存储设备不足,仿真结束”字样写入仿真结束原因记录文件,执行步骤(37);
(18)检测本地数据中心是否为当前生产数据中心,即比较当前生产数据中心生产的数据流访问的应用服务器编号是否小于或者等于本地数据中心应用服务器编号最大值3c1+3c2+3c3+c4,若是,确定本地数据中心为当前生产数据中心,设backup_or_product=1,获得此数据流的实时字节real_byte,此时,对数据流的描述字段均已获得,则构造一条数据流描述信息记录写入到本地数据中心的数据流信息存储文件中,同时设backup_or_product=2,构成备份信息记录写入到其他两个数据中心的数据流信息存储文件中,temp_product_num加1,执行步骤(19);
否则,执行步骤(21);
(19)检测been_changed_datacenter_num的值,若been_changed_datacenter_num值为1,则确定此条被切换的数据流来自本地备份数据中心,将此被切换的数据流在本地备份数据中心的生产信息和在其他两个数据中心的备份信息中的结束时刻字段更新为当前时刻,执行i8加1,并执行步骤(16);
否则,执行步骤(20);
(20)将此被切换的数据流在异地备份中心的生产信息和在其他两个数据中心的备份信息中的结束时刻字段更新为当前时刻,执行i8加1,执行步骤(16);
(21)检测本地备份数据中心是否为当前生产数据中心,即比较当前生产数据中心生产的数据流访问的应用服务器编号是否大于本地数据中心应用服务器编号最大值3c1+3c2+3c3+c4且小于或等于本地备份数据中心应用服务器编号最大值3c1+3c2+3c3+2c4,若是,则确定本地备份数据中心为当前生产数据中心,设backup_or_product=1,获得此数据流的实时字节real_byte,此时,对数据流的描述字段均已获得,则构造一条数据流描述信息记录写入到本地备份数据中心的数据流信息存储文件中,同时设backup_or_product=2,构造备份信息记录写入到其他数据中心的数据流信息存储文件中,temp_product_num加1,执行步骤(22);
否则,异地备份数据中心为当前的生产数据中心,设backup_or_product=1,获得此数据流的实时字节real_byte,此时对数据流的描述字段均已经获得,则构造一条数据流描述信息记录写入到异地备份数据中心的数据流信息存储文件中,同时设backup_or_product=2,构造备份信息记录写入到其他数据中心的数据流信息存储文件中,temp_product_num加1,执行步骤(24);
(22)检测been_changed_datacenter_num的值,若been_changed_datacenter_num值为1,则确定此条被切换的数据流来自本地数据中心,将此被切换的数据流在本地数据中心的生产信息和在其他两个数据中心的备份信息中的结束时刻字段更新为当前时刻,执行i8加1,并执行步骤(16);;
否则,确定此条被切换的数据流来自异地备份数据中心,执行步骤(23);
(23)将此被切换的数据流在异地备份数据中心的生产信息和在其他两个数据中心的备份信息中的结束时刻字段更新为当前时刻,执行i8加1,并执行步骤(16);
(24)检测been_changed_datacenter_num的值,若been_changed_datacenter_num值为1,则确定此条被切换的数据流来自本地数据中心,将此被切换的数据流在本地数据中心的生产信息和在其他两个数据中心的备份信息中的结束时刻字段更新为当前时刻,执行i8加1,并执行步骤(16);
否则,确定此条被切换的数据流来自本地备份数据中心,执行步骤(25);
(25)将此被切换的数据流在本地备份数据中心的生产信息和在其他两个数据中心的备份信息中的结束时刻字段更新为当前时刻,执行i8加1,并执行步骤(16);
(26)将另一个数据中心的数据流切换到当前的生产数据中心,更新本次中心切换中已被执行切换数据流操作的数据中心的个数been_changed_datacenter_num=2,并执行i8=0,temp1_product_num=temp2_product_num,id_diff_1=id_diff_2;
(27)比较i8是否小于或等于temp1_product_num,若是,则执行步骤(15);
否则,数据流切换完成,更新当前数据中心的生产信息,即执行步骤(28);
(28)进行切换数据流之后的数据有效性验证操作,即对本地数据中心、本地备份数据中心和异地备份数据中心依次执行在此数据中心的数据流信息存储文件中查找backup_or_product_flag=1的记录r3,并在另外两个数据中心的数据流信息存储文件中查找backup_or_product_flag=2且其他描述字段值均与记录r3中对应的字段值相同的记录r4,若记录r4存在,则validation_result_is_hit_num加1;
否则,执行validation_result_is_miss_num加1;
(29)将当前执行时刻current_time和验证结果validation_result_is_hit_num、validation_result_is_miss_num存储到存储验证结果的文件中;
(30)根据前面步骤(6)中新产生的数据流的信息对新数据流建立传输层和应用层连接,同时记录新数据流信息,temp_product_num加1;
(31)检测本地数据中心是否为当前生产数据中心,即比较当前生产数据中心生产的数据流访问的应用服务器编号是否小于或者等于本地数据中心应用服务器编号最大值3c1+3c2+3c3+c4,若是,则确定本地数据中心为当前的生产数据中心,并更新本地数据中心的生产的数据流信息,并更新其生产数目,即执行local_product_num=temp_product_num,backup_or_product_flag(i9)=1,获得当前数据流的实时字节real_byte(i9),此时对数据流的描述字段均已经获得,则构造一条数据流描述信息记录写入到当前作为生产数据中心的数据中心的数据流信息存储文件中,同时,执行backup_or_product_flag(i9)=2,构造备份信息记录写入到其他两个数据中心的数据流信息存储文件中,其中,i9=0,1,……,local_product_num,执行步骤(5);否则,即执行步骤(32);
(32)检测本地备份数据中心是否为当前生产数据中心比较当前生产数据中心生产的数据流访问的应用服务器编号是否大于本地数据中心应用服务器编号最大值3c1+3c2+3c3+c4且小于或等于本地备份数据中心应用服务器编号最大值3c1+3c2+3c3+2c4,若是,则确定本地备份数据中心为当前生产数据中心,更新本地备份数据中心的生产信息和其生产数目,即执行localbackup_product_num=temp_product_num,backup_or_product_flag(i10)=1,获得当前数据流的实时字节real_byte(i10),此时对数据流的描述字段均已获得,则构造一条数据流描述信息记录写入到本地数据中心的数据流信息存储文件中,同时执行backup_or_product_flag(i10)=2,构造信息记录写入到其他两个数据中心的数据流信息存储文件中,其中,i10=0,1,……,localbackup_product_num,执行步骤(5);
否则,确定异地备份数据中心为当前的生产数据中心,执行步骤(33);
(33)更新异地备份数据中心的生产信息和其生产数目,即执行remotebackup_product_num=temp_product_num,backup_or_product_flag(i11)=1,获得当前数据流的实时字节real_byte(i11),此时,对数据流的描述字段均已获得,则构造一条数据流描述信息记录写入到本地数据中心的数据流信息存储文件中,执行backup_or_product_flag(i11)=2,构造备份信息记录写入到其他两个数据中心的数据流信息存储文件中,其中,i11=0,1,……,remotebackup_product_num,执行步骤(5);
(34)检测系统信号,若system_signal=bad_state,则将系统信号更新为中心替代信号,即执行system_signal=replace_state,同时将本地备份数据中心更新为当前的生产数据中心,将本地数据中心和异地备份数据中心更新为当前的备份数据中心,同时更新当前的生产数据中心和备份数据中心生产的数据流的个数,即执行temp_(product_num)=localbackup_(product_num),temp1_product_num=localbackup_product_num,temp1_product_num=remotebackup_product_num,并设置从当前两个备份数据中心切换到当前生产数据中心的数据流的目的服务器节点编号的增加值,即执行id_diff_1=c4,id_diff_2=-c4,并执行步骤(11);
否则,执行步骤(30);
(35)检测系统信号,若system_signal=bad_state,则将系统信号更新为中心替代信号,即执行system_signal=replace_state,同时将异地备份数据中心更新为当前的生产数据中心,将本地数据中心和本地备份数据中心更新为当前的备份数据中心,同时更新当前的生产数据中心和备份数据中心生产的数据流的个数,即执行temp_product_num=remotebackup_product_num,temp1_product_num=local_product_num,temp2_product_num=localbackup_product_num,并设置从当前两个备份数据中心切换到当前生产数据中心的数据流的目的服务器节点编号的增加值,即执行id_diff_1=2c4,id_diff_2=c4,并执行步骤(11);
否则,执行步骤(30);
(36)获取当前执行时刻current_time,并将判断current_time是否小于rto_time和rpo_time,若是,则系统继续忍受,执行步骤(5);
否则,将“在RTO和RPO设置的时间内找不到数据中心作为生产数据中心为用户提供服务,仿真结束”字样写入仿真结束原因记录文件,并执行步骤(37);
(37)仿真结束;
其具体实施模式是这样的:
整个的仿真过程分为三个阶段,第一个阶段为文件准备阶段,具体实施方式是为用户创建配置接口文件,并写入默认的配置,同时为仿真过程中创建所需要的有存储作用、日志作用以及监控作用的文件;第二个阶段为用户设置参数阶段,用户打开第一个阶段生产的配置接口文件中按照默认配置方式修改参数值即可;第三个阶段为灾备信息系统仿真运行阶段,此过程中实现根据用户的配置搭建灾备信息系统、实现注入定时的故障发生和故障修复,并以循环实现检测数据流、故障检测、生产数据流过程的方式实现生产过程,直到运行时刻到达用户配置的生产截止时刻。
其中,检测数据流过程具体的实施方式为检测是否存在现存数据流,若检测到存在,则记录数据流的信息,若检测到不存在,跳过此过程。故障检测过程具体的实施方式为检测故障对象的状态,若检测结果是本地数据中心不能继续作为生产数据中心提供服务,则需判断是否是第一次检测到此状态,若是第一次,则发出故障信号,若不是第一次发现,则将消除故障信号并发出故障修复信号,最后需将原来的数据流切换到根据事先制定的优先级排列中优先级最高且能支持生产的数据中心,由此数据中心代替作为生产数据中心,若没有能支持生产的数据中心,则与用户设置的忍受时间相比较,若超过,则系统崩溃,仿真结束,否则,正常进行下一次的检测数据流过程;若检测结果是非本地数据中心故障且本地数据中心可以正常生产,则进行下一次的检测数据流过程。生产数据流的过程的具体实施方式为随机产生数据流的源节点编号、目的服务器节点编号、流结束时刻,应用层协议编号,以当前执行时刻为流开始时刻,并寻找到存储节点,这些信息构成数据流的相关信息,此过程记录这些信息,并通过建立传输层连接和应用层连接实现数据流的生产。

Claims (1)

1.一种基于两地三中心的灾备信息系统仿真方法,其特征在于:设灾备信息系统采用两地三中心的架构,即包括本地数据中心、本地备份数据中心和异地备份数据中心,且三个数据中心的软硬件环境和网络环境完全相同,假定系统中可能发生故障的一个组成部分称为一个故障对象,在一个时刻一个故障对象可能是正常状态也可能是故障状态,当系统中的所有故障对象的状态导致本地数据中心不能正常提供服务,则称此种系统状态为系统故障状态,第一次检测到此种系统状态的时间点称为故障发生时刻,否则,称系统状态为系统正常状态;当检测到系统故障状态之后,又检测到本地数据中心可以正常提供服务,则称此种系统状态为系统修复状态,第一次检测到此种状态的时间点称为故障修复时刻,否则,称此种系统状态为系统忍受状态;正常情况下,灾备信息系统维持一个数据中心作为生产数据中心为用户提供服务,默认的生产数据中心为本地数据中心;在生产过程中,灾备信息系统存在的每个故障对象的状态时刻发生变化,影响着系统状态的改变,当第一次检测到系统状态为系统故障状态,则更新系统信号为故障状态,即执行system_signal=bad_state,此时灾备信息系统便会依次检测本地备份数据中心和异地备份数据中心,若在RTO和RPO的限制内检测到本地备份数据中心可以提供服务,则停止检测并更新系统信号为中心替代状态,即执行system_signal=replace_state,同时将数据流切换到本地备份数据中心并将本地备份数据中心作为生产数据中心使用;若在RTO和RPO的限制内检测到异地备份数据中心可以提供服务,则停止检测并更新系统信号为中心替代状态,即执行system_signal=replace_state,同时将数据流切换到异地备份数据中心,并将异地备份数据中心作为生产数据中心使用;若在RTO和RPO的限制内第一次检测系统状态为系统修复状态,更新系统信号为正常状态,即执行system_signal=normal_state,重新将数据流切回到本地数据中心并将本地数据中心作为生产数据中心使用;若到了RTO和RPO限制的时间仍找不到可用的数据中心,则系统崩溃;本系统中采用源节点编号、目的服务器节点编号、流开始时刻、流结束时刻、应用层协议编号、实时字节、存储节点编号、和标识backup_or_product_flag八个字段构成一条描述信息来描述一条数据流此刻的状态,其中,当backup_or_product_flag值为1时,表示此条描述信息描述的是当前数据中心生产的数据流的生产信息,当backup_or_product_flag值为2时,表示此条描述信息是其他数据中心生产的数据流在本中心保存的备份信息,生产过程中以被切换的数据流信息为基础新创建的连接到当前数据中心的数据流、本次生产中以随机产生的信息为基础新创建的连接到当前数据中心的数据流,以及当前数据中心中所有还未结束的数据流为描述对象,构造描述信息记录同步写入到三个数据中心的数据流信息存储文件中;当切换数据中心前后需要进行数据有效性验证操作时,即对每个数据中心生产的数据流执行查找是否其他两个数据中心均存在备份,则有效数据计数器validation_result_is_hit_num加1,否则,无 效数据计数器validation_result_is_miss_num加1的操作,最后将验证时刻和验证结果构成验证结果描述信息记录写入到验证结果存储文件中,从而方便验证本系统中对零数据丢失的实现;本系统中利用公式
Figure FDA0000376620770000021
来估算一次寻找数据流的存储的操作,即若存在存储设备的剩余空间不小于本次数据流的估算值,则存储,否则,系统警报存储空间不足,系统崩溃;本系统中设置变量been_changed_datacenter_num,其值只有1和2,用来识别被切换的数据流的来源,假设当前由本地数据中心作为生产数据中心,若been_changed_datacenter_num=1,则此时被切换的数据流的来源为本地备份数据中心,否则,此时被切换的数据流的来源为异地备份数据中心;假设当前由本地备份数据中心作为生产数据中心,若been_changed_datacenter_num=1,则此时被切换的数据流的来源为本地数据中心,否则,此时被切换的数据流的来源为异地备份数据中心;假设当前由异地备份数据中心作为生产数据中心,若been_changed_datacenter_num=1,则此时被切换的数据流的来源为本地数据中心,否则,此时被切换的数据流的来源为本地备份数据中心; 
设用户设置了参数包括生产结束时刻user_set_product_end_time、存储服务器的最大存储能力user_set_max_store_size和数据流发送的一个数据包的最大值user_set_max_packet_size;设系统中存在三个数据流信息存储文件用于分别存储对应的数据中心生产的数据流的信息,存在一个仿真结束原因记录文件用于存储仿真结束的原因,并且存在一个数据有效性验证结果存储文件用于存储系统中对数据进行有效性验证的结果;设灾备信息系统中每个数据中心的出口路由器层设备个数为c1,核心交换机层设备个数为c2,汇聚交换机层设备个数为c3,服务器层应用服务器设备个数为c4,服务器层存储服务器设备个数为c5,则按照从出口路由器层到核心交换层到汇聚交换机层再到服务器层的顺序,对于每一层的设备节点按照本地数据中心到本地备份数据中心再到异地备份数据中心的顺序遵循递增规律设置整型编号后,则本地数据中心的出口路由器编号依次为1,2,……,c1,本地备份数据中心的出口路由器编号依次为c1+1,c1+2,……,2c1,异地备份数据中心的出口路由器编号依次为2c1+1,2c1+2,……,3c1,本地数据中心的核心交换机编号依次为3c1+1,3c1+2,……,3c1+c2,本地备份数据中心的核心交换机编号依次为3c1+c2+1,3c1+c2+2,……,3c1+2c2,异地本地备份数据中心的核心交换机编号依次为3c1+2c2+1,3c1+2c2+2,……,3c1+3c2,本地数据中心的汇聚交换机编号依次为3c1+3c2+1,3c1+ 3c2+2,……,3c1+3c2+c3,本地备份数据中心的汇聚交换机编号依次为3c1+3c2+c3+1,3c1+3c2+c3+2,……,3c1+3c2+2c3,异地备份数据中心的汇聚交换机编号依次为3c1+3c2+2c3+1,3c1+3c2+2c3+2,……,3c1+3c2+3c3,本地数据中心的应用服务器编号依次为3c1+3c2+3c3+1,3c1+3c2+3c3+2,……,3c1+3c2+3c3+c4,本地备份数据中心的应用服务器编号依次为3c1+3c2+3c3+c4+1,3c1+3c2+3c3+c4+2,……,3c1+3c2+3c3+2c4,异地备份数据中心的应用服务器编号依次为3c1+3c2+3c3+2c4+1,3c1+3c2+3c3+2c4+2,……,3c1+3c2+3c3+3c4,本地数据中心的存储服务器编号依次为3c1+3c2+3c3+3c4+1,3c1+3c2+3c3+3c4+2,……,3c1+3c2+3c3+3c4+c5,本地备份数据中心的存储服务器编号依次为3c1+3c2+3c3+3c4+c5+1,3c1+3c2+3c3+3c4+c5+2,……,3c1+3c2+3c3+3c4+2c5,异地备份数据中心的存储服务器编号依次为3c1+3c2+3c3+3c4++2c5+1,3c1+3c2+3c3+2c4+2c5+2,……,3c1+3c2+3c3+3c4+3c5,我们设定三个数据中心中的每个硬件层次上编号差值为本层设备个数的硬件设备拥有的完全相同的服务能力;设该系统存在m个用户节点,编号依次为3c1+3c2+3c3+3c4+3c5+1,3c1+3c2+3c3+3c4+3c5+2,……,3c1+3c2+3c3+3c4+3c5+m;设系统中包括p种应用层协议;设该系统包含n个故障对象,故障对象i的状态值表示为Ni,其中,i=1,2,……,n,且每个故障对象的状态值只有1和0两种,1表示故障对象处于正常状态,0表示故障对象处于故障状态,当故障对象1,2,……,n1的状态值均为1时候,本地数据中心可正常提供服务,否则,本地数据中心不能正常提供服务;当故障对象n1+1,n1+2,……,n1+n2的状态值均为1时候,本地备份数据中心可正常提供服务,否则,本地数据中心不能正常提供服务;当故障对象n1+n2+1,n1+n2+2,……,n1+n2+n3的状态值均为1时候,异地备份数据中心可正常提供服务,否则,异地备份数据中心不能正常提供服务,则基于两地三中心的灾备信息系统仿真方法的具体方法步骤为: 
(1)根据用户设置参数user_set_product_end_time、user_set_max_packet_size和user_set_max_store_size,利用随机数生成器生成随机参数,包括:生产结束时刻 product_end_time∈[0,user_set_product_end_time]、数据包大小的极限值max_packet_size∈[0,user_set_max_packet_size]、RTO极限值rto_time∈[0,product_end_time]、RPO极限值rpo_time∈[0,product_end_time]、存储服务器的存储能力max_store_size∈[0,user_set_max_store_size]、数据流发送间隔send_interval_time∈[0,product_end_time]、故障发生时刻down_time∈[0,product_end_time],故障维持时间down_period∈[0,product_end_time],故障对象i在系统初始化时刻对应的的状态N_initial_statei∈{0,1},故障对象i在故障发生时刻对应的状态N_down_statei∈{0,1},以及故障对象i在故障修复时刻对应的状态N_up_statei∈{0,1},其中,i=1,2,……,n; 
(2)初始化表示本地数据中心生产的数据流个数的变量local_product_num、本地备份数据中心生产的数据流个数的变量localbackup_product_num和异地备份数据中心生产的数据流个数的变量remotebackup_product_num,初始值均为0;初始化表示当前的生产数据中心生产的数据流个数的变量temp_product_num和分别表示当前的两个备份数据中心生产的数据流个数的变量temp1_product_num、temp2_product_num,初始值均为0;初始化表示从当前两个备份数据中心切换到当前生产数据中心的数据流的目的服务器节点编号的增加值的变量id_diff_1和id_diff_2,均初始化为0;初始化表示三个数据中心各自生产的数据流的源节点编号、目的服务器节点编号、流开始时刻、流结束时刻、应用层协议编号和存储服务器编号信息的生产信息的数组变量,初始值均为0;初始化表示各存储服务器的已占空间大小的数组变量store,初始值均为0,即执行store(i1)=0,其中,i1=3c1+3c2+3c3+3c4+1,3c1+3c2+3c3+3c4+1,……,3c1+3c2+3c3+3c4+3c5;初始化系统信号为正常状态,即执行system_signal=normal;初始化所有故障对象的状态为正常,即执行Ni2=1,其中,i2=1,2,……,n;初始化表示故障修复时刻的变量up_time,即执行up_time=0; 
(3)初始化所有故障对象的状态,即在系统开始运行之时执行Ni3=N_initial_statei3的操作,其中,i3=1,2,……,n; 
(4)向系统注入定时的故障,即在down_time对系统中的所有故障对象执行Ni4= N_down_statei4的操作,计算故障修复时刻并向系统注入定时的故障恢复,即执行up_time=down_time+down_period,并在up_time执行Ni4=N_upi4的操作,其中,i4=1,2,……,n; 
(5)获取当前执行时刻current_time,并比较current_time是否小于product_end_time,若是,则执行步骤(6); 
否则,将“当前执行时刻到达生产结束时刻,仿真结束”字样写入仿真结束原因记录文件,执行步骤(37); 
(6)以当前执行时刻作为流开始时刻,即执行new_flow_start_time=current_time,利用随机数生成器产生本次新数据流的随机信息,包括源节点编号new_flow_from_id∈[3c1+3c2+3c3+3c4+3c5+1,3c1+3c2+3c3+3c4+3c5+m]、目的服务器节点编号new_flow_to_id∈[3c1+3c2+3c3+1,3c1+3c2+3c3+c4]、数据流结束时刻new_flow_end_time∈[new_flow_start_time,product_end_time],以及应用层协议编号new_flow_app_app_protocol_id∈[1,p],同时系统从存储开始节点开始寻找存储节点id,满足其剩余空间max_store_size-store(id)不小于当前数据流产生的数据量的估算值,若能找到这样的id,则将节点编号i作为此次数据流的存储字段值,即执行new_flow_store_id=id,执行步骤(7); 
否则,将“存储设备不足,仿真结束”写入仿真结束原因记录文件,并执行步骤(37); 
(7)检测故障对象1,2,……,n1的状态,若对于
Figure FDA0000376620770000051
都有Ni5=1,则判定本地数据中心可以为用户提供服务,执行步骤(10);否则,执行步骤(8); 
(8)检测故障对象n1+1,n1+2,……,n1+n2的状态,若对于
Figure FDA0000376620770000052
Figure FDA0000376620770000053
都有Ni6=1,则判定本地备份数据中心可以为用户提供服务,执行步骤(34);否则,执行步骤(9); 
(9)检测故障对象n1+n2+1,n1+n2+2,……,n的状态,若对于
Figure FDA0000376620770000054
Figure FDA0000376620770000055
都有Ni7=1,则判定异地备份数据中心可以为用户提供服务,则执行步骤(35); 
否则,执行步骤(36); 
(10)检测系统信号,若system_signal=bad_state或者system_signal=replace_state,则将系统信号更新为正常状态,即执行system_signal=normal_state,同时将本地数据中心更新为当前的生产数据中心,将本地备份数据中心和异地备份数据中心更新为此时的两个备份数据中心,同时更新当前的生产数据中心和备份数据中心生产的数据流的个数,即执行temp_product_num=local_product_num,temp1_product_num=localbackup_product_num,temp2_product_num=remotebackup_product_num,并设置从当前两个备份数据中心切换到当前生产数据中心的数据流的目的服务器节点编号的增加值,即执行id_diff_1=-c4,id_diff_2=-2c4,执行步骤(11); 
否则,执行步骤(30); 
(11)记录当前时刻current_time,并比较current_time是否小于rto_time和rpo_time,若是,则执行步骤(12); 
否则,将“在RTO和RPO设置的时间内找不到数据中心作为生产数据中心为用户提供服务,仿真结束”字样写入仿真结束原因记录文件,并执行步骤(37); 
(12)进行切换数据流之前的数据有效性验证操作,即对本地数据中心、本地备份数据中心和异地备份数据中心依次执行在此数据中心的数据流信息存储文件中查找backup_or_product_flag=1的记录r1,并在另外两个数据中心的数据流信息存储文件中查找backup_or_product_flag=2且其他描述字段值均与记录r1中对应的字段值相同的记录r2,若记录r2存在,则validation_result_is_hit_num加1; 
否则,执行validation_result_is_miss_num加1; 
(13)将当前执行时刻current_time和验证结果validation_result_is_hit_num、validation_result_is_miss_num存储到存储验证结果的文件中,同时初始化计数器i8=0,初始化本次中心切换操作已被执行切换数据流操作的数据中心的个数been_changed_datacenter_num=1; 
(14)比较i8是否小于或等于temp1_product_num,若是,则执行步骤(15); 
否则,执行步骤(26); 
(15)获取当前时刻current_time,并比较current_time是否小于或等于temp1_end_time(i8),若是,则执行步骤(17); 
否则,执行i8加1,并执行步骤(16); 
(16)检测been_changed_datacenter_num的值,若been_changed_datacenter_num值为1,则执行步骤(14); 
否则,执行步骤(27); 
(17)将此条数据流切换到当前生产数据中心,并建立新的传输层连接,同时从存储开始节点开始寻找存储节点id,满足其剩余空间max_store_size-store(id)不小于当前数据流产生的数据量的估算值,若能找到这样的id,则将此id选为当前被切换的数据流的存储服务器位置,执行步骤(18); 
否则,将“存储设备不足,仿真结束”字样写入仿真结束原因记录文件,执行步骤(37); 
(18)检测本地数据中心是否为当前生产数据中心,即比较当前生产数据中心生产的数据流访问的应用服务器编号是否小于或者等于本地数据中心应用服务器编号最大值3c1+3c2+3c3+c4,若是,确定本地数据中心为当前生产数据中心,设backup_or_product=1,获得此数据流的实时字节real_byte,此时,对数据流的描述字段均已获得,则构造一条数据流描述信息记录写入到本地数据中心的数据流信息存储文件中,同时设backup_or_product=2,构成备份信息记录写入到其他两个数据中心的数据流信息存储文件中,temp_product_num加1,执行步骤(19); 
否则,执行步骤(21); 
(19)检测been_changed_datacenter_num的值,若been_changed_datacenter_num值为1,则确定此条被切换的数据流来自本地备份数据中心,将此被切换的数据流在本地备份数据中心的生产信息和在其他两个数据中心的备份信息中的结束时刻字段更新为当前时刻,执行i8加1,并执行步骤(16); 
否则,执行步骤(20); 
(20)将此被切换的数据流在异地备份中心的生产信息和在其他两个数据中心的备份信息中的结束时刻字段更新为当前时刻,执行i8加1,执行步骤(16); 
(21)检测本地备份数据中心是否为当前生产数据中心,即比较当前生产数据中心生产的数据流访问的应用服务器编号是否大于本地数据中心应用服务器编号最大值3c1+3c2+3c3+c4且小于或等于本地备份数据中心应用服务器编号最大值3c1+3c2+3c3+2c4,若是,则确定本地备份数据中心为当前生产数据中心,设backup_or_product=1,获得此数据流的实时字节real_byte,此时,对数据流的描述字段均已获得,则构造一条数据流描述信息记录写入到本地备份数据中心的数据流信息存储文件中,同时设backup_or_product=2,构造备份信息记录写入到其他数据中心的数据流信息存储文件中,temp_product_num加1,执行步骤(22); 
否则,异地备份数据中心为当前的生产数据中心,设backup_or_product=1,获得此数据流的实时字节real_byte,此时对数据流的描述字段均已经获得,则构造一条数据流描述信息记录写入到异地备份数据中心的数据流信息存储文件中,同时设 backup_or_product=2,构造备份信息记录写入到其他数据中心的数据流信息存储文件中,temp_product_num加1,执行步骤(24); 
(22)检测been_changed_datacenter_num的值,若been_changed_datacenter_num值为1,则确定此条被切换的数据流来自本地数据中心,将此被切换的数据流在本地数据中心的生产信息和在其他两个数据中心的备份信息中的结束时刻字段更新为当前时刻,执行i8加1,并执行步骤(16);; 
否则,确定此条被切换的数据流来自异地备份数据中心,执行步骤(23); 
(23)将此被切换的数据流在异地备份数据中心的生产信息和在其他两个数据中心的备份信息中的结束时刻字段更新为当前时刻,执行i8加1,并执行步骤(16); 
(24)检测been_changed_datacenter_num的值,若been_changed_datacenter_num值为1,则确定此条被切换的数据流来自本地数据中心,将此被切换的数据流在本地数据中心的生产信息和在其他两个数据中心的备份信息中的结束时刻字段更新为当前时刻,执行i8加1,并执行步骤(16); 
否则,确定此条被切换的数据流来自本地备份数据中心,执行步骤(25); 
(25)将此被切换的数据流在本地备份数据中心的生产信息和在其他两个数据中心的备份信息中的结束时刻字段更新为当前时刻,执行i8加1,并执行步骤(16); 
(26)将另一个数据中心的数据流切换到当前的生产数据中心,更新本次中心切换中已被执行切换数据流操作的数据中心的个数been_changed_datacenter_num=2,并执行i8=0,temp1_product_num=temp2_product_num,id_diff_1=id_diff_2; 
(27)比较i8是否小于或等于temp1_product_num,若是,则执行步骤(15); 
否则,数据流切换完成,更新当前数据中心的生产信息,即执行步骤(28); 
(28)进行切换数据流之后的数据有效性验证操作,即对本地数据中心、本地备份数据中心和异地备份数据中心依次执行在此数据中心的数据流信息存储文件中查找backup_or_product_flag=1的记录r3,并在另外两个数据中心的数据流信息存储文件中查找backup_or_product_flag=2且其他描述字段值均与记录r3中对应的字段值相同的记录r4,若记录r4存在,则validation_result_is_hit_num加1; 
否则,执行validation_result_is_miss_num加1; 
(29)将当前执行时刻current_time和验证结果validation_result_is_hit_num、validation_result_is_miss_num存储到存储验证结果的文件中; 
(30)根据前面步骤(6)中新产生的数据流的信息对新数据流建立传输层和应用层连接,同 时记录新数据流信息,temp_product_num加1; 
(31)检测本地数据中心是否为当前生产数据中心,即比较当前生产数据中心生产的数据流访问的应用服务器编号是否小于或者等于本地数据中心应用服务器编号最大值3c1+3c2+3c3+c4,若是,则确定本地数据中心为当前的生产数据中心,并更新本地数据中心的生产的数据流信息,并更新其生产数目,即执行local_product_num=temp_product_num,backup_or_product_flag(i9)=1,获得当前数据流的实时字节real_byte(i9),此时对数据流的描述字段均已经获得,则构造一条数据流描述信息记录写入到当前作为生产数据中心的数据中心的数据流信息存储文件中,同时,执行backup_or_product_flag(i9)=2,构造备份信息记录写入到其他两个数据中心的数据流信息存储文件中,其中,i9=0,1,……,local_product_num,执行步骤(5); 
否则,即执行步骤(32); 
(32)检测本地备份数据中心是否为当前生产数据中心比较当前生产数据中心生产的数据流访问的应用服务器编号是否大于本地数据中心应用服务器编号最大值3c1+3c2+3c3+c4且小于或等于本地备份数据中心应用服务器编号最大值3c1+3c2+3c3+2c4,若是,则确定本地备份数据中心为当前生产数据中心,更新本地备份数据中心的生产信息和其生产数目,即执行localbackup_product_num=temp_product_num,backup_or_product_flag(i10)=1,获得当前数据流的实时字节real_byte(i10),此时对数据流的描述字段均已获得,则构造一条数据流描述信息记录写入到本地数据中心的数据流信息存储文件中,同时执行backup_or_product_flag(i10)=2,构造信息记录写入到其他两个数据中心的数据流信息存储文件中,其中,i10=0,1,……,localbackup_product_num,执行步骤(5); 
否则,确定异地备份数据中心为当前的生产数据中心,执行步骤(33); 
(33)更新异地备份数据中心的生产信息和其生产数目,即执行remotebackup_product_num=temp_product_num,backup_or_product_flag(i11)=1,获得当前数据流的实时字节real_byte(i11),此时,对数据流的描述字段均已获得,则构造一条数据流描述信息记录写入到本地数据中心的数据流信息存储文件中,执行backup_or_product_flag(i11)=2,构造备份信息记录写入到其他两个数据中心的数据流信息存储文件中,其中,i11=0,1,……,remotebackup_product_num,执行步骤(5); 
(34)检测系统信号,若system_signal=bad_state,则将系统信号更新为中心替代信号, 即执行system_signal=replace_state,同时将本地备份数据中心更新为当前的生产数据中心,将本地数据中心和异地备份数据中心更新为当前的备份数据中心,同时更新当前的生产数据中心和备份数据中心生产的数据流的个数,即执行temp_(product_num)=localbackup_(product_num),temp1_product_num=localbackup_product_num,temp1_product_num=remotebackup_product_num,并设置从当前两个备份数据中心切换到当前生产数据中心的数据流的目的服务器节点编号的增加值,即执行id_diff_1=c4,id_diff_2=-c4,并执行步骤(11); 
否则,执行步骤(30); 
(35)检测系统信号,若system_signal=bad_state,则将系统信号更新为中心替代信号,即执行system_signal=replace_state,同时将异地备份数据中心更新为当前的生产数据中心,将本地数据中心和本地备份数据中心更新为当前的备份数据中心,同时更新当前的生产数据中心和备份数据中心生产的数据流的个数,即执行temp_product_num=remotebackup_product_num,temp1_product_num=local_product_num,temp2_product_num=localbackup_product_num,并设置从当前两个备份数据中心切换到当前生产数据中心的数据流的目的服务器节点编号的增加值,即执行id_diff_1=2c4,id_diff_2=c4,并执行步骤(11);否则,执行步骤(30); 
(36)获取当前执行时刻current_time,并将判断current_time是否小于rto_time和rpo_time,若是,则系统继续忍受,执行步骤(5); 
否则,将“在RTO和RPO设置的时间内找不到数据中心作为生产数据中心为用户提供服务,仿真结束”字样写入仿真结束原因记录文件,并执行步骤(37); 
(37)仿真结束。 
CN201310396291.6A 2013-09-03 2013-09-03 一种基于两地三中心的灾备信息系统仿真方法 Expired - Fee Related CN103473112B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310396291.6A CN103473112B (zh) 2013-09-03 2013-09-03 一种基于两地三中心的灾备信息系统仿真方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310396291.6A CN103473112B (zh) 2013-09-03 2013-09-03 一种基于两地三中心的灾备信息系统仿真方法

Publications (2)

Publication Number Publication Date
CN103473112A true CN103473112A (zh) 2013-12-25
CN103473112B CN103473112B (zh) 2016-03-30

Family

ID=49797981

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310396291.6A Expired - Fee Related CN103473112B (zh) 2013-09-03 2013-09-03 一种基于两地三中心的灾备信息系统仿真方法

Country Status (1)

Country Link
CN (1) CN103473112B (zh)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104461789A (zh) * 2014-12-30 2015-03-25 华夏银行股份有限公司 一种实现灾备系统主备切换的控制方法和系统
CN104850471A (zh) * 2015-05-12 2015-08-19 浪潮电子信息产业股份有限公司 一种基于安腾平台下实现db2数据库两地三中心的方法
CN105630634A (zh) * 2015-12-28 2016-06-01 中国民生银行股份有限公司 应用系统灾备切换方法和装置
CN105653401A (zh) * 2015-12-28 2016-06-08 中国民生银行股份有限公司 应用系统灾备、运维、监控和应急启停调度方法及装置
CN106487486A (zh) * 2016-10-18 2017-03-08 泰康保险集团股份有限公司 业务处理方法和数据中心系统
CN107291575A (zh) * 2016-03-31 2017-10-24 阿里巴巴集团控股有限公司 一种数据中心故障时的处理方法和设备
CN109062735A (zh) * 2018-08-02 2018-12-21 郑州云海信息技术有限公司 一种存储系统的容灾方法、存储系统和相关装置
CN111190769A (zh) * 2019-12-27 2020-05-22 柏科数据技术(深圳)股份有限公司 一种用于自动演练的灾备技术
CN111580929A (zh) * 2020-05-07 2020-08-25 上海英方软件股份有限公司 一种基于虚拟机保护数据的有效性验证系统及方法
CN112015590A (zh) * 2020-07-15 2020-12-01 北京淇瑀信息科技有限公司 一种多层级灾备方法、装置及电子设备
CN114679376A (zh) * 2022-02-22 2022-06-28 兴业证券股份有限公司 一种多数据中心灾备方法和系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101183606A (zh) * 2007-10-15 2008-05-21 华中科技大学 电子式电流互感器
US20080148097A1 (en) * 2004-12-06 2008-06-19 Johnson R Brent Data center virtual tape off-site disaster recovery planning and implementation system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080148097A1 (en) * 2004-12-06 2008-06-19 Johnson R Brent Data center virtual tape off-site disaster recovery planning and implementation system
CN101183606A (zh) * 2007-10-15 2008-05-21 华中科技大学 电子式电流互感器

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
李小庆: "面向"两地三中心"的银行灾备系统设计及实现", 《华南金融电脑》, no. 9, 10 September 2010 (2010-09-10), pages 60 - 63 *
李淑凤: "中国建设银行核心业务容灾备份系统的研究与实践", 《中国优秀硕士学位论文全文数据库 信息科技辑》, no. 20122, 15 February 2012 (2012-02-15), pages 138 - 120 *
杨钧: "中国人寿的灾难恢复系统的分析和建设", 《中国优秀硕士学位论文全文数据库 信息科技辑》, no. 201003, 15 March 2010 (2010-03-15), pages 138 - 50 *
胡勇等: "容灾备份技术架构浅析", 《电子政务》, no. 9, 30 September 2006 (2006-09-30) *

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104461789A (zh) * 2014-12-30 2015-03-25 华夏银行股份有限公司 一种实现灾备系统主备切换的控制方法和系统
CN104850471A (zh) * 2015-05-12 2015-08-19 浪潮电子信息产业股份有限公司 一种基于安腾平台下实现db2数据库两地三中心的方法
CN105630634B (zh) * 2015-12-28 2018-09-14 中国民生银行股份有限公司 应用系统灾备切换方法和装置
CN105630634A (zh) * 2015-12-28 2016-06-01 中国民生银行股份有限公司 应用系统灾备切换方法和装置
CN105653401A (zh) * 2015-12-28 2016-06-08 中国民生银行股份有限公司 应用系统灾备、运维、监控和应急启停调度方法及装置
CN105653401B (zh) * 2015-12-28 2018-12-21 中国民生银行股份有限公司 应用系统灾备、运维、监控和应急启停调度方法及装置
CN107291575B (zh) * 2016-03-31 2020-10-16 阿里巴巴集团控股有限公司 一种数据中心故障时的处理方法和设备
CN107291575A (zh) * 2016-03-31 2017-10-24 阿里巴巴集团控股有限公司 一种数据中心故障时的处理方法和设备
CN106487486B (zh) * 2016-10-18 2019-12-10 泰康保险集团股份有限公司 业务处理方法和数据中心系统
CN106487486A (zh) * 2016-10-18 2017-03-08 泰康保险集团股份有限公司 业务处理方法和数据中心系统
CN109062735A (zh) * 2018-08-02 2018-12-21 郑州云海信息技术有限公司 一种存储系统的容灾方法、存储系统和相关装置
CN109062735B (zh) * 2018-08-02 2022-04-26 郑州云海信息技术有限公司 一种存储系统的容灾方法、存储系统和相关装置
CN111190769A (zh) * 2019-12-27 2020-05-22 柏科数据技术(深圳)股份有限公司 一种用于自动演练的灾备技术
CN111580929A (zh) * 2020-05-07 2020-08-25 上海英方软件股份有限公司 一种基于虚拟机保护数据的有效性验证系统及方法
CN112015590A (zh) * 2020-07-15 2020-12-01 北京淇瑀信息科技有限公司 一种多层级灾备方法、装置及电子设备
CN112015590B (zh) * 2020-07-15 2023-11-14 北京淇瑀信息科技有限公司 一种多层级灾备方法、装置及电子设备
CN114679376A (zh) * 2022-02-22 2022-06-28 兴业证券股份有限公司 一种多数据中心灾备方法和系统

Also Published As

Publication number Publication date
CN103473112B (zh) 2016-03-30

Similar Documents

Publication Publication Date Title
CN103473112A (zh) 一种基于两地三中心的灾备信息系统仿真方法
CN106503308B (zh) 一种基于uvm的can控制器ip验证平台
CN104734878B (zh) 软件定义联网灾难恢复的方法和系统
CN107810487A (zh) 部分地重新配置加速组件
CN104794028B (zh) 一种容灾处理方法、装置、主用数据中心和备用数据中心
CN104937892A (zh) 多节点虚拟交换系统
CN109981279B (zh) 一种区块链系统、通信方法、装置、设备及介质
CN103441861B (zh) 一种数据记录生成方法及装置
CN113206763A (zh) 一种适应于物联管理平台的仿真测试系统及方法
CN105677506B (zh) 一种磁盘阵列备份方法、电子设备及磁盘阵列
CN110855457B (zh) 生成网络模型以及配置网络的方法、设备
CN109445837A (zh) 一种应用程序的发布方法及设备
CN103220192A (zh) 一种对交换机配置的测试方法
CN104077199A (zh) 基于共享磁盘的高可用集群的隔离方法和系统
CN109995639A (zh) 一种数据传输方法、装置、交换机及存储介质
CN107113191A (zh) 数据中心结构网络中的内联数据包追踪
CN103516824B (zh) 基于ip层的网络拓扑识别方法和设备
CN105095103A (zh) 用于云环境下的存储设备管理方法和装置
CN109582524A (zh) 一种测试方法、系统及电子设备和存储介质
CN105391601A (zh) 一种网管设备的性能测试方法及系统
CN107637017A (zh) 用于ied的自动配置的方法
CN108712308A (zh) 虚拟网络中检测网络设备的方法和装置
CN109039959A (zh) 一种sdn网络规则的一致性判断方法及相关装置
CN106130897A (zh) 基于路由模拟的性能优化方法
CN109379239A (zh) 一种OpenStack环境中配置接入交换机的方法及装置

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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20160330

Termination date: 20160903

CF01 Termination of patent right due to non-payment of annual fee