WO2014157512A1 - 仮想マシン提供システム、経路決定装置、経路制御方法及びプログラム - Google Patents

仮想マシン提供システム、経路決定装置、経路制御方法及びプログラム Download PDF

Info

Publication number
WO2014157512A1
WO2014157512A1 PCT/JP2014/058841 JP2014058841W WO2014157512A1 WO 2014157512 A1 WO2014157512 A1 WO 2014157512A1 JP 2014058841 W JP2014058841 W JP 2014058841W WO 2014157512 A1 WO2014157512 A1 WO 2014157512A1
Authority
WO
WIPO (PCT)
Prior art keywords
route
virtual machine
controller
switch
path
Prior art date
Application number
PCT/JP2014/058841
Other languages
English (en)
French (fr)
Inventor
正太郎 河野
Original Assignee
日本電気株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 日本電気株式会社 filed Critical 日本電気株式会社
Publication of WO2014157512A1 publication Critical patent/WO2014157512A1/ja

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/25Routing or path finding in a switch fabric
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/70Virtual switches

Definitions

  • the present invention is based on the priority claim of Japanese Patent Application No. 2013-072752 (filed on Mar. 29, 2013), the entire contents of which are incorporated herein by reference. Shall.
  • the present invention relates to a virtual machine providing system, a route determination device, a route control method, and a program, and more particularly to a virtual machine providing system, a route determination device, a route control method, and a program that provide a virtual machine usage environment to a user.
  • the OpenFlow network is composed of a controller (OFC: OpenFlow Controller) that performs packet route calculation, a switch (OFS: OpenFlow Switch) that transfers packets, and a terminal (physical machine or virtual machine) connected to the switch. It is a network.
  • a controller OFC: OpenFlow Controller
  • OFS OpenFlow Switch
  • the controller sets a flow entry that defines the packet transfer rule derived by route calculation in the flow table on the switch.
  • the switch searches the flow table for a flow entry having a header field attribute that matches the received packet, and processes the packet accordingly.
  • an SSL / TLS Secure Socket Layer / Transport Layer Security
  • TCP Transmission Control Protocol
  • the switch when the switch receives a packet from the terminal, the switch refers to the header field (Header Fields attribute) of the flow table and searches for a flow entry having a header field that matches the header information of the packet. If the corresponding flow entry exists, the switch updates the value of the statistical information (Counters attribute) of the entry and executes the specified process (Actions attribute). If there is no entry, the switch sends a packet to the controller (Packet In message).
  • the header field Header Fields attribute
  • the switch updates the value of the statistical information (Counters attribute) of the entry and executes the specified process (Actions attribute). If there is no entry, the switch sends a packet to the controller (Packet In message).
  • the controller Upon receiving the Packet In message, the controller calculates the route of the packet, adds a flow entry corresponding to the packet to the flow table of the switch on the route (Flow Mod message), and transmits the packet to the switch ( Packet Out message).
  • Patent Document 1 in a configuration in which physical servers are connected using the above-described OpenFlow network, a controller controls a switch to transfer a memory image of a migration target virtual machine (VM) to a migration destination virtual machine.
  • VM migration target virtual machine
  • Patent Document 2 discloses a communication device that collects traffic characteristics of a transmission path in an autonomous distributed IP network, calculates a load on the transmission path, and equalizes the load among a plurality of transmission paths as necessary. Is disclosed.
  • Route information Information indicating a route in the OpenFlow network and its weight.
  • the controller calculates from the topology information.
  • Topology information information representing the connection relationship of switches in the OpenFlow network.
  • the controller periodically acquires and obtains a query packet such as LLDP (Link Layer Discovery Protocol) to the switch to be managed.
  • LLDP Link Layer Discovery Protocol
  • a physical switch or a virtual switch can be used, and a physical machine can be connected to the physical switch and a virtual machine can be connected to the virtual switch.
  • the virtual switch is a virtual switch that operates on a physical server, and can be connected only to a virtual machine that operates on the same physical server.
  • Migration of a virtual machine is a function of a hypervisor (VMM in Patent Document 1) on a physical server, and a virtual machine on a physical server can be moved to another physical server.
  • the physical machine to which the virtual machine is moved is manually set by the user, or the hypervisor is automatically set from the resource usage rate (CPU usage rate, memory usage rate, etc.) of the physical machine.
  • the data that the virtual machine takes over before and after the migration includes memory data and disk data.
  • the disk data can be shared by a shared storage between physical machines, but the memory data needs to be transferred from the movement source to the movement destination via the OpenFlow network as in Patent Document 1.
  • a specific route for example, the route between the migration source and the migration destination of the virtual machine having the smallest weight
  • a loss may occur in a packet between virtual machines that use a route overlapping with the specific route.
  • the packet loss can be avoided, for example, by selecting a path with a sufficient bandwidth as a path for transferring memory data.
  • packet loss may occur unexpectedly.
  • the present invention provides a virtual network that contributes to the suppression of packet loss caused by migration of a virtual machine when a plurality of controllers are prepared using a centralized control network represented by an OpenFlow network to provide a virtual machine use environment. It is an object to provide a machine providing system, a route determination device, a route control method, and a program.
  • a plurality of physical servers that provide virtual machines, a plurality of switches that connect the physical servers, a plurality of controllers that share and control the plurality of switches, and the virtual
  • a first path used for transferring the memory data of the virtual machine and a virtual switch before and after the migration execution are connected to the switch to which the virtual machine is connected before and after the migration between the physical servers of the machine.
  • a path management unit that selects a second path for another virtual machine, and at the time of performing migration, the switch on the first and second paths is along the first and second paths.
  • a virtual machine providing system for transferring a packet is provided.
  • the present invention includes a plurality of physical servers that provide virtual machines, a plurality of switches that connect the physical servers, and a plurality of controllers that share and control the plurality of switches.
  • a first path that is arranged in a virtual machine providing system and is used for transferring memory data of the virtual machine between the virtual machine and a switch to which the virtual machine is connected before and after migration between the physical servers of the virtual machine;
  • a path management unit that selects a second path for another virtual machine connected to the virtual switch before and after the execution of migration, notifies the controller of the first and second paths, and executes the migration Sometimes the packets along the first and second paths are sent to the switches on the first and second paths via the controller. Routing device for performing the transfer is provided.
  • the present invention includes a plurality of physical servers that provide virtual machines, a plurality of switches that connect the physical servers, and a plurality of controllers that share and control the plurality of switches.
  • a path determination device arranged in the virtual machine providing system is used for transferring memory data of the virtual machine between the virtual machine and a switch to which the virtual machine is connected before and after performing migration between the physical servers. Selecting a first path and a second path for another virtual machine connected to the virtual switch before and after the execution of migration, and notifying the controller of the first and second paths When the migration is performed, the first and second switches are connected to the switches on the first and second paths via the controller.
  • a step of causing the transfer of packets along the path, the path control method comprising is provided. The method is associated with a specific machine, a route determination device that notifies the controller of the route.
  • a fourth aspect includes a plurality of physical servers that provide virtual machines, a plurality of switches that connect the physical servers, and a plurality of controllers that share and control the plurality of switches.
  • a first computer used to transfer memory data of the virtual machine to a computer arranged in the virtual machine providing system between the virtual machine and a switch connected to the virtual machine before and after the migration between the physical servers.
  • This program can be recorded on a computer-readable (non-transient) storage medium. That is, the present invention can be embodied as a computer program product.
  • a centralized control network typified by an OpenFlow network
  • a plurality of controllers are prepared to contribute to suppression of packet loss caused by migration of a virtual machine when providing a virtual machine use environment. It becomes possible to do.
  • FIG. 3 is a diagram illustrating a state in which a physical server on which a virtual switch SW6 operates is selected as a migration destination of the virtual machine VM2 of FIG. It is a figure which shows the example of the virtual machine management table after migration. It is a flowchart which shows the flow of the route selection process by the controller of the 1st Embodiment of this invention.
  • a plurality of physical servers SV1 and SV2 providing virtual machines VM1 to VM3 and a plurality of switches 2A to 2D for connecting the physical servers SV1 and SV2 are provided. And a plurality of controllers 1A and 1B that share and control the plurality of switches 2A to 2D, and a path management unit 18A.
  • the path management unit 18A is configured to switch the virtual machines (for example, the switches 2B and 2D in FIG. 1) to which the virtual machines (for example, the VM 2 in FIG. 1) connect before and after the migration between the physical servers. ) Between the first path (switches 2B-2C-2D in FIG. 1) used for transferring the memory data of the virtual machine and the virtual switches before and after the execution of the migration (switches 2B, 2D in FIG. 1). The second path (switches 2B-2A-2D in FIG. 1) for the other virtual machines VM1 and VM3 connected to is selected. Then, the controllers 1A and 1B cause the switches 2A to 2D on the first and second paths to transfer the packets along the first and second paths at the time of executing migration.
  • the virtual machines for example, the switches 2B and 2D in FIG. 1
  • the path management unit 18A has been described as being built in the controller 1A. However, the path management unit 18A may be configured as an independent device (path determination device).
  • Switch usage status The number of messages sent from the managed switch to the controller varies from switch to switch and varies with time.
  • -Network configuration (topology) update The number of messages transmitted from the managed switch to the controller changes due to a connection failure between the switches and a topology update due to addition / deletion of switches.
  • a load information management unit and a load information management table for managing the load are provided on the controller, and the load on the controller is changed by switching the secure channel so that the load on each controller is equal.
  • the distribution can be performed.
  • FIG. 2 is a diagram illustrating a configuration of the virtual machine providing system according to the first embodiment of this invention.
  • two controllers 1-1 and 1-2, physical switches and virtual switches 2-1 to 2-6 controlled by these controllers, and physical switches and virtual switches 2- A configuration in which two physical servers SV1 and SV2 are connected via 1 to 2-6 is shown.
  • the controller 1-1 controls these switches by setting flow entries in the flow table of the physical switch 2-1 and the virtual switch 2-4 to be managed through the secure channel.
  • the controller 1-2 controls these switches by setting flow entries in the flow tables of the physical switches 2-2, 2-3, 2-5 and the virtual switch 2-6 to be managed through the secure channel. To do.
  • the controllers 1-1 and 1-2 as described above can be configured by the OpenFlow controller described in Non-Patent Document 2.
  • virtual machines VM1 and VM2 are connected to the virtual switch 2-4, and a virtual machine VM3 is connected to the virtual switch 2-6. Further, a physical machine PM1 such as a personal computer is connected to the physical switch 2-5.
  • FIG. 3 is a block diagram showing the configuration of the controller according to the first embodiment of the present invention (hereinafter referred to as “controller 1” unless the controllers 1-1 and 1-2 are particularly distinguished).
  • the message control unit 11, the path control unit 12, the topology control unit 13, the load management unit 14, the network information storage unit 15, the virtual machine management unit 16, and the virtual machine management table 17 A controller 1 including a detour route management unit 18 and a detour route management table 19 is shown.
  • the message control unit 11 transmits / receives an OpenFlow protocol message to / from the message control unit 22 of the switch (hereinafter referred to as “switch 2” unless the physical switch and the virtual switches 2-1 to 2-6 are particularly distinguished). .
  • the route control unit 12 performs route calculation with reference to the topology information 152 and updates the route information 151 when the Packet In message is received from the switch 2. Also, a Flow Mod message for setting a flow entry to the switch 2 is transmitted. Further, the path control unit 12 transmits a Packet Out message that indicates a transmission destination of the packet transmitted by the Packet In message.
  • the topology control unit 13 transmits a query packet to the switch to be managed, acquires switch connection information, and updates the topology information 152.
  • the load control unit 14 calculates the load with reference to the load management table 153 at a certain time interval or when the network topology changes, and switches the secure channel to load a part of the managed switch. Move from a higher controller to a lower load controller.
  • the load of the controller 1 is obtained by multiplying the ratio of the number of received messages of the controller to the total number of received messages of all controllers and the ratio of the total number of received packets to the number of received packets of the switch to be managed by the controller. That is, the load of a certain controller C is calculated by the following calculation formula. Of course, the capability of each controller may be taken into consideration, and other calculation formulas may be used.
  • controller C (number of received messages of controller C / total number of received messages of all controllers) * (number of received packets of managed switch of controller C / total number of received packets of all switches)
  • the load management table 153 includes a table that stores entries in which switch IDs, controller IDs, received message counts, and received packet counts are associated with each other.
  • the load control unit 14 manages the number of received messages and the number of received packets used as the controller load for each switch 2 using the table shown in FIG.
  • switch ID 4 is an attribute for uniquely identifying the switch 2 in the OpenFlow network, and is the primary key of the load management table 153.
  • these switch IDs are described as “SW1” to “SW6”.
  • SW1 a data path ID consisting of 48 bits of the MAC address of the switch 2 and 12 bits depending on the implementation is used as the switch ID.
  • the data path ID can be acquired from the switch 2 by the Feature Request / Reply message of the OpenFlow protocol after the secure channel is established.
  • the controller ID in FIG. 4 is an attribute for uniquely identifying the controller 1 in the OpenFlow network.
  • these controller IDs are denoted as “C1” and “C2”.
  • the IP address of the controller 1 can be used as the controller ID.
  • the number of received messages in FIG. 4 is an attribute for managing the number of messages received by the controller 1 from the switch 2.
  • the value of the number of received messages is incremented by 1 every time a message is received from the switch 2. Since it is predicted that the number of received messages increases as the number of received messages per time increases, in this embodiment, the number of received messages is used as an argument when calculating the controller load.
  • the number of received packets in FIG. 4 is an attribute for managing the number of packets received by the managed switch of the controller 1 from a terminal or an adjacent switch.
  • the number of received packets can be updated by obtaining the number of received packets per time of each port from each switch 2 by the Statistics Request / Reply message of the OpenFlow protocol.
  • the number of messages transmitted from the switch 2 to the controller 1 tends to increase. Therefore, in this embodiment, as with the number of received messages, it is used as an argument when calculating the controller load. Yes.
  • the number of received packets at a port that has not received a packet due to a connection failure between switches or deletion of the switch is not used because the number of received packets thereafter is predicted to be zero.
  • the network information storage unit 15 stores route information 151, topology information 152, and a load management table 153.
  • the contents held in the network information storage unit 15 are synchronized between the controllers. That is, when any one of the controllers 1 updates the contents of the network information storage unit 15, the contents of the network information storage unit 15 of the other controller are also updated.
  • the contents of the network information storage unit 15 are synchronized via the switch 2 using a Packet-Out message.
  • a dedicated link is provided between the controllers 1 and the network. Each content of the information storage unit 15 may be exchanged.
  • the virtual machine management unit 16 periodically acquires a message including the physical server ID, the virtual switch ID, the virtual port ID, the virtual network ID, the virtual machine ID, and the resource usage rate from the physical servers SV1 and SV2. And managed by the virtual machine management table 17.
  • the virtual machine management unit 16 uses the virtual port with the same virtual network ID among the virtual ports of the virtual switch on the physical server with the minimum total resource usage rate.
  • the port is selected as a destination port of the virtual machine, and the detour route management unit 18 is requested to select a detour route.
  • the virtual machine management table 17 associates physical server IDs, virtual switch IDs, virtual port IDs, virtual network IDs, virtual machine IDs, and resource usage rates as attributes. Consists of a table that stores entries. Based on this table, the virtual machine management unit 16 manages the resource usage rate in units of physical servers and virtual machines, and manages the association of virtual machine IDs with virtual port IDs, virtual switch IDs, and virtual network IDs.
  • the physical server ID is an attribute for uniquely identifying the physical server.
  • the IP address of the physical server can be used as the controller ID.
  • “SV1” and “SV2” are used.
  • the virtual switch ID is an attribute for uniquely identifying the virtual switch in the OpenFlow network. In the present embodiment, they are described as “SW1” to “SW6”. Similar to the switch ID in the load management table 153, a data path ID consisting of 48 bits of the MAC address of the switch and 12 bits depending on the implementation can be used as the virtual switch ID.
  • the virtual port ID is an attribute for uniquely identifying the port of the virtual switch. An integer value starting from 0 can be used as the virtual port ID.
  • the virtual network ID is an attribute for uniquely identifying the virtual network on the OpenFlow network.
  • the hypervisor on the physical server is an ID assigned to a group of a plurality of virtual port IDs as a port group. Communication can be performed only between terminals connected to virtual ports belonging to the same port group.
  • the virtual machine ID is an ID for uniquely identifying the virtual machine assigned to the virtual machine by the hypervisor.
  • the symbols “VM1” to “VM3” shown in FIG. 2 are used.
  • the hypervisor on each physical server is linked, and a unique ID can be assigned to all physical servers.
  • the resource usage rate is the usage rate of the virtual machine resource relative to the physical server resource.
  • a CPU usage rate, a memory usage rate, or the like can be used.
  • the detour path management unit 18 acquires a list of paths between the source and destination of the virtual machine (path candidate list) from the path information, and the path with the smallest weight (first path; memory data of the virtual machine) And a route having a high degree of similarity in the load ratio to the controller generated by the first route is selected as a bypass route (second route).
  • the similarity of the path can be calculated by the following formula (Euclidean distance) when the path having the smallest weight is P and the controller ID is C1 to Cn. It can be said that the smaller the value, the higher the similarity of the path Px with P.
  • Path Px similarity sqrt ((the ratio of the number of received packets to C1 of Px ⁇ the ratio of the number of received packets to C1 of P) ⁇ 2 +... + (The ratio of the number of received packets to C1 of Px) ⁇ to the C1 of P Ratio of received packets) ⁇ 2)
  • the detour route management table 19 is configured by a table that stores, as attributes, an entry in which a route ID, a management target switch ID, and the number of received packets are associated with each other.
  • the detour route management unit 18 manages the ratio of the load on each controller of the route using this table.
  • the route ID is an attribute for uniquely identifying the route connecting the migration source port and the migration destination port of the virtual machine.
  • a concatenation of virtual switch IDs of virtual switches on the path can be used as the path ID (see the path ID in FIG. 12).
  • the controller ID is an attribute for uniquely identifying the controller 1 in the OpenFlow network.
  • the IP address of the controller 1 is used as the controller ID.
  • the management target switch ID is an attribute for setting a switch ID corresponding to the controller ID.
  • the number of received packets is the total number of transmission / reception packets of each switch of the managed switch for each virtual machine.
  • the number of received packets at the source port is subtracted and added to the number of received packets at the destination port.
  • the virtual machine management unit 16, the virtual machine management table 17, the detour route management unit 18, and the detour route management table 19 may be provided in any one of a plurality of controllers.
  • FIG. 7 is a block diagram illustrating a configuration of the switch according to the first embodiment of this invention. Referring to FIG. 7, a configuration including a packet control unit 21, a message control unit 22, a flow table 23, a switch ID storage unit 24, and a controller information storage unit 25 is shown.
  • the packet control unit 21 When the switch 2 receives a packet from a terminal or an adjacent switch, the packet control unit 21 refers to the flow table 23 and processes the packet using a flow entry that matches the received packet.
  • the message control unit 22 transmits / receives an OpenFlow protocol message to / from the message control unit 11 of the controller 1.
  • the message control unit 22 updates the flow table 23.
  • the message control unit 22 transmits the switch ID stored in the switch ID storage unit 24 to the controller 1.
  • the controller information storage unit 25 stores a controller ID 251.
  • the controller ID is an attribute for uniquely identifying the controller 1 in the OpenFlow network.
  • the IP address of the controller 1 is used as the controller ID.
  • the controller ID 251 may be set by a network administrator. When a switch is added to the OpenFlow network, a query packet can be transmitted to the adjacent switch via the packet control unit 21 and acquired.
  • 3 and 7 are realized by a computer program that causes a computer on which these devices are mounted to execute the above-described processes using the hardware thereof. You can also.
  • FIG. 8 is a flowchart showing the flow of migration necessity determination processing by the virtual machine management unit 16 in the controller 1 according to the first embodiment of this invention.
  • the virtual machine management unit 16 refers to the virtual machine management table 17, calculates the resource usage rate of each physical server, and acquires the physical server SVx having the maximum resource usage rate (step A1).
  • the virtual machine management unit 16 acquires the virtual machine VMx having the minimum resource usage rate from the physical server SVx (steps A2 and A3).
  • the virtual machine management unit 16 refers to the virtual machine management table 17 and obtains a physical server SVy having a minimum resource usage rate and having a free port (step A4).
  • the maximum value of the resource usage rate of the physical server SVy is equal to or smaller than the threshold (No in Step A5), the virtual machine management unit 16 determines that migration should be performed.
  • the virtual machine management unit 16 searches the physical server SVy for a free port having the same virtual network ID as that of the virtual machine VMx, sets the virtual machine VMx in the free port, and selects a path (see FIG. 12) (steps A6 and A7).
  • the virtual machine management unit 16 requests the physical server SVx to migrate the virtual machine VMx (step A8).
  • FIG. 9 is a diagram illustrating an example of a virtual machine management table in the state of FIG. 2 (before migration).
  • the virtual machines VM1 and VM2 are operating on the physical server SV1, and the virtual machine VM3 is operating on the physical server SV2.
  • the resource usage rate of the physical server SV1 is 0.9. A process of selecting the virtual machine VMx having the lowest resource usage rate from the server SVx is performed.
  • the resource usage rate of the virtual machine VM1 is 0.5 and the resource usage rate of the virtual machine VM2 is 0.4. It is. Therefore, in step A3 of FIG. 8, the virtual machine VM2 is selected as the virtual machine VMx with the lowest resource usage rate.
  • the virtual machine management unit 16 acquires a physical server having a minimum resource usage rate and an available port.
  • SV2 is selected as the physical server SVy with the minimum total resource usage rate and a free port.
  • the virtual machine management unit 16 checks whether the resource usage rate of the selected physical server SV2 is equal to or less than a threshold value. If the threshold to be compared with the resource usage rate of the physical server SVy is 0.8, the resource usage rate 0.2 of the physical server SV2 does not exceed the threshold value, so the virtual machine management unit 16 performs migration. The process proceeds to step A6.
  • the virtual machine management unit 16 acquires a free port having the same virtual network ID as the migration target virtual machine VM2. Referring to the virtual machine management table of FIG. 9, since the virtual network ID of the virtual machine VM2 is NW2, the virtual port 1 of the physical server SV2 is selected as a free port in step A6 of FIG.
  • the virtual machine management unit 16 sets the virtual machine VM2 in the virtual port 1 of the physical server SV2, and calls a route selection process (step A7).
  • the virtual machine management unit 16 requests the physical server SV1 to migrate the virtual machine VM2.
  • the virtual machine VM2 is connected to the virtual port 1 of the virtual switch SW6 of the physical server SV2, and the virtual machine management table of FIG. 9 is as shown in FIG. To be rewritten.
  • FIG. 12 is a flowchart illustrating a flow of a path selection process performed by the virtual machine management unit 16 in the controller 1 according to the first embodiment of this invention.
  • the detour route management unit 18 first obtains, from the route information 151, the route ID and weight of the route having the virtual switch (SW4-SW6) before and after the migration of the migration target virtual machine as the start point and the end point. And set in the detour route management table 19 (step B1).
  • the detour route management unit 18 acquires the number of received packets of the switch on each route from the load management table 153 and sets it in the detour route management table 19 (step B2).
  • the detour path management unit 18 acquires the number of received packets for each port from the load management table 153, subtracts the number of received packets of the corresponding virtual port from the number of received packets of the source virtual switch, and moves to the destination port. Is added to the number of received packets (step B3).
  • the detour route management unit 18 calculates the similarity between the route having the smallest weight and another route from the load management table 153, and acquires the route having the smallest similarity and the weight equal to or less than the threshold (step). B4, B5).
  • the path having the smallest weight is selected as the first path used for transferring the memory data of the migration target virtual machine.
  • the path having the minimum similarity and the weight equal to or less than the threshold is selected as the second path for the other virtual machines connected to the virtual switch before and after the migration.
  • the detour route management unit 18 requests the route control unit 12 to set a flow entry for causing the switches on the first and second routes to perform these transfer processes (step B6).
  • FIG. 13 is a detour route management table before a detour route is selected.
  • FIG. 14 is a detour route management table after the detour route is selected.
  • step B1 the detour route management unit 18 acquires the route ID and weight from the route information 151 and sets them in the detour route management table 19 (route ID and weight in FIG. 13).
  • step B2 the bypass route management unit 18 acquires the number of received packets from the load management table 153 and sets it in the bypass route management table 19 (controller ID, switch ID, and number of received packets in FIG. 13).
  • step B3 the detour path management unit 18 acquires the number of received packets for each port from the load management table 153, subtracts the number of received packets at the source port, and adds it to the number of received packets at the destination port. For example, if the number of received packets at the movement source port is 40, the detour route management unit 18 subtracts 40 from the number of received packets of SW4 in the detour route management table and adds 40 to the number of received packets of SW6 (SW4, FIG. 14). (Refer to the number of received packets of SW6).
  • step B4 the detour route management unit 18 calculates the similarity between the route having the smallest weight and another route.
  • the path SW4-SW5-SW6 with the smallest weight is selected as the first path used for transferring the memory data of the migration target virtual machine.
  • SW4-SW1-SW2-SW3-SW6 load ratio C1: C2 (160 + 210) / (160 + 210 + 140 + 180 + 180): (140 + 180 + 180) / (160 + 210 + 140 + 180 + 180) ⁇ 0.43: 0.57
  • Load ratio of SW4-SW1-SW2-SW6 C1: C2 210 / (210 + 140 + 180 + 180): (140 + 180 + 180) / (210 + 140 + 180 + 180) ⁇ 0.30: 070 (Route 3)
  • SW4-SW2-SW3-SW6 load ratio C1: C2 (160 + 210) / (160 + 210 + 40 + 180): (40 + 180) / (160 + 210 + 40 + 180) ⁇ 0.63: 037 (Route 4)
  • Load ratio of SW4-SW2-SW6 C1: C2 160 / (160 + 210) / (160 + 210 + 140 + 180): (140 + 180) / (160 + 210
  • SW4-SW1-SW2-SW6 has the highest similarity (small value). Therefore, (Route 2) SW4-SW1-SW2-SW6 is selected as the second route for other virtual machines connected to the virtual switch before and after migration.
  • a process for selecting the route with the next highest similarity (small value) is performed (step B5 in FIG. 12). reference).
  • FIG. 15 is a diagram showing the first route and the second route.
  • the memory data of the migration target virtual machine VM2 is transferred along the path SW4-SW5-SW6 having the minimum weight.
  • packets between other virtual machines connected to the virtual switch before and after migration have a path SW4-SW1-SW2-SW6 having the highest similarity to the path SW4-SW5-SW6, the weight of which is not more than a predetermined threshold. Will be transferred along.
  • one of a plurality of controllers in the OpenFlow network has been described as having a migration execution and route determination function, but these functions are assigned to a physical server different from the controller. It is also possible to adopt a configuration that allows For example, as illustrated in FIG. 16, a route determination device including the virtual machine management unit 16, the virtual machine management table 17, the detour route management unit 18, and the detour route management table 19 is prepared and operates in cooperation with the controller 1. It is also possible to adopt a configuration that allows them to be used.
  • controller load and the similarity calculation formulas exemplified in the above-described embodiments are merely examples, and it goes without saying that various changes can be made.
  • the multiple controllers have a function to move the switch shared by the high load controller to the low load controller.
  • the path management unit is a virtual machine providing system that selects a first path and a second path so that movement does not occur in a switch shared by the plurality of controllers.
  • the route management unit A virtual machine providing system that selects, as the second route, a route that is similar to a first route and a load applied to each controller.
  • the route management unit A virtual machine providing system that selects a route having the smallest weight as a first route and selects a detour route as the second route among routes between the virtual machines before and after the execution of the migration.

