IP Library › Granted Patent US 10,684,880
Granted Patent B2
US 10,684,880 · App. 15/770,045 · Granted Jun 16, 2020

Allocating and initializing I/O devices at virtual

Inventor: Akira Tsuji (Tokyo, JP)
Assignee: NEC CORPORATION
G06F9/45558G06F9/4401G06F9/4411G06F9/5027G06F2009/45575G06F2009/45579G06F2009/45591
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,684,880
App. No.
15/770,045
Granted
Jun 16, 2020
Kind
B2
Abstract

The purpose of the present invention is to provide a computer which is capable of increasing the number of I/O devices which connect to a PCI fabric which has predetermined specifications. This computer comprises: a storage unit which retains an I/O device list which is used to manage the allocation to a virtual machine which runs on the computer of an I/O device which is connected to the computer via a network; a virtual machine monitor which identifies the I/O device which is required for the operation of the virtual machine; and an I/O device manager which refers to the I/O device list and assesses whether the I/O device which has been identified by the virtual machine monitor is available to be allocated to the virtual machine, and if there is an I/O device available to be allocated to the virtual machine, allocates the I/O device to the virtual machine, and registers in the storage unit an identifier which is assigned to the I/O device on the basis of predetermined specifications, together with an identifier of the virtual machine.

Claims (34)

1. A computer comprising:

a storage that stores an I/O device list for managing allocation of an I/O device to a virtual machine operating on the computer, the I/O device being connected to the computer through a network; and

at least one processor that specifies an I/O device required for operation of the virtual machine and determines whether or not an I/O device specified is allocable to the virtual machine, by referring to the I/O device list, and when an I/O device allocable to the virtual machine exists, allocates the I/O device to the virtual machine and, along with an identifier of the virtual machine, stores, in the storage, an identifier assigned to the I/O device in accordance with a predetermined specification, wherein

the I/O device list holds a set of information including a type and a specification of the I/O device, an interface identifier of an interface connected between the I/O device and the network, and an identifier of a virtual machine being an allocation destination of the I/O device,

the storage further stores an address table for managing a set of information composed of an identifier of the virtual machine, the identifier of the I/O device allocated to the virtual machine, and the interface identifier, and

when determining that the I/O device is allocable to the virtual machine, the at least one processor updates the I/O device list and the address table by use of an identifier of the virtual machine and the identifier of the I/O device, executes, before boot-up of the virtual machine, initialization of an I/O device allocated to the virtual machine, and

holds the initialization information of the I/O device, and when trapping a signal for initialization of the I/O device after booting up the virtual machine, the signal being transmitted from the virtual machine, responds to initialization processing by the virtual machine, based on the held initialization information of the I/O device.

2. A computer comprising:

a storage that stores an I/O device list for managing allocation of an I/O device to a virtual machine operating on the computer, the I/O device being connected to the computer through a network; and

at least one processor that specifies an I/O device required for operation of the virtual machine and determines whether or not an I/O device specified is allocable to the virtual machine, by referring to the I/O device list, and when an I/O device allocable to the virtual machine exists, allocates the I/O device to the virtual machine and, along with an identifier of the virtual machine, stores, in the storage, an identifier assigned to the I/O device in accordance with a predetermined specification, wherein

the I/O device list holds a set of information including a type and a specification of the I/O device, an interface identifier of an interface connected between the I/O device and the network, and an identifier of a virtual machine being an allocation destination of the I/O device,

the storage further stores:

an address table for managing a set of information composed of an identifier of the virtual machine, the identifier of the I/O device allocated to the virtual machine, and the interface identifier, and

a number table that holds the identifier of the I/O device allocated to the virtual machine,

the identifier of the I/O device is assigned by the virtual machine,

when trapping a setting request signal from the virtual machine after booting up the virtual machine, the at least one processor determines whether or not a target of the setting request signal is an I/O device registered in the number table, and when determining that a target of the setting request is an I/O device registered in the number table, and

reads an interface identifier specified in the address table by a notified identifier of the virtual machine and a notified identifier of the I/O device, and executes initialization on the I/O device through an interface with the interface identifier.

3. A device allocation management method by a computer comprising:

storing an I/O device list, in a storage, for managing allocation of an I/O device to a virtual machine operating on the computer, the I/O device list holding a set of information including a type and a specification of the I/O device, an interface identifier of an interface connected between the I/O device and the network, and an identifier of a virtual machine being an allocation destination of the I/O device, the I/O device being connected to the computer through a network;

storing, in the storage, an address table for managing a set of information composed of an identifier of the virtual machine, the identifier of the I/O device allocated to the virtual machine, and the interface identifier;

specifying an I/O device required for operation of the virtual machine;

determining whether or not the I/O device specified is allocable to the virtual machine, by referring to the I/O device list, and when an I/O device allocable to the virtual machine exists, allocating the I/O device to the virtual machine and, along with an identifier of the virtual machine, storing, in the storage, an identifier assigned to the I/O device in accordance with a predetermined specification,

when determining that the I/O device is allocable to the virtual machine, updating the I/O device list and the address table by use of an identifier of the virtual machine and the identifier of the I/O device;

executing, before boot-up of the virtual machine, initialization of an I/O device allocated to the virtual machine and holding initialization information; and,

when trapping a signal for the initialization of the I/O device after booting up the virtual machine, the signal being transmitted from the virtual machine, responding to initialization processing by the virtual machine, based on the held initialization information of the I/O device.

4. A device allocation management method by a computer comprising:

storing an I/O device list, in a storage, for managing allocation of an I/O device to a virtual machine operating on the computer, the I/O device list holding a set of information including a type and a specification of the I/O device, an interface identifier of an interface connected between the I/O device and the network, and an identifier of a virtual machine being an allocation destination of the I/O device, the I/O device being connected to the computer through a network;

storing, in the storage, an address table for managing a set of information composed of an identifier of the virtual machine, the identifier of the I/O device allocated to the virtual machine, and the interface identifier, and a number table that holds the identifier of the I/O device allocated to the virtual machine;

specifying an I/O device required for operation of the virtual machine;

determining whether or not the I/O device specified is allocable to the virtual machine, by referring to the I/O device list, and when an I/O device allocable to the virtual machine exists, allocating the I/O device to the virtual machine and, along with an identifier of the virtual machine, storing, in the storage, an identifier assigned to the I/O device by the virtual machine in accordance with a predetermined specification;

when trapping a setting request signal from the virtual machine after booting up the virtual machine, determining whether or not a target of the setting request signal is an I/O device registered in the number table;

when determining that a target of the setting request is an I/O device registered in the number table, reading an identifier of the virtual machine and the identifier of the I/O device that are included in a trapped signal;

specifying an interface identifier in the address table by a read identifier of the virtual machine and a read identifier of the I/O device; and

executing initialization on the I/O device through an interface with a specified interface identifier.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 20, 2018
From: TSUJI, AKIRA
To: NEC CORPORATION
Reel/Frame 045995/0554 →
Priority Claims (1)
JP 2015-208114 · Oct 22, 2015 · national
Continuity (1)
Related Publication 20180321964A1 · Nov 8, 2018