Source: https://patents.google.com/patent/JP6277853B2/en
Timestamp: 2019-10-14 01:35:38
Document Index: 543829931

Matched Legal Cases: ['art 12', 'art 13', 'art 14', 'art 20', 'art 21', 'art 22', 'art 30', 'art 31']

JP6277853B2 - Control device, communication device, and communication method - Google Patents
Control device, communication device, and communication method Download PDF
JP6277853B2
JP6277853B2 JP2014098872A JP2014098872A JP6277853B2 JP 6277853 B2 JP6277853 B2 JP 6277853B2 JP 2014098872 A JP2014098872 A JP 2014098872A JP 2014098872 A JP2014098872 A JP 2014098872A JP 6277853 B2 JP6277853 B2 JP 6277853B2
JP2014098872A
JP2015215799A (en
2014-05-12 Application filed by 富士通株式会社 filed Critical 富士通株式会社
2014-05-12 Priority to JP2014098872A priority Critical patent/JP6277853B2/en
2015-12-03 Publication of JP2015215799A publication Critical patent/JP2015215799A/en
2018-02-14 Publication of JP6277853B2 publication Critical patent/JP6277853B2/en
The present invention relates to a communication method in a network including a plurality of devices.
In a data center, a service for lending a virtual machine by operating one or more virtual machines (VMs) in each of a plurality of servers in the data center may be performed. For example, services such as SaaS (Software as a Service) and VPS (Virtual Private Server) are performed. Service providers may also provide multiple applications that can be used on virtual machines. In this case, the user selects one to be used by the user from the applications provided by the service provider and operates on the virtual machine. The service provider performs processing such as placement of a new virtual machine or movement of a virtual machine that has already been placed, depending on the power usage status or server congestion.
As a related technique, a method has been proposed in which a communication queue of a moving virtual machine is made resident in a shared memory shared by the movement destination and the movement source. In this method, the operating system (OS) and application of the moving virtual machine are copied to the shared memory and then copied to the moving destination (for example, Patent Document 1). Further, it has been proposed to store communication data in a common memory in a server on which a driver that manages communication processing with a plurality of virtual operating systems (OS) is executed (for example, Patent Document 2).
JP 2005-327279 A JP 2012-226471 A
In order to operate and manage the data center, the service provider sometimes collects the usage status of each application or limits the bandwidth usage for each user. In these processes, a process is performed for each flow of packets being transmitted and received. However, when moving virtual machines for server load balancing, the disparity in the number of virtual machines operating between servers is resolved without considering the types of flows being processed by virtual machines. Therefore, there is a possibility that the arrangement is not suitable for processing performed for each flow.
It is an object of the present invention to propose a method for distributing the load on a server while improving the efficiency of processing performed for each flow.
A control device according to the embodiment controls movement of a virtual machine between a plurality of servers. The control device includes an acquisition unit, a selection unit, and a transmission unit. The acquisition unit acquires a result of classifying data transmitted / received by each of the plurality of servers into flows for each destination for each virtual machine. The selection unit is configured to move a movement target, which is a virtual machine to be moved from the first server to the second server, which has a relatively large number of operating virtual machines among the plurality of servers, on the first server. Select from virtual machines. At this time, the selection unit preferentially selects a virtual machine having a larger processing number of flows transmitted and received by the second server. The transmission unit transmits a control packet for moving the movement target to the second server.
Efficiency of processing performed for each flow and load distribution of servers are performed.
It is a figure which shows the example of a structure of a communication apparatus. It is a figure which shows the example of a structure of a control apparatus. It is a figure which shows the example of the hardware constitutions of a communication apparatus and a control apparatus. It is a figure which shows the example of a network. It is a figure which shows the example of a VM arrangement | positioning table. It is a figure which shows the example of flow information. It is a figure which shows the example of flow analysis data. It is a figure explaining the example of a movement of a virtual machine. It is a flowchart explaining the example of a process of a control apparatus. It is a figure which shows the example of the movement method avoided by the method concerning embodiment. It is a figure which shows the example of the movement method avoided by the method concerning embodiment. It is a figure which shows the example of reduction of the queue by the method concerning embodiment. It is a figure which shows the example of the network by which 2nd Embodiment is used. It is a sequence diagram explaining the example of communication between a flow control apparatus and a VM management apparatus. It is a figure which shows the example of the packet transmitted / received between a flow control apparatus and VM management apparatus.
FIG. 1 shows an example of the configuration of the communication device 10. The communication device 10 includes a transmission unit 11, a reception unit 12, a communication unit 13, a packet processing unit 14, a control unit 20, and a storage unit 30. The control unit 20 includes a flow classification unit 21 and a VM management unit 22. The storage unit 30 stores flow information 31 and a collection queue 32.
The transmission unit 11 and the reception unit 12 are used for communication between the communication device 10 and a control device (FIG. 2) that controls the communication device. The communication unit 13 is used for communication between the communication device and other devices in the network. The packet processing unit 14 operates as an arbitrary number of virtual machines, and processes packets using an application. When the packet processing unit 14 operates as a plurality of virtual machines, the packet processing unit 14 also operates as a virtual switch.
The flow classification unit 21 classifies, for each flow, packets transmitted and received by the virtual machine operating in the packet processing unit 14 through communication with other devices in the network. In the following example, it is assumed that the flow classification unit 21 analyzes one flow for each combination of the packet destination address and the destination port number. Note that the flow classification unit 21 may classify the types of applications used for packet processing into a plurality of flows for each application by specifying information in the payload of the packet.
The flow classification unit 21 stores the classified result in the storage unit 30 as flow information 31. Further, the flow classification unit 21 stores the packets of each flow in the collection queue 32 for each flow. It is assumed that the collection queue 32 includes a different queue for each flow. The VM management unit 22 performs processing such as start, end, and movement of the virtual machine that operates in the packet processing unit 14. In other words, the VM management unit 22 performs an operation as a movement processing unit that performs processing for moving a virtual machine.
FIG. 2 shows an example of the configuration of the control device 40. The control device 40 includes a transmission unit 41, a reception unit 42, a control unit 50, and a storage unit 80. The control unit 50 includes a flow control unit 60 and a VM management unit 70. The flow control unit 60 includes an acquisition unit 61 and a selection unit 62. The VM management unit 70 includes a detection unit 71 and an arrangement table update unit 72. The storage unit 80 holds a VM arrangement table 81, flow information 82, and flow analysis data 83.
The transmission unit 41 transmits a packet to the communication device 10. The receiving unit 42 receives a packet from the communication device 10. The receiving unit 42 outputs a packet for notifying information on the virtual machine operating in the communication device 10 to the arrangement table updating unit 72, and obtains a packet for notifying information regarding the type of flow transmitted and received by the communication device 10. To the unit 61.
For each flow that is transmitted and received by the transmission source communication device 10 from the input packet, the acquisition unit 61 identifies the identification information of the virtual machine that is processing the flow, and the virtual machine that is processing the flow is running The identification information of the communication device 10 is acquired. The acquisition unit 61 stores the obtained information in the storage unit 80 as flow information 82.
The arrangement table update unit 72 updates the VM arrangement table 81 using the input packet. The VM arrangement table 81 is information in which identification information of a communication device 10 is associated with identification information of a virtual machine that is operating on the communication device 10. The detection unit 71 uses the VM arrangement table 81 to compare the number of operating virtual machines for the plurality of communication devices 10. When the difference in the number of operating virtual machines reaches the threshold Th, the detection unit 71 requests the selection unit 62 to select a virtual machine to be moved and a destination of the virtual machine. At this time, the detection unit 71 notifies the acquisition unit 61 of the candidate of the destination communication device and the candidate of the source communication device.
The selection unit 62 uses the information notified from the detection unit 71 and the flow information 82, so that the flow processed by the virtual machine operating in the source communication device 10 and the destination communication device 10 are used. Compare the flows being processed and find the number of matching flows. The selection unit 62 stores the obtained result as the flow analysis data 83 in the storage unit 80, and uses the flow analysis data 83 to select a virtual machine to be moved and a destination of the virtual machine. The selection unit 62 notifies the arrangement table update unit 72 of the selection result. The arrangement table updating unit 72 generates a control packet for moving the virtual machine, and via the transmission unit 41, the communication device 10 in which the virtual machine that is the movement target is operating, and the destination of the virtual machine It transmits to the communication apparatus 10 which becomes.
FIG. 3 is a diagram illustrating an example of a hardware configuration of the communication device 10 and the control device 40. Each of the communication device 10 and the control device 40 includes a processor 101, a memory 103, a network interface 104, a bus 105, and a storage device 106. Both the communication device 10 and the control device 40 can be realized as a computer. The bus 105 connects the processor 101, the memory 103, the network interfaces 104 (104a and 104b), and the storage device 106 so that data can be transmitted and received between them. Note that the processor 101 can execute a program stored in the storage device 106, for example. The memory 103 also stores data obtained by the operation of the processor 101 and data used for processing by the processor 101 as appropriate.
In the communication apparatus 10, the processor 101 operates as the packet processing unit 14 and the control unit 20, and the memory 103 operates as the storage unit 30. In the communication device 10, the network interface 104 a connected to the data communication network operates as the communication unit 13. On the other hand, since the network interface 104b is connected to the control network, it operates as the transmission unit 11 and the reception unit 12.
In the control device 40, the processor 101 operates as the control unit 50, and the memory 103 operates as the storage unit 80. In the control device 40, the transmission unit 41 and the reception unit 42 are realized by a network interface 104b connected to a control network and a processor 101. In the control device 40, the network interface 104a is optional, and when the control device 40 does not transmit / receive user data, the control device 40 may not include the network interface 104a.
FIG. 4 is a diagram illustrating an example of a network. Hereinafter, as illustrated in FIG. 4, a case where the communication devices 10 a to 10 c are connected to the control device 40 will be described as an example. The dotted line in FIG. 4 is an example of a control network used for communication between the communication devices 10a to 10c and the control device 40. In the example of FIG. 4, each of the communication devices 10a to 10c is a physical server. Further, in FIG. 4, data transmission / reception lines are omitted for easy understanding of the drawing. In the following description, in order to make it easy to distinguish which communication device 10 is used for processing, an alphabet assigned to the communication device 10 that is operating after the code may be described. For example, the flow classification unit 21a is the flow classification unit 21 in the communication device 10a.
It is assumed that the same number of virtual machines are operating in any of the communication devices 10a to 10c when the network operation is started. After that, it is assumed that the virtual machine is arranged as shown in FIG. 4 as a result of the end process being performed on the virtual machine whose operation has ended. Hereinafter, it is assumed that a VM number is used to distinguish virtual machines. The VM number is a character string in which a character string “VM” is followed by a number for identifying each virtual machine.
In the communication device 10a, virtual machines VM1 to VM3 are operating. It is assumed that the virtual machine VM1 processes flow A and flow B. Further, it is assumed that the virtual machine VM2 processes the flow A and the flow C, and the virtual machine VM3 processes the flow B and the flow C. The flow classification unit 21a outputs packets processed by the virtual machines VM1 to VM3 to the collection queue 32a for each flow. For this reason, the collection queue 32a is provided with a queue for flow A, a queue for flow B, and a queue for flow C.
In the communication device 10b, virtual machines VM4 and VM5 are operating. Assume that both the virtual machines VM4 and VM5 are processing flow B and flow C. Since the flow classification unit 21b outputs packets processed by the virtual machines VM4 and VM5 to the collection queue 32b for each flow, the collection queue 32b includes a queue for the flow B and a queue for the flow C.
In the communication device 10c, the virtual machine VM6 is operating, and the virtual machine VM processes the flow A and the flow C. Since the flow classification unit 21c outputs packets processed by the virtual machine VM6 to the collection queue 32c for each flow, the collection queue 32c includes a queue for the flow A and a queue for the flow C.
In addition, although the example of FIG. 4 shows the case where the communication devices 10a to 10c are included in the network, the number of the communication devices 10 in the network can be arbitrarily changed according to the implementation. Also, the number and type of flows processed by each virtual machine can be arbitrarily changed according to the implementation.
The VM management unit 22 of each communication device 10 transmits a packet for specifying a virtual machine operating in the communication device 10 to the control device 40 at predetermined intervals. The receiving unit 42 of the control device 40 outputs a packet for specifying a virtual machine operating in the communication device 10 to the arrangement table updating unit 72. Therefore, the arrangement table update unit 72 updates the VM arrangement table 81 using the input packet.
FIG. 5 is a diagram illustrating an example of the VM arrangement table 81. The VM arrangement table 81 associates, for each virtual machine, identification information of the communication device 10 in which the virtual machine is operating and identification information of the virtual machine. In the example of FIG. 5, a server number is used as the identification information of the communication device 10, and a VM number is used as the identification information of the virtual machine. Here, the server number is assigned to each communication device 10 in advance, and is assumed to be a character string in which a character string “Server” is followed by a number for identifying each communication device 10. In the example of FIG. 5, it is assumed that the server numbers assigned to each communication device 10 are communication device 10a = Server1, communication device 10b = Server2, and communication device 10c = Server3. Therefore, when the virtual machine is arranged as shown in FIG. 4, the VM arrangement table 81 is as shown in FIG.
The flow classification unit 21 of each communication device 10 controls a packet (flow notification packet) for notifying the type of flow to be processed in each virtual machine operating on the communication device 10 for each predetermined period. It is transmitted to the device 40. In the flow notification packet, the VM number of the virtual machine is associated with the type of flow processed by the virtual machine identified by the VM number. For example, the flow notification packet transmitted by the flow classification unit 21a includes the following information elements.
Destination address: Address of control device 40 Source address: Address of communication device 10a VM number: VM1
VM1 processing target: Flow A, Flow B
VM number: VM2
VM2 process target: Flow A, Flow C
VM number: VM3
VM3 processing target: Flow B, Flow C
The reception unit 42 of the control device 40 outputs the flow notification packet to the acquisition unit 61. Therefore, the acquisition unit 61 updates the flow information 82 using the input packet.
FIG. 6 is a diagram illustrating an example of the flow information 82. The flow information 82 represents the flow type of the flow being processed in each virtual machine. Also in the flow information 82, each virtual machine is expressed by a combination of a server number and a VM number. FIG. 6 is an example of flow information 82 created when virtual machines are arranged as shown in FIG. 4 and each virtual machine is processing the type of flow shown in FIG.
In the control device 40, the VM arrangement table 81 and the flow information 82 are updated in accordance with a change in the virtual machine operating in each communication device 10 in the network and a change in the flow processed in each virtual machine. Shall. That is, it is assumed that the detection unit 71 and the selection unit 62 can grasp the processing state of the current flow in the network and the operation state of the virtual machine using the VM arrangement table 81 and the flow information 82.
The detection unit 71 uses the VM arrangement table 81 to identify the number of virtual machines operating in each communication device 10. Further, the detection unit 71 obtains a difference in the number of operating virtual machines between the communication device having the largest number of operating virtual machines and the communication device having the smallest number of operating virtual machines. For example, when the VM arrangement table 81 is as shown in FIG. 5, the detection unit 71 includes three virtual machines in the communication device 10a, two virtual machines in the communication device 10b, and one virtual machine in the communication device 10c. Identify that it is running. Further, the detection unit 71 determines that the difference in the number of operations is 2 between the communication device 10a having the largest number of operating virtual machines and the communication device 10c having the smallest number of operating virtual machines.
The detection unit 71 holds a threshold value Th in advance. The threshold value Th is the minimum value of the difference in the number of operating virtual machines between communication devices under a situation in which a bias in processing load between communication devices is not allowed. When the calculated value of the difference in the number of operations reaches the threshold Th, the detection unit 71 determines that the processing load bias between the communication devices 10 has exceeded the allowable amount. In the following description, it is assumed that the threshold Th is 2. In this case, since the difference in the number of operating virtual machines between the communication device 10a and the communication device 10c is 2, the detection unit 71 is not allowed to have a processing load between the communication device 10a and the communication device 10c. Judged to be larger.
When the detection unit 71 detects that the processing load bias between the communication devices exceeds the allowable amount, the detection unit 71 notifies the selection unit 62 of the communication device with the maximum number of operating virtual machines and the communication device with the minimum number of operating machines. To request selection of a virtual machine to be moved. When there are a plurality of communication devices with the maximum number of operations, the detection unit 71 notifies the selection unit 62 of all the communication devices with the maximum number of operations. Similarly, when there are a plurality of communication devices having the smallest number of operations, the detection unit 71 similarly notifies the selection unit 62 of all the communication devices having the smallest number of operations. At this time, the detection unit 71 also notifies the selection unit 62 of the number of virtual machines running on each communication device that notifies the selection unit 62. In the following description, for the sake of clarity, a case where one source communication device and one destination communication device are detected will be described as an example. For example, in the cases illustrated in FIGS. 4 to 6, the detection unit 71 notifies the selection unit 62 of the following information.
Source communication device: Communication device 10a (Server 1)
Number of VMs operating on the source communication device: 3
Destination communication device: Communication device 10c (Server3)
Number of VMs running on the destination communication device: 1
By this processing, the selection unit 62 recognizes that it has been requested to select a virtual machine to be moved to the communication device 10c from the virtual machines operating on the communication device 10a.
For each virtual machine operating on the communication device notified as the movement source communication device, the selection unit 62 calculates a flow that each virtual machine is processing and a flow that is being processed by the movement destination communication device. Find the number of flows that matched between. At this time, the selection unit 62 uses the flow information 82 (FIG. 6) as appropriate. The selection unit 62 can store the obtained result as the flow analysis data 83 in the storage unit 80.
FIG. 7 is a diagram illustrating an example of the flow analysis data 83. The flow analysis data 83 records, for each virtual machine whose flow match count is a migration candidate, the migration source communication device (migration source server), the migration destination communication device (migration destination server), and the number of flow matches. Has been. FIG. 7 shows a state in which the network is in the state shown in FIG. 4, and when it is requested to select a virtual machine to be moved to the communication device 10 c from the virtual machines running on the communication device 10 a, the selection unit 62. This is an example of the flow information 82 generated by. In the virtual machine VM1, the processes of the flow A and the flow B are performed, whereas in the destination communication apparatus 10c, the processes of the flow A and the flow C are performed. For this reason, the number of matches obtained for the virtual machine VM1 is 1. In the virtual machine VM2, the processes of the flow A and the flow C are performed, whereas in the destination communication apparatus 10c, the processes of the flow A and the flow C are performed. The number of matches is two. Furthermore, the processing of the flow B and the flow C is performed in the virtual machine VM3, whereas the processing of the flow A and the flow C is performed in the destination communication apparatus 10c, the virtual machine VM3 is obtained. The number of matches made is 1.
When the processing of a flow that is not processed by the destination communication device is started due to the movement of the virtual machine, the destination communication device sets a queue for performing the processing of the flow to newly start processing in the collection queue 32. Will be provided. Furthermore, in the case where an analysis is performed for each flow, such as a restriction on the amount of communication and the status of the application being used, the communication device 10 performs sampling for each flow. For this reason, the communication apparatus 10 changes the setting of sampling etc. suitably according to the increase in the flow to be processed. These processes may greatly increase the processing load on the destination communication apparatus 10. For this reason, in a situation where processing by flow is being performed, in the destination communication device 10, the smaller the number of flows to be newly started as the virtual machine moves, the smaller the destination communication device 10. The increase in processing load at the time can be suppressed.
Therefore, the selection unit 62 determines to move the virtual machine according to the content of the entry having the largest number of matches in the flow analysis data 83, and updates the placement table together with the destination communication device. Notification to the unit 72. For example, when the flow analysis data 83 is as shown in FIG. 7, the selection unit 62 selects the virtual machine VM2 as the virtual machine to be moved. At this time, the movement source is the communication device 10a, and the movement destination is the communication device 10c. Therefore, the selection unit 62 notifies the arrangement table update unit 72 of the following information.
VM to be moved: VM2
The arrangement table update unit 72 generates a control packet for moving the virtual machine VM2 from the communication device 10a to the communication device 10c, and transmits the control packet to the communication device 10a via the transmission unit 41. As the format of the control packet and the processing in the communication device 10a and the communication device 10c, any technique capable of realizing live migration can be applied.
FIG. 8 is a diagram illustrating an example of moving a virtual machine. FIG. 8 shows a state in which the virtual machine VM2 that has been operating on the communication device 10a moves from the communication device 10a to the communication device 10c. Even if the virtual machine VM2 moves from the communication device 10a to the communication device 10c, the type of flow to be processed in any communication device 10 does not change. For this reason, when the method according to the first embodiment is used, it is easy to avoid an increase in the processing load on the destination communication device 10 due to the newly added flow to be processed.
FIG. 9 is a flowchart for explaining an example of processing of the control device 40. The flowchart in FIG. 9 illustrates an example of processing for selecting a virtual machine to be moved and a movement destination. In the flowchart of FIG. 9, variables x, y, and z and constants X, Y, and Z are used. The variable x is used for counting communication devices (migration source candidates) that can be the migration source of the virtual machine. The variable y is used for counting communication apparatuses (movement destination candidates) that can be the movement destination of the virtual machine. The variable z is used for counting virtual machines that specify the number of matching flows. The constant X is the total number of migration source candidates, the constant Y is the total number of migration destination candidates, and the constant Z is the total number of virtual machines included in the migration source candidates. The constant Z is uniquely determined from the VM arrangement table 81 or the like according to the migration source candidate server that is the processing target. FIG. 9 shows an example where the communication device 10 is a server.
The detection unit 71 determines whether the difference in the number of operating virtual machines between the servers is equal to or greater than the threshold Th (Step S1). If the difference in the number of operating virtual machines between the servers is less than the threshold Th, the detection unit 71 waits (No in step S1). When the difference in the number of operating virtual machines between servers is equal to or greater than the threshold Th, the detection unit 71 selects a server with the smallest number of operating virtual machines as a destination candidate and a server with the largest number of operating virtual machines. Is a source candidate (step S2). The detection unit 71 notifies the selection unit 62 of the movement destination candidate and the movement source candidate. The selection unit 62 determines constants X, Y, and Z using information from the detection unit 71, and sets variables x, y, and z to 1 (steps S3 to S5). The selection unit 62 matches the flow processed in the yth destination candidate server among the flows processed by the zth virtual machine running in the xth source candidate server. It is determined whether there is something to be performed (step S6). When there is a flow that matches, the selection unit 62 records, in the flow analysis data 83, the number of flows that match the flow that is being processed in the communication device that is the y-th movement destination candidate for the z-th virtual machine (step S1). Yes in S6, step S7). When it is determined No in step S6 or after the process of step S7, the selection unit 62 determines whether the variable y is equal to or greater than the constant Y (step S8). When the variable y is less than the constant Y, the selection unit 62 increments the variable y by one and returns to Step S6 (No in Step S8, Step S9). That is, in steps S6 to S9, when there are two or more migration destination candidates, the number of processing target flows that matches each of the migration source candidates is determined for each virtual machine that is operating as the migration source candidate.
When the variable y is equal to or greater than the constant Y, the selection unit 62 determines whether the variable z is equal to or greater than the constant Z (Yes in step S8, step S10). When the variable z is less than the constant Z, the selection unit 62 increments the variable z by one and returns to Step S5 (No in Step S10, Step S11). When the variable z is equal to or greater than the constant Z, the selection unit 62 determines whether the variable x is equal to or greater than the constant X (Yes in step S10, step S12). When the variable x is less than the constant X, the selection unit 62 increments the variable x by 1 and returns to Step S4 (No in Step S12, Step S13). When the variable x is equal to or greater than the constant X, the selection unit 62 refers to the flow analysis data 83 as a condition for using the combination of the virtual machine having the largest number of matches and the destination server for moving the virtual machine. Select (Yes in step S12, step S14). In other words, in step S14, the selection unit 62 preferentially selects the combination of the virtual machine having the largest number of matches and the destination server. The selection unit 62 selects a server in the selected combination as a migration destination server, and selects a virtual machine in the selected combination as a virtual machine to be moved.
FIG. 10 is a diagram illustrating an example of a movement method that is avoided by the method according to the embodiment. When the number of operating virtual machines in the communication apparatus 10 is equalized without considering the type of flow processed in each virtual machine, the virtual machine VM1 is changed from the communication apparatus 10a to the communication apparatus as shown in FIG. 10c may be moved. In this case, the virtual machine VM1 processes the flow A and the flow B, whereas the communication device 10c processes the flow A and the flow C. For this reason, when the virtual machine VM1 is moved to the communication device 10c, the communication device 10c generates a queue for storing packets newly classified into the flow B. Furthermore, due to an increase in processing related to the flow B, processing such as changing the setting of the sampling interval from the packet of each flow also occurs in the communication device 10c. By moving the virtual machine using the first embodiment, as shown in FIG. 10, the types of flows to be processed at the movement destination of the virtual machine increase, so that the communication apparatus 10 c at the movement destination increases. An increase in processing load can be prevented.
FIG. 11 is a diagram illustrating an example of a movement method that is avoided by the method according to the embodiment. FIG. 11 shows an example in which a virtual machine is moved so that the number of flows being processed in the communication apparatus 10 is reduced without considering the number of virtual machines being processed in each virtual machine. In the processing according to FIG. 11, the problem that the processing load of the communication device 10 increases as the types of flows processed by one communication device 10 is solved, but if there is a difference in the number of operating virtual machines, It is not considered that the difference in processing load of the communication device 10 also increases. For this reason, the virtual machine VM2 operating in the communication device 10a moves to the communication device 10c, and the virtual machine VM3 operating in the communication device 10a also moves to the communication device 10b. When such processing is performed, the number of virtual machines operating on the communication device 10a is reduced from three to one, and the type of flow to be processed is reduced from three to two, but the virtual machine operating on the communication device 10b is also reduced. The number of machines will be three. For this reason, even if the virtual machine is moved as shown in FIG. 11, the processing load of the communication device 10b becomes significantly higher than that of the communication device 10a, and load distribution cannot be performed.
On the other hand, when a virtual machine is moved using the method according to the first embodiment, not only an increase in the types of flows to be processed due to the movement of the virtual machine is prevented, but also load balancing among the communication devices 10 is achieved. It can be carried out.
FIG. 12 is a diagram illustrating an example of queue reduction by the method according to the first embodiment. With reference to FIG. 12, the reduction in the number of queues according to the first embodiment will be described by taking the movement of a virtual machine within a data center as an example. Hereinafter, it is assumed that the average number of virtual machines mounted is about four per communication apparatus 10. Furthermore, in order to simplify the comparison, the operation system used for the operation of the virtual machine, the memory usage, and the CPU load are approximated to be the same value in any virtual machine. It is assumed that about 20 types of applications are used in each virtual machine. Each application generates a flow specific to the application in order to transmit a packet to an application server that provides processing of the application.
Case C1 in FIG. 12 shows an example of arrangement of virtual machines in the case where virtual machine migration processing is performed. As shown in case C1, it is assumed that five virtual machines VM1 to VM5 are operating in the communication device 10d that is the movement source, and three virtual machines VM6 to VM8 are operating in the communication device 10e that is the movement destination. Here, it is assumed that the probability that the flows being processed between VM1 to VM8 match each other follows the Pareto distribution. That is, it is approximated that 20% of the application flows are on average. Then, in any of VM1 to AM8, four of the 20 types of flows are common flows. In case C1, 16 types of flows are not common to other virtual machines in VM1 to VM5. For this reason, in the communication device 10d, a queue of 16 × 5 + 4 = 84 is set together with the queues for the four common flows. On the other hand, in the communication device 10e, 16 types of flows in VM6 to VM8 are not shared with other virtual machines, so a queue of 16 × 3 + 4 = 52 is set together with the queues for the common 4 flows. ing.
Hereinafter, it is assumed that the flow processed by the virtual machine VM5 does not match the flow processed in the communication device 10e except for the four flows common to the VM1 to VM8. On the other hand, it is assumed that the flow processed by the virtual machine VM1 is a flow processed by any one of the VM6 to VM8 other than the four flows common to the VM1 to VM8.
Case C2 represents a case where the virtual machine VM5 has moved from the communication device 10d to the communication device 10e because a movement target has been randomly selected from the virtual machines VM1 to VM5 operating in the communication device 10d. In this case, since the flow being processed by the virtual machine VM5 does not match other virtual machines except for four flows, the communication device 10e after the virtual machine VM5 has moved has 16 × 4 + 4 = 68. A cue will be set up.
Case C3 indicates a case where the virtual machine VM1 is selected as the movement target because the virtual machine to be moved is selected using the method according to the first embodiment. In this case, the flow processed by the virtual machine VM1 is the same as the other virtual machines except for the four flows processed in common by all virtual machines. The queue does not increase in the device 10e. A queue of 16 × 3 + 4 = 52 is installed in the communication device 10e after the virtual machine VM1 has moved. Therefore, by using the first embodiment, 16 queues can be reduced in the case C3 compared to the case C2.
Further, assuming that two kinds of applications for analyzing transmitted packets, two kinds of applications for analyzing received packets, and one kind of application for log recording operate for processing of one queue, case C2 And the difference in processing load between C3 is calculated. In case C2, when the virtual machine VM5 moves to the communication device 10e, 68 queues are installed, and therefore 68 × 5 = 340 applications operate for processing of all the queues. Furthermore, in any of the virtual machines VM5 to VM8, 20 types of applications are operating in addition to queue processing. For this reason, the communication device 10e in the case C2 performs a process of moving only 340 + 20 × 4 = 420 types of applications.
On the other hand, in the case C3, when the virtual machine VM1 moves to the communication device 10e, 52 queues are installed, so that 52 × 5 = 260 applications operate for processing all the queues. Furthermore, in any of the virtual machines VM1 and VM6 to VM8, 20 types of applications are operating in addition to queue processing. For this reason, the processing of the communication device 10e in the case C3 only requires 260 + 20 × 4 = 340 types of applications. Therefore, in the case C3, the processing in the communication device 10e is suppressed to about 260/340 × 100≈76 (%) compared to the case C2.
In the second embodiment, a case will be described in which the processing by the control device 40 in the first embodiment is performed by the flow control device 65 and the VM management device 75.
FIG. 13 is a diagram illustrating an example of a network in which the second embodiment is used. Each of the flow control device 65 and the VM management device 75 is connected to the communication devices 10a to 10c operating in the network. Further, the flow control device 65 and the VM management device 75 are also connected to each other. Note that FIG. 13 illustrates an example in which the communication device 10 operating in the network is the communication devices 10a to 10c. The arrangement of virtual machines in the communication devices 10a to 10c and the flow processed by each virtual machine are as follows. It is assumed that it has been described with reference to FIG. Note that FIG. 13 is an example, and the number of communication devices 10 in the network, the number of virtual machines operating on each communication device 10, the type of flow to be processed, and the like can be arbitrarily changed according to the implementation.
The VM management device 75 includes a detection unit 71, a placement table update unit 72, a VM placement table 81, a transmission unit 41, and a reception unit 42, and performs the same processing as the VM management unit 70 in the control device 40. The processing performed by the detection unit 71, the arrangement table update unit 72, the transmission unit 41, and the reception unit 42 and the data in the VM arrangement table 81 are the same as those of the control device 40 described in the first embodiment.
The flow control device 65 includes an acquisition unit 61, a selection unit 62, flow information 82, flow analysis data 83, a transmission unit 41, and a reception unit 42, and performs the same processing as the flow control unit 60 in the control device 40. The processing performed by the acquisition unit 61, the selection unit 62, the transmission unit 41, and the reception unit 42, the data in the flow information 82, and the flow analysis data 83 are the same as those of the control device 40 described in the first embodiment.
Note that both the flow control device 65 and the VM management device 75 are realized by the hardware shown in FIG. In the flow control device 65, an acquisition unit 61 and a selection unit 62 are realized by the processor 101, and the flow analysis data 83 and the flow information 82 are stored in the memory 103. In the VM management apparatus 75, the processor 101 implements a detection unit 71 and an arrangement table update unit 72, and the VM arrangement table 81 is stored in the memory 103. The transmission unit 41 and the reception unit 42 are realized by the network interface 104b and the processor 101 in both the flow control device 65 and the VM management device 75. Further, when the flow control device 65 and the VM management device 75 do not transmit / receive user data, the network interface 104a may not be provided.
FIG. 14 is a sequence diagram illustrating an example of communication between the flow control device 65 and the VM management device 75. The arrangement table updating unit 72 in the VM management apparatus 75 periodically updates the VM arrangement table 81 by acquiring information on the virtual machines operating on the communication apparatus 10 from each communication apparatus 10 in the network. To do. Therefore, the detection unit 71 can detect that the difference in the number of operating virtual machines among the plurality of communication devices 10 is equal to or greater than the threshold Th using the VM arrangement table 81 (step S21). Here, as in the first embodiment, it is assumed that the difference in the number of operating virtual machines between the communication device 10a and the communication device 10c is equal to or greater than the threshold Th. Next, the detection unit 71 generates a movement request packet for transmission to the flow control device 65.
FIG. 15 is a diagram illustrating an example of packets transmitted and received between the flow control device 65 and the VM management device 75. The movement request packet has a header and a payload as shown in the packet P1. In the payload, a value indicating a movement request, identification information of the movement source communication apparatus, the number of virtual machines in the movement source communication apparatus, identification information of the movement destination communication apparatus, information in the movement destination communication apparatus Contains the number of virtual machines. When the virtual machine is arranged as illustrated in FIG. 13, the detection unit 71 generates a movement request packet including the following information.
The detection unit 71 transmits the movement request packet to the flow control device 65 via the transmission unit 41 (step S22 in FIG. 14).
The reception unit 42 of the flow control device 65 outputs the movement request packet to the selection unit 62. The selection unit 62 refers to the flow information 82 and generates the flow analysis data 83 by a process similar to the process described in the first embodiment. The acquisition unit 61 in the flow control device 65 periodically acquires the flow processing status for each virtual machine from each communication device 10, and updates the flow information 82 by the same processing as in the first embodiment. Suppose you are. The selection unit 62 uses the flow analysis data 83 to determine a combination of a virtual machine and a destination communication device having the largest number of flow matches (step S23 in FIG. 14).
Next, the selection unit 62 generates a response packet to be transmitted to the VM management device 75. An example of a response packet format is shown in a packet P2 in FIG. The response packet has a header and a payload. The payload includes a value indicating a response packet, identification information of the source communication device, identification information of the virtual machine to be moved, and identification information of the destination communication device. When the virtual machine is arranged as shown in FIG. 13, the flow analysis data 83 is as shown in FIG. 7, and therefore the selection unit 62 generates a response packet including the following information.
The selection unit 62 transmits the response packet to the VM management device 75 via the transmission unit 41 (step S24 in FIG. 14).
The reception unit 42 of the VM management device 75 outputs the response packet to the arrangement table update unit 72. The arrangement table update unit 72 notifies the communication device 10a in which the virtual machine to be moved is operating to move the virtual machine VM2 to the communication device 10c (step S25). Note that the processing performed when the VM management device 75 notifies the virtual machine to be moved and the movement of the virtual machine in the communication device 10 are realized by using an arbitrary live migration technique as in the first embodiment. Is done.
Also in the second embodiment, based on a comparison between the type of flow processed by the virtual machine and the type of flow processed by the destination communication device 10 of the virtual machine, as in the first embodiment. The virtual machine to be moved is determined. For this reason, similarly to the first embodiment, it is possible to suppress an increase in processing load due to an increase in the flow in the communication apparatus 10 to which the virtual machine is moved.
The table and packet format shown in the above description are examples, and the information elements in the table and packet can be changed according to the implementation.
In the second embodiment, a case has been described in which the VM management device 75 notifies the communication device 10 of the virtual machine to be moved and the movement destination of the virtual machine, but the flow control device 65 notifies the communication device 10 of these. It may be modified so as to notify information.
The control packet for moving the virtual machine may be transmitted to both the communication device in which the virtual machine to be moved is operating and the communication device to which the virtual machine is moved. In addition, the control packet may be designed to be transmitted to the communication device in which the virtual machine to be moved is operating.
DESCRIPTION OF SYMBOLS 10 Communication apparatus 11, 41 Transmission part 12, 42 Reception part 13 Communication part 14 Packet processing part 20, 50 Control part 21 Flow classification part 22 VM management part 30, 80 Storage part 31, 82 Flow information 32 Collection queue 40 Control apparatus 60 Flow control unit 61 Acquisition unit 62 Selection unit 65 Flow control device 70 VM management unit 71 Arrangement table update unit 75 VM management device 81 VM arrangement table 83 Flow analysis data 101 Processor 103 Memory 104 Network interface 105 Bus 106 Storage device
A control device that controls movement of a virtual machine between a plurality of servers,
An acquisition unit that acquires a result of classifying data transmitted and received by each of the plurality of servers into a flow according to destination for each virtual machine;
A flow in which a movement target, which is a virtual machine to be moved from a first server to a second server having a relatively large number of operating virtual machines among the plurality of servers, is transmitted and received by the second server. A selection unit that preferentially selects a virtual machine having a larger number of processes from the virtual machines running on the first server;
A control apparatus comprising: a transmission unit that transmits a control packet for moving the movement target to the second server.
When there are two or more destination candidates that are servers with a relatively small number of operating virtual machines among the plurality of servers, the selection unit
For each of the migration destination candidates, for each virtual machine running on the first server, obtain the number of flows to be processed that match,
Among the combinations of the processing target virtual machine selected from the virtual machines running on the first server and the processing target server selected from the migration destination candidates, the number of matches of the processing target flows is large. Select combinations first,
Selecting the selected server in the combination as the second server;
The control apparatus according to claim 1, wherein the selected virtual machine in the combination is selected as the movement target.
Detecting that the difference in the number of operating virtual machines has reached a threshold between the first server and a server having a relatively small number of operating virtual machines among the plurality of servers A detection unit,
The selection unit acquires the identification information of the first server and the identification information of a server having a relatively small number of operating virtual machines among the plurality of servers from the detection unit. The control device according to claim 1 or 2.
A request packet including identification information of the first server, identification information of a server in which the number of active virtual machines is smaller than the first server by a threshold or more, and a request for selection of the movement target; A receiving unit that receives from a management device that manages the placement of virtual machines in the server;
The selection unit selects the movement target using the request packet,
The control device according to claim 1, wherein the transmission unit transmits the control packet to the first server via the management device.
A communication device that operates as a first server in a network including a plurality of servers,
A classification unit that classifies data transmitted and received by an operating virtual machine into flows according to destinations for each virtual machine;
A transmission unit that transmits a classification result to a control device that controls movement of a virtual machine between the plurality of servers;
The number of virtual machines in operation is selected as a movement target by the control device because the number of processes of a flow whose destination is the same as the flow being processed in the second server smaller than the first server is relatively large A receiving unit that receives a control packet including the identifier of the virtual machine and the identifier of the second server;
A communication apparatus comprising: a movement processing unit that performs processing for moving the virtual machine selected as the movement target to the second server.
A control device that controls the movement of a virtual machine between multiple servers.
Obtaining the result of classifying the data transmitted / received by each of the plurality of servers into flows according to destination for each virtual machine,
A flow in which a movement target, which is a virtual machine to be moved from a first server to a second server having a relatively large number of operating virtual machines among the plurality of servers, is transmitted and received by the second server. A virtual machine with a larger processing number is preferentially selected from virtual machines running on the first server,
A communication method characterized by performing a process of transmitting a control packet for moving the movement target to the second server.
JP2014098872A 2014-05-12 2014-05-12 Control device, communication device, and communication method Active JP6277853B2 (en)
JP2014098872A JP6277853B2 (en) 2014-05-12 2014-05-12 Control device, communication device, and communication method
US14/688,551 US9823943B2 (en) 2014-05-12 2015-04-16 Apparatus and method for controlling virtual machine migrations based on flow information
JP2015215799A JP2015215799A (en) 2015-12-03
JP6277853B2 true JP6277853B2 (en) 2018-02-14
ID=54368887
JP2014098872A Active JP6277853B2 (en) 2014-05-12 2014-05-12 Control device, communication device, and communication method
US (1) US9823943B2 (en)
JP (1) JP6277853B2 (en)
JP2012226471A (en) 2011-04-18 2012-11-15 Hitachi Ltd Communication method and communication server
JP5768651B2 (en) * 2011-10-21 2015-08-26 富士通株式会社 communication device, communication method, and communication program
JP5602775B2 (en) * 2012-01-19 2014-10-08 日本電信電話株式会社 Communication control system, client device, server device, communication control method, and communication control program
2014-05-12 JP JP2014098872A patent/JP6277853B2/en active Active
2015-04-16 US US14/688,551 patent/US9823943B2/en active Active
US20150326658A1 (en) 2015-11-12
JP2015215799A (en) 2015-12-03
US9823943B2 (en) 2017-11-21
EP2533492B1 (en) 2014-02-19 A node device and method to prevent overflow of pending interest table in name based network system
JP5637148B2 (en) 2014-12-10 Switch network system, controller, and control method
JP2017507572A (en) 2017-03-16 Method, system, and computer-readable medium for cloud-based virtual orchestrator
US9143527B2 (en) 2015-09-22 Apparatus and method preventing overflow of pending interest table in name based network system
US8984526B2 (en) 2015-03-17 Dynamic processor mapping for virtual machine network traffic queues
JP2014502482A (en) 2014-01-30 Techniques for managing traffic in routers
JP5974665B2 (en) 2016-08-23 Information processing system, relay device, information processing device, and information processing method
JP2012169733A (en) 2012-09-06 Communication control program, information processor, and packet communication method
US8510742B2 (en) 2013-08-13 Job allocation program for allocating jobs to each computer without intensively managing load state of each computer
JP6037016B2 (en) 2016-11-30 Method and apparatus for determining virtual machine migration
Ref document number: 6277853