Abstract

 本発明は、集中制御型のネットワークを用いて、複数のコントローラを用意して、仮想マシン利用環境を提供する場合における仮想マシンのマイグレーションによって生じるパケットロスの抑制に貢献する。仮想マシン提供システムは、仮想マシンを提供する複数の物理サーバと、前記物理サーバ間を接続する複数のスイッチと、前記複数のスイッチを、それぞれ分担して制御する複数のコントローラと、前記仮想マシンの前記物理サーバ間のマイグレーション実行前後の当該仮想マシンの接続するスイッチとの間に、前記仮想マシンのメモリデータの転送に使用する第1の経路と、前記マイグレーション実行前後の仮想スイッチに接続する他の仮想マシンのための第2の経路とを選択する経路管理部と、を含む。そして、マイグレーション実行時に、前記第1、第2の経路上のスイッチが、前記第1、第2の経路に沿ったパケットの転送を行う。

Description

仮想マシン提供システム、経路決定装置、経路制御方法及びプログラム
 (関連出願についての記載)
 本発明は、日本国特許出願:特願2013-072752号(2013年03月29日出願)の優先権主張に基づくものであり、同出願の全記載内容は引用をもって本書に組み込み記載されているものとする。
 本発明は、仮想マシン提供システム、経路決定装置、経路制御方法及びプログラムに関し、特に、ユーザに仮想マシン利用環境を提供する仮想マシン提供システム、経路決定装置、経路制御方法及びプログラムに関する。
 近年、非特許文献1、2のOpenFlowを用いたネットワークが注目されている。OpenFlowネットワークは、パケットの経路計算を行うコントローラ(OFC: OpenFlow Controller)と、パケットの転送を行うスイッチ(OFS: OpenFlow Switch)と、スイッチに接続される端末(物理マシンまたは仮想マシン)から構成されるネットワークである。
 コントローラは、スイッチ上のフローテーブルに、経路計算によって導出したパケットの転送ルールを定めたフローエントリを設定する。スイッチは、フローテーブルから、受信パケットに適合するヘッダフィールド属性を持つフローエントリを探し、これに従ってパケットを処理する。
 コントローラとスイッチとの間には、セキュアチャネルと呼ばれるSSL/TLS(Secure Socket Layer/Transport Layer Security)またはTCP(Transmission Control Protocol)の接続が確立されている。コントローラとスイッチは、このセキュアチャネルを介して非特許文献2のOpenFlowプロトコルのメッセージを授受する。
 具体的には、スイッチは端末からパケットを受信すると、フローテーブルのヘッダフィールド(Header Fields属性)を参照し、パケットのヘッダ情報と適合するヘッダフィールドをもつフローエントリを検索する。該当するフローエントリが存在する場合、スイッチは、エントリの統計情報(Counters属性)の値を更新し、指定された処理(Actions属性)を実行する。エントリが存在しない場合、スイッチはパケットをコントローラに送信する(Packet Inメッセージ)。
 前記Packet Inメッセージを受信すると、コントローラは、パケットの経路計算を行い、経路上のスイッチのフローテーブルに当該パケットに対応するフローエントリを追加し(Flow Modメッセージ)、当該パケットをスイッチに送信する(Packet Outメッセージ)。
 特許文献1には、上記したOpenFlowネットワークを用いて物理サーバを接続した構成において、コントローラがスイッチを制御することにより、マイグレーション対象の仮想マシン(VM)のメモリイメージをマイグレーション先の仮想マシンに転送する構成が開示されている。
 特許文献2には、自律分散型のIPネットワークにおいて、伝送経路のトラヒック特性を収集して、伝送経路の負荷を計算し、必要に応じ、負荷を複数の伝送経路間で均等化するという通信装置が開示されている。
