Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
FAILOVER SWITCH
Document Type and Number:
WIPO Patent Application WO/2017/146693
Kind Code:
A1
Abstract:
In one example, a system for a failover switch includes a snapshot engine to generate a snapshot of a state of a first processing resource, wherein the snapshot is stored at a memory resource, a failover switch engine to switch the first processing resource to a standby processing resource and to switch a second processing resource to an active processing resource, and an activation engine to apply the snapshot of the state from the first memory resource upon activation of the second processing resource.

Inventors:
SEBASTIAN CELESTIAN K (IN)
RAJ ANIL (IN)
GOVINDAN NAIR ANOOP (IN)
Application Number:
PCT/US2016/019273
Publication Date:
August 31, 2017
Filing Date:
February 24, 2016
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
HEWLETT PACKARD ENTPR DEV LP (US)
International Classes:
G06F11/16; G06F11/20
Foreign References:
US20050283636A12005-12-22
US20140075440A12014-03-13
US20040250032A12004-12-09
US7213246B12007-05-01
US20140310258A12014-10-16
Attorney, Agent or Firm:
FERGUSON, Christopher W. et al. (US)
Download PDF:
Claims:
What is claimed:

1. A system for a faiiover switch, comprising:

a snapshot engine to generate a snapshot of a state of a first processing resource, wherein the snapshot is stored at a memory resource;

a faiiover switch engine to switch the first processing resource to a standby processing resource and to switch a second processing resource to an active processing resource; and

an activation engine to apply the snapshot of the state from the first memory resource upon activation of the second processing resource.

2. The system of claim 1 , wherein first processing resource is an active processing resource when the snapshot engine generates the snapshot of the state of the first processing resource.

3. The system of claim 1 , wherein the faiiover switch engine determines a state failure of the first processing resource.

4. The system of claim 3, wherein the faiiover switch engine identifies a state configuration change that is a cause of the state failure of the first processing resource.

5. The system of claim 1 , comprising a sync engine to sync a number of state configuration changes for the first processing resource with the second processing resource.

8. The system of claim 1 , wherein the activation engine verifies the snapshot of the state of the first processing resource.

7. The system of claim , wherein activation engine applies the snapshot of the state from the first memory resource to the second memory resource by configuring the second memory resource with state information of the snapshot.

8. A non-transitory computer readable medium storing instructions executable by a processor for a faiiover switch, wherein the instructions are executable to:

determine state information for a configuration of a first processing resource; store a snapshot of the state information of the first processing resource, wherein the snapshot is stored at a memory resource;

determine a failure of the first processing resource;

activate a second processing resource; and

configure the second processing resource utilizing the snapshot of the state information.

9. The medium of claim 8, wherein snapshot of the state information is different than state information at a time of the failure of the first processing resource,

10. The medium of claim 8, wherein the snapshot is based on a predicted failure of updated state information of the first processing resource.

1 1. The medium of claim 8, wherein the snapshot is updated based on a predicted failure of updated state information of the first processing resource.

12. A method for a faiiover switch, comprising:

receiving, at a first processing resource, an event trigger to store a snapshot of state information for the first processing resource;

executing, at the first processing resource, a number of state configuration changes for the first processing resource;

activating, at the first processing resource, a second processing resource, wherein the first processing resource is placed into a standby mode;

extracting, at the second processing resource, the snapshot of state information for the first processing resource from a memory resource; and

applying, at the second processing resource, the extracted snapshot of state information to the second processing resource.

13. The method of claim 12, wherein applying the extracted snapshot of state information includes altering state information of the second processing resource from state information synced with the first processing resource.

14. The method of claim 12, comprising syncing, at the first processing resource, a number of state configuration changes applied to the first processing resource with the second processing resource.

15. The method of claim 14, wherein activating the second processing resource includes activating a standby processing resource upon a failure of the first processing resource.

Description:
F AH LOWER SWITCH

Background

[0001] Computing devices can utilize a plurality of processing resources. In some examples, the computing devices can utilize a first processing resource as an active processing resource and utilize a second processing resource as a standby processing resource. In some examples, the active processing resource can sync a state of the active processing resource with the standby processing resource. In some examples, the state of the active processing resource can encounter a failure. In these examples, the standby processing resource can experience the same or similar failure due to the synced state of the standby processing resource.

Brief Description of the Drawings

