WO2018083724A1 - 仮想計算機システム及び仮想計算機のマイグレーション方法 - Google Patents

仮想計算機システム及び仮想計算機のマイグレーション方法 Download PDF

Info

Publication number
WO2018083724A1
WO2018083724A1 PCT/JP2016/082391 JP2016082391W WO2018083724A1 WO 2018083724 A1 WO2018083724 A1 WO 2018083724A1 JP 2016082391 W JP2016082391 W JP 2016082391W WO 2018083724 A1 WO2018083724 A1 WO 2018083724A1
Authority
WO
WIPO (PCT)
Prior art keywords
virtual
function
virtual machine
physical
virtualization unit
Prior art date
Application number
PCT/JP2016/082391
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 株式会社日立製作所
Priority to PCT/JP2016/082391 priority Critical patent/WO2018083724A1/ja
Publication of WO2018083724A1 publication Critical patent/WO2018083724A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements

Definitions

  • the present invention relates to live migration in a virtual computer system using an SR-IOV (Single Root I / O Virtualization) device.
  • SR-IOV Single Root I / O Virtualization
  • SR-IOV function that is a hardware virtualization function of a network device is also widely used (for example, Patent Document 2).
  • SR-IOV function is one physical port, one physical function (PF: Physical Function) and one or more virtual functions (VF: Virtual Function) virtualized by hardware. It can be used with other virtual machines.
  • PF Physical Function
  • VF Virtual Function
  • the hypervisor cannot stop the processing in the VF or copy the VF data to the destination.
  • the software virtual NIC is also referred to as VNIC.
  • the software virtual NIC is a NIC that is realized by software by the hypervisor.
  • the hypervisor can stop the device and copy data to the move destination. Therefore, the communication can be continued even during live migration. Inferior in terms of performance. Therefore, by making the VF redundant with the software virtual NIC, communication is continued with the software virtual NIC while the VF cannot be communicated during live migration, and communication is performed with a higher-performance VF than the software virtual NIC otherwise. be able to.
  • the same MAC address is set for all network devices in the same redundant configuration.
  • the software virtual NIC may not be able to communicate and live migration may not be possible. It was.
  • the present invention has been made in view of the above problems, and an object thereof is to realize live migration with a virtual machine having a redundant configuration by assigning the same MAC address as the software virtual NIC to the SR-IOV VF. .
  • the present invention provides a first physical computer having a processor, a memory, and a first physical network device corresponding to SR-IOV including a physical function and a virtual function, a processor, a memory, a physical function, and a virtual function.
  • a second physical network device having a second physical network device compatible with SR-IOV including a function, and a first virtualization unit for allocating computer resources of the first physical computer to one or more virtual computers
  • a second virtualization unit that allocates the computer resources of the second physical computer to one or more virtual machines, wherein the first virtualization unit includes: A first software virtual NIC is assigned to a first virtual machine, a virtual function of the first physical network device is assigned to the first virtual machine, The same network address is set for the software virtual NIC and the virtual function, and then the virtual function is set active, and the guest OS running on the first virtual machine communicates via the virtual function.
  • the first virtualization unit receives a live migration command, the virtual function is blocked, the first virtualization unit changes the first software virtual NIC to active, The network address of the virtual function is changed to a preset dummy address, the guest OS of the first virtual machine executes communication by the first software virtual NIC, and the first virtualization unit The contents of the first virtual memory as a computer resource allocated to one virtual machine are copied to the second virtualization unit.
  • live migration is performed by a virtual machine having a redundant configuration by assigning the same MAC address to the first software virtual NIC created from the same physical port and the SR-IOV virtual function (VF). It becomes possible.
  • FIG. 3 is a block diagram illustrating an outline of live migration of moving a virtual computer 110 according to an embodiment of this invention. It is a block diagram which shows the Example of this invention and shows an example of the MAC address in a physical computer. It is a block diagram which shows a prior art example and shows an example of the MAC address in a physical computer. It is a block diagram which shows the Example of this invention and shows an example of the MAC address in the physical computer in live migration. It is a time chart which shows the Example of this invention and shows an example of the process of live migration.
  • FIG. 1 is a block diagram illustrating an example of the configuration of the virtual computer system according to this embodiment.
  • the physical computer 100 and the physical computer 200 are connected to a network 400, and a management terminal 300 that controls generation, deletion, or live migration of virtual computers is also connected to the network 400.
  • the virtual machine system can operate a server that provides business.
  • the physical resource 160 of the physical computer 100 includes a plurality of CPUs 161 to 164 that perform arithmetic processing, a memory 165 that stores programs and data, an IO device such as an SR-IOV compatible NIC device (physical network device) 166 and an FC-HBA 167. Consists of devices.
  • the memory 165 is composed of, for example, a DRAM or SRAM.
  • the physical computers 100 and 200 may be connected to a storage device (not shown) that provides a storage area.
  • the physical port 66 (see FIG. 3A) of the SR-IOV compatible NIC device 166 is connected to the network 400 for communication.
  • the FC-HBA 167 is connected to a SAN (Storage Area Network) not shown.
  • the hypervisor 150 On the physical computer 100, the hypervisor 150 is operating using the physical resource 160.
  • the hypervisor 150 logically divides the physical resource 160 of the physical computer 100 and assigns it to the virtual computer (or logical partition), and operates the guest OS of the virtual computer.
  • the hypervisor 150 generates one management virtual machine 140 and a plurality of user virtual machines 110, 120, and 130.
  • the management virtual computer 140 functions as a management computer that executes initialization of the PF 142 and initialization of the VF 111 of the NIC device 166 corresponding to the SR-IOV of the physical computer 100.
  • the user virtual machines 110, 120, and 130 function as servers that provide services connected to the network 400.
  • Each virtual machine 110 includes a virtual CPU 116, a virtual memory 117, and logical resources such as a VF 111 and a VNIC 113.
  • the virtual CPU 116 is a logical resource (virtual device) that logically divides the CPU 161 of the physical computer 100 and allocates it to the virtual computer.
  • the virtual memory 117 is a logical resource that allocates a predetermined area of the memory 165 to the virtual computer 110.
  • the VF 111 is a logical resource of the SR-IOV compliant NIC device 166.
  • the VNIC 113 is a logical resource constituting a virtual network provided by the hypervisor 150 and performs communication between virtual computers on the hypervisor 150.
  • the virtual machines 120, 130, and 140 are also composed of the same logical resources as the virtual machine 110.
  • a user (or guest) OS 112 operates using logical resources, and the user OS also operates on the user virtual machines 120 and 130 in the same manner.
  • the management OS 141 operates using logical resources. Similarly to the user virtual machine 110, the management virtual machine 140 is assigned a virtual CPU 146, a virtual memory 147, a logical resource such as a VNIC 143, and a PF 142 of the SR-IOV compatible NIC device 166. It is done.
  • the hypervisor 150 includes a virtual switch (virtual SW) 151, and a VNIC 113 and a VNIC 143 are connected to the virtual switch 151.
  • the virtual switch 151 is a virtual network between virtual machines provided by the hypervisor 150, and communication is performed by the VNICs 111 and 143 provided by the hypervisor 150.
  • the SR-IOV compatible NIC device 166 can provide a PF (Physical Function) and a VF.
  • the PF is assigned to the management virtual machine 140 as the PF 142, and the VF is assigned to each user virtual machine as the VF 111.
  • the SR-IOV compliant NIC device 166 has a PF 142 assigned to one computer (management virtual computer 140) and a plurality of VFs (Virtual Function) 111 assigned to a plurality of virtual computers 110, 120, and 130.
  • the PF 142 can generate one or more VFs 111.
  • VF 111 As a redundant configuration of the network device, a configuration in which the VNIC 113 is added to the VF 111 is shown. Normally, the VF 111 is active, and communication with the network 400 is performed from the SR-IOV compatible NIC device 166 by pass-through.
  • the VNIC 113 is normally in a standby state, and when a failure occurs in the VF 111, the virtual machine 110 is connected to the network 400 from the SR-IOV compatible NIC device 166 via the virtual switch 151 via the VNIC 113 and the VNIC 143 and PF 142 of the management virtual machine 140. Communicate between the two.
  • the physical computer 200 has the same configuration as the physical computer 100, and the SR-IOV compatible NIC device 166 of the physical computer 100 and the SR-IOV compatible NIC device 266 of the physical computer 200 are connected to the network 400.
  • subjected to the element of the physical resource 260 of the physical computer 200 and a logical resource is a code
  • FIG. 2 is a block diagram showing an outline of live migration in which the virtual computer 110 operating on the physical computer 100 is moved onto the physical computer 200.
  • the physical computer 100 starts live migration.
  • the hypervisor 150 copies the data in the virtual memory 117 and starts transmission to the hypervisor 250 via the network 400.
  • the hypervisor 250 In the destination physical computer 200, the hypervisor 250 generates the virtual computer 210 on the physical computer 200 based on the received data in the virtual memory 117.
  • the data in the virtual memory 117 continues to change.
  • the hypervisor 150 continues to transfer data via the network 400, the difference between the virtual memory 117 and the virtual memory 217 decreases.
  • the hypervisor 150 stops the operation of the logical resource allocated to the virtual computer 110, thereby stopping the processing of the user OS 112 and Stop.
  • the hypervisor 150 synchronizes the virtual memory 117 and the virtual memory 217 by transferring the remaining difference between the virtual memory 117 and the virtual memory 217 via the network 400.
  • the operation of the user OS 212 (user OS 112) that has moved from the physical computer 100 is resumed by causing the migration destination hypervisor 250 to start processing with the data in the virtual memory 217.
  • the time from when the migration source user OS 112 stops processing until the user OS 212 resumes processing at the migration destination is about several hundred ms, the user OS 112 moves from the physical computer 100 to the physical computer 200.
  • the user OS 212 continues to operate without detecting any abnormality. This completes the live migration process.
  • FIG. 3A is a block diagram showing an example of the MAC address in the physical computer 100.
  • a VF 111 and a VNIC 113 are allocated to the virtual computer 110 on the physical computer 100, and a redundant configuration 118 is set by the VF 111 and the VNIC 113.
  • the VNIC 113 is connected from the virtual SW 151 in the hypervisor 150 to the network 400 from the SR-IOV compatible NIC device 166 via the VNIC 143 in the management virtual machine 140, the network bridge 145, and the PF 142.
  • the VF 111 is connected to the network 400 via the SR-IOV compatible NIC device 166 by pass-through. Since the VF 111 and the VNIC 113 have a redundant configuration, the same MAC addresses 115 and 114 are set in the VF 111 and the VNIC 113.
  • XX: XX: XX: XX: XX: XX is set in the MAC addresses 115 and 114.
  • a case is considered where the packet 50 directed to the MAC address 155 “XX: XX: XX: XX: XX: XX” is input from the network 400 to the SR-IOV compatible NIC device 166.
  • the MAC address 155 “XX: XX: XX: XX: XX: XX” that is the destination of the packet is set in the VF111. Therefore, the packet 50 is transferred to the VF111 instead of the PF142. Is done.
  • FIG. 3B is a block diagram illustrating a conventional example and an example of a MAC address in the physical computer 100.
  • the VF 111 is logically removed from the virtual machine 110 by HotRemove.
  • the SR-IOV compatible NIC device 166 transmits the packet to the MAC address 115 “XX: XX: XX: XX: XX: XX” of the VF 111, and the MAC address 114 “XX” which is the original destination is transmitted. : XX: XX: XX: XX: XX "is not transmitted to the PF 142 side. For this reason, the VNIC 113 cannot receive the packet 50 directed to the MAC address 114, and the redundant configuration cannot communicate.
  • the SR-IOV compatible NIC device 166 transmits the packet to the PF 142 when the device with the destination MAC address does not exist in the subordinate VF. Therefore, the MAC address 115 “XX: XX: XX: XX: XX: XX” is not set in the VF 111, and the SR-IOV compatible NIC device 166 has the MAC address 114 “XX: XX: XX: XX: XX”. Is not recognized by the subordinate VF, the packet 50 is transmitted to the PF 142.
  • the management OS 141 transmits the packet 50 received by the PF 142 from the VNIC 143 to the virtual SW 151 via the Network Bridge 145.
  • the hypervisor 150 can transfer the packet 50 sent to the virtual SW 151 to the VNIC 113 to realize a redundant configuration.
  • FIG. 3C is a block diagram illustrating an example of the MAC address in the physical computer 100 during live migration according to the embodiment of this invention.
  • the hypervisor 150 blocks the VF 111 (described later) and prohibits the use of the VF 111 by the user OS 112.
  • the hypervisor 150 changes the MAC address 115 of the VF 111 to a preset dummy MAC address “ZZ: ZZ: ZZ: ZZ: ZZ: ZZ”.
  • the SR-IOV compatible NIC device 166 receives the packet 50 whose destination is the MAC address 114 “XX: XX: XX: XX: XX: XX”, the MAC address 114 “ Since “XX: XX: XX: XX: XX: XX” does not exist, the packet 50 is transferred to the PF 142.
  • the PF 142 of the SR-IOV compatible NIC device 166 of this embodiment is set to the promiscuous mode, and MAC addresses other than the PF 142 are transferred to the VNIC 143 via the upper network bridge 145.
  • the promiscuous mode of the PF 142 is a mode in which all packets are received regardless of the destination.
  • the management OS 141 transmits the packet 50 received by the PF 142 from the VNIC 143 to the virtual SW 151 via the Network Bridge 145.
  • the hypervisor 150 transfers the packet 50 sent to the virtual SW 151 to the VNIC 113.
  • the hypervisor 150 can receive the packet 50 addressed to the MAC address 114 “XX: XX: XX: XX: XX: XX” by the VNIC 113.
  • the VNIC 113 created from the same physical port 66 and the virtual machine 110 configured as a redundant configuration by assigning the same MAC address to the VF 111 of SR-IOV continue communication even during live migration. It becomes possible.
  • FIG. 4 is a sequence diagram illustrating an example of live migration processing in the present embodiment.
  • step S401 a live migration request is sent from the management terminal 300 to the source hypervisor 150.
  • the live migration request includes information on the migration source virtual computer 110 and information on the migration destination physical computer 200 and the hypervisor 250.
  • step S402 the hypervisor 150 that is the migration source of the virtual computer 110 transmits the virtual memory 117 that is the target of live migration to the hypervisor 250 that is the migration destination.
  • the hypervisor 150 transmits the data in the virtual memory 117 and transfers it to the hypervisor 250 of the physical computer 200 via the network 400.
  • the hypervisor 150 proceeds with the synchronization processing of the memory data of the migration source virtual machine 110, and continues the data transfer until the difference between the data of the virtual memory 117 and the virtual memory 217 becomes equal to or less than the threshold value.
  • step S403 the migration source hypervisor 150 performs a blocking process on the VF 111 and prohibits the virtual machine 110 from accessing the VF 111.
  • the blocking process is a process of blocking access without stopping the I / O device.
  • the hypervisor 150 responds with data of “F” (hexadecimal notation). Access to the user OS 112 is prohibited.
  • step S404 the user OS 112 cannot access the VF 111 by the blocking process in step S403.
  • step S405 in step S404, the user OS 112 detects that the redundant VF 111, which is an active system, is unavailable, and switches the VNIC 113 to active. However, at this time, since the same MAC address 115 as the MAC address 114 “XX: XX: XX: XX: XX: XX” of the VNIC 113 is set in the VF 111, the VNIC 113 cannot communicate as shown in FIG. 3B.
  • step S406 the hypervisor 150 sets a dummy MAC address 500 “ZZ: ZZ: ZZ: ZZ: ZZ: ZZ” set in advance for the MAC address 115 of the VF111.
  • the VNIC 113 can communicate with the network 400 via the virtual switch 151 and the management virtual computer 140.
  • the dummy MAC address may be a unique value in the physical computer 100.
  • steps S405 and S406 can be executed in parallel, the order may be reversed.
  • the user OS 112 is connected to the network from the PF 142 of the SR-IOV compatible NIC device 166 via the virtual switch 151 and the management virtual computer 140 from the VNIC 113. Communicate with 400.
  • step S407 the hypervisor 150 stops the processing of the virtual computer 110 when the difference between the data in the virtual memory 117 and the virtual memory 217 is equal to or less than the threshold value.
  • step S408 the migration source hypervisor 150 transfers the remaining difference data from the virtual memory 117 of the virtual computer 110 to the migration destination hypervisor 250.
  • the data in the virtual memory 217 on the migration destination virtual machine 210 machine is synchronized with the migration source virtual machine 110.
  • step S409 the migration source hypervisor 150 transmits a migration instruction of the virtual computer 110 to the migration destination hypervisor 250.
  • This migration instruction includes the MAC address 115 “XX: XX: XX: XX: XX: XX” of the VF 111 of the virtual machine # 1 at the start of migration.
  • step S410 the destination hypervisor 250 resumes the processing of the virtual computer 210 and resumes the operation of the user OS 212.
  • the network redundant configuration on the user OS 212 restores the state immediately before the migration source (MC address or Active setting) from the copied data in the virtual memory 117 and operates the VNIC 213 as active.
  • step S411 the hypervisor 250 transmits a HotRemove request of the VF 211 to the user OS 212 of the virtual machine 210.
  • step S412 the device driver of the VF 211 performs a termination process on the user OS 212 that has received the HotRemove request of the VF 211, and the VF 211 disappears from the user OS 212. That is, the VF 211 obtained by restoring the blocked VF 111 is logically removed from the virtual machine 210.
  • step S413 the hypervisor 250 sets the original MAC address 115 “XX: XX: XX: XX: XX: XX” for the VF 211 in which the dummy MAC address is set.
  • the VNIC 213 cannot communicate, and the redundant configuration becomes incapable of communication.
  • the original MAC address 115 is the MAC address of the VF 111 included in the guest migration instruction received by the hypervisor 250 in S409. Note that the MAC address of the VF 211 is changed while being logically removed.
  • step S414 the hypervisor 250 requests the user OS 212 of the virtual machine 210 for HotAdd of the VF 211.
  • the VF 211 is logically connected to the virtual machine 110 by HotAdd.
  • the user OS 212 recognizes the VF 211 as a virtual function of the SR-IOV compatible NIC device 266.
  • step S415 the user OS 212 that has received the HotAdd request of the VF 211 causes the device driver to perform initialization processing.
  • step S416 the user OS 212 or the network management software on the user OS 212 detects the return of the VF 211, rebuilds the redundant configuration, and returns the VF 211 to the active system. Thereby, the SR-IOV compatible NIC device 266 having a redundant configuration can resume communication using the VF 211.
  • the communication disabled period between the communication period 41 of the movement source VF 111 and the communication period 42 of the VNIC 113 is a step S405 in which the hypervisor 150 switches the active system of the VNIC 113 and the dummy MAC address after the step S403 of the blocking process of the VF 111.
  • Step S406 of setting is performed.
  • the processes in steps S403 to S406 are all completed in about several hundreds ns to several ms. Since steps S405 and S406 operate asynchronously, the communication disabled time as a redundant configuration is about several ms.
  • the user OS is stopped and communication failure of several hundred ms occurs.
  • the communication disabled period between the communication period 43 of the destination VNIC 213 and the communication period 44 of the VF 211 the processing from the step S413 for setting the MAC address to the VF 211 to the step S416 for rebuilding the redundant configuration is performed. And implemented by the user OS 212. In this period, several seconds are required for the HotAdd process of the VF 211 and the initialization process by the device driver of the VF 211.
  • FIG. 5 to FIG. 8 show the MAC address setting in each of 44.
  • FIG. 5 is a block diagram showing a setting state of the MAC address in the communication period 41 of the VF 111 at the movement source.
  • the hypervisor 150 on the physical computer 100 holds the MAC address management table 152 therein.
  • the MAC address management table 152 is set by the hypervisor 150 and holds the MAC addresses of the VF 111, PF 142, and VNICs 113, 143 assigned to each of the virtual machines 110, 120, 130, 140.
  • the SR-IOV compatible NIC device 166 can set a MAC address for each VF 111 under the PF 142, and a table for managing the MAC address is a PF MAC address management table 168 of PF # 1.
  • the VF MAC address management table 168 is managed by the PF 142, and the PF 142 holds a MAC address for each subordinate VF.
  • the VF MAC address management tables 168 and 268 are managed for each PF 142 and 242. Further, the PF 142 sets the MAC address notified from the hypervisor in the MAC address management table 152.
  • the virtual machine 110 is defined as the virtual machine # 1 in the physical machine 100, and VF # 11 (111) and VNIC # 11 (113) are assigned to the virtual machine # 1.
  • VF # 11 111
  • VNIC # 11 113
  • a redundant configuration is formed on the user OS 112 using VF # 11 and VNIC # 11.
  • the hypervisor 150 sets the same value “XX: XX: XX: XX: XX: XX” in the MAC address 154 of VF # 11 and the MAC address 155 of VNIC # 11.
  • communication on the VF side is performed by setting the VF # 11 MAC address 154 as the MAC address of VF # 11 in the VF MAC address management table 168 of PF # 1.
  • FIG. 6 is a block diagram showing a setting state of the MAC address in the communication period 42 of the VNIC 113 at the movement source.
  • the hypervisor 150 sets the dummy MAC address 500 “ZZ: ZZ: ZZ: ZZ: ZZ: ZZ” in the VF # 11 of the VF MAC address management table 168 of the PF # 1, thereby enabling communication on the VNIC113 side. Switch. As described above, the hypervisor 150 also changes the MAC address of the VF of the virtual machine # 1 in the MAC address management table 152 to the dummy MAC address 500.
  • the dummy MAC address 500 may be the same value for all hypervisors in the virtual computing system as long as it does not overlap with other MAC addresses. If the MAC address is duplicated on the network 400, it seriously affects the communication of the device set with the duplicate MAC address. However, during the period when the dummy MAC address is set in the VF 111, communication is performed using the VNIC 113 on the user OS 112. Do. For this reason, there is no influence on communication by setting the same dummy MAC address 500 to a plurality of VFs.
  • FIG. 7 is a block diagram showing a setting state of the MAC address in the communication period 43 of the VNIC 213 at the movement destination.
  • the setting of the virtual machine # 1 is deleted from the MAC address management table 152 of the hypervisor 150 that is the movement source.
  • the copied MAC address information of the virtual machine 110 is set in the MAC address management table 252 of the hypervisor 250.
  • a dummy MAC address 500 is set in VF # 21 of the VF MAC address management table 268 of PF # 2.
  • FIG. 8 is a block diagram showing a setting state of the MAC address in the communication period 44 of the VF 211 at the movement destination.
  • the hypervisor 250 of the movement destination sets the original MAC address in VF # 21 of the VF MAC address management table 268 of PF # 2 (242) in order to restore VF communication on the user OS 212.
  • the original MAC address set here is the MAC address 115 “XX: XX: XX: XX: XX: XX” used for the communication of the VF 111 at the movement source, and the guest movement instruction received from the hypervisor 150
  • the included MAC address 115 of the VF 111 is set to the VF # 11 MAC address 154 of the virtual machine # 1 in the MAC address management table 252.
  • step S403 of the blocking process of the VF 111 the device driver on the user OS 112 cannot access the VF 111. Therefore, the consistency between the device driver on the user OS 112 and the VF 111 cannot be guaranteed.
  • the hypervisor 150 performs HotRemove of the VF 111 and Hot Add of the VF 111 on the physical computer 100 of the migration source, thereby allowing the device driver and the VF 111 to It is necessary to perform initialization and restore VF communication.
  • a VF and a VNIC generated by the hypervisor 150 from the same port are assigned to a virtual machine in pairs, and a redundant configuration is set on the user OS. Since the SR-IOV compatible NIC device of this embodiment transmits the packet to the VF side when the same MAC address is set in the VF and the VNIC, the VF side is always set as the active system before performing the live migration. To do.
  • the PF is assigned to the management virtual machine 140 and is operated in the promiscuous mode.
  • a dummy MAC address different from the MAC address set for the source VF is set.
  • the SR-IOV compatible NIC device transmits a packet directed to the original MAC address to the PF side instead of the VF side, so that the VNIC can communicate.
  • the redundant configuration can continue communication by switching the active system of the redundant configuration to the VNIC side.
  • the destination hypervisor 250 performs HotRemove from the user OS. After completion of HotRemove, the hypervisor 250 sets the original MAC address 115 to the MAC address of the VF, and then performs HotAdd of the VF, whereby the initialization process by the VF driver is performed again, and the VF can communicate. . Also, the hypervisor 250 resets the redundant configuration by setting the same MAC address as that of VF in the VNIC.
  • the VNIC 113 generated from the same physical port 66 of the SR-IOV compatible NIC device 166 and the VF 111 of the SR-IOV compatible NIC device 166 are assigned the same MAC address to form a redundant configuration.
  • the computer 110 can switch the communication of the VF 111 to the VNIC 113 to perform live migration.
  • this invention is not limited to the above-mentioned Example, Various modifications are included.
  • the above-described embodiments are described in detail for easy understanding of the present invention, and are not necessarily limited to those having all the configurations described.
  • a part of the configuration of one embodiment can be replaced with the configuration of another embodiment, and the configuration of another embodiment can be added to the configuration of one embodiment.
  • any of the additions, deletions, or substitutions of other configurations can be applied to a part of the configuration of each embodiment, either alone or in combination.
  • each of the above-described configurations, functions, processing units, processing means, and the like may be realized by hardware by designing a part or all of them with, for example, an integrated circuit.
  • each of the above-described configurations, functions, and the like may be realized by software by the processor interpreting and executing a program that realizes each function.
  • Information such as programs, tables, and files for realizing each function can be stored in a memory, a hard disk, a recording device such as an SSD (Solid State Drive), or a recording medium such as an IC card, an SD card, or a DVD.
  • control lines and information lines indicate what is considered necessary for the explanation, and not all the control lines and information lines on the product are necessarily shown. Actually, it may be considered that almost all the components are connected to each other.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Hardware Redundancy (AREA)
  • Computer And Data Communications (AREA)