特開2011-70549号公報 特開2001-320420号公報
Nick McKeownほか7名、"OpenFlow: Enabling Innovation in Campus Networks"、[online]、[平成25(2013)年3月18日検索]、インターネット〈URL:http://www.openflow.org/documents/openflow-wp-latest.pdf〉 "OpenFlow Switch Specification" Version 1.3.1 (Wire Protocol 0x04)、[online]、[平成25(2013)年3月18日検索]、インターネット〈URL:https://www.opennetworking.org/images/stories/downloads/specification/openflow-spec-v1.3.1.pdf〉
 以下の分析は、本発明によって与えられたものである。OpenFlowネットワークにおいて、スイッチに接続される端末数が増加すると、スイッチからコントローラに送信されるPacket Inメッセージ数が増加し、単一のコントローラではメッセージを処理しきれなくなる可能性がある。そこで、コントローラがスイッチから受信するメッセージ数を分散させるために、複数のコントローラを導入することが提案されている(例えば、非特許文献2の「6.3.4 Multiple Controllers」参照)。
 OpenFlowネットワーク内に複数のコントローラを導入する場合において、各コントローラに管理対象とするスイッチを割り当て、各コントローラが管理対象のスイッチとだけメッセージの送受信を行う方式も検討されている。これにより、コントローラがスイッチから受信するメッセージ数を分散させることができる。
 その一方で、各コントローラがフローテーブルにフローエントリを設定する際は、OpenFlowネットワーク全体の経路情報、トポロジ情報が必要となる。このため、上記分担方式を採る場合、コントローラ間で下記情報の同期を行う必要がある。