[0002] Figure 1 illustrates a diagram of an example of a system for a faiiover switch consistent with the present disclosure.

[0003] Figure 2 illustrates a diagram of an example computing device for a faiiover switch consistent with the present disclosure.

[0004] Figure 3 illustrates a diagram of an example of a system for a faiiover switch consistent with the present disclosure.

[0005] Figure 4 illustrates a diagram of an example of a method for a faiiover switch consistent with the present disclosure. Detailed Description

[0006] A number of methods, systems, and computer readable medium for a failover switch are described herein. As used herein, a failover switch can include a switch from a first processing resource to a second processing resource when the first processing resource has a failure or malfunction. In some circumstances, a standby processing resource is synced to the state of an active processing resource. However, if the state of the active processing resource can be the cause of the failure or

malfunction. That same failure or malfunction can then affect the activated standby processing resource since it will have the same state as the failed active processing resource after syncing. This scenario can result in repeated failures and faiiovers of processing resources.

[0007] in one example, a system for a failover switch includes a snapshot engine to generate a snapshot of a state of a first processing resource, wherein the snapshot is stored at a memory resource. The system further includes a failover switch engine to switch the first processing resource to a standby processing resource and to switch a second processing resource to an active processing resource. The system additionally includes an activation engine to apply the snapshot of the state from the first memory resource upon activation of the second processing resource. In some examples, the first processing resource can be an active processing resource and the second processing resource can be a standby processing resource.

[0008] The failover switch examples described herein can be utilized to prevent repeated faiiovers where a problematic configuration or state is synced to the standby processing resource, in some examples, the problematic configuration or state can include a state configuration that is making the system unstable or making the system fail. In some examples, a failover switch between a first processing resource and a second processing resource can be initiated by an event. In some examples, the event can include an administrator request for a failover switch. In some examples, the system can be recovered by the failover switch without system downtime.

[0009] The figures herein follow a numbering convention in which the first digit corresponds to the drawing figure number and the remaining digits identify an element or component in the drawing. Elements shown in the various figures herein may be capable of being added, exchanged, and/or eliminated so as to provide a number of additional examples of the present disclosure. In addition, the proportion and the relative scale of the elements provided in the figures are intended to illustrate the examples of the present disclosure, and should not be taken in a limiting sense.

[0010] Figures 1 and 2 illustrate examples of system 100 and computing device 214 consistent with the present disclosure. Figure 1 illustrates a diagram of an example of a system 100 for a faiiover switch consistent with the present disclosure. The system 100 can include a database 104, a faiiover switch system 102, and/or a number of engines (e.g. , snapshot engine 106, faiiover switch engine 108, activation engine 1 10, sync engine 1 12). The faiiover switch system 102 can be in communication with the database 104 via a communication link, and can include the number of engines (e.g., snapshot engine 106, faiiover switch engine 108, activation engine 1 10, sync engine 1 12), The faiiover switch system 102 can include additional or fewer engines than are illustrated to perform the various functions as will be described in further detail in connection with Figures 3-4.

[0011] The number of engines (e.g., snapshot engine 106, faiiover switch engine 108, activation engine 1 10, sync engine 1 12) can include a combination of hardware and programming, but at least hardware, that is configured to perform functions described herein (e.g., generate a snapshot of a state of a first processing resource, wherein the snapshot is stored at a memory resource, switch the first processing resource to a standby processing resource and to switch a second processing resource to an active processing resource, apply the snapshot of the state from the first memory resource upon activation of the second processing resource, sync a number of state configuration changes for the first processing resource with the second processing resource, etc.) stored in a memory resource (e.g., computer readable medium, machine readable medium, etc.) as well as hard-wired program (e.g., logic).

[0012] The snapshot engine 106 can include hardware and/or a combination of hardware and programming, but at least hardware, to generate a snapshot of a state of a first processing resource, wherein the snapshot is stored at a memory resource. In some examples, the snapshot engine 106 can generate the snapshot of the state of the first processing resource upon an event. In some examples, the event can include an event generated by an administrator. In another example, the event can include a timed event that occurs periodically.

[0013] in some examples, the snapshot engine 106 can generate a snapshot of the state of an active processing resource, in some examples, the snapshot of the state of the first processing resource can include state configuration information for the first processing resource, in some examples, the state configuration information can include state information, configurations, and/or data structures utilized by the processing resource. In some examples, the snapshot of the state of the first processing resource can be stored in a memory resource. In some examples, the memory resource can be separate from the first processing resource and the second processing resource, in these examples, the state information can be applied to the second processing resource even when the synced state information has been corrupted.

