This application is based upon and claims the benefit of priority of the prior Japanese Patent Application No. 2010-032042, filed on Feb. 17, 2010, the entire contents of which are incorporated herein by reference.
This technique relates to a communication processing technique between plural virtual machines (VM) that are operating on a physical server.
In an environment, such as in cloud computing, in which physical resources are shared by plural customers (also called tenants), the logical separation between customers is realized as a system. More specifically, it is carried out to prevent a customer from receiving communication contents for another customer, and prevent access to resources being used by another customer.
For example, an environment such as illustrated in
Here, when the virtual machine VM1 of the tenant A transmits a broadcast message, “FF:FF:FF:FF:FF:FF” is set as the MAC address of the destination in that message. This address is a reserved address and is common in all networks. Therefore, when the virtual LSW_1 receives such a broadcast message, the virtual LSW_1 outputs that message to the physical L2SW. When there are no restrictions, the physical L2SW receives the broadcast message and outputs a broadcast message to not only the virtual L2SW_3 on the physical server B, which belongs to the same tenant A, but also to the virtual L2SW_2, which belongs to the different tenant B. In other words, the contents of the broadcast message are leaked.
Generally, the server virtualization technique for sharing the physical server and virtual LAN (VLAN) technique for sharing a network are used. The VLAN technique is widely used, and there is no problem as long as the system is on scale in which this technique can be used. However, the number of VLAN-IDs that can be used is set at 4,094, which may be insufficient in a large-scale cloud system.
Incidentally, when a virtual machine is generated and the virtual machine requests to assign a new IP address using the Dynamic Host Configuration Protocol (DHCP) method, that virtual machine does not know the location of the DHCP server. Therefore, the virtual machine carries out the broadcast. Therefore, after broadcast packets are also sent up to a network level in each of the other computers that are connected to the network and the other computers use CPU resources for the broadcast packet, it is finally judged that this broadcast packet is not for the computer itself. During this processing, other processes on that computer are influenced. However, on the physical machine on which that virtual machine is generated, the location of the DHCP server may already be known due to the broadcast from another virtual machine that has already been generated and activated. Thus, there is a document that discloses a problem wherein, when plural virtual machines are generated on a host (i.e. physical machine) on a network in this way, the address of the DHCP server is known from a virtual machine that was generated and activated previously, the broadcast from a virtual machine that is generated and activated afterwards on that host is redundant. Therefore, a solution has been proposed in which a DHCP address acquisition request, which is primarily a local broadcast, is converted to a unicast to the DHCP server without broadcasting on a hypervisor. However, because this is the DHCP address acquisition request, after the request has reached the DHCP server, it is not necessary to transfer that request to other servers.
Moreover, for a virtual local area network, there is also a technique for suppressing flooding in a relay network. In this technology, the edge transfer apparatus executes: receiving a MAC frame from a subscriber local area network via that subscriber port; identifying a service VLAN identifier that corresponds to the received MAC frame from the subscriber port that received that MAC frame; acquiring a destination group identifier for identifying the transmission source of the MAC frame and a set of one or plural destinations; judging, based on the acquired destination group identifier, whether or not there is one or more of relay ports that can transfer the MAC frame; generating a relay MAC frame that includes at least a MAC frame and service VLAN identifier, when it was judged that there is one or more relay ports that can transfer the MAC frame; attaching the destination group identifier to the relay MAC frame; and transferring the relay MAC frame, to which the destination group Identifier was attached, to one or more relay ports. However, this presumes a VLAN.
As described above, it is difficult to achieve plural subnets that exceed the VLAN restriction with one system.
In other words, the conventional art cannot logically separate plural subnets that share physical resources.
A communication processing method relating to a first aspect includes: judging whether or not a destination address of a received message is a predetermined address of a virtual switch executing this communication processing method; when it is judged that the destination address of the received message is the predetermined address of the virtual switch, converting the destination address of the received message to a broadcast address to virtual machines that are under the virtual switch and belong to the same subnet; and outputting a message after the conversion.
A communication processing method relating to a second aspect includes: (A) calculating, for each of subnets satisfying a predetermined condition, an evaluation value for the frequency of copies from the number of broadcast messages within unit time and the number of virtual switches belonging to the same subnet, which are stored in a data storage unit; (B) sorting the subnets in descending order of the evaluation value, assigning an identifier of a virtual local area network (VLAN) to each of a top predetermined number of subnets, and setting a VLAN mode to first virtual switches belonging to the top predetermined number of subnets; and (C) setting an address conversion mode to second virtual switches belonging to subnets other than the top predetermined number of subnets, wherein, in the address conversion mode, a broadcast message is converted to a unicast message to virtual switches belonging to the same subnet and a received unicast message to the second virtual switch is converted to a broadcast message to virtual machines under the second virtual switch.
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.
In this embodiment, by applying the configuration described below to the virtual L2SW, a broadcast message is prevented from being sent to virtual machines of a different tenant without using a VLAN. More specifically, a virtual MAC address is given to the virtual L2SW in advance, and virtual MAC addresses for virtual L2SWs other than its own virtual L2SW are registered in the virtual L2SWs that belong to the subnet of the same tenant. In the example in
Next, as in
The physical L2SW, as in the case of the where a normal unicast is received, outputs the received message to an apparatus to which a device having the destination MAC address (=virtual MAC address) is connected. In the case in
After receiving a message addressed to its own virtual MAC address, the virtual L2SW_3 recognizes that the received message is the broadcast message, and after replacing the destination address with the broadcast address, the virtual L2SW_3 outputs the received message to the subordinate virtual machines VM3 and VM4.
By carrying out such a processing, the output of the broadcast message to the virtual L2SW_2 for other tenants is eliminated without using the VLAN. In other words, the logical separation between subnets is adequately realized.
Next, the configuration of the virtual L2SW is explained using
A message type table storage area 103 is an area that is used by the message controller 102, and holds data to identify the message type. In this embodiment, for example, this area is an area where data is stored for determining whether or not the received message is a broadcast message, and where a broadcast address is stored, for example.
Moreover, a private switch data storage area 107 is an area that is used by the private switch data manager 104, and stores data such as illustrated in
Furthermore, a conversion table storage area 108 is an area that is used by the message converter 105, and stores data such as illustrated in
In addition, a transfer table storage area 109 is an area that is used by the transfer table manager 106, and stores data as illustrated in
The private switch data, conversion table and transfer table are registered for each of the virtual L2SW_2 and virtual L2SW_3 as well.
Next, a processing explained using
The message controller 102 outputs the destination address of the processed message to the transfer table manager 106 and requests data concerning the corresponding output destination. The transfer table manager 106 searches the transfer table that is stored in the transfer table storage area 109 using the destination address, and identifies the output destination. In the example in
When the physical L2SW receives the message from the virtual L2SW_1 of the physical server A, the physical L2SW identifies a port from which the message is to be outputted according to the destination address (i.e. the virtual MAC address of the virtual L2SW_3), and outputs the message to the identified port (step S9). In the example in
When the physical server B receives the message, the physical server B outputs the message to the virtual L2SW_3 according to the virtual MAC address of the virtual L2SW_3, which is the destination address of the received message. When the communication IF 101 of the virtual L2SW_3 receives the message (step S11), the communication IF 101 outputs the received message to the message controller 102. The message controller 102 checks the destination address of the received message (step S13). When doing this, the message controller 102 requests the private switch data manager 104 to output its own virtual MAC address that is included in its own switch data to compare its own virtual MAC address with the destination address of the received message.
When the destination address is the L2SW_3's own virtual MAC address, the message controller 102 converts the destination address of the received message to the broadcast address, which is a reserved address (step S15). Then, the message controller 102 instructs the communication IF 101 to output the message whose destination address was converted, to the subordinate virtual machines VM3 and VM4, and the communication IF 101 outputs the messages according to that instruction (step S17).
By carrying out such a processing as described above, because the broadcast message is not transmitted to the virtual L2SW_2 that belongs to other subnets without using the VLAN, the logical separation of subnets is adequately realized.
In this embodiment, the logical separation of subnets using both the address conversion described in the first embodiment and a VLAN is considered. This is because, when the VLAN can be used, utilization of the VLAN is efficient. However, because there are only 4,094 VLAN IDs, when the number of subnets exceeds this number, not all of the subnets can use the VLAN. Therefore, for example, the VLAN is used for predetermined subnets, and address conversion as described in the first embodiment is carried out for other subnets.
The virtual L2SW of this embodiment has the same configuration as the configuration illustrated in
Incidentally, in the case of a normal physical L2 switch, it is necessary to register the VLAN-ID for each port. As for the virtual L2SW of this embodiment, it is assumed that the virtual machines belonging to a different subnet are not connected, and in the VLAN mode of the virtual L2SW, the output destination is not specially selected by identifying the VLAN-ID. However, because, in the physical L2SW, VLAN-IDs are distinguished, there is not a particular problem. Incidentally, when the VLAN-IDs are distinguished to select the output destination in the virtual L2SW as well, the association with the VLAN-ID is registered into the transfer table.
In the case where the virtual L2SW_1 and virtual L2SW_2 and the virtual machines 1, 3 and 4 belong to the same subnet, when mode setting data such as illustrated in
On the other hand, when the mode setting data such as illustrated in
In other words, it is assumed that a broadcast message is output from the virtual machine VM1 of the tenant A. A broadcast address, which is a reserved address, is set as the destination address in this broadcast message, and upon receiving this message, the virtual L2SW_1 checks whether the mode is the VLAN mode according to the mode setting data, and when the mode is the VLAN mode, the virtual L2SW_1 adds the VLAN-ID registered in association with the mode to the received message. Then, the virtual L2SW_1 outputs the message with the VLAN-ID to the physical L2SW, which is the upper-level L2 switch.
Incidentally, in the example in
As in the case where a normal broadcast message with a VLAN-ID is received, the physical L2SW identifies the corresponding output destination ports based on the VLAN-ID, and outputs the received broadcast message with the VLAN-ID to all of the identified output destination ports. In this case, the physical L2SW outputs the message to the virtual L2SW_3 of the physical server B. Incidentally, this broadcast message is not outputted to the virtual L2SW_2 that is not associated with the same VLAN-ID.
When the virtual L2SW_3 that is operating on the physical server B receives the broadcast message with the VLAN-ID that is the same as its own VLAN-ID, the virtual L2SW_3 deletes the VLAN-ID from that broadcast message. Then, the virtual L2SW_3 outputs that message as a broadcast message to the subordinate virtual machines VM3 and VM4.
In this way, when, in the VLAN mode, the same processing is carried out as in a normal network that uses VLAN.
Incidentally, in the VLAN mode, copying of additionally required messages is mainly carried out by the physical L2SW. Therefore, the load of the virtual L2SW is reduced.
The second embodiment does not assume dynamic change of the mode setting, however, the number of subnets, the number of virtual machines, the number of virtual L2SWs and the number of times the broadcast messages are transmitted dynamically change. Consequently, the fixed mode setting cannot always be said to be efficient for the overall system.
Therefore, in this embodiment, a mechanism is employed in which a resource manager apparatus determines whether each of all subnets should operate in the VLAN mode, or should operate in the address conversion mode.
First, an outline of the system relating to this embodiment is illustrated in
Next, the configuration of the resource management apparatus 200 is explained using
Moreover, the resource management apparatus 200 has: a tenant manager 206 that cooperates with the message controller 202 to carry out a processing for managing data of tenants (i.e. customers) that use the system; a tenant data storage unit 210 that stores tenant data; a transfer table processing unit 203 that cooperates with the message controller 202 to carry out a processing for changing the transfer table for its own apparatus and the virtual L2SWs; a transfer table manager 207 that cooperates with the transfer table processing unit 203 to make changes to the transfer table for the overall system; and a transfer table storage unit 211 that stores the transfer table for the overall system.
Furthermore, the resource management apparatus 200 also has a deployment processing unit 212. This deployment processing unit 212 is a unit to realize functions that a virtual system normally has, such as cooperating with the message controller 202 to ensure logical resources from a resource pool and deploying the logical resources on the physical server according to a predetermined algorithm, and returning unnecessary logical resources to the resource pool.
Incidentally, the transfer table processing unit 203 also cooperates with the logical resource manager 205 and tenant manager 206.
An example of data that is stored in the physical resource data storage unit 208 is illustrated in
Next, an example of data that is stored in the logical resource data storage unit 209 is illustrated in
Furthermore, data such as illustrated in
In addition, data such as illustrated in
In this way, it is possible to grasp the logical system configuration from
Furthermore, data such as illustrated in
In addition, an example of data that is stored in the tenant data storage unit 210 is illustrated in
Furthermore, data such as illustrated in
In addition, an example of the data that is stored in the transfer table storage unit 211 is illustrated in
In addition, the virtual L2SW relating to this embodiment has the same configuration as that of the second embodiment. However, as an additional function, the message converter 105 counts the number of broadcast messages for each unit time, and when the amount of change of the number of broadcast messages exceeds a predetermined threshold value, the message converter 105 sends a broadcast transfer amount change notification to the resource management apparatus 200. For example, the unit time is called a slot.
Furthermore, the conversion table storage area 108 also holds data such illustrated in
Furthermore, the message controller 102 identifies a control message from the resource management apparatus 200 with the message type table storage area 103 and carries out a processing required according to the control message. For example, when a control message instructing to set or update the transfer table is received, the message controller 102 instructs the transfer table manager 106 to set or update the transfer table.
Similarly, when a control message instructing to set its own switch data is received, the message controller 102 instructs the private switch data manager 104 to set its own switch data. Furthermore, when a control message instructing to set or update the conversion table is received, the message controller 102 instructs the message converter 105 to set or update the conversion table.
Next, presetting of this system will be explained. In a virtualized system such as a cloud system, the presetting is divided into two phases: physical system construction and virtual system construction.
[Physical System Construction]
The physical system construction is carried out using a method similar to the conventional system construction. In this phase, various settings are performed such as arrangement of the physical devices such as the physical servers, physical wire connection, setting of the IP addresses of the physical servers, and setting of the physical switches (for example, L2 and L3) when necessary. Incidentally, in
[Logical System Construction]
A logical system is a system that customers (in other words, tenants) use, and is constructed by the following procedure when triggered by some kind of action (for example, application for use) from a customer.
(1) The resource management apparatus 200 receives a customer action. Here, the system for “tenant A” in
(2) The deployment processing unit 212 of the resource management apparatus 200 acquires resources for the three virtual machines from a resource pool. In the following, setting is made for each server.
(a) Designation of the number of Network Interface Cards (NICs) is received from a customer, and a MAC address is assigned for each NIC. The MAC addresses are assigned so that there is no duplication of addresses in the system.
(b) Designation of the IP address, network address and subnet mask is received for each NIC from the customer. Setting of the designated contents into the virtual machine is made via a DHCP (Dynamic Host Configuration Protocol) server when the virtual server is activated. The function of the DHCP server is well known, so the further explanation is omitted here.
(c) The deployment processing unit 212 of the resource management apparatus 200 determines the deployment destination physical server of the virtual machine according to a predetermined algorithm. For example, an algorithm is employed that a server is randomly selected, or that a server having little room for resources is assigned in order to concentrate the virtual machines to some servers as long as possible. The processing for determining a deployment destination is well-known technique, so further explanation is omitted here.
(3) The resource management apparatus 200 determines the necessary virtual L2SW according to the logical resource status of the deployment destination of the virtual machines. Here, one virtual machine is deployed to the physical server A, and two virtual machines are deployed to the physical server B, and the deployment processing unit 212 deploys the virtual L2SW to each of the physical servers. When doing this, a virtual MAC address is assigned to each virtual L2SW. The processing required for this embodiment is described below.
(4) The mode to be set for each subnet is determined according to the deployment of the virtual L2SWs and the like, and the mode setting is also made for the virtual L2SWs that belong to each subnet. The processing required at this time in this embodiment will be described below.
(5) Based on the assigned MAC addresses and IP addresses designated by the customer, the transfer table processing unit 203 generates a transfer table (
Furthermore, the logical resource manager 205 stores the logical resource data (
Moreover, the tenant manager 206 stores tenant data into the tenant data storage unit 210 based on the settings described above. Furthermore, the tenant manager 206 stores mode setting data such as illustrated in
After setting has been carried out in this way, the system operates as the system illustrated in
When the communication IF 101 of the virtual L2SW receives a message (i.e. a MAC frame) (step S21), the communication IF 101 outputs that message to the message controller 102. The message controller 102 identifies the message type based on data that is stored in the message type table storage area 103 (step S23). In this embodiment, the message controller 102 identifies whether the message is a broadcast message (also called a broadcast frame), or an Address Resolution Protocol (ARP) request among the broadcast messages.
When the message controller 102 determines that the message is the broadcast message (step S25: YES route), the message controller 102 determines whether or not an ARP request was received (step S27). When the ARP request has been received (step S27: YES route), the message controller 102 causes the transfer table manager 106 to search the transfer table using the IP address included in the ARP request, to read the corresponding MAC address and to output that MAC address to the message controller 102. Then, the message controller 102 outputs a set of the MAC address and IP address to the message converter 105, and causes the message converter 105 to generate an ARP response. The message controller 102 replies with the ARP response obtained from the message converter 105 to the virtual machine of the requesting source via the communication IF 101 (step S29). The processing then ends.
As schematically illustrated in
On the other hand, when the message is not the ARP request (step S27: NO route), the message controller 102 outputs the MAC address of the transmission source to the transfer table manager 106 and causes the transfer table manager 106 to check whether or not the message is a message from a virtual machine VM that is subordinate to its own switch (step S31). When it is known from the response from the transfer table manager 106 that the received message is a message from the virtual machine VM1 subordinate to its own switch, the message controller 102 causes the message converter 105 to check whether or not a VLAN-ID is assigned, or in other words, whether or not the VLAN mode is set (step S33). It is possible to judge whether or not the VLAN mode is set, based on the mode setting data held in the conversion table storage area 108. When the VLAN mode is set, the message controller 102 outputs the received message to the message converter 105. The message converter 105 attaches the VLAN-ID of the subnet to which its own virtual L2SW belongs to the received message (in other words, MAC frame) (step S35), and outputs the message with the VLAN-ID to the message controller 102. Then, the message controller 102 causes the communication IF 101 to output the message with the VLAN-ID to the upper-level switch (step S37). As schematically illustrated in
On the other hand, when there is no assignment of the VLAN-ID and the address conversion mode is set, the message controller 102 outputs the received message to the message converter 105, and the message converter 105 replaces the destination address of the received message with a virtual MAC address of another virtual L2SW included in the conversion table and belonging to the same subnet (step S39), and the message converter 105 outputs the received message in which the destination address is replaced to the message controller 102. Moreover, the processing moves to step S37. In this way, as illustrated in
Furthermore, when the message is not from a virtual machine that is subordinate to its own switch (step S31: NO route), or in other words, when the message is from a upper-level switch, the message controller 102 determines whether or the VLAN-ID is attached to the received message as a VLAN tag (step S41). When the VLAN-ID is attached to the received message, the message controller 102 outputs the received message to the message converter 105, and the message converter 105 deletes the VLAN-ID from the received message (step S43), and outputs the message to the message controller 102. The message controller 102 causes the communication IF 101 to output a broadcast message to the virtual machines that are subordinate to the L2SW's own switch (step S49). In this way, even when the broadcast message with the VLAN-ID as the VLAN tag is received, the operation is made similarly to the operation for the normal VLAN.
On the other hand, when, for some reasons, a broadcast message is received that does not include any VLAN-ID, the message controller 102 causes the communication IF 101 to output the received message as it is to the virtual machines that are subordinate to the L2SW's own switch (step S49).
On the other hand, when it is determined according to the message type table that the received message is a normal message (step S25: NO route), the message controller 102 requests the private switch data manager 104 to output the virtual MAC address of the L2SW's own switch, and determines whether the destination address of the received message is the same as the virtual MAC address of the L2SW's own switch (step S45). When the destination address of the received message is the same as the virtual MAC address of the L2SW's own switch, the message controller 102 outputs the received message to the message converter 105, and the message converter 105 replaces the destination address with a predetermined broadcast address (step S47), and then replies with the processed message to the message controller 102. In addition, shifting to the step S49, the message controller 102 outputs the received message after the destination address is replaced to the virtual machines subordinated to the L2SW's own switch. By doing so, as illustrated in
On the other hand, when the destination address of the received message is not the virtual MAC address of its own virtual L2SW (step S45: NO route), the message is a normal unicast message. Therefore, the message controller 102 causes the transfer table manager 106 to identify the output destination from the MAC address of the received message, and outputs the received message according to the identified output destination (step S51). In other words, the virtual L2SW processes the received message as the normal L2SW. For example, as illustrated in
By carrying out a processing as described above by the virtual L2SW, it is possible to handle messages considered in this embodiment. Incidentally, as described above, the control message makes the corresponding storage area updated with data designated by the control message. Data representing the mode to be set is also included in the control message, and the conversion table storage area 108 is updated by this data.
Incidentally, for example, the message converter 105 of the virtual L2SW carries out a processing such as illustrated in
First, for example, the message converter 105 starts time measurement (step S61). Then, when the message controller 102 outputs a broadcast message (including a message in which its own virtual MAC address is set as the destination address) to the message converter 105, the message converter 105 counts the number of broadcast messages (step S63). This processing is repeated until a preset unit time has elapsed (step S65).
After the unit time has elapsed, the message converter 105 stores the number of broadcast messages during the present unit time as the broadcast transfer amount into the conversion table storage area 108 (for example, the data structure in
Such a processing is repeated until the processing ends such as when the operation of the virtual L2SW is stopped (step S73). In other words, when the processing has not ended, the processing returns from the step S73 to the step S61.
In this processing flow, the flow is illustrated as returning to the step S61 after the step S71, however, actually, separately from the step S67 to the step S71, the processing returns to the step S61 and the number of broadcast messages is counted during the next unit time.
Thus, it is possible to notify the resource management apparatus 200 of a trigger for changing the mode being set.
Next, the processing by the resource management apparatus 200 will be explained using
On the other hand, when the message is not the VM. deployment request, the message controller 202 determines whether or not the received message is a VM deletion request from a customer terminal or other program (may be from the deployment processing unit 212) (step S87). When the message is the VM deletion request, the message controller 202 carries out a processing for the VM deletion request (step S88). This processing for the VM deletion request will be explained using
Furthermore, when the message is not the VM deletion request, the message controller 202 determines whether or not the message is a broadcast transfer amount change notification (step S89). When the message is the broadcast transfer amount change notification, the message controller 202 carries out a processing for the broadcast transfer amount change (step S91). This processing for the broadcast transfer amount change will be explained using
On the other hand, when the message is not the broadcast transfer amount change notification, the message controller 202 carries out the existing processing (step S93), and the processing ends.
In this way, the message controller 202 checks, for each specific message, whether or not the condition for changing the mode is satisfied, and, when necessary, the message controller 202 changes the mode.
Next, the processing for the VM deployment is explained using
When a new subnet does not need to be generated (step S101: NO route), the message controller 202 inquires of the logical resource manager 205 whether or not there is another virtual machine on the same subnet in the deployment destination physical server of the virtual machine that will be deployed according to this VM deployment request (step S107). For example, the message controller 202 determines whether or not a virtual machine belonging to a tenant having the same tenant name that is included in the VM deployment request has been deployed in the deployment destination physical server that is also included in the VM deployment request.
When it is determined at the step S101 that a new subnet will be generated, or when it is determined at the step S107 that there is no virtual machine on the same subnet in the deployment destination physical server, the message controller 202 requests the deployment processing unit 212 to deploy a virtual L2SW to the deployment destination physical server of the virtual machine being deployed, and the deployment processing unit 212 deploys the virtual L2SW to the deployment destination physical server using a known method (step S103). Then, the message controller 202 causes the logical resource manger 205 to update the number of virtual L2SWs on the subnet relating to the VM deployment request in the logical resource data storage unit 209 (step S104). For example, in the table in
Furthermore, the message controller 202 causes the logical resource manager 205 to carry out a VLAN-ID assignment determination processing (step S105). This VLAN-ID assignment determination process is explained using
First, based on data stored in the logical resource data storage unit 209 (for example,
Then, the logical resource manager 205 determines whether or not there is an applicable subnet (step S123). When there is no applicable subnet, the VLAN-ID is not assigned to any subnet, and the address conversion mode is set to all of the subnets. However, in this processing flow, the processing returns to the calling source processing without carrying out any special processing.
On the other hand, when there is an applicable subnet, the logical resource manager 205 reads out the number of virtual L2SWs (
Then, the logical resource manager 205 sorts the subnets in descending order of the number of copy times (step S127). Then, the logical resource manager 205 releases the VLAN-ID assignment of the subnet, to which VLAN-ID is already assigned, among the subnets lower than a top predetermined ranking (more specifically, 4094) (step S129). In the case of firstly assigning the VLAN-ID, this step is skipped.
Furthermore, the logical resource manager 205 assigns unused VLAN-IDs to subnets that have not been assigned any VLAN-ID among a top predetermined number of subnets, and outputs the assignment result to the message controller 202 (step S131). Then, the processing returns to the calling source processing.
By performing such a processing, it is possible to assign VLAN-IDs to subnets in which many virtual L2SWs are included, and to subnets that the broadcast is frequently carried out, to reduce the load of the copying process that is carried out in the address conversion mode.
Returning to the explanation of the processing flow in
Moreover, the transfer table processing unit 203 outputs data of the affected portion of the transfer table that was updated according to the deployed virtual machines and virtual L2SWs to the message controller 202, for each virtual L2SW. The message controller 202 generates, for each affected virtual L2SW, a control message that includes, as the table update data, the data for the affected portion that was received from the transfer table processing unit 203, and in the case of the VLAN mode, the VLAN-IDs received from the logical resource manager 205, or in the case of the address conversion mode, data representing the address conversion mode, and causes the communication IF 201 to transmit the control message (step S111). By doing so, each affected virtual L2SW updates the conversion table storage area 108 and transfer table storage area 109.
Then, the message controller 202 causes the deployment processing unit 212 to deploy a virtual machine to the deployment destination physical server by a known method (step S113). The processing then returns to the calling source processing.
Incidentally, when it is determined at the step S107 that there is the virtual machine on the same subnet in the deployment destination physical server, the virtual L2SW does not need to be additionally deployed. Therefore, the processing moves to step S109.
As described above, there are cases where the status on the subnet changes due to the deployment of the virtual machine. Therefore, according to such change, it is properly judged, for each subnet, which is preferable among the VLAN mode and address conversion mode.
Next, the processing for the VM deletion request is explained using
When there is a virtual L2SW, which will be connected with absolutely no virtual machine as the connection destination, the message controller 202 causes the logical resource manager 205 to update the number of virtual L2SWs on the relevant subnet in the logical resource data storage unit 209 (step S143). The number of virtual L2SWs on the relevant subnet is reduced in the logical resource data storage unit 209 by just the number of virtual L2SWs to be deleted.
Then, the message controller 202 causes the logical resource manager 205 to carry out a VLAN-ID assignment determination processing (step S145). This processing is the same as the processing illustrated in
After that, the message controller 202 causes the logical resource manager 205, tenant manager 206 and transfer table processing unit 203 to update the relevant tables in the resource management apparatus 200 (step S147). The logical resource manager 205 updates data such as illustrated in
Furthermore, the transfer table processing unit 203 outputs, for each virtual L2SW, the data of the affected portion of the table updated according to the virtual machines and virtual L2SWs that are deleted, to the message controller 202. The message controller 202 generates, for each affected virtual L2SW, a control message, which includes as table update data, data of the affected portion received from the transfer table processing unit 203, and in the case of the LAN mode, VLAN-ID data received from the logical resource manager 205, and in the case of the address conversion mode, data representing the address conversion mode, and causes the communication IF 201 to transmit the control message (step S149). By doing so, each affected virtual L2SW updates the conversion table storage area 108 and transfer table storage area 109.
Then, the message controller 202 also causes the deployment processing unit 212 to delete, by a known method, virtual machines that are designated by the VM deletion request and applicable L2SWs if there are virtual L2SWs that are not connected to any virtual machine (step S151). Then, the processing returns to the calling source processing.
Incidentally, when it is determined at the step S141 that no virtual L2SWs will be deleted, there is no need to change the VLAN-ID assignments, and the processing moves to the step S147.
In this way, because there are cases in which the status of the subnets changes due to the deletion of the virtual machine, it becomes possible to appropriately judge, for each subnet, which is preferable among the VLAN mode and address conversion mode.
Next, the processing for the broadcast transfer amount change notification is explained using
Then, the message controller 202 causes the logical resource manager 205 to carry out a VLAN-ID assignment determination processing (step S163). The processing in
After that, the message controller 202 causes the tenant manager 206 to update the data in the tenant data storage unit 210 (step S165). The tenant manager 206 updates data such as illustrated in
Furthermore, the message controller 202 generates, for each affected virtual L2SW, a control message, which includes as table update data, VLAN-ID received from the logical resource manager 205 in the case of the VLAN mode, and data representing the address conversion mode in the case of the address conversion mode, and causes the communication IF 201 to transmit the generated control message (step S167). By doing so, each affected virtual L2SW updates the conversion table storage area 108. After carrying out such a processing, the processing returns to the calling source processing.
In this way, when the number of times that the broadcast message is transmitted rapidly increases or decreases, a VLAN-ID is assigned to a suitable subnet that can reduce the processing load, so it is possible to reduce the processing load of the overall system.
Although embodiments of this technique are described, this technique is not limited to these embodiments. For example, the functional block diagrams do not always correspond to actual program module configurations. Furthermore, as for the processing flow, as long as the processing results do not change, the execution order may be exchanged and the steps may be executed in parallel.
In addition, the resource management apparatus 200 and the physical server are a computer device as shown in
The virtual machines and virtual L2SWs are activated based on data stored in the HDD 2505 or memory 2501 of the physical server or based on data transmitted from the resource management apparatus 200. The virtual machines and virtual L2SWs are virtual devices realized by programs for those and the hardware such as the processor 2503 and the like.
The aforementioned embodiments are outlined as follows:
A program (
By introducing such a program for a virtual switch, it becomes possible to prevent from outputting the broadcast message to other subnets, without using VLAN.
In addition, the procedure of the program relating to the first aspect may further include: receiving a broadcast message from one of the virtual machines; judging which is currently set in the first virtual switch among a Virtual Local Area Network (VLAN) mode and an address conversion mode; upon judging that the address conversion mode is set, converting a destination address of the received broadcast message to a predetermined address of another virtual switch belonging to the same subnet as a subnet to which the first virtual switch belongs, and outputting a message after the conversion to the predetermined address of another virtual switch; and upon judging that the VLAN mode is set, attaching a VLAN identifier of a subnet, to which the virtual machines belong, to the broadcast message, and outputting the broadcast message with the VLAN identifier to an upper-level communication apparatus or an upper-level virtual switch.
Thus, it is possible to switch the mode between the address conversion mode and VLAN mode, dynamically.
A mode setting method (
By carrying out such a processing, even when there are a lot of subnets whose number exceeds the maximum number (e.g. 4096) of VLAN-IDs, it is possible to handle the broadcast messages in an appropriate form while reducing the processing load in the overall system
Incidentally, the aforementioned calculating, the sorting, assigning and setting and the setting may be executed upon detecting that the number of broadcast messages per unit time was changed so as to exceed a predetermined reference, or upon detecting that the number of virtual switches belonging to the same subnet was changed. Thus, it becomes possible to optimize the VLAN-ID assignment depending on the status change of the subnets.
A computer (
Furthermore, a computer (
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 |
---|---|---|---|
2010-032042 | Feb 2010 | JP | national |