・経路情報:OpenFlowネットワーク内の経路とその重みを表す情報である。コントローラがトポロジ情報から算出する。
・トポロジ情報:OpenFlowネットワーク内のスイッチの接続関係を表す情報である。コントローラが管理対象のスイッチに対して定期的にLLDP(Link Layer Discovery Protocol)等のクエリパケットを送信して取得する。
 OpenFlowネットワークを構成するスイッチとして、物理スイッチまたは仮想スイッチを使用することができ、物理スイッチには物理マシンを、仮想スイッチには仮想マシンを接続することができる。なお、仮想スイッチは、物理サーバ上で動作する仮想的なスイッチであり、同一物理サーバ上で動作する仮想マシンとのみ接続することができる。
 仮想マシンのマイグレーションは、物理サーバ上のハイパーバイザ(特許文献1のVMM)がもつ機能であり、物理サーバ上の仮想マシンを、別の物理サーバ上に、移動させることができる。仮想マシンをどの物理マシンに移動するかは、ユーザが手動で設定するか、ハイパーバイザが物理マシンのリソース使用率(CPU使用率、メモリ使用率など)から自動的に設定する。
 従って、上記のように複数のコントローラを導入したOpenFlowネットワークを用いて、コントローラの負荷を分散しつつ、物理サーバのリソース使用状況に応じマイグレーションを行って仮想マシンを提供するシステムが考えられる。
 前記マイグレーション前後で仮想マシンが引き継ぐデータとして、メモリデータとディスクデータがある。ディスクデータは物理マシン間の共有ストレージによって共有することができるが、メモリデータは特許文献1のようにOpenFlowネットワーク経由で移動元から移動先に転送する必要がある。
 前記マイグレーション中は、特定の経路(例えば、仮想マシンの移動元と移動先との間の経路のうち重みが最小のもの)がこのメモリデータで占有されることになる。このため、前記特定の経路と重複する経路を使用する仮想マシン間のパケットに、ロスが発生する可能性がある。このとき、ネットワークを管理しているコントローラが単一であれば、帯域に余裕のある経路をメモリデータの転送用経路に選択するなど、上記パケットロスを回避することができる。しかしながら、複数のコントローラが導入されており、それぞれ管理対象のスイッチが異なる場合、期せずしてパケットロスが発生してしまうことが考えられる。
 本発明は、OpenFlowネットワークに代表される集中制御型のネットワークを用いて、複数のコントローラを用意して、仮想マシン利用環境を提供する場合における仮想マシンのマイグレーションによって生じるパケットロスの抑制に貢献できる仮想マシン提供システム、経路決定装置、経路制御方法及びプログラムを提供することを目的とする。
 第1の視点によれば、仮想マシンを提供する複数の物理サーバと、前記物理サーバ間を接続する複数のスイッチと、前記複数のスイッチを、それぞれ分担して制御する複数のコントローラと、前記仮想マシンの前記物理サーバ間のマイグレーション実行前後の当該仮想マシンの接続するスイッチとの間に、前記仮想マシンのメモリデータの転送に使用する第1の経路と、前記マイグレーション実行前後の仮想スイッチに接続する他の仮想マシンのための第2の経路とを選択する経路管理部と、を含み、マイグレーション実行時に、前記第1、第2の経路上のスイッチに、前記第1、第2の経路に沿ったパケットの転送を行わせる仮想マシン提供システムが提供される。
 第2の視点によれば、仮想マシンを提供する複数の物理サーバと、前記物理サーバ間を接続する複数のスイッチと、前記複数のスイッチを、それぞれ分担して制御する複数のコントローラと、を含む仮想マシン提供システムに配置され、前記仮想マシンの前記物理サーバ間のマイグレーション実行前後の当該仮想マシンの接続するスイッチとの間に、前記仮想マシンのメモリデータの転送に使用する第1の経路と、前記マイグレーション実行前後の仮想スイッチに接続する他の仮想マシンのための第2の経路とを選択する経路管理部を備え、前記コントローラに対し、前記第1、第2の経路を通知し、マイグレーション実行時に、前記コントローラを介して、前記第1、第2の経路上のスイッチに、前記第1、第2の経路に沿ったパケットの転送を行わせる経路決定装置が提供される。
 第3の視点によれば、仮想マシンを提供する複数の物理サーバと、前記物理サーバ間を接続する複数のスイッチと、前記複数のスイッチを、それぞれ分担して制御する複数のコントローラと、を含む仮想マシン提供システムに配置された経路決定装置が、前記仮想マシンの前記物理サーバ間のマイグレーション実行前後の当該仮想マシンの接続するスイッチとの間に、前記仮想マシンのメモリデータの転送に使用する第1の経路と、前記マイグレーション実行前後の仮想スイッチに接続する他の仮想マシンのための第2の経路とを選択するステップと、前記コントローラに対し、前記第1、第2の経路を通知するステップと、マイグレーション実行時に、前記コントローラを介して、前記第1、第2の経路上のスイッチに、前記第1、第2の経路に沿ったパケットの転送を行わせるステップと、を含む経路制御方法が提供される。本方法は、コントローラに経路を通知する経路決定装置という、特定の機械に結びつけられている。
 第4の視点によれば、仮想マシンを提供する複数の物理サーバと、前記物理サーバ間を接続する複数のスイッチと、前記複数のスイッチを、それぞれ分担して制御する複数のコントローラと、を含む仮想マシン提供システムに配置されたコンピュータに、前記仮想マシンの前記物理サーバ間のマイグレーション実行前後の当該仮想マシンの接続するスイッチとの間に、前記仮想マシンのメモリデータの転送に使用する第1の経路と、前記マイグレーション実行前後の仮想スイッチに接続する他の仮想マシンのための第2の経路とを選択する処理と、前記コントローラに対し、前記第1、第2の経路を通知する処理と、を実行させ、マイグレーション実行時に、前記第1、第2の経路上のスイッチに、前記第1、第2の経路に沿ったパケットの転送を行わせるプログラムが提供される。なお、このプログラムは、コンピュータが読み取り可能な(非トランジエントな)記憶媒体に記録することができる。即ち、本発明は、コンピュータプログラム製品として具現することも可能である。
 本発明によれば、OpenFlowネットワークに代表される集中制御型のネットワークを用いて、複数のコントローラを用意して、仮想マシン利用環境を提供する場合における仮想マシンのマイグレーションによって生じるパケットロスの抑制に貢献することが可能となる。
本発明の一実施形態の構成を示す図である。 本発明の第1の実施形態の仮想マシン提供システムの構成を示す図である。 本発明の第1の実施形態のコントローラの構成を示すブロック図である。 本発明の第1の実施形態のコントローラが保持する負荷管理テーブルの構成例を示す図である。 本発明の第1の実施形態のコントローラが保持する仮想マシン管理テーブルの構成例を示す図である。 本発明の第1の実施形態のコントローラが保持する迂回経路管理テーブルの構成例を示す図である。 本発明の第1の実施形態のスイッチの構成を示すブロック図である。 本発明の第1の実施形態のコントローラによるマイグレーション要否判定処理の流れを示すフローチャートである。 マイグレーション前の仮想マシン管理テーブルの例を示す図である。 図2の仮想マシンVM2のマイグレーション先として仮想スイッチSW6が動作する物理サーバが選択された状態を示す図である。 マイグレーション後の仮想マシン管理テーブルの例を示す図である。 本発明の第1の実施形態のコントローラによる経路選択処理の流れを示すフローチャートである。 迂回経路の選択前の迂回経路管理テーブルの例を示す図である。 迂回経路の選択後の迂回経路管理テーブルの例を示す図である。 メモリデータ転送経路と、迂回経路の選択例を示す図である。 本発明の仮想マシン提供システムの変形構成例を示す図である。
 はじめに本発明の一実施形態の概要について図面を参照して説明する。なお、この概要に付記した図面参照符号は、理解を助けるための一例として各要素に便宜上付記したものであり、本発明を図示の態様に限定することを意図するものではない。
 本発明は、その一実施形態において、図1に示すように、仮想マシンVM1~VM3を提供する複数の物理サーバSV1、SV2と、前記物理サーバSV1、SV2間を接続する複数のスイッチ2A~2Dと、前記複数のスイッチ2A~2Dを、それぞれ分担して制御する複数のコントローラ1A、1Bと、経路管理部18Aと、を含む構成にて実現できる。
 より具体的には、前記経路管理部18Aは、仮想マシン(例えば、図1のVM2)の前記物理サーバ間のマイグレーション実行前後の当該仮想マシンの接続するスイッチ(例えば、図1のスイッチ2B、2D)との間に、前記仮想マシンのメモリデータの転送に使用する第1の経路(図1のスイッチ2B-2C-2D)と、前記マイグレーション実行前後の仮想スイッチ(図1のスイッチ2B、2D)に接続する他の仮想マシンVM1、VM3のための第2の経路(図1のスイッチ2B-2A-2D)とを選択する。そして、前記コントローラ1A、1Bは、マイグレーション実行時に、前記第1、第2の経路上のスイッチ2A~2Dに、前記第1、第2の経路に沿ったパケットの転送を行わせる。
 以上により、マイグレーション対象ではない仮想マシン間の通信経路に、仮想マシンのマイグレーション実行時に発生するメモリデータが流れ込むことを抑止し、パケットロスの発生を抑制することが可能となる。
 なお、図1の例では、経路管理部18Aが、コントローラ1Aに内蔵されているものとして説明したが、経路管理部18Aを独立した装置(経路決定装置)として構成することも可能である。