[0014] The failover switch engine 108 can include hardware and/or a combination of hardware and programming, but at least hardware, to switch the first processing resource to a standby processing resource and to switch a second processing resource to an active processing resource, in some examples, the failover switch engine 108 can initiate a failover switch from an active processing resource to a standby processing resource.

[0015] in some examples, the failover switch engine 108 can identify that the first processing resource has encountered a failure, in some examples, the failure can be due to particular state configurations applied to the first processing resource, in some examples, the second processing resource can be synced with the same state configurations as the first processing resource. However, when the failover switch engine 108 initiates a failover switch to the second processing resource the snapshot can be applied to the second processing resource to avoid a failure of the second processing resource.

[0016] In some examples, the failover switch engine 108 can determine a state failure of the first processing resource. For examples, the failover switch engine 108 can identify a failure of the first processing resource and identify a current state of the first processing resource. In some examples, the failover switch engine 108 can use the identified current state of the first processing resource to determine if the stored snapshot can alter the state of the second processing resource to prevent the same or similar failure as the first processing resource. In some examples, the failover switch engine 108 can identify a state configuration change that is a cause of the state failure of the first processing resource.

[0017] The activation engine 1 10 can include hardware and/or a combination of hardware and programming, but at least hardware, to apply the snapshot of the state from the first memory resource upon activation of the second processing resource. In some examples, the activation engine 1 10 can ensure that the second processing resource has the snapshot of the state from the first memory resource applied instead of a synced state from the first memory resource. As described herein, the synced state of the second memory resource can include the same or similar state configurations that caused the first processing resource to fail. In some examples, the activation engine 1 10 can verify the snapshot of the state of the first processing resource. In some examples, verifying the snapshot of the state of the first processing resource can include verifying that the snapshot of the state is a "good" state for a processing resource to avoid a failure.

[0018] The sync engine 1 12 can include hardware and/or a combination of hardware and programming, but at least hardware, to sync a number of state configuration changes for the first processing resource with the second processing resource, in some examples, the sync engine 1 12 can be utilized to sync state information from the first processing resource with the second processing resource. When the state configuration is not a cause of a failure, the state information from the first processing resource can be executed by the second processing resource.

[0019] Figure 2 illustrates a diagram of an example computing device 214 consistent with the present disclosure. The computing device 214 can utilize software, hardware, firmware, and/or logic to perform functions described herein.

[0020] The computing device 214 can be any combination of hardware and program instructions configured to share information. The hardware, for example, can include a processing resource 216 and/or a memory resource 220 (e.g., computer- readable medium (CRM), machine readable medium (MRM), database, etc.). A processing resource 216, as used herein, can include any number of processors capable of executing instructions stored by a memory resource 220. Processing resource 2 8 may be implemented in a single device or distributed across multiple devices. The program instructions (e.g., computer readable instructions (CRI)) can include instructions stored on the memory resource 220 and executable by the processing resource 216 to implement a function (e.g., generate a snapshot of a state of a first processing resource, wherein the snapshot is stored at a memory resource, switch the first processing resource to a standby processing resource and to switch a second processing resource to an active processing resource, apply the snapshot of the state from the first memory resource upon activation of the second processing resource, sync a number of state configuration changes for the first processing resource with the second processing resource, etc.).

[0021] The memory resource 220 can be in communication with a processing resource 216. A memory resource 220, as used herein, can include any number of memory components capable of storing instructions that can be executed by processing resource 216. Such memory resource 220 can be a non-transitory CRM or MRM.

Memory resource 220 may be integrated in a single device or distributed across multiple devices. Further, memory resource 220 may be fully or partially integrated in the same device as processing resource 216 or it may be separate but accessible to that device and processing resource 216. Thus, it is noted that the computing device 214 may be implemented on a participant device, on a server device, on a collection of server devices, and/or a combination of the participant device and the server device.

[0022] The memory resource 220 can be in communication with the processing resource 216 via a communication link (e.g., a path) 218. The communication link 218 can be local or remote to a machine (e.g., a computing device) associated with the processing resource 216. Examples of a local communication link 218 can include an electronic bus internal to a machine (e.g., a computing device) where the memory resource 220 is one of volatile, non-volatile, fixed, and/or removable storage medium in communication with the processing resource 216 via the electronic bus.

