Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
COMMUNICATION PATH LOSS
Document Type and Number:
WIPO Patent Application WO/2017/052541
Kind Code:
A1
Abstract:
Examples disclosed herein relate to detecting a loss of communication from a client at a first network path, wherein the first network path is designated a primary network path. A determination may be made as to whether a second network path is receiving communication from the client, wherein the second network path is designated a secondary network path. In response to determining that the secondary network path is receiving communication from the client, the second network path may be designated as the primary network path.

Inventors:
KOOYERS SHERIDAN (US)
Application Number:
PCT/US2015/051807
Publication Date:
March 30, 2017
Filing Date:
September 24, 2015
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
HEWLETT PACKARD ENTPR DEV LP (US)
International Classes:
H04L12/26; H04L12/24; H04L29/08
Foreign References:
US20080288671A12008-11-20
US20040078632A12004-04-22
US20110087787A12011-04-14
US20050036442A12005-02-17
US20120170467A12012-07-05
Attorney, Agent or Firm:
SORENSEN, C. Blake et al. (US)
Download PDF:
Claims:
CLAIMS

We claim:

1 . A non-transitory machine-readable storage medium comprising instructions to:

detect a loss of data from a client at a first communication path, wherein the first communication path is designated a primary communication path;

determine whether a second communication path is receiving data from the client, wherein the second communication path is designated a secondary communication path; and

in response to determining that the secondary communication path is receiving data from the client, designate the second communication path as the primary communication path.

2. The non-transitory machine-readable medium of claim 1 , wherein the instructions to designate the second communication path as the primary communication path comprise instructions to designate the first communication path as the secondary communication path.

3. The non-transitory machine-readable medium of claim 1 , wherein the second communication path comprises one of a plurality of designated secondary communication paths.

4. The non-transitory machine-readable medium of claim 1 , wherein the primary communication path is associated with a primary data storage device and the secondary communication path is associated with a secondary data storage device.

5. The non-transitory machine-readable medium of claim 4, wherein the data from the client comprises data for storage to the primary data storage device.

6. The non-transitory machine-readable medium of claim 4, wherein the instructions to designate the first communication path as the secondary communication path comprise instructions to change a data replication direction between the primary data storage device and the secondary data storage device.

7. The non-transitory machine-readable medium of claim 1 , wherein the instructions to determine whether the second communication path is receiving data from the client comprise instructions to determine whether the first communication path has ceased receiving data from the client.

8. A computer-implemented method, comprising:

designating a first communication path between a client and a first data storage device as a primary communication path;

designating a second communication path between a client and a second data storage device as a secondary communication path;

establishing a data replication direction from the first data storage device to the second data storage device;

detecting a loss of the first communication path between the client and the first data storage device; and

in response to detecting the loss of the first communication path: re-designating the second communication path as the primary network path, and

re-establishing the data replication direction from the second data storage device to the first data storage device.

9. The computer-implemented method of claim 8, wherein redesignating the second communication path as the primary communication path comprises informing the client to use the second communication path as the primary network path.

10. The computer-implemented method of claim 9, wherein redesignating the second communication path as the primary communication path comprises:

identifying a second client using the first communication path as the primary communication path; and

informing the second client to use the second communication path as the primary communication path.

1 1 . The computer-implemented method of claim 8, wherein detecting the loss of the first communication path between the client and the first data storage device comprises detecting the client providing data to the second data storage device instead of the first data storage device.

12. The computer-implemented method of claim 8, wherein the second communication path comprises one of a plurality of designated secondary communication paths.

13. The computer-implemented method of claim 12, wherein each of the plurality of designated secondary communication paths is associated with a priority value.

14. The computer-implemented method of claim 8, wherein the primary communication path designation and the secondary communication path designation each comprise asymmetric logical unit access (ALUA) states.

15. A system, comprising:

a first data storage engine to:

receive a primary storage designation,

receive data for storage from a client on a primary communication path,

provide the data received for storage for replication to a second data storage engine,

detect an interruption in the receipt of data for storage,

determine whether the second data storage engine is receiving data for storage from the client on a secondary communication path, and

in response to determining that the secondary data storage engine is receiving data for storage from the client on a secondary communication path:

designate the second data storage engine as the primary data storage engine, and

cause the second data storage engine to send the data received from the client by the second data storage engine to the first data storage engine for replication.

