WO2017068770A1 - コンピュータ、デバイス割当管理方法及びプログラム記録媒体 - Google Patents
コンピュータ、デバイス割当管理方法及びプログラム記録媒体 Download PDFInfo
- Publication number
- WO2017068770A1 WO2017068770A1 PCT/JP2016/004595 JP2016004595W WO2017068770A1 WO 2017068770 A1 WO2017068770 A1 WO 2017068770A1 JP 2016004595 W JP2016004595 W JP 2016004595W WO 2017068770 A1 WO2017068770 A1 WO 2017068770A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- virtual machine
- identifier
- assigned
- interface
- pci
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4411—Configuring for operating with peripheral devices; Loading of device drivers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45575—Starting, stopping, suspending or resuming virtual machine instances
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45579—I/O management, e.g. providing access to device drivers or storage
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45591—Monitoring or debugging support
Definitions
- the present invention relates to a technique for managing an I / O fabric of a computer.
- the present invention relates to a computer, a device allocation management method, and a program recording medium for connecting a number of I / O devices that cannot be accommodated in a computer case over a network.
- VMs virtual machines
- CPU Central Processing Unit
- memory installed in one server
- each virtual machine is provided with virtual hardware, that is, a virtual CPU, memory, disk device, I / O device, etc., and each virtual machine is as if it were real hardware. As if, use these virtual hardware. Therefore, when each virtual machine uses virtual hardware, a management program called a hypervisor or virtual machine monitor (VMM: Virtual Machine Monitor), which is one of the main components of server virtualization technology, Trap access to virtual machine hardware and provide appropriate access to real hardware resources. For this reason, when the virtual machine performs some processing, the overhead of the virtual machine monitor is added, so that the performance of the virtual machine is generally lower than that of an OS running on real hardware.
- VMM Virtual Machine Monitor
- PCI passthrough allows a specific virtual machine to have direct access to an I / O device connected to the PCI bus or PCI-Express fabric, reducing the overhead of the virtual machine monitor.
- the PCI pass-through technique will be described below.
- an I / O device is assumed to refer to an endpoint in PCI-Express.
- SR-IOV Single Root-I / O Virtualization
- An I / O device compatible with SR-IOV includes a plurality of host interfaces, and each host interface is assigned to a virtual machine, thereby enabling a single I / O device to be shared from a plurality of virtual machines.
- SR-IOV is often used in an Ethernet (registered trademark) NIC (Network Interface Controller), and is rarely used in an I / O device other than a NIC, such as a disk controller or a graphics card.
- PCI pass-through and SR-IOV are collectively referred to as “pass-through technology”
- pass-through technology is not only in terms of performance, but also allows the virtual machine to use the functions provided by the hardware of the I / O device.
- Virtual hardware normally used by virtual machines is often imitated from older hardware, and generally has only simple functions. For example, a TCP (Transmission Control Protocol) offload function, etc., as provided in a high-end Ethernet (registered trademark) NIC cannot be used.
- TCP Transmission Control Protocol
- an I / O device is directly assigned to a virtual machine, so that the virtual machine can use such an offload function.
- FIG. 24 shows an example of a PCI-Express fabric.
- the PCI-Express fabric 200 includes the PCI-Express Root Complex 201 as the root of the fabric, the PCI-Express Root Complex 201, the PCI-Express endpoints 202 to 207, and the PCI-Express switches 208 to 207. 209 is connected via PCI-Express links 210-217.
- PCI-Express Root Complex PCI-Express end point
- PCI-Express switch PCI-Express switch
- the initial setting method described below is a method performed by a general-purpose OS such as a general PC (Personal Computer) and Linux (registered trademark), but other initial setting methods are also possible. .
- BIOS Basic Input / Output System
- OS searches the PCI-Express fabric 200. This search is performed to detect and set all the PCI-Express devices in the PCI-Express fabric 200.
- a PCI-Express device is identified by three numbers called BDF (Bus, Device, Function) (bus number (0 to 255), device number (0 to 31), and function number (0 to 7)).
- BDF Bus, Device, Function
- the function number is a number used for identifying each function when the same PCI-Express device has a plurality of functions.
- FIG. 25 is a block diagram schematically showing the internal configuration of the PCI-Express Root Complex 201.
- the PCI-Express Root Complex 201 includes a PCI Compatible Host Bridge Device, a PCI-PCI Bridge (Root PCI-Express Port), and a Root Complex Register (Root Complex Register). Due to these connections, the PCI-Express Root Complex consumes one bus number internally. Since the PCI-Express Root Complex is a device located at the root of the PCI-Express fabric, the bus number to be consumed is “0”.
- FIG. 26 is a block diagram simply showing the internal configuration of the PCI-Express switches 208-209.
- PCI-Express switches 208 to 209 include PCI-PCI Bridge (Upstream PCI-Express Port, upstream port), PCI-PCI Bridge (Downstream PCI-Express Port, downstream port). Due to these connections, the PCI-Express switches 208 to 209 consume one bus number internally.
- upstream means a direction approaching the PCI-Express Root Complex 201 side on the PCI-Express fabric.
- the downstream means a direction away from the PCI-Express Root Complex 201 on the PCI-Express fabric.
- FIG. 26 shows the case where there are two downstream ports, but there may be three downstream ports.
- PCI-Express devices are not connected by bus, but are point-to-point connection by switches, so PCI-to-PCI Bridge of PCI-Express Root Complex 201 or PCI-Express switch 208-209.
- PCI-PCI Bridge Downstream PCI-Express Port
- PCI-Express switch a different bus number is assigned to each link.
- An initial setting program such as BIOS or OS performs a process of reading a vendor ID (IDentification) of a PCI-Express device to each device number of bus number 0.
- the vendor ID is stored in a register group called a PCI configuration space of the PCI-Express device. If this value is not 0xFFFF (0x is a prefix indicating a hexadecimal number), it indicates that some PCI-Express device is connected.
- the initial setting program executes the setting for the PCI-Express device.
- Read class code The class code is also stored in the PCI configuration space. The type of the device such as whether the PCI-Express device is a video output device is known from the class code.
- the class code is a device that connects links of different bus numbers such as a PCI-Express switch, it can be seen that there may be another PCI-Express device downstream of the currently searched bus number.
- the initial setting program stores an I / O area, a memory in the PCI-Express endpoint. Allocate space. This assignment is realized by setting a BAR (Base Address Register) included in the PCI configuration space of the PCI-Express device.
- BAR Base Address Register
- the BAR of the PCI-Express endpoint is provided with a maximum of 6 from 0 to 5, and holds information on the I / O area and memory area required by the PCI-Express endpoint.
- the initial setting program writes 0xFFFFFF to BAR0 and reads the value of BAR0. Then, it can be determined from the read value whether an I / O area or a memory area is required, how much area is required, and the like.
- the initial setting program writes the base address in BAR0 according to the request. The range from this base address to the value obtained by adding the size requested by the PCI-Express endpoint to the base address is the I / O area or memory area allocated to this PCI-Express endpoint.
- the BAR is set so that there is no overlap between PCI-Express end points.
- the initial setting program performs the same processing for BAR1 to BAR5. Furthermore, the initial setting program also sets the command register, cache line size register, and latency timer register in the PCI configuration space.
- the initial setting program is a PCI-Express end.
- BAR is set in the same way as the point. In the case of a bridge device, the maximum number of BARs is 0 to 1.
- the initial setting program sets the command register, cache line size register, and latency timer register in the PCI configuration space of the bridge device. Further, the primary bus number register, secondary bus number register, and subordinate bus number register are set.
- the primary bus number refers to the number of the bus existing on the upstream side of the own bridge device
- the secondary bus number refers to the number of the bus existing on the downstream side of the own bridge device.
- the subordinate bus number indicates the bus number of the link having the largest bus number among the links existing downstream of the own bridge device. Since detection of all devices has not been completed at this point, the maximum value 0xFF is set as the subordinate number.
- the initial setting program sets the memory base address register and the I / O base address register.
- the memory base address register indicates the start address of the memory space allocated to the secondary bus side
- the I / O base address register indicates the start address of the I / O space allocated to the secondary bus side.
- the initial setting program searches for a PCI-Express device connected downstream of this device.
- the final subordinate bus number is determined in the order of the PCI-Express switches 209 and 208.
- the values of the memory limit address and the I / O limit address are also determined, and these are stored in appropriate positions of the PCI configuration register.
- the memory limit address is the size of the memory space allocated to the secondary bus side
- the I / O limit address is the size of the I / O space allocated to the secondary bus side.
- the initial setting program completes the setting of the PCI-Express fabric.
- the initial setting program first sets the PCI-Express Root Complex 201. Subsequently, the initial setting program includes a PCI-Express endpoint 202, a PCI-Express endpoint 203, a PCI-Express switch 208, a PCI-Express endpoint 204, a PCI-Express switch 209, a PCI-Express endpoint 206, and a PCI- Setting is made in the order of the Express end point 207 and the PCI-Express switch 209.
- an I / O limit address, a memory limit address, and a subordinate number are set.
- the initial setting program performs setting in the order of the PCI-Express end point 205 and the PCI-Express switch 208.
- an I / O limit address, a memory limit address, and a subordinate number are set.
- the initial setting program sets an I / O limit address, a memory limit address, and a subordinate number for the PCI-Express Root Complex 201.
- the initial setting program when the initial setting program accesses the PCI configuration space of the PCI-Express device, the initial setting program issues a configuration read request or a configuration write request.
- a BDF number is written as information for identifying a destination device.
- the PCI Express device side holds the destination BDF number included in the configuration write request as its own BDF number.
- This BDF number is written in the request as information indicating the source PCI-Express device when a request such as a memory read request or a memory write request is issued from the PCI-Express device side.
- the number of virtual machines running on one server will gradually increase, and if one or more I / O devices are to be assigned to each virtual machine using PCI pass-through or SR-IOV, it will be necessary for the server and PC chassis It is expected that a large number of I / O devices cannot be provided.
- the server is 2U (case thickness: 8.89 cm)
- 5 to 6 I / O devices can be installed, but the number of I / O devices that can be installed is too large compared to the number of virtual machines. Few.
- Non-Patent Document 1 and Non-Patent Document 2 disclose products based on such technology.
- Non-Patent Document 1 is based on an I / O card simulating the upstream function of a PCI-Express switch, an I / O expansion box simulating a downstream function, and an Ethernet (registration) for connecting them.
- the PCI-Express fabric extends outside the housing.
- the technique disclosed in Non-Patent Document 2 is to extend a PCI-Express fabric out of a casing with an I / O card and a cable that extend a PCI-Express signal.
- Non-Patent Documents 1 and 2 there is a problem that a necessary number of I / O devices may not be allocated to a virtual machine using the pass-through technology. The reason will be described below.
- the I / O device is identified by the BDF number in the PCI-Express fabric.
- a unique BDF number is also assigned to a bridge device that connects PCI-Express links having different bus numbers.
- the function number is a number for distinguishing functions when the same PCI-Express device has a plurality of functions (functions). Therefore, the unit of I / O device is identified by the bus number (B) and device number (D) among the BDF numbers.
- Non-Patent Documents 1 and 2 are technologies for increasing the number of I / O devices that can be mounted on one server or PC, and the number of I / O devices that can be connected to the PCI-Express fabric is increased. It is not a technology to increase. Therefore, the above problem cannot be solved. The same problem may occur in a PCI fabric in which the number of connected I / O devices is limited by a predetermined specification, not limited to the PCI-Express fabric.
- the present invention has been made in view of the above-described problems, and is a computer and device allocation management method capable of increasing the number of I / O devices connected to a PCI fabric whose specifications are determined in advance. And a program recording medium for causing a computer to execute the program.
- the computer of the present invention provides: A storage unit that holds an I / O device list for managing assignment of I / O devices connected to the computer via a network to a virtual machine operating on the computer; A virtual machine monitor that identifies an I / O device necessary for the operation of the virtual machine; If there is an I / O device that can be assigned to the virtual machine by determining whether or not the I / O device specified by the virtual machine monitor can be assigned to the virtual machine with reference to the I / O device list.
- An I / O device that allocates the I / O device to the virtual machine and registers an identifier assigned to the I / O device based on a predetermined specification together with the identifier of the virtual machine in the storage unit With the manager, It is the structure which has.
- the device allocation management method of the present invention is a device allocation management method by a computer, Storing an I / O device list for managing allocation to a virtual machine operating on the computer with respect to an I / O device connected to the computer via a network; Identify the I / O devices necessary for the operation of the virtual machine, Determining whether the specified I / O device can be assigned to the virtual machine with reference to the I / O device list; When there is an I / O device that can be assigned to the virtual machine, the I / O device is assigned to the virtual machine, and an identifier assigned to the I / O device based on a predetermined specification is assigned to the virtual machine. It is registered in the storage unit together with the machine identifier.
- the program recording medium of the present invention is stored in a computer.
- the I / O device is assigned to the virtual machine, and an identifier assigned to the I / O device based on a predetermined specification is assigned to the virtual machine.
- a program for executing a procedure to be registered in the storage unit is recorded together with the machine identifier.
- the number of I / O devices that can be connected can be increased without being limited to a specification predetermined for the PCI fabric.
- 2 shows an example of the configuration of an address range table according to the first embodiment of the present invention.
- 3 shows an example of the configuration of a BDF number correspondence table according to the first embodiment of the present invention.
- It is a block diagram which shows the example of 1 structure of the I / O device manager which concerns on the 1st Embodiment of this invention.
- 2 shows a configuration example of a MAC address table according to the first embodiment of the present invention.
- FIG. 2 shows an example of the configuration of an I / O device setting content holding table according to the first embodiment of the present invention.
- 3 shows an example of the configuration of an I / O device list according to the first embodiment of the present invention.
- 2 shows a configuration example of a MAC address reverse lookup table according to the first embodiment of the present invention.
- FIG. 3 is a sequence diagram showing operations of a virtual machine monitor, a virtual machine, an I / O device manager, an I / O side network interface, and an I / O device when starting a virtual machine according to the first embodiment of the present invention. It is.
- FIG. 5 is a sequence diagram illustrating a processing flow when a memory read / write request is issued from the virtual machine to the I / O device according to the first embodiment of the present invention.
- FIG. 5 is a sequence diagram illustrating a processing flow when a memory read / write request is issued from the I / O device to the virtual machine according to the first embodiment of the present invention. It is a block diagram which shows the example of 1 structure of the virtual machine monitor which concerns on the 2nd Embodiment of this invention.
- 7 shows an example of the configuration of a BDF number table according to the second embodiment of the present invention. 7 shows an example of the configuration of an I / O device allocation list according to the second embodiment of the present invention. 2 shows an example of the configuration of an I / O device manager according to a second embodiment of the present invention.
- FIG. 10 is a sequence diagram illustrating operations of a virtual machine monitor, a virtual machine, an I / O device manager, and an I / O device when starting a virtual machine according to the second embodiment of the present invention.
- FIG. 10 is a sequence diagram illustrating a processing flow when a memory read / write request is issued from a virtual machine to an I / O device according to the second embodiment of the present invention. It is a block diagram which shows the example of 1 structure of the computer system which concerns on the 3rd Embodiment of this invention. It is a block diagram which shows the example of 1 structure of the computer system which concerns on the 4th Embodiment of this invention.
- FIG. 25 is a block diagram schematically showing an internal configuration of a PCI-Express Root Complex shown in FIG. 24.
- FIG. 25 is a block diagram schematically showing an internal configuration of a PCI-Express switch shown in FIG. 24.
- FIG. 1 is a block diagram showing a configuration example of a computer system according to the first embodiment of the present invention.
- a computer system 1 includes a hardware 2, a virtual machine monitor 3, a virtual machine 4, an I / O device manager 5, an I / O side network interface 6, a network 7, and an I / O. O device 8.
- the I / O device 8 is a PCI-Express endpoint, and the network 7 is an Ethernet (registered trademark).
- the present invention an essential element. It is not intended to be limiting.
- the hardware 2 includes a CPU, a memory, a disk device, and a network interface card (NIC) 21 which are basic elements (not shown) constituting the computer.
- FIG. 1 shows that in the hardware 2, the virtual machine 4, the I / O device manager 5, and the virtual machine monitor 3 are virtually configured by the CPU executing a program.
- the virtual machine monitor 3 has a function of providing virtual hardware to the virtual machine 4 and allocating resources of the hardware 2 when the virtual machine 4 uses the virtual hardware.
- a method for realizing the virtual machine monitor 3 as software that operates on a general-purpose OS such as Linux (registered trademark), and a method for realizing it as dedicated software that also has functions of an OS that operates on a computer.
- the former include KVM (Kernel-based Virtual Machine), and examples of the latter include XenServer and VMware. The following description is based on the former configuration, but this is not intended to limit the present invention to a server virtualization environment having such a configuration.
- the virtual machine 4 is a virtual machine environment that operates under the control of the virtual machine monitor 3.
- the OS By installing the OS on the virtual hardware provided from the virtual machine monitor 3, it is possible to use the OS as if it is operating in a real computer environment.
- control by the virtual machine monitor 3 intervenes.
- a virtual address guest virtual address (Guest Virtual Address)
- a physical address guest physical address (Guest Physical Address)
- the virtual machine monitor 3 detects memory access of the virtual machine 4 using the guest physical address, and the virtual address (host virtual address, Host Virtual address) of the virtual machine monitor is detected as the guest physical address. Address), or a physical address (host physical address, Host Physical Address).
- guest virtual address Guest Virtual address
- Host Physical Address guest physical address
- the virtual machine monitor 3 detects memory access of the virtual machine 4 using the guest physical address, and the virtual address (host virtual address, Host Virtual address) of the virtual machine monitor is detected as the guest physical address. Address), or a physical address (host physical address, Host Physical Address).
- When converted to a host virtual address it is further converted to a host physical address. Through such conversion, the virtual machine 4 can perform memory access.
- the I / O device manager 5 is a module that manages the I / O device 8.
- the I / O device 8 is connected to the I / O device manager 5 via the I / O side network interface 6, the network 7 and the NIC 21.
- the I / O device manager 5 performs initial setting of the I / O device 8 and control of data transfer requests with the I / O device 8.
- the initial setting of the I / O device 8 refers to setting of a value in a PCI configuration space register such as a BAR that the I / O device 8 has.
- the data transfer request between the I / O device manager 5 and the I / O device 8 includes types of memory read / write request, I / O read / write request, message request, and completion. Each of these has its own format.
- the memory read / write request means a memory read request and a memory write request.
- the I / O read / write request means an I / O read request and an I / O write request.
- the I / O device manager 5 In response to a request, the I / O device manager 5 generates a packet (TLP (Transaction Layer Protocol) packet) according to each format, encapsulates the TLP packet in an Ethernet frame, and transmits the encapsulated frame. Do. The I / O device manager 5 extracts the TLP packet from the Ethernet frame received from the I / O device 8 and notifies the virtual machine monitor 3 of the content of the TLP packet.
- TLP Transaction Layer Protocol
- the I / O device manager 5 is shown as a separate component from the virtual machine monitor 3, but the I / O device manager 5 may be included in the virtual machine monitor 3. It is.
- the I / O side network interface 6 is an interface for connecting the I / O device 8 to the network 7.
- the I / O side network interface 6 is provided for each I / O device 8.
- Ethernet registered trademark
- the I / O side network interface 6 has a unique MAC (Media Access Control) address.
- the I / O side network interface 6 has a function of extracting a TLP packet from the Ethernet frame transmitted from the I / O device manager 5.
- the I / O side network interface 6 has a function of encapsulating the TLP packet from the I / O device 8 with an Ethernet frame and transmitting it to the I / O device manager 5.
- the I / O side network interface 6 has a function of holding the MAC address of the NIC 21 so that the I / O device 8 can transmit a TLP packet. Further, the I / O side network interface 6 can reset (initialize) the connected I / O device 8 in response to a request from the I / O device manager 5 side.
- the network 7 is a general-purpose computer network, and is Ethernet (registered trademark) in this embodiment.
- the network 7 is composed of cables and switches.
- the network 7 connects the NIC 21 and the I / O side network interface 6.
- the I / O device 8 is originally an I / O device connected to an expansion bus of a computer, and corresponds to a PCI-Express endpoint in this embodiment.
- Examples of the I / O device 8 include a NIC, a GPU (Graphics Processing Unit) card, a RAID (Redundant Arrays of Independent Disks) controller, a sound card, and the like.
- the I / O device 8 When the I / O device 8 is initialized from the I / O device manager 5, the BDF number is notified.
- the I / O device 8 is identified by a set of an identifier of the I / O side network interface 6 and a BDF number.
- the identifier of the I / O side network interface 6 is a MAC address.
- the I / O side network interface 6 is a network interface corresponding to the network, and an identifier defined by the network is an identifier of the I / O side network interface 6.
- the I / O side network interface 6 is a network interface corresponding to the InfiniBand protocol, and has an identifier called GUID (Globally Unique Identifier).
- FIG. 2 is a block diagram showing a configuration example of the virtual machine monitor according to the first embodiment of the present invention.
- the virtual machine monitor 3 includes a virtual machine interface 31, a request issue destination determination unit 32, an I / O device allocation unit 33, an I / O device manager interface 34, an address range table 35, and a BDF number correspondence table 36. , A NIC driver 37, and a resource file holding unit 38.
- the virtual machine interface 31 is an interface for exchanging data between the virtual machine 4 and the virtual machine monitor 3. For example, the virtual machine interface 31 is used to notify the virtual machine 4 of information on resources to be allocated to the virtual machine 4 when the virtual machine monitor 3 starts the virtual machine 4. The virtual machine interface 31 is used for the virtual machine monitor 3 to receive a request from the virtual machine 4 when the virtual machine 4 uses the I / O device 8.
- the request issuance destination determination unit 32 is configured to manage the request issuance destination by the virtual machine monitor 3 based on information included in the request. Whether the I / O device or the I / O device 8 managed by the I / O device manager 5 is determined.
- the request issue destination determination unit 32 determines whether the virtual machine monitor 3 and the I / O device manager 5 are based on the BDF number or the memory address according to the request type from the virtual machine 4 to the I / O device 8. It is determined which is a request to the managed I / O device.
- the I / O device allocation unit 33 has a function of allocating the I / O device 8 managed by the I / O device manager 5 to the virtual machine 4.
- the virtual machine monitor 3 designates an identifier (BDF number or the like) of the I / O device to be allocated by the PCI pass-through technology.
- the designation method includes a method of performing an operation on a GUI (Graphical User Interface) tool designated by a command line option.
- the I / O device allocation unit 33 allocates the I / O device 8 managed by the I / O device manager 5 to the virtual machine 4, the I / O device allocation unit 33 assigns the I / O device 8 to any virtual machine 4 by any method and any type / spec of I / O. Information about whether to allocate the O device 8 is received from an external module (not shown) of the I / O device allocation unit 33.
- the I / O device allocation unit 33 inquires of the I / O device manager 5 whether or not the I / O device 8 of the type / spec specified by the external module can be used. When the I / O device allocation unit 33 is notified from the I / O device manager 5 that it can be used, the I / O device manager 5 performs a search for an I / O device when the virtual machine 4 is started. The virtual machine 4 is notified of the presence of the I / O device 8 by using the identifier and resource information of the I / O device 8 included in the notification from.
- the I / O device manager interface 34 is an interface for exchanging data between the virtual machine monitor 3 and the I / O device manager 5.
- the I / O device manager interface 34 can be realized by a communication interface such as a socket.
- the I / O device manager interface 34 is used when the virtual machine monitor 3 inquires of the I / O device manager 5 whether the I / O device 8 assigned to the virtual machine 4 is available.
- the I / O device manager interface 34 transfers a request when a request from the virtual machine 4 to the I / O device is addressed to the I / O device 8 managed by the I / O device manager 5. used.
- the address range table 35 shown in FIG. 2 will be described.
- the address range table 35 is a table that holds information set in the BAR of the I / O device 8 assigned to the virtual machine 4.
- the address range table 35 is provided for each virtual machine 4. An entry is added to the address range table 35 when the virtual machine monitor 3 traps data transmitted and received when the virtual machine 4 sets the BAR of the I / O device 8 when the virtual machine 4 is started. .
- FIG. 3 shows a configuration example of the address range table according to the first embodiment of the present invention.
- the address range table 35 includes a start address, an end address, a physical BDF number, and a BAR number information as a set. If there is an entry in this table, it means that the I / O device 8 managed by the I / O device manager 5 has been accessed.
- the address range table 35 receives an address value and outputs a physical BDF number and a BAR number corresponding to an address range in which the address is not less than the start address and not more than the end address.
- the start address is an address set in the BAR
- the end address is an address obtained by adding the size requested by the I / O device 8 having the BAR to the start address.
- the physical BDF number is a BDF number set in the BAR of the I / O device 8 by the I / O device manager 5.
- the BDF number used by the virtual machine 4 is referred to as a virtual BDF number.
- the BAR number means a number from 0 to 5 of a BAR provided in a plurality of I / O devices 8.
- the BDF number correspondence table 36 shown in FIG. 2 will be described.
- the BDF number correspondence table 36 is a table that holds correspondence between virtual BDF numbers and physical BDF numbers.
- the BDF number correspondence table 36 is provided for each virtual machine 4.
- the BDF number correspondence table 36 is entered by the virtual machine monitor 3 trapping data transmitted when the virtual machine 4 sets the PCI configuration register of the I / O device 8 when the virtual machine 4 is started. Is added.
- FIG. 4 shows a configuration example of the BDF number correspondence table according to the first embodiment of the present invention.
- the BDF number correspondence table 36 includes information on virtual BDF numbers and physical BDF numbers as a set.
- the virtual BDF number is input and the physical BDF number is output.
- the NIC driver 37 and the resource file holding unit 38 shown in FIG. 2 will be described.
- the NIC driver 37 is a driver for the NIC 21.
- the resource file holding unit 38 has a function of holding the value set in the PCI configuration register of the I / O device 8 by the I / O device manager 5 as a resource file.
- the resource file is managed as a combination of the identifier of the virtual machine 4 and the physical BDF number assigned to the I / O device 8.
- the file configuration and file format of the resource file can conform to the file configuration and file format of the resource file of the I / O device locally connected to the virtual machine monitor 3.
- the virtual machine monitor 3 is constructed with a Linux (registered trademark) -based system, it is assumed that the file system and file format under the / sys / bus / pci / devices / ⁇ BDF number> directory are followed. Can do.
- FIG. 5 is a block diagram showing a configuration example of the I / O device manager according to the first embodiment of the present invention.
- the I / O device manager 5 includes a virtual machine monitor interface 51, an I / O device setting unit 52, a request control unit 53, a NIC driver interface 54, a MAC address table 55, an I / O An O device setting content holding table 56, an I / O device list 57, and a MAC address reverse lookup table 58 are included.
- the virtual machine monitor interface 51 is an interface for exchanging data between the virtual machine monitor 3 and the I / O device manager 5.
- the virtual machine monitor interface 51 can be realized by a communication interface such as a socket.
- the virtual machine monitor interface 51 is used when the virtual machine monitor 3 receives an inquiry from the virtual machine monitor 3 as to whether the I / O device 8 assigned to the virtual machine 4 is available.
- the virtual machine monitor interface 51 is used to receive a request addressed to the I / O device 8 from the virtual machine 4 via the virtual machine monitor 3.
- the I / O device setting unit 52 has a function of performing initial setting of the I / O device 8.
- the initial setting of the I / O device 8 means setting a value in the PCI configuration register and assigning a physical BDF number.
- the physical BDF number can have an independent number space for each virtual machine 4 and can be set so that the same physical BDF number is used between the virtual machines 4.
- the I / O device setting unit 52 searches the I / O device list 57 in response to an inquiry from the virtual machine monitor 3 as to whether the I / O device 8 is available, and the I / O device 8 that matches the condition. Perform initial settings for. Further, the I / O device setting unit 52 reflects the initial setting contents in the MAC address table 55, the I / O device setting contents holding table 56, and the MAC address reverse lookup table 58.
- the request control unit 53 has a function of processing an access request to the I / O device 8 from the virtual machine 4 and a request from the I / O device 8 received via the virtual machine monitor 3.
- the request is an I / O read / write request, a memory read / write request, a configuration read / write request, or a message request defined by PCI-Express.
- the request control unit 53 has a function of constructing a TLP packet based on an access request from the virtual machine 4 received via the virtual machine monitor 3 and constructing an Ethernet frame using the TLP packet as a payload.
- Data set in the headers of these packets and frames includes information included in the access request from the virtual machine 4 received via the virtual machine monitor 3, and the MAC address table 55 and the I / O device setting content holding table 56. Obtained from the information held.
- the request control unit 53 has a function of decapsulating a frame when receiving a frame obtained by encapsulating a TLP packet having the I / O device 8 as a transmission source in an Ethernet frame.
- the request control unit 53 has a function of extracting information such as an access destination memory address from the extracted TLP packet and transferring it to the virtual machine monitor 3.
- the NIC driver interface 54 is an interface for sending an Ethernet frame transmission request to the NIC driver 37, and an interface for receiving an Ethernet frame from the NIC driver 37.
- this interface is an interface provided by a general-purpose OS such as Windows (registered trademark) or Linux (registered trademark).
- the MAC address table 55 will be described.
- the MAC address table 55 holds information in which a virtual machine identifier, a physical BDF number, and a MAC address of the I / O-side network interface 6 to which the I / O device 8 having the physical BDF number is connected are associated with each other. It is a table to do.
- FIG. 6 shows a configuration example of the MAC address table according to the first embodiment of the present invention.
- the MAC address table 55 receives a virtual machine identifier and a physical BDF number as inputs, and outputs a MAC address.
- the I / O device setting content holding table 56 will be described.
- the I / O device setting content holding table 56 is a table that holds values set in the PCI configuration register of the I / O device 8.
- the I / O device setting content holding table 56 is provided for each virtual machine 4.
- FIG. 7 shows a configuration example of the I / O device setting content holding table according to the first embodiment of the present invention.
- the I / O device setting content holding table 56 receives the physical BDF number and the register number, and outputs the setting value for the register of the input register number for the I / O device 8 corresponding to the input physical BDF number.
- the register numbers are described by register names such as BAR0 and BAR1, but in addition to specifying by register name, a method of using the address in the PCI configuration register of each register is also conceivable. .
- the I / O device list 57 shown in FIG. 5 will be described.
- the I / O device list 57 includes the device type and specification of the I / O device 8, the MAC address of the I / O side network interface 6 to which the I / O device 8 is connected, and the I / O device 8 It has a function of holding information with the identifier of the allocation destination virtual machine 4 as a set.
- FIG. 8 shows a configuration example of the I / O device list according to the first embodiment of the present invention.
- the I / O device list 57 the device type and specifications are input, and the MAC address and the allocation status of the I / O device 8 are obtained as output.
- the device type is information indicating the type of the I / O device 8, such as the type of the I / O device 8, that is, NIC, GPU, SSD (Solid State Drive), disk controller, and the like.
- Spec is information indicating the performance, memory capacity, disk capacity, etc. of the I / O device 8.
- the transfer speed is for NIC, the number of GPU core clocks and memory capacity for GPU, the generation of GPU, and the capacity for reading and writing data for SSD.
- What information is written in the specification column is defined by the designer of the computer system 1 or the operator.
- the identifier of the virtual machine 4 indicates that it is not assigned. Value is set.
- the MAC address reverse lookup table 58 shown in FIG. 5 will be described.
- the MAC address reverse lookup table 58 acquires information on the identifier of the virtual machine 4 that uses the I / O device 8 connected to the I / O side network interface 6 having the MAC address based on the MAC address information. It is a table for.
- FIG. 9 shows a configuration example of the MAC address reverse lookup table according to the first embodiment of the present invention.
- the MAC address reverse lookup table 58 receives a MAC address as an input and outputs a virtual machine identifier as an output.
- a storage unit such as a memory provided in the hardware 2
- the resource file holding unit 38 corresponds to a part of the storage unit. This also applies to other embodiments described later, and detailed description thereof is omitted.
- FIG. 10 illustrates operations of the virtual machine monitor, the virtual machine, the I / O device manager, the I / O side network interface, and the I / O device when starting the virtual machine according to the first embodiment of the present invention. It is the sequence diagram shown.
- the I / O device allocation unit 33 provided in the virtual machine monitor 3 checks whether the I / O device 8 necessary for the operation of the virtual machine 4 is present, the identifier of the virtual machine 4 and the virtual machine 4
- the I / O device manager 5 is notified of the type and specifications of the I / O device 8 to be allocated to the I / O device (step S30a).
- the I / O device setting unit 52 provided in the I / O device manager 5 refers to the I / O device list 57 and searches whether or not the corresponding I / O device 8 is available (step S50a). When an available device is found, the I / O device setting unit 52 refers to the I / O device list 57 and refers to the identifier of the allocation destination virtual machine 4 in the entry corresponding to the available I / O device 8. The default value described in the column is changed to the identifier of the virtual machine 4 notified from the virtual machine monitor 3.
- the I / O device setting unit 52 performs initial setting of the I / O device 8 (step S52a).
- the I / O device setting unit 52 determines the BDF number (physical BDF number) to be assigned to the I / O device 8, and obtains information on the identifier, physical BDF number, and MAC address of the virtual machine 4. A set is registered in the MAC address table 55. Further, the I / O device setting unit 52 registers the MAC address and the identifier information of the virtual machine 4 as a set in the MAC address reverse lookup table 58. The MAC address is read to the I / O device setting unit 52 when the I / O device setting unit 52 accesses the I / O device list 57 in step S50a of FIG. Then, the I / O device setting unit 52 constructs a TLP packet for a configuration read / write request using the physical BDF number, and constructs an Ethernet frame using the constructed TLP packet as a payload.
- BDF number physical BDF number
- the I / O device setting unit 52 reads from the vendor ID register and the class code register among the PCI configuration registers of the I / O device 8, and sets the values to the BAR, command register, cache line size register, and latency timer register. Set up.
- the read / written information is held in the I / O device setting unit 52 in order to pass it to the virtual machine monitor 3 as I / O device information.
- the information set in the BAR includes information indicating whether the address space required by the I / O device 8 is an I / O space or a memory space, and the size of the space required by the I / O device 8 Is included. These pieces of information are necessary when the virtual machine 4 performs the initial setting of the PCI-Express fabric at the time of startup.
- the BDF number assigned to the I / O device 8 by the I / O device setting unit 52 and the values set in the BAR are the I / O devices 8 assigned to the same virtual machine 4. Any value can be set as long as the values do not overlap. That is, the BDF number space, the memory space, and the I / O space are independent for each virtual machine 4. This is because the I / O device setting unit 52 uses the identifier of the virtual machine 4 to identify the I / O device 8.
- the I / O device setting unit 52 After performing the initial setting in step S52a, the I / O device setting unit 52 sends a TLP packet of a configuration write request to the I / O device 8 via the NIC driver interface 54, the NIC driver 37, and the NIC 21. Send Ethernet frame as payload.
- the I / O side network interface 6 When the I / O side network interface 6 receives the Ethernet frame from the I / O device manager 5, the I / O side network interface 6 decapsulates the Ethernet frame and extracts the TLP packet. After processing the request content according to the TLP packet, the I / O device 8 transmits a completion TLP packet to the I / O device manager 5 (step S80a).
- the TLP packet is encapsulated in an Ethernet frame at the I / O side network interface 6 and then transferred to the I / O device manager 5 via the network 7.
- the MAC address of the NIC 21 may be set in the I / O side network interface 6 in advance. Further, when the I / O side network interface 6 communicates with the I / O device manager 5 for authentication, the MAC address of the NIC 21 that is a communication partner may be notified to the I / O side network interface 6.
- the I / O device setting unit 52 sets the value set in the register together with the physical BDF number and the register number to the I / O device. It is registered in the device setting content holding table 56 (step S53a).
- the I / O device setting unit 52 generates virtual PCI-PCI Bridge setting information for each BDF number assigned to the I / O device 8 for each bus number, and stores the I / O device setting content holding table 56. Register with. This is because, as described in the background art, at the time of initial setting of the PCI-Express fabric, if a bridge device such as a PCI-Express switch device is not detected, the downstream bus is not searched. is there.
- the downstream bus search is not performed when the virtual machine 4 performs the initial setting of the PCI-Express fabric at the time of startup. As a result, the I / O device 8 assigned with the bus number of the downstream bus is not recognized by the virtual machine 4.
- virtual PCI-PCI Bridge setting information is generated.
- This setting information includes BDF number, vendor ID register, class code register, BAR, command register, cache line size register, latency timer register, primary bus register, secondary bus register, subordinate bus register, memory base address register, Information on at least an I / O base address register, a memory limit address register, and an I / O limit address register is included.
- the I / O device setting unit 52 When the I / O device setting unit 52 receives all the completion packets for the configuration write request issued to the I / O device 8, the I / O device setting unit 52 displays the setting contents together with the identifier of the virtual machine 4 and the physical BDF number in the virtual machine monitor. 3 is notified (step S54a).
- the I / O device allocating unit 33 stores the value read / written from the PCI configuration register in the information notified in step S54a of FIG. 10 in the resource file holding unit 38 as a resource file. (Step S31a).
- the virtual machine monitor 3 starts the virtual machine 4 (step S32a).
- the virtual machine 4 performs an initial setting process of a PCI-Express fabric (virtual machine recognized by the virtual machine 4) when it is activated (step S40a). This is trapped by the virtual machine monitor 3, and the request issuance destination determination unit 32 provided in the virtual machine monitor 3 performs initial setting processing based on the setting information of the I / O device 8 held by the resource file holding unit 38. respond.
- the virtual machine 4 passes through not only the I / O device 8 managed by the I / O device manager 5 but also the virtual device prepared by the virtual machine monitor 3 and the I / O device provided in the hardware 2 through the PCI pass-through. In most cases. Therefore, for example, when the virtual machine monitor 3 detects that all of the initial settings of these virtual devices and hardware 2 have been completed, the I / O device manager 5 thereafter The initial setting of the managed I / O device 8 is performed.
- the PCI-Express fabric is initialized by in / out instructions.
- the virtual machine monitor 3 traps this in / out instruction.
- the request issuance destination determination unit 32 acquires related information from the resource file holding unit 38 based on the register number of the access destination of the virtual machine 4. Then, the request issue destination determination unit 32 notifies the virtual machine 4 of the vendor ID and the class code. Further, the request issuance destination determination unit 32 does not reflect the setting of the I / O device 8 already set by the I / O device manager 5 such as the latency timer register to the I / O device 8 as if it is an I / O device 8. It behaves as if it has been set in the corresponding register of the O device 8, or emulates a BAR setting sequence.
- the request issuance destination determination unit 32 sets the BDF number (virtual BDF number) that the virtual machine 4 tried to set to the I / O device 8 when setting the latency timer register number and the BDF number together with the physical BDF number. It is registered in the correspondence table 36 (step S34a). Further, the request issue destination determination unit 32 uses the value that the virtual machine 4 tried to set to the BAR of the I / O device 8 as a start address when emulating the BAR setting sequence, and read the BAR from the resource file. A value obtained by adding the size requested by the method to the start address is used as the end address. Then, the request issuance destination determination unit 32 registers these start address and end address together with the physical BDF number and BAR number in the address range table 35 (step S34a).
- the request issuance destination determination unit 32 registers these start address and end address together with the physical BDF number and BAR number in the address range table 35 (step S34a).
- the request issuance destination determination unit 32 provided in the virtual machine monitor 3 reflects the setting in the resource file holding unit 38 and the I / O device manager 5
- a request for issuing a configuration read / write request to the / O device 8 is issued (step S36a). Whether or not a configuration read request needs to be issued depends on the setting method of the register of the setting destination.
- the request issue destination determination unit 32 When it is necessary to issue a configuration read request, the request issue destination determination unit 32 indicates the identifier of the virtual machine 4, the physical BDF number of the target I / O device 8 (obtained from the BDF number correspondence table 36), and the access type.
- the issue request is issued along with the information.
- the access type mentioned here is information indicating whether it is a configuration read request or a configuration write request.
- the request issuance destination determination unit 32 physically searches for the I / O device 8 or PCI-PCI Bridge of the resource file passed from the I / O device manager 5 in response to the search for the PCI-Express device from the virtual machine 4. It responds in order of BDF number. In this way, by responding to the search, initialization can be performed up to the I / O device 8 connected downstream of the PCI-PCI Bridge.
- the request issue destination determination unit 32 When the configuration read / write request from the virtual machine 4 is a configuration to the PCI-PCI Bridge, the request issue destination determination unit 32 does not notify the I / O device manager 5 of the request, The value is returned to the virtual machine 4. This is because PCI-PCI Bridge is a virtual device and there is no actual setting target.
- the request control unit 53 provided in the I / O device manager 5 receives a request issuance request from the virtual machine monitor 3, it constructs a TLP packet based on the request issuance request. Then, the request control unit 53 constructs an Ethernet frame using the TLP packet as a payload, and transmits the Ethernet frame to the I / O device 8 (step S56a). Information such as the MAC address and physical BDF number set in the header of the TLP packet and the Ethernet frame is information included in the request from the virtual machine monitor 3, and the result of referring to the MAC address table 55 using this information Obtained from. The request control unit 53 holds the request contents until a response (completion TLP packet) indicating that the setting has been normally performed for the Ethernet frame is returned from the I / O device 8.
- the I / O device 8 When the I / O device 8 receives the TLP packet decapsulated by the I / O side network interface 6 from the I / O side network interface 6, the I / O device 8 sets the PCI configuration register according to the contents described in the packet. After the setting is completed, the I / O device 8 transmits a completion packet to the I / O device manager 5 (step S82a).
- the request control unit 53 When the request control unit 53 receives the completion packet sent from the I / O device 8, the request control unit 53 registers the setting contents together with the physical BDF number and the register number in the I / O device setting contents holding table 56. Then, the request control unit 53 notifies the virtual machine monitor 3 that the setting has been completed (step S58a). This notification includes at least the identifier of the virtual machine 4 and the physical BDF number. If the request from the virtual machine monitor 3 is a configuration read request, the read data is also included. The identifier of the virtual machine 4 can be obtained by referring to the MAC address reverse lookup table 58 using the source MAC address of the Ethernet header given when the received completion packet is encapsulated.
- the request issue destination determination unit 32 When receiving a notification that the setting is completed from the I / O device manager 5, the request issue destination determination unit 32 notifies the virtual machine 4 that the setting is completed or that the read data is received (step S38a). .
- FIG. 11 is a sequence diagram showing the flow of processing when a memory read / write request is issued from the virtual machine to the I / O device according to the first embodiment of the present invention.
- the virtual machine 4 issues an access request to the memory area of the I / O device 8 (step S40b). This access request is trapped in the virtual machine monitor 3.
- the virtual machine monitor 3 obtains the identifier of the virtual machine 4, the type of access request (here, memory access or I / O access), and access destination information (memory address) from the virtual machine 4.
- the request issue destination determination unit 32 determines that the access request is a memory access from the type of the access request. Then, the request issue destination determination unit 32 refers to the address range table 35 using the identifier of the virtual machine 4 and the access destination information (memory address), and obtains the physical BDF number and the BAR number (step S30b). Then, the request issue destination determination unit 32 uses the value of the start address in the address range table 35 to obtain an address offset value. The address offset value is obtained by subtracting the value of the start address from the access destination information (memory address).
- the virtual machine 4 sends the identifier of the virtual machine 4, the type of access request (configuration), and the information of the access destination (
- the request issuance destination determination unit 32 is notified of the virtual BDF number) and the access destination register number.
- the request issue destination determination unit 32 refers to the BDF number correspondence table 36 using the identifier of the virtual machine 4 and the virtual BDF number, and obtains a physical BDF number.
- the request issuance destination determination unit 32 notifies the I / O device manager 5 of the identifier, access type, physical BDF number, BAR number, and address offset value of the virtual machine 4 (step S32b).
- the request control unit 53 provided in the I / O device manager 5 refers to the MAC address table 55 using the identifier of the virtual machine 4 and the physical BDF number received from the virtual machine monitor 3, and obtains a MAC address (step S50b).
- the request control unit 53 refers to the I / O device setting content holding table 56 using the physical BDF number and the BAR number, and obtains a value set in the BAR to be accessed (step S52b). The request control unit 53 obtains the address value of the access destination by adding the address offset value to the value set in the BAR.
- the request control unit 53 uses the information received from the virtual machine monitor 3, the MAC address obtained by referring to the MAC address table 55 and the I / O device setting content holding table 56, and the address value of the access destination to generate a TLP packet.
- An Ethernet frame with the payload as a payload is constructed (step S54b).
- the request control unit 53 transmits the constructed Ethernet frame to the I / O device 8 via the network 7 (step S56b).
- the I / O side network interface 6 When receiving the Ethernet frame from the I / O device manager 5, the I / O side network interface 6 decapsulates the Ethernet frame to obtain a TLP packet. Then, the I / O side network interface 6 passes the acquired TLP packet to the I / O device 8. When receiving the TLP packet from the I / O side network interface 6, the I / O device 8 processes the request (step S80b).
- the I / O device 8 When the processing of the request is completed, the I / O device 8 generates a TLP packet of a completion packet (in the case of a memory read request and an I / O read / write request), and sends the TLP packet to the I / O device manager 5 Transmit (step S82b).
- the TLP packet is encapsulated in an Ethernet frame by the I / O side network interface 6.
- the request control unit 53 When receiving the completion packet from the I / O device 8, the request control unit 53 notifies the virtual machine monitor 3 to that effect (step S58b).
- the request that is the basis of the access request issued by the virtual machine 4 is a memory read request or an I / O read request, since the read data is stored in the completion packet, the read data is also virtual Passed to the machine monitor 3.
- the virtual machine monitor 3 When the virtual machine monitor 3 receives information from the I / O device manager 5 that the completion has been received from the I / O device 8, the virtual machine monitor 3 notifies the virtual machine 4 to that effect (step S34b). When the virtual machine monitor 3 also receives the read data from the I / O device manager 5, the virtual machine monitor 3 stores the data in an appropriate memory area.
- the appropriate memory area is, for example, a host physical address corresponding to a memory area (guest physical address) designated by the virtual machine 4 as a read destination.
- FIG. 12 is a sequence diagram showing a processing flow when a memory read / write request is issued from the I / O device to the virtual machine according to the first embodiment of the present invention.
- a memory read / write request from the I / O device 8 is performed by DMA (Direct Memory Access) transfer.
- DMA Direct Memory Access
- the I / O device 8 since the memory read / write request from the I / O device 8 needs to be handled by the I / O device manager 5, the I / O device 8 is provided with the memory ( (Not shown) is not directly accessed.
- the I / O device 8 first, the I / O device 8 generates a TLP packet for a memory read / write request. Subsequently, the I / O side network interface 6 connected to the I / O device 8 encapsulates the generated TLP packet into an Ethernet frame (step S80c). At the time of encapsulation, the I / O side network interface 6 uses the MAC address of the NIC 21 acquired and held in advance as information on the destination of the Ethernet frame.
- the I / O side network interface 6 transmits the Ethernet frame generated in step S80c of FIG. 12 to the I / O device manager 5 (step S82c).
- the request control unit 53 provided in the I / O device manager 5 receives the Ethernet frame including the request information from the I / O-side network interface 6, it decapsulates the request included in the Ethernet frame (step S50c). .
- the request control unit 53 refers to the MAC address reverse lookup table 58 using the MAC address value indicating the transmission source of the Ethernet frame, and obtains the identifier of the virtual machine 4 (step S52c).
- the request control unit 53 notifies the virtual machine monitor 3 of the destination address included in the request, the identifier of the virtual machine 4 obtained in step S52c of FIG. 12, and information such as the size of data to be read or the size of data to be written (step). S54c). If the request is a memory write request, the request control unit 53 also notifies the virtual machine monitor 3 of data to be written.
- the virtual machine monitor 3 processes the request from the I / O device 8 based on the information received from the request control unit 53 (step S30c). As described above, since a memory read / write request from the I / O device 8 is generally performed by DMA transfer, it is necessary to notify the I / O device 8 in advance of the memory address to be accessed. Since the information on the destination address included in the request is a physical address (guest physical address) designated by the virtual machine 4 and a physical address for the virtual memory allocated by the virtual machine monitor 3, the actual physical memory Different from the location (host physical address). Therefore, the virtual machine monitor 3 performs a memory access by performing address conversion from a guest physical address to a host physical address by using a function imitating an IOMMU (I / O Memory Management Unit).
- IOMMU I / O Memory Management Unit
- an I / O device 8 managed in a BDF number space different from the BDF number space managed by the virtual machine monitor 3 can be assigned to the virtual machine 4 and can be used.
- the virtual machine monitor 3 detects a process in which the virtual machine 4 disconnects the target I / O device 8, and the I / O device allocation unit 33 obtains a physical BDF number from the BDF number correspondence table 36.
- the I / O device allocating unit 33 uses the virtual machine identifier and the physical BDF number as the entry of the target I / O device 8, and the address range table 35, the BDF number correspondence table 36, and the resource file holding unit 38. And the specified entry is deleted from each table.
- the I / O device allocation unit 33 notifies the I / O device manager 5 of the physical BDF number of the I / O device 8 to be deleted and the identifier of the virtual machine.
- the I / O device manager 5 receives notification of removal of the I / O device 8 from the virtual machine monitor 3.
- the I / O device setting unit 52 refers to the MAC address table 55 based on the notified virtual machine identifier and physical BDF number, and the I / O side network interface 6 to which the target I / O device 8 is connected. Get the MAC address. Then, the I / O device setting unit 52 deletes the target entry from the MAC address table 55.
- the I / O device setting unit 52 deletes the entry in which the virtual machine identifier matches the physical BDF number from the I / O device setting content holding table 56. Also, the I / O device setting unit 52 refers to the MAC address reverse lookup table 58 using the MAC address, and deletes the entry with the matching MAC address.
- the I / O device setting unit 52 issues a reset notification including an instruction to reset the I / O device 8 to be removed to the I / O side network interface 6. Further, the I / O device setting unit 52 sets the assignment destination virtual machine ID of the I / O device list 57 to “I / O device list 57” for the device whose MAC address matches the I / O side network interface 6 in the I / O device list 57. Change to “Unassigned”.
- the I / O side network interface 6 resets the I / O device 8 when receiving a reset notification of the I / O device 8 from the I / O device manager 5.
- the I / O device 8 can be removed while the virtual machine 4 is operating.
- step S32a the processing in step S32a is not “virtual machine activation” but “notification that I / O device 8 has been added”.
- the virtual machine monitor 3 uses another I / O device 8 used by the same virtual machine 4 in the BDF number assigned to the I / O device 8 to be added, the I / O space set in the BAR, and the memory space. Set to not be the same as. In other words, the virtual machine monitor 3 prevents the BDF number, the I / O space set in the BAR, and the memory space from overlapping between a plurality of I / O devices used by the same virtual machine 4.
- the I / O device 8 assigned to the virtual machine 4 is managed in an independent BDF number space for each virtual machine 4.
- the virtual machine monitor 3 can use the I / O device 8 by the virtual machine monitor 3 converting the BDF number space independent for each virtual machine 4 and the BDF number used by the virtual machine 4.
- each virtual machine 4 can be provided with the maximum number of I / O devices 8 supported by the BDF number space, and a large number of virtual machines 4 are running on one server. Even in this case, the necessary number of I / O devices 8 can be connected.
- FIG. 13 is a block diagram showing a configuration example of a virtual machine monitor according to the second embodiment of the present invention.
- the virtual machine monitor 3 of the present embodiment does not have the BDF number correspondence table 36 and the resource file holding unit 38 as compared with the configuration shown in FIG. 36d and an I / O device allocation list 39.
- the BDF number table 36d will be described.
- the BDF number table 36d is a table that is provided for each virtual machine 4 and stores the BDF number of the I / O device 8 assigned to the virtual machine.
- FIG. 14 shows a configuration example of a BDF number table according to the second embodiment of the present invention.
- the BDF number table 36d is configured to register a BDF number as an entry.
- This BDF number is a BDF number assigned by the virtual machine 4.
- the I / O device allocation list 39 will be described.
- the I / O device allocation list 39 is a list in which the virtual machine 4 recognizes the vendor ID and class code of the I / O device 8 to be allocated to the virtual machine 4 to be started.
- FIG. 15 shows a configuration example of an I / O device allocation list according to the second embodiment of the present invention.
- the I / O device allocation list 39 is a list of information composed of a set of a vendor ID and a class code.
- FIG. 16 is a block diagram showing a configuration example of the I / O device manager according to the second embodiment of the present invention.
- the I / O device manager 5 of the present embodiment does not have the I / O device setting content holding table 56 as compared with the configuration shown in FIG.
- a device setting list 59 is included.
- the I / O device setting list 59 will be described.
- the I / O device setting list 59 is selected from the I / O devices 8 registered in the I / O device list 57 when the virtual machine monitor 3 inquires about the availability of the I / O device. This is a list in which a set of a class code and a vendor ID of the I / O device 8 is registered.
- FIG. 17 is a sequence diagram showing operations of the virtual machine monitor, the virtual machine, the I / O device manager, and the I / O device when starting the virtual machine according to the second embodiment of the present invention.
- Step 17 and FIG. 10 are different in the present embodiment in that the I / O device manager 5 does not set / save the I / O device 8 before starting the virtual machine 4 (step S52a in FIG. 10). Step S80a, Step S53a).
- the setting of the I / O device 8 is performed in accordance with the initial setting of the PCI-Express fabric that is performed when the virtual machine 4 is activated.
- the I / O device allocation unit 33 provided in the virtual machine monitor 3 inquires of the I / O device manager 5 about the availability of the I / O device (step S30d).
- the I / O device allocating unit 33 inquires the I / O device manager 5 by sorting the I / O devices 8 in the order in which the virtual machines 4 are to be recognized.
- the I / O device setting unit 52 provided in the I / O device manager 5 responds to the inquiry about availability of the I / O device from the virtual machine monitor 3 with respect to the I / O device 8 corresponding to the condition included in the inquiry.
- the I / O device list 57 is searched for whether there is any (step S50d).
- the I / O device setting unit 52 notifies the virtual machine monitor 3 of the vendor ID and class code of the I / O device 8 obtained as a result of the search (step S54d).
- the vendor ID and class code may be registered in the I / O device list 57 in advance after expanding the vendor ID and class code in the I / O device list 57.
- the vendor ID and class code may be read by the I / O device setting unit 52 each time an inquiry is received from the virtual machine monitor 3 (see FIG. 17). Shows the former case). In the latter case, the I / O device setting unit 52 acquires the corresponding MAC address from the I / O device list 57, and uses the TLP packet (configuration read request) for reading the vendor ID and the class code as the payload.
- a frame is constructed and transmitted to the I / O device 8.
- the I / O device setting unit 52 can obtain the values of the vendor ID and the class code from the payload portion of the completion from the I / O device 8.
- the vendor ID and class code included in the notification to the virtual machine monitor 3 are the IDs of the I / O devices described in the inquiry from the virtual machine monitor 3. Sorted in order.
- the I / O device allocation unit 33 does not insert the virtual PCI-PCI Bridge vendor ID and class code into the notification from the I / O device setting unit 52 to the virtual machine monitor 3. It is also possible to insert the notification after receiving the notification from the O device manager 5. In this case, since the virtual machine monitor 3 knows how many virtual devices are allocated to the virtual machine from the configuration information of the virtual machine 4, the vendor ID and class code of PCI-PCI Bridge are listed. Can be inserted at an appropriate position.
- the I / O device setting unit 52 holds the notification to the virtual machine monitor 3 in the I / O device setting list 59 except for the information of the inserted virtual PCI-PCI Bridge.
- the I / O device allocation unit 33 When the I / O device allocation unit 33 receives a list of vendor IDs and class codes of the I / O devices 8 allocated to the virtual machine 4 from the I / O device manager 5, the I / O device allocation unit 33 stores them in the I / O device allocation list 39 ( Step S31d).
- the I / O device allocation unit 33 activates the virtual machine 4 (step S32d).
- the virtual machine 4 performs initial setting of the PCI-Express fabric (step S40d).
- step S36d When the virtual machine monitor 3 has finished allocating all devices other than the I / O device 8 managed by the I / O device manager 5, the request issue destination determination unit 32 registers in the I / O device allocation list 39.
- the assigned I / O device 8 is assigned (steps S36d to S58d). The procedure from step S36d to step S58d will be described in detail.
- the request issue destination determination unit 32 acquires the identifier and BDF number of the virtual machine 4 acquired when the virtual machine monitor 3 traps the virtual machine monitor 3. Is used to determine whether the I / O device having the BDF number is an I / O device 8 managed by the I / O device manager 5 or not. If the BDF number is registered in the BDF number table 36d, it means that the I / O device is the I / O device 8 managed by the I / O device manager 5.
- the request issuance destination determination unit 32 issues a PCI configuration register setting request to the I / O device manager 5 (step S36d).
- the request issue destination determination unit 32 notifies the I / O device manager 5 of the identifier of the virtual machine, the access type, and the BDF number of the access destination I / O device 8.
- the request issuance destination determination unit 32 sends the BDF number and the BAR number to the BAR. Hold until setup is complete.
- the request issue destination determination unit 32 determines the content of the data to be written as the BDF number and the BAR. Keep a pair with the number.
- the request control unit 53 provided in the I / O device manager 5 issues a configuration read / write request to the I / O device 8 in accordance with the notification from the virtual machine monitor 3, and Setting is performed (step S56d).
- the request control unit 53 accesses the MAC address table 55 using the virtual machine identifier and the BDF number, and obtains the MAC address of the request transmission destination.
- the request control unit 53 constructs an Ethernet frame using the TLP packet as a payload from the acquired MAC address, the access type included in the notification from the virtual machine monitor 3, and the BDF number of the I / O device 8 to be accessed. To do.
- the request control unit 53 transmits the constructed Ethernet frame to the I / O device 8.
- the I / O device 8 receives the TLP packet (configuration read / write) decapsulated by the I / O side network interface 6 via the I / O side network interface 6. Then, the I / O device 8 processes the request based on the TLP packet, and transmits the completion TLP packet to the I / O device manager 5 (step S82d).
- the completion TLP packet is encapsulated in an Ethernet frame by the I / O side network interface 6 and then transmitted to the I / O device manager 5.
- the I / O device manager 5 When receiving the completion from the I / O device 8, the I / O device manager 5 notifies the virtual machine monitor 3 of the notification (step S58d).
- the request from the virtual machine monitor 3 is a read request to the PCI configuration register, since the read result is included in the payload portion of the completion TLP packet, the I / O device manager 5 also displays the read result. Notify the virtual machine monitor 3.
- the request issue destination determination unit 32 determines the read data (the size of the space requested by the BAR, the size of the space Type, etc.) are held together with the BAR number and BDF number held in step S36d of FIG.
- the setting request to the PCI configuration register from the virtual machine 4 is for the BAR and is a write request for the BAR (setting of the base address of the BAR)
- the setting to the BAR is made when the completion is notified. Completed.
- the request issuance destination determination unit 32 sets the start address (value written in the BAR), end address (value obtained by adding the value read from the BAR to the value written in the BAR), the BDF number, and the BAR number in the address range table. 35 (step S37d).
- the request issuance destination determination unit 32 notifies the virtual machine 4 that the request to the PCI configuration register is completed (step S38d).
- FIG. 18 is a sequence diagram showing a processing flow when a memory read / write request is issued from the virtual machine to the I / O device according to the second embodiment of the present invention.
- the request issue destination determination unit 32 When the virtual machine 4 issues an access request to the I / O device 8 (step S40e), the request issue destination determination unit 32 provided in the virtual machine monitor 3 determines the address according to the identifier of the virtual machine and the type of the access request.
- the address range table 35 is referred to by value (or the BDF number table is referred to by the BDF number), and it is confirmed whether or not an entry exists in the table (step S30e). If the entry exists, the request issuance destination determination unit 32 determines that the access request is an access to the I / O device 8.
- the request issuance destination determination unit 32 notifies the I / O device manager 5 of the virtual machine identifier, access type, BDF number (or address value), and size of data to be accessed (step S32e).
- the request control unit 53 provided in the I / O device manager 5 refers to the MAC address table 55, and acquires the MAC address using the virtual machine identifier and the BDF number (step S50e).
- the request control unit 53 uses the MAC address acquired in step S50e of FIG. 18 and the information notified from the virtual machine monitor 3 to generate an Ethernet frame having a TLP packet as a payload (step S54e).
- the request control unit 53 transmits the Ethernet frame generated in step S54e in FIG. 18 to the I / O device 8 (step S56e).
- the I / O device 8 When the I / O device 8 receives the TLP packet decapsulated by the I / O side network interface 6 from the I / O side network interface 6, it processes the request based on the TLP packet (step S80e).
- the I / O device 8 transmits the completion TLP packet to the I / O device manager 5 (step S82e).
- This TLP packet is encapsulated in an Ethernet frame by the I / O side network interface 6.
- the I / O device manager 5 When receiving the completion notification from the I / O device 8, the I / O device manager 5 notifies the virtual machine monitor 3 that the completion notification has been received together with the identifier of the virtual machine 4 (step S58e).
- the identifier of the virtual machine 4 can be obtained by referring to the MAC address reverse lookup table 58 using the source MAC address of the received notification (Ethernet frame using the completion TLP packet as a payload).
- the virtual machine monitor 3 When the virtual machine monitor 3 receives the completion notification from the I / O device manager 5, the virtual machine 4 having the identifier of the virtual machine 4 included in the notification has completed the access request to the I / O device 8. Is notified (step S34e).
- the I / O device 8 assigned to the virtual machine 4 is managed in an independent BDF number space for each virtual machine 4. Since the virtual machine 4 can arbitrarily determine how to use this independent BDF number space, the virtual machine monitor 3 does not need to convert the BDF number or calculate the offset of the address value. As a result, even when a large number of virtual machines 4 are operating on one server, it is possible to connect the necessary number of I / O devices 8 while simplifying the configuration of the virtual machine monitor 3.
- FIG. 19 is a block diagram showing a configuration example of a computer system according to the third embodiment of the present invention.
- the computer system 1 a includes the I / O device 8 in one I / O side network interface 6 among the plurality of I / O side network interfaces 6. Instead, a PCI-Express switch 9 is connected. Further, an I / O device 8 is connected to the PCI-Express switch 9.
- the PCI-Express switch 9 is used when a plurality of I / O devices 8 are connected under the I / O side network interface 6. Similarly to the I / O device 8, a BDF number is assigned to the PCI-Express switch 9 from the I / O device manager 5.
- FIG. 19 shows a case where there are two I / O devices 8 connected to the PCI-Express switch 9, but the number of I / O devices 8 is not limited to two.
- the PCI-Express switch 9 has a function equivalent to PCI-PCI Bridge inside. For this reason, in the computer system 1a shown in FIG. 19, a virtual PCI-PCI Bridge inserted in the PCI-Express fabric according to the actual PCI-PCI Bridge and the number of I / O devices 8 allocated to the virtual machine 4 and the like. Will exist.
- the I / O device manager 5 when executing the process of assigning the I / O device 8 to the virtual machine 4, the I / O device manager 5 passes the setting information to the virtual machine monitor 3 (the diagram in the first embodiment). 10 corresponds to step S54a), and a flag indicating a virtual device is added to the entry of virtual PCI-PCI Bridge in the setting information.
- the I / O device manager 5 passes the I / O device list to the virtual machine monitor 3 (corresponding to step S54d of FIG. 17 in the second embodiment)
- the I / O device list virtual PCI-PCI Bridge A flag indicating that it is a virtual device is assigned to the entry.
- the virtual machine monitor 3 When the virtual machine monitor 3 receives the initial setting signal from the virtual machine 4, the virtual machine monitor 3 refers to the setting information or the flag given to the I / O device list, and when the initial setting target is the virtual PCI-PCI Bridge, Information on the initial setting of the I / O device 8 from the virtual machine 4 is not notified to the I / O device manager 5.
- the virtual machine monitor 3 receives the initial setting signal from the virtual machine 4, the virtual machine monitor 3 refers to the setting information or the flag added to the I / O device list, and the initial setting target is the actual PCI-PCI Bridge. The information received from the virtual machine 4 is notified to the I / O device manager 5.
- the I / O device 8 connected to the PCI-Express switch 9 is initialized after completion of the initial setting of the PCI-Express switch 9. Specifically, in the case of the first embodiment, the I / O device 8 is initialized by the I / O device allocation unit 33. In the case of the second embodiment, the I / O device 8 is initialized by the virtual machine 4. This can also be realized by a method similar to the operation at the time of initial setting of a standard PCI-Express fabric.
- a flag indicating a virtual device is assigned to the virtual PCI-PCI Bridge used for causing the virtual machine 4 to recognize the I / O device 8 having a different bus number.
- the virtual PCI-PCI Bridge and the actual PCI-PCI Bridge can be identified, and the PCI-Express switch 9 is connected to the end of the I / O-side network interface 6, and a plurality of I / Os are connected to the end.
- a system in which the device 8 is connected can also be supported.
- FIG. 20 is a block diagram showing a configuration example of a computer system according to the fourth embodiment of the present invention.
- the computer system 1b has a configuration in which a global I / O device manager 10 is added to the configuration shown in FIG.
- the global I / O device manager 10 determines the type and specification of the I / O device 8, the MAC address of the I / O side network interface 6 connected to the I / O device 8, and the assignment of the I / O device 8.
- An I / O device list for managing the identifier of the previous virtual machine monitor 3 and the identifier of the virtual machine 4 to which the I / O device 8 is assigned is held.
- the global I / O device manager 10 searches for an I / O device 8 in response to an I / O device 8 allocation request from all the virtual machine monitors 3 operating on the hardware 2 connected to the network 7. Then, allocation is performed and the information is notified to the I / O device manager 5.
- the I / O device list will be described with reference to FIG.
- the global I / O device manager 10 shown in FIG. 20 will be described.
- FIG. 21 is a block diagram showing a configuration example of the global I / O device manager according to the fourth embodiment of the present invention.
- the global I / O device manager 10 includes an I / O device setting unit 52 and an I / O device list 57.
- the I / O device setting unit 52 is connected to the virtual machine monitor 3 and the I / O device manager 5 illustrated in FIG. 20 via the network 7.
- the I / O device list 57 shown in FIG. 21 will be described.
- FIG. 22 shows a configuration example of an I / O device list according to the fourth embodiment of the present invention.
- the I / O device list 57 of this embodiment includes the type and specification of the I / O device 8, the MAC address of the I / O side network interface 6 connected to the I / O device 8, and the I / O device. 8 manages the identifier of the allocation destination virtual machine monitor 3 and the identifier of the allocation destination virtual machine 4 of the I / O device 8.
- the I / O device manager 5 shown in FIG. 20 will be described.
- FIG. 23 is a block diagram showing a configuration example of an I / O device manager according to the fourth embodiment of the present invention.
- the I / O device manager 5 of the present embodiment has a configuration excluding the I / O device list 57 and the I / O device setting unit 52 from the configuration of the I / O device manager 5 described in the first embodiment. It has become.
- the I / O device setting unit 52 When the I / O device setting unit 52 provided in the global I / O device manager 10 receives an inquiry about the availability of the I / O device from the virtual machine monitor 3 (step S30a in FIG. 10, step S30d in FIG. 17), The I / O device list 57 is searched (step S50a in FIG. 10 and step S50d in FIG. 17). Subsequently, the I / O device setting unit 52 stores information on the I / O device 8 that satisfies the specification conditions included in the inquiry with the same hardware as that of the virtual machine monitor 3 as the inquiry source. 5 (only the notification in step S54a in FIG. 10 and step S54d in FIG. 17). In addition to the information described in the first to third embodiments, the inquiry includes the identifier of the inquiry source virtual machine monitor 3.
- the I / O device manager 5 performs initial setting of the I / O device (step S52a to step S53a in FIG. 10) according to the notification from the global I / O device manager 10. It is also conceivable that the global I / O device manager 10 notifies the virtual machine monitor 3 directly. In this case, the virtual machine monitor 3 registers information on the I / O device 8 based on the notification from the global I / O device manager 10 (step S31d in FIG. 17).
- a global I / O device manager 10 that centrally manages the I / O devices 8 is provided.
- the I / O device 8 can be assigned to the virtual machine 4 operating on each virtual machine monitor 3.
- the computer of this embodiment may have the following configuration.
- a computer A storage unit that holds an I / O device list for managing assignment of I / O devices connected to the computer via a network to a virtual machine operating on the computer;
- a virtual machine monitor that identifies an I / O device necessary for the operation of the virtual machine; If there is an I / O device that can be assigned to the virtual machine by determining whether or not the I / O device specified by the virtual machine monitor can be assigned to the virtual machine with reference to the I / O device list.
- An I / O device that allocates the I / O device to the virtual machine and registers an identifier assigned to the I / O device based on a predetermined specification together with the identifier of the virtual machine in the storage unit With the manager, Having a computer.
- the storage unit includes an identifier of the virtual machine, the identifier of the I / O device assigned to the virtual machine, and an interface identifier that is an identifier of an interface connected between the I / O device and the network. It further has an address table for managing information consisting of The I / O device list includes the type and specification of the I / O device, the interface identifier of the interface connected to the I / O device, and the identifier of the virtual machine to which the I / O device is allocated.
- the I / O device manager determines that the I / O device can be allocated to the virtual machine
- the I / O device list and the address are determined using the identifier of the virtual machine and the identifier of the I / O device.
- Update the table execute the initial setting of the I / O device assigned to the virtual machine before starting the virtual machine, notify the virtual machine monitor of the initial setting information
- the virtual machine monitor holds initial setting information of the I / O device notified from the I / O device manager, starts the virtual machine, and then sends the I / O device sent from the virtual machine.
- a computer which responds to the initial setting process by the virtual machine based on the held initial setting information of the I / O device when trapping the initial setting signal for the / O device.
- the storage unit associates, with respect to the I / O device assigned to the virtual machine, information on a virtual identifier that is an identifier assigned by the virtual machine and the identifier assigned by the I / O device manager. It further has a number correspondence table to be held, When the virtual machine monitor receives an access request from the virtual machine to the I / O device, the virtual machine monitor reads the virtual identifier of the I / O device included in the access request, and corresponds to the read virtual identifier. A computer that identifies an identifier in the number correspondence table and notifies the I / O device manager of the access request including information on the identified identifier.
- the storage unit A set of information including an identifier of the virtual machine, the identifier of the I / O device assigned to the virtual machine, and an interface identifier that is an identifier of an interface connected between the I / O device and the network. And an address table for managing A number table that holds the identifier of the I / O device assigned to the virtual machine;
- the I / O device list includes the type and specification of the I / O device, the interface identifier of the interface connected to the I / O device, and the identifier of the virtual machine to which the I / O device is allocated.
- the identifier of the I / O device is given by the virtual machine;
- the virtual machine monitor starts the virtual machine and then traps a setting request signal from the virtual machine, the virtual machine monitor determines whether the target of the setting request is an I / O device registered in the number table.
- the identifier of the virtual machine and the identifier of the I / O device included in the trapped signal are displayed Notify the manager,
- the I / O device manager reads an interface identifier specified in the address table by the notified identifier of the virtual machine and the identifier of the I / O device, and transmits the I / O via the interface having the interface identifier.
- a computer that performs initial configuration for a device.
- the storage unit further includes an address reverse lookup table that associates and holds an interface identifier of the interface and an identifier of the virtual machine to which an I / O device connected to the interface is allocated,
- the I / O device manager uses the information included in the request to Constructing a packet according to the specification of the fabric to which the packet belongs, transmitting a frame encapsulating the packet based on the specification of the network to the I / O device via the network and the interface
- the I / O device manager receives a frame from the I / O device via the interface and the network
- the I / O device manager decapsulates the packet of the frame based on the specification of the network, and transmits the packet from the packet after decapsulation
- An interface identifier indicating the virtual machine registered in correspondence with the interface identifier, referring to the address reverse look
- the I / O device manager is a computer that inserts virtual device information into the I / O device list based on a specification of a fabric to which the I / O device belongs.
- the virtual machine monitor is a computer that does not notify information on a device to which information indicating that the virtual device is assigned even if an initial setting signal is received from the virtual machine.
- a plurality of computers each including a virtual machine monitor including a virtual machine monitor that identifies an I / O device necessary for the operation of the virtual machine;
- a storage unit holding an I / O device list for managing allocation to the virtual machine, and an I specified by the virtual machine monitor Whether or not an O / O device can be allocated to the virtual machine is searched from the I / O device list, and if there is an I / O device that can be allocated, the I / O device is allocated to the virtual machine,
- a global I / O device manager including a device setting unit that assigns an identifier to the I / O device based on the specifications and registers the virtual machine monitor identifier and the virtual machine identifier in the I / O device list.
- the device allocation management method of the present embodiment may have the following configuration.
- a device allocation management method using a computer Storing an I / O device list for managing allocation to a virtual machine operating on the computer with respect to an I / O device connected to the computer via a network; Identify the I / O devices necessary for the operation of the virtual machine, Determining whether the specified I / O device can be assigned to the virtual machine with reference to the I / O device list; When there is an I / O device that can be assigned to the virtual machine, the I / O device is assigned to the virtual machine, and an identifier assigned to the I / O device based on a predetermined specification is assigned to the virtual machine.
- the I / O device list includes the type and specification of the I / O device, the interface identifier of the interface connected to the I / O device, and the identifier of the virtual machine to which the I / O device is allocated. Information is stored in pairs, A set of information including an identifier of the virtual machine, the identifier of the I / O device assigned to the virtual machine, and an interface identifier that is an identifier of an interface connected between the I / O device and the network.
- An address table for management is stored in the storage unit, When it is determined that the I / O device can be allocated to the virtual machine, the I / O device list and the address table are updated using the identifier of the virtual machine and the identifier of the I / O device, Before starting the virtual machine, execute the initial setting of the I / O device assigned to the virtual machine, and retain the initial setting information, After the virtual machine is activated, when the initial setting signal sent from the virtual machine to the I / O device is trapped, the virtual machine is based on the stored initial setting information of the I / O device.
- a device allocation management method that responds to initial setting processing by a machine.
- the I / O device list includes the type and specification of the I / O device, the interface identifier of the interface connected to the I / O device, and the identifier of the virtual machine to which the I / O device is allocated. Information is stored in pairs, The identifier of the I / O device is given by the virtual machine; A set of information including an identifier of the virtual machine, the identifier of the I / O device assigned to the virtual machine, and an interface identifier that is an identifier of an interface connected between the I / O device and the network.
- An address table for managing and a number table for holding the identifier of the I / O device assigned to the virtual machine are stored in the storage unit. After starting the virtual machine, when a setting request signal is trapped from the virtual machine, it is determined whether the target of the setting request is an I / O device registered in the number table, When it is determined that the setting request target is an I / O device registered in the number table, the identifier of the virtual machine and the identifier of the I / O device included in the trapped signal are read out, An interface identifier is specified in the address table by the read identifier of the virtual machine and the identifier of the I / O device, A device allocation management method for executing initial setting for the I / O device via an interface having a specified interface identifier.
- the program of this embodiment may have the following configuration.
- the I / O device list includes the type and specification of the I / O device, the interface identifier of the interface connected to the I / O device, and the identifier of the virtual machine to which the I / O device is allocated. Information is stored in pairs, A set of information including an identifier of the virtual machine, the identifier of the I / O device assigned to the virtual machine, and an interface identifier that is an identifier of an interface connected between the I / O device and the network.
- Storing an address table for management in the storage unit Determining that the I / O device can be assigned to the virtual machine, updating the I / O device list and the address table using the identifier of the virtual machine and the identifier of the I / O device; Before starting the virtual machine, execute an initial setting of the I / O device assigned to the virtual machine, and retain the information of the initial setting; After the virtual machine is activated, when the initial setting signal sent from the virtual machine to the I / O device is trapped, the virtual machine is based on the stored initial setting information of the I / O device. And a procedure for responding to initialization processing by the machine.
- Appendix 15 In the program described in Appendix 14, For the I / O device assigned to the virtual machine, a number correspondence table that holds information on the virtual identifier that is an identifier assigned by the virtual machine and the identifier of the I / O device in association with each other. The procedure of storing in the storage unit; When an access request to the I / O device is received from the virtual machine, the virtual identifier of the I / O device included in the access request is read, and the identifier corresponding to the read virtual identifier is displayed in the number correspondence table.
- a program further comprising:
- the I / O device list includes the type and specification of the I / O device, the interface identifier of the interface connected to the I / O device, and the identifier of the virtual machine to which the I / O device is allocated. Information is stored in pairs, The identifier of the I / O device is given by the virtual machine; A set of information including an identifier of the virtual machine, the identifier of the I / O device assigned to the virtual machine, and an interface identifier that is an identifier of an interface connected between the I / O device and the network.
- the present invention can be applied to an application in which a hardware function of an I / O device is used for a large number of virtual machines in a computer system using server virtualization technology.
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
Description
そのため、各仮想マシンが仮想的なハードウェアを利用する場合、サーバ仮想化技術の主要な構成要素の1つであるハイパーバイザ、あるいは仮想マシンモニタ(VMM:Virtual Machine Monitor)と呼ばれる管理プログラムが、仮想マシンのハードウェアへのアクセスをトラップし、実ハードウェアのリソースへの適切なアクセスを行う。そのため、仮想マシンが何らかの処理を行う場合、仮想マシンモニタのオーバヘッドが加わるため、一般に実ハードウェア上で稼働するOSよりも、仮想マシンの方が性能が低くなる。
これらの接続のために、PCI-Express Root Complexは、内部でバス番号を1つ消費する。PCI-Express Root Complexは、PCI-Expressファブリックの根本(Root)に位置するデバイスであるため、消費するバス番号は「0」である。
このBDF番号は、PCI-Expressデバイス側からメモリリードリクエストやメモリライトリクエストなどのリクエストが発行される際に、送信元のPCI-Expressデバイスを示す情報として、リクエストに書き込まれる。
前記コンピュータとネットワークを介して接続されたI/Oデバイスについて、前記コンピュータで動作する仮想マシンへの割り当てを管理するためのI/Oデバイスリストを保持する記憶部と、
前記仮想マシンの動作に必要なI/Oデバイスを特定する仮想マシンモニタと、
前記仮想マシンモニタによって特定されたI/Oデバイスが前記仮想マシンに割り当て可能か否かを前記I/Oデバイスリストを参照して判定し、該仮想マシンに割り当て可能なI/Oデバイスがあると、該仮想マシンに該I/Oデバイスを割り当て、該I/Oデバイスに対して予め決められた仕様に基づいて付与された識別子を該仮想マシンの識別子とともに前記記憶部に登録するI/Oデバイスマネージャーと、
を有する構成である。
前記コンピュータとネットワークを介して接続されたI/Oデバイスについて、前記コンピュータで動作する仮想マシンへの割り当てを管理するためのI/Oデバイスリストを記憶部に格納し、
前記仮想マシンの動作に必要なI/Oデバイスを特定し、
特定されたI/Oデバイスが前記仮想マシンに割り当て可能か否かを前記I/Oデバイスリストを参照して判定し、
前記仮想マシンに割り当て可能なI/Oデバイスがあると、該仮想マシンに該I/Oデバイスを割り当て、該I/Oデバイスに対して予め決められた仕様に基づいて付与された識別子を該仮想マシンの識別子とともに前記記憶部に登録するものである。
前記コンピュータとネットワークを介して接続されたI/Oデバイスについて、前記コンピュータで動作する仮想マシンへの割り当てを管理するためのI/Oデバイスリストを記憶部に格納する手順と、
前記仮想マシンの動作に必要なI/Oデバイスを特定する手順と、
特定されたI/Oデバイスが前記仮想マシンに割り当て可能か否かを前記I/Oデバイスリストを参照して判定する手順と、
前記仮想マシンに割り当て可能なI/Oデバイスがあると、該仮想マシンに該I/Oデバイスを割り当て、該I/Oデバイスに対して予め決められた仕様に基づいて付与された識別子を該仮想マシンの識別子とともに前記記憶部に登録する手順を実行させるプログラムを記録する。
[構成の説明]
図1は、本発明の第1の実施形態に係るコンピュータシステムの一構成例を示すブロック図である。図1を参照すると、コンピュータシステム1は、ハードウェア2と、仮想マシンモニタ3と、仮想マシン4と、I/Oデバイスマネージャー5と、I/O側ネットワークインタフェース6と、ネットワーク7と、I/Oデバイス8と、を有する。
ネットワーク7は、NIC21と、I/O側ネットワークインタフェース6とを接続する。
次に、図面を参照して、本実施形態のコンピュータシステムの動作を説明する。
このように、サーチに対して応答することで、PCI-PCI Bridgeの下流に接続されたI/Oデバイス8まで初期設定が行われ得る。
設定完了後に、I/Oデバイス8は、コンプリーションパケットをI/Oデバイスマネージャー5に向けて送信する(ステップS82a)。
次に、本発明の第2の実施形態について、図面を参照して詳細に説明する。なお、本発明の第1の実施形態と同様の構成要素に対しては、同一の符号を付し、詳細な説明を省略する。
仮想マシン4からのPCIコンフィギュレーションレジスタへの設定要求がBARに対するもので、BARに対する書き込み要求だった場合(BARのベースアドレスの設定)、コンプリーションの通知がなされた時点で、BARへの設定が完了している。そのため、リクエスト発行先決定部32は、開始アドレス(BARに書き込んだ値)、終了アドレス(BARに書き込んだ値にBARから読み出した値を加算した値)、BDF番号及びBAR番号を、アドレス範囲テーブル35に登録する(ステップS37d)。
次に、本発明の第3の実施形態について、図面を参照して詳細に説明する。なお、本発明の第1、第2の実施形態と同様の構成要素に対しては、同一の符号を付し、詳細な説明を省略する。
第2の実施形態の場合、仮想マシン4によってI/Oデバイス8は初期設定される。これは、標準的なPCI-Expressファブリックの初期設定の際の動作と同様の方法でも実現することができる。
次に、本発明の第4の実施形態について、図面を参照して詳細に説明する。なお、本発明の第1から第3の実施形態と同様の構成要素に対しては同一の符号を付し、詳細な説明を省略する。
コンピュータであって、
前記コンピュータとネットワークを介して接続されたI/Oデバイスについて、前記コンピュータで動作する仮想マシンへの割り当てを管理するためのI/Oデバイスリストを保持する記憶部と、
前記仮想マシンの動作に必要なI/Oデバイスを特定する仮想マシンモニタと、
前記仮想マシンモニタによって特定されたI/Oデバイスが前記仮想マシンに割り当て可能か否かを前記I/Oデバイスリストを参照して判定し、該仮想マシンに割り当て可能なI/Oデバイスがあると、該仮想マシンに該I/Oデバイスを割り当て、該I/Oデバイスに対して予め決められた仕様に基づいて付与された識別子を該仮想マシンの識別子とともに前記記憶部に登録するI/Oデバイスマネージャーと、
を有するコンピュータ。
付記1に記載のコンピュータにおいて、
前記記憶部は、前記仮想マシンの識別子、該仮想マシンに割り当てられた前記I/Oデバイスの前記識別子、及び該I/Oデバイスと前記ネットワークとの間に接続されたインタフェースの識別子であるインタフェース識別子からなる情報を組にして管理するためのアドレステーブルをさらに有し、
前記I/Oデバイスリストは、前記I/Oデバイスの種別及びスペックと、該I/Oデバイスに接続されたインタフェースの前記インタフェース識別子と、該I/Oデバイスの割り当て先となる仮想マシンの識別子との情報を組にして保持し、
前記I/Oデバイスマネージャーは、前記仮想マシンに前記I/Oデバイスを割り当て可能と判定すると、該仮想マシンの識別子及び該I/Oデバイスの前記識別子を用いて前記I/Oデバイスリスト及び前記アドレステーブルを更新し、前記仮想マシンの起動前に、該仮想マシンに割り当てたI/Oデバイスの初期設定を実行し、該初期設定の情報を前記仮想マシンモニタに通知し、
前記仮想マシンモニタは、前記I/Oデバイスマネージャーから通知された、前記I/Oデバイスの初期設定の情報を保持し、前記仮想マシンを起動させた後、該仮想マシンから送出された、前記I/Oデバイスに対する初期設定の信号をトラップすると、保持した、前記I/Oデバイスの初期設定の情報に基づいて、該仮想マシンによる初期設定の処理に応答する、コンピュータ。
付記2に記載のコンピュータにおいて、
前記記憶部は、前記仮想マシンに割り当てられた前記I/Oデバイスについて、該仮想マシンによって付与された識別子である仮想識別子と、前記I/Oデバイスマネージャーによって付与された前記識別子との情報を対応づけて保持する番号対応テーブルをさらに有し、
前記仮想マシンモニタは、前記仮想マシンから前記I/Oデバイスへのアクセス要求を受け付けると、該アクセス要求に含まれる、該I/Oデバイスの前記仮想識別子を読み出し、読み出した仮想識別子に対応する前記識別子を前記番号対応テーブルで特定し、特定した前記識別子の情報を含む前記アクセス要求を前記I/Oデバイスマネージャーに通知する、コンピュータ。
付記1に記載のコンピュータにおいて、
前記記憶部は、
前記仮想マシンの識別子、該仮想マシンに割り当てられた前記I/Oデバイスの前記識別子、及び該I/Oデバイスと前記ネットワークとの間に接続されたインタフェースの識別子であるインタフェース識別子からなる情報を組にして管理するためのアドレステーブルと、
前記仮想マシンに割り当てられた前記I/Oデバイスの前記識別子を保持する番号テーブルと、をさらに有し、
前記I/Oデバイスリストは、前記I/Oデバイスの種別及びスペックと、該I/Oデバイスに接続されたインタフェースの前記インタフェース識別子と、該I/Oデバイスの割り当て先となる仮想マシンの識別子との情報を組にして保持し、
前記I/Oデバイスの前記識別子は前記仮想マシンによって付与されたものであり、
前記仮想マシンモニタは、前記仮想マシンを起動させた後、該仮想マシンから設定要求の信号をトラップすると、該設定要求の対象が前記番号テーブルに登録されたI/Oデバイスであるか否かを判定し、該設定要求の対象が前記番号テーブルに登録されたI/Oデバイスと判定すると、トラップした信号に含まれる前記仮想マシンの識別子及び前記I/Oデバイスの前記識別子を前記I/Oデバイスマネージャーに通知し、
前記I/Oデバイスマネージャーは、通知された前記仮想マシンの識別子及び前記I/Oデバイスの識別子によって前記アドレステーブルで特定されるインタフェース識別子を読み出し、該インタフェース識別子を持つインタフェースを介して該I/Oデバイスに対して初期設定を実行する、コンピュータ。
付記3または4に記載のコンピュータにおいて、
前記記憶部は、前記インタフェースのインタフェース識別子と、該インタフェースに接続されたI/Oデバイスが割り当てられた前記仮想マシンの識別子とを対応づけて保持するアドレス逆引きテーブルをさらに有し、
前記I/Oデバイスマネージャーは、前記仮想マシンモニタを介して前記I/Oデバイスへのアクセス要求又は設定要求を前記仮想マシンから受け付けると、その要求に含まれる情報を用いて、該I/Oデバイスが属するファブリックの仕様にしたがってパケットを構築し、前記ネットワークの仕様に基づいて該パケットをカプセル化したフレームを該I/Oデバイス宛に前記ネットワーク及び前記インタフェースを介して送信し、
前記I/Oデバイスマネージャーは、前記I/Oデバイスから前記インタフェース及び前記ネットワークを介してフレームを受信すると、前記ネットワークの仕様に基づいて該フレームのパケットをデカプセル化し、デカプセル化後のパケットから送信元を示すインタフェース識別子を読み出し、前記アドレス逆引きテーブルを参照し、該インタフェース識別子に対応して登録されている前記仮想マシンの識別子を読み出し、該識別子で特定される仮想マシン宛にパケットを送信する、コンピュータ。
付記2または4に記載のコンピュータにおいて、
前記I/Oデバイスマネージャーは、前記I/Oデバイスが属するファブリックの仕様に基づいて、仮想的なデバイスの情報を前記I/Oデバイスリストに挿入する、コンピュータ。
付記6に記載のコンピュータにおいて、
前記I/Oデバイスマネージャーは、前記仮想的なデバイスの情報を前記I/Oデバイスリストに挿入した場合に、該仮想的なデバイスのエントリに仮想的なデバイスであることを示す情報を付与し、
前記仮想マシンモニタは、前記仮想マシンから初期設定の信号を受け取っても、前記仮想的なデバイスであることを示す情報が付与されたデバイスの情報を通知しない、コンピュータ。
仮想マシンの動作に必要なI/Oデバイスを特定する仮想マシンモニタを含み、それぞれ異なる仮想マシンが動作する複数のコンピュータと、
前記複数のコンピュータとネットワークを介して接続されたI/Oデバイスについて、前記仮想マシンへの割り当てを管理するためのI/Oデバイスリストを保持する記憶部、及び前記仮想マシンモニタによって特定されたI/Oデバイスが前記仮想マシンに割り当て可能か否かを前記I/Oデバイスリストで検索し、割り当て可能なI/Oデバイスがあると、該仮想マシンに該I/Oデバイスを割り当て、予め決められた仕様に基づいて該I/Oデバイスに識別子を付与して該仮想マシンモニタの識別子及び該仮想マシンの識別子とともに前記I/Oデバイスリストに登録するデバイス設定部を含むグローバルI/Oデバイスマネージャーと、
を有するコンピュータシステム。
コンピュータによるデバイス割当管理方法であって、
前記コンピュータとネットワークを介して接続されたI/Oデバイスについて、前記コンピュータで動作する仮想マシンへの割り当てを管理するためのI/Oデバイスリストを記憶部に格納し、
前記仮想マシンの動作に必要なI/Oデバイスを特定し、
特定されたI/Oデバイスが前記仮想マシンに割り当て可能か否かを前記I/Oデバイスリストを参照して判定し、
前記仮想マシンに割り当て可能なI/Oデバイスがあると、該仮想マシンに該I/Oデバイスを割り当て、該I/Oデバイスに対して予め決められた仕様に基づいて付与された識別子を該仮想マシンの識別子とともに前記記憶部に登録する、デバイス割当管理方法。
付記9に記載のデバイス割当管理方法において、
前記I/Oデバイスリストは、前記I/Oデバイスの種別及びスペックと、該I/Oデバイスに接続されたインタフェースの前記インタフェース識別子と、該I/Oデバイスの割り当て先となる仮想マシンの識別子との情報を組にして保持するものであり、
前記仮想マシンの識別子、該仮想マシンに割り当てられた前記I/Oデバイスの前記識別子、及び該I/Oデバイスと前記ネットワークとの間に接続されたインタフェースの識別子であるインタフェース識別子からなる情報を組にして管理するためのアドレステーブルを前記記憶部に格納し、
前記仮想マシンに前記I/Oデバイスを割り当て可能と判定すると、該仮想マシンの識別子及び該I/Oデバイスの前記識別子を用いて前記I/Oデバイスリスト及び前記アドレステーブルを更新し、
前記仮想マシンの起動前に、該仮想マシンに割り当てたI/Oデバイスの初期設定を実行し、該初期設定の情報を保持し、
前記仮想マシンを起動させた後、該仮想マシンから送出された、前記I/Oデバイスに対する初期設定の信号をトラップすると、保持した、前記I/Oデバイスの初期設定の情報に基づいて、該仮想マシンによる初期設定の処理に応答する、デバイス割当管理方法。
付記10に記載のデバイス割当管理方法において、
前記仮想マシンに割り当てられた前記I/Oデバイスについて、該仮想マシンによって付与された識別子である仮想識別子と、前記I/Oデバイスの前記識別子との情報を対応づけて保持する番号対応テーブルを前記記憶部に格納し、
前記仮想マシンから前記I/Oデバイスへのアクセス要求を受け付けると、該アクセス要求に含まれる、該I/Oデバイスの前記仮想識別子を読み出し、読み出した仮想識別子に対応する前記識別子を前記番号対応テーブルで特定する、デバイス割当管理方法。
付記9に記載のデバイス割当管理方法において、
前記I/Oデバイスリストは、前記I/Oデバイスの種別及びスペックと、該I/Oデバイスに接続されたインタフェースの前記インタフェース識別子と、該I/Oデバイスの割り当て先となる仮想マシンの識別子との情報を組にして保持するものであり、
前記I/Oデバイスの前記識別子は前記仮想マシンによって付与されたものであり、
前記仮想マシンの識別子、該仮想マシンに割り当てられた前記I/Oデバイスの前記識別子、及び該I/Oデバイスと前記ネットワークとの間に接続されたインタフェースの識別子であるインタフェース識別子からなる情報を組にして管理するためのアドレステーブルと、前記仮想マシンに割り当てられた前記I/Oデバイスの前記識別子を保持する番号テーブルと、を前記記憶部に格納し、
前記仮想マシンを起動させた後、該仮想マシンから設定要求の信号をトラップすると、該設定要求の対象が前記番号テーブルに登録されたI/Oデバイスであるか否かを判定し、
前記設定要求の対象が前記番号テーブルに登録されたI/Oデバイスと判定すると、トラップした信号に含まれる前記仮想マシンの識別子及び前記I/Oデバイスの前記識別子を読み出し、
読み出した前記仮想マシンの識別子及び前記I/Oデバイスの識別子によって前記アドレステーブルでインタフェース識別子を特定し、
特定したインタフェース識別子を持つインタフェースを介して前記I/Oデバイスに対して初期設定を実行する、デバイス割当管理方法。
コンピュータに、
前記コンピュータとネットワークを介して接続されたI/Oデバイスについて、前記コンピュータで動作する仮想マシンへの割り当てを管理するためのI/Oデバイスリストを記憶部に格納する手順と、
前記仮想マシンの動作に必要なI/Oデバイスを特定する手順と、
特定されたI/Oデバイスが前記仮想マシンに割り当て可能か否かを前記I/Oデバイスリストを参照して判定する手順と、
前記仮想マシンに割り当て可能なI/Oデバイスがあると、該仮想マシンに該I/Oデバイスを割り当て、該I/Oデバイスに対して予め決められた仕様に基づいて付与された識別子を該仮想マシンの識別子とともに前記記憶部に登録する手順を実行させるためのプログラム。
付記13に記載のプログラムにおいて、
前記I/Oデバイスリストは、前記I/Oデバイスの種別及びスペックと、該I/Oデバイスに接続されたインタフェースの前記インタフェース識別子と、該I/Oデバイスの割り当て先となる仮想マシンの識別子との情報を組にして保持するものであり、
前記仮想マシンの識別子、該仮想マシンに割り当てられた前記I/Oデバイスの前記識別子、及び該I/Oデバイスと前記ネットワークとの間に接続されたインタフェースの識別子であるインタフェース識別子からなる情報を組にして管理するためのアドレステーブルを前記記憶部に格納する手順と、
前記仮想マシンに前記I/Oデバイスを割り当て可能と判定すると、該仮想マシンの識別子及び該I/Oデバイスの前記識別子を用いて前記I/Oデバイスリスト及び前記アドレステーブルを更新する手順と、
前記仮想マシンの起動前に、該仮想マシンに割り当てたI/Oデバイスの初期設定を実行し、該初期設定の情報を保持する手順と、
前記仮想マシンを起動させた後、該仮想マシンから送出された、前記I/Oデバイスに対する初期設定の信号をトラップすると、保持した、前記I/Oデバイスの初期設定の情報に基づいて、該仮想マシンによる初期設定の処理に応答する手順とをさらに有するプログラム。
付記14に記載のプログラムにおいて、
前記仮想マシンに割り当てられた前記I/Oデバイスについて、該仮想マシンによって付与された識別子である仮想識別子と、前記I/Oデバイスの前記識別子との情報を対応づけて保持する番号対応テーブルを前記記憶部に格納する手順と、
前記仮想マシンから前記I/Oデバイスへのアクセス要求を受け付けると、該アクセス要求に含まれる、該I/Oデバイスの前記仮想識別子を読み出し、読み出した仮想識別子に対応する前記識別子を前記番号対応テーブルで特定する手順とをさらに有するプログラム。
付記13に記載のプログラムにおいて、
前記I/Oデバイスリストは、前記I/Oデバイスの種別及びスペックと、該I/Oデバイスに接続されたインタフェースの前記インタフェース識別子と、該I/Oデバイスの割り当て先となる仮想マシンの識別子との情報を組にして保持するものであり、
前記I/Oデバイスの前記識別子は前記仮想マシンによって付与されたものであり、
前記仮想マシンの識別子、該仮想マシンに割り当てられた前記I/Oデバイスの前記識別子、及び該I/Oデバイスと前記ネットワークとの間に接続されたインタフェースの識別子であるインタフェース識別子からなる情報を組にして管理するためのアドレステーブルと、前記仮想マシンに割り当てられた前記I/Oデバイスの前記識別子を保持する番号テーブルとを前記記憶部に格納する手順と、
前記仮想マシンを起動させた後、該仮想マシンから設定要求の信号をトラップすると、該設定要求の対象が前記番号テーブルに登録されたI/Oデバイスであるか否かを判定する手順と、
前記設定要求の対象が前記番号テーブルに登録されたI/Oデバイスと判定すると、トラップした信号に含まれる前記仮想マシンの識別子及び前記I/Oデバイスの前記識別子を読み出す手順と、
読み出した前記仮想マシンの識別子及び前記I/Oデバイスの識別子によって前記アドレステーブルでインタフェース識別子を特定する手順と、
特定したインタフェース識別子を持つインタフェースを介して前記I/Oデバイスに対して初期設定を実行する手順とをさらに有するプログラム。
2 ハードウェア
3 仮想マシンモニタ(VMM)
4 仮想マシン(VM)
5 I/Oデバイスマネージャー
6 I/O側ネットワークインタフェース
7 ネットワーク
8 I/Oデバイス
9 PCI-Expressスイッチ
10 グローバルI/Oデバイスマネージャー
21 ネットワークインタフェースカード(NIC)
31 仮想マシンインタフェース
32 リクエスト発行先決定部
33 I/Oデバイス割当部
34 I/Oデバイスマネージャーインタフェース
35 アドレス範囲テーブル
36 BDF番号対応テーブル
36d BDF番号テーブル
37 NICドライバ
38 リソースファイル保持部
39 I/Oデバイス割当リスト
51 仮想マシンモニタインタフェース
52 I/Oデバイス設定部
53 リクエスト制御部
54 NICドライバインタフェース
55 MACアドレステーブル
56 I/Oデバイス設定内容保持テーブル
57 I/Oデバイスリスト
58 MACアドレス逆引きテーブル
59 I/Oデバイス設定リスト
Claims (9)
- コンピュータであって、
前記コンピュータとネットワークを介して接続されたI/Oデバイスについて、前記コンピュータで動作する仮想マシンへの割り当てを管理するためのI/Oデバイスリストを保持する記憶部と、
前記仮想マシンの動作に必要なI/Oデバイスを特定する仮想マシンモニタと、
前記仮想マシンモニタによって特定されたI/Oデバイスが前記仮想マシンに割り当て可能か否かを前記I/Oデバイスリストを参照して判定し、該仮想マシンに割り当て可能なI/Oデバイスがあると、該仮想マシンに該I/Oデバイスを割り当て、該I/Oデバイスに対して予め決められた仕様に基づいて付与された識別子を該仮想マシンの識別子とともに前記記憶部に登録するI/Oデバイスマネージャーと、
を有するコンピュータ。 - 請求項1に記載のコンピュータにおいて、
前記記憶部は、前記仮想マシンの識別子、該仮想マシンに割り当てられた前記I/Oデバイスの前記識別子、及び該I/Oデバイスと前記ネットワークとの間に接続されたインタフェースの識別子であるインタフェース識別子からなる情報を組にして管理するためのアドレステーブルをさらに有し、
前記I/Oデバイスリストは、前記I/Oデバイスの種別及びスペックと、該I/Oデバイスに接続されたインタフェースの前記インタフェース識別子と、該I/Oデバイスの割り当て先となる仮想マシンの識別子との情報を組にして保持し、
前記I/Oデバイスマネージャーは、前記仮想マシンに前記I/Oデバイスを割り当て可能と判定すると、該仮想マシンの識別子及び該I/Oデバイスの前記識別子を用いて前記I/Oデバイスリスト及び前記アドレステーブルを更新し、前記仮想マシンの起動前に、該仮想マシンに割り当てたI/Oデバイスの初期設定を実行し、該初期設定の情報を前記仮想マシンモニタに通知し、
前記仮想マシンモニタは、前記I/Oデバイスマネージャーから通知された、前記I/Oデバイスの初期設定の情報を保持し、前記仮想マシンを起動させた後、該仮想マシンから送出された、前記I/Oデバイスに対する初期設定の信号をトラップすると、保持した、前記I/Oデバイスの初期設定の情報に基づいて、該仮想マシンによる初期設定の処理に応答する、コンピュータ。 - 請求項1に記載のコンピュータにおいて、
前記記憶部は、
前記仮想マシンの識別子、該仮想マシンに割り当てられた前記I/Oデバイスの前記識別子、及び該I/Oデバイスと前記ネットワークとの間に接続されたインタフェースの識別子であるインタフェース識別子からなる情報を組にして管理するためのアドレステーブルと、
前記仮想マシンに割り当てられた前記I/Oデバイスの前記識別子を保持する番号テーブルと、をさらに有し、
前記I/Oデバイスリストは、前記I/Oデバイスの種別及びスペックと、該I/Oデバイスに接続されたインタフェースの前記インタフェース識別子と、該I/Oデバイスの割り当て先となる仮想マシンの識別子との情報を組にして保持し、
前記I/Oデバイスの前記識別子は前記仮想マシンによって付与されたものであり、
前記仮想マシンモニタは、前記仮想マシンを起動させた後、該仮想マシンから設定要求の信号をトラップすると、該設定要求の対象が前記番号テーブルに登録されたI/Oデバイスであるか否かを判定し、該設定要求の対象が前記番号テーブルに登録されたI/Oデバイスと判定すると、トラップした信号に含まれる前記仮想マシンの識別子及び前記I/Oデバイスの前記識別子を前記I/Oデバイスマネージャーに通知し、
前記I/Oデバイスマネージャーは、通知された前記仮想マシンの識別子及び前記I/Oデバイスの識別子によって前記アドレステーブルで特定されるインタフェース識別子を読み出し、該インタフェース識別子を持つインタフェースを介して該I/Oデバイスに対して初期設定を実行する、コンピュータ。 - コンピュータによるデバイス割当管理方法であって、
前記コンピュータとネットワークを介して接続されたI/Oデバイスについて、前記コンピュータで動作する仮想マシンへの割り当てを管理するためのI/Oデバイスリストを記憶部に格納し、
前記仮想マシンの動作に必要なI/Oデバイスを特定し、
特定されたI/Oデバイスが前記仮想マシンに割り当て可能か否かを前記I/Oデバイスリストを参照して判定し、
前記仮想マシンに割り当て可能なI/Oデバイスがあると、該仮想マシンに該I/Oデバイスを割り当て、該I/Oデバイスに対して予め決められた仕様に基づいて付与された識別子を該仮想マシンの識別子とともに前記記憶部に登録する、デバイス割当管理方法。 - 請求項4に記載のデバイス割当管理方法において、
前記I/Oデバイスリストは、前記I/Oデバイスの種別及びスペックと、該I/Oデバイスに接続されたインタフェースの前記インタフェース識別子と、該I/Oデバイスの割り当て先となる仮想マシンの識別子との情報を組にして保持するものであり、
前記仮想マシンの識別子、該仮想マシンに割り当てられた前記I/Oデバイスの前記識別子、及び該I/Oデバイスと前記ネットワークとの間に接続されたインタフェースの識別子であるインタフェース識別子からなる情報を組にして管理するためのアドレステーブルを前記記憶部に格納し、
前記仮想マシンに前記I/Oデバイスを割り当て可能と判定すると、該仮想マシンの識別子及び該I/Oデバイスの前記識別子を用いて前記I/Oデバイスリスト及び前記アドレステーブルを更新し、
前記仮想マシンの起動前に、該仮想マシンに割り当てたI/Oデバイスの初期設定を実行し、該初期設定の情報を保持し、
前記仮想マシンを起動させた後、該仮想マシンから送出された、前記I/Oデバイスに対する初期設定の信号をトラップすると、保持した、前記I/Oデバイスの初期設定の情報に基づいて、該仮想マシンによる初期設定の処理に応答する、デバイス割当管理方法。 - 請求項4に記載のデバイス割当管理方法において、
前記I/Oデバイスリストは、前記I/Oデバイスの種別及びスペックと、該I/Oデバイスに接続されたインタフェースの前記インタフェース識別子と、該I/Oデバイスの割り当て先となる仮想マシンの識別子との情報を組にして保持するものであり、
前記I/Oデバイスの前記識別子は前記仮想マシンによって付与されたものであり、
前記仮想マシンの識別子、該仮想マシンに割り当てられた前記I/Oデバイスの前記識別子、及び該I/Oデバイスと前記ネットワークとの間に接続されたインタフェースの識別子であるインタフェース識別子からなる情報を組にして管理するためのアドレステーブルと、前記仮想マシンに割り当てられた前記I/Oデバイスの前記識別子を保持する番号テーブルと、を前記記憶部に格納し、
前記仮想マシンを起動させた後、該仮想マシンから設定要求の信号をトラップすると、該設定要求の対象が前記番号テーブルに登録されたI/Oデバイスであるか否かを判定し、
前記設定要求の対象が前記番号テーブルに登録されたI/Oデバイスと判定すると、トラップした信号に含まれる前記仮想マシンの識別子及び前記I/Oデバイスの前記識別子を読み出し、
読み出した前記仮想マシンの識別子及び前記I/Oデバイスの識別子によって前記アドレステーブルでインタフェース識別子を特定し、
特定したインタフェース識別子を持つインタフェースを介して前記I/Oデバイスに対して初期設定を実行する、デバイス割当管理方法。 - コンピュータに、
前記コンピュータとネットワークを介して接続されたI/Oデバイスについて、前記コンピュータで動作する仮想マシンへの割り当てを管理するためのI/Oデバイスリストを記憶部に格納する手順と、
前記仮想マシンの動作に必要なI/Oデバイスを特定する手順と、
特定されたI/Oデバイスが前記仮想マシンに割り当て可能か否かを前記I/Oデバイスリストを参照して判定する手順と、
前記仮想マシンに割り当て可能なI/Oデバイスがあると、該仮想マシンに該I/Oデバイスを割り当て、該I/Oデバイスに対して予め決められた仕様に基づいて付与された識別子を該仮想マシンの識別子とともに前記記憶部に登録する手順を実行させるためのプログラムを記録するプログラム記録媒体。 - 請求項7に記載のプログラム記録媒体において、
前記I/Oデバイスリストは、前記I/Oデバイスの種別及びスペックと、該I/Oデバイスに接続されたインタフェースの前記インタフェース識別子と、該I/Oデバイスの割り当て先となる仮想マシンの識別子との情報を組にして保持するものであり、
前記プログラムは、
前記仮想マシンの識別子、該仮想マシンに割り当てられた前記I/Oデバイスの前記識別子、及び該I/Oデバイスと前記ネットワークとの間に接続されたインタフェースの識別子であるインタフェース識別子からなる情報を組にして管理するためのアドレステーブルを前記記憶部に格納する手順と、
前記仮想マシンに前記I/Oデバイスを割り当て可能と判定すると、該仮想マシンの識別子及び該I/Oデバイスの前記識別子を用いて前記I/Oデバイスリスト及び前記アドレステーブルを更新する手順と、
前記仮想マシンの起動前に、該仮想マシンに割り当てたI/Oデバイスの初期設定を実行し、該初期設定の情報を保持する手順と、
前記仮想マシンを起動させた後、該仮想マシンから送出された、前記I/Oデバイスに対する初期設定の信号をトラップすると、保持した、前記I/Oデバイスの初期設定の情報に基づいて、該仮想マシンによる初期設定の処理に応答する手順とをさらに前記コンピュータに実行させるプログラム記録媒体。 - 請求項7に記載のプログラム記録媒体において、
前記I/Oデバイスリストは、前記I/Oデバイスの種別及びスペックと、該I/Oデバイスに接続されたインタフェースの前記インタフェース識別子と、該I/Oデバイスの割り当て先となる仮想マシンの識別子との情報を組にして保持するものであり、
前記I/Oデバイスの前記識別子は前記仮想マシンによって付与されたものであり、
前記プログラムは、
前記仮想マシンの識別子、該仮想マシンに割り当てられた前記I/Oデバイスの前記識別子、及び該I/Oデバイスと前記ネットワークとの間に接続されたインタフェースの識別子であるインタフェース識別子からなる情報を組にして管理するためのアドレステーブルと、前記仮想マシンに割り当てられた前記I/Oデバイスの前記識別子を保持する番号テーブルとを前記記憶部に格納する手順と、
前記仮想マシンを起動させた後、該仮想マシンから設定要求の信号をトラップすると、該設定要求の対象が前記番号テーブルに登録されたI/Oデバイスであるか否かを判定する手順と、
前記設定要求の対象が前記番号テーブルに登録されたI/Oデバイスと判定すると、トラップした信号に含まれる前記仮想マシンの識別子及び前記I/Oデバイスの前記識別子を読み出す手順と、
読み出した前記仮想マシンの識別子及び前記I/Oデバイスの識別子によって前記アドレステーブルでインタフェース識別子を特定する手順と、
特定したインタフェース識別子を持つインタフェースを介して前記I/Oデバイスに対して初期設定を実行する手順とをさらに前記コンピュータに実行させるプログラム記録媒体。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017546403A JP6753412B2 (ja) | 2015-10-22 | 2016-10-17 | コンピュータ、デバイス割当管理方法及びプログラム |
US15/770,045 US10684880B2 (en) | 2015-10-22 | 2016-10-17 | Allocating and initializing I/O devices at virtual |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015-208114 | 2015-10-22 | ||
JP2015208114 | 2015-10-22 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2017068770A1 true WO2017068770A1 (ja) | 2017-04-27 |
Family
ID=58557347
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2016/004595 WO2017068770A1 (ja) | 2015-10-22 | 2016-10-17 | コンピュータ、デバイス割当管理方法及びプログラム記録媒体 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10684880B2 (ja) |
JP (1) | JP6753412B2 (ja) |
WO (1) | WO2017068770A1 (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2019114025A (ja) * | 2017-12-22 | 2019-07-11 | コニカミノルタ株式会社 | 情報処理装置、情報処理方法および情報処理プログラム |
CN113127099A (zh) * | 2021-05-12 | 2021-07-16 | 北京奇艺世纪科技有限公司 | 服务器配置方法、装置、设备及存储介质 |
US11119801B2 (en) | 2019-03-28 | 2021-09-14 | International Business Machines Corporation | Migrating virtual machines across commonly connected storage providers |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10356131B2 (en) * | 2016-12-09 | 2019-07-16 | Nutanix, Inc. | Service chaining for multiple uplink bridges |
US11089066B2 (en) | 2016-12-09 | 2021-08-10 | Nutanix, Inc. | System and method for dynamic medium access control (MAC) relating to a virtualization environment |
US10684976B1 (en) * | 2018-07-09 | 2020-06-16 | American Megatrends International, Llc | Automatic bus resource adjustment in a multiple root bridge computing system |
US10942670B2 (en) * | 2018-12-06 | 2021-03-09 | Vmware, Inc. | Direct access flash transition layer |
CN110221867A (zh) * | 2019-05-31 | 2019-09-10 | 湖北三江航天万峰科技发展有限公司 | 一种xp系统下脉冲i/o功能卡通信驱动系统及方法 |
US11023402B2 (en) * | 2019-07-02 | 2021-06-01 | National Instruments Corporation | Switch pruning in a switch fabric bus chassis |
US11558296B2 (en) * | 2020-09-18 | 2023-01-17 | Serialtek, Llc | Transaction analyzer for peripheral bus traffic |
JP7153942B2 (ja) * | 2020-08-17 | 2022-10-17 | ラトナ株式会社 | 情報処理装置、方法、コンピュータプログラム、及び、記録媒体 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH09274598A (ja) * | 1996-04-08 | 1997-10-21 | Hitachi Ltd | 情報処理装置の入出力チャネル拡張方法 |
JP2008146566A (ja) * | 2006-12-13 | 2008-06-26 | Hitachi Ltd | 計算機、仮想デバイスの制御方法およびそのプログラム |
JP2010218539A (ja) * | 2008-12-31 | 2010-09-30 | Intel Corp | 物理的デバイスコントローラの仮想化をサポートするトランザクションのインジェクト方法 |
JP2012160095A (ja) * | 2011-02-02 | 2012-08-23 | Hitachi Ltd | 計算機システム、及びその制御方法 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7467381B2 (en) * | 2003-12-16 | 2008-12-16 | Intel Corporation | Resource partitioning and direct access utilizing hardware support for virtualization |
JP5018252B2 (ja) * | 2007-06-06 | 2012-09-05 | 株式会社日立製作所 | デバイス割り当て変更方法 |
US8694995B2 (en) * | 2011-12-14 | 2014-04-08 | International Business Machines Corporation | Application initiated negotiations for resources meeting a performance parameter in a virtualized computing environment |
JP5928197B2 (ja) * | 2012-06-29 | 2016-06-01 | 富士通株式会社 | ストレージシステム管理プログラム及びストレージシステム管理装置 |
US8930668B2 (en) * | 2012-11-15 | 2015-01-06 | Bank Of America Corporation | Storage black box |
US9832078B2 (en) * | 2015-01-06 | 2017-11-28 | Netapp, Inc. | Stateless resource management |
JP6392978B2 (ja) * | 2015-04-22 | 2018-09-19 | 株式会社日立製作所 | 計算機システムの管理システム |
-
2016
- 2016-10-17 WO PCT/JP2016/004595 patent/WO2017068770A1/ja active Application Filing
- 2016-10-17 US US15/770,045 patent/US10684880B2/en active Active
- 2016-10-17 JP JP2017546403A patent/JP6753412B2/ja active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH09274598A (ja) * | 1996-04-08 | 1997-10-21 | Hitachi Ltd | 情報処理装置の入出力チャネル拡張方法 |
JP2008146566A (ja) * | 2006-12-13 | 2008-06-26 | Hitachi Ltd | 計算機、仮想デバイスの制御方法およびそのプログラム |
JP2010218539A (ja) * | 2008-12-31 | 2010-09-30 | Intel Corp | 物理的デバイスコントローラの仮想化をサポートするトランザクションのインジェクト方法 |
JP2012160095A (ja) * | 2011-02-02 | 2012-08-23 | Hitachi Ltd | 計算機システム、及びその制御方法 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2019114025A (ja) * | 2017-12-22 | 2019-07-11 | コニカミノルタ株式会社 | 情報処理装置、情報処理方法および情報処理プログラム |
US11119801B2 (en) | 2019-03-28 | 2021-09-14 | International Business Machines Corporation | Migrating virtual machines across commonly connected storage providers |
CN113127099A (zh) * | 2021-05-12 | 2021-07-16 | 北京奇艺世纪科技有限公司 | 服务器配置方法、装置、设备及存储介质 |
CN113127099B (zh) * | 2021-05-12 | 2024-04-12 | 北京奇艺世纪科技有限公司 | 服务器配置方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
US10684880B2 (en) | 2020-06-16 |
JP6753412B2 (ja) | 2020-09-09 |
JPWO2017068770A1 (ja) | 2018-08-23 |
US20180321964A1 (en) | 2018-11-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6753412B2 (ja) | コンピュータ、デバイス割当管理方法及びプログラム | |
JP5362980B2 (ja) | データ処理システム内で第1のホスト・システムと第2のホスト・システムとの間で通信するための方法、プログラム、およびシステム(ソケット接続および共用メモリを使用するホスト・システム間の通信のためのシステムおよび方法) | |
WO2015194534A1 (ja) | スイッチ装置とコンピュータシステムと方法並びにプログラム | |
JP5763873B2 (ja) | データ処理システムの複数のルート複合体間の通信のために共用メモリを初期設定するための方法、コンピュータ・プログラム、およびデータ処理システム | |
JP4931787B2 (ja) | データ処理システム内で第1のホスト・システムと第2のホスト・システムとの間で通信するための方法、プログラム、およびシステム(トランザクション・プロトコルおよび共用メモリを使用するホスト・システム間の通信のためのシステムおよび方法) | |
KR101324844B1 (ko) | 기능 변환 시스템 및 방법과 변환 수행 시스템 | |
US8521941B2 (en) | Multi-root sharing of single-root input/output virtualization | |
US7925802B2 (en) | Hardware-based virtualization of BIOS, disks, network-interfaces, and consoles using a direct interconnect fabric | |
US9424219B2 (en) | Direct routing between address spaces through a nontransparent peripheral component interconnect express bridge | |
JP5305848B2 (ja) | データ処理システム内で入出力(i/o)仮想化を管理するための方法およびデータ処理システムならびにコンピュータ・プログラム | |
US10509758B1 (en) | Emulated switch with hot-plugging | |
US20140286350A1 (en) | Switching Method | |
US9531668B2 (en) | Micro server, method of allocating MAC address, and computer readable recording medium | |
JP6458798B2 (ja) | コンピュータシステム、データ処理装置 | |
JP2008152786A (ja) | データ処理システム内で1つまたは複数のエンドポイントの第1の物理機能から第2の物理機能に仮想機能を移行するための方法、プログラム、およびシステム(単一ルート・ステートレス仮想機能の移行のためのシステムおよび方法) | |
JP2008152787A (ja) | データ処理システム内で実行中の通信ファブリックにコンポーネントをホット・プラグするための方法、プログラム、およびシステム(実行中のPCIeファブリックにおける新しいコンポーネントのホット・プラグ/除去のためのシステムおよび方法) | |
JP2010079816A (ja) | Pciデバイス共有方法 | |
US20100228887A1 (en) | Method of configuration processing of pci device on virtualization apparatus and computer system | |
CN115203101A (zh) | PCIe装置及其操作方法 | |
JP6094575B2 (ja) | I/oデバイス共有システムおよびi/oデバイス共有方法 | |
WO2015190079A1 (ja) | 計算機システム、遠隔デバイスの接続管理方法及びプログラム記録媒体 | |
TWI791134B (zh) | 通信裝置、資訊處理系統及通信方法 | |
US20200387396A1 (en) | Information processing apparatus and information processing system | |
JP2022541561A (ja) | パケットネットワーク内のフラッシュ要求を処理するための装置および方法 | |
JPWO2019124450A1 (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: 16857093 Country of ref document: EP Kind code of ref document: A1 |
|
ENP | Entry into the national phase |
Ref document number: 2017546403 Country of ref document: JP Kind code of ref document: A |
|
WWE | Wipo information: entry into national phase |
Ref document number: 15770045 Country of ref document: US |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 16857093 Country of ref document: EP Kind code of ref document: A1 |