[0023] A number of modules (e.g., snapshot module 222, failover switch module 224, activation module 226, sync module 228) can include CRI that when executed by the processing resource 216 can perform functions. The number of modules (e.g., snapshot module 222, faiiover switch module 224, activation module 226, sync module 228) can be sub-modules of other modules. For example, the snapshot module 222 and the faiiover switch module 224 can be sub-modules and/or contained within the same computing device, in another example, the number of modules (e.g., snapshot module 222, faiiover switch module 224, activation module 226, sync module 228) can comprise individual modules at separate and distinct locations (e.g., CRM, etc.).

[0024] Each of the number of modules (e.g., snapshot module 222, faiiover switch module 224, activation module 226, sync module 228) can include instructions that when executed by the processing resource 216 can function as a corresponding engine as described herein. For example, the snapshot module 222 can include instructions that when executed by the processing resource 216 can function as the snapshot engine 106.

[0025] Figure 3 illustrates a diagram of an example of a system 330 for a faiiover switch consistent with the present disclosure. In some examples, the system 330 can include a computing device 314, In some examples, the computing device 314 can include the same or similar components as the system 100 as referenced in Figure 1 and/or the computing device 214 as referenced in Figure 2. For example, the computing device 314 can include a first processing resource 316-1 and a second processing resource 316-2.

[0026] in some examples, the first processing resource 316-1 can be an active processing resource and the second processing resource 316-2 can be a standby processing resource. For example, the first processing resource 316-1 can be executing instructions for the computing device 314 while the second processing resource 316-2 is in a standby mode. In some examples, a number of events 332-1 , 332-2, 332-3 can affect the computing device 314. For example, the number of events 332-1 , 332-2, 332- 3 can include, but are not limited to: workflow changes, administrative setting changes, state configuration changes, among other events that can alter a performance of the first processing resource 316-1.

[0027] In one example, the event 332-1 can generate a first state change 334-1 for the first processing resource 3 6-1. In some examples, a state change can be an alteration or change of a number of state configuration settings for the first processing resource 316-1. As described herein, the first state change 334-1 can cause the first processing resource 316-1 to initiate a sync event 336-1. In some examples, the sync event 336-1 can copy the state change 334-1 to generate a state change 334-2 for the second processing resource. In another example, the event 332-2 can generate a second state change 338-1. In this example, the second state change 338-1 can cause the first processing resource 316-1 to initiate a sync event 336-2 to generate the state change 338-2 within the second processing resource 316-2.

[0028] in some examples, an event 340 can be received by the first processing resource 316-1. In some examples, the event 340 can be an event that is initiated by an administrator of the computing device 314. In some examples, the event 340 can initiate a sync save snapshot event 336-3. For example, the event 340 can be utilized to generate a snapshot of the state configuration settings of the first processing resource 316-1. As described herein, the snapshot can include the state information for the first processing resource 316-1. In some examples, the snapshot can be stored at a memory resource 320 (e.g., random access memory (RAM), etc.). In some examples, the memory resource 320 can be separate and distinct from local memory associated with the first processing resource 316-1 and/or the second processing resource 316-2.

[0029] In some examples, a third event 332-3 can cause an inconsistent or erroneous runtime state 342-1. For example, the third event 332-3 can generate a state change that can cause the inconsistent runtime state 342-1 within the first processing resource 316-1. In some examples, the first processing resource 316-1 can initiate a third sync event 336-4 to generate the same state change 342-2 within the second processing resource 316-2. As described herein, the state change 342-2 can be the state configuration change that has caused the inconsistent runtime state 342-1 within the first processing resource 316-1.

[0030] in some examples, the first processing resource 316-1 can fail 344 due to the inconsistent runtime state 342-1. When the first processing resource 316-1 fails 344 the second processing resource 316-2 can be active by a failover switch 346. In some examples, the failover switch 346 can switch the processing capabilities of the computing device 314 from the first processing resource 316-1 to the second

processing resource 316-2. [0031] When the second processing resource 3 8-2 is activated 348 the second processing resource 316-2 can read and/or extract the stored snapshot from the memory resource 320. In some examples, the snapshot stored in the memory resource 320 can include a number of state changes implemented by the first processing resource 316-1 , but may not include the state change that created the inconsistent runtime state 342-1. For example, the snapshot from the memory resource 320 can include the first state change 334-1 and the second state change 338-1 , but may not include the inconsistent runtime state 342-1.

