WO2015190079A1 - 計算機システム、遠隔デバイスの接続管理方法及びプログラム記録媒体 - Google Patents

計算機システム、遠隔デバイスの接続管理方法及びプログラム記録媒体 Download PDF

Info

Publication number
WO2015190079A1
WO2015190079A1 PCT/JP2015/002838 JP2015002838W WO2015190079A1 WO 2015190079 A1 WO2015190079 A1 WO 2015190079A1 JP 2015002838 W JP2015002838 W JP 2015002838W WO 2015190079 A1 WO2015190079 A1 WO 2015190079A1
Authority
WO
WIPO (PCT)
Prior art keywords
remote device
operating system
remote
guest operating
guest
Prior art date
Application number
PCT/JP2015/002838
Other languages
English (en)
French (fr)
Inventor
高橋 雅彦
Original Assignee
日本電気株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 日本電気株式会社 filed Critical 日本電気株式会社
Priority to US15/318,012 priority Critical patent/US10157163B2/en
Priority to JP2016527631A priority patent/JP6743696B2/ja
Publication of WO2015190079A1 publication Critical patent/WO2015190079A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/102Program control for peripheral devices where the programme performs an interfacing function, e.g. device driver
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4063Device-to-bus coupling
    • G06F13/4068Electrical coupling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45579I/O management, e.g. providing access to device drivers or storage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0026PCI express
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2101/00Indexing scheme associated with group H04L61/00
    • H04L2101/60Types of network addresses
    • H04L2101/604Address structures or formats
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2101/00Indexing scheme associated with group H04L61/00
    • H04L2101/60Types of network addresses
    • H04L2101/618Details of network addresses
    • H04L2101/622Layer-2 addresses, e.g. medium access control [MAC] addresses