Abstract

第1の物理計算機の計算機資源を仮想計算機に割り当てる第1仮想化部と、第2の物理計算機の計算機資源を仮想計算機に割り当てる第2仮想化部と、を有する仮想計算機システムであって、第1仮想化部が仮想計算機のうちの第1の仮想計算機に第1のソフトウェア仮想NICを割り当て、第1の仮想計算機に第1の物理ネットワークデバイスの仮想機能を割り当て、第1のソフトウェア仮想NICと前記仮想機能に同一のネットワークアドレスを設定してから仮想機能をアクティブに設定し、第1の仮想計算機のゲストOSが仮想機能を経由して通信を実行し、第1仮想化部がライブマイグレーションの指令を受信すると、前記仮想機能を遮断し、第1のソフトウェア仮想NICをアクティブに変更し、仮想機能のネットワークアドレスを予め設定したダミーアドレスに変更する。

Description

仮想計算機システム及び仮想計算機のマイグレーション方法
 本発明は、SR-IOV(Single Root I/O Virtualization)デバイスを用いた仮想計算機システムにおけるライブマイグレーションに関する。
 近年、物理計算機が有するハイパバイザなどの仮想化ソフトウェアにより、物理計算機上に1つまたは複数の仮想計算機を構築する仮想計算機システムが広く使われている。仮想化ソフトウェア(ハイパバイザ等)が有する機能の1つとして、第1の物理計算機上で稼働する仮想計算機を、処理を止めることなく第2の物理計算機に移動することであるライブマイグレーションの技術が知られている(例えば、特許文献1)。
 また、仮想化環境では、ネットワークデバイスのハードウェア仮想化機能であるSR-IOV機能も広く使われている(例えば特許文献2)。SR-IOV機能は1つの物理ポートで、1つの物理機能(PF:Physical Function)と、ハードウェア的に仮想化された1つまたは複数の仮想機能(VF:Virtual Function)を、1つまたは複数の仮想計算機で利用可能とする。また、VFを割り当てた仮想計算機においても、ライブマイグレーションを利用したいという需要がある。
 しかし、VFは仮想計算機から直接アクセスするパススルー方式で稼働させるため、ハイパバイザはVF内の処理を停止させることや、VFのデータを移動先にコピーすることができない。上記構成では、VFを割り当てた仮想計算機をライブマイグレーションすることができない。なお、パススルーでは、仮想計算機が直接VFを操作し、ハイパバイザがVFの操作を行うことが禁止されているため、データのコピーやデバイスの操作を行うことができない。
 そこで、VFを割り当てた仮想計算機をライブマイグレーションする手法の1つとして、ソフトウェア仮想NIC(Network Interface Card)を加えてVFの冗長化を図る技術が知られている。以下ではソフトウェア仮想NICをVNICとも表記する。ソフトウェア仮想NICは、ハイパバイザがソフトウェア的に実現するNICであり、ハイパバイザがデバイスの停止や移動先へのデータコピーを実施できるため、ライブマイグレーション中も通信を継続できるが、CPUの処理を伴うためVFよりも性能面では劣る。そのため、VFをソフトウェア仮想NICと冗長化することで、ライブマイグレーション中でVFが通信不可の間はソフトウェア仮想NICで通信を継続し、それ以外はソフトウェア仮想NICよりも高性能なVFで通信を行うことができる。
