This application is based upon and claims the benefit of priority of the prior Japanese Patent Application No. 2015-244975, filed on Dec. 16, 2015, the entire contents of which are incorporated herein by reference.
This invention relates to a technique for setting bandwidth.
There is a technique for logically dividing a physical NIC (Network Interface Card) and handling that physical NIC as plural logical ports. By using this technique, it is possible to divide, for example, one physical port into four logical ports, and a virtual machine is able to perform communication using a logical port in the same way as a physical port.
Part of bandwidth of a physical port is assigned to each logical port. However, when the bandwidth of each logical port is fixedly set, it is impossible to follow sudden increases in an amount of traffic, and a bottleneck occurs in the network. For example, when a virtual machine is newly added, or an amount of traffic increases due to a specific application on a virtual machine, bandwidth that is available to virtual machines that use the same logical port is limited. On the other hand, when a virtual machine migrates due to migration or the like, or when use of an application ends, bandwidth that was assigned for logical ports is not used and may be in excess.
In regard to this point, a certain document discloses a technique for switching a physical NIC of a connection destination of a virtual NIC based on priority of a virtual machine. Moreover, another document discloses a technique for controlling the transmission order of packets based on priority information or the like that is included in packets that are transmitted from a virtual machine. However, in these conventional techniques, bandwidth that is assigned to logical ports is not controlled. And part of the bandwidth of a physical NIC is not used, and a state of excess may occur.
Patent Document 1: Japanese Laid-open Patent Publication No. 2009-176103
Patent Document 2: Japanese Laid-open Patent Publication No. 2009-239374
In other words, there is no technique to increase utilization efficiency of bandwidth of a physical NIC for which plural logical ports are set.
A bandwidth setting method relating to this invention includes: calculating, for each of plural logical ports that are set for a physical network interface card, an amount of traffic of the logical ports, from amounts of output traffic of one or plural virtual machines that use the logical port; and setting, for each of the plural logical ports, bandwidth of the logical port according to the calculated amount of traffic of the logical port.
The object and advantages of the embodiment 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 embodiment, as claimed.
The I/O traffic controller 101 executes processing to calculate bandwidth that is set for each logical port based on data that is stored in the data storage unit 105. The NIC data management unit 102 obtains, according to an acquisition instruction from the I/O traffic controller 101, data from a physical NIC of the operation server 3, and stores that data in the data storage unit 105. The HV data management unit 103 obtains, according to an acquisition instruction from the I/O traffic controller 101, data from the hypervisor (also called virtualization software) that operates on the operation server 3, and stores that data in the data storage unit 105. The bandwidth management unit 104 executes, according to an instruction from the I/O traffic controller 101, processing to set bandwidth for each logical port.
In the operation server 3, a hypervisor 30 is executed, and virtual switches 1d to 4d and virtual machines 1e to 3e operate on the hypervisor 30. The virtual machine 1e includes a virtual NIC 1f, and the virtual NIC 1f is connected to the virtual switch 1d. The virtual machine 2e includes virtual NICs 2f to 4f, and the virtual NIC 2f is connected to the virtual switch 1d, the virtual NIC 3f is connected to the virtual switch 2d, and the virtual NIC 4f is connected to the virtual switch 3d. The virtual machine 3e includes virtual NICs 5f and 6f, and the virtual NIC 5f is connected to the virtual switch 3d, and the virtual NIC 6f is connected to the virtual switch 4d. The virtual switch 1d is connected to the logical port 1c, the virtual switch 2d is connected to the logical port 2c, the virtual switch 3d is connected to the logical port 3c, and the virtual switch 4d is connected to the logical port 4c.
Logical ports are set for each physical port, and as illustrated in
Next, operation of the management server 1 will be explained using
First, processing that the I/O traffic controller 101 executes will be explained. The I/O traffic controller 101 outputs an acquisition instruction to the NIC data management unit 102 at preset monitoring interval (
Here, processing that is executed by the NIC data management unit 102 that received the acquisition instruction from the I/O traffic controller 101 will be explained using
First, the NIC data management unit 102 receives an acquisition instruction from the I/O traffic controller 101 (
The NIC data management unit 102 obtains an identifier of a physical NIC, identifiers of physical ports, bandwidth of the physical ports, and identifiers of logical ports in the operation server 3 from the physical NIC 1a. Then, the NIC data management unit 102 stores the obtained identifiers of the physical NICs, the identifiers of the physical ports, the bandwidth of the physical ports, and the identifiers of the logical ports in the data storage unit 105 (step S23). Normally, tools and the like that are employed by the operation server 3 to manage the physical NIC 1a manage this kind of information. Therefore, the NIC data management unit 102 obtains information by sending a request to the tools and the like.
The NIC data management unit 102 determines whether there is an unprocessed logical port among the logical ports that are specified by the identifiers of the logical ports obtained in step S23 (step S25). When there is an unprocessed logical port (step S25: YES route), the NIC data management unit 102 specifies one unprocessed logical port (step S26).
The NIC data management unit 102 obtains a setting value for bandwidth of the unprocessed logical port that was specified in step S26 from the physical NIC 1a. Then, the NIC data management unit 102 stores the obtained setting value for bandwidth in the data storage unit 105 (step S27). The processing then returns to step S25.
On the other hand, when there is not an unprocessed logical port (step S25: NO route), the NIC data management unit 102 outputs a notification of completion of registration to the I/O traffic controller 101 (step S29). The processing then ends.
Returning to the explanation of
The I/O traffic controller 101 determines whether there is an unprocessed physical NIC among physical NICs that were specified by identifiers of the physical NICs, which were included in the data that was read out in step S3 (step S5).
When there is an unprocessed physical NIC (step S5: YES route), the I/O traffic controller 101 specifies one unprocessed physical NIC. The I/O traffic controller 101 then determines whether there is an unprocessed physical port among the physical ports of the specified physical NIC (step S7). When there is an unprocessed physical port (step S7: YES route), the I/O traffic controller 101 specifies one unprocessed physical port (step S9).
The I/O traffic controller 101 executes traffic control processing (step S11). The processing then returns to step S7. The traffic control processing will be explained using
First, the I/O traffic controller 101 determines whether there is an unprocessed logical port among the logical ports that were set for the physical port that was specified in step S9 (
The I/O traffic controller 101 generates an acquisition instruction that includes the identifier of the logical port that was specified in step S33, and outputs that acquisition instruction to the HV data management unit 103 (step S35).
Here, the processing that is executed by the HV data management unit 103 that received the acquisition instruction from the I/O traffic controller 101 will be explained using
First, the HV data management unit 103 receives the acquisition instruction from the I/O traffic controller 101 (
The HV data management unit 103 obtains HV data that includes identifiers of virtual machines that use the logical port, information that represents operating states of the virtual machines, identifiers of the virtual NICs in the virtual machines, and amounts of traffic of the virtual NICs (for example, average amounts of traffic during the most recent fixed period) from the hypervisor 30. The HV data management unit 103 then stores the obtained HV data in the data storage unit 105 (step S63). Normally, the hypervisor 30 manages this kind of HV data. Therefore, the HV data management unit 103 obtains HV data by sending a request to the hypervisor 30.
The HV data management unit 103 outputs a notification of completion of registration to the I/O traffic controller 101 (step S65). The processing then ends.
Returning to the explanation of
The I/O traffic controller 101 specifies virtual machines that use the logical port that was specified in step S33 from the HV data that was read out in step S37 (step S39).
The I/O traffic controller 101 determines whether there is an unprocessed virtual machine among the virtual machines specified in step S39 (step S41). When there is an unprocessed virtual machine (step S41: YES route), the I/O traffic controller 101 specifies one unprocessed virtual machine (step S43).
The I/O traffic controller 101 determines whether an operating state of the virtual machine that was specified in step S43 is “ON” (step S45). The “ON” state is a state in which the virtual machine is operating, and “OFF” state is a state in which the virtual machine is not operating.
When the operating state of the virtual machine is not “ON” (step S45: NO route), the processing returns to step S41. On the other hand, when the operating state of the virtual machine is “ON” (step S45: YES route), the I/O traffic controller 101 reads out an amount of traffic of a virtual NIC in the virtual machine that was specified in step S43 from the data storage unit 105 (step S47). The processing then returns to step S41.
On the other hand, when there is no unprocessed virtual machine (step S41: NO route), the I/O traffic controller 101 calculates an amount of traffic of the logical port that was specified in step S33 by summing amounts of traffic of the virtual NICs in the virtual machines that were specified in step S39 (step S49), and stores the result in the data storage unit 105. The processing then returns to step S31.
For example, calculating an amount of traffic of a logical port that is in a state such as illustrated in
In this case, the amount of traffic of the logical port 1c is 3+3=6 GB, the amount of traffic of logical port 2c is 2 GB, the amount of traffic of logical port 3c is 1 GB and the amount of traffic of logical port 4c is 0 GB.
Returning to the explanation of
As illustrated in
In this case, the ratios of the amounts of traffic of the logical ports are 6:2:1:0. Here, the amount of traffic of the logical port 4c is 0, however, in consideration of a possibility of traffic occurring in the future, a preset minimum bandwidth is set for the logical port 4c. In the casein
Returning to the explanation of
Here, the processing that is executed by the bandwidth management unit 104 that received the change instruction from the I/O traffic controller 101 will be explained using
First, the bandwidth management unit 104 receives a change instruction from the I/O traffic controller 101 (
The bandwidth management unit 104 sets the bandwidth for each logical port according to the change instruction that was received in step S71 (step S73). Normally, by using tools and the like that are employed by the operation server 3 in order to manage the physical NIC 1a, it is possible to write the setting values in the memory area of the physical port 1b. Therefore, the new setting values are set by the NIC data management unit 102 sending a request to those tools and the like.
The bandwidth management unit 104 outputs a change complete notification to the I/O traffic controller 101 (step S75). Processing then ends.
Returning to the explanation of
Returning to the explanation of
Next, sequential processing from the initial setting of the bandwidth to the change in the setting will be briefly explained using
First, initial settings that were input by an administrator are applied to the logical ports 1c to 4c. In
After the initial setting is completed, the NIC data management unit 102 that received the acquisition instruction from the I/O traffic controller 101 obtains data from the physical port 1b, and together with registering the data in the data storage unit 105, outputs a notification of completion of registration to the I/O traffic controller 101.
Then, the HV data management unit 103 that received the acquisition instruction from the I/O traffic controller 101 obtains HV data from the hypervisor 30, and together with registering the data in the data storage unit 105, outputs a notification of completion of registration to the I/O traffic controller 101.
The I/O traffic controller 101 calculates bandwidth for each logical port based on the data that was stored in the data storage unit 105, and stores the calculation results in the data storage unit 105. Moreover, the I/O traffic controller 101 outputs a change instruction that includes the calculation results to the bandwidth management unit 104.
Accordingly, the bandwidth management unit 104 changes the bandwidth of each logical port, and outputs a notification of completion of change to the I/O traffic controller 101.
By executing processing such as described above, the bandwidth of the logical ports 1c to 4c are dynamically changed according to the actual operating states. And thus, together with being able to suppress an excess in bandwidth that was assigned to part of the logical ports, it is possible to suppress a bottleneck in part of the logical ports. In other words, it becomes possible to increase usability efficiency of the bandwidth of the physical port 1b.
Moreover, nodes such as servers, switches and the like are arranged in a data center on the scale of several thousands, and thus it is impossible to manually set the bandwidth for each logical port. However, by applying this embodiment, it becomes possible to automatically set the bandwidth for each logical port.
In this way, in this second embodiment, the management server 1 and operation server 3 are integrated. As a result, it is possible to conserve space.
Although the embodiments of this invention were explained above, this invention is not limited to those. For example, the functional block configuration of the management server 1 and operation server 3, which are explained above, does not always correspond to actual program module configuration.
Moreover, the aforementioned table configuration is a mere example, and maybe changed. Furthermore, as for the processing flow, as long as the processing results do not change, the turns of the steps may be exchanged or the steps may be executed in parallel.
In addition, the aforementioned management server 1 is computer device as illustrated in
The operation server 3 described above has, as illustrated in
The aforementioned embodiments are summarized as follows:
An information processing apparatus relating to a first aspect of these embodiments include: a memory; and a processor coupled to the memory and configured to: (A) first calculate, for each of plural logical ports that are set for a physical network interface card, an amount of traffic of the logical ports, from amounts of output traffic of one or plural virtual machines that use the logical port; and (B) set, for each of the plural logical ports, bandwidth of the logical port according to the calculated amount of traffic of the logical port.
By performing such processing, appropriate bandwidth is set for each of plural logical ports, and it becomes possible to increase usability efficiency of bandwidth of the physical network interface card.
Moreover, the first calculating may include: (a1) obtaining an amount of output traffic of each virtual network interface card in the one or plural virtual machines from a virtual processing unit to realize the virtual machines; and (a2) second calculating the amounts of output traffic of the one or plural virtual machines, by summing the obtained amount of output traffic of each virtual network interface card. It becomes possible to accurately calculate an amount of traffic of a logical port, by utilizing amounts of output traffic of virtual network interface cards.
Moreover, the obtaining may include (a11) obtaining identification information of the one or plural virtual machines and identification information of virtual network interface cards included in each of the one or plural virtual machine.
Moreover, the first calculating may include: (a3) third calculating ratios of amounts of traffic of the plural logical ports; and (a4) fourth calculating bandwidth of each of the plural logical ports, by allocating bandwidth of the physical network interface card to each of the plural logical ports according to the calculated ratios. It becomes possible to set bandwidth according to an actual operating status.
A bandwidth setting method relating to a second aspect of these embodiments include: (C) calculating, for each of plural logical ports that are set for a physical network interface card, an amount of traffic of the logical ports, from amounts of output traffic of one or plural virtual machines that use the logical port; and (D) setting, for each of the plural logical ports, bandwidth of the logical port according to the calculated amount of traffic of the logical port.
Incidentally, it is possible to create a program causing a computer to execute the aforementioned processing, and such a program is stored in a computer readable storage medium or storage device such as a flexible disk, CD-ROM, DVD-ROM, magneto-optic disk, a semiconductor memory, and hard disk. In addition, the intermediate processing result is temporarily stored in a storage device such as a main memory or the like.
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 embodiments of the present inventions have 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 |
---|---|---|---|
2015-244975 | Dec 2015 | JP | national |