[第1の実施形態]
 続いて、コントローラがその負荷に応じて管理対象とするスイッチを他のコントローラに割り当てる機能を備えた第1の実施形態について図面を参照して説明する。
 上記のような機能を備えるコントローラを複数導入した場合、以下の理由により、コントローラの負荷に偏りが生じてしまう。
・スイッチの使用状況:管理対象スイッチからコントローラに送信されるメッセージ数は、スイッチごとに異なる、かつ、時間帯によって変化する。
・ネットワーク構成(トポロジ)の更新:管理対象スイッチからコントローラに送信されるメッセージ数は、スイッチ間の接続障害やスイッチの追加・削除によるトポロジの更新によって変化する。
 そこで、本実施形態では、コントローラ上に負荷を管理するための負荷情報管理部と負荷情報管理テーブルを設け、各コントローラの負荷が均等となるようにセキュアチャネルの切り替えを行うことで、コントローラの負荷分散を行うことができるようにしている。
 図2は、本発明の第1の実施形態の仮想マシン提供システムの構成を示す図である。図2を参照すると、2台のコントローラ1-1、1-2と、これらコントローラによって分担して制御される物理スイッチ及び仮想スイッチ2-1~2-6と、これら物理スイッチ及び仮想スイッチ2-1~2-6を介して2台の物理サーバSV1、SV2を接続した構成が示されている。
 コントローラ1-1は、セキュアチャネルを介して、管理対象の物理スイッチ2-1及び仮想スイッチ2-4のフローテーブルにフローエントリを設定することで、これらスイッチを制御する。
 コントローラ1-2は、セキュアチャネルを介して、管理対象の物理スイッチ2-2、2-3、2-5及び仮想スイッチ2-6のフローテーブルにフローエントリを設定することで、これらスイッチを制御する。
 なお、上記のようなコントローラ1-1、1-2は、非特許文献2のオープンフローコントローラにて構成できる。
 また、図2の状態においては、仮想スイッチ2-4には、仮想マシンVM1、VM2が接続され、仮想スイッチ2-6には、仮想マシンVM3が接続されている。また、物理スイッチ2-5には、パーソナルコンピュータ等の物理マシンPM1が接続されている。
 図3は、本発明の第1の実施形態のコントローラ(以下、コントローラ1-1、1-2を特に区別しない場合、「コントローラ1」と記す。)の構成を示すブロック図である。
 図3を参照すると、メッセージ制御部11と、経路制御部12と、トポロジ制御部13と、負荷管理部14と、ネットワーク情報記憶部15と、仮想マシン管理部16と、仮想マシン管理テーブル17と、迂回経路管理部18と、迂回経路管理テーブル19を備えるコントローラ1が示されている。
 メッセージ制御部11は、スイッチ(以下、物理スイッチ及び仮想スイッチ2-1~2-6を特に区別しない場合、「スイッチ2」と記す。)のメッセージ制御部22とOpenFlowプロトコルのメッセージの送受信を行う。
 経路制御部12は、スイッチ2からのPacket Inメッセージ受信時に、トポロジ情報152を参照して経路計算を行い、経路情報151の更新を行う。また、スイッチ2に対してフローエントリを設定するためのFlow Modメッセージの送信を行う。さらに、経路制御部12は、Packet Inメッセージにて送られたパケットの送信先を指示するPacket Outメッセージの送信を行う。
 トポロジ制御部13は、管理対象スイッチに対してクエリパケットを送信してスイッチの接続情報を取得し、トポロジ情報152の更新を行う。
 負荷制御部14は、一定時間おきに、または、ネットワークトポロジが変化した際に、負荷管理テーブル153を参照して負荷を計算し、セキュアチャネルを切り替えることにより、管理対象スイッチの一部を負荷が高いコントローラから負荷の低いコントローラへ移動させる。
 コントローラ1の負荷は、全コントローラの受信メッセージ数の合計に対する当該コントローラの受信メッセージ数の割合と、当該コントローラの管理対象スイッチの受信パケット数に対する全受信パケット数の割合を掛け合わせたものとする。すなわち、あるコントローラCの負荷は、以下の計算式により算出される。もちろん、各コントローラの能力などを考慮にいれてもよいし、その他計算式を用いることも可能である。