特開2012-108816号公報 特開2014-235578号公報
 上記従来例のように、ネットワークデバイスで冗長構成を設定する場合、同一の冗長構成内にある全てのネットワークデバイスに同一のMACアドレスを設定して動作する。しかし、特定のSR-IOV対応のNICデバイスでは、同一ポートから作成したソフトウェア仮想NICとVFデバイスに同一のMACアドレスを設定した場合に、ソフトウェア仮想NICが通信できなくなり、ライブマイグレーションができない場合があった。
 そこで本発明は、上記問題点に鑑みてなされたもので、SR-IOVのVFにソフトウェア仮想NICと同一のMACアドレスを割り当てて冗長構成とした仮想計算機でライブマイグレーションを実現することを目的とする。
 本発明は、プロセッサと、メモリと、物理機能と仮想機能を含むSR-IOVに対応した第1の物理ネットワークデバイスと、を有する第1の物理計算機と、プロセッサと、メモリと、物理機能と仮想機能を含むSR-IOVに対応した第2の物理ネットワークデバイスと、を有する第2の物理計算機と、前記第1の物理計算機の計算機資源を1つ以上の仮想計算機に割り当てる第1の仮想化部と、前記第2の物理計算機の計算機資源を1つ以上の仮想計算機に割り当てる第2の仮想化部と、を有する仮想計算機システムであって、前記第1の仮想化部が、前記仮想計算機のうちの第1の仮想計算機に第1のソフトウェア仮想NICを割り当て、前記第1の仮想計算機に前記第1の物理ネットワークデバイスの仮想機能を割り当て、前記第1のソフトウェア仮想NICと前記仮想機能に同一のネットワークアドレスを設定してから、前記仮想機能をアクティブに設定し、前記第1の仮想計算機で稼働するゲストOSが、前記仮想機能を経由して通信を実行し、前記第1の仮想化部が、ライブマイグレーションの指令を受信すると、前記仮想機能を遮断し、前記第1の仮想化部が、前記第1のソフトウェア仮想NICをアクティブに変更し、前記仮想機能のネットワークアドレスを予め設定したダミーアドレスに変更し、前記第1の仮想計算機のゲストOSが、前記第1のソフトウェア仮想NICによって通信を実行し、前記第1の仮想化部が、前記第1の仮想計算機に割り当てた計算機資源としての第1の仮想メモリの内容を前記第2の仮想化部へコピーする。
 本発明によれば、同一の物理ポートから作成した第1のソフトウェア仮想NICと、SR-IOVの仮想機能(VF)に同一のMACアドレスを割り当てて冗長構成とした仮想計算機でライブマイグレーションを実施することが可能となる。