Definitions

  • the present invention relates to a computer system, a remote device connection management method, and a program recording medium, and particularly to a computer system that performs input / output with a remote device via a network, a remote device connection management method, and a program recording medium.
  • the computer includes a CPU (Central Processing Unit) and a device connected via a system bus (hereinafter also referred to as a “bus”), and the device is accessed by an instruction of a program executed on the CPU. . Access to a device is called “input / output processing” or “I / O processing”. On the other hand, the software for controlling the device is called “OS (Operating System)”. Software in the OS for controlling a device in particular is called a “device driver”. On the OS, a plurality of user programs are executed under the control of the OS. In order to prevent direct access to the device from the user program, the execution authority differs between the OS and the user program.
  • OS Operating System
  • CPUs include Intel's Xeon (registered trademark) and Atom.
  • OS examples include Linux (registered trademark) and Windows (registered trademark) of Microsoft Corporation.
  • system bus examples include PCI (Peripheral Component Interconnect) and PCI-Express.
  • devices include a hard disk drive (HDD: Hard Disk Drive) and a network interface card (NIC: Network Interface Card).
  • the device is scanned by BIOS (Basic Input / Output System) when the computer is started, and an ID (identifier, identifier), a memory area, and the like are assigned. At this point, the device is not available.
  • BIOS Basic Input / Output System
  • the device is initialized by the device driver for the device supported by the OS among the scanned devices. As a result, the device becomes available.
  • An example of this ID is a “bus number / device number / function number” pair (BDF), and a device connected to a computer can be uniquely specified by this pair. Note that this set is a logical number and may change depending on the number, configuration, and scan order of devices.
  • an I / O instruction is defined as a CPU instruction set. Therefore, when the program issues a CPU instruction, an I / O instruction is output to the bus, and the device is accessed.
  • the OS accesses a specific memory address
  • the CPU or the chip set that controls the bus converts it into I / O processing and outputs it to the bus, thereby allowing access to the device. Done.
  • I / O instructions When accessing a device, a memory address, ID, or the like for specifying the device is designated by an I / O command.
  • FIG. 9 is a block diagram illustrating the configuration of a virtualization computer that operates such a plurality of virtual hardware environments.
  • An OS that manages the virtual hardware environment as shown in FIG. 9 is referred to as a host OS X110.
  • the OS executed on the virtual hardware environment is called a guest OS.
  • a host OS X110 a plurality of guest OSs can be executed (see reference numerals X101 to X10n).
  • the guest OS may be different from the host OS X110, and the guest OS types may be different from each other.
  • kvm, VMWare (registered trademark), ESXi server, and the like are known.
  • the device A (hereinafter referred to as the guest OS X101) is virtualized. , Referred to as “virtual device”). That is, the device driver B included in the host OS X110 controls the device B X131. On the other hand, the device driver A included in the guest OS (for example, guest OS X101) controls the virtual device A. At this time, the host OS X110 converts the I / O command issued by the device driver A of the guest OS (eg, guest OS X101) so that the device driver of the device B X131 can interpret it.
  • Patent Document 1 discloses “pass-through technology” in which device management is performed by a device driver of a guest OS instead of a host OS. According to the technique described in Patent Document 1, a guest OS can control some devices connected to a computer instead of a host OS.
  • Patent Document 2 a technique for virtually extending the bus is disclosed in Patent Document 2.
  • the technique described in Patent Document 2 it is possible to physically extend the distance between the CPU and the device by transferring the data on PCI-Express to a network such as Ethernet (registered trademark).
  • data is transferred in the form of packets.
  • the packet is a transfer unit for performing communication between two points, and generally the addresses of the transmission source and the transmission destination are described in the packet.
  • FIG. 10 is a block diagram showing a configuration of a computer to which the bus extension technique described in Patent Document 2 is applied.
  • an upstream bridge X140 is provided on the CPU X120 side
  • a downstream bridge X420 is provided on the device (peripheral device X130) side.
  • the bridges X140 and X420 perform packet encapsulation or decapsulation (that is, decapsulation). Encapsulation allows bus data to flow over an Ethernet network. Since Ethernet also transfers data by packet, hereinafter, a packet that flows on the network is referred to as a “network packet”.
  • Patent Document 3 discloses a technique for facilitating connection of a virtual environment USB (Universal Serial Bus) device. Specifically, Patent Document 3 discloses a virtual bus system having a device management unit that refers to a device management table that manages a permission list and a connection state of another device and determines whether enumeration is possible. .
  • a virtual bus system having a device management unit that refers to a device management table that manages a permission list and a connection state of another device and determines whether enumeration is possible. .
  • FIG. 11 shows an example in which a plurality of remote devices and a plurality of guest OSs are directly connected by pass-through. Since remote devices may be located at remote locations, a guest OS must be associated with the same remote device each time.
  • the guest OS-A controls device A (bus number / device number / function number is 1/0/0)
  • guest OS-B is device B (bus number / device number / function number is 2). / 0/0).
  • the remote device designation method linked to the guest OS changes when some of the plurality of remote devices are not activated.
  • the bus number / device number / function number of the device B in the remote device X20B is not 2/0/0, for example, 1/0/0. End up. Therefore, the guest OS-A may control the device B.
  • the same device has the same configuration (always activated) every time, and a logical number is used for device number assignment. Therefore, there is a demand for a method for providing a method that does not change the remote device designation method from the guest OS even when some of the plurality of remote devices are not activated.
  • An object of the present invention is to improve the ease of connection between a guest OS and a remote device in a configuration in which pass-through technology and bus extension technology are combined.
  • a bus extension means for constructing a virtual bus between one or more remote devices connected via a network, a virtual hardware environment, and the remote device as a guest Execution means for executing a host operating system to be controlled by the operating system, and the bus extension means uses the identification information that does not change depending on the activation state of the remote device, and the correspondence relationship between the guest operating system and the remote device
  • a computer system is provided that includes communication control means for controlling communication between the guest operating system and the remote device.
  • a bus extension means for constructing a virtual bus between one or more remote devices connected via a network, a virtual hardware environment, and the remote device as a guest And an execution unit that executes a host operating system to be controlled by the operating system, and manages a correspondence relationship between the guest operating system and the remote device using identification information that does not change depending on an activation state of the remote device.
  • a scan command from the guest operating system is transferred to the remote device, and referring to the management table, a response to be transferred to the guest operating system is selected from responses from the remote device.
  • Remote device Connection management method is provided. The method is tied to a specific machine, a computer system that allows the guest operating system to control the remote device.
  • a program for realizing the functions of the computer system described above is provided.
  • This program can be recorded on a computer-readable (non-transient) storage medium. That is, the present invention can be embodied as a computer program product.
  • the present invention it becomes possible to improve the ease of connection between the guest OS and the remote device in a configuration in which the pass-through technology and the bus extension technology are combined.
  • FIG. 1 is a diagram showing a configuration of an embodiment of the present invention.
  • FIG. 2 is a diagram showing a configuration of the first exemplary embodiment of the present invention.
  • FIG. 3 is a block diagram illustrating the configuration of the remote device according to the first embodiment of this invention.
  • FIG. 4 is a block diagram showing the configuration of the computer system according to the first embodiment of this invention.
  • FIG. 5 is a diagram illustrating an example of an entry configuration of the device management table held by the computer system according to the first embodiment of this invention.
  • FIG. 6 is a diagram illustrating a setting example of a device management table held by the computer system according to the first embodiment of this invention.
  • FIG. 7 is a flowchart showing the operation of the remote device according to the first exemplary embodiment of the present invention.
  • FIG. 1 is a diagram showing a configuration of an embodiment of the present invention.
  • FIG. 2 is a diagram showing a configuration of the first exemplary embodiment of the present invention.
  • FIG. 3 is a block diagram illustrating
  • FIG. 8 is a flowchart showing the operation of the computer system according to the first embodiment of this invention.
  • FIG. 9 is a block diagram for explaining the configuration of the virtualization computer.
  • FIG. 10 is a block diagram for explaining the configuration of a computer system to which the bus extension technology is applied.
  • FIG. 11 is a reference diagram for explaining the problem of the present invention.
  • FIG. 12 is a diagram showing a configuration of a modified embodiment of the present invention.
  • the present invention can be realized by a computer system including the bus extension unit 140A, the OS execution unit 120A, and the communication control unit 142A shown in FIG.
  • the bus extension 140A constructs a virtual bus with one or more remote devices connected via a network.
  • the OS execution unit 120A executes a host OS 110 that configures a virtual hardware environment and causes the guest OSs 101 to 10n to control remote devices.
  • the communication control unit 142A controls communication between the guest OSs 101 to 10n and the remote device.
  • the communication control unit 142A uses the identification information that does not change depending on the activation state of the remote device, and refers to the management table 141A that manages the correspondence between the guest OSs 101 to 10n and the remote device, thereby referring to the guest OS 101 Control communications between ⁇ 10n and remote devices.
  • the computer system manages the correspondence between the guest OS and the remote device using the identification information that does not change depending on the activation state of the remote device. Therefore, even when a part of the remote device is not activated, it is possible to correctly specify the remote device from the guest OS.
  • FIG. 2 is a diagram showing a configuration of the first exemplary embodiment of the present invention. As shown in FIG. 2, the computer system 100 and the remote device 200 are connected via a network 300.
  • FIG. 3 is a block diagram illustrating the configuration of the remote device 200.
  • the configuration of the remote device 200 will be described in detail with reference to FIG.
  • the remote device 200 includes a communication unit 210, a downstream bridge (bus extension unit (remote)) 220, and n (n is an integer of 1 or more) remote devices 231 to 23n.
  • the remote devices 231 to 23n may be devices connected to the system bus.
  • the remote devices 231 to 23n are, for example, hard disks or network interface cards that can be directly connected to the bus.
  • the downstream bridge (bus extension (remote)) 220 is paired with an upstream bridge (bus extension (host)) on the computer system side to be described later.
  • the downstream bridge (bus extension (remote)) 220 decapsulates and encapsulates data for the remote devices 231 to 23n and data on the bus sent from the remote devices 231 to 23n, respectively.
  • the downstream bridge (bus extension (remote)) 220 may have functions such as transmission rate control and retransmission control when a packet is lost on the network.
  • the communication unit 210 is an interface unit for communicating with the network 300.
  • Examples of the network 300 include Ethernet (registered trademark) and InfiniBand. However, these networks are merely examples.
  • the network 300 is not particularly limited as long as the bus extension technology described as the background technology can be used between the computer system 100 and the remote device 200.
  • the communication unit 210 of the remote device 200 is given an address (for example, a MAC (Media Access Control) address) that can be uniquely specified on the network 300.
  • this MAC address is used as identification information that does not change depending on the activation state of the remote device (detailed later).
  • the downstream bridge (bus extension (remote)) 220 intermittently transmits heartbeat (HB: Heart Beat) information via the communication unit 210 toward the network 300.
  • heartbeat Heart Beat
  • this heartbeat information is broadcast.
  • the downstream bridge (bus extension (remote)) 220 knows the address on the host side in advance, it may send heartbeat information only to the host specified by the address.
  • the heartbeat information includes information on the remote devices 231 to 23n mounted on the remote device 200 and the MAC address of the communication unit 210.
  • FIG. 4 is a block diagram showing the configuration of the computer system 100 of this embodiment.
  • the computer system 100 includes a CPU 120, a peripheral device 130, an upstream bridge (bus extension unit (host)) 140, and a communication unit 150. Further, the CPU 120 executes various programs including the host OS 110 and guest OSs 101 to 10n (n is an integer of 1 or more).
  • Peripheral device 130 is a device that can be connected to the system bus.
  • the upstream bridge (bus extension (host)) 140 is paired with the downstream bridge (bus extension (remote)) 220 of the remote device 200.
  • the upstream bridge (bus extension unit (host)) 140 encapsulates and transmits the data packet flowing on the bus to the network 300.
  • the upstream bridge (bus extension unit (host)) 140 receives the encapsulated network packet from the network 300, it decapsulates (decapsulates) the data and then sends the data to the guest OSs 101 to 10n or the system bus. Forward the packet.
  • TCP Transmission Control Protocol
  • IP Internet Protocol
  • the computer system 100 includes a host OS 110.
  • the host OS 110 provides a virtual hardware environment to the guest OSs 101 to 10n that perform I / O processing with devices (remote devices 231 to 23n) provided in the remote apparatus 200.
  • the host OS 110 controls the upstream bridge (bus extension unit (host)) 140 so that the I / O command issued by the guest OSs 101 to 10n is encapsulated and sent as a packet to the remote device 200.
  • the guest OSs 101 to 10n are referred to as “guest OS 10x” unless otherwise distinguished.
  • the upstream bridge (bus extension unit (host)) 140 receives the response packet from the remote device 200 with respect to the transmitted packet, the upstream bridge decapsulates the response packet to extract the data, and transfers the extracted data to the guest OS 10x. .
  • the communication unit 150 is an interface for connecting to the network 600, and is connected to a network different from the network 300 connected to the communication unit 210 of the remote device 200.
  • the guest OS 10x includes a device driver for controlling the remote devices 231 to 23n of the remote device 200.
  • the guest OS 10x does not need to include device drivers corresponding to all of the remote devices 231 to 23n, but may include a device driver that can control a required remote device among the remote devices 231 to 23n.
  • the upstream bridge (bus extension unit (host)) 140 of this embodiment includes a device management table 141, a scan result inspection unit 142, and a network adapter 143.
  • FIG. 5 is a diagram showing the configuration of one entry of the device management table 141.
  • the device management table 141 is a table in which a combination of a guest OS and a remote device is designated in advance.
  • the device management table 141 can store an entry in which a MAC address, a vendor ID, a device ID, and a corresponding guest OS are associated with each other.
  • the vendor ID and device ID are numbers for identifying the remote devices 231 to 23n in the remote apparatus 200.
  • the vendor ID and device ID are the same vendor ID and device ID in the case of the same type of device.
  • the MAC address is a MAC address possessed by the communication unit of the remote device that holds the device.
  • the corresponding guest OS indicates the identifier of the guest OS that is combined with the remote devices 231 to 23n of the remote apparatus 200 specified by the entry (has access rights to the remote devices 231 to 23n).
  • FIG. 6 shows a specific setting example of the device management table 141.
  • the remote device information of the remote device 200 whose MAC address of the communication unit 210 is AA :: AA and the remote device 200 of which the MAC address of the communication unit 210 is BB :: BB are information. Is set.
  • a guest OS-A is set as a corresponding guest OS in a remote device whose MAC address is AA :: AA and whose vendor ID and device ID are 0xabcd and 0x1234, respectively.
  • a guest OS-B is set as a corresponding guest OS in a remote device whose MAC address is BB :: BB and whose vendor ID and device ID are 0xabcd and 0x1234, respectively.
  • a guest OS-B is set as a corresponding guest OS in another remote device whose MAC address is AA :: AA and whose vendor ID and device ID are 0xcdef and 0x9876, respectively.
  • the scan result (response) of the remote device with the vendor ID 0xcdef and the device ID 0x9876 is the upstream bridge (bus extension (host extension (host )) 140.
  • the scan result inspection unit 142 of the upstream bridge (bus extension unit (host)) 140 confirms that the combination is not permitted with reference to the device management table 141 illustrated in FIG. 6, the scan result ( Response).
  • the scan result inspection unit 142 returns an error to the guest OS-A. Therefore, the guest OS-A does not recognize the device having the vendor ID of 0xcdef and the device ID of 0x9876.
  • the MAC address of the communication unit 210 of the remote device is used as identification information that does not change depending on the activation state of the remote device.
  • the identification information that does not change depending on the activation state of the remote device is not limited to the MAC address, and other identification information given to the remote device may be used instead of the MAC address.
  • the scan result inspection unit 142 of the computer system 100 shown in FIG. 4 can also be realized by a computer program that operates on the host OS 110.
  • the device management table 141 and the scan result inspection unit 142 can be incorporated into a virtual BIOS (Basic Input / Output System) provided by the host OS 110.
  • FIG. 12 is a diagram showing a configuration of a computer system 100a according to the configuration of this modified embodiment. In the example of FIG. 12, a device management table 141a and a scan result inspection unit 142a are incorporated in the virtual BIOS 111 provided by the host OS 110.
  • FIG. 7 is a flowchart showing the operation after the remote device according to this embodiment is activated.
  • the communication unit 210 and the downstream bridge (bus extension unit (remote)) 220 of the remote device 200 are activated (step S001).
  • the remote devices 231 to 23n are energized and turned on, but only the hardware on the remote devices 231 to 23n is initialized, and the device driver is not initialized.
  • the downstream bridge (bus extension unit (remote)) 220 starts intermittent transmission of the heartbeat information packet toward the network 300 via the communication unit 210 (step S002). If the host OS 110 of the computer system 100 is not activated, the heartbeat information is not received and discarded on the network 300.
  • FIG. 8 is a flowchart showing the operation of the computer system 100 of this embodiment.
  • the host OS 110 is activated (step S101).
  • the host OS 110 initializes the peripheral device 130 and the communication unit 150 in the computer system 100, and simultaneously scans the remote devices 231 to 23n through the upstream bridge (bus extension unit (host)) 140.
  • the communication unit 150 in the computer system 100 can be used.
  • the upstream bridge (bus extension unit (host)) 140 receives the heartbeat information transmitted from the remote device 200 (step S102). Accordingly, the upstream bridge (bus extension unit (host)) 140 can recognize the remote devices 231 to 23n connected to the remote device 200 and acquire the information. Further, the upstream bridge (bus extension unit (host)) 140 acquires the MAC address of the communication unit 210 of the remote device 200 based on the heartbeat information.
  • the guest OS 10x issues a command for scanning a device (step S103).
  • the upstream bridge (bus extension unit (host)) 140 searches the device management table 141, designates the MAC address of the communication unit 210 of the remote device 200 to which the guest OS 10x is permitted, and issues a device scan command. .
  • the MAC address of the communication unit 210 is a uniquely determined ID, the combination with the guest OS 10x does not change even if some of the plurality of remote devices 200 are not activated.
  • the remote device 200 that has received the device scan command returns a device type to the device scan command issuer.
  • the device type response includes a combination of “vendor ID and device ID” shown in FIGS. 5 and 6. Of course, “vendor ID and device ID” are examples of responses.
  • the remote device 200 may send device type information instead of “vendor ID and device ID”, or may add other information.
  • the scan result checking unit 142 of the upstream bridge (bus extension unit (host)) 140 Upon receiving the returned device type, the scan result checking unit 142 of the upstream bridge (bus extension unit (host)) 140 refers to the device management table and uses the type of device for which the guest OS 10x is permitted. It is confirmed whether there is any (steps S104 to S105). When the combination of the device type and the guest OS 10x is a permitted combination (Yes in step S105), the scan result inspection unit 142 returns the scan result to the guest OS 10x (step S106). The guest OS 10x that has detected the remote device initializes the remote device by the device driver, and accesses it as necessary (step S108).
  • the scan result inspection unit 142 discards the scan result and gives an error ( (Device not detected) is returned (step S107).
  • the remote devices 200 even when one or more of the remote devices 200 are not activated, it is not necessary to change the designation method of the remote device 200 assigned to the guest OS 10x.
  • the effect is played. This effect is achieved by using a unique identifier (MAC address) of the communication unit 210 of the remote device 200 as identification information for designating a remote device.
  • MAC address unique identifier
  • the same effect can be obtained without providing the device management table 141 and the scan result inspection unit 142 on the upstream bridge (bus extension unit (host)) 140a side.
  • the communication control means refers to the management table, and among the responses from the remote device to the scan command from the guest operating system, the response from the remote device not associated with the guest operating system that is the source of the scan command A computer system that functions as a scan result inspection means for discarding data.
  • the bus extension means rewrites the destination of the scan command to the MAC address and transfers it.
  • the remote device is a PCI-Express device corresponding to the PCI-Express protocol
  • the bus extension means is a computer system that constructs a virtual bus with the remote device by performing encapsulation based on the PCI-Express protocol.
  • the remote device is a PCI-Express device corresponding to the PCI-Express protocol
  • Communication between the guest operating system and a remote device is a remote device connection management method which is performed via a virtual bus established between the guest operating system and the remote device by performing encapsulation based on a PCI-Express protocol.
  • Eighth form (Refer to the program from the third viewpoint) Note that the eighth embodiment can be developed into second to fourth embodiments as in the first embodiment.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Small-Scale Networks (AREA)
  • Stored Programmes (AREA)
  • Bus Control (AREA)

Abstract

 本発明の計算機システムは、パススルー技術とバス延長技術とを組み合わせた構成におけるゲストOSと遠隔デバイス間の接続容易性を向上させる。計算機システムは、ネットワークを介して接続された1つ以上の遠隔デバイスとの間に仮想的なバスを構築するバス延長手段と、仮想ハードウェア環境を構成し、前記遠隔デバイスをゲストオペレーティングシステムに制御させるホストオペレーティングシステムを実行する実行手段と、を備え、前記バス延長手段は、前記遠隔デバイスの起動状態によって変化しない識別情報を用いて前記ゲストオペレーティングシステムと前記遠隔デバイスとの対応関係を管理する管理テーブルを参照して、前記ゲストオペレーティングシステムと前記遠隔デバイス間の通信を制御する通信制御手段を含む。

Description

計算機システム、遠隔デバイスの接続管理方法及びプログラム記録媒体
 本発明は、計算機システム、遠隔デバイスの接続管理方法及びプログラム記録媒体に関し、特に、ネットワークを介して遠隔デバイスとの入出力を行う計算機システム、遠隔デバイスの接続管理方法及びプログラム記録媒体に関する。
 コンピュータは、システムバス(以下「バス」ともいう。)を介して接続されたCPU(Central Processing Unit)とデバイスを備えており、CPU上で実行されるプログラムの指示によってデバイスへのアクセスが行われる。デバイスへのアクセスは、「入出力処理」または「I/O処理」と呼ばれる。一方、デバイスを制御するソフトウェアは、「OS(Operating System)」と呼ばれる。OSのうちの特にデバイスを制御するためのソフトウェアは、「デバイスドライバ」と呼ばれる。また、OS上では、複数のユーザープログラムがOSの制御によって実行される。ユーザープログラムからデバイスに直接アクセスできないようにするため、OSとユーザープログラムとでは実行権限が異なる。
 CPUの例として、Intel社のXeon(登録商標)やAtomなどがある。一方、OSの例として、Linux(登録商標)やMicrosoft社のWindows(登録商標)がある。また、システムバスの例として、PCI(Peripheral Component Interconnect)やPCI-Expressがある。さらに、デバイスの例として、ハードディスクドライブ(HDD:Hard Disk Drive)やネットワークインターフェースカード(NIC:Network Interface Card)などがある。
 デバイスは、コンピュータの起動時にBIOS(Basic Input/Output System)によってスキャンされ、ID(識別子、Identifier)やメモリ領域などが割り当てられる。この時点では、デバイスは利用可能な状態ではない。OSの起動後、スキャンされたデバイスのうちのOSが対応しているデバイスに対するデバイスドライバによって、デバイスの初期化が行われる。これにより、デバイスは利用可能な状態となる。このIDの一例としては「バス番号/デバイス番号/ファンクション番号」の組(BDF)があり、コンピュータに接続されたデバイスはこの組によって一意に指定できる。なお、この組は論理番号であり、デバイスの数や構成やスキャン順によって変わることがある。
 実行中のOSがデバイスにアクセスする方法として、I/O命令の発行と、MMIO(Memory-Mapped I/O)によるアクセスの2通りの方法が知られている。
前者の方法では、CPUの命令セットとしてI/O命令が定義されている。したがって、プログラムがCPU命令を発行することによってバスにI/O命令が出力され、デバイスへのアクセスが行われる。一方、後者の方法では、OSが特定のメモリアドレスにアクセスした際、CPUまたはバスを制御するチップセットが、これをI/O処理に変換してバスに出力することで、デバイスへのアクセスが行われる。上述のように、BIOSがデバイスをスキャンするとき、デバイスが要求するメモリ空間サイズを物理メモリ空間に割り当てるため、割り当てられた物理メモリ空間へのメモリアクセスがI/O命令に置き換わる。以下では、これら2つのデバイスアクセスの方法を総称して「I/O命令」という。
デバイスにアクセスする際には、デバイスを特定するメモリアドレスやIDなどをI/O命令で指定する。
 最近では、CPUの高性能化により、多少のソフトウェアオーバヘッドを許容できるようになってきている。これに伴い、ハードウェアを仮想化して、単一のCPU上で複数の仮想ハードウェア環境を稼働させることが可能になっている。
 図9は、このような複数の仮想ハードウェア環境を稼働させた仮想化コンピュータの構成を例示するブロック図である。図9に示すような仮想ハードウェア環境を管理するOSを、ホストOS X110と呼ぶ。一方、仮想ハードウェア環境上で実行されるOSを、ゲストOSと呼ぶ。ホストOS X110は1つであるが、ゲストOSは複数実行することができる(符号X101~X10n参照)。また、ゲストOSはホストOS X110と種類が異なってもよく、ゲストOSの種類が互いに異なっていてもよい。仮想ハードウェア環境を提供するホストOS X110の例として、kvmやVMWare社のVMWare(登録商標)やESXiサーバなどが知られている。
 一般に、仮想化環境においては、ホストOS X110に繋がっているデバイスB X131をゲストOSに対して直接認識させる代わりに、ゲストOS(例えば、ゲストOS X101)に対して仮想化されたデバイスA(以下、「仮想デバイス」という。)が提供される。すなわち、ホストOS X110が有するデバイスドライバBは、デバイスB X131を制御する。一方、ゲストOS(例えば、ゲストOS X101)が有するデバイスドライバAは、仮想デバイスAを制御する。このとき、ホストOS X110は、ゲストOS(例えば、ゲストOS X101)のデバイスドライバAが発行したI/O命令を、デバイスB X131のデバイスドライバが解釈できるように変換する。
 一方、デバイスの管理をホストOSではなくゲストOSのデバイスドライバが行う「パススルー技術」が、特許文献1に開示されている。特許文献1に記載された技術によると、ホストOSの代わりにゲストOSが、コンピュータに繋がっている一部のデバイスを制御することができる。
 また、バスを仮想的に延長する技術が、特許文献2に開示されている。特許文献2に記載された技術によると、PCI-Express上のデータをイーサネット(Ethernet、登録商標)などのネットワークに転送することで、CPUとデバイスの距離を物理的に延長することが可能となる。PCI-Expressバスでは、データはパケットの形式で転送される。ここで、パケットとは、2点間の通信を行うための転送単位のことであり、一般に、送信元と送信先のアドレスがパケット内に記載されている。
 図10は、特許文献2に記載されたバス延長技術を適用したコンピュータの構成を示すブロック図である。図10を参照すると、特許文献2に記載された技術では、CPU X120側に上流ブリッジX140が設けられ、デバイス(周辺機器X130)側に下流ブリッジX420が設けられている。ブリッジX140、X420は、パケットのカプセル化またはデカプセル化(すなわち、カプセル化の解除)を行う。カプセル化によって、Ethernet(登録商標)のネットワーク上にバスのデータを流すことが可能になる。
Ethernetもパケットによってデータを転送しているため、以下ではネットワーク上を流れるパケットのことを「ネットワークパケット」と呼ぶ。
 特許文献3には、仮想化環境のUSB(Universal Serial Bus)デバイスの接続を容易化する手法が開示されている。具体的には、特許文献3は、許可リストと他のデバイスの接続状態を管理するデバイス管理テーブルを参照し、エニュメレーションの可否を判断するデバイス管理部を有する仮想バスシステムを開示している。
特開2010-237737号公報 特開2007-219873号公報 特開2011-145827号公報
 上記特許文献の全開示内容は、本書に引用をもって繰り込み記載されているものとする。以下の分析は、本発明者によってなされたものである。特許文献1に記載されたパススルー技術(図9)と、特許文献2に記載されたバス延長技術(図10)を組み合わせることにより、ゲストOSがネットワークを介して接続された遠隔デバイスを直接制御するコンピュータシステムを実現することが可能となる。図11は複数のリモート装置と複数のゲストOSがパススルーによって直接結びつけられた例である。リモート装置はそれぞれが離れた場所に配置されることもあるため、あるゲストOSは毎回同じリモート装置と結び付けられなければならない。図11の例ではゲストOS-AはデバイスA(バス番号/デバイス番号/ファンクション番号は1/0/0)を制御し、ゲストOS-BはデバイスB(バス番号/デバイス番号/ファンクション番号は2/0/0)を制御している。
 しかしながら、上記パススルー技術とバス延長技術とを組み合わせた構成では、複数ある遠隔デバイスの一部が起動しなかった場合にゲストOSと結びつける遠隔デバイスの指定方法が変わってしまうという問題点がある。例えば、図11の例では、リモート装置X20Aが起動しなかった場合、リモート装置X20BにあるデバイスBのバス番号/デバイス番号/ファンクション番号が2/0/0ではなく例えば1/0/0になってしまう。このためゲストOS-AがデバイスBを制御してしまう可能性がある。これは、毎回同じデバイスが同じ構成である(常に起動している)ということを前提にし、デバイス番号の割り当てに論理番号を用いている点に原因がある。そこで、複数ある遠隔デバイスの一部が起動しなかった場合でもゲストOSからの遠隔デバイスの指定方法が変わらない方法を提供する手法の提案が求められている。
 本発明の目的は、パススルー技術とバス延長技術とを組み合わせた構成におけるゲストOSと遠隔デバイス間の接続容易性を向上させることにある。
 第1の視点によれば、ネットワークを介して接続された1つ以上の遠隔デバイスとの間に仮想的なバスを構築するバス延長手段と、仮想ハードウェア環境を構成し、前記遠隔デバイスをゲストオペレーティングシステムに制御させるホストオペレーティングシステムを実行する実行手段と、を備え、前記バス延長手段は、前記遠隔デバイスの起動状態によって変化しない識別情報を用いて前記ゲストオペレーティングシステムと前記遠隔デバイスとの対応関係を管理する管理テーブルを参照して、前記ゲストオペレーティングシステムと前記遠隔デバイス間の通信を制御する通信制御手段を含む計算機システムが提供される。
 第2の視点によれば、ネットワークを介して接続された1つ以上の遠隔デバイスとの間に仮想的なバスを構築するバス延長手段と、仮想ハードウェア環境を構成し、前記遠隔デバイスをゲストオペレーティングシステムに制御させるホストオペレーティングシステムを実行する実行手段と、を備える計算機システムにおいて、前記遠隔デバイスの起動状態によって変化しない識別情報を用いて前記ゲストオペレーティングシステムと前記遠隔デバイスとの対応関係を管理する管理テーブルを参照して、前記ゲストオペレーティングシステムからのスキャン命令を前記遠隔デバイスに転送し、前記管理テーブルを参照して、前記遠隔デバイスからの応答のうち、前記ゲストオペレーティングシステムに転送する応答を選別する遠隔デバイスの接続管理方法が提供される。本方法は、ゲストオペレーティングシステムに遠隔デバイスを制御させる計算機システムという、特定の機械に結びつけられている。
 第3の視点によれば、上記した計算機システムの機能を実現するためのプログラムが提供される。なお、このプログラムは、コンピュータが読み取り可能な(非トランジエントな)記憶媒体に記録することができる。即ち、本発明は、コンピュータプログラム製品として具現することも可能である。
 本発明によれば、パススルー技術とバス延長技術とを組み合わせた構成におけるゲストOSと遠隔デバイス間の接続容易性を向上させることが可能となる。
図1は、本発明の一実施形態の構成を示す図である。 図2は、本発明の第1の実施形態の構成を示す図である。 図3は、本発明の第1の実施形態のリモート装置の構成を示すブロック図である。 図4は、本発明の第1の実施形態の計算機システムの構成を示すブロック図である。 図5は、本発明の第1の実施形態の計算機システムが保持するデバイス管理テーブルのエントリ構成の一例を示す図である。 図6は、本発明の第1の実施形態の計算機システムが保持するデバイス管理テーブルの設定例を示す図である。 図7は、本発明の第1の実施形態のリモート装置の動作を示す流れ図である。 図8は、本発明の第1の実施形態の計算機システムの動作を示す流れ図である。 図9は、仮想化コンピュータの構成を説明するためのブロック図である。 図10は、バス延長技術を適用した計算機システムの構成を説明するためのブロック図である。 図11は、本発明の課題を説明するための参考図である。 図12は、本発明の変形実施形態の構成を示した図である。
 はじめに本発明の一実施形態の概要について図面を参照して説明する。なお、この概要に付記した図面参照符号は、理解を助けるための一例として各要素に便宜上付記したものであり、本発明を図示の態様に限定することを意図するものではない。
 本発明は、その一実施形態において、図1に示すバス延長部140Aと、OS実行部120Aと、通信制御部142Aと、を備える計算機システムにて実現できる。バス延長部140Aは、ネットワークを介して接続された1つ以上の遠隔デバイスとの間に仮想的なバスを構築する。OS実行部120Aは、仮想ハードウェア環境を構成し、ゲストOS101~10nに遠隔デバイスを制御させるホストOS110を実行する。通信制御部142Aは、ゲストOS101~10nと遠隔デバイス間の通信を制御する。
 通信制御部142Aは、より具体的には、遠隔デバイスの起動状態によって変化しない識別情報を用いて、ゲストOS101~10nと遠隔デバイスとの対応関係を管理する管理テーブル141Aを参照して、ゲストOS101~10nと遠隔デバイス間の通信を制御する。
 本実施形態の計算機システムは、上記のように、遠隔デバイスの起動状態によって変化しない識別情報を用いてゲストOSと遠隔デバイスとの対応関係を管理する。これにより、遠隔デバイスの一部が起動しなかった場合においても、ゲストOSから遠隔デバイスを正確に指定することが可能となる。
[第1の実施形態]
 次に、本発明の第1の実施形態について図面を参照して詳細に説明する。なお、以下で付記する図面参照符号は、専ら理解を助けるための例示であり、本発明を図示の態様に限定することを意図するものではない。
 図2は、本発明の第1の実施形態の構成を示す図である。図2に示すように、計算機システム100とリモート装置200とは、ネットワーク300を介して接続されている。
 図3は、リモート装置200の構成を例示するブロック図である。以下、図3を参照して、リモート装置200の構成について詳細に説明する。
 リモート装置200は、通信部210と、下流ブリッジ(バス延長部(リモート))220と、n台(nは1以上の整数)の遠隔デバイス231~23nとを備えている。遠隔デバイス231~23nは、システムバスに繋がるデバイスであればよい。遠隔デバイス231~23nは、例えば、バスに直接接続できるハードディスクやネットワークインターフェースカードなどである。
 下流ブリッジ(バス延長部(リモート))220は、後述する計算機システム側の上流ブリッジ(バス延長部(ホスト))と対になる。下流ブリッジ(バス延長部(リモート))220は、遠隔デバイス231~23n向けのデータ、および、遠隔デバイス231~23nから送出されたバス上のデータを、それぞれ、デカプセル化およびカプセル化する。また、下流ブリッジ(バス延長部(リモート))220は、送信レート制御やネットワーク上でパケットが損失したときのための再送制御などの機能を備えていてもよい。
 通信部210は、ネットワーク300と通信するためのインターフェース部である。ネットワーク300の例として、Ethernet(登録商標)やInfiniBandなどがある。ただし、これらネットワークは、あくまで一例として挙げたものである。ネットワーク300は、計算機システム100とリモート装置200間において背景技術として述べたバス延長技術が使えるものであれば特に制限されない。
 また、リモート装置200の通信部210には、ネットワーク300上で一意に特定できるようなアドレス(例えば、MAC(Media Access Control)アドレス)が付与されている。本実施形態では、このMACアドレスは、遠隔デバイスの起動状態によって変化しない識別情報として用いられる(後に詳述する)。
 また、下流ブリッジ(バス延長部(リモート))220は、ネットワーク300に向かって通信部210経由でハートビート(HB:Heart Beat)情報を間欠的に送信する。一般に、このハートビート情報はブロードキャストされる。しかし、下流ブリッジ(バス延長部(リモート))220は、予めホスト側のアドレスを把握している場合、当該アドレスによって特定されるホストに対してのみハートビート情報を送出してもよい。ハートビート情報は、リモート装置200に搭載されている遠隔デバイス231~23nの情報と、通信部210のMACアドレスを含む。
 図4は、本実施形態の計算機システム100の構成を示すブロック図である。図4を参照すると、計算機システム100は、CPU120と、周辺デバイス130と、上流ブリッジ(バス延長部(ホスト))140と、通信部150と、を備えている。また、CPU120は、ホストOS110とゲストOS101~10n(nは1以上の整数)を含む各種プログラムを実行する。
 周辺デバイス130は、システムバスに接続可能なデバイスである。
 上流ブリッジ(バス延長部(ホスト))140は、リモート装置200の下流ブリッジ(バス延長部(リモート))220と対をなす。上流ブリッジ(バス延長部(ホスト))140は、バス上を流れるデータパケットをネットワーク300に送出する際に、当該パケットをカプセル化してから送出する。一方、上流ブリッジ(バス延長部(ホスト))140は、ネットワーク300からカプセル化されたネットワークパケットを受け取ると、そのカプセル化を解いて(デカプセル化して)から、ゲストOS101~10n又はシステムバスにデータパケットを転送する。
 上流ブリッジ(バス延長部(ホスト))140と下流ブリッジ(バス延長部(リモート))220間の通信プロトコルとしては、TCP(Transmission Control Protocol)/IP(Internet Protocol)などを用いることができる。ただし、TCP/IPはあくまで一例として示したものであり、通信プロトコルはこれに限定されない。
 また、計算機システム100は、ホストOS110を備えている。ホストOS110は、リモート装置200に設けられたデバイス(遠隔デバイス231~23n)との間でI/O処理を行うゲストOS101~10nに対して、仮想ハードウェア環境を提供する。ホストOS110は、ゲストOS101~10nが発行したI/O命令をカプセル化して、リモート装置200に向けてパケットとして送出するよう上流ブリッジ(バス延長部(ホスト))140を制御する。なお、以下においてゲストOS101~10nを特に区別しない場合には、「ゲストOS10x」と記す。
 また、上流ブリッジ(バス延長部(ホスト))140は、送出したパケットに対するリモート装置200からの応答パケットを受け取ると、応答パケットをデカプセル化してデータを抽出し、抽出したデータをゲストOS10xに転送する。
 通信部150は、ネットワーク600に接続されるためのインターフェースであり、リモート装置200の通信部210とつながるネットワーク300とは別のネットワークに接続される。
 ゲストOS10xは、リモート装置200の遠隔デバイス231~23nを制御するためのデバイスドライバを備えている。なお、ゲストOS10xは、遠隔デバイス231~23nのすべてに対応するデバイスドライバを備えている必要はなく、遠隔デバイス231~23nのうち必要な遠隔デバイスを制御可能なデバイスドライバを備えていればよい。
 また、本実施形態の上流ブリッジ(バス延長部(ホスト))140は、デバイス管理テーブル141と、スキャン結果検査部142と、ネットワークアダプター143とを備えている。
 図5は、デバイス管理テーブル141の1エントリの構成を示した図である。デバイス管理テーブル141は、ゲストOSと遠隔デバイスの組み合わせをあらかじめ指定した表である。図5の例では、デバイス管理テーブル141は、MACアドレス、ベンダーID、デバイスID及び対応ゲストOSを対応付けたエントリを格納可能である。
 ベンダーIDとデバイスIDは、リモート装置200にある遠隔デバイス231~23nを識別する番号である。ベンダーIDとデバイスIDは、同種のデバイスの場合、同じベンダーID、デバイスIDとなる。MACアドレスは、そのデバイスを保持しているリモート装置の通信部が有するMACアドレスである。対応ゲストOSは、当該エントリで指定されたリモート装置200の遠隔デバイス231~23nと組み合わせられる(当該遠隔デバイス231~23nにアクセス権を有する)ゲストOSの識別子を示している。
 図6は、デバイス管理テーブル141の具体的な設定例を示している。図6の例では、通信部210のMACアドレスがAA::AAであるリモート装置200の遠隔デバイスと、通信部210のMACアドレスがBB::BBであるリモート装置200との遠隔デバイスの情報が設定されている。
 例えば、MACアドレスがAA::AAで、ベンダーID、デバイスIDがそれぞれ0xabcd、0x1234である遠隔デバイスには、対応ゲストOSとしてゲストOS-Aが設定されている。同様に、MACアドレスがBB::BBで、ベンダーID、デバイスIDがそれぞれ0xabcd、0x1234である遠隔デバイスには、対応ゲストOSとしてゲストOS-Bが設定されている。このように、ベンダーID、デバイスIDが同一のIDであっても、MACアドレスを用いることで、両者を区別してゲストOSに対応付けることが可能となっている。
 また、MACアドレスがAA::AAで、ベンダーID、デバイスIDがそれぞれ0xcdef、0x9876である別の遠隔デバイスには、対応ゲストOSとしてゲストOS-Bが設定されている。
 図6のような設定の場合、ゲストOS-Aによるデバイススキャン命令が発行されると、ベンダーIDが0xcdefでデバイスIDが0x9876の遠隔デバイスのスキャン結果(応答)が上流ブリッジ(バス延長部(ホスト))140に届くことになる。上流ブリッジ(バス延長部(ホスト))140のスキャン結果検査部142は、図6に示すデバイス管理テーブル141を参照して、許可されていない組み合わせであることが確認されると、当該スキャン結果(応答)を破棄する。このときスキャン結果検査部142は、ゲストOS-Aにはエラーを返す。このため、ゲストOS-Aは、ベンダーIDが0xcdefでデバイスIDが0x9876のデバイスを認識しない。
 なお、図5、図6の例では、遠隔デバイスの起動状態によって変化しない識別情報として、リモート装置の通信部210のMACアドレスが用いられている。しかし、遠隔デバイスの起動状態によって変化しない識別情報は、MACアドレスに限定されず、リモート装置に付与された別の識別情報がMACアドレスの代わりに用いられてもよい。
 なお、図4に示した計算機システム100のスキャン結果検査部142は、ホストOS110上で動作するコンピュータプログラムにより実現することもできる。また、デバイス管理テーブル141及びスキャン結果検査部142は、ホストOS110が提供する仮想BIOS(Basic Input/Output System)に組み込むことも可能である。図12は、この変形実施形態の構成に係る計算機システム100aの構成を示した図である。図12の例では、ホストOS110が提供する仮想BIOS111に、デバイス管理テーブル141a及びスキャン結果検査部142aが組み込まれている。
 続いて、本実施形態の動作について図面を参照して詳細に説明する。以下の説明では、リモート装置200は、計算機システム100の起動前に起動されているものとする。図7は、本実施形態のリモート装置の起動後の動作を示す流れ図である。図7を参照すると、まず、リモート装置200の通信部210と下流ブリッジ(バス延長部(リモート))220とが起動する(ステップS001)。この時点では、遠隔デバイス231~23nは、通電されて電源オン状態となるが、遠隔デバイス231~23n上のハードウェアによる初期化が行われるに過ぎず、デバイスドライバによる初期化は行われない。
 次に、下流ブリッジ(バス延長部(リモート))220は、ネットワーク300に向かって通信部210経由でハートビート情報のパケットの間欠的な送信を開始する(ステップS002)。なお、計算機システム100のホストOS110が起動していない場合、ハートビート情報は受け取られることなく、ネットワーク300上で破棄される。
 次に、計算機システム100の起動後の動作について説明する。図8は、本実施形態の計算機システム100の動作を示す流れ図である。計算機システム100が起動すると、まず、ホストOS110が起動する(ステップS101)。ホストOS110は、計算機システム100内にある周辺デバイス130や通信部150の初期化を行い、同時に上流ブリッジ(バス延長部(ホスト))140を通じて遠隔デバイス231~23nのスキャンを行う。これによって、計算機システム100内にある通信部150が利用可能となる。ただし、リモート装置200内にある遠隔デバイス231~23nを初期化する必要はない。
 前述のとおり、リモート装置200は起動済みであるので、上流ブリッジ(バス延長部(ホスト))140は、リモート装置200から送信されているハートビート情報を受信する(ステップS102)。これによって、上流ブリッジ(バス延長部(ホスト))140は、リモート装置200に繋がっている遠隔デバイス231~23nを認識し、その情報を取得することができる。また、上流ブリッジ(バス延長部(ホスト))140は、このハートビート情報に基づいて、リモート装置200の通信部210のMACアドレスを取得する。
 次に、任意のゲストOS10xが起動されると、ゲストOS10xはデバイスをスキャンする命令を発行する(ステップS103)。上流ブリッジ(バス延長部(ホスト))140は、デバイス管理テーブル141を検索して、当該ゲストOS10xが許可されているリモート装置200の通信部210のMACアドレスを指定してデバイススキャン命令を発行する。前述のとおり、通信部210のMACアドレスは一意に決まるIDであるため、例え複数あるリモート装置200の一部が起動していなかったとしてもゲストOS10xとの組み合わせは変わらない。
 前記デバイススキャン命令を受け取ったリモート装置200は、デバイススキャン命令の発行元に対し、デバイスの種別を返答する。デバイスの種別の返答としては、図5、図6に示した「ベンダーIDとデバイスID」の組み合わせが挙げられる。もちろん、「ベンダーIDとデバイスID」は、返答の一例を挙げたものである。リモート装置200は、「ベンダーIDとデバイスID」に代わるデバイス種別情報を送ってもよいし、その他の情報を付加する等してもよい。
 上流ブリッジ(バス延長部(ホスト))140のスキャン結果検査部142は、前記返答されたデバイスの種別を受け取ると、デバイス管理テーブルを参照して、当該ゲストOS10xが許可されているデバイスの種別であるかを確認する(ステップS104~S105)。前記デバイスの種別とゲストOS10xの組が許可されている組み合わせである場合(ステップS105のYes)、スキャン結果検査部142は、当該スキャン結果をゲストOS10xに返す(ステップS106)。遠隔デバイスを検出したゲストOS10xは、デバイスドライバにより遠隔デバイスを初期化し、必要に応じてアクセスする(ステップS108)。
 一方、前記デバイスの種別とゲストOS10xの組が許可されていない組み合わせであった場合(ステップS105のNo)、スキャン結果検査部142は、当該スキャン結果は破棄し、ゲストOS10xに対してはエラー(デバイス不検出)を返す(ステップS107)。
 以上説明したように、本実施形態によれば、1以上あるリモート装置200の一部が起動しなかった場合でも、ゲストOS10xに対して割り当てるリモート装置200の指定方法を変える必要がない、という顕著な効果が奏される。この効果は、遠隔デバイスを指定するための識別情報として、リモート装置200の通信部210の固有の識別子(MACアドレス)を使うことによって奏される。また、図12の構成においては、上流ブリッジ(バス延長部(ホスト))140a側にデバイス管理テーブル141及びスキャン結果検査部142を設けなくとも、同様の効果を得ることができる。
 以上、本発明の各実施形態を説明したが、本発明は、上記した実施形態に限定されるものではなく、本発明の基本的技術的思想を逸脱しない範囲で、更なる変形・置換・調整を加えることができる。例えば、各図面に示したネットワーク構成、各要素の構成、メッセージの表現形態は、本発明の理解を助けるための一例であり、これらの図面に示した構成に限定されるものではない。
 最後に、本発明の好ましい形態を要約する。
[第1の形態]
 (上記第1の視点による計算機システム参照)
[第2の形態]
 第1の形態の計算機システムにおいて、
 前記通信制御手段は、前記管理テーブルを参照して、ゲストオペレーティングシステムからのスキャン命令に対する遠隔デバイスからの応答のうち、スキャン命令の送信元のゲストオペレーティングシステムと対応付けられていない遠隔デバイスからの応答を破棄するスキャン結果検査手段として機能する計算機システム。
[第3の形態]
 第1又は第2の形態の計算機システムにおいて、
 前記遠隔デバイスの起動状態によって変化しない識別情報として、前記遠隔デバイスを備えるリモート装置からのハートビート情報に含まれるMACアドレスを用い、
 前記ゲストオペレーティングシステムからスキャン命令が発行された場合、前記バス延長手段は、前記スキャン命令の宛先を前記MACアドレスに書き換えてから転送する計算機システム。
[第4の形態]
 第1から第3いずれか一の形態の計算機システムにおいて、
 前記遠隔デバイスは、PCI-Expressプロトコルに対応したPCI-Expressデバイスであり、
 前記バス延長手段は、PCI-Expressプロトコルに基づくカプセル化を行うことにより前記遠隔デバイスとの間に仮想的なバスを構築する計算機システム。
[第5の形態]
 (上記第2の視点による遠隔デバイスの接続管理方法参照)
[第6の形態]
 第5の形態の遠隔デバイスの接続管理方法において、
 前記遠隔デバイスの起動状態によって変化しない識別情報として、前記遠隔デバイスを備えるリモート装置からのハートビート情報に含まれるMACアドレスを用い、
 前記ゲストオペレーティングシステムからスキャン命令が発行された場合、前記バス延長手段は、前記スキャン命令の宛先を前記MACアドレスに書き換えてから転送する遠隔デバイスの接続管理方法。
[第7の形態]
 第5又は第6の形態の遠隔デバイスの接続管理方法において、
 前記遠隔デバイスは、PCI-Expressプロトコルに対応したPCI-Expressデバイスであり、
 前記ゲストオペレーティングシステムと遠隔デバイス間の通信は、PCI-Expressプロトコルに基づくカプセル化を行うことにより前記遠隔デバイスとの間に構築された仮想的なバスを介して行われる遠隔デバイスの接続管理方法。
[第8の形態]
 (上記第3の視点によるプログラム参照)
 なお、上記第8の形態は、第1の形態と同様に、第2~第4の形態に展開することが可能である。
 なお、上記の特許文献の各開示を、本書に引用をもって繰り込むものとする。本発明の全開示(請求の範囲を含む)の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の開示の枠内において種々の開示要素(各請求項の各要素、各実施形態ないし実施例の各要素、各図面の各要素等を含む)の多様な組み合わせ、ないし選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。特に、本書に記載した数値範囲については、当該範囲内に含まれる任意の数値ないし小範囲が、別段の記載のない場合でも具体的に記載されているものと解釈されるべきである。
 この出願は、2014年6月12日に出願された日本出願特願2014-121450を基礎とする優先権を主張し、その開示の全てをここに取り込む。
 100、100a、100A、X100、X500 計算機システム
 101~10n、10x、X101~X10n ゲストOS
 110、X110 ホストOS
 111 仮想BIOS
 120、X120 CPU
 120A OS実行部
 130 周辺デバイス
 140、X140、140a 上流ブリッジ(バス延長部(ホスト))
 140A バス延長部
 141、141a デバイス管理テーブル
 141A 管理テーブル
 142、142a スキャン結果検査部
 142A 通信制御部
 143、X141、X421 ネットワークアダプター
 150、X150、X510 通信部
 200、X20A、X20B、X200 リモート装置
 210 通信部
 220、X420 下流ブリッジ(バス延長部(リモート))
 231~23n 遠隔デバイス
 300、600 ネットワーク
 X130 周辺機器
 X131 デバイスB
 X410 イーサスイッチ
 X600 スイッチ

Claims (8)

  1.  ネットワークを介して接続された1つ以上の遠隔デバイスとの間に仮想的なバスを構築するバス延長手段と、
     仮想ハードウェア環境を構成し、前記遠隔デバイスをゲストオペレーティングシステムに制御させるホストオペレーティングシステムを実行する実行手段と、を備え、
     前記バス延長手段は、前記遠隔デバイスの起動状態によって変化しない識別情報を用いて前記ゲストオペレーティングシステムと前記遠隔デバイスとの対応関係を管理する管理テーブルを参照して、前記ゲストオペレーティングシステムと前記遠隔デバイス間の通信を制御する通信制御手段を含む
     計算機システム。
  2.  前記通信制御手段は、前記管理テーブルを参照して、ゲストオペレーティングシステムからのスキャン命令に対する遠隔デバイスからの応答のうち、スキャン命令の送信元のゲストオペレーティングシステムと対応付けられていない遠隔デバイスからの応答を破棄するスキャン結果検査手段として機能する請求項1の計算機システム。
  3.  前記通信制御手段は、前記遠隔デバイスを備えるリモート装置から受信したハートビート情報に含まれるMACアドレスを前記識別情報として用い、前記ゲストオペレーティングシステムからスキャン命令が発行された場合、前記スキャン命令の宛先を前記MACアドレスに書き換えてから転送する請求項1又は2の計算機システム。
  4.  前記遠隔デバイスは、PCI-Expressプロトコルに対応したPCI-Expressデバイスであり、
     前記バス延長手段は、PCI-Expressプロトコルに基づくカプセル化を行うことにより前記遠隔デバイスとの間に仮想的なバスを構築する請求項1から3いずれか一の計算機システム。
  5.  ネットワークを介して接続された1つ以上の遠隔デバイスとの間に仮想的なバスを構築するバス延長手段と、
     仮想ハードウェア環境を構成し、前記遠隔デバイスをゲストオペレーティングシステムに制御させるホストオペレーティングシステムを実行する実行手段と、を備える計算機システムにおいて、
     前記遠隔デバイスの起動状態によって変化しない識別情報を用いて前記ゲストオペレーティングシステムと前記遠隔デバイスとの対応関係を管理する管理テーブルを参照して、前記ゲストオペレーティングシステムからのスキャン命令を前記遠隔デバイスに転送し、
     前記管理テーブルを参照して、前記遠隔デバイスからの応答のうち、前記ゲストオペレーティングシステムに転送する応答を選別する
     遠隔デバイスの接続管理方法。
  6.  前記遠隔デバイスの起動状態によって変化しない識別情報として、前記遠隔デバイスを備えるリモート装置からのハートビート情報に含まれるMACアドレスを用い、
     前記ゲストオペレーティングシステムからスキャン命令が発行された場合、前記通信制御手段は、前記スキャン命令の宛先を前記MACアドレスに書き換えてから転送する請求項5の遠隔デバイスの接続管理方法。
  7.  前記遠隔デバイスは、PCI-Expressプロトコルに対応したPCI-Expressデバイスであり、
     前記前記ゲストオペレーティングシステムと遠隔デバイス間の通信を、PCI-Expressプロトコルに基づくカプセル化を行うことにより前記遠隔デバイスとの間に構築された仮想的なバスを介して行う請求項5又は6の遠隔デバイスの接続管理方法。
  8.  ネットワークを介して接続された1つ以上の遠隔デバイスとの間に仮想的なバスを構築するバス延長手段と、
     仮想ハードウェア環境を構成し、前記遠隔デバイスをゲストオペレーティングシステムに制御させるホストオペレーティングシステムを実行する実行手段と、を備える計算機システムに搭載されたコンピュータに、
     前記遠隔デバイスの起動状態によって変化しない識別情報を用いて前記ゲストオペレーティングシステムと前記遠隔デバイスとの対応関係を管理する管理テーブルを参照して、前記ゲストオペレーティングシステムからのスキャン命令を前記遠隔デバイスに転送する処理と、
     前記管理テーブルを参照して、前記遠隔デバイスからの応答のうち、前記ゲストオペレーティングシステムに転送する応答を選別する処理と、
     を実行させるためのプログラムを記録したコンピュータ読み取り可能なプログラム記録媒体。
PCT/JP2015/002838 2014-06-12 2015-06-05 計算機システム、遠隔デバイスの接続管理方法及びプログラム記録媒体 WO2015190079A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US15/318,012 US10157163B2 (en) 2014-06-12 2015-06-05 Computer system, connection management method for remote device, and program recording medium
JP2016527631A JP6743696B2 (ja) 2014-06-12 2015-06-05 計算機システム、遠隔デバイスの接続管理方法及びプログラム

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2014-121450 2014-06-12
JP2014121450 2014-06-12

Publications (1)

Publication Number Publication Date
WO2015190079A1 true WO2015190079A1 (ja) 2015-12-17

Family

ID=54833193

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2015/002838 WO2015190079A1 (ja) 2014-06-12 2015-06-05 計算機システム、遠隔デバイスの接続管理方法及びプログラム記録媒体

Country Status (3)

Country Link
US (1) US10157163B2 (ja)
JP (1) JP6743696B2 (ja)
WO (1) WO2015190079A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019124259A1 (ja) * 2017-12-20 2019-06-27 日本電気株式会社 構成管理装置、構成管理システム、構成管理方法、および、構成管理プログラム

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170097836A1 (en) * 2015-10-02 2017-04-06 Shigeya Senda Information processing apparatus
US11068295B2 (en) 2019-04-12 2021-07-20 Ghost Locomotion Inc. Device operation across multiple operating system modalities
US11157289B2 (en) * 2019-05-13 2021-10-26 Intel Corporation Power management method and apparatus for virtualized I/O devices
AT525057B1 (de) * 2021-06-25 2022-12-15 Kvm Tec Electronic Gmbh KVM-System

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008181387A (ja) * 2007-01-25 2008-08-07 Nec Corp I/oバスシステム及びその管理方法
JP2011145912A (ja) * 2010-01-15 2011-07-28 Fujitsu Ltd 仮想計算機を使用したクライアントシステム、仮想計算機を使用したクライアント制御方法及びそのプログラム
JP2012038037A (ja) * 2010-08-05 2012-02-23 Fujitsu Ltd スイッチング回路、情報処理装置、及びスイッチング回路の制御方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4670676B2 (ja) 2006-02-17 2011-04-13 日本電気株式会社 スイッチ及びネットワークブリッジ装置
US20110047313A1 (en) * 2008-10-23 2011-02-24 Joseph Hui Memory area network for extended computer systems
JP4947081B2 (ja) 2009-03-30 2012-06-06 日本電気株式会社 パススルーi/oデバイスを伴うlparの動的マイグレーション装置、その方法及びそのプログラム
JP2011145827A (ja) 2010-01-13 2011-07-28 Hitachi Omron Terminal Solutions Corp 仮想バスシステム、およびデバイス管理方法
US9721443B2 (en) * 2013-03-05 2017-08-01 Comcast Cable Communications, Llc Processing security-related messages

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008181387A (ja) * 2007-01-25 2008-08-07 Nec Corp I/oバスシステム及びその管理方法
JP2011145912A (ja) * 2010-01-15 2011-07-28 Fujitsu Ltd 仮想計算機を使用したクライアントシステム、仮想計算機を使用したクライアント制御方法及びそのプログラム
JP2012038037A (ja) * 2010-08-05 2012-02-23 Fujitsu Ltd スイッチング回路、情報処理装置、及びスイッチング回路の制御方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019124259A1 (ja) * 2017-12-20 2019-06-27 日本電気株式会社 構成管理装置、構成管理システム、構成管理方法、および、構成管理プログラム
JPWO2019124259A1 (ja) * 2017-12-20 2020-11-19 日本電気株式会社 構成管理装置、構成管理システム、構成管理方法、および、構成管理プログラム
US11360926B2 (en) 2017-12-20 2022-06-14 Nec Corporation Configuration management device, configuration management system, configuration management method, and non-transitory computer readable storage medium

Also Published As

Publication number Publication date
JPWO2015190079A1 (ja) 2017-04-20
US10157163B2 (en) 2018-12-18
US20170116151A1 (en) 2017-04-27
JP6743696B2 (ja) 2020-08-19

Similar Documents

Publication Publication Date Title
JP6605713B2 (ja) クラウドコンピューティングシステムにおけるパケット処理方法、ホスト及びシステム
US8774055B2 (en) Switching method
CN108111470B (zh) 容器的部署方法、服务间的通信方法及相关装置
US10324883B2 (en) Computer system, data-processing apparatus, bus-data transferring method, and computer-readable recording medium for transferring data flowing through system bus
US9462047B2 (en) Network interface controller supporting network virtualization
JP5529080B2 (ja) 複数のバーチャルマシーンが物理リソースを個別に設定及びアクセスすることを可能にする方法及びシステム
TWI511048B (zh) 多主機上單根輸入/輸出虛擬化虛擬功能共享的方法及系統
JP6743696B2 (ja) 計算機システム、遠隔デバイスの接続管理方法及びプログラム
US10684880B2 (en) Allocating and initializing I/O devices at virtual
EP3206124A1 (en) Method, apparatus and system for accessing storage device
WO2015194534A1 (ja) スイッチ装置とコンピュータシステムと方法並びにプログラム
JP2010033404A (ja) 仮想計算機システムおよび仮想計算機システムの制御方法
US10911405B1 (en) Secure environment on a server
US10761859B2 (en) Information processing system, management device, and method for controlling information processing system
CN111988230B (zh) 虚拟机通信方法、装置、系统及电子设备
US20220327228A1 (en) PCIe FUNCTION AND OPERATING METHOD THEREOF
CN112422357A (zh) 网络通信路径的状态检测方法以及设备
US8589610B2 (en) Method and system for receiving commands using a scoreboard on an infiniband host channel adaptor
JPWO2013150792A1 (ja) I/oデバイス共有システムおよびi/oデバイス共有方法
US9787805B2 (en) Communication control system and communication control method
WO2017026931A1 (en) Implementing input/output in a virtualized environment
JP6548010B2 (ja) 準仮想化ネットワークデバイス、情報処理装置、情報処理方法、および情報処理プログラム
WO2019042005A1 (zh) 一种虚拟机的热迁移方法、装置和系统
JP2013197919A (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: 15807097

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2016527631

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 15318012

Country of ref document: US

122 Ep: pct application non-entry in european phase

Ref document number: 15807097

Country of ref document: EP

Kind code of ref document: A1