・コントローラCの負荷=(コントローラCの受信メッセージ数/全コントローラの受信メッセージ数の合計)*(コントローラCの管理対象スイッチの受信パケット数/全スイッチの受信パケット数の合計)
 負荷管理テーブル153は、図4に示すように、スイッチIDと、コントローラIDと、受信メッセージ数と、受信パケット数とを対応付けたエントリを格納するテーブルによって構成される。負荷制御部14は、図4に示すテーブルを用いて、スイッチ2ごとに、コントローラの負荷として使用する受信メッセージ数と受信パケット数とを管理する。
 図4のスイッチIDは、OpenFlowネットワーク内でスイッチ2を一意に識別するための属性であり、負荷管理テーブル153の主キーである。本実施形態では、これらスイッチIDを「SW1」~「SW6」と記すが、スイッチIDとしては、例えば、スイッチ2のMACアドレスの48ビットと実装依存の12ビットからなるデータパスIDを使用することができる。データパスIDは、セキュアチャネルの確立後、OpenFlowプロトコルのFeatures Request/Replyメッセージによってスイッチ2から取得することができる。
 図4のコントローラIDは、OpenFlowネットワーク内でコントローラ1を一意に識別するための属性である。本実施形態では、これらコントローラIDを「C1」、「C2」と記す。その他、例えば、コントローラ1のIPアドレスをコントローラIDとして使用することができる。
 図4の受信メッセージ数は、コントローラ1がスイッチ2から受信したメッセージ数を管理するための属性である。受信メッセージ数の値は、スイッチ2からメッセージを受信する度に1ずつ加算される。時間あたりの受信メッセージ数が多いほど、以後の受信メッセージ数が多くなると予測されるため、本実施形態では、コントローラの負荷を計算する際の引数として使用している。
 図4の受信パケット数は、コントローラ1の管理対象スイッチが端末または隣接スイッチから受信したパケット数を管理するための属性である。受信パケット数は、OpenFlowプロトコルのStatistics Request/Replyメッセージによって、各スイッチ2から各ポートの時間あたりの受信パケット数を取得することで更新できる。受信パケット数が多いほど、スイッチ2からコントローラ1に送信されるメッセージ数が多くなる傾向があるため、本実施形態では、受信メッセージ数と同様、コントローラの負荷を計算する際の引数として使用している。ただし、本実施形態では、スイッチ間の接続障害やスイッチの削除により、パケットの受信が行われなくなったポートの受信パケット数については、以後の受信パケット数は0と予測されるため使用しない。
 ネットワーク情報記憶部15は、経路情報151と、トポロジ情報152と、負荷管理テーブル153とを記憶する。ネットワーク情報記憶部15に保持されている内容は、各コントローラ間で同期を行う。即ち、いずれかのコントローラ1がネットワーク情報記憶部15の内容を更新した場合、他のコントローラのネットワーク情報記憶部15の内容も更新される。なお、本実施形態では、例えば、Packet-Outメッセージを用いて、スイッチ2を介してネットワーク情報記憶部15の各内容の同期を行うこととしているが、コントローラ1間に専用リンクを設けて、ネットワーク情報記憶部15の各内容を授受するようにしてもよい。
 仮想マシン管理部16は、物理サーバSV1、SV2から定期的に物理サーバIDと、仮想スイッチIDと、仮想ポートIDと、仮想ネットワークIDと、仮想マシンIDと、リソース使用率を含むメッセージを取得して、仮想マシン管理テーブル17にて管理する。前記物理サーバからリソース使用率が閾値を超えている場合、仮想マシン管理部16は、リソース使用率の合計値が最小の物理サーバ上の仮想スイッチの仮想ポートのうち、仮想ネットワークIDが同一の仮想ポートを、仮想マシンの移動先ポートとして選択し、迂回経路管理部18に迂回経路の選択を要求する。
 仮想マシン管理テーブル17は、図5に示すように、属性として、物理サーバIDと、仮想スイッチIDと、仮想ポートIDと、仮想ネットワークIDと、仮想マシンIDと、リソース使用率とを対応付けたエントリを格納するテーブルによって構成される。仮想マシン管理部16は、本テーブルにより、物理サーバ単位、仮想マシン単位のリソース使用率の管理、および、仮想マシンIDと仮想ポートID、仮想スイッチID、仮想ネットワークIDの対応付けの管理を行う。
 物理サーバIDは、物理サーバを一意に識別するための属性である。例えば、物理サーバのIPアドレスをコントローラIDとして使用することができるが、本実施形態では、「SV1」、「SV2」と記す。
 仮想スイッチIDは、OpenFlowネットワーク内で仮想スイッチを一意に識別するための属性である。本実施形態では、「SW1」~「SW6」と記す。負荷管理テーブル153のスイッチIDと同様、スイッチのMACアドレスの48ビットと実装依存の12ビットからなるデータパスIDを仮想スイッチIDとして使用することができる。
 仮想ポートIDは、仮想スイッチのポートを一意に識別するための属性である。0から始まる整数値を仮想ポートIDとして使用することができる。
 仮想ネットワークIDは、OpenFlowネットワーク上の仮想ネットワークを一意に識別するための属性である。物理サーバ上のハイパーバイザが、複数の仮想ポートIDをポートグループとしてグルーピングしたものに割り当てたIDである。同一ポートグループに所属する仮想ポートに接続した端末間でのみ通信を行うことができる。
 仮想マシンIDは、前記ハイパーバイザが仮想マシンに対して割りあてた仮想マシンを一意に識別するためのIDである。本実施形態では、図2に示した符号「VM1」~「VM3」を用いる。実際には、各物理サーバ上のハイパーバイザは連携しており、全物理サーバで一意のIDを割り当てることができる。
 リソース使用率は、物理サーバのリソースに対する仮想マシンのリソースの使用率である。リソースの使用率として、CPU使用率、メモリ使用率などを使用することができる。
 迂回経路管理部18は、経路情報から仮想マシンの移動元と移動先との間の経路のリスト(経路候補リスト)を取得し、重みが最小の経路(第1の経路;仮想マシンのメモリデータの転送に使用される経路)と、前記第1の経路により生じるコントローラに対する負荷の割合の類似度が高い経路を迂回経路(第2の経路)として選択する。
 経路の類似度は、重みが最小の経路をP、コントローラIDをC1~Cnとするとき、パスPxの類似度は、以下の計算式(ユークリッド距離)により算出することができる。値が小さいほどパスPxはPと類似度が高いといえる。
 パスPxの類似度=sqrt((PxのC1に対する受信パケット数の割合-PのC1に対する受信パケット数の割合)^2+・・・+(PxのC1に対する受信パケット数の割合- PのC1に対する受信パケット数の割合)^2)
 迂回経路管理テーブル19は、図6に示すように、属性として、経路IDと、管理対象スイッチIDと、受信パケット数とを対応付けたエントリを格納するテーブルによって構成される。迂回経路管理部18は、本テーブルにより、経路の各コントローラへの負荷の割合を管理する。
 経路IDは、仮想マシンの移動元ポートと移動先ポートをつなぐ経路を一意に識別するための属性である。例えば、経路上の仮想スイッチの仮想スイッチIDを連結したものを経路IDとして使用することができる(図12の経路ID参照)。
 コントローラIDは、OpenFlowネットワーク内でコントローラ1を一意に識別するための属性である。本実施形態では、負荷管理テーブル153のスイッチIDと同様、コントローラ1のIPアドレスをコントローラIDとして使用する。
 管理対象スイッチIDは、コントローラIDに対応するスイッチIDを設定するための属性である。
 受信パケット数は、仮想マシンごとの管理対象スイッチの各スイッチの送受信パケット数を合計したものである。迂回経路の選択時は、移動元ポートの受信パケット数が減算され、移動先ポートの受信パケット数に加算される。
 なお、上記した仮想マシン管理部16、仮想マシン管理テーブル17、迂回経路管理部18及び迂回経路管理テーブル19は、複数あるコントローラのうち、いずれか1つに設ければよい。
 続いて、本実施形態のスイッチ2の構成について説明する。図7は、本発明の第1の実施形態のスイッチの構成を示すブロック図である。図7を参照すると、パケット制御部21と、メッセージ制御部22と、フローテーブル23と、スイッチID記憶部24と、コントローラ情報記憶部25とを備えた構成が示されている。
 パケット制御部21は、スイッチ2が端末または隣接スイッチからパケットを受信した際に、フローテーブル23を参照し、受信パケットに適合するフローエントリを用いてパケットを処理する。
 メッセージ制御部22は、コントローラ1のメッセージ制御部11とOpenFlowプロトコルのメッセージの送受信を行う。Flow Modメッセージを受信した際、メッセージ制御部22は、フローテーブル23の更新を行う。また、コントローラ1とセキュアチャネルを確立する際、メッセージ制御部22は、スイッチID記憶部24のスイッチIDをコントローラ1に送信する。
 コントローラ情報記憶部25は、コントローラID251を記憶している。コントローラIDは、OpenFlowネットワーク内でコントローラ1を一意に識別するための属性である。コントローラ1のIPアドレスをコントローラIDとして使用する。コントローラID251は、ネットワーク管理者が設定してもよいし。OpenFlowネットワークにスイッチを追加した際、パケット制御部21を介して隣接スイッチにクエリパケットを送信して取得することもできる。
 なお、図3、図7に示したコントローラ及びスイッチの各部(処理手段)は、これらの装置を搭載されたコンピュータに、そのハードウェアを用いて、上記した各処理を実行させるコンピュータプログラムにより実現することもできる。
 続いて、本実施形態の動作について図面を参照して詳細に説明する。図8は、本発明の第1の実施形態のコントローラ1内の仮想マシン管理部16によるマイグレーション要否判定処理の流れを示すフローチャートである。
 図8を参照すると、仮想マシン管理部16は、仮想マシン管理テーブル17を参照し、各物理サーバのリソース使用率を計算し、リソース使用率が最大の物理サーバSVxを取得する(ステップA1)。
 前記リソース使用率が最大の物理サーバSVxのリソース使用率が閾値より大きい場合、仮想マシン管理部16は、物理サーバSVxからリソース使用率が最小の仮想マシンVMxを取得する(ステップA2、A3)。
 次に、仮想マシン管理部16は、仮想マシン管理テーブル17を参照し、リソース使用率の合計値が最小、かつ、空きポートのある物理サーバSVyを取得する(ステップA4)。物理サーバSVyのリソース使用率の最大値が閾値以下の場合(ステップA5のNo)、仮想マシン管理部16は、マイグレーションを実施すべきと判断する。
 具体的には、仮想マシン管理部16は、物理サーバSVyから、仮想マシンVMxと仮想ネットワークIDが同一の空きポートを検索し、当該空きポートに仮想マシンVMxを設定し、経路の選択処理(図12参照)を呼び出す(ステップA6、A7)。
 前記経路の選択処理が完了すると、仮想マシン管理部16は、物理サーバSVxに対し仮想マシンVMxのマイグレーションを要求する(ステップA8)。
 ここで、図2、図9~図11を参照して、仮想マシン管理部16によるマイグレーション要否判定処理の具体例について説明する。図9は、図2の状態(マイグレーション前)の仮想マシン管理テーブルの例を示す図である。
 図2の状態において、物理サーバSV1では仮想マシンVM1、VM2が動作しており、物理サーバSV2では仮想マシンVM3が動作している。図9の仮想マシン管理テーブルを参照すると、物理サーバSV1のリソース使用率の合計値は0.5+0.4=0.9であり、物理サーバSV2のリソース使用率の合計値は0.2である。よって、図8のステップA1では、リソース使用率が最大の物理サーバSVxとして、SV1が選択される。
 前記リソース使用率が最大の物理サーバSVxのリソース使用率と比較する閾値が0.8であるとすると、前記物理サーバSV1のリソース使用率は、0.9であるので、ステップA3に進み、物理サーバSVxからリソース使用率が最小の仮想マシンVMxを選択する処理が行われる。
 そこで、図9の仮想マシン管理テーブルを参照すると、物理サーバSV1で動作している仮想マシン中、仮想マシンVM1のリソース使用率は0.5であり、仮想マシンVM2のリソース使用率は0.4である。よって、図8のステップA3では、リソース使用率が最小の仮想マシンVMxとして、仮想マシンVM2が選択される。
 次に、仮想マシン管理部16は、リソース使用率の合計値が最小、かつ、空きポートのある物理サーバを取得する。図9の仮想マシン管理テーブルを参照すると、リソース使用率の合計値が最小、かつ、空きポートのある物理サーバSVyとしてSV2が選択される。
 次に、仮想マシン管理部16は、前記選択した物理サーバSV2のリソース使用率が閾値以下か確認する。前記物理サーバSVyのリソース使用率と比較する閾値が0.8であるとすると、物理サーバSV2のリソース使用率0.2は閾値を超えていないため、仮想マシン管理部16は、マイグレーションを実施すべきと判断し、ステップA6に進む。
 次に、仮想マシン管理部16は、マイグレーション対象の仮想マシンVM2と仮想ネットワークIDが同一の空きポートを取得する。図9の仮想マシン管理テーブルを参照すると、仮想マシンVM2の仮想ネットワークIDはNW2であるため、図8のステップA6では、空きポートとして、物理サーバSV2の仮想ポート1が選択される。
 次に、仮想マシン管理部16は、物理サーバSV2の仮想ポート1に仮想マシンVM2を設定し、経路の選択処理を呼び出す(ステップA7)。
 前記経路の選択処理が完了すると、仮想マシン管理部16は、物理サーバSV1に仮想マシンVM2のマイグレーションを要求する。仮想マシンVM2のマイグレーションが完了すると、図10に示すように、物理サーバSV2の仮想スイッチSW6の仮想ポート1に仮想マシンVM2が接続した状態となり、図9の仮想マシン管理テーブルは、図11のように書き換えられる。
 続いて、本発明の第1の実施形態のコントローラ内の迂回経路管理部18による経路選択処理について説明する。図12は、本発明の第1の実施形態のコントローラ1内の仮想マシン管理部16による経路選択処理の流れを示すフローチャートである。
 図12を参照すると、迂回経路管理部18は、まず、経路情報151から、マイグレーション対象の仮想マシンの移動前後の仮想スイッチ(SW4-SW6)を始点と終点とする経路の経路ID、重みを取得し、迂回経路管理テーブル19に設定する(ステップB1)。
 次に、迂回経路管理部18は、負荷管理テーブル153から、各経路上のスイッチの受信パケット数を取得し、迂回経路管理テーブル19に設定する(ステップB2)。
 次に、迂回経路管理部18は、負荷管理テーブル153から、ポート単位の受信パケット数を取得し、移動元仮想スイッチの受信パケット数から、該当仮想ポートの受信パケット数を減算し、移動先ポートの受信パケット数に加算する(ステップB3)。
 次に、迂回経路管理部18は、負荷管理テーブル153から、重みが最小の経路と他の経路の類似度を計算し、類似度が最小、かつ、重みが閾値以下の経路を取得する(ステップB4、B5)。
 以上の結果、重みが最小の経路が、マイグレーション対象の仮想マシンのメモリデータの転送に使用する第1の経路として選択される。また、類似度が最小、かつ、重みが閾値以下の経路が、マイグレーション前後の仮想スイッチに接続する他の仮想マシンのための第2の経路として選択される。迂回経路管理部18は、経路制御部12に対し、前記第1、第2の経路上のスイッチに、これらの転送処理を行わせるためのフローエントリの設定を要求する(ステップB6)。
 ここで、図2、図13~図15を参照して、迂回経路管理部18による経路選択処理の具体例について説明する。図13は、迂回経路の選択前の迂回経路管理テーブルである。図14は、迂回経路の選択後の迂回経路管理テーブルである。
 ステップB1において、迂回経路管理部18は、経路情報151から経路ID、重みを取得し、迂回経路管理テーブル19に設定する(図13の経路ID、重み)。
 ステップB2において、迂回経路管理部18は、負荷管理テーブル153から受信パケット数を取得し、迂回経路管理テーブル19に設定する(図13のコントローラID、スイッチID、受信パケット数)。
 ステップB3において、迂回経路管理部18は、負荷管理テーブル153からポート単位の受信パケット数を取得し、移動元ポートの受信パケット数を減算し、移動先ポートの受信パケット数に加算する。例えば、移動元ポートの受信パケット数が40だとすると、迂回経路管理部18は、迂回経路管理テーブルのSW4の受信パケット数を40減算し、SW6の受信パケット数を40加算する(図14のSW4、SW6の受信パケット数参照)。
 ステップB4において、迂回経路管理部18は、重みが最小の経路と他の経路の類似度を計算する。図14の例では、重みが最小の経路SW4-SW5-SW6が、マイグレーション対象の仮想マシンのメモリデータの転送に使用する第1の経路として選択される。
 この重みが最小の経路SW4-SW5-SW6のコントローラに対する負荷の割合は、C1:C2=160/(160+130+180):(130+180)/(160+130+180)≒0.34:0.64である。
 一方で、他の経路のコントローラに対する負荷の割合は以下の通り計算される。