Description:
COMMUNICATION PATH LOSS

BACKGROUND

[0001 ] Data is often sent from numerous client devices to a storage device and/or multiple storage devices. In some situations, the storage devices may comprise primary and secondary storage devices that may replicate the data between them.

BRIEF DESCRIPTION OF THE DRAWINGS

[0002] In the accompanying drawings, like numerals refer to like components or blocks. The following detailed description references the drawings, wherein:

[0003] FIG. 1 is a block diagram of an example data communication device;

[0004] FIG. 2 is a flowchart of an example of a method for providing data communication; and

[0005] FIG. 3 is a block diagram of an example system for providing data communication.

DETAILED DESCRIPTION

[0006] In many data center or cloud environments data may be replicated to secondary or tertiary sites for disaster tolerance and high availability applications. Application servers may be deployed across multiple geographical sites with access to local and remote storage devices via redundant communication paths such as Storage Area Networks (SAN). Such storage devices may transparently failover client communications to a secondary site when a primary storage device fails. However, if there is a SAN failure or other server site failure, such that the application server loses access to the primary storage device, intervention may be required at the server site to restore data communication. [0007] Implementations consistent with this disclosure may allow the storage device to detect the communication failure scenario and automatically switch the server to access to an available secondary communication path. For example, data flow may be monitored on the active/primary and standby/secondary input/output (I/O) paths between the application servers and data storage devices. The primary I/O communication path may receive data directly from a client application server then replicate that data to other storage devices. The other storage devices may, for example, be accessible to the client server via the secondary I/O communication path and may be located in a different data center. In this environment, SCSI Asymmetic Logical Unit Access (ALUA) states may be used to control I/O access to the data devices by presenting the primary and secondary I/O paths to the client servers using the same World Wide Name (WWN).

[0008] Normally, data received from the client server on the secondary communication path is rejected, as data is expected to be replicated to the storage device on the secondary path from the storage device on the primary path rather than received directly from the client server. If the data communication on the primary I/O communication path becomes zero, however, and data begins to be received on the secondary I/O communication path, for a threshold period of time, the primary and secondary communication paths may be switched. Thus the secondary path may be re-designated as the primary communication path, allowing data to be received and stored while the original primary path may be re-designated as a secondary communication path. The secondary/backup storage device becomes the new primary storage device so that data is serviced by only one storage device to maintain data consistency. The primary and secondary storage devices may periodically share ALUA state and data communication information so that communication path state changes occur within maximum I/O service times to facilitate transparent failover of I/O workloads.

[0009] Referring now to the drawings, FIG. 1 is a block diagram of an example data communication device 100 consistent with disclosed implementations. Data communication device 100 may comprise a processor 1 10 and a non-transitory machine-readable storage medium 120. Data communication device 100 may comprise a computing device such as a server computer, a desktop computer, a laptop computer, a handheld computing device, a smart phone, a tablet computing device, a mobile phone, a network device (e.g., a switch and/or router), or the like.

[0010] Processor 1 10 may comprise a central processing unit (CPU), a semiconductor-based microprocessor, a programmable component such as a complex programmable logic device (CPLD) and/or field-programmable gate array (FPGA), or any other hardware device suitable for retrieval and execution of instructions stored in machine-readable storage medium 120. In particular, processor 1 10 may fetch, decode, and execute a plurality of detect loss of data instructions 132, communication path determination instructions 134, and communication path designation instructions 136 to implement the functionality described in detail below.

[001 1 ] Executable instructions may comprise logic stored in any portion and/or component of machine-readable storage medium 120 and executable by processor 1 10. The machine-readable storage medium 120 may comprise both volatile and/or nonvolatile memory and data storage components. Volatile components are those that do not retain data values upon loss of power. Nonvolatile components are those that retain data upon a loss of power.

