# US 2018/0321964 A1 · Computer, device allocation management method, and program recording medium

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2018/0321964 A1
- Document ID: US20180321964A1
- Status: Published application
- Kind: A1
- Application number: 15/770,045
- Filed: 2016-10-17
- Published: 2018-11-08
- Earliest claimed: 2015-10-22
- Assignees: NEC Corporation
- Applicants: NEC Corporation
- Inventors: Akira TSUJI
- Web page: https://patentgrep.com/patent/US20180321964A1

## CPC

- G06F 9/45558: {Hypervisor-specific management and integration aspects}
- G06F 9/4401: Bootstrapping (security arrangements therefor G06F21/57)
- G06F 9/4411: {Configuring for operating with peripheral devices; Loading of device drivers}
- G06F 9/5027: {the resource being a machine, e.g. CPUs, Servers, Terminals}
- G06F 2009/45575: {Starting, stopping, suspending or resuming virtual machine instances}
- G06F 2009/45579: {I/O management, e.g. providing access to device drivers or storage}
- G06F 2009/45591: {Monitoring or debugging support}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## 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

### Claim 1

A computer comprising:
a storage unit 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;
a virtual machine monitor that specifies an I/O device required for operation of the virtual machine; and
an I/O device manager that determines whether or not an I/O device specified by the virtual machine monitor 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 unit, an identifier assigned to the I/O device in accordance with a predetermined specification.

### Claim 2 (depends on 1)

The computer according to claim 1, wherein
the storage unit further includes 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 an interface identifier being an identifier of an interface connected between the I/O device and the network,
the I/O device list holds a set of information including a type and a specification of the I/O device, the interface identifier of an interface connected to the I/O device, and an identifier of a virtual machine being an allocation destination of the I/O device,
when determining that the I/O device is allocable to the virtual machine, the I/O device manager 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 notifies initialization information to the virtual machine monitor, and
the virtual machine monitor holds the initialization information of the I/O device, the information being notified from the I/O device manager, 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.

### Claim 3 (depends on 1)

The computer according to claim 1, wherein
the storage unit further includes
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 an interface identifier being an identifier of an interface connected between the I/O device and the network, and
a number table that holds the identifier of the I/O device allocated to the virtual machine,
the I/O device list holds a set of information including a type and a specification of the I/O device, the interface identifier of an interface connected to the I/O device, and an identifier of a virtual machine being an allocation destination of the I/O device,
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 virtual machine monitor determines whether or not a target of the setting request 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, notifies the I/O device manager of an identifier of the virtual machine and the identifier of the I/O device that are included in a trapped signal, and
the I/O device manager 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.

### Claim 4

A device allocation management method by a computer comprising:
storing 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;
specifying an I/O device required for operation of the virtual machine; and
determining whether or not an I/O device specified by the virtual machine monitor 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 unit, an identifier assigned to the I/O device in accordance with a predetermined specification.

### Claim 5 (depends on 4)

The device allocation management method according to claim 4, wherein
the I/O device list holds a set of information including a type and a specification of the I/O device, the interface identifier of an interface connected to the I/O device, and an identifier of a virtual machine being an allocation destination of the I/O device, the method further comprising:
storing, in the storage unit, 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 an interface identifier being an identifier of an interface connected between the I/O device and the network;
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.

### Claim 6 (depends on 4)

The device allocation management method according to claim 4, wherein
the I/O device list holds a set of information including a type and a specification of the I/O device, the interface identifier of an interface connected to the I/O device, and an identifier of a virtual machine being an allocation destination of the I/O device, and
the identifier of the I/O device is assigned by the virtual machine, the method further comprising:
storing, in the storage unit,
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 an interface identifier being an identifier of an interface connected between the I/O device and the network, and
a number table that holds the identifier of the I/O device allocated to the virtual machine;
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 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.

### Claim 7

A program storage medium storing a program that causes a computer to execute:
a procedure of storing 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;
a procedure of specifying an I/O device required for operation of the virtual machine; and
a procedure of determining whether or not an I/O device specified by the virtual machine monitor 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 unit, an identifier assigned to the I/O device in accordance with a predetermined specification.

### Claim 8 (depends on 7)

The program recording medium according to claim 7, wherein
the I/O device list holds a set of information including a type and a specification of the I/O device, the interface identifier of an interface connected to the I/O device, and an identifier of a virtual machine being an allocation destination of the I/O device,
the program further causing the computer to execute:
a procedure of storing, in the storage unit, 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 an interface identifier being an identifier of an interface connected between the I/O device and the network;
a procedure of updating, when determining that the I/O device is allocable to the virtual machine, 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;
a procedure of executing, before boot-up of the virtual machine, initialization of an I/O device allocated to the virtual machine and holding initialization information; and
a procedure of responding to, 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, initialization processing by the virtual machine, based on the held initialization information of the I/O device.

### Claim 9 (depends on 7)

The program recording medium according to claim 7, wherein
the I/O device list holds a set of information including a type and a specification of the I/O device, the interface identifier of an interface connected to the I/O device, and an identifier of a virtual machine being an allocation destination of the I/O device, and
the identifier of the I/O device is assigned by the virtual machine,
the program further causing the computer to execute:
a procedure of storing, in the storage unit,
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 an interface identifier being an identifier of an interface connected between the I/O device and the network, and
a number table that holds the identifier of the I/O device allocated to the virtual machine;
a procedure of determining, when trapping a setting request signal from the virtual machine after booting up the virtual machine, whether or not a target of the setting request is an I/O device registered in the number table;
a procedure of reading, when determining that a target of the setting request is an I/O device registered in the number table, an identifier of the virtual machine and the identifier of the I/O device that are included in a trapped signal;
a procedure of 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
a procedure of executing initialization on the I/O device through an interface with a specified interface identifier.