本発明の実施例を示し、仮想計算機システムの一例を示すブロック図である。 本発明の実施例を示し、仮想計算機110を移動するライブマイグレーションの概要を示すブロック図である。 本発明の実施例を示し、物理計算機内のMACアドレスの一例を示すブロック図である。 従来例を示し、物理計算機内のMACアドレスの一例を示すブロック図である。 本発明の実施例を示し、ライブマイグレーション中の物理計算機内のMACアドレスの一例を示すブロック図である。 本発明の実施例を示し、ライブマイグレーションの処理の一例を示すタイムチャートである。 本発明の実施例を示し、ライブマイグレーション開始直後で移動元のVFの通信期間におけるMACアドレスの状態を示すブロック図である。 本発明の実施例を示し、ライブマイグレーション開始後で移動元のVNICの通信期間におけるMACアドレスの状態を示すブロック図である。 本発明の実施例を示し、ライブマイグレーション開始後で移動先のVNICの通信期間におけるMACアドレスの状態を示すブロック図である。 本発明の実施例を示し、ライブマイグレーション終了時で移動先のVFの通信期間におけるMACアドレスの状態を示すブロック図である。
 以下、図面を用いて本発明の実施例を説明する。
 <システム構成>
 図1は、本実施例の仮想計算機システムの構成の一例を示すブロック図である。図1に示す仮想計算機システムは、物理計算機100と物理計算機200がネットワーク400に接続され、仮想計算機の生成や削除あるいはライブマイグレーションを制御する管理端末300もネットワーク400に接続される。仮想計算機システムは、業務を提供するサーバを稼働させることができる。
 物理計算機100の物理資源160は、演算処理を行う複数のCPU161~164と、プログラムやデータを格納するメモリ165と、SR-IOV対応NICデバイス(物理ネットワークデバイス)166やFC-HBA167のようなIOデバイスから構成される。メモリ165は、例えば、DRAMやSRAM等で構成される。また、物理計算機100、200には記憶領域を提供するストレージ装置(図示省略)が接続されていてもよい。SR-IOV対応NICデバイス166の物理ポート66(図3A参照)はネットワーク400に接続されて通信を行う。なお、FC-HBA167は図示しないSAN(Storage Area Network)に接続される。
 物理計算機100上では、物理資源160を使用してハイパバイザ150稼働している。ハイパバイザ150は、物理計算機100の物理資源160を論理的に分割して仮想計算機(または論理区画)に割り当て、仮想計算機のゲストOSを稼働させる。
 ハイパバイザ150は1つの管理用仮想計算機140と、複数のユーザ用仮想計算機110、120、130を生成する。管理用仮想計算機140は、物理計算機100のSR-IOVに対応するNICデバイス166のPF142の初期化やVF111の初期化などを実行する管理計算機として機能する。また、ユーザ用仮想計算機110、120、130は、ネットワーク400に接続された業務を提供するサーバなどとして機能する。
 各仮想計算機110は、仮想CPU116と仮想メモリ117と、VF111やVNIC113などの論理資源で構成される。
 仮想CPU116は物理計算機100のCPU161を論理的に分割して仮想計算機に割り当てる論理資源(仮想デバイス)である。仮想メモリ117は、メモリ165の所定の領域を仮想計算機110に割り当てる論理資源である。VF111は、SR-IOV対応のNICデバイス166の論理資源である。VNIC113はハイパバイザ150が提供する仮想ネットワークを構成する論理資源で、ハイパバイザ150上の仮想計算機間で通信を行う。
 仮想計算機120、130、140も、仮想計算機110と同様の論理資源から構成される。ユーザ用仮想計算機110上では、論理資源を利用してユーザ(またはゲスト)OS112が稼働しており、ユーザ用仮想計算機120、130上でも同様にユーザOSが稼働する。
 管理用仮想計算機140上では、論理資源を利用して管理OS141が稼働する。管理用仮想計算機140には、ユーザ用仮想計算機110と同様に、仮想CPU146と、仮想メモリ147と、VNIC143などの論理資源が割り当てられるのに加え、SR-IOV対応のNICデバイス166のPF142が割り当てられる。
 ハイパバイザ150は、仮想スイッチ(仮想SW)151を有し、仮想スイッチ151にはVNIC113やVNIC143が接続されている。仮想スイッチ151は、ハイパバイザ150が提供する仮想計算機間の仮想ネットワークであり、ハイパバイザ150が提供するVNIC111、143によって通信が行われる。
 SR-IOV対応NICデバイス166は、PF(Physical Function)とVFを提供することができる。PFは管理用仮想計算機140にPF142として割り当てられ、VFは各ユーザ用仮想計算機にVF111として割り当てられる。
 SR-IOV対応NICデバイス166は、一つの計算機(管理用仮想計算機140)に割当てられるPF142と、複数の仮想計算機110、120、130に割当てられる複数のVF(Virtual Function)111とを有する。PF142は、1以上のVF111を生成することができる。
 なお、本実施例では、ネットワークデバイスの冗長構成として、VF111にVNIC113を加えた構成を示す。通常は、VF111がアクティブでありパススルーによってSR-IOV対応のNICデバイス166からネットワーク400との間で通信を行う。
 VNIC113は通常時にはスタンバイであり、VF111に障害が発生すると仮想計算機110はVNIC113を介して仮想スイッチ151、管理用仮想計算機140のVNIC143及びPF142を介してSR-IOV対応のNICデバイス166からネットワーク400との間で通信を行う。
 物理計算機200も物理計算機100と同様の構成となっており、物理計算機100のSR-IOV対応NICデバイス166と、物理計算機200のSR-IOV対応NICデバイス266がネットワーク400に接続されている。なお、物理計算機200の物理資源260及び論理資源の要素に付した符号は、物理計算機100の符号を200番台にしたものである。
 <ライブマイグレーションの概要>
 ライブマイグレーションによる仮想計算機110を移動する例を図2に示す。図2は、物理計算機100の上で稼働している仮想計算機110を、物理計算機200の上に移動するライブマイグレーションの概要を示すブロック図である。
 管理端末300等からの指令により、物理計算機100でライブマイグレーションを開始する。まず、ハイパバイザ150が仮想メモリ117のデータをコピーし、ネットワーク400を介してハイパバイザ250に送信を開始する。
 移動先の物理計算機200では、ハイパバイザ250が、受け取った仮想メモリ117のデータに基づいて仮想計算機210を物理計算機200上に生成する。
 この時、移動元の物理計算機100では仮想計算機110が処理を継続するため、仮想メモリ117のデータは変化し続ける。ハイパバイザ150がネットワーク400を介したデータ転送を続けることで、仮想メモリ117と仮想メモリ217の差分が小さくなっていく。
 仮想メモリ117と仮想メモリ217の差分が閾値以下に小さくなった時点で、ハイパバイザ150が仮想計算機110に割り当てられた論理資源の稼働を止めることで、ユーザOS112の処理を止めて、仮想計算機110を停止させる。
 仮想計算機110を停止させたら、ハイパバイザ150が仮想メモリ117と仮想メモリ217の残りの差分をネットワーク400を介して転送することで、仮想メモリ117と仮想メモリ217を同期させる。
 その後、移動先のハイパバイザ250が仮想メモリ217のデータで処理を開始させることで、物理計算機100から移動してきたユーザOS212(ユーザOS112)の稼働が再開される。ここで、移動元のユーザOS112が処理を停止してから、移動先でユーザOS212が処理を再開するまでの時間が数百ms程度であるため、ユーザOS112は物理計算機100から物理計算機200に移動したことを検知できない、すなわち異常を検知せずにユーザOS212として稼働を継続する。これによりライブマイグレーションの処理が完了する。
 <ソフトウェア仮想NICの問題>
 前記従来例の課題である、ソフトウェア仮想NICの問題について説明する。ネットワークデバイスで冗長構成を設定する場合、同一の冗長構成内にある全てのネットワークデバイスに同一のMACアドレスを設定する。しかし、特定のSR-IOV対応NICデバイス166では、同一の物理ポート66から作成したソフトウェア仮想NICとVFに同一のMACアドレスを設定した場合に、ソフトウェア仮想NICが通信できなくなり、ライブマイグレーションができない場合があった。
 図3Aは、物理計算機100内のMACアドレスの一例を示すブロック図である。物理計算機100上の仮想計算機110には、VF111とVNIC113が割り当てられており、VF111とVNIC113で冗長構成118を設定している。
 VNIC113はハイパバイザ150内の仮想SW151から、管理用仮想計算機140内のVNIC143と、ネットワークブリッジ145と、PF142を経由してSR-IOV対応NICデバイス166からネットワーク400に接続されている。
 VF111はパススルーによってSR-IOV対応NICデバイス166を介してネットワーク400と接続されている。VF111とVNIC113は冗長構成を組んでいるため、VF111にもVNIC113にも同一のMACアドレス115、114が設定されている。
 図示の例では、MACアドレス115、114には、「XX:XX:XX:XX:XX:XX」が設定されている例を示す。ここで、ネットワーク400からSR-IOV対応NICデバイス166に、MACアドレス155「XX:XX:XX:XX:XX:XX」に向けたパケット50が入力された場合を考える。
 SR-IOV対応NICデバイス166から見ると、パケットの宛先であるMACアドレス155「XX:XX:XX:XX:XX:XX」はVF111に設定されているため、PF142ではなくVF111にパケット50が転送される。
 次に、前記従来例において、ライブマイグレーションを行うために、仮想計算機110からVF111をHotRemoveした場合を考える。図3Bは、従来例を示し、物理計算機100内のMACアドレスの一例を示すブロック図である。VF111は、HotRemoveによって、仮想計算機110から論理的に取り外されている。
 ライブマイグレーションを実施するためにVF111を仮想計算機110からHotRemoveした後は、MACアドレス114「XX:XX:XX:XX:XX:XX」を宛先とするパケット50がVNIC113に送られることを期待している。しかし、VF111は、SR-IOV対応NICデバイス166上ではMACアドレス115「XX:XX:XX:XX:XX:XX」が設定されたままとなっている。
 このため、SR-IOV対応NICデバイス166は、VF111のMACアドレス115「XX:XX:XX:XX:XX:XX」へ向けてパケットを送信してしまい、本来の宛先であるMACアドレス114「XX:XX:XX:XX:XX:XX」のPF142側には送信しない。このため、VNIC113は、MACアドレス114に向けたパケット50を受信できず、冗長構成は通信不能となってしまう。
 なお、SR-IOV対応NICデバイス166は、宛先のMACアドレスのデバイスが配下のVFに存在しない場合には、当該パケットをPF142へ送信する。したがって、VF111にMACアドレス115「XX:XX:XX:XX:XX:XX」が設定されておらず、SR-IOV対応NICデバイス166がMACアドレス114「XX:XX:XX:XX:XX:XX」を配下のVFで認識できない場合には、当該パケット50をPF142に送信する。
 そして、管理OS141は、PF142が受信したパケット50をNetworkBridge145を介してVNIC143から仮想SW151に送信する。ハイパバイザ150が仮想SW151に送られてきたパケット50をVNIC113に転送し、冗長構成を実現することができる。
 <本発明の冗長構成>
 図3Cは、本発明の実施例を示し、ライブマイグレーション中の物理計算機100内のMACアドレスの一例を示すブロック図である。
 ライブマイグレーション中には、ハイパバイザ150がVF111を閉塞(後述)して、ユーザOS112からVF111の使用を禁止する。
 ハイパバイザ150は、VF111のMACアドレス115を、予め設定したダミーMACアドレス「ZZ:ZZ:ZZ:ZZ:ZZ:ZZ」に変更する。
 これにより、SR-IOV対応NICデバイス166は、宛先がMACアドレス114「XX:XX:XX:XX:XX:XX」のパケット50を受信すると、配下のVFには直接識別可能なMACアドレス114「XX:XX:XX:XX:XX:XX」が存在しないので、当該パケット50をPF142へ転送する。
 本実施例のSR-IOV対応NICデバイス166のPF142は、プロミスキャスモードに設定されており、当該PF142以外のMACアドレスについては上位のネットワークブリッジ145を介してVNIC143へ転送する。なお、PF142のプロミスキャスモードは、宛先に関わらずすべてのパケットを受信するモードである。
 管理OS141は、PF142が受信したパケット50をNetworkBridge145を介してVNIC143から仮想SW151に送信する。ハイパバイザ150が仮想SW151に送られてきたパケット50をVNIC113に転送する。
 これにより、ハイパバイザ150はMACアドレス114「XX:XX:XX:XX:XX:XX」宛のパケット50をVNIC113で受信することが可能となる。
 以上のように、本実施例では、同一の物理ポート66から作成したVNIC113と、SR-IOVのVF111に同一のMACアドレスを割り当てて冗長構成とした仮想計算機110でライブマイグレーション中も通信を継続することが可能となる。
 また、ライブマイグレーションの冗長構成用に、SR-IOVのVFとVNICとで別の物理NIC(物理ポート)を用意する必要がなくなるため、コストを削減することができる。
 <ライブマイグレーションの処理>
 図4は、本実施例におけるライブマイグレーションの処理の一例を示すシーケンス図である。
 ステップS401では、管理端末300から移動元のハイパバイザ150に対してライブマイグレーション要求が送出される。ライブマイグレーション要求には、移動元の仮想計算機110の情報と、移動先の物理計算機200及びハイパバイザ250の情報が含まれる。
 ステップS402では、仮想計算機110の移動元となるハイパバイザ150は、ライブマイグレーション対象の仮想メモリ117を移動先のハイパバイザ250に送信する。ハイパバイザ150は、仮想メモリ117のデータを送信し、ネットワーク400を経由して物理計算機200のハイパバイザ250に転送する。
 ハイパバイザ150は、移動元の仮想計算機110のメモリデータの同期処理を進めていき、仮想メモリ117と仮想メモリ217のデータの差分が閾値以下になるまでデータ転送を続ける。
 ステップS403では、移動元のハイパバイザ150は、VF111の閉塞処理を実施し、仮想計算機110からVF111へのアクセスを禁止する。閉塞処理は、I/Oデバイスを停止させることなくアクセスを遮断する処理で、例えば、ユーザOS112がVF111へアクセスすると、ハイパバイザ150がすべて「F」(16進表記)のデータを応答することで、ユーザOS112のアクセスを禁止する。ステップS404では、上記ステップS403の閉塞処理によって、ユーザOS112はVF111にアクセス不可となる。
 ステップS405では、上記ステップS404でユーザOS112は冗長構成のactive系であるVF111が利用不可の状態であることを検知し、VNIC113をactiveに切り替える。ただし、この時点ではVNIC113のMACアドレス114「XX:XX:XX:XX:XX:XX」と同じMACアドレス115がVF111に設定されているため、図3Bで示したようにVNIC113は通信できない。
 ステップS406では、ハイパバイザ150がVF111のMACアドレス115に対して予め設定されたダミーMACアドレス500「ZZ:ZZ:ZZ:ZZ:ZZ:ZZ」を設定する。これにより、図3Cで示したようにVNIC113は仮想スイッチ151、管理用仮想計算機140を介してネットワーク400と通信可能な状態となる。なお、ダミーMACアドレスは、物理計算機100内でユニークな値であれば良い。
 上記ステップS405とステップS406の処理は、並列して実行することができるので、順序は逆であっても良い。上記VNIC113のアクティブ化と、VF111のMACアドレスをダミーMACアドレス500に変更した後は、ユーザOS112はVNIC113から仮想スイッチ151、管理用仮想計算機140を介してSR-IOV対応NICデバイス166のPF142からネットワーク400と通信を行う。
 ステップS407では、ハイパバイザ150は、仮想メモリ117と仮想メモリ217のデータの差分が閾値以下になると仮想計算機110の処理を停止する。
 ステップS408では、移動元のハイパバイザ150は、仮想計算機110の仮想メモリ117から残りの差分データを移動先のハイパバイザ250に転送する。これにより、移動先の仮想計算機210マシン上の仮想メモリ217メモリのデータが移動元の仮想計算機110と同期する。
 ステップS409では、移動元のハイパバイザ150が、移動先のハイパバイザ250に仮想計算機110の移動の指示を送信する。この移動の指示には、マイグレーション開始時点の仮想計算機#1のVF111のMACアドレス115「XX:XX:XX:XX:XX:XX」が含まれる。
 ステップS410では、移動先のハイパバイザ250は、仮想計算機210の処理を再開させ、ユーザOS212の稼働を再開させる。この時点では、ユーザOS212上のネットワーク冗長構成は移動元の直前の状態(MCアドレスやActive設定)をコピーされた仮想メモリ117のデータから復元し、VNIC213をactiveとして稼働させている。
 ステップS411では、ハイパバイザ250がVF211のHotRemove要求を仮想計算機210のユーザOS212に送信する。
 ステップS412では、VF211のHotRemove要求を受け取ったユーザOS212上で、VF211のデバイスドライバが終了の処理を実施し、ユーザOS212上からVF211が消える。すなわち、閉塞されていたVF111を復元したVF211が仮想計算機210から論理的に取り外される。
 ステップS413では、ハイパバイザ250は、ダミーMACアドレスが設定されているVF211に対して、本来のMACアドレス115「XX:XX:XX:XX:XX:XX」を設定する。この時点でVNIC213が通信不可となり、冗長構成が通信不可状態となる。なお、本来のMACアドレス115は、ハイパバイザ250がS409で受信したゲスト移動の指示に含まれるVF111のMACアドレスである。なお、VF211は、論理的に取り外された状態でMACアドレスが変更される。
 ステップS414では、ハイパバイザ250が仮想計算機210のユーザOS212にVF211のHotAddを要求する。VF211は、HotAddによって、仮想計算機110へ論理的に接続される。ユーザOS212は、VF211をSR-IOV対応NICデバイス266の仮想機能として認識する。
 ステップS415では、VF211のHotAdd要求を受け取ったユーザOS212は、デバイスドライバによる初期化処理を実施させる。
 ステップS416では、ユーザOS212またはユーザOS212上のネットワーク管理ソフトウェアが、VF211の復帰を検知し、冗長構成を再構築し、VF211をactive系に戻す。これにより、冗長構成のSR-IOV対応NICデバイス266はVF211を用いた通信を再開できる。
 図4のシーケンス図には、移動元でVF111が通信を行う期間41と、移動元でVNIC213が通信を行う期間42と、移動先でVNIC213が通信を行う期間43と、移動先でVF211が通信を行う期間44を示した。
 それぞれの間でVFとVNICの両方が通信不可となる期間が存在している。移動元のVF111の通信期間41と、VNIC113の通信期間42の間にある通信不可期間は、VF111の閉塞処理のステップS403の後で、ハイパバイザ150がVNIC113のactive系切り替えのステップS405とダミーMACアドレス設定のステップS406を実施する。ステップS403からS406の処理はいずれも数百ns~数ms程度で完了する処理であり、ステップS405とS406は非同期で稼働するため、冗長構成としての通信不可時間は数ms程度となる。
 次に、移動元のVNIC113の通信期間42と移動先のVNIC213通信期間43の間では、ユーザOSが停止状態となり数百msの通信不可が発生する。最後に、移動先のVNIC213の通信期間43とVF211の通信期間44との間の通信不可期間には、VF211へのMACアドレス設定のステップS413から冗長構成再構築のステップS416までの処理をハイパバイザ250およびユーザOS212が実施する。この期間には、VF211のHotAdd処理とVF211のデバイスドライバによる初期化処理で数秒の時間を要する。
 前記従来例では、移動元でのVF111のHotRemoveから移動先でのVF211のHotAddまでの数十秒~数分の期間が通信不可となるのに対し、本実施例の通信不可期間は、移動前の数msと移動後の数秒間で済むようになる。このため、例えばTCP通信であれば、本実施例を適用した後はライブマイグレーション中にも通信を継続することができる。
 図4に記載したシーケンス図における、移動元でのVF111の通信期間41と、移動元でのVNIC113の通信期間42と、移動先でのVNIC213の通信期間43と、移動先でのVF211の通信期間44のそれぞれにおけるMACアドレス設定について、図5~図8に示す。
 図5は、移動元でのVF111の通信期間41におけるMACアドレスの設定状態を示すブロック図である。
 物理計算機100上のハイパバイザ150は、MACアドレス管理テーブル152を内部に保持する。MACアドレス管理テーブル152は、ハイパバイザ150によって設定され、仮想計算機110、120、130、140毎に割り当てたVF111、PF142及びVNIC113、143のMACアドレスを保持する。
 SR-IOV対応NICデバイス166は、PF142の配下のVF111毎にMACアドレスを設定可能であり、MACアドレスを管理するテーブルをPF#1のVF MACアドレス管理テーブル168とする。VF MACアドレス管理テーブル168は、PF142によって管理され、PF142は配下のVF毎にMACアドレスを保持する。
 なお、VF MACアドレス管理テーブル168、268は、各PF142、242毎に管理される。また、PF142は、ハイパバイザから通知されたMACアドレスをMACアドレス管理テーブル152に設定する。
 ここで、物理計算機100には、仮想計算機110が仮想計算機#1として定義してあり、仮想計算機#1にはVF#11(111)とVNIC#11(113)が割り当てられている。本実施例においては、ユーザOS112上でVF#11とVNIC#11を用いて冗長構成を組む。
 このため、ハイパバイザ150は、VF#11のMACアドレス154と、VNIC#11のMACアドレス155には、同じ値「XX:XX:XX:XX:XX:XX」を設定する。移動元でのVF通信期間41では、PF#1のVF MACアドレス管理テーブル168のVF#11のMACアドレスにVF#11MACアドレス154を設定することで、VF側での通信を行う。
 図6は、移動元でのVNIC113の通信期間42におけるMACアドレスの設定状態を示すブロック図である。
 ここでは、ハイパバイザ150がダミーMACアドレス500「ZZ:ZZ:ZZ:ZZ:ZZ:ZZ」をPF#1のVF MACアドレス管理テーブル168のVF#11に設定することで、VNIC113側での通信に切り替える。なお、上述したように、ハイパバイザ150は、MACアドレス管理テーブル152の仮想計算機#1のVFのMACアドレスについてもダミーMACアドレス500に変更する。
 ダミーMACアドレス500は、他のMACアドレスと重複しない限り、仮想計算システム内の全てのハイパバイザで同一の値としてよい。ネットワーク400上でMACアドレスが重複すると、重複したMACアドレスを設定されたデバイスの通信に深刻な影響を及ぼすが、VF111にダミーMACアドレスを設定する期間は、ユーザOS112上ではVNIC113を用いて通信を行う。このため、複数のVFに同一のダミーMACアドレス500を設定することによる通信への影響はない。
 図7は、移動先でのVNIC213の通信期間43におけるMACアドレスの設定状態を示すブロック図である。
 ライブマイグレーションによる仮想計算機110の移動によって、移動元であるハイパバイザ150のMACアドレス管理テーブル152からは仮想計算機#1の設定が削除される。移動先では、ハイパバイザ250のMACアドレス管理テーブル252に、コピーされた仮想計算機110のMACアドレス情報が設定される。この時点では、ユーザOSはVNICで通信を継続しているため、PF#2のVF MACアドレス管理テーブル268のVF#21には、ダミーMACアドレス500が設定されている。
 図8は、移動先でのVF211の通信期間44におけるMACアドレスの設定状態を示すブロック図である。
 移動先のハイパバイザ250はユーザOS212上でのVF通信を復活させるため、PF#2(242)のVF MACアドレス管理テーブル268のVF#21に本来のMACアドレスを設定する。ここで設定する本来のMACアドレスは、移動元でVF111の通信に使用していたMACアドレス115「XX:XX:XX:XX:XX:XX」であり、ハイパバイザ150から受信したゲスト移動の指示に含まれるVF111のMACアドレス115を、MACアドレス管理テーブル252の仮想計算機#1のVF#11MACアドレス154に設定する。
 図4のシーケンス図でライブマイグレーション処理を実施中に、何らかの事由によるライブマイグレーション処理の失敗や、ユーザからのキャンセル要求発生により、ライブマイグレーションを中止する場合には、仮想計算機110は物理計算機200には移動せずに物理計算機100上で稼働を継続し、かつ、ネットワークデバイスの冗長構成はVF111を用いて通信を継続することが要求される。
 VF111の閉塞処理のステップS403の実施前にライブマイグレーションの中止要求が発生した場合、この時点ではユーザOS112上の冗長構成はVF111を用いて通信を行っているため、ハイパバイザ150では特別な処理は必要ない。
 ハイパバイザ150がVF111の閉塞処理のステップS403を実施した後は、ユーザOS112上のデバイスドライバからVF111にアクセス不可となるため、ユーザOS112上のデバイスドライバとVF111の整合性が保障できなくなる。
 このため、VF111の閉塞処理の実施後にライブマイグレーションを中止して、ハイパバイザ150がVF111の閉塞を解除、すなわちユーザOS112上のデバイスドライバからVF111にアクセス可能な状態としても、デバイスドライバおよびVF111の正常な稼働が保障できない。
 したがって、VF111の閉塞処理の実施後(S403)にライブマイグレーションを中止する場合は、移動元の物理計算機100上でハイパバイザ150がVF111のHotRemoveおよびVF111のHotAddを実施することで、デバイスドライバおよびVF111の初期化を実施してVF通信を復帰させる必要がある。
 <まとめ>
 以上のように、本実施例では、まず、ハイパバイザ150が同一ポートから生成したVFとVNICをペアで仮想計算機に割り当て、ユーザOS上で冗長構成を設定する。本実施例のSR-IOV対応NICデバイスは、VFとVNICに同一のMACアドレスを設定している場合は、VF側にパケットを送信するので、ライブマイグレーション実施前は常にVF側をactive系として通信する。また、PFは管理用仮想計算機140に割り当ててプロミスキャスモードで稼働させる。
 ライブマイグレーションを実施する際には、移動元のVFに対して設定されていたMACアドレスとは異なるダミーMACアドレスを設定する。これにより、SR-IOV対応NICデバイスは、本来のMACアドレスに向けたパケットをVF側ではなくPF側に送信するため、VNICが通信可能となる。
 また、仮想計算機からVFへのアクセスを遮断(閉塞)させることで、VFをユーザOSから利用不可とし、冗長構成のactive系をVNIC側に切り替えることで、冗長構成は通信を継続できる。
 そして、仮想計算機のデータを移動先の仮想メモリ217に転送した後に、移動先のハイパバイザ250はVFをユーザOSからHotRemoveする。HotRemoveの完了後、ハイパバイザ250がVFのMACアドレスに本来のMACアドレス115を設定し、その後、VFのHotAddを実施することで、VFドライバによる初期化処理が再実施され、VFが通信可能となる。また、ハイパバイザ250はVNICにVFと同一のMACアドレスを設定することで、冗長構成を再設定する。
 以上、本実施例によれば、SR-IOV対応NICデバイス166の同一の物理ポート66から生成したVNIC113と、SR-IOV対応NICデバイス166のVF111に同一のMACアドレスを割り当てて冗長構成とした仮想計算機110でVF111の通信をVNIC113へ切り替えてライブマイグレーションを実施することが可能となる。
 また、ライブマイグレーションの冗長構成用に、SR-IOV対応NICデバイス166のVFとVNICのそれぞれについて異なる物理NIC(物理ポート)を用意する必要がなくなるため、コストを削減することができる。
 なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に記載したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加、削除、又は置換のいずれもが、単独で、又は組み合わせても適用可能である。
 また、上記の各構成、機能、処理部、及び処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、及び機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、SSD(Solid State Drive)等の記録装置、または、ICカード、SDカード、DVD等の記録媒体に置くことができる。
 また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。