[0012] The machine-readable storage medium 120 may comprise, for example, random access memory (RAM), read-only memory (ROM), hard disk drives, solid- state drives, USB flash drives, memory cards accessed via a memory card reader, floppy disks accessed via an associated floppy disk drive, optical discs accessed via an optical disc drive, magnetic tapes accessed via an appropriate tape drive, and/or other memory components, and/or a combination of any two and/or more of these memory components. In addition, the RAM may comprise, for example, static random access memory (SRAM), dynamic random access memory (DRAM), and/or magnetic random access memory (MRAM) and other such devices. The ROM may comprise, for example, a programmable read-only memory (PROM), an erasable programmable read-only memory (EPROM), an electrically erasable programmable read-only memory (EEPROM), and/or other like memory device. [0013] Detect loss of data instructions 132 may detect a loss of data from a client 150 at a first communication path 160, wherein the first communication path is designated a primary communication path. The designation of a communication path as a primary and/or secondary communication path may use, for example, ALUA state designations. Client 150 may, for example, comprise a computing device such as an application server. First communication path 160 may comprise a path over a network to allow communication of data between client 150 and device 100. Client 150 may provide data for storage to a primary data storage device, such as device 100.

[0014] Communication path determination instructions 134 may determine whether a second communication path (not shown) is receiving data from the client 150, wherein the second communication path is designated a secondary communication path. In some implementations, communication path determination instructions 134 may determine whether the first communication path 160 has ceased receiving data from the client 150. For example, client 150 may detect that first communication path 160 is no longer active, such as may occur with a network disruption between client 150 and device 100. Device 100 may communicate with another computing device, such as a storage device at another data center, to determine whether client 150 is trying to send data on the secondary communication path to the other data center and/or other storage device by querying the other storage device via a network.

[0015] In some implementations, the disruption to first communication path 160 may affect the ability of device 100 to communicate with the secondary storage device as well. In such occurrences, device 100 may automatically designate itself as a secondary device instead of the primary device. Once communication path 160 to client 150 is restored, client 150 may be instructed to resume treating first communication path 160 as the primary communication path or may be informed that first communication path 160 should be designated a secondary communication path.

[0016] Communication path designation instructions 136 may, in response to determining that the secondary communication path is receiving data from the client 150, designate the second communication path as the primary communication path. For example, device 100 and a second device, such as another storage device at another data center, may communicate with each other and agree to designate the other storage device as primary while device 100 is designated as secondary. These designations may comprise, for example, ALUA states. The new primary storage device may continue to receive data from client 150 on the newly designated primary communication path.

[0017] Communication path designation instructions 136 may further comprise instructions to designate the first communication path 160 as the secondary communication path. In some implementations, the second communication path may comprise one of a plurality of available designated secondary communication paths. In some implementations, each of the plurality of designated secondary communication paths may be associated with a priority value, with the highest priority value secondary path becoming the new primary path. In some implementations, communication path designation instructions 136 may further comprise instructions to change a data replication direction between the primary data storage device and the secondary data storage device. For example, device 100 may replicate data received from client 150 to secondary storage devices while acting as a primary storage device. Once first communication path 160 has been designated as a secondary communication path, however, device 100 may begin receiving replicated data from the storage device associated with the newly designated primary communication path.

[0018] FIG. 2 is a flowchart of an example method 200 for data communication consistent with disclosed implementations. Although execution of method 200 is described below with reference to the components of device 100, other suitable components for execution of method 200 may be used.

[0019] Method 200 may begin in stage 205 and proceed to stage 210 where device 100 may designate a first communication path between a client and a first data storage device as a primary communication path. For example, ALUA states may be used to inform a client and/or multiple clients of which of a plurality of available storage devices and communication paths to those storage devices should be treated as primary/active. A primary communication path may be used to submit all data for storage.

[0020] Method 200 may then advance to stage 215 where device 100 may designate a second communication path between a client and a second data storage device as a secondary communication path. For example, ALUA states may be used to inform a client and/or multiple clients of that each of a plurality of available storage devices and communication paths not designated as primary should be treated as secondary/standby. A secondary communication path may be used to submit data for storage after a primary communication path has failed.

[0021 ] Method 200 may then advance to stage 220 where device 100 may establish a data replication direction from the first data storage device to the second data storage device. For example, the primary data storage device may send copies of data received from the client to the secondary data storage devices.

[0022] Method 200 may then advance to stage 225 where device 100 may detect a loss of the first communication path between the client and the first data storage device. For example, detect loss of data instructions 132 may detect a loss of data from a client 150 at a first communication path 160, wherein the first communication path is designated a primary communication path. The designation of a communication path as a primary and/or secondary communication path may use, for example, ALUA state designations. Client 150 may, for example, comprise a computing device such as an application server. First communication path 160 may comprise a path over a network to allow communication of data between client 150 and device 100. Client 150 may provide data for storage to a primary data storage device, such as device 100.