[0032] in some examples, the second processing resource 316-2 can apply the snapshot as a state change 350. in some examples, the state change 350 can be the same or similar as state change 338-2. in some examples, the state change 350 can be applied so that the inconsistent runtime state 342-1 is not utilized with the second processing resource 316-2 during the runtime 352 of the second processing resource 316-2. As described herein, the second processing resource 316-1 may not fail for the same or similar reason (e.g., event) as the first processing resource 316-1.

[0033] Figure 4 illustrates a diagram of an example of a method 460 for a failover switch consistent with the present disclosure. In some examples, the method 460 can be implemented by the system 100 as referenced in Figure 1 , by the computing device 214 as referenced in Figure 2, and/or by the system 330 as referenced in Figure 3. In some examples, the method 460 can prevent a standby processing resource from implementing inconsistent or erroneous runtime states that caused a failure of an active processing resource.

[0034] At 462 the method 460 can include receiving, at a first processing resource, an event trigger to store a snapshot of state information for the first processing resource. As described herein, an event trigger can be initiated by an administrator to ensure that a reliable snapshot of state information is stored in the memory resource. That is, the event trigger can be sent to the first processing device when it is determined that reliable state information is within the first processing resource.

[0035] At 464 the method 460 can include executing, at the first processing resource, a number of state configuration changes for the first processing resource. In some examples, executing the number of state configuration changes can include performing a number of changes to the state information of the first processing resource. In some examples, the state configuration changes can be utilized to alter settings of the first processing resource. In some examples, the state configuration changes can cause problems with the functionality of the first processing resource.

[0038] At 486 the method 460 can include activating, at the first processing resource, a second processing resource, wherein the first processing resource is placed into a standby mode. As described herein, activating the second processing resource can include starting the second processing resource and/or enabling the second processing resource to provide processing capabilities for the computing device. In some examples, the second processing resource could be in a standby mode when the second processing resource is activated, in some examples, the second processing resource can be activated when it is determined that the first processing resource has failed, in some examples, activating the second processing resource can include activating a standby processing resource upon a failure of the first processing resource.

[0037] At 468 the method 460 can include extracting, at the second processing resource, the snapshot of state information for the first processing resource from a memory resource. In some examples, the second processing resource can include state information that is synced to the first processing resource. As described herein, the synced state information can result in the second processing resource failing for the same or similar reason as the first processing resource. By extracting the snapshot of state information, the second processing resource can avoid a failure in the same or similar way as the first processing resource failed.

[0038] At 470 the method 460 can include applying, at the second processing resource, the extracted snapshot of state information to the second processing resource. As described herein, the second processing resource can apply the snapshot of state information to initiate a number of state changes as described herein. In some examples, applying the extracted snapshot of state information can include altering state information of the second processing resource from state information synced with the first processing resource. [0039] in some examples, the method 460 can include syncing, at the first processing resource, a number of state configuration changes applied to the first processing resource with the second processing resource. As described herein, the first processing resource can sync state configuration changes with the second processing resource to ensure that the second processing resource can resume processing instructions for the computing device upon a failover switch.

[0040] In some examples, the snapshot can be based on a predicted failure of updated state information of the first processing resource. For example, the number of state changes can be for a relatively low workflow for the first processing resource, in this example, the snapshot can be a number of state changes that can be for a relatively high workflow. Thus, in this example, a predicted failure of the first processing resource can be due to a relatively high workflow and thus the snapshot will provide state changes to the second processing resource to handle the relatively high workflow. In some examples, the snapshot can be updated based on a predicted failure of updated state information of the first processing resource.

[0041] As used herein, "logic" is an alternative or additional processing resource to perform a particular action and/or function, etc., described herein, which includes hardware, e.g., various forms of transistor logic, application specific integrated circuits (ASICs), etc., as opposed to computer executable instructions, e.g., software firmware, etc., stored in memory and executable by a processor. Further, as used herein, "a" or "a number of something can refer to one or more such things. For example, "a number of widgets" can refer to one or more widgets.

[0042] The above specification, examples and data provide a description of the method and applications, and use of the system and method of the present disclosure. Since many examples can be made without departing from the spirit and scope of the system and method of the present disclosure, this specification merely sets forth some of the many possible example configurations and implementations.