Claims (8)

  1.  プロセッサと、メモリと、物理機能と仮想機能を含むSR-IOVに対応した第1の物理ネットワークデバイスと、を有する第1の物理計算機と、
     プロセッサと、メモリと、物理機能と仮想機能を含むSR-IOVに対応した第2の物理ネットワークデバイスと、を有する第2の物理計算機と、
     前記第1の物理計算機の計算機資源を1つ以上の仮想計算機に割り当てる第1の仮想化部と、
     前記第2の物理計算機の計算機資源を1つ以上の仮想計算機に割り当てる第2の仮想化部と、を有する仮想計算機システムであって、
     前記第1の仮想化部が、前記仮想計算機のうちの第1の仮想計算機に第1のソフトウェア仮想NICを割り当て、前記第1の仮想計算機に前記第1の物理ネットワークデバイスの仮想機能を割り当て、前記第1のソフトウェア仮想NICと前記仮想機能に同一のネットワークアドレスを設定してから、前記仮想機能をアクティブに設定し、
     前記第1の仮想計算機で稼働するゲストOSが、前記仮想機能を経由して通信を実行し、
     前記第1の仮想化部が、ライブマイグレーションの指令を受信すると、前記仮想機能を遮断し、
     前記第1の仮想化部が、前記第1のソフトウェア仮想NICをアクティブに変更し、前記仮想機能のネットワークアドレスを予め設定したダミーアドレスに変更し、
     前記第1の仮想計算機のゲストOSが、前記第1のソフトウェア仮想NICを経由して通信を実行し、
     前記第1の仮想化部が、前記第1の仮想計算機に割り当てた計算機資源としての第1の仮想メモリの内容を前記第2の仮想化部へコピーすることを特徴とする仮想計算機システム。
  2.  請求項1に記載の仮想計算機システムであって、
     前記第1の仮想化部が、前記第1の仮想メモリの内容のコピーが完了すると、前記第1の仮想計算機を停止させ、前記第2の仮想化部へ移動の通知を送信し、
     前記第2の仮想化部は、受信した前記第1の仮想メモリの内容に基づいて前記第1の仮想計算機の処理を再開し、前記仮想機能のダミーアドレスを元の前記ネットワークアドレスに戻すことを特徴とする仮想計算機システム。
  3.  請求項2に記載の仮想計算機システムであって、
     前記第2の仮想化部は、前記仮想機能のダミーアドレスを元の前記ネットワークアドレスに戻す際に、前記再開した第1の仮想計算機から前記仮想機能をホットリムーブによって取り外してから、当該仮想機能のダミーアドレスを元のネットワークアドレスに変更し、ホットアドによって当該仮想機能を前記第1の仮想計算機へ再度接続することを特徴とする仮想計算機システム。
  4.  請求項1に記載の仮想計算機システムであって、
     前記第1の仮想化部は、前記物理機能と、第2のソフトウェア仮想NICを割り当てた管理用仮想機能を稼働させ、前記第1のソフトウェア仮想NICと第2のソフトウェア仮想NICを接続する仮想スイッチを提供し、前記物理機能をプロミスキャスモードで稼働させて、前記第1のソフトウェア仮想NICと前記第2の物理ネットワークデバイスとを相互に接続することを特徴とする仮想計算機システム。
  5.  プロセッサと、メモリと、物理機能と仮想機能を含むSR-IOVに対応した第1の物理ネットワークデバイスと、を有する第1の物理計算機の計算機資源を1つ以上の仮想計算機に割り当てる第1の仮想化部と、プロセッサと、メモリと、物理機能と仮想機能を含むSR-IOVに対応した第2の物理ネットワークデバイスと、を有する第2の物理計算機の計算機資源を1つ以上の仮想計算機に割り当てる第2の仮想化部が、前記第1の物理計算機の仮想計算機を前記第2の物理計算機へ移動させる仮想計算機のマイグレーション方法であって、
     前記第1の仮想化部が、前記仮想計算機のうちの第1の仮想計算機に第1のソフトウェア仮想NICを割り当て、前記第1の仮想計算機に前記第1の物理ネットワークデバイスの仮想機能を割り当て、前記第1のソフトウェア仮想NICと前記仮想機能に同一のネットワークアドレスを設定してから、前記仮想機能をアクティブに設定する第1のステップと、
     前記第1の仮想計算機で稼働するゲストOSが、前記仮想機能を経由して通信を実行する第2のステップと、
     前記第1の仮想化部が、ライブマイグレーションの指令を受信すると、前記仮想機能を遮断する第3のステップと、
     前記第1の仮想化部が、前記第1のソフトウェア仮想NICをアクティブに変更し、前記仮想機能のネットワークアドレスを予め設定したダミーアドレスに変更する第4のステップと、
     前記第1の仮想計算機のゲストOSが、前記第1のソフトウェア仮想NICを経由して通信を実行する第5のステップと、
     前記第1の仮想化部が、前記第1の仮想計算機に割り当てた計算機資源としての第1の仮想メモリの内容を前記第2の仮想化部へコピーする第6のステップと、
    を含むことを特徴とする仮想計算機のマイグレーション方法。
  6.  請求項5に記載の仮想計算機のマイグレーション方法であって、
     前記第1の仮想化部が、前記第1の仮想メモリの内容のコピーが完了すると、前記第1の仮想計算機を停止させて、前記第2の仮想化部へ移動の通知を送信する第7のステップと、
     前記第2の仮想化部が、受信した前記第1の仮想メモリの内容に基づいて前記第1の仮想計算機の処理を再開し、前記仮想機能のダミーアドレスを元の前記ネットワークアドレスに戻す第8のステップと、
    をさらに含むことを特徴とする仮想計算機のマイグレーション方法。
  7.  請求項6に記載の仮想計算機のマイグレーション方法であって、
     前記第8のステップは、
     前記第2の仮想化部が、前記再開した第1の仮想計算機から前記仮想機能をホットリムーブによって取り外すステップと、
     前記第2の仮想化部が、当該仮想機能のダミーアドレスを元のネットワークアドレスに変更するステップと、
     前記第2の仮想化部が、ホットアドによって前記再開した第1の仮想計算機に前記仮想機能を再度接続するステップと、
    を含むことを特徴とする仮想計算機のマイグレーション方法。
  8.  請求項5に記載の仮想計算機のマイグレーション方法であって、
     前記第1の仮想化部が、前記物理機能と、第2のソフトウェア仮想NICを割り当てた管理用仮想機能を稼働させ、前記第1のソフトウェア仮想NICと第2のソフトウェア仮想NICを接続する仮想スイッチを提供し、前記物理機能をプロミスキャスモードで稼働させて、前記第1のソフトウェア仮想NICと前記第2の物理ネットワークデバイスとを相互に接続するステップをさらに含むことを特徴とする仮想計算機のマイグレーション方法。