[0023] In some implementations, detecting the loss of the first communication path between the client and the first data storage device may comprise detecting the client providing data to the second data storage device instead of the first data storage device. For example, communication path determination instructions 134 may determine whether a second communication path is receiving data from the client 150, wherein the second communication path is designated a secondary communication path. In some implementations, communication path determination instructions 134 may determine whether the first communication path 160 has ceased receiving data from the client 150. For example, client 150 may detect that first communication path 160 is no longer active, such as may occur with a network disruption between client 150 and device 100. Device 100 may communicate with another computing device, such as a storage device at another data center, to determine whether client 150 is trying to send data on the secondary communication path to the other data center and/or other storage device by querying the other storage device via a network.

[0024] In some implementations, the disruption to first communication path 160 may affect the ability of device 100 to communicate with the secondary storage device as well. In such occurrences, device 100 may automatically designate itself as a secondary device instead of the primary device. Once communication path 160 to client 150 is restored, client 150 may be instructed to resume treating first communication path 160 as the primary communication path or may be informed that first communication path 160 should be designated a secondary communication path.

[0025] Communication path designation instructions 136 may further comprise instructions to designate the first communication path 160 as the secondary communication path. In some implementations, the second communication path may comprise one of a plurality of available designated secondary communication paths. In some implementations, each of the plurality of designated secondary communication paths may be associated with a priority value, with the highest priority value secondary path becoming the new primary path. In some implementations, communication path designation instructions 136 may further comprise instructions to change a data replication direction between the primary data storage device and the secondary data storage device. For example, device 100 may replicate data received from client 150 to secondary storage devices while acting as a primary storage device. Once first communication path 160 has been designated as a secondary communication path, however, device 100 may begin receiving replicated data from the storage device associated with the newly designated primary communication path.

[0026] For example, communication path designation instructions 136 may further comprise instructions to designate the first communication path 160 as the secondary communication path. In some implementations, the second communication path may comprise one of a plurality of available designated secondary communication paths. In some implementations, each of the plurality of designated secondary communication paths may be associated with a priority value, with the highest priority value secondary path becoming the new primary path and the former primary path becoming a new secondary path. In some implementations, communication path designation instructions 136 may further comprise instructions to change a data replication direction between the primary data storage device and the secondary data storage device. For example, device 100 may replicate data received from client 150 to secondary storage devices while acting as a primary storage device. Once first communication path 160 has been designated as a secondary communication path, however, device 100 may begin receiving replicated data from the storage device associated with the newly designated primary communication path.

[0027] In some implementations, re-designating the second communication path as the primary communication path may comprise informing the client to use the second communication path as the primary network path. In some implementations, re-designating the second communication path as the primary communication path may comprise identifying a second client using the first communication path as the primary communication path and informing the second client to use the second communication path as the primary communication path.

[0028] Method 200 may then advance to stage 225 where device 100 may reestablishing the data replication direction from the second data storage device to the first data storage device. For example, the second data storage device may begin sending copies of the data received from the client to the first data storage device. [0029] If a loss and/or failure of the primary communication path is detected at stage 225, method 200 may advance to stage 230 where device 100 may redesignate the second communication path as the primary network path. For example, communication path designation instructions 136 may, in response to determining that the secondary communication path is receiving data from the client 150, designate the second communication path as the primary communication path. For example, device 100 and a second device, such as another storage device at another data center, may communicate with each other and agree to designate the other storage device as primary while device 100 is designated as secondary. These designations may comprise, for example, ALUA states. The new primary storage device may continue to receive data from client 150 on the newly designated primary communication path.

[0030] Method 200 may then advance to stage 235 where device 100 may reestablish the data replication direction from the second data storage device to the first data storage device. For example, the second data storage device may send a message to the first data storage device instructing the first data storage device to begin accepting replicated data from the second data storage device instead of accepting only original data from the client.

[0031 ] If no loss of communication path is detected at stage 225, or after the data replication direction has been re-established, method 200 may end at stage 250.