(経路1)SW4-SW1-SW2-SW3-SW6の負荷の割合
C1:C2=(160+210)/(160+210+140+180+180):(140+180+180)/(160+210+140+180+180)≒0.43:0.57
(経路2)SW4-SW1-SW2-SW6の負荷の割合
C1:C2=210/(210+140+180+180):(140+180+180)/(210+140+180+180)≒0.30:070
(経路3)SW4-SW2-SW3-SW6の負荷の割合
C1:C2=(160+210)/(160+210+40+180):(40+180)/(160+210+40+180)≒0.63:037
(経路4)SW4-SW2-SW6の負荷の割合
C1:C2=160/(160+40+180):(40+180)/(160+40+180)≒0.42:0.58
 また、前記コントローラに対する負荷の割合を用いて、経路の類似度は以下の通り計算される。
(経路1)SW4-SW1-SW2-SW3-SW6の類似度
sqrt(0.34-0.43)^2+(0.64-0.57)^2)≒0.11
(経路2)SW4-SW1-SW2-SW6の類似度
sqrt(0.34-0.30)^2+(0.64-0.70)^2)≒0.07
(経路3)SW4-SW2-SW3-SW6の類似度
sqrt(0.34-0.63)^2+(0.64-0.37)^2)≒0.38
(経路4)SW4-SW2-SW6の類似度
sqrt(0.34-0.42)^2+(0.64-0.58)^2)≒0.10
 以上の結果、類似度が最も高い(値が小さい)のは、SW4-SW1-SW2-SW6である。従って、上記(経路2)SW4-SW1-SW2-SW6がマイグレーション前後の仮想スイッチに接続する他の仮想マシンのための第2の経路として選択される。なお、類似度が最も高い(値が小さい)経路の重みが所定の閾値を超えている場合、次に類似度が高い(値が小さい)経路を選択する処理が行われる(図12のステップB5参照)。
 図15は、上記第1の経路と第2の経路を示した図である。図15に示すとおり、本実施形態によれば、マイグレーション対象の仮想マシンVM2のメモリデータは、最小の重みを持つ経路SW4-SW5-SW6に沿って転送される。一方で、マイグレーション前後の仮想スイッチに接続する他の仮想マシン間のパケットは、前記経路SW4-SW5-SW6に重みが所定の閾値以下であり、類似度が最も高い経路SW4-SW1-SW2-SW6に沿って転送されることになる。
 以上、説明したしたとおり、本実施形態によれば、マイグレーション時の仮想マシンのメモリデータ転送時に、他の仮想マシン間の通信にパケットロスが発生しないようにすることができる。その理由は、メモリデータ転送用の第1の経路と、それ以外の通信を担う第2の経路を設定するようにしたことにある。
 また、本実施形態によれば、マイグレーション前後で、OpenFlowネットワーク内に複数存在するコントローラの負荷が偏らないようにし、マイグレーションの実行を契機とするセキュアチャネルの切り替えの発生を抑止することができる。その理由は、上記した各コントローラに対する負荷の類似度という概念を導入し、経路を選択するように構成したことにある。
 以上、本発明の各実施形態を説明したが、本発明は、上記した実施形態に限定されるものではなく、本発明の基本的技術的思想を逸脱しない範囲で、更なる変形・置換・調整を加えることができる。例えば、各図面に示したネットワーク構成や要素の構成は、本発明の理解を助けるための一例であり、これらの図面に示した構成に限定されるものではない。
 例えば、上記した実施形態では、OpenFlowネットワークの複数のコントローラのいずれか一つにマイグレーションの実施と経路の決定機能を備えるものとして説明したが、コントローラとは別の物理サーバに、これらの機能を担わせる構成も採用可能である。例えば、図16に示すように、上記した仮想マシン管理部16、仮想マシン管理テーブル17、迂回経路管理部18及び迂回経路管理テーブル19を備える経路決定装置を用意し、コントローラ1と連携して動作させる構成も採用可能である。
 また、上記した実施形態で例示したコントローラの負荷や、類似度の計算式はあくまで、その一例を示したものに過ぎず、種々の変更を加えることができることはもちろんである。
 最後に、本発明の好ましい形態を要約する。
[第1の形態]
 (上記第1の視点による仮想マシン提供システム参照)
[第2の形態]
 第1の形態の仮想マシン提供システムにおいて、
 記複数のコントローラは、負荷の高いコントローラが分担するスイッチを、負荷の低いコントローラの分担に移動させる機能を備え、
 前記経路管理部は、前記複数のコントローラが分担するスイッチに移動が発生しないように、第1、第2の経路を選択する仮想マシン提供システム。
[第3の形態]
 第2の形態の仮想マシン提供システムにおいて、
 前記経路管理部は、
 第1の経路と、各コントローラに与える負荷が類似する経路を前記第2の経路として選択する仮想マシン提供システム。
[第4の形態]
 第1~第3いずれか一の形態の仮想マシン提供システムにおいて、
 前記経路管理部は、
 前記マイグレーション実行前後の当該仮想マシン間の経路中、重みが最小の経路を第1の経路として選択し、前記第2の経路として迂回経路を選択する仮想マシン提供システム。
[第5の形態]
 第3又は第4の形態の仮想マシン提供システムにおいて、
 前記経路管理部は、
 各コントローラが分担するスイッチの受信パケット数に基づいて、前記コントローラの負荷を計算する仮想マシン提供システム。
[第6の形態]
 (上記第2の視点による経路決定装置参照)
[第7の形態]
 (上記第3の視点による経路制御方法参照)
[第8の形態]
 (上記第4の視点によるプログラム参照)
 なお、上記第6~第8の形態は、第1の形態と同様に、第2~第5の形態に展開することが可能である。
 なお、上記の特許文献および非特許文献の各開示を、本書に引用をもって繰り込むものとする。本発明の全開示(請求の範囲を含む)の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素(各請求項の各要素、各実施形態ないし実施例の各要素、各図面の各要素等を含む)の多様な組み合わせ、ないし選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。特に、本書に記載した数値範囲については、当該範囲内に含まれる任意の数値ないし小範囲が、別段の記載のない場合でも具体的に記載されているものと解釈されるべきである。
 1、1A、1B、1-1、1-2 コントローラ
 2、2A~2D スイッチ
 2-1~2-3、2-5、SW1~SW3、SW5 物理スイッチ
 2-4、2-6、SW4、SW6 仮想スイッチ
 11 メッセージ制御部
 12 経路制御部
 13 トポロジ制御部
 14 負荷管理部
 15 ネットワーク情報記憶部
 16 仮想マシン管理部
 17 仮想マシン管理テーブル
 18 迂回経路管理部
 18A 経路管理部
 19 迂回経路管理テーブル
 21 パケット制御部
 22 メッセージ制御部
 23 フローテーブル
 24 スイッチID記憶部
 25 コントローラ情報記憶部
 151 経路情報
 152 トポロジ情報
 153 負荷管理テーブル
 251 コントローラID
 VM1~VM3 仮想マシン
 SV1、SV2 物理サーバ
 PM1 物理マシン