PCT/JP2016/082391 2016-11-01 2016-11-01 仮想計算機システム及び仮想計算機のマイグレーション方法 WO2018083724A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/JP2016/082391 WO2018083724A1 (ja) 2016-11-01 2016-11-01 仮想計算機システム及び仮想計算機のマイグレーション方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2016/082391 WO2018083724A1 (ja) 2016-11-01 2016-11-01 仮想計算機システム及び仮想計算機のマイグレーション方法

Publications (1)

Publication Number Publication Date
WO2018083724A1 true WO2018083724A1 (ja) 2018-05-11

Family

ID=62075554

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2016/082391 WO2018083724A1 (ja) 2016-11-01 2016-11-01 仮想計算機システム及び仮想計算機のマイグレーション方法

Country Status (1)

Country Link
WO (1) WO2018083724A1 (ja)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010237737A (ja) * 2009-03-30 2010-10-21 Nec Corp パススルーi/oデバイスを伴うlparの動的マイグレーション装置、その方法及びそのプログラム
JP2013125284A (ja) * 2011-12-13 2013-06-24 Hitachi Ltd 仮想計算機システムおよび仮想計算機の移行制御方法
US20160127495A1 (en) * 2014-10-30 2016-05-05 Oracle International Corporation System and method for providing a dynamic cloud with subnet administration (sa) query caching
JP2016513308A (ja) * 2013-12-31 2016-05-12 華為技術有限公司Huawei Technologies Co.,Ltd. 仮想マシンのライブマイグレーション方法、仮想マシンのメモリデータ処理方法、サーバ及び仮想マシンシステム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010237737A (ja) * 2009-03-30 2010-10-21 Nec Corp パススルーi/oデバイスを伴うlparの動的マイグレーション装置、その方法及びそのプログラム
JP2013125284A (ja) * 2011-12-13 2013-06-24 Hitachi Ltd 仮想計算機システムおよび仮想計算機の移行制御方法
JP2016513308A (ja) * 2013-12-31 2016-05-12 華為技術有限公司Huawei Technologies Co.,Ltd. 仮想マシンのライブマイグレーション方法、仮想マシンのメモリデータ処理方法、サーバ及び仮想マシンシステム
US20160127495A1 (en) * 2014-10-30 2016-05-05 Oracle International Corporation System and method for providing a dynamic cloud with subnet administration (sa) query caching