[0032] FIG. 3 is a block diagram of an example system 300 for providing data communication. System 300 may comprise a client 315 coupled to a network 318 providing a first communication path 320 to a first storage engine 325 and a second communication path 322 to a second storage engine 340. First storage engine 325 may comprise a server comprising a first data storage 330 and second storage engine 340 may similarly comprise a server comprising a second data storage 350. The servers may be situated at the same and/or geographically separated data centers. First storage engine 325 and second storage engine 340 may comprise a server communication path 335 that may allow for data replication (i.e., copying of data stored in one data storage to another data storage) and inter-server communication. In some implementations, server communication path 335 may utilize network 318 and/or may utilize a separate communication medium.

[0033] In some implementations, first storage engine 325 may receive a primary storage designation.

[0034] First storage engine 325 may begin to receive data for storage from a client 315 on a primary communication path 320 and provide the data received for storage for replication to a second data storage engine 340 via a server communication path 335.

[0035] Upon detection of an interruption in the receipt of data for storage from the client 315, first data storage engine may determine whether the second data storage engine 340 is receiving data for storage from the client 315 on a secondary communication path 322. For example, detecting the loss of the first communication path 320 between the client 315 and the first data storage engine 325 may comprise detecting the client 315 providing data to the second data storage engine 340 instead of the first data storage engine 325. For example, communication path determination instructions 134 may determine whether a second communication path 322 is receiving data from the client 315, wherein the second communication path 322 is designated a secondary communication path. In some implementations, communication path determination instructions 134 may determine whether the first communication path 320 has ceased receiving data from the client 315. For example, client 315 may detect that first communication path 320 is no longer active, such as may occur with a network 318 disruption between client 315 and first data storage engine 325. First data storage engine 325 may communicate with second data storage engine 340 at another data center, to determine whether client 315 is trying to send data on the secondary communication path 322 to the other data center and/or other storage device by querying the other storage device.

[0036] In response to determining that the secondary data storage engine 340 is receiving data for storage from the client 315 on a secondary communication path 322, the first data storage engine 325 may inform and/or designate the second data storage engine 340 as the primary data storage engine and cause the second data storage engine 340 to send the data received from the client 315 by the second data storage engine 340 to the first data storage engine 325 for replication. For example, server communication path 335 may be used to copy data received from the client 315 from second data storage 350 to first data storage 330.

[0037] Data storage engines 325, 340 may implement communication path designation instructions 136 that, in response to determining that the secondary communication path is receiving data from the client 150, designate the second communication path as the primary communication path. For example, device 100 and a second device, such as another storage device at another data center, may communicate with each other and agree to designate the other storage device as primary while device 100 is designated as secondary. These designations may comprise, for example, ALUA states. The new primary storage device may continue to receive data from client 150 on the newly designated primary communication path.

[0038] Communication path designation instructions 136 may further comprise instructions to designate the first communication path 160 as the secondary communication path. In some implementations, the second communication path may comprise one of a plurality of available designated secondary communication paths. In some implementations, each of the plurality of designated secondary communication paths may be associated with a priority value, with the highest priority value secondary path becoming the new primary path. In some implementations, communication path designation instructions 136 may further comprise instructions to change a data replication direction between the primary data storage device and the secondary data storage device. For example, device 100 may replicate data received from client 150 to secondary storage devices while acting as a primary storage device. Once first communication path 160 has been designated as a secondary communication path, however, device 100 may begin receiving replicated data from the storage device associated with the newly designated primary communication path. [0039] The disclosed examples may include systems, devices, computer- readable storage media, and methods for data communication. For purposes of explanation, certain examples are described with reference to the components illustrated in the Figures. The functionality of the illustrated components may overlap, however, and may be present in a fewer or greater number of elements and components. Further, all or part of the functionality of illustrated elements may coexist or be distributed among several geographically dispersed locations. Moreover, the disclosed examples may be implemented in various environments and are not limited to the illustrated examples.

[0040] Moreover, as used in the specification and the appended claims, the singular forms "a," "an," and "the" are intended to include the plural forms as well, unless the context indicates otherwise. Additionally, although the terms first, second, etc. may be used herein to describe various elements, these elements should not be limited by these terms. Instead, these terms are only used to distinguish one element from another.

[0041] Further, the sequence of operations described in connection with the Figures are examples and are not intended to be limiting. Additional or fewer operations or combinations of operations may be used or may vary without departing from the scope of the disclosed examples. Thus, the present disclosure merely sets forth possible examples of implementations, and many variations and modifications may be made to the described examples. All such modifications and variations are intended to be included within the scope of this disclosure and protected by the following claims.