This application is based upon and claims the benefit of priority of the prior Japanese Patent Application No. 2012-261748, filed on Nov. 29, 2012, the entire contents of which are incorporated herein by reference.
The embodiment discussed herein is related to a replica deployment method and a relay apparatus.
In an information processing apparatus, such as a server and so forth, connected to a network, in order to increase data reliability or processing performance, a duplicate (replica) of data is deployed (stored) in one or more information processing apparatuses located on the network. When a replica of data is deployed in other information processing apparatuses in the foregoing manner, a risk that loss of data due to a network failure, a failure of a storage device that stores data, or the like is caused may be reduced.
A deployment (storage) destination of a replica is normally determined in advance. Loss of data might be caused by an emergency event, such as a natural disaster, terrorism or some other man-caused disaster, and so forth. It is difficult to predict in advance a place (range) where such an emergency event occurs. Thus, when an emergency event occurs, it might not be able to place the replica in the deployment destination. Therefore, it is preferable to further reduce the probability that data is lost.
Related techniques are disclosed in, for example, Japanese Laid-open Patent Publication No. 2006-146293, Japanese Laid-open Patent Publication No. 2003-32290, Japanese Laid-open Patent Publication No. 2005-4243, and International Publication Pamphlet No. WO04/053696.
According to an aspect of the present invention, provided is a replica deployment method. In the method, a first information processing apparatus transmits a message storing a replica of data stored in the first information processing apparatus. The message has an unspecified destination. A first relay apparatus detects a second information processing apparatus provided in a network to which the first relay apparatus belongs. The first relay apparatus selects, as a transfer destination of the message, the second information processing apparatus or a second relay apparatus upon receiving the message. The first relay apparatus transfers the message to the selected transfer destination. The second information processing apparatus stores the replica therein upon receiving the message.
The objects and advantages of the invention will be realized and attained by means of the elements and combinations particularly pointed out in the claims.
It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory and are not restrictive of the invention, as claimed.
An embodiment will be hereinafter described in detail with reference to the accompanying drawings.
In the replica deployment method according to the present embodiment, each information processing apparatus may automatically select another information processing apparatus which is considered suitable as a deployment destination of a replica to be deployed, and place the replica in the selected information processing apparatus. A network system to which the above replica deployment method is applicable is, as illustrated in
Each of the LANs 1 is connected to the WAN 2 via a router 11. Each of the LANs 1 includes one or more servers 12. Each of the LANs 1 may include a switch or the like as a relay apparatus other than the router 11.
The LAN 1-1 includes a server (hereinafter referred to as a “replica source server”) 12-1 that serves as a transmission source of replica to be deployed, and the LAN 1-2 includes a server (hereinafter referred to as a “replica destination server”) 12-2 that serves as a deployment destination where the replica is placed. Thus, in
In the present embodiment, the replica source server 12 that transmits replica to be deployed transmits, as a message that stores the replica, a replica duplicate packet 20 having the configuration illustrated in
For example, one of the servers 12 that is instructed by an operator may create and transmit the replica duplicate packet 20 illustrated in
The duplicate management data 25 includes identification data by which the replica source server 12 is identified, a sequence number used for identifying, for example, a type of deployed replica stored in the data portion 22, and so forth. Thus, when the replica destination server 12 is determined, the duplicate management data 25 enables communication between the replica source server 12 and the replica destination server 12 and also enables storing of the deployed replica in the replica destination server 12 in a suitable manner.
In the present embodiment, as the above-described identification data, universal unique identifier (UUID) is employed. This is because, the UUID may provide, even without control, identification data that is uniquely identified.
In order not to cause loss of data, there might be cases where a condition is to be satisfied. For example, when an emergency event occurs due to a natural disaster, such as an earthquake, a flooding, and so forth, a server 12 located at a location distant from the replica source server 12 may be preferably selected as the replica destination server 12. In addition, when such an emergency event occurs, normally, there is only a little time. Therefore, when the deployed replica is relatively large, a certain amount of throughput is to be ensured. Thus, in the present embodiment, the data portion 22 is configured to contain the evaluation criteria 26 for selecting a server 12 that is preferable as the replica destination server 12.
Examples of data in the evaluation criteria 26 may include a delay time, a reliability degree, a throughput, a storage cost, an upper limit of time, and so forth. The delay time and the throughput are used for specifying conditions that the replica destination server 12 is to satisfy to complete placing the deployed replica. The reliability degree indicates the importance of the deployed replica. Thus, the reliability degree is used for specifying a certainty, that is, for example, an availability ratio, a mean time between failures (MTBF), or the like, which the replica destination server 12 is expected to satisfy. The storage cost is used for limiting the replica destination server 12 on the basis of the cost spent for placing the deployed replica. The upper limit of time is a maximum time taken to complete duplication of the deployed replica. By specifying the upper limit of time, the range of a server 12 that may be selected as the replica destination server 12 is limited. A reason why the upper limit of time is taken into consideration is that, in an emergency event, it is reasonable to consider that a time allowed for packet transmission performed by the replica source server 12-1 is limited.
The FWH 32 is a memory that stores a basic input/output system (BIOS). The BIOS is read out to the memory module 33 and executed by the CPU 31. The hard disk drive 35 stores an operating system (OS) and various types of application programs. The CPU 31 may read out the OS from the hard disk drive 35 via a controller 36 and execute the OS, after a start-up of the BIOS is completed. Communication via the NIC 34 is enabled by a start-up of the BIOS.
A program for creation and transmission of the replica duplicate packet 20 or a program for storing deployed replica upon receiving the replica duplicate packet 20 may be incorporated, for example, in the OS. Such a program may be realized as an application program or a sub-program that is to be incorporated in an application program.
The BMC 37 is a device used for managing the servers 12. The BMC 37 has a communication function and may perform communication with a console or an external management device via a communication line (not illustrated). A notification of the occurrence of an emergency event, an instruction for responding to an emergency event, or the like may be given, for example, to the BMC 37. That is, the CPU 31 may respond to an emergency event, for example, in accordance with the instruction given via the BMC 37.
The CPU 41 executes a program (hereinafter referred to as a “firmware”) stored, for example, in the memory module 42. By executing the firmware, the CPU 41 functions as a server detection section 411 and a transfer control section 412. The details of each of the server detection section 411 and the transfer control section 412 will be described later.
The memory module 42 is used not only for storing the firmware, but also for storing various types of data used in the router 11. Examples of the data include a routing table 421, a prospective server table 422, a prospective router table 423, a geo-table 424, and so forth.
The routing table 421 is a table that stores routing information which is referred to when the transfer engine 46 performs the routing.
The prospective server table 422 is a table that stores a result of detecting a server 12 that may be a transfer destination of the replica duplicate packet 20 in the LAN 1 to which the router 11 belongs. The prospective server table 422 is created and updated by the server detection section 411.
As illustrated in
The server name is identification data that uniquely indicates a detected server 12. In the present embodiment, an Internet Protocol (IP) address is employed as the server name.
The delay time is a period of time from the time of transmitting a message to a detected server 12 to the time of receiving a response of the server 12. The throughput is a data amount that may be processed by a detected server 12 in a unit time. The reliability degree is, for example, an availability ratio (a value ranging from 0 to 1). The above-described types of data are of communication statistic data that may be obtained by using an existing network diagnosis program.
The prospective router table 423 is a table in which a router name and various types of communication statistic data are stored for each of other routers 11 with which the router 11 may directly communicate. The various types of communication statistic data may be obtained using an existing network diagnosis program.
The geo-table 424 is a table in which geospatial information for each router 11 provided on the WAN 2 is stored.
In
The geo-table 424 is preferably in the latest state at all the time. Because of this, a router 11 that is newly added or a router 11 replacing one of the routers 11 may be configured to transmit and receive the geospatial information to and from other routers 11.
A TCAM 43 is a memory to which routing information stored in the routing table 421 is read out when an actual routing is performed by the router 11. Accordingly, when the router 11 performs routing, the router 11 retrieves the routing information read out to the TCAM 43, thereby determining an actual transfer destination of a packet.
Each of the line interface sections 44 is used for connecting the router 11 to an external device which the router 11 may directly transmit and receive a packet to and from. The external device is another router 11, a switch 13, a server 12, or the like. The router 11 performs communication with an external device using any one of the line interface sections 44.
The data bus 45 connects the CPU 41, the memory module 42, the TCAM 43, each of the line interface sections 44, and transfer engine 46 with one another.
When one of the line interface sections 44 receives a packet, the transfer engine 46 refers to the routing information stored in the TCAM 43 to determine the transfer destination of the packet, and causes another one of the line interface sections 44 which corresponds to the determined transfer destination to transmit the packet. The transfer engine 46 includes a packet transfer section 462 in order to perform the above-described routing.
The transfer engine 46 further includes a packet screen section 461. The packet screen section 461 has a function of determining whether or not a packet received by one of the line interface sections 44 is a replica duplicate packet 20. When the packet screen section 461 determines that a packet received by one of the line interface sections 44 is not a replica duplicate packet 20, the packet transfer section 462 performs the routing.
When the packet screen section 461 determines that the packet is a replica duplicate packet 20, the replica duplicate packet 20 is processed by the CPU 41. The transfer control section 412 realized on the CPU 41 determines a transfer destination of the replica duplicate packet 20 and causes the replica duplicate packet 20 to be transferred to the determined transfer destination.
First, the CPU 41 obtains an IP address stored as a source address in the header portion 21 of the received replica duplicate packet 20, for example, from the transfer engine 46 (S1). When the replica source server 12 is provided in the LAN 1 to which the router 11 belongs, the IP address obtained in this case is only the IP address of the replica source server 12. When the replica source server 12 is not provided in the LAN 1 to which the router 11 belongs, the CPU 41 obtains, in addition to the IP address of the replica source server 12, the IP address of a router (hereinafter referred to as a “local source router” or a “local source”) 11 which relayed the replica duplicate packet 20 most recently. The following description is given, unless specifically mentioned, assuming a case in which the replica source server 12 is not provided in the network to which the router 11 belongs.
Next, the CPU 41 refers to the geo-table 424 to obtain the geospatial information for each of the two routers 11 (S2). The two pieces of geospatial information are obtained from the IP address of the router (hereinafter referred to as a “global source router” or a “global source”) 11 provided in the network to which the replica source server 12 is belongs, and the IP address of the local source, that is, the router 11 located immediately before the router 11 on the transfer path.
Next, the CPU 41 obtains a straight line connecting the two pieces of geospatial information on a plane as a vector (hereinafter referred to as a “first vector”) of the transfer path of the replica duplicate packet 20 (S3). Thereafter, the CPU 41 refers to the prospective router table 423 to create a list of prospective routers, and refers to the geo-table 424 to obtain, for each of the prospective routers 11, the geospatial information thereof and a vector (hereinafter referred to as a “second vector”), that is, a straight line connecting the router 11 and each of the prospective routers 11 (S4). After the geospatial information and the second vector are obtained for each prospective router 11, the process proceeds to S5.
In S5, the CPU 41 performs evaluation of the obtained second vector for each prospective router 11. The evaluation is performed by calculating an angle made by the first vector and the second vector such that, as the angle is closer to 0, a vector evaluation value increases, and as the angle is closer to 180 degrees, the vector evaluation value reduces. Thus, the replica duplicate packet 20 is transferred to a router 11 located more distant from the replica source server 12.
Next, the CPU 41 refers to evaluation criteria 26 of the replica duplicate packet 20, the prospective router table 423, and the vector evaluation value to further extract routers 11 possibly considered as a transfer destination from the list of the prospective routers 11 (S6). The routers 11 to be extracted are the routers 11 in which the deployed replica will be presumably placed within the upper limit of time specified in the evaluation criteria 26 or an upper limit of time which has been set in advance. This is because, in an emergency event, it is reasonable to consider that a time allowed for the replica source server 12-1 to transmit a packet is limited. A set of extracted routers 11 is referred to as a “prospective set S”. The vector evaluation value may be used as a weight (coefficient) by which each piece of data included in the evaluation criteria 26 is multiplied.
The global source router 11 receives the replica duplicate packet 20 transmitted by the replica source server 12. The first vector is not obtained. Thus, in the global source router 11, normally, all of the routers 11 registered in the prospective router table 423 are extracted. Thus, S1 to S5 is not practically executed.
The CPU 41 that has created the prospective set S next determines whether or not the prospective set S is an empty set (S7). When the prospective set S is an empty set, that is, when there is no router 11 considered as a transfer destination, the determination result in S7 is “Yes” and the process proceeds to S8. When there is a router 11 considered as a transfer destination, the determination result in S7 is “No” and the process proceeds to S9.
In S8, the CPU 41 refers to the prospective server table 422 to select an optimal server 12 from the servers 12 which are in operation in the LAN 1 to which the router 11 belongs, and transfers the replica duplicate packet 20 to the selected server 12. Thereafter, the transfer control is ended. If the prospective set S is an empty set, the replica duplicate packet 20 may be transferred to a server 12 located more distant from the replica source server 12 by selecting the optimal server 12 from the servers 12 which are in operation in the LAN 1 to which the router 11 belongs.
On the other hand, in S9, the CPU 41 determines a router 11 (represented by “ROUTER e” in
Next, a transfer sequence of relaying a replica duplicate packet between routers 11 will be specifically described with reference to
In response to an instruction of an operator or the like, the replica source server 12-1 creates a replica duplicate packet 20 that stores deployed replica, as illustrated in
The router 11A receives the replica duplicate packet 20 and the CPU 41 in the router 11A is notified that the replica duplicate packet 20 has been received (SP1). Thus, the CPU 41 starts the transfer control and creates a prospective set S (SP2). After creating the prospective set S, the CPU 41 determines the router 11-2 as a transfer destination of the replica duplicate packet 20 among the routers in the prospective set S (SP3). As a result, the replica duplicate packet 20 is transferred from the router 11A to the router 11-2 (SS2).
In the router 11-2, similar to the router 11A, the CPU 41 starts the transfer control. However, the prospective set S has become empty, and the CPU 41 determines, as the replica destination server 12-2, an optimal server 12 among the servers 12 registered in the prospective server table 422. As a result, the replica duplicate packet 20 is transferred from the router 11-2 to the replica destination server 12-2 (SS3).
The replica destination server 12-2 extracts the deployed replica stored in the data portion 22 of the replica duplicate packet 20 and stores the extracted deployed replica in a storage device (SD1). When the replica destination server 12-2 has the configuration illustrated in
Upon receiving the duplication completion packet, the router 11-2 transfers the received duplication completion packet to the router 11A (SS5). The router 11A also transfers the received duplication completion packet to another router 11 located immediately before the router 11A on the transfer path of the replica duplicate packet 20. Thus, the duplication completion packet is transferred to the replica source server 12-1 inversely following the transfer path of the replica duplicate packet 20 (SS6).
When the number of the transmitted replica duplicate packets 20 is only one, the replica source server 12-1 which received the duplication completion packet assumes that duplication of the deployed replica is completed (SR1). Normally, the whole deployed replica is not transmitted by 1 packet. Thus, when all packets (responses) are received, each of which indicates that a packet storing the deployed replica has been appropriately processed, it is determined that duplication of the deployed replica is completed.
In transmitting the deployed replica divided into a plurality of replica duplicate packets 20, there is a probability that a duplication completion packet is received before all pieces of the deployed replica are transmitted. In such a case, transmission of a remaining part of deployed replica may be performed using a normal packet whose transmission destination is the replica destination server 12-2 that is identified based on the duplication completion packet.
When the server 12 determined as the replica destination server 12-2 is not normally operating, that is, when the server 12 is not operating, or when a failure occurs in the server 12, and so forth, the router 11-2 does not receive the duplication completion packet. Thus, the router 11-2 transmits a response indicating that the transfer of the replica duplicate packet 20 has failed to the router 11A (SS11). As a result, the router 11A determines, as a transfer destination of the replica duplicate packet 20, another router 11B from the routers in the prospective set S (SP11). As a result, the replica duplicate packet 20 is transferred from the router 11A to the router 11B (SS12).
When the router 11-2 detects servers 12 other than the replica destination server 12-2, the router 11-2 selects a server 12 which may be selected as a transfer destination of the replica duplicate packet 20, and transfers the replica duplicate packet 20 to the selected server 12. Therefore, the failure in the transfer illustrated in
In the example illustrated in
Note that, in the present embodiment, the replica duplicate packet 20 is transferred in the direction in which the distance from the replica source server 12 increases, but there may be cases where transfer of the replica duplicate packet 20 is performed in another manner. For example, a boundary from the location of the replica source server 12 is determined for an area in which the replica duplicate packet 20 may be presumably processed and one of the servers 12 located beyond the boundary may be caused to process the replica duplicate packet 20. In this case, data indicating the installation site of the replica source server 12 may be stored in the evaluation criteria 26. As another option, area data that specifies the range of an area where the replica duplicate packet 20 is preferably processed may be configured to be inserted to the evaluation criteria 26, and the server 12 to process the replica duplicate packet 20 may be selected in accordance with the area data.
All examples and conditional language recited herein are intended for pedagogical purposes to aid the reader in understanding the invention and the concepts contributed by the inventor to furthering the art, and are to be construed as being without limitation to such specifically recited examples and conditions, nor does the organization of such examples in the specification relate to a showing of the superiority and inferiority of the invention. Although the embodiment of the present invention has been described in detail, it should be understood that the various changes, substitutions, and alterations could be made hereto without departing from the spirit and scope of the invention.
Number | Date | Country | Kind |
---|---|---|---|
2012-261748 | Nov 2012 | JP | national |
Number | Name | Date | Kind |
---|---|---|---|
4807224 | Naron et al. | Feb 1989 | A |
5983281 | Ogle et al. | Nov 1999 | A |
6181704 | Drottar et al. | Jan 2001 | B1 |
20020143999 | Yamagami | Oct 2002 | A1 |
20050125467 | Oosaki et al. | Jun 2005 | A1 |
20070064703 | Hernandez et al. | Mar 2007 | A1 |
20080062926 | Oba | Mar 2008 | A1 |
20090213861 | Benner et al. | Aug 2009 | A1 |
20100262882 | Krishnamurthy | Oct 2010 | A1 |
20120158872 | McNamee et al. | Jun 2012 | A1 |
Number | Date | Country |
---|---|---|
2003-32290 | Jan 2003 | JP |
2005-4243 | Jan 2005 | JP |
2006-146293 | Jun 2006 | JP |
WO 2004053696 | Jun 2004 | WO |
Number | Date | Country | |
---|---|---|---|
20140146688 A1 | May 2014 | US |