Claims (17)

  1.  仮想マシンを提供する複数の物理サーバと、
     前記物理サーバ間を接続する複数のスイッチと、
     前記複数のスイッチを、それぞれ分担して制御する複数のコントローラと、
     前記仮想マシンの前記物理サーバ間のマイグレーション実行前後の当該仮想マシンの接続するスイッチとの間に、前記仮想マシンのメモリデータの転送に使用する第1の経路と、前記マイグレーション実行前後の仮想スイッチに接続する他の仮想マシンのための第2の経路とを選択する経路管理部と、を含み、
     マイグレーション実行時に、前記第1、第2の経路上のスイッチに、前記第1、第2の経路に沿ったパケットの転送を行わせる仮想マシン提供システム。
  2.  前記複数のコントローラは、負荷の高いコントローラが分担するスイッチを、負荷の低いコントローラの分担に移動させる機能を備え、
     前記経路管理部は、前記複数のコントローラが分担するスイッチに移動が発生しないように、第1、第2の経路を選択する請求項1の仮想マシン提供システム。
  3.  前記経路管理部は、
     第1の経路と、各コントローラに与える負荷が類似する経路を前記第2の経路として選択する請求項2の仮想マシン提供システム。
  4.  前記経路管理部は、
     前記マイグレーション実行前後の当該仮想マシン間の経路中、重みが最小の経路を第1の経路として選択し、前記第2の経路として迂回経路を選択する請求項1から3いずれか一の仮想マシン提供システム。
  5.  前記経路管理部は、
     各コントローラが分担するスイッチの受信パケット数に基づいて、前記コントローラの負荷を計算する請求項3又は4の仮想マシン提供システム。
  6.  仮想マシンを提供する複数の物理サーバと、
     前記物理サーバ間を接続する複数のスイッチと、
     前記複数のスイッチを、それぞれ分担して制御する複数のコントローラと、を含む仮想マシン提供システムに配置され、
     前記仮想マシンの前記物理サーバ間のマイグレーション実行前後の当該仮想マシンの接続するスイッチとの間に、前記仮想マシンのメモリデータの転送に使用する第1の経路と、前記マイグレーション実行前後の仮想スイッチに接続する他の仮想マシンのための第2の経路とを選択する経路管理部を備え、
     前記コントローラに対し、前記第1、第2の経路を通知し、
     マイグレーション実行時に、前記コントローラを介して、前記第1、第2の経路上のスイッチに、前記第1、第2の経路に沿ったパケットの転送を行わせる経路決定装置。
  7.  請求項6の経路決定装置として機能するコントローラ。
  8.  仮想マシンを提供する複数の物理サーバと、
     前記物理サーバ間を接続する複数のスイッチと、
     前記複数のスイッチを、それぞれ分担して制御する複数のコントローラと、を含む仮想マシン提供システムに配置された経路決定装置が、
     前記仮想マシンの前記物理サーバ間のマイグレーション実行前後の当該仮想マシンの接続するスイッチとの間に、前記仮想マシンのメモリデータの転送に使用する第1の経路と、前記マイグレーション実行前後の仮想スイッチに接続する他の仮想マシンのための第2の経路とを選択するステップと、
     前記コントローラに対し、前記第1、第2の経路を通知するステップと、
     マイグレーション実行時に、前記コントローラを介して、前記第1、第2の経路上のスイッチに、前記第1、第2の経路に沿ったパケットの転送を行わせるステップと、を含む経路制御方法。
  9.  前記複数のコントローラが、負荷の高いコントローラが分担するスイッチを、負荷の低いコントローラの分担に移動させるステップと、
     前記経路決定装置が、前記複数のコントローラが分担するスイッチに移動が発生しないように、第1、第2の経路を選択するステップと、を含む請求項8の経路制御方法。
  10.  前記経路決定装置が、第1の経路と、各コントローラに与える負荷が類似する経路を前記第2の経路として選択するステップを含む請求項9の経路制御方法。
  11.  前記経路決定装置が、前記マイグレーション実行前後の当該仮想マシン間の経路中、重みが最小の経路を第1の経路として選択し、前記第2の経路として迂回経路を選択するステップを含む請求項8から10いずれか一の経路制御方法。
  12.  前記経路決定装置が、各コントローラが分担するスイッチの受信パケット数に基づいて、前記コントローラの負荷を計算するステップを含む請求項10又は11の経路制御方法。
  13.  仮想マシンを提供する複数の物理サーバと、
     前記物理サーバ間を接続する複数のスイッチと、
     前記複数のスイッチを、それぞれ分担して制御する複数のコントローラと、を含む仮想マシン提供システムに配置されたコンピュータに、
     前記仮想マシンの前記物理サーバ間のマイグレーション実行前後の当該仮想マシンの接続するスイッチとの間に、前記仮想マシンのメモリデータの転送に使用する第1の経路と、前記マイグレーション実行前後の仮想スイッチに接続する他の仮想マシンのための第2の経路とを選択する処理と、
     前記コントローラに対し、前記第1、第2の経路を通知する処理と、を実行させ、
     マイグレーション実行時に、前記第1、第2の経路上のスイッチに、前記第1、第2の経路に沿ったパケットの転送を行わせるプログラム。
  14.  前記複数のコントローラが、負荷の高いコントローラが分担するスイッチを、負荷の低いコントローラの分担に移動させる機能を備え、
     前記複数のコントローラが分担するスイッチに移動が発生しないように、第1、第2の経路を選択する処理を、前記コンピュータに実行させる請求項13のプログラム。
  15.  第1の経路と、各コントローラに与える負荷が類似する経路を前記第2の経路として選択する処理を、前記コンピュータに実行させる請求項14のプログラム。
  16.  前記マイグレーション実行前後の当該仮想マシン間の経路中、重みが最小の経路を第1の経路として選択し、前記第2の経路として迂回経路を選択する処理を、前記コンピュータに実行させる請求項13から15いずれか一のプログラム。
  17.  各コントローラが分担するスイッチの受信パケット数に基づいて、前記コントローラの負荷を計算する処理を、前記コンピュータに実行させる請求項15又は16のプログラム。
PCT/JP2014/058841 2013-03-29 2014-03-27 仮想マシン提供システム、経路決定装置、経路制御方法及びプログラム WO2014157512A1 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2013072752 2013-03-29
JP2013-072752 2013-03-29

Publications (1)

Publication Number Publication Date
WO2014157512A1 true WO2014157512A1 (ja) 2014-10-02

Family

ID=51624473

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2014/058841 WO2014157512A1 (ja) 2013-03-29 2014-03-27 仮想マシン提供システム、経路決定装置、経路制御方法及びプログラム

Country Status (1)

Country Link
WO (1) WO2014157512A1 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016144144A (ja) * 2015-02-04 2016-08-08 日本電信電話株式会社 負荷分散システム及び負荷分散方法
JP2017098741A (ja) * 2015-11-24 2017-06-01 株式会社日立製作所 ネットワークシステム、ネットワーク管理方法および装置
CN107209692A (zh) * 2014-12-04 2017-09-26 诺基亚通信管理国际两合公司 虚拟化资源的操纵
WO2018001057A1 (zh) * 2016-06-28 2018-01-04 中兴通讯股份有限公司 一种报文转发控制方法、装置及宽带接入系统
JP2018206062A (ja) * 2017-06-05 2018-12-27 富士通株式会社 制御プログラム、制御装置及び制御方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006333292A (ja) * 2005-05-30 2006-12-07 Matsushita Electric Ind Co Ltd 通信装置、通信過負荷検出方法及び通信過負荷検出プログラム
JP2011070549A (ja) * 2009-09-28 2011-04-07 Nec Corp コンピュータシステム、及び仮想マシンのマイグレーション方法
JP2011081588A (ja) * 2009-10-07 2011-04-21 Nec Corp コンピュータシステム、及びコンピュータシステムのメンテナンス方法
WO2012060316A1 (ja) * 2010-11-01 2012-05-10 日本電気株式会社 通信システム、制御装置、パケット転送経路の制御方法およびプログラム
JP2013030863A (ja) * 2011-07-27 2013-02-07 Nec Corp スイッチ装置の制御システム、その構成制御装置および構成制御方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006333292A (ja) * 2005-05-30 2006-12-07 Matsushita Electric Ind Co Ltd 通信装置、通信過負荷検出方法及び通信過負荷検出プログラム
JP2011070549A (ja) * 2009-09-28 2011-04-07 Nec Corp コンピュータシステム、及び仮想マシンのマイグレーション方法
JP2011081588A (ja) * 2009-10-07 2011-04-21 Nec Corp コンピュータシステム、及びコンピュータシステムのメンテナンス方法
WO2012060316A1 (ja) * 2010-11-01 2012-05-10 日本電気株式会社 通信システム、制御装置、パケット転送経路の制御方法およびプログラム
JP2013030863A (ja) * 2011-07-27 2013-02-07 Nec Corp スイッチ装置の制御システム、その構成制御装置および構成制御方法

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107209692A (zh) * 2014-12-04 2017-09-26 诺基亚通信管理国际两合公司 虚拟化资源的操纵
US11340943B2 (en) 2014-12-04 2022-05-24 Nokia Solutions And Networks Gmbh & Co. Kg Steering of virtualized resources
JP2016144144A (ja) * 2015-02-04 2016-08-08 日本電信電話株式会社 負荷分散システム及び負荷分散方法
JP2017098741A (ja) * 2015-11-24 2017-06-01 株式会社日立製作所 ネットワークシステム、ネットワーク管理方法および装置
WO2018001057A1 (zh) * 2016-06-28 2018-01-04 中兴通讯股份有限公司 一种报文转发控制方法、装置及宽带接入系统
JP2018206062A (ja) * 2017-06-05 2018-12-27 富士通株式会社 制御プログラム、制御装置及び制御方法

Similar Documents

Publication Publication Date Title
US9813344B2 (en) Method and system for load balancing in a software-defined networking (SDN) system upon server reconfiguration
EP3355553B1 (en) Reliable load-balancer using segment routing and real-time application monitoring
JP6538986B2 (ja) 仮想マシンパケット制御
US11463511B2 (en) Model-based load balancing for network data plane
JP6319604B2 (ja) Sdnコントローラ、データセンターシステムおよびルーティング接続方法
US9185031B2 (en) Routing control system for L3VPN service network
US9397946B1 (en) Forwarding to clusters of service nodes
US10237179B2 (en) Systems and methods of inter data center out-bound traffic management
WO2014118938A1 (ja) 通信経路の管理方法
CN104584491A (zh) 提供分布式虚拟路由和交换(dvrs)的系统和方法
US20120170477A1 (en) Computer, communication system, network connection switching method, and program
JP5488979B2 (ja) コンピュータシステム、コントローラ、スイッチ、及び通信方法
CN104468358A (zh) 分布式虚拟交换机系统的报文转发方法及设备
US20150263862A1 (en) Communication system, control apparatus, communication control method, transfer control method, and transfer control program
US20180077048A1 (en) Controller, control method and program
JPWO2013105551A1 (ja) コンピュータシステム、コントローラ、スイッチ、通信方法、及びネットワーク管理プログラムが格納された記録媒体
WO2014157512A1 (ja) 仮想マシン提供システム、経路決定装置、経路制御方法及びプログラム
JP5861772B2 (ja) ネットワークアプライアンス冗長化システム、制御装置、ネットワークアプライアンス冗長化方法及びプログラム
JP2015519765A (ja) 通信システム、制御装置、通信方法、制御方法及びプログラム
US20160277251A1 (en) Communication system, virtual network management apparatus, communication node, communication method, and program
WO2014133025A1 (ja) 通信システム、上位コントローラ、ネットワークの制御方法及びプログラム
JPWO2015133561A1 (ja) 通信システム、制御装置、通信装置及び通信方法
JP5889813B2 (ja) 通信システムおよびプログラム
US11171863B2 (en) System and method for lag performance improvements
WO2022254246A1 (en) Method to prioritize and offload mobile edge cloud traffic in 5g

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 14773801

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 14773801

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP