CN112737844A - 冗余系统中主备切换的方法和装置 - Google Patents
冗余系统中主备切换的方法和装置 Download PDFInfo
- Publication number
- CN112737844A CN112737844A CN202011597030.7A CN202011597030A CN112737844A CN 112737844 A CN112737844 A CN 112737844A CN 202011597030 A CN202011597030 A CN 202011597030A CN 112737844 A CN112737844 A CN 112737844A
- Authority
- CN
- China
- Prior art keywords
- server
- address
- main
- standby
- switching
- 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 66
- 230000003993 interaction Effects 0.000 claims abstract description 36
- 238000004590 computer program Methods 0.000 claims description 11
- 230000004044 response Effects 0.000 claims description 8
- 238000001514 detection method Methods 0.000 claims description 6
- 230000008569 process Effects 0.000 description 20
- 230000009471 action Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/0654—Management of faults, events, alarms or notifications using network fault recovery
- H04L41/0663—Performing the actions predefined by failover planning, e.g. switching to standby network elements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0805—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/50—Address allocation
- H04L61/5007—Internet protocol [IP] addresses
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Environmental & Geological Engineering (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Hardware Redundancy (AREA)
Abstract
本申请提供一种冗余系统中主备切换的方法和装置,应用于第一服务器,方法包括:当主备状态为备用状态,且需要执行主备切换时,将第一服务器的主备状态设置为主用状态;判断第一服务器的IP地址是否为主用IP地址;若不是主用IP地址,进入切换准备模式,在该模式下丢弃收到网络数据包;将第一服务器的IP地址配置为地址协议栈中记录的主用IP地址,退出切换准备模式,与访问主用IP地址的客户端交互。通过重置切换至主用状态服务器的IP地址,每个服务器都以主用IP地址和客户端交互,发生主备切换后,客户端可以继续访问主用IP地址,无需重新查找并指定新IP地址,从而解决主备切换导致的数据交互效率降低问题。
Description
技术领域
本发明涉及网络技术领域,特别涉及一种冗余系统中主备切换的方法和装置。
背景技术
冗余系统,是指采用了冗余架构的计算机系统。冗余系统由多个具有相同功能的服务器组成,其中一个服务器作为主用服务器,其他服务器作为备用服务器,当主用服务器发生故障时,备用服务器可以代替主用服务器继续对客户端提供服务,这一过程称为冗余系统的主备切换。
现有的冗余系统中,每个服务器都配置有自身固定IP地址(称为固化IP地址,一般保存在该服务器的存储介质中),当备用服务器代替主用服务器提供服务时,备用服务器会直接使用自身的固化IP地址接入网络。
而客户端在和服务器交互时,必须指定一个或两个IP地址并且只能访问指定的IP地址,若发生主备切换后,切换为主用的备用服务器的固化IP地址不在客户端指定的IP地址的范围内时,客户端就需要重新查找并指定新的IP地址,使得客户端和冗余系统的数据交互效率降低。
发明内容
基于上述现有技术的缺点,本申请实施例提供一种冗余系统中主备切换的方法和装置,以解决主备导致的数据交互效率降低的问题。
本申请提供一种冗余系统中主备切换的方法,应用于第一服务器,所述第一服务器为所述冗余系统的任意一台服务器,所述方法包括:
当所述第一服务器的主备状态为备用状态时,实时检测所述第一服务器是否需要执行主备切换,直至检测出所述第一服务器需要执行主备切换为止;
若检测出所述第一服务器需要执行主备切换,将所述第一服务器的主备状态设置为主用状态;
判断所述第一服务器的IP地址是否为预设的主用IP地址;
若所述第一服务器的IP地址不是所述主用IP地址,进入切换准备模式,并在所述切换准备模式下丢弃每一个向所述第一服务器发送的网络数据包;
从预先构建的地址协议栈中读取所述主用IP地址,并将所述第一服务器的IP地址配置为所述主用IP地址;
退出切换准备模式,并与访问所述主用IP地址的客户端进行网络数据交互。
可选的,所述实时检测所述第一服务器是否需要执行主备切换,包括:
实时检测第二服务器是否发生故障;其中,所述第二服务器是所述冗余系统中除所述第一服务器以外的另一台服务器,且所述第二服务器的主备状态为主用状态;
当检测出所述第二服务器发生故障时,在预设的切换时长内实时检测所述第二服务器的故障是否被修复;
若所述切换时长结束时,所述第二服务器的故障未被修复,确定所述第一服务器需要执行主备切换。
可选的,所述方法还包括:
当所述第一服务器的主备状态为主用状态时,实时检测所述第一服务器是否发生故障;
当检测出所述第一服务器发生故障时,在预设的切换时长内实时检测所述第一服务器的故障是否修复;
若所述切换时长结束时,所述第一服务器的故障未被修复,将所述第一服务器的主备状态设置为备用状态,并将所述第一服务器的IP地址配置为备用IP地址。
可选的,所述当所述第一服务器的主备状态为备用状态时,实时检测所述第一服务器是否需要执行主备切换之前,还包括:
在所述第一服务器启动时,将所述第一服务器的IP地址配置为固化IP地址;其中,所述固化IP地址是所述第一服务器的存储器中预先存储的IP地址;
检测其他服务器是否启动;其中,所述其他服务器指代所述冗余系统中除所述第一服务器以外的服务器;
若存在已启动的所述其他服务器,利用所述其他服务器中主备状态为主用状态的服务器的组态信息,配置所述第一服务器的组态;其中,所述第一服务器的组态包括所述第一服务器的配置项和待运行计算机程序;
若不存在已启动的所述其他服务器,利用固化组态信息配置所述第一服务器的组态;其中,所述固化组态信息指代所述第一服务器的存储器中预先存储的组态信息。
可选的,所述与访问所述主用IP地址的客户端进行网络数据交互,包括:
接收客户端向所述主用IP地址发送的网络连接请求;
向所述客户端反馈网络连接响应信号,使所述客户端复位;
与所述客户端建立网络链接,并基于所述网络链接和所述客户端进行网络数据交互。
本申请还提供一种冗余系统中主备切换的装置,应用于第一服务器,所述第一服务器为所述冗余系统的任意一台服务器,所述装置包括:
检测单元,用于当所述第一服务器的主备状态为备用状态时,实时检测所述第一服务器是否需要执行主备切换,直至检测出所述第一服务器需要执行主备切换为止;
设置单元,用于若检测出所述第一服务器需要执行主备切换,将所述第一服务器的主备状态设置为主用状态;
判断单元,用于判断所述第一服务器的IP地址是否为预设的主用IP地址;
控制单元,用于若所述第一服务器的IP地址不是所述主用IP地址,进入切换准备模式,并在所述切换准备模式下丢弃每一个向所述第一服务器发送的网络数据包;
配置单元,用于从预先构建的地址协议栈中读取所述主用IP地址,并将所述第一服务器的IP地址配置为所述主用IP地址;
交互单元,用于退出所述切换准备模式,并与访问所述主用IP地址的客户端进行网络数据交互。
可选的,所述检测单元实时检测所述第一服务器是否需要执行主备切换,包括:
实时检测第二服务器是否发生故障;其中,所述第二服务器是所述冗余系统中除所述第一服务器以外的另一台服务器,且所述第二服务器的主备状态为主用状态;
当检测出所述第二服务器发生故障时,在预设的切换时长内实时检测所述第二服务器的故障是否被修复;
若所述切换时长结束时,所述第二服务器的故障未被修复,确定所述第一服务器需要执行主备切换。
可选的,所述检测单元还用于:
当所述第一服务器的主备状态为主用状态时,实时检测所述第一服务器是否发生故障;
当检测出所述第一服务器发生故障时,在预设的切换时长内实时检测所述第一服务器的故障是否修复;
所述设置单元还用于,若所述切换时长结束时,所述第一服务器的故障未被修复,将所述第一服务器的主备状态设置为备用状态;
所述配置单元还用于,若所述切换时长结束时,所述第一服务器的故障未被修复,将所述第一服务器的IP地址配置为备用IP地址。
可选的,所述配置单元还用于,在所述第一服务器启动时,将所述第一服务器的IP地址配置为固化IP地址;其中,所述固化IP地址是所述第一服务器的存储器中预先存储的IP地址;
所述检测单元还用于,检测其他服务器是否启动;其中,所述其他服务器指代所述冗余系统中除所述第一服务器以外的服务器;
所述配置单元还用于:
若存在已启动的所述其他服务器,利用所述其他服务器中主备状态为主用状态的服务器的组态信息,配置所述第一服务器的组态;其中,所述第一服务器的组态包括所述第一服务器的配置项和待运行计算机程序;
若不存在已启动的所述其他服务器,利用固化组态信息配置所述第一服务器的组态;其中,所述固化组态信息指代所述第一服务器的存储器中预先存储的组态信息。
可选的,所述交互单元与访问所述主用IP地址的客户端进行网络数据交互时,具体用于:
接收客户端向所述主用IP地址发送的网络连接请求;
向所述客户端反馈网络连接响应信号,使所述客户端复位;
与所述客户端建立网络链接,并基于所述网络链接和所述客户端进行网络数据交互。
本申请提供一种冗余系统中主备切换的方法和装置,应用于第一服务器,方法包括:当主备状态为备用状态,且需要执行主备切换时,将第一服务器的主备状态设置为主用状态;判断第一服务器的IP地址是否为主用IP地址;若不是主用IP地址,进入切换准备模式,在该模式下丢弃收到网络数据包;将第一服务器的IP地址配置为地址协议栈中记录的主用IP地址,退出切换准备模式,与访问主用IP地址的客户端交互。通过重置切换至主用状态服务器的IP地址,每个服务器都以主用IP地址和客户端交互,发生主备切换后,客户端可以继续访问主用IP地址,无需重新查找并指定新IP地址,从而解决主备切换导致的数据交互效率降低问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例提供的一种冗余系统的架构示意图;
图2为本申请实施例提供的一种冗余系统中主备切换的方法的流程图;
图3为本申请实施例提供的一种冗余系统中主备切换的方法的流程图;
图4为本申请实施例提供的一种冗余系统中检测是否执行主备切换的方法的流程图;
图5为本申请实施例提供的一种冗余系统中服务器组态同步的流程示意图;
图6为本申请实施例提供的一种冗余系统中主备切换的装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本申请所提供的冗余系统中主备切换的方法,可以适用于任意一种冗余系统,例如,可以适用于浙江中控公司面向工厂自动化领域推出的GCS-G5系统。具体来说,本申请提供的主备切换方法可以由冗余系统中的每一个服务器执行,该方法包括适用于主用状态的服务器的流程,以及适用于备用状态的服务器的流程,对于冗余系统中的任意一个服务器,若该服务器当前的主备状态为主用状态,则执行其中适用于主用状态的服务器的流程,若该服务器当前的主备状态为备用状态,则执行其中适用于备用状态的服务器的流程。
可选的,对于一个冗余系统所包含的多个服务器,可以预先在每一个服务器的存储介质中固化一个初始主备状态,例如,将服务器A的初始主备状态设置为主用状态,将服务器B的初始主备状态设置为备用状态,由此,这些服务器在启动后可以先根据自身的初始主备状态执行本申请提供的方法中的对应流程,当通过执行相应流程将自身的主备状态切换后,再执行切换后的主备状态所对应的流程。
例如,服务器A启动时根据上述初始设定,将自身的主备状态设置为主用状态,随后,服务器A发现冗余系统中已经存在另一个处于主用状态的服务器,或者发现自身存在故障,于是将自身的主备状态从初始的主用状态切换为备用状态。
本申请所适用的冗余系统,其架构可以如图1所示。可以看出,该冗余系统包括服务器A和服务器B,系统首次启动时,服务器A处于主用状态,服务器B处于备用状态,其中服务器A的IP地址为主用IP地址,客户端通过访问主用IP地址,和服务器A进行交互,而处于备用状态的服务器B则实时同步服务器A的数据。
假设在某一时刻服务器A发生了无法修复的故障,则需要执行主备切换,此时,服务器A通过执行本申请提供的方法中适用于主用状态的服务器的流程,将自身的主备状态切换为备用状态,而服务器B通过执行适用于备用状态的服务器的流程,将自身的主备状态切换为主用状态,同时将自身的(即服务器B)的IP地址设置为主用IP地址,由此,客户端不需要重新指定IP地址,仍然访问主用IP地址,而实际处理客户端访问的服务器则由原本的服务器A变更为服务器B,由此完成了主备切换。
可以理解的,尽管图1中示出的冗余系统由两个服务器构成,但是本申请提供的主备切换方法也可以适用于由三个及以上服务器构成的冗余系统。
具体的,当存在三个及以上服务器时,冗余系统中任意时刻将存在一个处于主用状态的服务器,和多个处于备用状态的服务器,此时,若主用服务器发生故障导致需要执行主备切换,多个处于备用状态的服务器之间可以根据设定的切换优先级,决定由哪一个备用服务器切换至主用状态。
结合图1所示的冗余系统,本申请实施例提供了一种冗余系统中主备切换的方法,请参考图2,该方法可以包括如下步骤:
需要说明的是,如图2所示的流程为本申请提供的主备切换方法中适用于备用状态的服务器的流程。
S201、当第一服务器的主备状态为备用状态时,实时检测第一服务器是否需要执行主备切换。
步骤S201可以按一定的时间间隔定时执行,例如可以每经过5秒执行一次。
若检测出当前不需要执行主备切换,换言之,也就是检测出当前处于主用状态的服务器可以正常工作,则可以再次执行步骤S201,则直至检测出第一服务器需要执行主备切换为止。
若检测出需要执行主备切换,则执行步骤S202。
S202、将第一服务器的主备状态设置为主用状态。
主备状态,可以认为是冗余系统中每一个服务器所配置的一项参数,该参数的可选的参数值包括主用状态和备用状态两种,当一个服务器的主备状态为主用状态时,说明该服务器当前是冗余系统的主用服务器,即客户端和冗余系统之间的数据交互由该服务器处理,当主备状态为备用状态时,说明该服务器当前是备用服务器。
S203、判断第一服务器的IP地址是否为预设的主用IP地址。
若第一服务器的IP地址不是主用IP地址,则执行步骤S204,若第一服务器的IP地址是主用IP地址,则执行步骤S206。
步骤S203,相当于第一服务器判断自身的IP地址和主备状态是否匹配,由于步骤S202中第一服务器的主备状态已经变更为主用状态,为了使自身的IP地址和主备状态匹配,此时第一服务器的IP地址应该是主用IP地址,若不是主用IP地址,则说明自身的IP地址和主备状态不匹配,需要变更自身的IP地址。
在本申请所提供的主备切换方法中,可以预先设定主用IP地址和备用IP地址。
可选的,一部分冗余系统可以同时接入多个网络,例如可以接入网络A和网络B,相应的,上述主用IP地址可以包括每一个网络中的主用IP地址,同时,备用IP地址也可以包括每一个网络中的备用IP地址。
例如,在本申请中,主用IP地址可以包括,网络A中的主用IP地址172.20.1.2,以及网络B中的主用IP地址192.168.1.2。备用IP地址可以包括网络A中的备用IP地址172.20.1.3,以及网络B中的备用IP地址192.168.1.3。
可以看出,对于由两台服务器组成的冗余系统,在设置主用IP地址和备用IP地址时,可以按照属于同一个网络的主用IP地址和备用IP地址设置为前24位相同,后8位为2n和2n+1的规则(即主用IP地址后8位是偶数,备用IP地址后8为则为前者加1)配置。
上述每个网络的主用IP地址和备用IP地址均可以存储在预先构建的地址协议栈中,同时冗余系统的每一个服务器均保存有上述地址协议栈。由此,在步骤S203中,第一服务器可以从自身保存的地址协议栈中读取出每一个网络中的主用IP地址,将其和自身目前在每个网络中的IP地址比对,若两者不一致,则确定出第一服务器的IP地址不是主用IP地址,反之,若两者一致,则确定出第一服务器的IP地址是主用IP地址。
S204、进入切换准备模式,并在切换准备模式下丢弃每一个向第一服务器发送的网络数据包。
可选的,进入切换准备模式后,第一服务器会在后续的100ms(100毫秒),内丢弃自身接收到的所有网络数据包。
执行步骤S204的作用在于,在重新配置第一服务器的IP地址之前(即执行步骤S205之前),先暂停自身和客户端之间可能存在的交互,以避免更换IP地址后发生数据丢失。
需要说明的是,在执行主备切换时,原本处于主用状态的服务器从主用状态切换至备用状态后,也会执行上述步骤S204所述的过程,然后才将自身的IP地址从原本的主用IP地址变更为备用IP地址。
在执行主备切换的过程中客户端会持续的访问指定的主用IP地址(如上述172.20.1.2和192.192.1.2),通过上述步骤S204所述的操作,客户端会在连续的100ms内接收不到服务器的响应,此时客户端会启动TCP协议(一种现有的网络协议)中的重发机制将未发送成功的网络数据包重复发送,当100ms内重发多次(如三次)未收到响应后,客户端会判定重发超时,并进入待机状态,等待和服务器重新建立链接。在重新建立链接后,客户端会将之前发送失败的网络数据包继续发送,这样就可以避免切换IP地址时发生网络数据包丢失。
S205、从预先构建的地址协议栈中读取主用IP地址,并将第一服务器的IP地址配置为主用IP地址。
一般的,步骤S205可以在100ms内完成。
具体的,第一服务器可以首先从地址协议栈中读取出主用IP地址,然后通过自身的IP地址设置接口,将自身的IP地址重配置为读取得到的主用IP地址。
S206、退出切换准备模式,与访问主用IP地址的客户端进行网络数据交互。
步骤S205执行结束后,第一服务器即完成自身的IP地址的重配置,此时第一服务器以主用IP地址接入网络,相应的,客户端向主用IP地址发送的网络数据包就会传输到第一服务器。
因此,步骤S205执行结束后,第一服务器可以退出切换准备模式,解除丢弃网络数据包的限制,然后以主用IP地址和客户端正常进行数据交互。
若从步骤S203直接跳转至步骤S206,并未进入切换准备模式,则不需要执行退出切换准备模式的动作。
具体的,第一服务器完成步骤S205中主用IP地址的配置之后,会接收客户端向主用IP地址发送的网络连接请求(即客户端发送的请求报文),随后,由于第一服务器当前并未和客户端建立连接,第一服务器可以先想客户端反馈网络连接响应信号,即TCP_RST信号,客户端收到上述信号后,会从待机状态复位,随后第一服务器和复位后的客户端建立网络链接,基于上述网络链接和客户端进行网络数据交互。
一般的,从发生主备切换到客户端和切换后的主用状态的服务器进行数据交互,需要耗时5s左右。
通过图2所示的流程可以看出,在本申请提供的主备切换方法中,即使发生主备切换,客户端也可以一直指定主用IP地址作为要访问的目标地址,在主备切换完成后,新的主用状态的服务器会继续使用主用IP地址和客户端进行通信,整个主备切换过程不需要客户端重新查找和指定IP地址,避免主备切换对数据交互效率的影响,同时客户端也不需要存储过多的IP地址,减少了客户端所消耗的存储资源。
请参考图3,本申请实施例提供的主备切换方法中适用于主用状态的服务器的流程,可以包括如下步骤:
S301、当第一服务器的主备状态为主用状态时,实时检测第一服务器是否发生故障。
具体来说,若未检测出第一服务器发生故障,则继续执行步骤S301,若检测出第一服务器发生故障,则执行步骤S302。
S302、在预设的切换时长内实时检测第一服务器的故障是否修复。
若切换时长内第一服务器的故障被修复,换言之,在切换时长内检测出第一服务器的故障消失,则返回执行步骤S301。
若切换时长内第一服务器的故障未被修复,即切换时长结束时第一服务器的故障仍然存在,则执行步骤S303。
S303、将第一服务器的主备状态设置为备用状态,并将第一服务器的IP地址配置为备用IP地址。
如前文所述,第一服务器在将自身的IP地址配置为备用IP地址之前,首先接入切换准备模式,在切换准备模式下丢弃自身收到的所有数据包,同时从地址协议栈中读取出备用IP地址,然后通过IP地址设置接口将自身的IP地址设置为备用IP地址。
可选的,若第一服务器处于主用状态时,判断出自身存在故障且经过切换时长后仍未修复,可以向冗余系统中处于备用状态的服务器发送主备切换触发信息,以触发处于备用状态的服务器执行主备切换。
请参考图4,在本申请实施例提供的主备切换方法中,处于备用状态的服务器可以通过如下步骤检测是否需要进行主备切换:
S401、实时检测第二服务器是否发生故障。
其中,第二服务器是冗余系统中除第一服务器以外的另一台服务器,且第二服务器的主备状态为主用状态。
若检测出第二服务器发生故障,则执行步骤S402,若未检测出第二服务器发生故障则再次执行步骤S401。
步骤S401相当于检测冗余系统中当前处于主用状态的服务器是否发生故障。
可选的,若检测出处于主用状态的第二服务器发生故障的同时,第一服务器自身也存在故障,则第一服务器可以将自身的故障的故障等级和第二服务器的故障的故障等级进行比对,若第一服务器(即处于备用状态的服务器)的故障等级高于第二服务器的故障的故障等级,即第一服务器的故障比第二服务器的故障严重,则可以返回再次执行步骤S401,直至检测到第二服务器发生故障等级高于第一服务器的故障等级的故障为止。
相对的,若检测出第二服务器的故障的故障等级高于第一服务器自身的故障等级,也就是检测出处于主用状态的服务器的故障等级高于处于备用状态的服务器的故障等级,则执行步骤S402。
S402、在预设的切换时长内实时检测第二服务器的故障是否被修复。
若切换时长内第二服务器的故障被修复,则返回执行步骤S401,反之,若切换时长结束时,第二服务器的故障为被修复则执行步骤S403。
S403、确定第一服务器需要执行主备切换。
若切换时长结束时当前处于主用状态的第二服务器的故障仍未修复,说明第二服务器无法继续正常工作,因此需要处于备用状态的第一服务器执行主备切换。
可选的,在本申请任一实施例中,服务器将自身的IP地址重新配置为主用IP地址,或者重新配置为备用IP地址的操作,可以通过设定重配置选项进行开启或关闭。
也就是说,用户可以自行设定每个服务器的重配置选项为开启,此时服务器可以通过执行上述实施例所提供的方法,在执行主备切换时将自身的IP地址重新配置为主用IP地址或者备用IP地址。用户也可以设定每个服务器的重配置选项为关闭,此时服务器执行主备切换时则不可以更改自身的IP地址,也就是无法将自身的IP地址更改为主用IP地址或者备用IP地址。
还需要说明的是,服务器每次将自身的IP地址重新配置后,重新配置的IP地址不会固化该IP地址,也就是不会将重新配置的IP地址记录在自身的存储介质中。当任意一个服务器重新启动后,该服务器会首先将自身的IP地址设定为该服务器的固化IP地址(指代这个服务器的存储介质中预先写入的IP地址),然后改服务器才会通过本申请所提供的主备切换方法判断是否需要重新配置自身的IP地址。
下面结合图1的冗余系统的架构简要说明本申请实施例提供的主备切换方法的实施过程:
假设图1中的冗余系统启动后,服务器A处于主用状态,服务器A的固化IP地址为主用IP地址,因此服务器A启动后将自身的IP地址配置为主用IP地址,服务器B处于备用状态,服务器B的固化IP地址为备用IP地址,因此服务器B启动后将自身的IP地址配置为备用IP地址。
在冗余系统运行过程中,某一时刻服务器A和服务器B均发现服务器A出现了故障(可以是服务器A自身的设备故障,也可以是服务器A的网络环境发生网络故障),且该故障在切换时长结束时仍未被修复。
出现上述情况后,服务器A将自身的主备状态从主用状态变更至备用状态,然后对应的将自身的IP地址从之前的主用IP地址重新配置为备用IP地址。
同时,服务器B将自身的主备状态从之前的备用状态变更至主用状态,然后将自身的IP地址从之前的备用IP地址重新配置为主用IP地址。
至此,主备切换完成,服务器B处于主用状态,使用主用IP地址和客户端进行交互,服务器A则处于备用状态,使用备用IP地址接入网络。
在本申请实施例,结合前述例子,如果某一时刻服务器B处于主用状态,其IP地址为主用IP地址,此时如果服务器A重启,服务器A会将自身的IP地址配置为服务器A的固化IP地址,即主用IP地址,此时主用IP地址会同时指向服务器A和服务器B,从而引起冲突。
针对上述问题,本申请实施例所提供的主备切换方法中,冗余系统的各个服务器还可以通过如下图5所示的步骤进行组态同步,即,当冗余系统中存在部分已经启动的服务器时,之后启动的服务器的组态有之前启动的服务器进行同步,通过这种方式限制后启动的服务器配置和正在运行的服务器相同的IP地址,避免服务器启动时IP地址发生冲突。
服务器的组态,具体包括服务器的配置信息和服务器所运行的计算机程序。其中,服务器的配置信息包括前述服务器的IP地址,主备状态和重配置选项等。
请参考图5,以第一服务器为例,本申请提供的组态同步流程可以包括:
S501、在第一服务器启动时,将第一服务器的IP地址配置为固化IP地址。
其中,固化IP地址是第一服务器的存储器中预先存储的IP地址。
S502、检测其他服务器是否启动。
其中,其他服务器指代冗余系统中除第一服务器以外的服务器。
若发现冗余系统中有已经启动的服务器,执行步骤S503,反之若发现冗余系统中不存在已经启动的其他服务器,执行步骤S504。
S503、利用已启动的其他服务器中主备状态为主用状态的服务器的组态信息,配置第一服务器的组态。
其中,第一服务器的组态包括第一服务器的配置项和待运行计算机程序。
当冗余系统有至少一个服务器处于启动状态时,这已经启动的服务器中必定存在一个处于主用状态的服务器。
因此,当第一服务器检测到冗余系统中有已经启动的其他服务器时,可以从已经启动的服务器中识别出处于主用状态的服务器,然后获取处于主用状态的服务器的组态信息,根据主用状态的服务器的组态信息配置自身的组态。
具体来说,第一服务器在执行步骤S503时,可以:
首先,将自身的主备状态设置为备用状态,将自身的IP地址设置为备用IP地址,以及将自身的重配置选项设定为开启。
进一步的,处于主用状态的服务器的组态信息可以包括处于主用状态的服务器当前运行的计算机程序的名称,和正在处理的数据,由此第一服务器可以在获取处于主用状态的服务器的组态信息之后,运行同名的计算机程序,并处理相同的数据,由此实现对处于主用状态的服务器的备份。
S504、利用固化组态信息配置第一服务器的组态。
其中,固化组态信息指代第一服务器的存储器中预先存储的组态信息。
固化组态信息,可以包括第一服务器的固化IP地址,以及第一服务器的存储介质中记录的初始的主备状态,以及第一服务器启动时默认需要运行的计算机程序。
换言之,步骤S504中,第一服务器可以将自身的IP地址配置为其固化IP地址,将自身的主备状态设定为初始的主备状态,将自身的重配置选项设定开启,随后,可以运行服务器启动时默认需要运行的计算机程序。
S505、判断自身的IP地址和主备状态是否匹配。
若第一服务器自身的IP地址和主备状态不匹配,则执行步骤S506,反之若两者匹配,则执行步骤S507。
其中,第一服务器自身的IP地址和主备状态匹配是指,若第一服务器的主备状态为备用状态,则其IP地址应当为备用IP地址,若第一服务器的主备状态为主用状态,则其IP地址应当为主用IP地址。
若符合上述条件,则第一服务器自身的IP地址和主备状态匹配,若不符合上述条件,则第一服务器自身的IP地址和主备状态不匹配。
S506、将自身的IP地址重配置为和主备状态匹配的IP地址。
即,若第一服务器自身处于备用状态,则将自身的IP地址配置为备用IP地址,反之,若第一服务器自身处于主用状态,则将自身的IP地址配置为主用IP地址。
S507、开始正常运行。
通过上述组态同步流程,可以避免本申请的冗余系统中后启动的服务器的IP地址和先启动的IP地址发生冲突。
结合本申请实施例提供的冗余系统中主备切换的方法,本申请实施例还提供一种冗余系统中主备切换的装置,该装置可以适用于冗余系统中的每一个服务器,请参考图6,该装置可以包括如下单元:
检测单元601,用于当第一服务器的主备状态为备用状态时,实时检测第一服务器是否需要执行主备切换,直至检测出第一服务器需要执行主备切换为止。
设置单元602,用于若检测出第一服务器需要执行主备切换,将第一服务器的主备状态设置为主用状态。
判断单元603,用于判断第一服务器的IP地址是否为预设的主用IP地址。
控制单元604,用于若第一服务器的IP地址不是主用IP地址,进入切换准备模式,并在切换准备模式下丢弃每一个向第一服务器发送的网络数据包。
配置单元605,用于从预先构建的地址协议栈中读取主用IP地址,并将第一服务器的IP地址配置为主用IP地址;
交互单元606,用于退出切换准备模式,并与访问主用IP地址的客户端进行网络数据交互。
可选的,检测单元601实时检测第一服务器是否需要执行主备切换时,具体用于:
实时检测第二服务器是否发生故障;其中,第二服务器是冗余系统中除第一服务器以外的另一台服务器,且第二服务器的主备状态为主用状态;
当检测出第二服务器发生故障时,在预设的切换时长内实时检测第二服务器的故障是否被修复;
若切换时长结束时,第二服务器的故障未被修复,确定第一服务器需要执行主备切换。
可选的,检测单元601还用于:
当第一服务器的主备状态为主用状态时,实时检测第一服务器是否发生故障;
当检测出第一服务器发生故障时,在预设的切换时长内实时检测第一服务器的故障是否修复;
设置单元602还用于,若切换时长结束时,第一服务器的故障未被修复,将第一服务器的主备状态设置为备用状态;
配置单元605还用于,若切换时长结束时,第一服务器的故障未被修复,将第一服务器的IP地址配置为备用IP地址。
可选的,配置单元605还用于,在第一服务器启动时,将第一服务器的IP地址配置为固化IP地址;其中,固化IP地址是第一服务器的存储器中预先存储的IP地址;
检测单元601还用于,检测其他服务器是否启动;其中,其他服务器指代冗余系统中除第一服务器以外的服务器;
配置单元605还用于:
若存在已启动的其他服务器,利用其他服务器中主备状态为主用状态的服务器的组态信息,配置第一服务器的组态;其中,第一服务器的组态包括第一服务器的配置项和待运行计算机程序;
若不存在已启动的其他服务器,利用固化组态信息配置第一服务器的组态;其中,固化组态信息指代第一服务器的存储器中预先存储的组态信息。
可选的,交互单元606与访问主用IP地址的客户端进行网络数据交互时,具体用于:
接收客户端向主用IP地址发送的网络连接请求;
向客户端反馈网络连接响应信号,使客户端复位;
与客户端建立网络链接,并基于网络链接和客户端进行网络数据交互。
本申请实施例提供的冗余系统中主备切换的装置,其具体工作原理可以参考本申请任一实施例所提供的冗余系统中主备切换的方法,此处不再详述。
本申请提供一种冗余系统中主备切换的装置,应用于第一服务器,当主备状态为备用状态,且需要执行主备切换时,设置单元602将第一服务器的主备状态设置为主用状态;判断单元603判断第一服务器的IP地址是否为主用IP地址;若不是主用IP地址,控制单元604进入切换准备模式,在该模式下丢弃收到网络数据包;配置单元605将第一服务器的IP地址配置为地址协议栈中记录的主用IP地址,交互单元606退出切换准备模式,与访问主用IP地址的客户端交互。通过重置切换至主用状态服务器的IP地址,每个服务器都以主用IP地址和客户端交互,发生主备切换后,客户端可以继续访问主用IP地址,无需重新查找并指定新IP地址,从而解决主备切换导致的数据交互效率降低问题。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
需要注意,本发明中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。
专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种冗余系统中主备切换的方法,其特征在于,应用于第一服务器,所述第一服务器为所述冗余系统的任意一台服务器,所述方法包括:
当所述第一服务器的主备状态为备用状态时,实时检测所述第一服务器是否需要执行主备切换,直至检测出所述第一服务器需要执行主备切换为止;
若检测出所述第一服务器需要执行主备切换,将所述第一服务器的主备状态设置为主用状态;
判断所述第一服务器的IP地址是否为预设的主用IP地址;
若所述第一服务器的IP地址不是所述主用IP地址,进入切换准备模式,并在所述切换准备模式下丢弃每一个向所述第一服务器发送的网络数据包;
从预先构建的地址协议栈中读取所述主用IP地址,并将所述第一服务器的IP地址配置为所述主用IP地址;
退出切换准备模式,并与访问所述主用IP地址的客户端进行网络数据交互。
2.根据权利要求1所述的方法,其特征在于,所述实时检测所述第一服务器是否需要执行主备切换,包括:
实时检测第二服务器是否发生故障;其中,所述第二服务器是所述冗余系统中除所述第一服务器以外的另一台服务器,且所述第二服务器的主备状态为主用状态;
当检测出所述第二服务器发生故障时,在预设的切换时长内实时检测所述第二服务器的故障是否被修复;
若所述切换时长结束时,所述第二服务器的故障未被修复,确定所述第一服务器需要执行主备切换。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当所述第一服务器的主备状态为主用状态时,实时检测所述第一服务器是否发生故障;
当检测出所述第一服务器发生故障时,在预设的切换时长内实时检测所述第一服务器的故障是否修复;
若所述切换时长结束时,所述第一服务器的故障未被修复,将所述第一服务器的主备状态设置为备用状态,并将所述第一服务器的IP地址配置为备用IP地址。
4.根据权利要求1所述的方法,其特征在于,所述当所述第一服务器的主备状态为备用状态时,实时检测所述第一服务器是否需要执行主备切换之前,还包括:
在所述第一服务器启动时,将所述第一服务器的IP地址配置为固化IP地址;其中,所述固化IP地址是所述第一服务器的存储器中预先存储的IP地址;
检测其他服务器是否启动;其中,所述其他服务器指代所述冗余系统中除所述第一服务器以外的服务器;
若存在已启动的所述其他服务器,利用所述其他服务器中主备状态为主用状态的服务器的组态信息,配置所述第一服务器的组态;其中,所述第一服务器的组态包括所述第一服务器的配置项和待运行计算机程序;
若不存在已启动的所述其他服务器,利用固化组态信息配置所述第一服务器的组态;其中,所述固化组态信息指代所述第一服务器的存储器中预先存储的组态信息。
5.根据权利要求1所述的方法,其特征在于,所述与访问所述主用IP地址的客户端进行网络数据交互,包括:
接收客户端向所述主用IP地址发送的网络连接请求;
向所述客户端反馈网络连接响应信号,使所述客户端复位;
与所述客户端建立网络链接,并基于所述网络链接和所述客户端进行网络数据交互。
6.一种冗余系统中主备切换的装置,其特征在于,应用于第一服务器,所述第一服务器为所述冗余系统的任意一台服务器,所述装置包括:
检测单元,用于当所述第一服务器的主备状态为备用状态时,实时检测所述第一服务器是否需要执行主备切换,直至检测出所述第一服务器需要执行主备切换为止;
设置单元,用于若检测出所述第一服务器需要执行主备切换,将所述第一服务器的主备状态设置为主用状态;
判断单元,用于判断所述第一服务器的IP地址是否为预设的主用IP地址;
控制单元,用于若所述第一服务器的IP地址不是所述主用IP地址,进入切换准备模式,并在所述切换准备模式下丢弃每一个向所述第一服务器发送的网络数据包;
配置单元,用于从预先构建的地址协议栈中读取所述主用IP地址,并将所述第一服务器的IP地址配置为所述主用IP地址;
交互单元,用于退出所述切换准备模式,并与访问所述主用IP地址的客户端进行网络数据交互。
7.根据权利要求6所述的装置,其特征在于,所述检测单元实时检测所述第一服务器是否需要执行主备切换时,具体用于:
实时检测第二服务器是否发生故障;其中,所述第二服务器是所述冗余系统中除所述第一服务器以外的另一台服务器,且所述第二服务器的主备状态为主用状态;
当检测出所述第二服务器发生故障时,在预设的切换时长内实时检测所述第二服务器的故障是否被修复;
若所述切换时长结束时,所述第二服务器的故障未被修复,确定所述第一服务器需要执行主备切换。
8.根据权利要求6所述的装置,其特征在于,所述检测单元还用于:
当所述第一服务器的主备状态为主用状态时,实时检测所述第一服务器是否发生故障;
当检测出所述第一服务器发生故障时,在预设的切换时长内实时检测所述第一服务器的故障是否修复;
所述设置单元还用于,若所述切换时长结束时,所述第一服务器的故障未被修复,将所述第一服务器的主备状态设置为备用状态;
所述配置单元还用于,若所述切换时长结束时,所述第一服务器的故障未被修复,将所述第一服务器的IP地址配置为备用IP地址。
9.根据权利要求6所述的装置,其特征在于,所述配置单元还用于,在所述第一服务器启动时,将所述第一服务器的IP地址配置为固化IP地址;其中,所述固化IP地址是所述第一服务器的存储器中预先存储的IP地址;
所述检测单元还用于,检测其他服务器是否启动;其中,所述其他服务器指代所述冗余系统中除所述第一服务器以外的服务器;
所述配置单元还用于:
若存在已启动的所述其他服务器,利用所述其他服务器中主备状态为主用状态的服务器的组态信息,配置所述第一服务器的组态;其中,所述第一服务器的组态包括所述第一服务器的配置项和待运行计算机程序;
若不存在已启动的所述其他服务器,利用固化组态信息配置所述第一服务器的组态;其中,所述固化组态信息指代所述第一服务器的存储器中预先存储的组态信息。
10.根据权利要求6所述的装置,其特征在于,所述交互单元与访问所述主用IP地址的客户端进行网络数据交互时,具体用于:
接收客户端向所述主用IP地址发送的网络连接请求;
向所述客户端反馈网络连接响应信号,使所述客户端复位;
与所述客户端建立网络链接,并基于所述网络链接和所述客户端进行网络数据交互。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011597030.7A CN112737844A (zh) | 2020-12-28 | 2020-12-28 | 冗余系统中主备切换的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011597030.7A CN112737844A (zh) | 2020-12-28 | 2020-12-28 | 冗余系统中主备切换的方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112737844A true CN112737844A (zh) | 2021-04-30 |
Family
ID=75611339
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011597030.7A Pending CN112737844A (zh) | 2020-12-28 | 2020-12-28 | 冗余系统中主备切换的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112737844A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113645650A (zh) * | 2021-07-09 | 2021-11-12 | 三维通信股份有限公司 | 主备切换的处理方法、系统、电子装置和存储介质 |
CN115134220A (zh) * | 2022-06-29 | 2022-09-30 | 北京飞讯数码科技有限公司 | 主备服务器切换方法及装置、计算设备和存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3922497A (en) * | 1973-03-21 | 1975-11-25 | Cselt Centro Studi Lab Telecom | Switching system for PCM communication with alternate voice and data transmission |
US20070167157A1 (en) * | 2005-12-30 | 2007-07-19 | Sukhdeep Hundal | System and method for communicating over a data network or the PSTN using a hybrid cordless telephone service |
CN101174936A (zh) * | 2006-10-31 | 2008-05-07 | 华为技术有限公司 | 一种无线分组网络冗余系统和方法以及网络冗余设备 |
CN101262350A (zh) * | 2008-04-23 | 2008-09-10 | 杭州华三通信技术有限公司 | 一种Portal双机热备份的实现方法、系统及设备 |
CN103346903A (zh) * | 2013-06-20 | 2013-10-09 | 北京捷成世纪科技股份有限公司 | 一种双机备份的方法和装置 |
CN104202204A (zh) * | 2014-09-26 | 2014-12-10 | 浙江中控技术股份有限公司 | 基于sntp的时钟同步控制方法、装置及系统 |
CN107465556A (zh) * | 2017-09-07 | 2017-12-12 | 郑州云海信息技术有限公司 | 一种主备服务器的切换方法、装置及系统 |
-
2020
- 2020-12-28 CN CN202011597030.7A patent/CN112737844A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3922497A (en) * | 1973-03-21 | 1975-11-25 | Cselt Centro Studi Lab Telecom | Switching system for PCM communication with alternate voice and data transmission |
US20070167157A1 (en) * | 2005-12-30 | 2007-07-19 | Sukhdeep Hundal | System and method for communicating over a data network or the PSTN using a hybrid cordless telephone service |
CN101174936A (zh) * | 2006-10-31 | 2008-05-07 | 华为技术有限公司 | 一种无线分组网络冗余系统和方法以及网络冗余设备 |
CN101262350A (zh) * | 2008-04-23 | 2008-09-10 | 杭州华三通信技术有限公司 | 一种Portal双机热备份的实现方法、系统及设备 |
CN103346903A (zh) * | 2013-06-20 | 2013-10-09 | 北京捷成世纪科技股份有限公司 | 一种双机备份的方法和装置 |
CN104202204A (zh) * | 2014-09-26 | 2014-12-10 | 浙江中控技术股份有限公司 | 基于sntp的时钟同步控制方法、装置及系统 |
CN107465556A (zh) * | 2017-09-07 | 2017-12-12 | 郑州云海信息技术有限公司 | 一种主备服务器的切换方法、装置及系统 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113645650A (zh) * | 2021-07-09 | 2021-11-12 | 三维通信股份有限公司 | 主备切换的处理方法、系统、电子装置和存储介质 |
CN113645650B (zh) * | 2021-07-09 | 2024-06-04 | 三维通信股份有限公司 | 主备切换的处理方法、系统、电子装置和存储介质 |
CN115134220A (zh) * | 2022-06-29 | 2022-09-30 | 北京飞讯数码科技有限公司 | 主备服务器切换方法及装置、计算设备和存储介质 |
CN115134220B (zh) * | 2022-06-29 | 2023-11-10 | 北京飞讯数码科技有限公司 | 主备服务器切换方法及装置、计算设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109344014B (zh) | 一种主备切换方法、装置及通信设备 | |
CN108075971B (zh) | 一种主备切换方法及装置 | |
EP1697843B1 (en) | System and method for managing protocol network failures in a cluster system | |
CN110597664A (zh) | 一种高可用集群资源部署方法、装置及相关组件 | |
CN111651291A (zh) | 一种共享存储集群防脑裂的方法、系统、计算机存储介质 | |
CN112737844A (zh) | 冗余系统中主备切换的方法和装置 | |
CN111064646B (zh) | 基于宽带现场总线的环网冗余方法、装置及存储介质 | |
CN111030877A (zh) | 主备设备切换方法和装置 | |
CN110908723A (zh) | 操作系统的主备切换方法、装置及相关设备 | |
CN112583708B (zh) | 一种连接关系控制方法、装置和电子设备 | |
CN108243031B (zh) | 一种双机热备的实现方法及装置 | |
EP2069934B1 (en) | Fault-tolerant medium access control (mac) address assignment in network elements | |
CN110535947B (zh) | 一种存储设备集群配置节点切换方法、装置及设备 | |
EP3474501B1 (en) | Network device stacking | |
CN105515838A (zh) | 一种服务配置方法及ha集群系统 | |
JP6421516B2 (ja) | サーバ装置、冗長構成サーバシステム、情報引継プログラム及び情報引継方法 | |
JP4806382B2 (ja) | 冗長化システム | |
KR20150104435A (ko) | 라우팅 처리기의 동작 모드 천이 방법 | |
JP2021061478A (ja) | 中継装置、中継システム、及び中継プログラム | |
CN114124803B (zh) | 设备管理方法、装置、电子设备及存储介质 | |
CN102546313B (zh) | 一种多激活检测方法和设备 | |
CN111510336B (zh) | 一种网络设备状态管理方法及装置 | |
CN113973127B (zh) | 一种网络部署方法、装置及存储介质 | |
JP2003345620A (ja) | 多ノードクラスタシステムのプロセス監視方法 | |
CN115665035A (zh) | 一种信息处理方法、装置、第一节点及存储介质 |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210430 |