Similar Documents

Publication Publication Date Title
US10789006B1 (en) Path-based data migration from source device to target device
US10936335B2 (en) Path-based migration of control of a multi-path logical device from a current MPIO driver to a target MPIO driver
US11126358B2 (en) Data migration agnostic of pathing software or underlying protocol
EP3173937B1 (en) Pcie network system with fail-over capability and operation method thereof
JP6185045B2 (ja) インフィニバンドネットワークにおけるバーチャルマシーンのライブマイグレーションをサポートするためのシステムおよび方法
JP5222651B2 (ja) 仮想計算機システムおよび仮想計算機システムの制御方法
TWI439867B (zh) 動態實體及虛擬多重路徑輸入/輸出
US9164795B1 (en) Secure tunnel infrastructure between hosts in a hybrid network environment
JP6055310B2 (ja) 仮想記憶ターゲットオフロード技術
US8171176B2 (en) Method for selective replication of physical devices on a virtual self-configuring zoning expander
JP5692065B2 (ja) 計算機システムにおける仮想装置の高速移動システム及び管理装置並びにその方法及びそのプログラム
US8473692B2 (en) Operating system image management
JP5262404B2 (ja) 複合型計算機及び複合型計算機の制御方法
EP3985504B1 (en) Virtual machine migration
US9928107B1 (en) Fast IP migration in a hybrid network environment
EP3338194B1 (en) Multichannel input/output virtualization
JP5742387B2 (ja) 情報処理システム、及びi/oスイッチ装置
JP2008225546A (ja) 仮想装置構成システム、及びその方法
US20130283264A1 (en) Method for selective replication of physical devices on a virtual self-configuring zoning expander
US20130152083A1 (en) Virtual computer system and control method of migrating virtual computer
US20210089379A1 (en) Computer system
JP2014195178A (ja) 情報処理装置、送信制御方法および送信制御プログラム
US8838768B2 (en) Computer system and disk sharing method used thereby
Guay et al. Early experiences with live migration of SR-IOV enabled InfiniBand
JP6219514B2 (ja) 仮想マルチパス状態アクセスを提供するコンピューティングデバイス、仮想マルチパス用のリモートコンピューティングデバイス、仮想マルチパス状態アクセスを提供する方法、仮想マルチパス用の方法、コンピューティングデバイス、コンピューティングデバイスに複数の方法を実行させるプログラム、及び、機械可読記録媒体

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: 16920793

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: 16920793

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP