WO2014118870A1 - Computer and control method for computer - Google Patents

Computer and control method for computer Download PDF

Info

Publication number
WO2014118870A1
WO2014118870A1 PCT/JP2013/051820 JP2013051820W WO2014118870A1 WO 2014118870 A1 WO2014118870 A1 WO 2014118870A1 JP 2013051820 W JP2013051820 W JP 2013051820W WO 2014118870 A1 WO2014118870 A1 WO 2014118870A1
Authority
WO
WIPO (PCT)
Prior art keywords
operating system
processing unit
predetermined processing
computer
interface unit
Prior art date
Application number
PCT/JP2013/051820
Other languages
French (fr)
Japanese (ja)
Inventor
悦太郎 赤川
仁志 亀井
須藤 敦之
Original Assignee
株式会社日立製作所
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 株式会社日立製作所 filed Critical 株式会社日立製作所
Priority to PCT/JP2013/051820 priority Critical patent/WO2014118870A1/en
Publication of WO2014118870A1 publication Critical patent/WO2014118870A1/en

Links

Images

Classifications

    • 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

Definitions

  • the present invention relates to a computer and a computer control method.
  • Computer virtualization technology is widely used, and in recent years, virtual computers are frequently used according to their usage.
  • OS and software maintenance can be facilitated by operating a plurality of types of applications such as a mail server and a database server operating on different OSs (Operation Systems) on different virtual machines.
  • OSs Operating Systems
  • I / O Input / Output
  • I / O Input / Output
  • a function for sharing the I / O device among a plurality of OSs is necessary.
  • Patent Document 1 In order to share a plurality of I / O devices connected to a physical computer with a plurality of virtual computers, a technology for connecting these I / O devices to a plurality of CPUs (Central Processing Units) in the same computer is known.
  • Patent Document 2 There is also a known technology for sharing I / O devices corresponding to SR-IOV (Single Root-IO Virtualization) standardized by PCI-SIG (PCI Special Interest Group) with multiple virtual machines on multiple physical computers.
  • SR-IOV Single Root-IO Virtualization
  • PCI-SIG PCI Special Interest Group
  • Patent Document 3 A technology for sharing an I / O device among a plurality of virtual machines by assigning a plurality of I / O devices connected to a physical machine to different virtual machines and performing high-speed data communication between the virtual machines. Is also known (Patent Document 4).
  • processing beyond the I / O device layer needs to be implemented for each virtual machine. Therefore, the performance or function implemented above the I / O device layer in each virtual machine cannot be used by other virtual machines.
  • one virtual machine specialized for RAID (Redundant Arrays of Independent Disks) processing performance and block function and the other virtual machine specialized for network processing performance and file function are mixed on one physical computer. Assume a case.
  • the present invention has been made in view of the above-described problems, and an object of the present invention is to provide a computer in which a plurality of operating systems can jointly use a higher-performance function than the conventional one with less man-hours. And providing a computer control method.
  • a computer is a computer having a plurality of operating systems that operate independently and a plurality of input / output devices, the plurality of operating systems being a first operating system.
  • a first operating system including a first predetermined processing unit, and the first operating system includes a first predetermined process among a plurality of input / output devices.
  • the first input / output device is assigned according to the characteristics of each unit, and the first operating system includes a first interface unit for the second operating system to use the first predetermined processing unit.
  • the second operating system activates the first interface unit in a predetermined case.
  • the plurality of operating systems include at least one virtual operating system provided on a virtualization function for virtualizing the computer, and the second operating system may be configured as a virtual operating system.
  • a plurality of operating systems on a computer can use high-performance functions at low cost.
  • FIG. 1 is an explanatory diagram showing an overall outline of the embodiment.
  • FIG. 2 is an explanatory diagram illustrating an overview of the computer system according to the first embodiment.
  • FIG. 3 is a block diagram showing the configuration of the computer.
  • FIG. 4 is an explanatory diagram showing an outline of a computer system of another form.
  • FIG. 5 is a block diagram showing the configuration of the computer shown in FIG.
  • FIG. 6 shows a configuration example of the command table (a) and the device allocation table (b).
  • FIG. 7 shows a configuration example of the specialized process interface allocation table (a) and the communication path allocation table (b).
  • FIG. 8 is a flowchart showing a procedure for allocating devices included in a computer to a host OS and a virtual OS.
  • FIG. 9 is a flowchart illustrating a procedure for providing the virtual OS with an interface for using the specialization process of the host OS.
  • FIG. 10 is a part of a flowchart illustrating a procedure in which the virtual OS uses an interface for using the specialization process of the host OS.
  • FIG. 11 is a flowchart following FIG. A flow chart showing the procedure for the virtual OS to use the interface for the specialized processing that the host OS has.
  • FIG. 12 is a flowchart following FIG.
  • FIG. 13 is an explanatory diagram showing an overview of a computer system according to the second embodiment.
  • FIG. 14 shows a configuration example of the command table.
  • FIG. 15 is a flowchart illustrating a procedure for assigning devices included in a computer to a host OS and a virtual OS.
  • FIG. 16 is a part of a flowchart illustrating a procedure in which the virtual OS uses an interface for using the specialization process of the host OS.
  • FIG. 17 is a flowchart following FIG.
  • the computer of this embodiment has a first OS having a program specialized for a specific process and a second OS having a program specialized for another particular process.
  • An input / output device (I / O device) suitable for each specific process is assigned to each OS.
  • each OS includes an interface unit for allowing the other party OS to use a specific process of the own OS.
  • the first OS can use a specific process of the second OS
  • the second OS can use a specific process of the first OS.
  • FIG. 1 is an explanatory diagram showing an outline of the present embodiment.
  • FIG. 1 is used for understanding the present embodiment, and the scope of the present invention is not limited to the configuration described in FIG. In the drawing, the interface may be abbreviated as I / F.
  • the computer system includes at least one physical computer 1 and a plurality of client computers 6A and 6B that are communicably connected to the physical computer 1.
  • the physical computer 1 includes a first OS 2A, a second OS 2B, a virtualization function 3, a first I / O device 4A, and a second I / O device 4B.
  • the virtualization function 3 is a function for generating a virtual computer (virtual OS) on the physical computer 1.
  • FIG. 1 shows an example in which both the first OS 2A and the second OS 2B are configured as virtual OSs, the present embodiment is not limited thereto.
  • the first OS may be configured as a host OS and the second OS may be configured as a virtual OS.
  • the I / O devices 4A and 4B are devices for inputting and outputting data and the like, for example, a disk controller and a network controller.
  • the first OS 2A includes a first specialization processing unit 2A1, a first interface unit 2A2, and a first use source interface unit 2A3.
  • the first specialization processing unit 2A1 is an example of a “first predetermined processing unit”.
  • the first specialization processing unit 2A1 is a block processing unit for reading and writing data in units of blocks (in the embodiments described later, referred to as block specialization processing).
  • the first interface unit 2A2 is a function for causing the second OS 2B to use the first specialization processing unit 2A1, and is configured as an internal SCSI (Small Computer System Interface) port or a virtual SCSI initiator, for example. .
  • SCSI Small Computer System Interface
  • the first use source interface unit 2A3 is a function for the first OS 2A to use the second specialization processing unit 2B1 of the second OS 2B, and is configured as a PCI (Peripheral Component Interconnect) device file, for example. Is done.
  • PCI Peripheral Component Interconnect
  • the interface is used to transmit information between a plurality of different entities such as programs and devices.
  • entities such as programs and devices.
  • an entity for example, a program
  • an interface that provides a function for the other OS to access a predetermined processing unit included in one OS and use the predetermined processing unit.
  • the second OS 2B includes a second specialization processing unit 2B1, a second interface unit 2B2, and a second usage source interface unit 2B3.
  • the second specialization processing unit 2B1 is an example of a “second predetermined processing unit”, for example, a network processing unit for transmitting and receiving data via a communication network (in a later-described embodiment, network specialization processing and Configured).
  • the second interface unit 2B2 is a function for causing the first special processing unit 2B1 to use the first OS 2A, and is configured as a virtual PCI device interface, for example.
  • the second usage source interface unit 2B3 is a function for the second OS 2B to use the first specialization processing unit 2A1 of the first OS 2A, and is configured as a SCSI device file and a SCSI initiator file. .
  • the inter-OS communication path 5 is a path for communication between the first OS 2A and the second OS 2B, and is provided in the virtualization function 3, for example.
  • the client computers 6A and 6B are computers for using the information processing service provided by each OS 2A and 2B.
  • input / output devices 4A and 4B corresponding to the characteristics of the specialization processes 2A1 and 2B1 possessed by the respective OSs 2A and 2B generated by the virtualization function 3 are assigned to the OSs 2A and 2B.
  • Interface units 2A2 and 2B2 are prepared for causing the other OS to use the processing units 2A1 and 2B1. That is, the OSs 2A and 2B open their own specialized processing units 2A1 and 2B1 to the other OS, and can be used by the other OS. Whether or not to allow the use of the specialization processing unit by the other OS can be set manually or automatically, for example.
  • the first specialization processing unit 2A1 is connected to the second interface unit 2B2 of the second OS 2B via the first use source interface 2A3 and the inter-OS communication path 5.
  • the first specialization processing unit 2A1 uses the second specialization processing unit 2B1 via the second interface unit 2B2.
  • the second specialization processing unit 2B1 inputs / outputs data to / from the second I / O device 4B and executes the requested processing.
  • the processing result of the second specialization processing unit 2B1 is transmitted to the first specialization processing unit 2A1 via the second interface unit 2B2, the inter-OS communication path 5, and the first user interface unit 2A3.
  • the first specialization processing unit 2A1 transmits the processing result of the first command to the first client computer 6A.
  • the second specialization processing unit 2B1 accesses the first interface unit 2A2 via the second usage source interface unit 2B3 and the inter-OS communication path 5.
  • the second specialization processing unit 2B1 uses the first specialization processing unit 2A1 via the first interface unit 2A2.
  • the first specialization processing unit 2A1 inputs / outputs data to / from the first I / O device 4A in response to a request from the second specialization processing unit 2B1, and executes the requested processing.
  • the processing result of the first specialization processing unit 2A1 is sent to the second specialization processing unit 2B1 via the first interface unit 2A2, the inter-OS communication path 5, and the second usage source interface unit 2B3.
  • the second specialization processing unit 2B1 transmits the processing result of the second command to the second client computer.
  • each OS includes an I / O device corresponding to a specialization processing unit included in the OS, and the use of the specialization processing unit included in the OS is used for other OSs. It is open to the public. Accordingly, each OS can use an I / O device that is not assigned to the OS via a specialized processing unit most suitable for the I / O device.
  • each OS can use a specialized processing unit suitable for an I / O device, so that processing using a desired I / O device can be performed at high speed. Can improve the performance of the computer.
  • FIG. 2 shows an outline of the configuration of the computer system in the first embodiment.
  • the physical computer 101 includes, for example, a host OS 102, virtualization software 118 that is an example of “virtualization function”, a virtual OS 109 that operates on the virtualization software 118, a disk 124 that is an example of “input / output device”, and a network interface.
  • a management interface 132 for communicating with a card (hereinafter, NIC) 125 and a management computer 134 is provided.
  • the host OS 102 as an example of “first OS” includes, for example, an external SCSI port 103, a block specialization processing unit 104, a disk driver 105, an interface control unit 106, an internal SCSI port 107, an inter-OS communication driver 108, and between OSs.
  • a communication path 119, a device allocation table 120, an allocation control program 121, a specialized processing interface allocation table 122, and a communication path allocation table 123 are provided.
  • the first OS is configured as a host operating system that provides other OS virtualization functions.
  • the external SCSI port 103 is a communication port for performing SCSI communication with an external client computer (host computer) 126 via a storage area network (hereinafter, SAN) 128.
  • SAN storage area network
  • the SAN 128 may have a network form using FC (Fibre Channel) or Ethernet (registered trademark) in addition to a form in which the host computer 126 and the external SCSI port 103 are directly connected.
  • FC Fibre Channel
  • Ethernet registered trademark
  • the inter-OS communication path 119 is a communication path for the host OS 102 to communicate with the virtual OS 109.
  • a shared memory or PCI Express registered trademark
  • the inter-OS communication driver 108 is a communication driver for controlling the inter-OS communication path 119.
  • the internal SCSI port 107 is a communication port for performing SCSI communication with the virtual OS 109 or another virtual OS (not shown) via the inter-OS communication driver 108.
  • the computer 101 can be provided with a plurality of virtual OSs.
  • a disk (disk controller) 124 as an example of “first input / output device” can be allocated to the host OS 102.
  • the host OS 102 can perform block access to the disk 124 via the disk driver 105.
  • the disk 124 may be built in the computer 101 as shown in FIG. However, the present invention is not limited thereto, and the disk 124 may be provided outside the computer 101, and the disk 124 and the computer 101 may be connected via a SAN or a LAN.
  • the disk 124 may be a hard disk drive or a flash memory device.
  • the block specialization processing unit (block specialization processing program) 104 as an example of the “first predetermined processing unit” is a program for processing block access via the external SCSI port 103 and the internal SCSI port 107. is there.
  • An example of processing executed by the block specialization processing program 104 is a storage virtualization function.
  • the storage virtualization function is a function that can change the arrangement of the blocks on the disk 124 without affecting the application operating on the CPU 127 of the host computer 126 by virtualizing the block access destination address. .
  • the block specialization processing program 104 there is a function of speeding up the parity calculation necessary for configuring the RAID.
  • the block specialization processing program 104 can also control the tape library.
  • the interface control unit (interface control program) 106 creates, deletes, or changes an interface for using the block specialization processing program 104.
  • two interfaces, the external SCSI port 103 and the internal SCSI port 107, correspond to the interfaces for using the block specialization processing program 104.
  • the host OS 102 includes management tables 120, 122, 123 and an allocation control program 121.
  • the device allocation table 120 is a table for managing allocation of devices 124 and 125 included in the computer 101.
  • the special processing interface allocation table 122 is a table for managing the virtual OS 109 that can use the block special processing program 104.
  • the communication path allocation table 123 is a table used for determining whether or not communication of the inter-OS communication path 119 is permitted.
  • the allocation control program 121 is a program that provides a function for editing the device allocation table 120, the specialized processing interface allocation table 122, and the communication path allocation table 123. A configuration example of each table will be described later.
  • the management interface 132 of the computer 101 is connected to the management computer 134 via a management LAN (Local Area Network) 133.
  • the administrator of the computer 101 can issue commands to the interface control program 106 of the host OS 102, the interface control program 113 of the virtual OS 109, and the allocation control program 121 by operating the management computer 134.
  • the virtual OS 109 includes, for example, a file sharing server 110, a network special processing unit (network special processing program) 112, an interface control unit (interface control program) 113, a SCSI device file 114, a cache memory 115, a NIC driver 116, and an OS.
  • a communication driver 117 is provided.
  • the file sharing server is abbreviated as FS, the network as NW, and the cache memory as CM.
  • the file sharing server 110 is connected to the client computer 129 via the LAN 131, and provides a file sharing service to the client computer 129.
  • the file sharing server 110 has a command table 111.
  • the command table 111 is used to determine processing to be executed in accordance with a command issued from a file sharing client operating on the CPU 130 of the client computer 129.
  • the file sharing server 110 can read / write data specified by the read / write command issued from the client computer 129 to / from the disk 124 according to the procedure shown in FIGS.
  • the network specialization processing program 112 as an example of the “second predetermined processing unit” is a program for receiving a processing result of the file sharing server 110 and performing further network processing.
  • One example of processing executed by the network specialization processing program 112 is a remote copy function using the NIC 125.
  • the network specialization processing program 112 can transfer and read data read from the disk 124 to another computer (not shown) installed at a location different from the installation location of the computer 101.
  • the interface control program 113 is a program for creating, deleting, or changing an interface for using the network specialization processing program 112.
  • the SCSI device file 114 is for performing SCSI communication with the host OS 102 or another virtual OS (not shown) via the inter-OS communication driver 117. Further, a cache memory 115 may be provided as a cache area for temporarily storing data on the disk 124.
  • the NIC driver 116 is a program for controlling the NIC 125.
  • a NIC 125 as an example of a “second input / output device” is assigned to the virtual OS 109 according to the characteristics of the network specialization processing program 112.
  • the virtual OS 109 can access the NIC 125 via the NIC driver 116.
  • the inter-OS communication driver 117 controls the inter-OS communication path 119.
  • FIG. 2 shows a case where the file sharing server 110 receives a command from the client computer 129 before the network specialization processing program 112.
  • the network specialization processing program 112 may receive a command from the client computer 129 before the file sharing server 110.
  • the virtual OS 109 accesses the block special processing program 104 of the host OS 102 via the inter-OS communication path 119 and the like, and the block special processing program The case where 104 is used will be mainly described. Therefore, in this embodiment, the virtual OS 109 may not have the network specialization processing program 112.
  • the scope of the present invention is not limited to the configuration in which the other OS 109 uses the specialization processing unit 104 included in one OS 102, but the specialization processing unit 112 included in the other OS 109 is included in one side. This also extends to the configuration used by the OS 102.
  • FIG. 3 is an explanatory diagram showing the configuration of the computer 101.
  • the computer 101 has at least a CPU 201, a memory 202, a disk 124, and a NIC 125.
  • a host OS 102 In the memory 202, a host OS 102, a virtual OS 109, and virtualization software 118 are arranged.
  • the host OS 102, the virtual OS 109, and the virtualization software 118 operate on the CPU 201. Details of the components 103 to 108 and 119 to 123 included in the host OS 102 and the components 110 and 112 to 117 included in the virtual OS 109 are as described above.
  • FIG. 4 is a configuration diagram of a computer system including a computer 101A corresponding to a modification of the first embodiment.
  • the first OS is configured as a virtual OS 301 instead of the host OS.
  • a specialized processing program is used between a plurality of virtual OSs 301 and 109.
  • the virtualization software 118 is a communication path 109 between OSs, a device allocation table 120, an allocation control program 121, a specialized processing interface allocation table 122, and a communication path allocation table 123. Have The details of each of these components 120 to 123 are as described above.
  • FIG. 5 is an explanatory diagram showing the configuration of the computer 101A in the configuration of FIG.
  • the computer 101A includes at least a CPU 201, a memory 202, a disk 124, and a NIC 125.
  • a first virtual OS 301 as an example of the first OS, a second virtual OS 109 as an example of the second OS, and virtualization software 118 as an example of a virtualization function are arranged. ing.
  • the first virtual OS 301, the second virtual OS 109, and the virtualization software 118 operate on the CPU 201. Details of the components included in the virtual OS 301, the virtual OS 109, and the virtualization software 118 are as described above.
  • the configuration shown in FIG. 2 is compared with the configuration shown in FIG.
  • the block specialization process 104 can input / output data to / from the disk 124 at a relatively high speed.
  • the first virtual OS 301 accesses the disk 124 via the virtualization software 118, so the data input / output speed is lower than that of the configuration of FIG. 2.
  • devices are assigned to the virtual OSs 301 and 109, and thus versatility is high and can be used for various purposes.
  • the command table 111 shown in FIG. 6A is used to determine the type of command received from the client computer 129.
  • the command table 111 includes, for example, at least a column 1111 indicating a file sharing protocol command and a column 1112 indicating whether or not the command requires block processing I / O processing.
  • the command table 111 may include a column for storing details of processing for the command, for example.
  • the device allocation table 120 shown in FIG. 6B is a table for managing device allocation to the OS.
  • the device allocation table 120 includes, for example, a column 1201 indicating at least an OS name to which a device is allocated, a column 1202 indicating a device name to be allocated, a column 1203 indicating a specialization process included in each OS, and a specialization process. It has a column 1204 indicating an interface (hereinafter referred to as a specialized processing interface).
  • a plurality of devices may be assigned to each OS.
  • Each OS may have a plurality of specialized processing programs corresponding to a plurality of assigned devices.
  • Each OS may be assigned a plurality of devices of the same type, or may be assigned a plurality of devices of different types.
  • the specialized processing interface 1204 is preferably a file interface such as a device file, but is not limited to this, and may be an interface that directly specifies a memory address.
  • An interface by RPC Remote Procedure Call
  • RPC Remote Procedure Call
  • a disk 124 as an input / output device is allocated to the host OS 102 (columns 1201 and 1202), and the name of the specialized process using the disk 124 is “block process”. (Id 1203), the interface for using the block processing is an internal SCSI port (No. 1204).
  • the NIC 125 as an input / output device is assigned to the virtual OS 109 (columns 1201 and 1202), and the name of the specialized process that uses the NIC 125 is “network process” (same as above). 1203), an interface for using network processing is a virtual PCI device interface (1204).
  • the third and fourth lines of the table 120 correspond to examples described later.
  • a tape drive 411 (see FIG. 13) is assigned as an input / output device to the host OS 102 (columns 1201 and 1202), and the name of the specialized process using the tape drive 411 is It is “block processing” (1203), and the interface for using the block processing is an internal SCSI port (1204).
  • a tape controller 413 (see FIG. 13) is assigned as another input / output device to the host OS 102 (columns 1201 and 1202), and the special processing using the tape controller 413 is performed.
  • the name is “remote control function” (1203), and the interface for using the remote control function is a virtual SCSI initiator (1204).
  • the specialized process interface allocation table 122 shown in FIG. 7A is a table for managing an OS that is permitted to use a specialized process program and a provider interface (use source interface).
  • the specialized process interface allocation table 122 has at least four columns 1221 to 1224, for example.
  • the first column 1221 indicates an OS name having specialization processing.
  • the second column 1222 indicates the name of the specialization process.
  • the third column 1223 shows the OS name that provides the use of the specialization process.
  • the fourth column 1224 shows an interface for using the specialization process in the OS to which the specialization process is provided.
  • the interface shown in the column 1224 can be referred to as a provider interface or a user interface.
  • the provider interface for example, a file interface such as a device file is suitable.
  • a file interface such as a device file is suitable.
  • the present invention is not limited to this, and an interface that directly specifies a memory address may be used.
  • the provision destination interface may be an RPC client.
  • the communication path allocation table 123 shown in FIG. 7B manages communication paths allocated among a plurality of OSs.
  • the communication path allocation table 123 includes, for example, at least a column 1231 that indicates an OS that is one end of the communication path, and a column 1232 that indicates an OS that is the other end of the communication path. Further, the table 123 may include a column 1233 indicating a communication band that can be used between the OSs. When a shared memory is used as a communication path, the communication path allocation table 123 further includes a column 1234 indicating a memory address, and an OS that can access the memory is described in columns 1231 and 1232.
  • FIG. 8 is a flowchart showing a procedure for allocating devices included in the computer 101 to the host OS 102 and the virtual OS 109 provided in the computer 101.
  • the administrator operates the management computer 134 to set special processing for the host OS 102 and the virtual OS 109, respectively.
  • the allocation control program 121 updates the columns 1203 and 1204 of the device allocation table 120 (S11).
  • Step S11 may be executed when the host OS 102 and the virtual OS 109 are installed in the computer 101, instead of being executed in response to an operation by the administrator.
  • the administrator allocates a device suitable for each specialized process to each OS in accordance with the specialized process set for each OS in step S11 (S12, S13).
  • the disk 124 is allocated to the host OS 102 (S12), and the NIC 125 is allocated to the virtual OS 109 (S13).
  • the assignment control program 121 updates the column 1202 of the device assignment table 120 according to the device assignment by the administrator (S12, S13).
  • the host OS 102 creates an internal SCSI port 107 that is an interface for using the block specialization process 104 (S14).
  • the virtual OS 109 creates a PCI device interface, which is an interface for using the network specialization processing program 112 (S15), and ends this processing. Note that the PCI device interface is not shown in the figure.
  • FIG. 9 is a flowchart showing a procedure for providing an interface so that the virtual OS 109 can use the block specialization processing 104 of the host OS 102.
  • the administrator operates the management computer 134 and instructs the interface control program 106 of the host OS 102 to permit the virtual OS 109 to use the block specialization process 104 (S21).
  • the interface control program 106 checks whether communication between the OSs of the host OS 102 and the virtual OS 109 is permitted using the communication path allocation table 123 (S22). When communication between OSs is not permitted (S22: No), the interface control program 106 instructs the allocation control program 121 to set a communication path between the host OS 102 and the virtual OS 109 (S23). Upon receiving the instruction, the assignment control program 121 sets the communication path between the OSs and updates the communication path assignment table 123 (S24). In S23, it may be instructed to set a shared memory instead of the communication path. At that time, the interface control program 106 designates an address that can be used as a shared memory, and updates the communication path allocation table 123.
  • the interface control program 113 of the virtual OS 109 creates a SCSI device file 114 for accessing the internal SCSI port 107 (S25). If it is determined that inter-OS communication between the host OS 102 and the virtual OS 109 has already been permitted (S22: Yes), steps S23 and S24 are skipped and the process proceeds to step S25.
  • the allocation control program 121 updates the specialized process interface allocation table 122 (S26), and ends this process.
  • 10 to 12 are flowcharts showing a procedure in which the file sharing server 110 that has received a command from the client computer 129 accesses the data stored in the disk 124 and returns a command processing result to the client computer 129. is there.
  • the file sharing server 110 of the virtual OS 109 receives a command issued from the file sharing client on the client computer 129 (S31).
  • the file sharing server 110 refers to the command table 111 to determine whether or not the command processing requires block processing (S32). If it is determined that block processing is not required to process the command (S32: No), the file sharing server 110 processes the command (S33). The file sharing server 110 transmits the processing result of the command to the client computer 126 and ends this processing (S34).
  • the file sharing server 110 determines that the block processing is necessary to process the command received from the client computer 129 (S32: Yes)
  • the file sharing server 110 determines the I / O of the data necessary for the command processing. O is requested to the network specialization processing program 112 (S35).
  • the file sharing server 110 identifies data on the disk 124 necessary for command processing, and requests the network specialized processing program 112 to acquire the data.
  • the case of requesting data reading and the case of requesting data writing are expressed as requesting I / O without any particular distinction.
  • the network specific processing program 112 executes a process specific to the network (S36), and writes an I / O request for the data to the SCSI device file (S37). If the virtual OS 109 does not have the network specialization processing program 112, the file sharing server 110 may write an I / O request for the data to the SCSI device file.
  • the virtual OS 109 reads the I / O request written in the SCSI device file 114 and determines whether the requested data exists in the cache memory 115 (S38). When the cache memory 115 exists and the requested data exists in the cache memory 115 (S38: Yes), the process proceeds to step S52 in the flowchart of FIG. The processing after step S52 will be described later.
  • the virtual OS 109 uses the inter-OS communication driver 117 to The OS 102 is requested to perform I / O of the data (S39). It moves to the flowchart of FIG. 11 through the connector A.
  • the host OS 102 receives a data I / O request from the virtual OS 109 via the inter-OS communication driver 108 (S41).
  • the host OS 102 refers to the specialized processing interface allocation table 122 and determines whether or not the virtual OS 109 can access the internal SCSI port 107 (S42).
  • S42 determines whether or not the virtual OS 109 can access the internal SCSI port 107 (S42).
  • S42 determines whether or not the virtual OS 109 can access the internal SCSI port 107 (S42: Yes), that is, when the virtual OS 109 is described in the “provided OS name” 1223 of the specialization process interface allocation table 122, the host OS 102 A data I / O request is written in 107 (S43).
  • the block specialization processing program 104 reads the contents of the internal SCSI port 107 and executes block specialization processing (S44).
  • the block specialization processing program 104 issues a data I / O request to the disk 124 via the disk driver 105 (S45).
  • the block specialization processing program 104 receives the result of the data I / O request from the disk 124 (S46).
  • the block specialization processing is a storage virtualization function
  • the block specialization processing program 104 can convert the address of the read data into another address and return an I / O result.
  • the block specialization processing can execute RAID processing, so-called thin provisioning processing, and the like.
  • the block specialization processing program 104 processes the result of the data I / O request (S47), and writes the processing result to the internal SCSI port 107 (S48).
  • the specialization processing is a storage virtualization function
  • the block specialization processing program 104 outputs to an address different from the address of the read data. It may be written to the internal SCSI port after conversion.
  • the host OS 102 reads the contents of the internal SCSI port 107 (processing result of the data I / O request), and returns the I / O result to the virtual OS 109 using the inter-OS communication driver 108 (S49). The process proceeds to the flowchart of FIG.
  • the virtual OS 109 receives the processing result of the data I / O request using the inter-OS communication driver 117, and writes the received processing result in the SCSI device file 114 (S51).
  • the network specialization processing program 112 reads the processing result of the I / O request from the SCSI device file 114 (S52). The network specialization processing program 112 executes the network specialization processing and returns the processing result to the file sharing server 110 (S53).
  • the file sharing server 110 creates a command based on the processing result from the network specialization processing program 112, returns the command to the file sharing client 129, and ends this processing (S54). If the virtual OS 109 does not have the network specialization processing program 112, the file sharing server 110 may read the I / O result from the SCSI device file and execute step S54.
  • the file sharing server 110 that has received a command from the client computer 129 can use the function of the block specialization processing program 104 of the host OS when accessing the data stored in the disk 124.
  • the virtual OS 109 can use the block specialization processing 104 implemented in the host OS 102, it can process data at a higher speed than when the virtual OS 109 has the minimum necessary block processing function. . For this reason, the computer 101 can be improved in performance without adding much cost.
  • the OS 109 that can access the block specialization processing 104 of the host OS 102 is set, it is possible to prevent a plurality of OSs from using the device (disk 124) in a disorderly manner, and to increase the efficiency of the computer 101.
  • the host OS 102 and the virtual OS 109 can communicate quickly inside the computer 101.
  • the second embodiment will be described with reference to FIGS. Since the present embodiment corresponds to a modification of the first embodiment, differences from the first embodiment will be mainly described. In this embodiment, a case where a plurality of interface units are provided for one specialized process will be described.
  • FIG. 13 shows an outline of the configuration of a computer system including the computer 101B.
  • the block specialization processing program 104 of this embodiment has a function of controlling the tape library 409 connected to the computer 101B and a function of issuing a data I / O request to the tape library 409.
  • the virtual OS 109 creates a backup requested by the backup server 408 in the tape library 409 or reads a created backup by using a plurality of functions of the block specialization process 104.
  • the computer 101B includes, for example, a host OS 102, virtualization software 118, and a virtual OS 109 that operates on the virtualization software 118.
  • the host OS 102 has a SAN interface (hereinafter, SAN I / F) 404 for communicating with an external tape library 409 connected to the computer 101B.
  • SAN I / F SAN interface
  • the connection form of the tape library 409 and the computer 101B may be a network form using FC or Ethernet (registered trademark) in addition to a direct connection form.
  • the host OS 102 passes through the inter-OS communication path 119 for communicating with the virtual OS 109, the inter-OS communication driver 108 for controlling the inter-OS communication path 119, and the inter-OS communication driver 108.
  • the host OS 102 includes a virtual SCSI initiator 401 for providing another virtual OS with a function of operating another device (here, the tape library 409) using a SCSI command.
  • the block specialization processing program 104 of this embodiment can read and write data stored in the tape library 409 via the tape driver 403. Furthermore, the block specialization processing program 104 of this embodiment can control the operation of the tape library 409 via the SCSI initiator 402.
  • a function for controlling the operation of the tape library 409 is referred to as a remote control function.
  • the operation of the tape library 409 is an operation of the controller 413 of the tape library 409. For example, there is an operation of taking out a tape from a slot storing a tape medium and inserting it into a drive.
  • the host OS 102 includes a device allocation table 120, a specialized processing interface allocation table 122, a communication path allocation table 123, and an allocation control program 121.
  • the administrator of the computer 101B can issue commands to the interface control program 106 of the host OS 102, the interface control program 113 of the virtual OS 109, and the allocation control program 121 by operating the management computer 134.
  • the virtual OS 109 includes a backup program 405.
  • the backup program 405 receives a command from the backup server 408 via the LAN 414 and executes a backup process.
  • the LAN 414 is preferably Ethernet (registered trademark), but may be a SAN using FC.
  • the backup program 405 has a command table 406 for determining processing to be executed in accordance with a command from the backup server 408. Details of the command table 406 will be described later with reference to FIG.
  • the virtual OS 109 includes an inter-OS communication driver 117 for controlling the inter-OS communication path 119 and an SCSI device for performing SCSI communication with the host OS 102 and other virtual OS (not shown) via the inter-OS communication driver 117. It has a file 114. Furthermore, the virtual OS 109 of this embodiment includes a SCSI initiator file 407 for accessing the virtual SCSI initiator 401 and using the block specialization processing 104.
  • the tape library 409 is connected to the computer 101B via the SAN and is assigned to the host OS 102.
  • the tape library 409 includes a drive 411 for reading and writing data on a tape medium, a drive interface 410 for accessing the drive 411, a controller 413, and a control I / F 412 for accessing the controller 413.
  • FIG. 14 is a configuration example of the command table 406.
  • the command table 406 includes at least a column 4061 indicating a backup protocol command and a column 4062 indicating whether the command is data I / O or tape library control.
  • the command table 406 may be configured to store details of processing related to the command.
  • the backup program 405 needs to read data from the tape stored in the tape library 409. Therefore, “data I / O” is described in the column 4061 of the command table 406.
  • the backup program 405 needs to control the controller 413 of the tape library 409 to insert the tape medium into the drive 411. Therefore, “tape control” is described in the column 4062 of the command table 406. “Tape insertion” and “tape control” are only examples, and any content that can distinguish a command for reading and writing data from a command for controlling the tape library 409 may be used.
  • FIG. 15 is a flowchart showing a procedure for assigning the tape library 409 connected to the computer 101B to the host OS 102.
  • Step S61 may be executed when the host OS 102 is installed in the computer 101B or when the tape library 409 is connected to the computer, instead of being executed in response to an administrator operation.
  • the allocation control program 121 updates the column 1202 of the device allocation table 120 (S62).
  • the host OS 102 creates the internal SCSI port 107 and the virtual SCSI initiator 401 (S63, S64), and ends this processing.
  • step S25 the interface control program 113 of the virtual OS 109 creates a SCSI device file 114 and a SCSI initiator file 407. Thereafter, the allocation control program 121 updates the specialized process interface allocation table 122 (S26), and ends this process.
  • FIGS. 16 and 17 are flowcharts showing a procedure for reading / writing data of the tape medium inserted into the drive 411 using the drive interface 410 and operating the controller 413 using the control interface 412.
  • the backup program 405 receives the command issued from the backup server 408 (S81).
  • the backup program 405 refers to the command table 406 to determine the type of the command (S82).
  • the backup program 405 writes the contents of the command to the SCSI device file 114 (S83).
  • the backup program 405 writes the contents of the command in the SCSI initiator file 407 (S84).
  • the virtual OS 109 reads the command content written in either the SCSI device file 114 or the SCSI initiator file 407, and transmits the command content to the host OS 102 via the inter-OS communication driver 115 (S85).
  • the host OS 102 receives the command content using the inter-OS communication driver 108 (S86).
  • the block specialization process 104 reads the contents of the internal SCSI port 107 or the virtual SCSI initiator 401, and determines whether the command contents relate to data I / O or tape control (S87).
  • the block specialization process 104 When the command content is “data I / O” (S87: I / O), the block specialization process 104 requests data I / O from the drive interface 410 via the tape driver 403 (S88, S89). . On the other hand, when the command content is “tape control” (S87: tape control), the block specialization process 104 transmits the operation content to the control interface 412 via the SCSI initiator 402 (S90, S91).
  • the tape library 409 reads / writes data to / from the tape medium using the drive 411 (S101). For example, the tape library 409 reads data at a specified position on a predetermined number of tape media inserted into the drive 411 specified by the command.
  • the tape library 409 controls the controller 413 based on the content received by the control interface 412 (S102). For example, the tape library 409 inserts the tape medium designated by the command into the designated drive.
  • the tape library 409 transmits the processing result to the host OS 102 via the drive interface 410 or the control interface 412.
  • the processing result is received by the block specialization processing program 104 (S103).
  • the block specialization processing program writes the received processing result in the internal SCSI port 107 or the virtual SCSI initiator 401.
  • the host OS 102 returns the processing result to the virtual OS 109 using the inter-OS communication driver 108 (S104).
  • the virtual OS 109 receives the processing result from the host OS 102 using the inter-OS communication driver 117 (S105). The virtual OS 109 determines whether the processing result relates to “data I / O” or “tape control” (S106).
  • the virtual OS 109 transmits the processing result to the backup program 405 via the SCSI device file 114 (S107).
  • the processing result is a result for “tape control” (S106: tape control)
  • the virtual OS 109 transmits the processing result to the backup program 405 via the SCSI initiator 402 (S108).
  • the backup program S109 creates a command based on the processing result, returns the command to the backup server 408, and ends this processing (S109).
  • the above procedure is based on the configuration shown in FIG. 13, but the same procedure can be realized by replacing the host OS 102 with the virtual OS 301 as in the first embodiment.
  • the virtual OS 109 can realize backup processing to the tape library 409 by using a plurality of functions of the block specialization processing 104 of the host OS 102.
  • the present embodiment has the same effects as those described in the first embodiment even for devices such as the tape library 409 that have different data I / O interfaces and control interfaces.
  • an inter-operating system communication path for communication between the first operating system and the second operating system is provided, and the second operating system is configured to operate the operating system in the predetermined case.
  • the configuration of the “computer that uses the first predetermined processing unit” is “the first operating system provides the virtualization function” It can also be combined with a configuration of “a computer configured as a host operating system” or a different configuration.

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

The objective of the present invention is to provide an environment in which a plurality of operating systems share resources. A first operating system (2A) is provided with a first predetermined processing unit (2A1). Of a plurality of input/output devices, a first input/output device (4A) corresponding to the properties of the first predetermined processing unit (2A1) is assigned to the first operating system (2A). The first operating system (2A) is provided with a first interface unit (2A2) for allowing a second operating system (2B) to use the first predetermined processing unit (2A1). The second operating system (2B), in a predetermined case, uses the first predetermined processing unit (2A1) via the first interface unit (2A2).

Description

計算機および計算機の制御方法Computer and computer control method
 本発明は、計算機および計算機の制御方法に関する。 The present invention relates to a computer and a computer control method.
 計算機の仮想化技術が広く利用されており、近年では、用途に応じて仮想計算機を運用することが多くなっている。例えば、それぞれ異なるOS(Operation System)で動作するメールサーバとデータベースサーバのような複数種類のアプリケーションを、異なる仮想計算機で動作させることで、OSおよびソフトウェアの保守を容易にすることができる。 Computer virtualization technology is widely used, and in recent years, virtual computers are frequently used according to their usage. For example, OS and software maintenance can be facilitated by operating a plurality of types of applications such as a mail server and a database server operating on different OSs (Operation Systems) on different virtual machines.
 物理計算機には、一般的に、様々なI/O(Input/Output)デバイスが接続される。各アプリケーションがそれぞれの特性に合わせてI/Oデバイスを使用するためには、I/Oデバイスを複数のOS間で共有するための機能が必要である。 Generally, various I / O (Input / Output) devices are connected to the physical computer. In order for each application to use an I / O device in accordance with its characteristics, a function for sharing the I / O device among a plurality of OSs is necessary.
 物理計算機に接続された複数のI/Oデバイスを複数の仮想計算機で共有するために、これらI/Oデバイスを、同一計算機内の複数のCPU(Central Processing Unit)に接続する技術が知られている(特許文献1)。PCI-SIG(PCI Special Interest Group)により標準化されたSR-IOV(Single Root-IO Virtualization)規格に対応するI/Oデバイスを、複数の物理計算機上の複数の仮想計算機で共有する技術も知られている(特許文献2)。 In order to share a plurality of I / O devices connected to a physical computer with a plurality of virtual computers, a technology for connecting these I / O devices to a plurality of CPUs (Central Processing Units) in the same computer is known. (Patent Document 1). There is also a known technology for sharing I / O devices corresponding to SR-IOV (Single Root-IO Virtualization) standardized by PCI-SIG (PCI Special Interest Group) with multiple virtual machines on multiple physical computers. (Patent Document 2).
 さらに、一つのネットワークカードに対して複数の仮想的なネットワークカードを作成し、それらを仮想計算機に割り当てる技術も知られている(特許文献3)。物理計算機に接続された複数のI/Oデバイスをそれぞれ別の仮想計算機に割り当てて、それら仮想計算機の間で高速なデータ通信を行うことで、I/Oデバイスを複数の仮想計算機で共有する技術も知られている(特許文献4)。 Furthermore, a technique for creating a plurality of virtual network cards for one network card and assigning them to a virtual machine is also known (Patent Document 3). A technology for sharing an I / O device among a plurality of virtual machines by assigning a plurality of I / O devices connected to a physical machine to different virtual machines and performing high-speed data communication between the virtual machines. Is also known (Patent Document 4).
米国特許第7058738号US Pat. No. 7,058,738 特開2009-301162号公報JP 2009-301162 A 米国特許第7965714号US Pat. No. 7,965,714 米国公開特許第2012/0260017号US Published Patent No. 2012/0260017
 従来技術によれば、I/Oデバイス層以上の処理は、各仮想計算機ごとに実装する必要がある。従って、各仮想計算機においてI/Oデバイス層より上位に実装された性能または機能を、他の仮想計算機が利用することはできない。 According to the prior art, processing beyond the I / O device layer needs to be implemented for each virtual machine. Therefore, the performance or function implemented above the I / O device layer in each virtual machine cannot be used by other virtual machines.
 例えば、RAID(Redundant Arrays of Independent Disks)処理性能およびブロック機能に特化した一方の仮想計算機と、ネットワーク処理性能およびファイル機能に特化した他方の仮想計算機が一つの物理計算機上に混在している場合を想定する。 For example, one virtual machine specialized for RAID (Redundant Arrays of Independent Disks) processing performance and block function and the other virtual machine specialized for network processing performance and file function are mixed on one physical computer. Assume a case.
 この場合、一方の仮想計算機がネットワーク処理およびファイル処理を行うためには、一方の仮想計算機にネットワーク処理機能およびファイル機能を実装する必要がある。同様に、他方の仮想計算機がRAID処理およびブロック処理を行うためには、他方の仮想計算機にRAID処理機能およびブロック機能を実装する必要がある。 In this case, in order for one virtual machine to perform network processing and file processing, it is necessary to implement the network processing function and file function in one virtual machine. Similarly, in order for the other virtual machine to perform RAID processing and block processing, it is necessary to implement a RAID processing function and a block function in the other virtual machine.
 つまり、従来技術では、各仮想計算機に、RAID処理機能、ネットワーク処理機能などをそれぞれ個別に実装する必要があり、必要に追われて搭載された機能は必ずしも高性能ではなかった。仮想計算機の主な用途に応じた機能は丁寧に作成されるが、それ以外の用途に関する機能は必要な程度に作成される傾向があるためである。従って、従来技術では、各仮想計算機がそれぞれ複数の機能を実装する必要があり、そのための工数が増大し、コストが増加する。さらに、主用途以外の用途に関する機能は一般的に性能が低いため、仮想計算機の全体的な性能を高くすることができないという課題がある。 In other words, in the prior art, it is necessary to individually implement a RAID processing function, a network processing function, and the like in each virtual machine, and the functions installed after being required are not necessarily high performance. This is because functions corresponding to the main use of the virtual machine are carefully created, but functions related to other uses tend to be created to a necessary extent. Therefore, in the prior art, each virtual computer needs to be equipped with a plurality of functions, which increases the man-hours and costs. Furthermore, since functions related to applications other than the main application generally have low performance, there is a problem that the overall performance of the virtual machine cannot be increased.
 本発明は、上記の課題に鑑みてなされたもので、その目的は、従来よりも高性能な機能を従来よりも少ない工数で、複数のオペレーティングシステムが共同で使用することができるようにした計算機および計算機の制御方法を提供することにある。 The present invention has been made in view of the above-described problems, and an object of the present invention is to provide a computer in which a plurality of operating systems can jointly use a higher-performance function than the conventional one with less man-hours. And providing a computer control method.
 上記課題を解決すべく、本発明に係る計算機は、それぞれ独立して動作する複数のオペレーティングシステムと、複数の入出力デバイスとを有する計算機であって、複数のオペレーティングシステムは第1のオペレーティングシステムと第2のオペレーティングシステムとを含んでおり、第1のオペレーティングシステムは第1の所定の処理部を備えており、第1のオペレーティングシステムには、複数の入出力デバイスのうち第1の所定の処理部の特性に応じた第1の入出力デバイスが割り当てられており、第1のオペレーティングシステムは、第1の所定の処理部を第2のオペレーティングシステムが使用するための第1のインターフェース部を備え、第2のオペレーティングシステムは、所定の場合に、第1のインターフェース部を介して第1の所定の処理部を使用する。 In order to solve the above problems, a computer according to the present invention is a computer having a plurality of operating systems that operate independently and a plurality of input / output devices, the plurality of operating systems being a first operating system. A first operating system including a first predetermined processing unit, and the first operating system includes a first predetermined process among a plurality of input / output devices. The first input / output device is assigned according to the characteristics of each unit, and the first operating system includes a first interface unit for the second operating system to use the first predetermined processing unit. The second operating system activates the first interface unit in a predetermined case. By using a first predetermined processing unit.
 複数のオペレーティングシステムは、計算機を仮想化する仮想化機能の上に設けられる少なくとも一つの仮想オペレーティングシステムを含んでおり、第2のオペレーティングシステムは仮想オペレーティングシステムとして構成してもよい。 The plurality of operating systems include at least one virtual operating system provided on a virtualization function for virtualizing the computer, and the second operating system may be configured as a virtual operating system.
 本発明によれば、計算機上の複数のオペレーティングシステムは、高性能の機能を低コストに利用することができる。 According to the present invention, a plurality of operating systems on a computer can use high-performance functions at low cost.
図1は、実施形態の全体概要を示す説明図である。FIG. 1 is an explanatory diagram showing an overall outline of the embodiment. 図2は、第1実施例に係る計算機システムの概要を示す説明図である。FIG. 2 is an explanatory diagram illustrating an overview of the computer system according to the first embodiment. 図3は、計算機の構成を示すブロック図である。FIG. 3 is a block diagram showing the configuration of the computer. 図4は、他の形態の計算機システムの概要を示す説明図である。FIG. 4 is an explanatory diagram showing an outline of a computer system of another form. 図5は、図4に示す計算機の構成を示すブロック図である。FIG. 5 is a block diagram showing the configuration of the computer shown in FIG. 図6は、コマンドテーブル(a)およびデバイス割当テーブル(b)の構成例を示す。FIG. 6 shows a configuration example of the command table (a) and the device allocation table (b). 図7は、特化処理インターフェース割当テーブル(a)および通信路割当テーブル(b)の構成例を示す。FIG. 7 shows a configuration example of the specialized process interface allocation table (a) and the communication path allocation table (b). 図8は、計算機の有するデバイスをホストOSと仮想OSに割り当てる手順を示すフローチャートである。FIG. 8 is a flowchart showing a procedure for allocating devices included in a computer to a host OS and a virtual OS. 図9は、ホストOSが有する特化処理を使用するためのインターフェースを仮想OSに提供する手順を示すフローチャートである。FIG. 9 is a flowchart illustrating a procedure for providing the virtual OS with an interface for using the specialization process of the host OS. 図10は、ホストOSが有する特化処理を使用するためのインターフェースを仮想OSが利用する手順を示すフローチャートの一部である。FIG. 10 is a part of a flowchart illustrating a procedure in which the virtual OS uses an interface for using the specialization process of the host OS. 図11は、図10に続くフローチャートである。ホストOSが有する特化処理に対するインターフェースを仮想OSが利用する手順を示すフFIG. 11 is a flowchart following FIG. A flow chart showing the procedure for the virtual OS to use the interface for the specialized processing that the host OS has. 図12は、図11に続くフローチャートである。FIG. 12 is a flowchart following FIG. 図13は、第2実施例に係る計算機システムの概要を示す説明図である。FIG. 13 is an explanatory diagram showing an overview of a computer system according to the second embodiment. 図14は、コマンドテーブルの構成例を示す。FIG. 14 shows a configuration example of the command table. 図15は、計算機の有するデバイスをホストOSと仮想OSに割り当てる手順を示すフローチャートである。FIG. 15 is a flowchart illustrating a procedure for assigning devices included in a computer to a host OS and a virtual OS. 図16は、ホストOSが有する特化処理を使用するためのインターフェースを仮想OSが利用する手順を示すフローチャートの一部である。FIG. 16 is a part of a flowchart illustrating a procedure in which the virtual OS uses an interface for using the specialization process of the host OS. 図17は、図16に続くフローチャートである。FIG. 17 is a flowchart following FIG.
 以下、図面に基づいて、本発明の実施の形態を説明する。本実施形態の計算機は、特定の処理に特化したプログラムを有した第1のOSと、別の特定の処理に特化したプログラムを有する第2のOSとを有する。それぞれの特定の処理に適した入出力デバイス(I/Oデバイス)が各OSに割り当てられる。さらに、各OSは、自OSの有する特定の処理を相手方OSが利用できるようにするためのインターフェース部を備える。これにより、第1のOSは第2のOSの有する特定の処理を利用でき、第2のOSは第1のOSの有する特定の処理を利用できる。 Hereinafter, embodiments of the present invention will be described with reference to the drawings. The computer of this embodiment has a first OS having a program specialized for a specific process and a second OS having a program specialized for another particular process. An input / output device (I / O device) suitable for each specific process is assigned to each OS. Furthermore, each OS includes an interface unit for allowing the other party OS to use a specific process of the own OS. As a result, the first OS can use a specific process of the second OS, and the second OS can use a specific process of the first OS.
 図1は、本実施形態の概要を示す説明図である。図1は、本実施形態の理解のために用いられるもので、本発明の範囲は図1に記載された構成に限定されない。図中では、インターフェースをI/Fと略記する場合がある。 FIG. 1 is an explanatory diagram showing an outline of the present embodiment. FIG. 1 is used for understanding the present embodiment, and the scope of the present invention is not limited to the configuration described in FIG. In the drawing, the interface may be abbreviated as I / F.
 コンピュータシステムは、少なくとも一つの物理計算機1と、物理計算機1に通信可能に接続された複数のクライアント計算機6A、6Bを備えている。物理計算機1は、第1のOS2Aと、第2のOS2Bと、仮想化機能3と、第1のI/Oデバイス4Aと、第2のI/Oデバイス4Bを含む。 The computer system includes at least one physical computer 1 and a plurality of client computers 6A and 6B that are communicably connected to the physical computer 1. The physical computer 1 includes a first OS 2A, a second OS 2B, a virtualization function 3, a first I / O device 4A, and a second I / O device 4B.
 仮想化機能3は、物理計算機1上に仮想計算機(仮想OS)を生成する機能である。図1では、第1OS2Aおよび第2OS2Bの両方ともに仮想OSとして構成される例を示すが、本実施形態はそれに限らない。後述する実施例で明らかとなるように、第1のOSをホストOSとして構成し、第2のOSを仮想OSとして構成してもよい。 The virtualization function 3 is a function for generating a virtual computer (virtual OS) on the physical computer 1. Although FIG. 1 shows an example in which both the first OS 2A and the second OS 2B are configured as virtual OSs, the present embodiment is not limited thereto. As will be apparent from the embodiments described later, the first OS may be configured as a host OS and the second OS may be configured as a virtual OS.
 I/Oデバイス4A、4Bは、データなどを入出力するためのデバイスであり、例えば、ディスクコントローラ、ネットワークコントローラなどである。 The I / O devices 4A and 4B are devices for inputting and outputting data and the like, for example, a disk controller and a network controller.
 第1OS2Aは、第1の特化処理部2A1と、第1のインターフェース部2A2と、第1の利用元インターフェース部2A3を備える。第1の特化処理部2A1は「第1の所定の処理部」の一例であり、例えば、データをブロック単位で読み書きするためのブロック処理部(後述する実施例では、ブロック特化処理と呼ぶ)として構成される。第1のインターフェース部2A2は、第1の特化処理部2A1を第2のOS2Bに使用させるための機能であり、例えば内部SCSI(Small Computer System Interface)ポート、仮想SCSIイニシエータのように構成される。第1の利用元インターフェース部2A3は、第1のOS2Aが第2のOS2Bの第2の特化処理部2B1を使用するための機能であり、例えばPCI(Peripheral Component Interconnect)デバイスファイルのように構成される。 The first OS 2A includes a first specialization processing unit 2A1, a first interface unit 2A2, and a first use source interface unit 2A3. The first specialization processing unit 2A1 is an example of a “first predetermined processing unit”. For example, the first specialization processing unit 2A1 is a block processing unit for reading and writing data in units of blocks (in the embodiments described later, referred to as block specialization processing). ). The first interface unit 2A2 is a function for causing the second OS 2B to use the first specialization processing unit 2A1, and is configured as an internal SCSI (Small Computer System Interface) port or a virtual SCSI initiator, for example. . The first use source interface unit 2A3 is a function for the first OS 2A to use the second specialization processing unit 2B1 of the second OS 2B, and is configured as a PCI (Peripheral Component Interconnect) device file, for example. Is done.
 ここでインターフェースとは、例えばプログラム同士、装置同士のように、異なる複数の実体間で情報の伝達をするものである。詳しくは、本実施形態では、他方のOSが一方のOSの有する所定の処理部にアクセスして当該所定の処理部を利用するための機能を提供する実体(例えばプログラム)をインターフェースと呼ぶ。 Here, the interface is used to transmit information between a plurality of different entities such as programs and devices. Specifically, in the present embodiment, an entity (for example, a program) that provides a function for the other OS to access a predetermined processing unit included in one OS and use the predetermined processing unit is referred to as an interface.
 第2のOS2Bは、第1のOS2Aと同様に、第2の特化処理部2B1と、第2のインターフェース部2B2と、第2の利用元インターフェース部2B3を備える。第2の特化処理部2B1は、「第2の所定の処理部」の一例であり、例えば通信ネットワークを介してデータを送受信するためのネットワーク処理部(後述する実施例ではネットワーク特化処理と呼ぶ)として構成される。第2のインターフェース部2B2は、第2の特化処理部2B1を第1のOS2Aに使用させるための機能であり、例えば仮想PCIデバイスインターフェースのように構成される。第2の利用元インターフェース部2B3は、第2のOS2Bが第1のOS2Aの第1の特化処理部2A1を使用するための機能であり、SCSIデバイスファイル、SCSIイニシエータファイルのように構成される。 As with the first OS 2A, the second OS 2B includes a second specialization processing unit 2B1, a second interface unit 2B2, and a second usage source interface unit 2B3. The second specialization processing unit 2B1 is an example of a “second predetermined processing unit”, for example, a network processing unit for transmitting and receiving data via a communication network (in a later-described embodiment, network specialization processing and Configured). The second interface unit 2B2 is a function for causing the first special processing unit 2B1 to use the first OS 2A, and is configured as a virtual PCI device interface, for example. The second usage source interface unit 2B3 is a function for the second OS 2B to use the first specialization processing unit 2A1 of the first OS 2A, and is configured as a SCSI device file and a SCSI initiator file. .
 OS間通信路5は、第1のOS2Aと第2のOS2Bが通信するための経路であり、例えば仮想化機能3に設けられる。クライアント計算機6A、6Bは各OS2A、2Bの提供する情報処理サービスを利用するための計算機である。 The inter-OS communication path 5 is a path for communication between the first OS 2A and the second OS 2B, and is provided in the virtualization function 3, for example. The client computers 6A and 6B are computers for using the information processing service provided by each OS 2A and 2B.
 本実施形態では、仮想化機能3により生成された複数のOS2A、2Bに、それぞれの有する特化処理2A1、2B1の特性に応じた入出力デバイス4A、4Bを割当て、さらに、自OSの有する特化処理部2A1、2B1を他方のOSに使用させるためのインターフェース部2A2、2B2を用意する。つまり、各OS2A、2Bは、自らが有する特化処理部2A1、2B1を他方のOSに公開しており、他方のOSによる使用を許可できるようになっている。他方のOSによる特化処理部の使用を許可するか否かは、例えば手動で、または自動的に設定することができる。 In the present embodiment, input / output devices 4A and 4B corresponding to the characteristics of the specialization processes 2A1 and 2B1 possessed by the respective OSs 2A and 2B generated by the virtualization function 3 are assigned to the OSs 2A and 2B. Interface units 2A2 and 2B2 are prepared for causing the other OS to use the processing units 2A1 and 2B1. That is, the OSs 2A and 2B open their own specialized processing units 2A1 and 2B1 to the other OS, and can be used by the other OS. Whether or not to allow the use of the specialization processing unit by the other OS can be set manually or automatically, for example.
 OSが他方のOSの有する特化処理を利用する場合の流れを説明する。第1のOS2Aの第1の特化処理部2A1が第1のクライアント計算機6Aから第1のコマンドを受信した場合を説明する。第1のコマンドが要求する処理内容を実現するためには、第2の特化処理の使用が必要であるとする。 The flow when the OS uses the specialization process of the other OS will be described. A case where the first specialization processing unit 2A1 of the first OS 2A receives the first command from the first client computer 6A will be described. In order to realize the processing content requested by the first command, it is necessary to use the second specialized processing.
 図1中の太い実線P1に示すように、第1の特化処理部2A1は、第1の利用元インターフェース2A3およびOS間通信路5を介して、第2のOS2Bの第2のインターフェース部2B2にアクセスする。第1の特化処理部2A1は、第2のインターフェース部2B2を介して第2の特化処理部2B1を使用する。第2の特化処理部2B1は、第1の特化処理部2A1からの要求に応じて、第2のI/Oデバイス4Bにデータを入出力し、要求された処理を実行する。第2の特化処理部2B1の処理結果は、第2のインターフェース部2B2、OS間通信路5、第1の利用元インターフェース部2A3を介して、第1の特化処理部2A1に送信される。第1の特化処理部2A1は、第2の特化処理部2B1からの処理結果を受領すると、第1のクライアント計算機6Aに第1のコマンドの処理結果を送信する。 As shown by the thick solid line P1 in FIG. 1, the first specialization processing unit 2A1 is connected to the second interface unit 2B2 of the second OS 2B via the first use source interface 2A3 and the inter-OS communication path 5. To access. The first specialization processing unit 2A1 uses the second specialization processing unit 2B1 via the second interface unit 2B2. In response to a request from the first specialization processing unit 2A1, the second specialization processing unit 2B1 inputs / outputs data to / from the second I / O device 4B and executes the requested processing. The processing result of the second specialization processing unit 2B1 is transmitted to the first specialization processing unit 2A1 via the second interface unit 2B2, the inter-OS communication path 5, and the first user interface unit 2A3. . When receiving the processing result from the second specialization processing unit 2B1, the first specialization processing unit 2A1 transmits the processing result of the first command to the first client computer 6A.
 図1中の太い点線P2に示すように、第2のOS2Bの第2の特化処理部2B1が第2のクライアント計算機6Bから第2のコマンドを受信した場合を説明する。第2の特化処理部2B1が第2のコマンドを処理するためには、第1の特化処理部2A1の使用が必要であるとする。 A case will be described in which the second specialization processing unit 2B1 of the second OS 2B receives the second command from the second client computer 6B as indicated by the thick dotted line P2 in FIG. In order for the second specialization processing unit 2B1 to process the second command, it is necessary to use the first specialization processing unit 2A1.
 第2の特化処理部2B1は、第2の利用元インターフェース部2B3およびOS間通信路5を介して、第1のインターフェース部2A2にアクセスする。第2の特化処理部2B1は、第1のインターフェース部2A2を介して第1の特化処理部2A1を使用する。第1の特化処理部2A1は、第2の特化処理部2B1からの要求に応じて、第1のI/Oデバイス4Aにデータを入出力し、要求された処理を実行する。第1の特化処理部2A1の処理結果は、第1のインターフェース部2A2、OS間通信路5、第2の利用元インターフェース部2B3を介して、第2の特化処理部2B1に送られる。第2の特化処理部2B1は、第1の特化処理部2A1からの処理結果を受領すると、第2のクライアント計算機に第2のコマンドの処理結果を送信する。 The second specialization processing unit 2B1 accesses the first interface unit 2A2 via the second usage source interface unit 2B3 and the inter-OS communication path 5. The second specialization processing unit 2B1 uses the first specialization processing unit 2A1 via the first interface unit 2A2. The first specialization processing unit 2A1 inputs / outputs data to / from the first I / O device 4A in response to a request from the second specialization processing unit 2B1, and executes the requested processing. The processing result of the first specialization processing unit 2A1 is sent to the second specialization processing unit 2B1 via the first interface unit 2A2, the inter-OS communication path 5, and the second usage source interface unit 2B3. When receiving the processing result from the first specialization processing unit 2A1, the second specialization processing unit 2B1 transmits the processing result of the second command to the second client computer.
 このように、本実施形態では、各OSは、当該OSが有する特化処理部に応じたI/Oデバイスを備えており、当該OSの有する特化処理部の使用を他のOSに対して公開している。従って、各OSは、当該OSに割り当てられていないI/Oデバイスであっても、そのI/Oデバイスに最も適した特化処理部を介して使用できる。 As described above, in this embodiment, each OS includes an I / O device corresponding to a specialization processing unit included in the OS, and the use of the specialization processing unit included in the OS is used for other OSs. It is open to the public. Accordingly, each OS can use an I / O device that is not assigned to the OS via a specialized processing unit most suitable for the I / O device.
 これにより、本実施形態によれば、各OSに、各I/Oデバイスを使用するための必要最低限の機能をそれぞれ実装する手間を省くことができ、計算機の開発工数を低減してコストを低下させることができる。 As a result, according to the present embodiment, it is possible to save the trouble of implementing the minimum necessary functions for using each I / O device in each OS, and to reduce the development man-hours of the computer. Can be reduced.
 さらに、本実施形態によれば、各OSは、I/Oデバイスに適した特化処理部を使用することができるため、所望のI/Oデバイスを用いた処理を高速に実行することができ、計算機の性能を向上できる。 Furthermore, according to the present embodiment, each OS can use a specialized processing unit suitable for an I / O device, so that processing using a desired I / O device can be performed at high speed. Can improve the performance of the computer.
 なお、図1では、各OSの特化処理部が、他のOSの特化処理部を使用する場合に着目して説明したが、これに限らず、特化処理部以外の他の処理(プログラム)も、インターフェース部を介して他のOS内の特化処理部を使用することができる。以下、本実施形態の実施例を説明する。 In FIG. 1, the specialization processing unit of each OS has been described focusing on the case where a specialization processing unit of another OS is used. However, the present invention is not limited to this, and other processes other than the specialization processing unit ( Program) can also use a specialized processing unit in another OS via the interface unit. Hereinafter, examples of the present embodiment will be described.
 図2~図12を参照して第1実施例を説明する。本実施例では、第1のOSをホストOSとして構成し、第2のOSを仮想OSとして構成し、ホストOSの有するブロック特化処理を仮想OSが利用する場合を中心に説明する。図2は、第1実施例における計算機システムの構成の概要を示している。 The first embodiment will be described with reference to FIGS. In the present embodiment, description will be made mainly on the case where the first OS is configured as a host OS, the second OS is configured as a virtual OS, and the block OS has block specialization processing that is used by the virtual OS. FIG. 2 shows an outline of the configuration of the computer system in the first embodiment.
 物理計算機101は、例えば、ホストOS102、「仮想化機能」の一例である仮想化ソフトウェア118、仮想化ソフトウェア118の上で動作する仮想OS109、「入出力デバイス」の一例であるディスク124およびNetwork Interface Card(以下、NIC)125、管理計算機134と通信するための管理インターフェース132を備える。 The physical computer 101 includes, for example, a host OS 102, virtualization software 118 that is an example of “virtualization function”, a virtual OS 109 that operates on the virtualization software 118, a disk 124 that is an example of “input / output device”, and a network interface. A management interface 132 for communicating with a card (hereinafter, NIC) 125 and a management computer 134 is provided.
 「第1のOS」の一例としてのホストOS102は、例えば、外部SCSIポート103、ブロック特化処理部104、ディスクドライバ105、インターフェース制御部106、内部SCSIポート107、OS間通信ドライバ108、OS間通信路119、デバイス割当テーブル120、割当制御プログラム121、特化処理インターフェース割当テーブル122、通信路割当テーブル123を備える。本実施例において、第1のOSは、他のOS仮想化機能を提供するホストオペレーティングシステムとして構成されている The host OS 102 as an example of “first OS” includes, for example, an external SCSI port 103, a block specialization processing unit 104, a disk driver 105, an interface control unit 106, an internal SCSI port 107, an inter-OS communication driver 108, and between OSs. A communication path 119, a device allocation table 120, an allocation control program 121, a specialized processing interface allocation table 122, and a communication path allocation table 123 are provided. In this embodiment, the first OS is configured as a host operating system that provides other OS virtualization functions.
 外部SCSIポート103は、Storage Area Network(以下、SAN)128を介して、外部のクライアント計算機(ホスト計算機)126とSCSI通信をするための通信ポートである。 The external SCSI port 103 is a communication port for performing SCSI communication with an external client computer (host computer) 126 via a storage area network (hereinafter, SAN) 128.
 SAN128は、ホスト計算機126と外部SCSIポート103を直接接続する形態のほか、FC(Fibre Channel)やEthernet(登録商標)を利用したネットワーク形態でもよい。 The SAN 128 may have a network form using FC (Fibre Channel) or Ethernet (registered trademark) in addition to a form in which the host computer 126 and the external SCSI port 103 are directly connected.
 OS間通信路119は、ホストOS102が仮想OS109と通信するための通信路である。OS間通信路119の例としては、共有メモリやPCI Expresss(登録商標)が好適であるが、他の通信方式でもよい。OS間通信ドライバ108は、OS間通信路119を制御するための通信ドライバである。内部SCSIポート107は、OS間通信ドライバ108を介して仮想OS109または他の仮想OS(図示せず)とSCSI通信をするための通信ポートである。なお、図中では、一つのホストOS102と一つの仮想OS109のみを示しているが、計算機101には複数の仮想OSを設けることができる。 The inter-OS communication path 119 is a communication path for the host OS 102 to communicate with the virtual OS 109. As an example of the inter-OS communication path 119, a shared memory or PCI Express (registered trademark) is suitable, but other communication methods may be used. The inter-OS communication driver 108 is a communication driver for controlling the inter-OS communication path 119. The internal SCSI port 107 is a communication port for performing SCSI communication with the virtual OS 109 or another virtual OS (not shown) via the inter-OS communication driver 108. Although only one host OS 102 and one virtual OS 109 are shown in the figure, the computer 101 can be provided with a plurality of virtual OSs.
 ホストOS102には、「第1の入出力デバイス」の一例としてのディスク(ディスクコントローラ)124を割り当てることができる。ホストOS102は、ディスクドライバ105を介してディスク124にブロックアクセスすることができる。 A disk (disk controller) 124 as an example of “first input / output device” can be allocated to the host OS 102. The host OS 102 can perform block access to the disk 124 via the disk driver 105.
 ディスク124は、図2に示すように計算機101に内蔵されていてもよい。これに限らず、ディスク124を計算機101の外部に設け、ディスク124と計算機101をSANまたはLANを介して接続してもよい。ディスク124は、ハードディスクドライブでもよいし、フラッシュメモリデバイスであってもよい。 The disk 124 may be built in the computer 101 as shown in FIG. However, the present invention is not limited thereto, and the disk 124 may be provided outside the computer 101, and the disk 124 and the computer 101 may be connected via a SAN or a LAN. The disk 124 may be a hard disk drive or a flash memory device.
 「第1の所定の処理部」の一例としてのブロック特化処理部(ブロック特化処理プログラム)104は、外部SCSIポート103および内部SCSIポート107を介した、ブロックアクセスを処理するためのプログラムである。 The block specialization processing unit (block specialization processing program) 104 as an example of the “first predetermined processing unit” is a program for processing block access via the external SCSI port 103 and the internal SCSI port 107. is there.
 ブロック特化処理プログラム104で実行する処理の一例として、ストレージ仮想化機能がある。ストレージ仮想化機能は、ブロックアクセス先の番地を仮想化することで、ホスト計算機126のCPU127で動作するアプリケーションに影響を与えることなく、ディスク124上のブロックの配置を変更することができる機能である。 An example of processing executed by the block specialization processing program 104 is a storage virtualization function. The storage virtualization function is a function that can change the arrangement of the blocks on the disk 124 without affecting the application operating on the CPU 127 of the host computer 126 by virtualizing the block access destination address. .
 ブロック特化処理プログラム104で実行する処理の他の一例として、RAIDを構成するために必要なパリティ演算を高速化する機能がある。ブロック特化処理プログラム104で実行する処理のさらに別の一例として、ディスクドライバ105に接続された他の機器を遠隔制御する機能がある。例えば、後述する他の実施例で説明するように、ブロック特化処理プログラム104は、テープライブラリを制御することもできる。 As another example of the processing executed by the block specialization processing program 104, there is a function of speeding up the parity calculation necessary for configuring the RAID. As another example of the processing executed by the block specialization processing program 104, there is a function of remotely controlling another device connected to the disk driver 105. For example, as described in another embodiment described later, the block specialization processing program 104 can also control the tape library.
 インターフェース制御部(インターフェース制御プログラム)106は、ブロック特化処理プログラム104を利用するためのインターフェースを作成したり、削除したり、変更したりするものである。本実施例において、ブロック特化処理プログラム104を利用するためのインターフェースには、外部SCSIポート103と内部SCSIポート107の2つが該当する。 The interface control unit (interface control program) 106 creates, deletes, or changes an interface for using the block specialization processing program 104. In this embodiment, two interfaces, the external SCSI port 103 and the internal SCSI port 107, correspond to the interfaces for using the block specialization processing program 104.
 ホストOS102は、管理テーブル120、122、123と、割当制御プログラム121とを備えている。デバイス割当テーブル120は、計算機101が有するデバイス124、125の割り当てを管理するテーブルである。特化処理インターフェース割当テーブル122は、ブロック特化処理プログラム104を利用することのできる仮想OS109を管理するテーブルである。通信路割当テーブル123は、OS間通信路119の通信が許可されているか否かを判定するために使用するテーブルである。割当制御プログラム121は、デバイス割当テーブル120と特化処理インターフェース割当テーブル122および通信路割当テーブル123を編集するための機能を提供するプログラムである。なお、各テーブルの構成例は後述する。 The host OS 102 includes management tables 120, 122, 123 and an allocation control program 121. The device allocation table 120 is a table for managing allocation of devices 124 and 125 included in the computer 101. The special processing interface allocation table 122 is a table for managing the virtual OS 109 that can use the block special processing program 104. The communication path allocation table 123 is a table used for determining whether or not communication of the inter-OS communication path 119 is permitted. The allocation control program 121 is a program that provides a function for editing the device allocation table 120, the specialized processing interface allocation table 122, and the communication path allocation table 123. A configuration example of each table will be described later.
 計算機101の管理インターフェース132は、管理LAN(Local Area Network)133を介して管理計算機134に接続されている。計算機101の管理者は、管理計算機134を操作することで、ホストOS102のインターフェース制御プログラム106、仮想OS109のインターフェース制御プログラム113、および割当制御プログラム121に命令を発行することができる。 The management interface 132 of the computer 101 is connected to the management computer 134 via a management LAN (Local Area Network) 133. The administrator of the computer 101 can issue commands to the interface control program 106 of the host OS 102, the interface control program 113 of the virtual OS 109, and the allocation control program 121 by operating the management computer 134.
 仮想OS109の構成例を説明する。仮想OS109は、例えば、ファイル共有サーバ110、ネットワーク特化処理部(ネットワーク特化処理プログラム)112、インターフェース制御部(インターフェース制御プログラム)113、SCSIデバイスファイル114、キャッシュメモリ115、NICドライバ116、OS間通信ドライバ117を備える。図中では、ファイル共有サーバをFSと、ネットワークをNWと、キャッシュメモリをCMと、略記する。 A configuration example of the virtual OS 109 will be described. The virtual OS 109 includes, for example, a file sharing server 110, a network special processing unit (network special processing program) 112, an interface control unit (interface control program) 113, a SCSI device file 114, a cache memory 115, a NIC driver 116, and an OS. A communication driver 117 is provided. In the figure, the file sharing server is abbreviated as FS, the network as NW, and the cache memory as CM.
 ファイル共有サーバ110は、LAN131を介してクライアント計算機129に接続されており、クライアント計算機129にファイル共有サービスを提供する。ファイル共有サーバ110は、コマンドテーブル111を有する。コマンドテーブル111は、クライアント計算機129のCPU130で動作するファイル共有クライアントから発行されるコマンドに従って実行すべき処理を決定するために使用される。 The file sharing server 110 is connected to the client computer 129 via the LAN 131, and provides a file sharing service to the client computer 129. The file sharing server 110 has a command table 111. The command table 111 is used to determine processing to be executed in accordance with a command issued from a file sharing client operating on the CPU 130 of the client computer 129.
 ファイル共有サーバ110は、クライアント計算機129から発行された読み書きコマンドで指定されたデータを、図10ないし図12に示す手順に従ってディスク124に読み書きすることができる。 The file sharing server 110 can read / write data specified by the read / write command issued from the client computer 129 to / from the disk 124 according to the procedure shown in FIGS.
 「第2の所定の処理部」の一例であるネットワーク特化処理プログラム112は、ファイル共有サーバ110の処理結果を受けて、さらにネットワーク処理をするためのプログラムである。ネットワーク特化処理プログラム112で実行する処理の一例として、NIC125を用いたリモートコピー機能がある。ネットワーク特化処理プログラム112は、例えば、ディスク124から読み出したデータを、計算機101の設置場所とは異なる場所に設置された他の計算機(図示せず)に転送して記憶させることができる。 The network specialization processing program 112 as an example of the “second predetermined processing unit” is a program for receiving a processing result of the file sharing server 110 and performing further network processing. One example of processing executed by the network specialization processing program 112 is a remote copy function using the NIC 125. For example, the network specialization processing program 112 can transfer and read data read from the disk 124 to another computer (not shown) installed at a location different from the installation location of the computer 101.
 インターフェース制御プログラム113は、ネットワーク特化処理プログラム112を使用するためのインターフェースを作成したり、削除したり、変更したりするためのプログラムである。 The interface control program 113 is a program for creating, deleting, or changing an interface for using the network specialization processing program 112.
 SCSIデバイスファイル114は、OS間通信ドライバ117を介してホストOS102または図示せぬ他の仮想OSとSCSI通信をするためのものである。また、ディスク124のデータを一時的に記憶するためのキャッシュ領域として、キャッシュメモリ115を有していてもよい。 The SCSI device file 114 is for performing SCSI communication with the host OS 102 or another virtual OS (not shown) via the inter-OS communication driver 117. Further, a cache memory 115 may be provided as a cache area for temporarily storing data on the disk 124.
 NICドライバ116は、NIC125を制御するためのプログラムである。仮想OS109には、ネットワーク特化処理プログラム112の特性に応じて、「第2の入出力デバイス」の一例としてのNIC125が割り当てられている。仮想OS109は、NICドライバ116を介してNIC125にアクセスすることができる。OS間通信ドライバ117は、OS間通信路119を制御するものである。 The NIC driver 116 is a program for controlling the NIC 125. A NIC 125 as an example of a “second input / output device” is assigned to the virtual OS 109 according to the characteristics of the network specialization processing program 112. The virtual OS 109 can access the NIC 125 via the NIC driver 116. The inter-OS communication driver 117 controls the inter-OS communication path 119.
 なお、図2では、クライアント計算機129からのコマンドを、ファイル共有サーバ110がネットワーク特化処理プログラム112よりも先に受信する場合を示した。これに代えて、ネットワーク特化処理プログラム112がクライアント計算機129からのコマンドをファイル共有サーバ110よりも先に受信する構成でもよい。その構成の場合、ネットワーク特化処理プログラム112で実行する処理の一例として、NIC125の割り込み処理を高速化する機能がある。 FIG. 2 shows a case where the file sharing server 110 receives a command from the client computer 129 before the network specialization processing program 112. Alternatively, the network specialization processing program 112 may receive a command from the client computer 129 before the file sharing server 110. In the case of the configuration, as an example of processing executed by the network specialization processing program 112, there is a function of speeding up the interrupt processing of the NIC 125.
 なお、本実施例では、図2中に太い点線P10で示すように、仮想OS109がOS間通信路119等を介してホストOS102の有するブロック特化処理プログラム104にアクセスし、ブロック特化処理プログラム104を使用する場合を中心に説明する。従って、本実施例において、仮想OS109はネットワーク特化処理プログラム112を有していなくてもよい。但し、図1で述べたように、本発明の範囲は、一方のOS102の有する特化処理部104を他方のOS109が利用する構成に限らず、他方のOS109の有する特化処理部112を一方のOS102が利用する構成にも及ぶ。 In this embodiment, as indicated by a thick dotted line P10 in FIG. 2, the virtual OS 109 accesses the block special processing program 104 of the host OS 102 via the inter-OS communication path 119 and the like, and the block special processing program The case where 104 is used will be mainly described. Therefore, in this embodiment, the virtual OS 109 may not have the network specialization processing program 112. However, as described in FIG. 1, the scope of the present invention is not limited to the configuration in which the other OS 109 uses the specialization processing unit 104 included in one OS 102, but the specialization processing unit 112 included in the other OS 109 is included in one side. This also extends to the configuration used by the OS 102.
 図3は、計算機101の構成を示す説明図である。計算機101は、少なくともCPU201と、メモリ202と、ディスク124と、NIC125を有している。 FIG. 3 is an explanatory diagram showing the configuration of the computer 101. The computer 101 has at least a CPU 201, a memory 202, a disk 124, and a NIC 125.
 メモリ202には、ホストOS102と仮想OS109と仮想化ソフトウェア118が配置されている。ホストOS102と仮想OS109と仮想化ソフトウェア118は、CPU201上で動作する。ホストOS102の有するコンポーネント103~108、119~123と、仮想OS109が有するコンポーネント110、112~117の詳細は前述のとおりである。 In the memory 202, a host OS 102, a virtual OS 109, and virtualization software 118 are arranged. The host OS 102, the virtual OS 109, and the virtualization software 118 operate on the CPU 201. Details of the components 103 to 108 and 119 to 123 included in the host OS 102 and the components 110 and 112 to 117 included in the virtual OS 109 are as described above.
 図4は、第1実施例の変形例に該当する計算機101Aを含む計算機システムの構成図である。図4に示す計算機101Aでは、第1のOSを、ホストOSに代えて仮想OS301として構成している。図4に示す変形例では、複数の仮想OS301、109の間で、特化処理プログラムを利用するようになっている。 FIG. 4 is a configuration diagram of a computer system including a computer 101A corresponding to a modification of the first embodiment. In the computer 101A shown in FIG. 4, the first OS is configured as a virtual OS 301 instead of the host OS. In the modification shown in FIG. 4, a specialized processing program is used between a plurality of virtual OSs 301 and 109.
 仮想化ソフトウェア118は、図2に示す仮想化ソフトウェアとは異なり、OS間通信路109と、デバイス割当テーブル120と、割当制御プログラム121と、特化処理インターフェース割当テーブル122と、通信路割当テーブル123を有する。これら各コンポーネント120~123の詳細は前述のとおりである。 Unlike the virtualization software shown in FIG. 2, the virtualization software 118 is a communication path 109 between OSs, a device allocation table 120, an allocation control program 121, a specialized processing interface allocation table 122, and a communication path allocation table 123. Have The details of each of these components 120 to 123 are as described above.
 図5は、図4の構成における計算機101Aの構成を示す説明図である。計算機101Aは、少なくともCPU201とメモリ202とディスク124とNIC125を有している。 FIG. 5 is an explanatory diagram showing the configuration of the computer 101A in the configuration of FIG. The computer 101A includes at least a CPU 201, a memory 202, a disk 124, and a NIC 125.
 メモリ202には、第1のOSの一例としての第1の仮想OS301と、第2のOSの一例としての第2の仮想OS109と、仮想化機能の一例としての仮想化ソフトウェア118とが配置されている。第1の仮想OS301と第2の仮想OS109と仮想化ソフトウェア118は、CPU201上で動作する。仮想OS301と仮想OS109と仮想化ソフトウェア118が有するコンポーネントの詳細は前述のとおりである。 In the memory 202, a first virtual OS 301 as an example of the first OS, a second virtual OS 109 as an example of the second OS, and virtualization software 118 as an example of a virtualization function are arranged. ing. The first virtual OS 301, the second virtual OS 109, and the virtualization software 118 operate on the CPU 201. Details of the components included in the virtual OS 301, the virtual OS 109, and the virtualization software 118 are as described above.
 ここで、図2に示す構成と図4に示す構成を比較する。図2の構成の場合、ホストOS102にディスク124が直接的に割り当てられているため、ブロック特化処理104は比較的高速にディスク124にデータを入出力できる。これに対し、図4の構成の場合、第1の仮想OS301は、仮想化ソフトウェア118を介してディスク124にアクセスするため、図2の構成に比べてデータ入出力速度は低下する。しかし、図4の構成の場合、仮想OS301、109にデバイスを割り当てるため、汎用性が高く、種々の用途に用いることができる。 Here, the configuration shown in FIG. 2 is compared with the configuration shown in FIG. In the configuration of FIG. 2, since the disk 124 is directly assigned to the host OS 102, the block specialization process 104 can input / output data to / from the disk 124 at a relatively high speed. On the other hand, in the configuration of FIG. 4, the first virtual OS 301 accesses the disk 124 via the virtualization software 118, so the data input / output speed is lower than that of the configuration of FIG. 2. However, in the configuration of FIG. 4, devices are assigned to the virtual OSs 301 and 109, and thus versatility is high and can be used for various purposes.
 図6を用いて、コマンドテーブル111およびデバイス割当テーブル120の構成例を説明する。以下、特化処理プログラムを特化処理と略記する場合がある。図6(a)に示すコマンドテーブル111は、クライアント計算機129から受領したコマンドの種別を判定するために使用される。コマンドテーブル111は、例えば、少なくともファイル共有プロトコルのコマンドを示すカラム1111と、当該コマンドがブロック処理I/O処理を要するか否かを示すカラム1112を有する。コマンドテーブル111は、例えば当該コマンドに対する処理の詳細などを記憶するためのカラムを備えてもよい。 A configuration example of the command table 111 and the device allocation table 120 will be described with reference to FIG. Hereinafter, the special processing program may be abbreviated as special processing. The command table 111 shown in FIG. 6A is used to determine the type of command received from the client computer 129. The command table 111 includes, for example, at least a column 1111 indicating a file sharing protocol command and a column 1112 indicating whether or not the command requires block processing I / O processing. The command table 111 may include a column for storing details of processing for the command, for example.
 例えば、仮想OS109がクライアント計算機129から受領したコマンドが「セッション確立」であった場合を検討する。この場合、ファイル共有サーバ110のみでコマンドを処理することができるため、ブロック特化処理プログラム104によるブロック処理を行う必要はない。従って、カラム1112には「不要」と記録される。 For example, consider a case where the command received by the virtual OS 109 from the client computer 129 is “session establishment”. In this case, since the command can be processed only by the file sharing server 110, it is not necessary to perform block processing by the block specialization processing program 104. Therefore, “unnecessary” is recorded in the column 1112.
 これに対し、仮想OS109がクライアント計算機129から受領したコマンドが「データ読み取り」であった場合を検討する。この場合、ファイル共有サーバ110のみでコマンドを処理することはできず、ファイル共有サーバ110はブロック特化処理プログラム104を使用して、ディスク124に格納されたデータを読み取る必要がある。従って、コマンド「データ読取り」に対応するカラム1112には「必要」と記録される。 In contrast, a case where the command received by the virtual OS 109 from the client computer 129 is “data read” will be considered. In this case, the command cannot be processed only by the file sharing server 110, and the file sharing server 110 needs to read the data stored in the disk 124 using the block specialization processing program 104. Therefore, “necessary” is recorded in the column 1112 corresponding to the command “read data”.
 図6(b)に示すデバイス割当テーブル120は、OSへのデバイス割当てを管理するためのテーブルである。デバイス割当テーブル120は、例えば、少なくともデバイスを割り当てるOS名を示すカラム1201と、割り当てるデバイス名を示すカラム1202と、各OSが有する特化処理を示すカラム1203と、特化処理を使用するためのインターフェース(以下、特化処理インターフェース)を示すカラム1204を有する。 The device allocation table 120 shown in FIG. 6B is a table for managing device allocation to the OS. The device allocation table 120 includes, for example, a column 1201 indicating at least an OS name to which a device is allocated, a column 1202 indicating a device name to be allocated, a column 1203 indicating a specialization process included in each OS, and a specialization process. It has a column 1204 indicating an interface (hereinafter referred to as a specialized processing interface).
 各OSには、複数のデバイスを割り当ててもよい。各OSは、割り当てられた複数のデバイスに応じた複数の特化処理プログラムを有してもよい。各OSには、同一種類のデバイスを複数割り当ててもよいし、異なる種類のデバイスを複数割り当ててもよい。 A plurality of devices may be assigned to each OS. Each OS may have a plurality of specialized processing programs corresponding to a plurality of assigned devices. Each OS may be assigned a plurality of devices of the same type, or may be assigned a plurality of devices of different types.
 特化処理インターフェース1204としては、例えば、デバイスファイルのようなファイルインターフェースが好適であるが、これに限らず、メモリのアドレスを直接指定するインターフェースでもよい。なお、特化処理プログラムを有するOSにサーバを実装し、他のOSにクライアントを実装することで、RPC(Remote Procedure Call)によるインターフェースを提供してもよい。 The specialized processing interface 1204 is preferably a file interface such as a device file, but is not limited to this, and may be an interface that directly specifies a memory address. An interface by RPC (Remote Procedure Call) may be provided by mounting a server on an OS having a specialized processing program and mounting a client on another OS.
 図6(b)に示すデバイス割当テーブル120には、後述の実施例で使用する情報も記載されている。図6(b)の例を簡単に説明する。テーブル120の第1行目には、ホストOS102には入出力デバイスとしてのディスク124が割り当てられており(カラム1201、1202)、ディスク124を使用する特化処理の名称は「ブロック処理」であり(同1203)、ブロック処理を使用するためのインターフェースは内部SCSIポートであること(同1204)が記載されている。 In the device allocation table 120 shown in FIG. 6B, information used in an embodiment described later is also described. The example of FIG. 6B will be briefly described. In the first row of the table 120, a disk 124 as an input / output device is allocated to the host OS 102 (columns 1201 and 1202), and the name of the specialized process using the disk 124 is “block process”. (Id 1203), the interface for using the block processing is an internal SCSI port (No. 1204).
 テーブル120の第2行目には、仮想OS109には入出力デバイスとしてのNIC125が割り当てられており(カラム1201、1202)、NIC125を使用する特化処理の名称は「ネットワーク処理」であり(同1203)、ネットワーク処理を使用するためのインターフェースは仮想PCIデバイスインターフェースであること(同1204)が記載されている。 In the second row of the table 120, the NIC 125 as an input / output device is assigned to the virtual OS 109 (columns 1201 and 1202), and the name of the specialized process that uses the NIC 125 is “network process” (same as above). 1203), an interface for using network processing is a virtual PCI device interface (1204).
 テーブル120の第3行目および第4行目は、後述する実施例に対応する。テーブル120の第3行目には、ホストOS102には入出力デバイスとしてテープドライブ411(図13参照)が割り当てられており(カラム1201、1202)、テープドライブ411を使用する特化処理の名称は「ブロック処理」であり(同1203)、ブロック処理を使用するためのインターフェースは内部SCSIポートであること(同1204)が記載されている。 The third and fourth lines of the table 120 correspond to examples described later. In the third row of the table 120, a tape drive 411 (see FIG. 13) is assigned as an input / output device to the host OS 102 (columns 1201 and 1202), and the name of the specialized process using the tape drive 411 is It is “block processing” (1203), and the interface for using the block processing is an internal SCSI port (1204).
 テーブル120の第4行目には、ホストOS102には他の入出力デバイスとしてテープコントローラ413(図13参照)が割り当てられており(カラム1201、1202)、テープコントローラ413を使用する特化処理の名称は「リモート制御機能」であり(同1203)、リモート制御機能を使用するためのインターフェースは仮想SCSIイニシエータであること(同1204)が記載されている。 In the fourth row of the table 120, a tape controller 413 (see FIG. 13) is assigned as another input / output device to the host OS 102 (columns 1201 and 1202), and the special processing using the tape controller 413 is performed. The name is “remote control function” (1203), and the interface for using the remote control function is a virtual SCSI initiator (1204).
 図7を用いて、特化処理インターフェース割当テーブル122および通信路割当テーブル123の構成例を説明する。図7(a)に示す特化処理インターフェース割当テーブル122は、特化処理プログラムの使用が許可されたOSおよび提供先のインターフェース(利用元インターフェース)を管理するためのテーブルである。 A configuration example of the specialization process interface allocation table 122 and the communication path allocation table 123 will be described with reference to FIG. The specialized process interface allocation table 122 shown in FIG. 7A is a table for managing an OS that is permitted to use a specialized process program and a provider interface (use source interface).
 特化処理インターフェース割当テーブル122は、例えば少なくとも4つのカラム1221~1224を有する。第1のカラム1221は、特化処理を有するOS名を示す。第2のカラム1222は、当該特化処理の名称を示す。第3のカラム1223は、当該特化処理の使用を提供するOS名を示す。第4のカラム1224は、特化処理の提供先であるOSにおいて、当該特化処理を使用するためのインターフェースを示す。カラム1224に示されるインターフェースは、提供先インターフェース、または利用元インターフェースと呼ぶことができる。 The specialized process interface allocation table 122 has at least four columns 1221 to 1224, for example. The first column 1221 indicates an OS name having specialization processing. The second column 1222 indicates the name of the specialization process. The third column 1223 shows the OS name that provides the use of the specialization process. The fourth column 1224 shows an interface for using the specialization process in the OS to which the specialization process is provided. The interface shown in the column 1224 can be referred to as a provider interface or a user interface.
 提供先インターフェース(利用元インターフェース)としては、例えば、デバイスファイルのようなファイルインターフェースが好適であるが、これに限らず、メモリのアドレスを直接指定するインターフェースでもよい。特化処理を有するOSがRPCサーバを有する場合、提供先インターフェースをRPCクライアントとしてもよい。 As the provider interface (user interface), for example, a file interface such as a device file is suitable. However, the present invention is not limited to this, and an interface that directly specifies a memory address may be used. When the OS having specialized processing has an RPC server, the provision destination interface may be an RPC client.
 図7(b)に示す通信路割当テーブル123は、複数のOS間に割り当てられた通信路を管理する。通信路割当テーブル123は、例えば、少なくとも、通信路の一端となるOSを示すカラム1231と、通信路の他端となるOSを示すカラム1232を有する。さらに、テーブル123は、OS間で使用できる通信帯域を示すカラム1233を備えてもよい。また、通信路として共有メモリを使用する場合、通信路割当テーブル123はさらにメモリのアドレスを示すカラム1234を備え、当該メモリにアクセスできるOSをカラム1231とカラム1232に記載する。 The communication path allocation table 123 shown in FIG. 7B manages communication paths allocated among a plurality of OSs. The communication path allocation table 123 includes, for example, at least a column 1231 that indicates an OS that is one end of the communication path, and a column 1232 that indicates an OS that is the other end of the communication path. Further, the table 123 may include a column 1233 indicating a communication band that can be used between the OSs. When a shared memory is used as a communication path, the communication path allocation table 123 further includes a column 1234 indicating a memory address, and an OS that can access the memory is described in columns 1231 and 1232.
 図8~図12を用いて、計算機101の動作を説明する。図8は、計算機101の有するデバイスを、計算機101に設けられているホストOS102と仮想OS109に割り当てる手順を示すフローチャートである。 The operation of the computer 101 will be described with reference to FIGS. FIG. 8 is a flowchart showing a procedure for allocating devices included in the computer 101 to the host OS 102 and the virtual OS 109 provided in the computer 101.
 まず、管理者は管理計算機134を操作して、ホストOS102と仮想OS109に、特化処理をそれぞれ設定する。この設定内容に従って、割当制御プログラム121は、デバイス割当テーブル120のカラム1203、1204を更新する(S11)。 First, the administrator operates the management computer 134 to set special processing for the host OS 102 and the virtual OS 109, respectively. According to this setting content, the allocation control program 121 updates the columns 1203 and 1204 of the device allocation table 120 (S11).
 本実施例では、ホストOS102はブロック特化処理を有しており、仮想OS109はネットワーク特化処理を有している。ステップS11は管理者の操作を契機として実行するのではなく、ホストOS102と仮想OS109を計算機101にインストールしたときに実行してもよい。 In this embodiment, the host OS 102 has a block specialization process, and the virtual OS 109 has a network specialization process. Step S11 may be executed when the host OS 102 and the virtual OS 109 are installed in the computer 101, instead of being executed in response to an operation by the administrator.
 管理者はステップS11で各OSに設定した特化処理に合わせて、各特化処理に適したデバイスを各OSに割り当てる(S12、S13)。本実施例では、ホストOS102にディスク124を割り当て(S12)、仮想OS109にNIC125を割り当てる(S13)。割当制御プログラム121は、管理者によるデバイス割当てに従って、デバイス割当テーブル120のカラム1202を更新する(S12、S13)。 The administrator allocates a device suitable for each specialized process to each OS in accordance with the specialized process set for each OS in step S11 (S12, S13). In this embodiment, the disk 124 is allocated to the host OS 102 (S12), and the NIC 125 is allocated to the virtual OS 109 (S13). The assignment control program 121 updates the column 1202 of the device assignment table 120 according to the device assignment by the administrator (S12, S13).
 ホストOS102は、ブロック特化処理104を使用するためのインターフェースである内部SCSIポート107を作成する(S14)。仮想OS109は、ネットワーク特化処理プログラム112を使用するためのインターフェースであるPCIデバイスインターフェースを作成して(S15)、本処理を終了する。なお、図中では、PCIデバイスインターフェースの図示を省略している。 The host OS 102 creates an internal SCSI port 107 that is an interface for using the block specialization process 104 (S14). The virtual OS 109 creates a PCI device interface, which is an interface for using the network specialization processing program 112 (S15), and ends this processing. Note that the PCI device interface is not shown in the figure.
 図9は、ホストOS102のブロック特化処理104を仮想OS109が利用できるようにインターフェースを提供する手順を示すフローチャートである。 FIG. 9 is a flowchart showing a procedure for providing an interface so that the virtual OS 109 can use the block specialization processing 104 of the host OS 102.
 管理者は管理計算機134を操作して、ホストOS102のインターフェース制御プログラム106に対し、仮想OS109にブロック特化処理104の利用を許可するよう指示する(S21)。 The administrator operates the management computer 134 and instructs the interface control program 106 of the host OS 102 to permit the virtual OS 109 to use the block specialization process 104 (S21).
 インターフェース制御プログラム106は、ホストOS102と仮想OS109のOS間通信が許可されているかを、通信路割当テーブル123を用いて検査する(S22)。OS間の通信が許可されていない場合(S22:No)、インターフェース制御プログラム106は、割当制御プログラム121に、ホストOS102と仮想OS109との間の通信路を設定するよう指示する(S23)。その指示を受けた割当制御プログラム121は、OS間通信路を設定し、通信路割当テーブル123を更新する(S24)。S23においては、通信路の代わりに共有メモリを設定するよう指示してもよい。その際、インターフェース制御プログラム106は、共有メモリとして使用できるアドレスを指定し、通信路割当テーブル123を更新する。 The interface control program 106 checks whether communication between the OSs of the host OS 102 and the virtual OS 109 is permitted using the communication path allocation table 123 (S22). When communication between OSs is not permitted (S22: No), the interface control program 106 instructs the allocation control program 121 to set a communication path between the host OS 102 and the virtual OS 109 (S23). Upon receiving the instruction, the assignment control program 121 sets the communication path between the OSs and updates the communication path assignment table 123 (S24). In S23, it may be instructed to set a shared memory instead of the communication path. At that time, the interface control program 106 designates an address that can be used as a shared memory, and updates the communication path allocation table 123.
 仮想OS109のインターフェース制御プログラム113は、内部SCSIポート107にアクセスするためのSCSIデバイスファイル114を作成する(S25)。ホストOS102と仮想OS109のOS間通信が既に許可されていると判定した場合(S22:Yes)、ステップS23およびS24はスキップしてステップS25に移る。 The interface control program 113 of the virtual OS 109 creates a SCSI device file 114 for accessing the internal SCSI port 107 (S25). If it is determined that inter-OS communication between the host OS 102 and the virtual OS 109 has already been permitted (S22: Yes), steps S23 and S24 are skipped and the process proceeds to step S25.
 割当制御プログラム121は、特化処理インターフェース割当テーブル122を更新して(S26)、本処理を終了する。 The allocation control program 121 updates the specialized process interface allocation table 122 (S26), and ends this process.
 図10ないし図12は、クライアント計算機129からのコマンドを受けたファイル共有サーバ110が、ディスク124に格納されたデータにアクセスして、クライアント計算機129にコマンド処理結果を返信する手順を示したフローチャートである。 10 to 12 are flowcharts showing a procedure in which the file sharing server 110 that has received a command from the client computer 129 accesses the data stored in the disk 124 and returns a command processing result to the client computer 129. is there.
 仮想OS109のファイル共有サーバ110は、クライアント計算機129上のファイル共有クライアントから発行されたコマンドを受信する(S31)。 The file sharing server 110 of the virtual OS 109 receives a command issued from the file sharing client on the client computer 129 (S31).
 ファイル共有サーバ110は、コマンドテーブル111を参照して、当該コマンドの処理がブロック処理を必要とするか否か判断する(S32)。そのコマンドを処理するためにブロック処理が不要であると判定した場合(S32:No)、ファイル共有サーバ110がコマンドを処理する(S33)。ファイル共有サーバ110は、コマンドの処理結果をクライアント計算機126に送信して本処理を終了する(S34)。 The file sharing server 110 refers to the command table 111 to determine whether or not the command processing requires block processing (S32). If it is determined that block processing is not required to process the command (S32: No), the file sharing server 110 processes the command (S33). The file sharing server 110 transmits the processing result of the command to the client computer 126 and ends this processing (S34).
 一方、ファイル共有サーバ110がクライアント計算機129から受信したコマンドを処理するためにブロック処理が必要であると判定した場合(S32:Yes)、ファイル共有サーバ110は、コマンド処理に必要なデータのI/Oをネットワーク特化処理プログラム112に要求する(S35)。詳しくは、ファイル共有サーバ110は、コマンド処理に必要なディスク124上のデータを特定し、そのデータの取得をネットワーク特化処理プログラム112に要求する。ここでは、データの読み出しを要求する場合もデータの書込みを要求する場合も特に区別せずに、I/Oを要求する、と表現する。 On the other hand, when the file sharing server 110 determines that the block processing is necessary to process the command received from the client computer 129 (S32: Yes), the file sharing server 110 determines the I / O of the data necessary for the command processing. O is requested to the network specialization processing program 112 (S35). Specifically, the file sharing server 110 identifies data on the disk 124 necessary for command processing, and requests the network specialized processing program 112 to acquire the data. Here, the case of requesting data reading and the case of requesting data writing are expressed as requesting I / O without any particular distinction.
 ネットワーク特化処理プログラム112は、ネットワークに特化した処理を実行し(S36)、当該データのI/O要求をSCSIデバイスファイルに書き込む(S37)。もしも、仮想OS109がネットワーク特化処理プログラム112を有していない場合、ファイル共有サーバ110が当該データのI/O要求をSCSIデバイスファイルに書き込んでもよい。 The network specific processing program 112 executes a process specific to the network (S36), and writes an I / O request for the data to the SCSI device file (S37). If the virtual OS 109 does not have the network specialization processing program 112, the file sharing server 110 may write an I / O request for the data to the SCSI device file.
 仮想OS109は、SCSIデバイスファイル114に書き込まれたI/O要求を読み取り、要求されたデータがキャッシュメモリ115に存在するか判断する(S38)。キャッシュメモリ115が存在し、要求されたデータがキャッシュメモリ115に存在する場合(S38:Yes)、結合子Bを介して図12のフローチャート中のステップS52に移る。ステップS52以降の処理は後述する。 The virtual OS 109 reads the I / O request written in the SCSI device file 114 and determines whether the requested data exists in the cache memory 115 (S38). When the cache memory 115 exists and the requested data exists in the cache memory 115 (S38: Yes), the process proceeds to step S52 in the flowchart of FIG. The processing after step S52 will be described later.
 一方、ネットワーク特化処理プログラム112から要求されたデータがキャッシュメモリ115に存在しない場合、またはキャッシュメモリ115が存在しない場合(S38:No)、仮想OS109はOS間通信ドライバ117を使用して、ホストOS102に当該データのI/Oを要求する(S39)。結合子Aを介して図11のフローチャートに移る。 On the other hand, when the data requested by the network specialization processing program 112 does not exist in the cache memory 115 or when the cache memory 115 does not exist (S38: No), the virtual OS 109 uses the inter-OS communication driver 117 to The OS 102 is requested to perform I / O of the data (S39). It moves to the flowchart of FIG. 11 through the connector A.
 図11において、ホストOS102はOS間通信ドライバ108を介して、仮想OS109からのデータI/O要求を受信する(S41)。 In FIG. 11, the host OS 102 receives a data I / O request from the virtual OS 109 via the inter-OS communication driver 108 (S41).
 ホストOS102は、特化処理インターフェース割当テーブル122を参照し、仮想OS109が内部SCSIポート107にアクセスできるか否か判断する(S42)。仮想OS109が内部SCSIポート107にアクセスできる場合(S42:Yes)、すなわち仮想OS109が特化処理インターフェース割当テーブル122の「提供先OS名」1223に記載されている場合、ホストOS102は、内部SCSIポート107にデータI/O要求を書き込む(S43)。 The host OS 102 refers to the specialized processing interface allocation table 122 and determines whether or not the virtual OS 109 can access the internal SCSI port 107 (S42). When the virtual OS 109 can access the internal SCSI port 107 (S42: Yes), that is, when the virtual OS 109 is described in the “provided OS name” 1223 of the specialization process interface allocation table 122, the host OS 102 A data I / O request is written in 107 (S43).
 一方、仮想OS109が内部SCSIポート107にアクセスできない場合(S42:No)、すなわち仮想OS109が特化処理インターフェース割当テーブル122に登録されていない場合、ホストOS102はOS間通信ドライバ108を使用して、アクセスを拒否する旨の結果を仮想OS109に返信する(S49)。 On the other hand, when the virtual OS 109 cannot access the internal SCSI port 107 (S42: No), that is, when the virtual OS 109 is not registered in the specialized processing interface allocation table 122, the host OS 102 uses the inter-OS communication driver 108, A result indicating that access is denied is returned to the virtual OS 109 (S49).
 ブロック特化処理プログラム104は、内部SCSIポート107の内容を読み取り、ブロック特化処理を実行する(S44)。ブロック特化処理プログラム104は、ディスクドライバ105を介して、ディスク124にデータI/O要求を発行する(S45)。ブロック特化処理プログラム104は、ディスク124からデータI/O要求の結果を受信する(S46)。例えば、ブロック特化処理がストレージ仮想化機能である場合、ブロック特化処理プログラム104は、読み取ったデータのアドレスを他のアドレスに変換してI/O結果を返すこともできる。ブロック特化処理は、上述の通り、RAID処理、いわゆるシン・プロビジョニング処理などを実行することができる。 The block specialization processing program 104 reads the contents of the internal SCSI port 107 and executes block specialization processing (S44). The block specialization processing program 104 issues a data I / O request to the disk 124 via the disk driver 105 (S45). The block specialization processing program 104 receives the result of the data I / O request from the disk 124 (S46). For example, when the block specialization processing is a storage virtualization function, the block specialization processing program 104 can convert the address of the read data into another address and return an I / O result. As described above, the block specialization processing can execute RAID processing, so-called thin provisioning processing, and the like.
 ブロック特化処理プログラム104は、データのI/O要求の結果を処理し(S47)、その処理結果を内部SCSIポート107に書き込む(S48)。ここで例えば、特化処理がストレージ仮想化機能であった場合、ブロック特化処理プログラム104は、読み取ったデータのアドレスとは異なるアドレスへ出力するため、内部SCSIポート107には、元のアドレスへ変換してから内部SCSIポートに書き込んでもよい。 The block specialization processing program 104 processes the result of the data I / O request (S47), and writes the processing result to the internal SCSI port 107 (S48). Here, for example, if the specialization processing is a storage virtualization function, the block specialization processing program 104 outputs to an address different from the address of the read data. It may be written to the internal SCSI port after conversion.
 ホストOS102は、内部SCSIポート107の内容(データI/O要求の処理結果)を読み取り、OS間通信ドライバ108を使用して、仮想OS109にI/Oの結果を返信する(S49)。結合子Cを介して図12のフローチャートに移る。 The host OS 102 reads the contents of the internal SCSI port 107 (processing result of the data I / O request), and returns the I / O result to the virtual OS 109 using the inter-OS communication driver 108 (S49). The process proceeds to the flowchart of FIG.
 図12において、仮想OS109は、OS間通信ドライバ117を使用して、データI/O要求の処理結果を受信し、受信した処理結果をSCSIデバイスファイル114に書き込む(S51)。 12, the virtual OS 109 receives the processing result of the data I / O request using the inter-OS communication driver 117, and writes the received processing result in the SCSI device file 114 (S51).
 ネットワーク特化処理プログラム112は、SCSIデバイスファイル114からI/O要求の処理結果を読み取る(S52)。ネットワーク特化処理プログラム112は、ネットワーク特化処理を実行し、その処理結果をファイル共有サーバ110に返却する(S53)。 The network specialization processing program 112 reads the processing result of the I / O request from the SCSI device file 114 (S52). The network specialization processing program 112 executes the network specialization processing and returns the processing result to the file sharing server 110 (S53).
 ファイル共有サーバ110は、ネットワーク特化処理プログラム112からの処理結果をもとにコマンドを作成し、そのコマンドをファイル共有クライアント129に返信して本処理を終了する(S54)。仮想OS109がネットワーク特化処理プログラム112を有していない場合、ファイル共有サーバ110がSCSIデバイスファイルからI/O結果を読み取って、ステップS54を実行してもよい。 The file sharing server 110 creates a command based on the processing result from the network specialization processing program 112, returns the command to the file sharing client 129, and ends this processing (S54). If the virtual OS 109 does not have the network specialization processing program 112, the file sharing server 110 may read the I / O result from the SCSI device file and execute step S54.
 以上の手順は図2および図3に示した構成に基づいているが、図4および図5に示す構成の場合は、「ホストOS102」を「仮想OS301」と読み替えることで、図10ないし図12に示した手順を実現することができる。 The above procedure is based on the configuration shown in FIG. 2 and FIG. 3, but in the case of the configuration shown in FIG. 4 and FIG. 5, “host OS 102” is replaced with “virtual OS 301”. It is possible to realize the procedure shown in.
 以上の手順により、クライアント計算機129からのコマンドを受けたファイル共有サーバ110は、ディスク124に格納されたデータにアクセスするに際して、ホストOSの有するブロック特化処理プログラム104の機能を利用できる。 Through the above procedure, the file sharing server 110 that has received a command from the client computer 129 can use the function of the block specialization processing program 104 of the host OS when accessing the data stored in the disk 124.
 本実施例によれば、仮想OS109はブロック処理を実行する機能を備えていなくても、ホストOS102の提供するブロック特化処理を用いてディスク124にデータを読み書きすることができる。従って、仮想OS109にブロック処理機能を実装する必要がないため、開発工数を低減して製造コストを低下させることができる。 According to this embodiment, even if the virtual OS 109 does not have a function for executing block processing, data can be read from and written to the disk 124 using block specialization processing provided by the host OS 102. Therefore, since it is not necessary to implement a block processing function in the virtual OS 109, it is possible to reduce development man-hours and reduce manufacturing costs.
 さらに、仮想OS109は、ホストOS102に実装されたブロック特化処理104を利用できるため、仮想OS109が必要最低限のブロック処理機能を備えている場合に比べて、高速にデータを処理することができる。このため、コストをあまり追加せずに計算機101を高性能化することができる。 Furthermore, since the virtual OS 109 can use the block specialization processing 104 implemented in the host OS 102, it can process data at a higher speed than when the virtual OS 109 has the minimum necessary block processing function. . For this reason, the computer 101 can be improved in performance without adding much cost.
また、ホストOS102のブロック特化処理104にアクセス可能なOS109を設定するため、複数のOSが無秩序にデバイス(ディスク124)を使用するのを防止して、計算機101の効率を高めることができる。 Further, since the OS 109 that can access the block specialization processing 104 of the host OS 102 is set, it is possible to prevent a plurality of OSs from using the device (disk 124) in a disorderly manner, and to increase the efficiency of the computer 101.
さらに、本実施例では、OS間通信路119を設けるため、ホストOS102と仮想OS109は計算機101の内部で速やかに通信することができる。 Furthermore, in this embodiment, since the inter-OS communication path 119 is provided, the host OS 102 and the virtual OS 109 can communicate quickly inside the computer 101.
 図13~図18を用いて第2実施例を説明する。本実施例は第1実施例の変形例に該当するため、第1実施例との相違を中心に説明する。本実施例では、一つの特化処理について複数のインターフェース部を設ける場合を説明する。 The second embodiment will be described with reference to FIGS. Since the present embodiment corresponds to a modification of the first embodiment, differences from the first embodiment will be mainly described. In this embodiment, a case where a plurality of interface units are provided for one specialized process will be described.
 図13は、計算機101Bを含む計算機システムの構成概要を示す。本実施例のブロック特化処理プログラム104は、計算機101Bに接続されたテープライブラリ409を制御する機能と、テープライブラリ409にデータのI/O要求を発行する機能を有している。仮想OS109は、ブロック特化処理104の有する複数の機能を利用することで、バックアップサーバ408から要求されたバックアップをテープライブラリ409に作成したり、作成済みのバックアップを読み出したりする。 FIG. 13 shows an outline of the configuration of a computer system including the computer 101B. The block specialization processing program 104 of this embodiment has a function of controlling the tape library 409 connected to the computer 101B and a function of issuing a data I / O request to the tape library 409. The virtual OS 109 creates a backup requested by the backup server 408 in the tape library 409 or reads a created backup by using a plurality of functions of the block specialization process 104.
 計算機101Bは、第1実施例で述べた計算機101と同様に、例えば、ホストOS102、仮想化ソフトウェア118、仮想化ソフトウェア118の上で動作する仮想OS109を備えて構成される。 As with the computer 101 described in the first embodiment, the computer 101B includes, for example, a host OS 102, virtualization software 118, and a virtual OS 109 that operates on the virtualization software 118.
 ホストOS102は、計算機101Bに接続された外部のテープライブラリ409と通信をするためのSANインターフェース(以下、SAN I/F)404を有する。テープライブラリ409と計算機101Bの接続形態は、直接接続する形態のほか、FCやEthernet(登録商標)を利用したネットワーク形態でもよい。 The host OS 102 has a SAN interface (hereinafter, SAN I / F) 404 for communicating with an external tape library 409 connected to the computer 101B. The connection form of the tape library 409 and the computer 101B may be a network form using FC or Ethernet (registered trademark) in addition to a direct connection form.
 ホストOS102は、第1実施例で述べたと同様に、仮想OS109と通信するためのOS間通信路119と、OS間通信路119を制御するOS間通信ドライバ108と、OS間通信ドライバ108を介して仮想OS109とSCSIによるデータI/Oを実現するSCSIポート107を有する。さらに、ホストOS102は、SCSIコマンドで他の装置(ここではテープライブラリ409)を操作する機能を他の仮想OSに提供するための仮想SCSIイニシエータ401を有する。 As described in the first embodiment, the host OS 102 passes through the inter-OS communication path 119 for communicating with the virtual OS 109, the inter-OS communication driver 108 for controlling the inter-OS communication path 119, and the inter-OS communication driver 108. A virtual OS 109 and a SCSI port 107 for realizing data I / O by SCSI. Further, the host OS 102 includes a virtual SCSI initiator 401 for providing another virtual OS with a function of operating another device (here, the tape library 409) using a SCSI command.
 本実施例のブロック特化処理プログラム104は、テープドライバ403を介して、テープライブラリ409に格納されたデータを読み書きすることができる。さらに、本実施例のブロック特化処理プログラム104は、SCSIイニシエータ402を介して、テープライブラリ409の操作を制御することができる。ここでは、テープライブラリ409の操作を制御する機能をリモート制御機能と呼ぶ。テープライブラリ409の操作とは、テープライブラリ409のコントローラ413の操作であり、例えば、テープメディアが格納されたスロットからテープを取り出してドライブに挿入する操作などがある。 The block specialization processing program 104 of this embodiment can read and write data stored in the tape library 409 via the tape driver 403. Furthermore, the block specialization processing program 104 of this embodiment can control the operation of the tape library 409 via the SCSI initiator 402. Here, a function for controlling the operation of the tape library 409 is referred to as a remote control function. The operation of the tape library 409 is an operation of the controller 413 of the tape library 409. For example, there is an operation of taking out a tape from a slot storing a tape medium and inserting it into a drive.
 ホストOS102は、第1実施例で述べた通り、デバイス割当テーブル120と、特化処理インターフェース割当テーブル122と、通信路割当テーブル123と、割当制御プログラム121を有する。 As described in the first embodiment, the host OS 102 includes a device allocation table 120, a specialized processing interface allocation table 122, a communication path allocation table 123, and an allocation control program 121.
 計算機101Bの管理者は管理計算機134を操作することで、ホストOS102のインターフェース制御プログラム106、仮想OS109のインターフェース制御プログラム113および割当制御プログラム121に命令を発行することができる。 The administrator of the computer 101B can issue commands to the interface control program 106 of the host OS 102, the interface control program 113 of the virtual OS 109, and the allocation control program 121 by operating the management computer 134.
 仮想OS109は、バックアッププログラム405を備える。バックアッププログラム405は、LAN414を介してバックアップサーバ408から命令を受領し、バックアップ処理を実行する。 The virtual OS 109 includes a backup program 405. The backup program 405 receives a command from the backup server 408 via the LAN 414 and executes a backup process.
 LAN414としては、Ethernet(登録商標)が好適だが、FCを利用したSANでもよい。バックアッププログラム405は、バックアップサーバ408からのコマンドに従って実行すべき処理を決定するためのコマンドテーブル406を有する。コマンドテーブル406の詳細は図14で後述する。 The LAN 414 is preferably Ethernet (registered trademark), but may be a SAN using FC. The backup program 405 has a command table 406 for determining processing to be executed in accordance with a command from the backup server 408. Details of the command table 406 will be described later with reference to FIG.
 仮想OS109は、OS間通信路119を制御するためのOS間通信ドライバ117と、OS間通信ドライバ117を介してホストOS102や他の仮想OS(図示せず)とSCSI通信をするためのSCSIデバイスファイル114を有する。さらに、本実施例の仮想OS109は、仮想SCSIイニシエータ401にアクセスしてブロック特化処理104を使用するためのSCSIイニシエータファイル407を備える。 The virtual OS 109 includes an inter-OS communication driver 117 for controlling the inter-OS communication path 119 and an SCSI device for performing SCSI communication with the host OS 102 and other virtual OS (not shown) via the inter-OS communication driver 117. It has a file 114. Furthermore, the virtual OS 109 of this embodiment includes a SCSI initiator file 407 for accessing the virtual SCSI initiator 401 and using the block specialization processing 104.
 テープライブラリ409は、SANを介して計算機101Bに接続されており、ホストOS102に割り当てられている。テープライブラリ409は、テープメディアのデータを読み書きするためのドライブ411と、ドライブ411にアクセスするためのドライブインターフェース410と、コントローラ413と、コントローラ413にアクセスするための制御I/F412を有する。 The tape library 409 is connected to the computer 101B via the SAN and is assigned to the host OS 102. The tape library 409 includes a drive 411 for reading and writing data on a tape medium, a drive interface 410 for accessing the drive 411, a controller 413, and a control I / F 412 for accessing the controller 413.
 図14は、コマンドテーブル406の構成例である。コマンドテーブル406は、少なくともバックアッププロトコルのコマンドを示すカラム4061と、当該コマンドがデータI/Oであるかテープライブラリの制御であるかを示すカラム4062とを備える。その他、コマンドテーブル406は、当該コマンドに関する処理の詳細等を記憶する構成でもよい。 FIG. 14 is a configuration example of the command table 406. The command table 406 includes at least a column 4061 indicating a backup protocol command and a column 4062 indicating whether the command is data I / O or tape library control. In addition, the command table 406 may be configured to store details of processing related to the command.
 例えば、バックアップサーバ408から受信したコマンドが「データ読み取り」である場合、バックアッププログラム405はテープライブラリ409に格納されたテープからデータを読み取る必要がある。従って、コマンドテーブル406のカラム4061には「データI/O」と記載する。 For example, when the command received from the backup server 408 is “data read”, the backup program 405 needs to read data from the tape stored in the tape library 409. Therefore, “data I / O” is described in the column 4061 of the command table 406.
 一方、バックアップサーバ408から受信したコマンドが「テープ挿入」である場合、バックアッププログラム405は、テープライブラリ409のコントローラ413を制御してテープメディアをドライブ411に挿入する必要がある。従って、コマンドテーブル406のカラム4062には「テープ制御」と記載する。「テープ挿入」と「テープ制御」は一例であり、データを読み書きするためのコマンドと、テープライブラリ409を制御するためのコマンドとを区別できる内容であればよい。 On the other hand, when the command received from the backup server 408 is “insert tape”, the backup program 405 needs to control the controller 413 of the tape library 409 to insert the tape medium into the drive 411. Therefore, “tape control” is described in the column 4062 of the command table 406. “Tape insertion” and “tape control” are only examples, and any content that can distinguish a command for reading and writing data from a command for controlling the tape library 409 may be used.
 図15は、計算機101Bに接続されたテープライブラ409をホストOS102に割り当てる手順を示すフローチャートである。 FIG. 15 is a flowchart showing a procedure for assigning the tape library 409 connected to the computer 101B to the host OS 102.
 管理者は管理計算機134を操作して、ホストOS102にブロック特化処理104を設定すると、割当制御プログラム121はデバイス割当テーブル120のカラム1203とカラム1204を更新する(S61)。ステップS61は、管理者の操作を契機に実行するのではなく、ホストOS102を計算機101Bにインストールしたときや、テープライブラリ409を計算機に接続したときに実行する構成でもよい。 When the administrator operates the management computer 134 and sets the block specialization processing 104 in the host OS 102, the allocation control program 121 updates the columns 1203 and 1204 of the device allocation table 120 (S61). Step S61 may be executed when the host OS 102 is installed in the computer 101B or when the tape library 409 is connected to the computer, instead of being executed in response to an administrator operation.
 管理者が「第1の入出力デバイス」としてのテープライブラリ409をホストOS102に割り当てると、割当制御プログラム121はデバイス割当テーブル120のカラム1202を更新する(S62)。 When the administrator allocates the tape library 409 as the “first input / output device” to the host OS 102, the allocation control program 121 updates the column 1202 of the device allocation table 120 (S62).
 ホストOS102は、内部SCSIポート107と仮想SCSIイニシエータ401を作成し(S63、S64)、本処理を終了する。 The host OS 102 creates the internal SCSI port 107 and the virtual SCSI initiator 401 (S63, S64), and ends this processing.
ホストOS102のブロック特化処理104を仮想OS109が利用できるようにインターフェースを提供する手順を図9を用いて説明する。 A procedure for providing an interface so that the block OS 104 of the host OS 102 can use the virtual OS 109 will be described with reference to FIG.
 この場合、図9に示すステップS21~S24、S26と同一のステップを実行する。異なるステップはS25である。本実施例ではステップS25において、仮想OS109のインターフェース制御プログラム113は、SCSIデバイスファイル114とSCSIイニシエータファイル407を作成する。その後、割当制御プログラム121は、特化処理インターフェース割当テーブル122を更新し(S26)、本処理を終了する。 In this case, the same steps as steps S21 to S24 and S26 shown in FIG. 9 are executed. The different step is S25. In this embodiment, in step S25, the interface control program 113 of the virtual OS 109 creates a SCSI device file 114 and a SCSI initiator file 407. Thereafter, the allocation control program 121 updates the specialized process interface allocation table 122 (S26), and ends this process.
 図16および図17は、ドライブインターフェース410を利用してドライブ411に挿入されたテープメディアのデータを読み書きし、さらに、制御インターフェース412を利用してコントローラ413を操作する手順を示すフローチャートである。 FIGS. 16 and 17 are flowcharts showing a procedure for reading / writing data of the tape medium inserted into the drive 411 using the drive interface 410 and operating the controller 413 using the control interface 412.
 バックアッププログラム405は、バックアップサーバ408から発行されたコマンドを受信する(S81)。 The backup program 405 receives the command issued from the backup server 408 (S81).
 バックアッププログラム405は、コマンドテーブル406を参照して、当該コマンドの種別を判断する(S82)。当該コマンドの種別が「データI/O」である場合(S82:I/O)、バックアッププログラム405はコマンドの内容をSCSIデバイスファイル114に書き込む(S83)。これに対し、当該コマンドの種別が「テープ制御」である場合(S82:制御)、バックアッププログラム405はコマンドの内容をSCSIイニシエータファイル407に書き込む(S84)。 The backup program 405 refers to the command table 406 to determine the type of the command (S82). When the type of the command is “data I / O” (S82: I / O), the backup program 405 writes the contents of the command to the SCSI device file 114 (S83). On the other hand, when the type of the command is “tape control” (S82: control), the backup program 405 writes the contents of the command in the SCSI initiator file 407 (S84).
 仮想OS109は、SCSIデバイスファイル114またはSCSIイニシエータファイル407のいずれかに書き込まれたコマンド内容を読み取り、そのコマンド内容をOS間通信ドライバ115を介して、ホストOS102に送信する(S85)。ホストOS102は、OS間通信ドライバ108を使用してコマンド内容を受信する(S86)。 The virtual OS 109 reads the command content written in either the SCSI device file 114 or the SCSI initiator file 407, and transmits the command content to the host OS 102 via the inter-OS communication driver 115 (S85). The host OS 102 receives the command content using the inter-OS communication driver 108 (S86).
 ブロック特化処理104は、内部SCSIポート107または仮想SCSIイニシエータ401の内容を読み取り、コマンド内容がデータのI/Oに関するものであるか、またはテープ制御に関するものであるかを判別する(S87)。 The block specialization process 104 reads the contents of the internal SCSI port 107 or the virtual SCSI initiator 401, and determines whether the command contents relate to data I / O or tape control (S87).
 コマンド内容が「データI/O」である場合(S87:I/O)、ブロック特化処理104は、テープドライバ403を介してドライブインターフェース410にデータのI/Oを要求する(S88、S89)。一方、コマンド内容が「テープ制御」である場合(S87:テープ制御)、ブロック特化処理104は、SCSIイニシエータ402を介して制御インターフェース412に操作の内容を送信する(S90、S91)。 When the command content is “data I / O” (S87: I / O), the block specialization process 104 requests data I / O from the drive interface 410 via the tape driver 403 (S88, S89). . On the other hand, when the command content is “tape control” (S87: tape control), the block specialization process 104 transmits the operation content to the control interface 412 via the SCSI initiator 402 (S90, S91).
 図17に移る。テープライブラリ409は、ドライブインターフェース410が受信した内容に基づいて、ドライブ411を利用してテープメディアにデータを読み書きする(S101)。例えば、テープライブラリ409は、コマンドで指定されたドライブ411に挿入された所定番号のテープメディアの、指定位置のデータを読み取る。テープライブラリ409は、制御インターフェース412が受信した内容に基づいて、コントローラ413を制御する(S102)。例えば、テープライブラリ409は、コマンドで指定されたテープメディアを指定されたドライブに挿入する。 Move on to FIG. Based on the content received by the drive interface 410, the tape library 409 reads / writes data to / from the tape medium using the drive 411 (S101). For example, the tape library 409 reads data at a specified position on a predetermined number of tape media inserted into the drive 411 specified by the command. The tape library 409 controls the controller 413 based on the content received by the control interface 412 (S102). For example, the tape library 409 inserts the tape medium designated by the command into the designated drive.
 テープライブラリ409は、ドライブインターフェース410または制御インターフェース412を介して、処理結果をホストOS102に送信する。その処理結果は、ブロック特化処理プログラム104が受信する(S103)。 The tape library 409 transmits the processing result to the host OS 102 via the drive interface 410 or the control interface 412. The processing result is received by the block specialization processing program 104 (S103).
 ブロック特化処理プログラムは、内部SCSIポート107または仮想SCSIイニシエータ401に受信した処理結果を書き込む。ホストOS102は、OS間通信ドライバ108を使用して、仮想OS109に処理結果を返信する(S104)。 The block specialization processing program writes the received processing result in the internal SCSI port 107 or the virtual SCSI initiator 401. The host OS 102 returns the processing result to the virtual OS 109 using the inter-OS communication driver 108 (S104).
 仮想OS109は、OS間通信ドライバ117を使用して、ホストOS102からの処理結果を受信する(S105)。仮想OS109は、処理結果が「データI/O」に関するものであるか、「テープ制御」に関するものであるかを判別する(S106)。 The virtual OS 109 receives the processing result from the host OS 102 using the inter-OS communication driver 117 (S105). The virtual OS 109 determines whether the processing result relates to “data I / O” or “tape control” (S106).
 その処理結果が「データI/O」に対する結果である場合(S106:I/O)、仮想OS109は、SCSIデバイスファイル114を介してバックアッププログラム405に処理結果を送信する(S107)。一方、その処理結果が「テープ制御」に対する結果である場合(S106:テープ制御)、仮想OS109は、SCSIイニシエータ402を介してバックアッププログラム405に処理結果を送信する(S108)。 When the processing result is a result for “data I / O” (S106: I / O), the virtual OS 109 transmits the processing result to the backup program 405 via the SCSI device file 114 (S107). On the other hand, when the processing result is a result for “tape control” (S106: tape control), the virtual OS 109 transmits the processing result to the backup program 405 via the SCSI initiator 402 (S108).
 バックアッププログラムS109は、処理結果をもとにコマンドを作成し、そのコマンドをバックアップサーバ408に返信して本処理を終了する(S109)。 The backup program S109 creates a command based on the processing result, returns the command to the backup server 408, and ends this processing (S109).
 以上の手順は図13に示した構成に基づいているが、第1実施例と同様に、ホストOS102を仮想OS301と読み替えることで、同様の手順を実現できる。 The above procedure is based on the configuration shown in FIG. 13, but the same procedure can be realized by replacing the host OS 102 with the virtual OS 301 as in the first embodiment.
 以上の手順により、仮想OS109は、ホストOS102のブロック特化処理104が有する複数の機能を利用することで、テープライブラリ409へのバックアップ処理を実現することができる。このように、本実施例は、テープライブラリ409のような、データI/O用インターフェースと制御用インターフェースが異なっている装置に対しても、第1実施例で述べたと同様の効果を奏する。 Through the above procedure, the virtual OS 109 can realize backup processing to the tape library 409 by using a plurality of functions of the block specialization processing 104 of the host OS 102. As described above, the present embodiment has the same effects as those described in the first embodiment even for devices such as the tape library 409 that have different data I / O interfaces and control interfaces.
 なお、本発明は、上述した実施例に限定されない。当業者であれば、本発明の範囲内で、種々の追加や変更等を行うことができる。 In addition, this invention is not limited to the Example mentioned above. A person skilled in the art can make various additions and changes within the scope of the present invention.
 本実施形態で述べた構成は、例えば下記のようにコンピュータプログラムの発明として表現することもできる。
 「それぞれ独立して動作する第1のオペレーティングシステムおよび第2のオペレーティングシステムと、複数の入出力デバイスとを有する計算機を制御するためのコンピュータプログラムであって、
 前記第1のオペレーティングシステムに第1の所定の処理部を作成し、
 前記第2のオペレーティングシステムに第2の所定の処理部を作成し、
 前記第1のオペレーティングシステムに前記複数の入出力デバイスのうち前記第1の所定の処理部の特性に応じた第1の入出力デバイスを割当て、
 前記第2のオペレーティングシステムに前記複数の入出力デバイスのうち前記第2の所定の処理部の特性に応じた第2の入出力デバイスを割当て、
 前記第1のオペレーティングシステムに、前記第2のオペレーティングシステムが前記第1の所定の処理部を使用するための第1のインターフェース部を作成し、
 前記第2のオペレーティングシステムに、前記第1のオペレーティングシステムが前記第2の所定の処理部を使用するための第2のインターフェース部を作成し、
 前記第1の所定の処理部を使用することのできる前記第2のオペレーティングシステムを設定し、
 前記第2の所定の処理部を使用することのできる前記第1のオペレーティングシステムを設定し、
 前記第1のオペレーティングシステムと前記第2のオペレーティングシステムとが通信するためのオペレーティングシステム間通信路を設定し、
 前記第2のオペレーティングシステムは、所定の場合に、前記第1のインターフェース部を介して前記第1の所定の処理部を使用し、
 前記第1のオペレーティングシステムは、他の所定の場合に、前記第2のインターフェース部を介して前記第2の所定の処理部を使用する、
コンピュータプログラム。」
The configuration described in the present embodiment can also be expressed as a computer program invention as described below, for example.
“A computer program for controlling a computer having a first operating system and a second operating system, each of which operates independently, and a plurality of input / output devices,
Creating a first predetermined processing unit in the first operating system;
Creating a second predetermined processing unit in the second operating system;
A first input / output device corresponding to a characteristic of the first predetermined processing unit among the plurality of input / output devices is assigned to the first operating system;
Allocating a second input / output device corresponding to characteristics of the second predetermined processing unit among the plurality of input / output devices to the second operating system;
Creating a first interface unit in the first operating system for the second operating system to use the first predetermined processing unit;
Creating a second interface unit in the second operating system for the first operating system to use the second predetermined processing unit;
Setting the second operating system capable of using the first predetermined processing unit;
Setting the first operating system capable of using the second predetermined processing unit;
Setting an inter-operating system communication path for communication between the first operating system and the second operating system;
The second operating system uses the first predetermined processing unit via the first interface unit in a predetermined case,
The first operating system uses the second predetermined processing unit via the second interface unit in another predetermined case.
Computer program. "
 特許請求の範囲に明示された組合せ以外で、請求項を組合せることもできる。一例として、「前記第1のオペレーティングシステムと前記第2のオペレーティングシステムとが通信するためのオペレーティングシステム間通信路が設けられており、前記第2のオペレーティングシステムは、前記所定の場合に、前記オペレーティングシステム間通信路を介して前記第1インターフェース部にアクセスすることで、前記第1の所定の処理部を使用する計算機」という構成は、「前記第1のオペレーティングシステムは、前記仮想化機能を提供するホストオペレーティングシステムとして構成されている計算機」という構成またはこれとは異なる構成に結合させることもできる。 Claims can be combined with combinations other than those specified in the claims. As an example, “an inter-operating system communication path for communication between the first operating system and the second operating system is provided, and the second operating system is configured to operate the operating system in the predetermined case. By accessing the first interface unit via the inter-system communication path, the configuration of the “computer that uses the first predetermined processing unit” is “the first operating system provides the virtualization function” It can also be combined with a configuration of “a computer configured as a host operating system” or a different configuration.
 1:計算機、2A:第1のオペレーティングシステム、2B:第2のオペレーティングシステム、3:仮想化機能、4A:第1の入出力デバイス、4B:第2の入出力デバイス、5:オペレーティングシステム間通信路、6A:第1のクライアント計算機、6B:第2のクライアント計算機、2A1:第1の所定の処理部、2A2:第1のインターフェース部、2B1:第2の所定の処理部、2B2:第2のインターフェース部、101,101A,101B:計算機、102:ホストOS、104:ブロック特化処理プログラム、106:インターフェース制御プログラム、107:内部SCSIポート、108:OS間通信ドライバ、109:仮想OS、110:ファイル共有サーバ、112:ネットワーク特化処理プログラム、113:インターフェース制御プログラム、114:SCSIデバイスファイル、117:OS間通信ドライバ、118:仮想化ソフトウェア、119:OS間通信路、124:ディスク、125:NIC 1: computer, 2A: first operating system, 2B: second operating system, 3: virtualization function, 4A: first input / output device, 4B: second input / output device, 5: communication between operating systems Path, 6A: first client computer, 6B: second client computer, 2A1: first predetermined processing unit, 2A2: first interface unit, 2B1: second predetermined processing unit, 2B2: second 101: 101A, 101B: Computer, 102: Host OS, 104: Block specialization program, 106: Interface control program, 107: Internal SCSI port, 108: Inter-OS communication driver, 109: Virtual OS, 110 : File sharing server, 112: Network specialized processing program, 11 : Interface control program, 114: SCSI device files, 117: OS communication driver 118: virtualization software, 119: OS communication path, 124: disc, 125: NIC

Claims (15)

  1.  それぞれ独立して動作する複数のオペレーティングシステムと、複数の入出力デバイスとを有する計算機であって、
     前記複数のオペレーティングシステムは第1のオペレーティングシステムと第2のオペレーティングシステムとを含んでおり、
     前記第1のオペレーティングシステムは第1の所定の処理部を備えており、
     前記第1のオペレーティングシステムには、前記複数の入出力デバイスのうち前記第1の所定の処理部の特性に応じた第1の入出力デバイスが割り当てられており、
     前記第1のオペレーティングシステムは、前記第1の所定の処理部を前記第2のオペレーティングシステムが使用するための第1のインターフェース部を備え、
     前記第2のオペレーティングシステムは、所定の場合に、前記第1のインターフェース部を介して前記第1の所定の処理部を使用する、
    計算機。
    A computer having a plurality of operating systems that operate independently and a plurality of input / output devices,
    The plurality of operating systems includes a first operating system and a second operating system;
    The first operating system includes a first predetermined processing unit,
    A first input / output device corresponding to a characteristic of the first predetermined processing unit among the plurality of input / output devices is assigned to the first operating system;
    The first operating system includes a first interface unit for the second operating system to use the first predetermined processing unit,
    The second operating system uses the first predetermined processing unit via the first interface unit in a predetermined case.
    calculator.
  2.  前記複数のオペレーティングシステムは、計算機を仮想化する仮想化機能の上に設けられる少なくとも一つの仮想オペレーティングシステムを含んでおり、
     前記第2のオペレーティングシステムは前記仮想オペレーティングシステムとして構成されている、
    請求項1に記載の計算機。
    The plurality of operating systems includes at least one virtual operating system provided on a virtualization function for virtualizing a computer,
    The second operating system is configured as the virtual operating system;
    The computer according to claim 1.
  3.  前記第1のオペレーティングシステムは、前記第2のオペレーティングシステムとは別の前記仮想オペレーティングシステムとして構成されている、
    請求項2に記載の計算機。
    The first operating system is configured as the virtual operating system different from the second operating system.
    The computer according to claim 2.
  4.  前記第1のオペレーティングシステムは、前記仮想化機能を提供するホストオペレーティングシステムとして構成されている、
    請求項2に記載の計算機。
    The first operating system is configured as a host operating system that provides the virtualization function.
    The computer according to claim 2.
  5.  前記第1のオペレーティングシステムと前記第2のオペレーティングシステムとが通信するためのオペレーティングシステム間通信路が設けられており、
     前記第2のオペレーティングシステムは、前記所定の場合に、前記オペレーティングシステム間通信路を介して前記第1インターフェース部にアクセスすることで、前記第1の所定の処理部を使用する、
    請求項1に記載の計算機。
    An inter-operating system communication path is provided for communication between the first operating system and the second operating system;
    The second operating system uses the first predetermined processing unit by accessing the first interface unit via the inter-operating system communication path in the predetermined case.
    The computer according to claim 1.
  6.  前記第2のオペレーティングシステムが複数存在し、複数の前記第2のオペレーティングシステムのうち前記第1の所定の処理部を使用することのできる所定の第2のオペレーティングシステムを設定することができる、
    請求項5に記載の計算機。
    A plurality of the second operating systems exist, and a predetermined second operating system that can use the first predetermined processing unit among the plurality of second operating systems can be set.
    The computer according to claim 5.
  7.  前記第2のオペレーティングシステムは第2の所定の処理部を備えており、
     前記第2のオペレーティングシステムには、前記複数の入出力デバイスのうち前記第2の所定の処理部の特性に応じた第2の入出力デバイスが割り当てられており、
     前記第2の所定の処理部は、前記所定の場合に、前記第1のインターフェース部を介して前記第1の所定の処理部を使用する、
    請求項6に記載の計算機。
    The second operating system includes a second predetermined processing unit,
    The second operating system is assigned a second input / output device according to the characteristics of the second predetermined processing unit among the plurality of input / output devices.
    The second predetermined processing unit uses the first predetermined processing unit via the first interface unit in the predetermined case.
    The computer according to claim 6.
  8.  前記第2のオペレーティングシステムは、前記第2の所定の処理部を前記第1のオペレーティングシステムが使用するための第2のインターフェース部を備え、
     前記第1のオペレーティングシステムは、他の所定の場合に、前記第2のインターフェース部を介して前記第2の所定の処理部を使用する、
    請求項7に記載の計算機。
    The second operating system includes a second interface unit for the first operating system to use the second predetermined processing unit,
    The first operating system uses the second predetermined processing unit via the second interface unit in another predetermined case.
    The computer according to claim 7.
  9.  前記第1の入出力デバイスはディスクを制御するディスクコントローラであり、
     前記第2の入出力デバイスは通信ネットワークを用いた通信を制御するネットワークコントローラであり、
     前記第1の所定の処理部は、前記ディスクコントローラを用いてブロック単位でデータを処理するブロック処理部として構成されており、
     前記第2の所定の処理部は、前記ネットワークコントローラを用いて通信を処理するネットワーク処理部として構成されており、
     前記所定の場合とは、前記第2の所定の処理部がデータ読み書きを指示するコマンドを前記通信ネットワークを介して受信した場合であり、
     前記他の所定の場合とは、前記第1の所定の処理部が前記通信ネットワークを介して前記ディスクにデータを入出力するための他のコマンドを受領した場合である、
    請求項8に記載の計算機。
    The first input / output device is a disk controller for controlling a disk;
    The second input / output device is a network controller for controlling communication using a communication network;
    The first predetermined processing unit is configured as a block processing unit that processes data in block units using the disk controller,
    The second predetermined processing unit is configured as a network processing unit that processes communication using the network controller,
    The predetermined case is a case where the second predetermined processing unit receives a command for instructing data reading / writing via the communication network,
    The other predetermined case is a case where the first predetermined processing unit receives another command for inputting / outputting data to / from the disk via the communication network.
    The computer according to claim 8.
  10.  前記第1の入出力デバイスはテープにデータを入出力するためのテープライブラリ装置であり、
     前記テープライブラリ装置は、テープメディアへデータを読み書きするためのテープドライブと、前記テープメディアの操作を制御するためのテープメディアコントローラとを含んでおり、
     前記第1のインターフェース部は、前記第1の所定の処理部を介して前記テープドライブを使用するためのドライブ用インターフェース部と、前記第1の所定の処理部を介して前記テープメディアコントローラを使用するためのコントローラ用インターフェース部を備えている、
    請求項9に記載の計算機。
    The first input / output device is a tape library device for inputting / outputting data to / from a tape;
    The tape library device includes a tape drive for reading and writing data to a tape medium, and a tape media controller for controlling the operation of the tape medium,
    The first interface unit uses a drive interface unit for using the tape drive via the first predetermined processing unit, and the tape media controller via the first predetermined processing unit. It has a controller interface for
    The computer according to claim 9.
  11.  前記第1のオペレーティングシステムは、前記第2のインターフェース部を利用するための第1の利用元インターフェース部を備えており、
     前記第2のオペレーティングシステムは、前記第1のインターフェース部を利用するための第2の利用元インターフェース部を備えており、
     前記第1のオペレーティングシステムは、前記第1の利用元インターフェース部と前記オペレーティングシステム間通信路を介して前記第2のインターフェース部にアクセスすることで、前記第2の所定の処理部を使用し、
     前記第2のオペレーティングシステムは、前記第2の利用元インターフェース部と前記オペレーティングシステム間通信路を介して前記第1のインターフェース部にアクセスすることで、前記第1の所定の処理部を使用する、
    請求項8に記載の計算機。
    The first operating system includes a first user interface unit for using the second interface unit,
    The second operating system includes a second user interface unit for using the first interface unit,
    The first operating system uses the second predetermined processing unit by accessing the second interface unit via the first usage source interface unit and the inter-operating system communication path.
    The second operating system uses the first predetermined processing unit by accessing the first interface unit via the second usage source interface unit and the communication path between the operating systems.
    The computer according to claim 8.
  12.  それぞれ独立して動作する第1のオペレーティングシステムおよび第2のオペレーティングシステムと、複数の入出力デバイスとを有する計算機を制御する方法であって、
     前記第1のオペレーティングシステムに第1の所定の処理部を作成し、
     前記第2のオペレーティングシステムに第2の所定の処理部を作成し、
     前記第1のオペレーティングシステムに前記複数の入出力デバイスのうち前記第1の所定の処理部の特性に応じた第1の入出力デバイスを割当て、
     前記第2のオペレーティングシステムに前記複数の入出力デバイスのうち前記第2の所定の処理部の特性に応じた第2の入出力デバイスを割当て、
     前記第1のオペレーティングシステムに、前記第2のオペレーティングシステムが前記第1の所定の処理部を使用するための第1のインターフェース部を作成し、
     前記第2のオペレーティングシステムに、前記第1のオペレーティングシステムが前記第2の所定の処理部を使用するための第2のインターフェース部を作成し、
     前記第1の所定の処理部を使用することのできる前記第2のオペレーティングシステムを設定し、
     前記第2の所定の処理部を使用することのできる前記第1のオペレーティングシステムを設定し、
     前記第1のオペレーティングシステムと前記第2のオペレーティングシステムとが通信するためのオペレーティングシステム間通信路を設定し、
     前記第2のオペレーティングシステムは、所定の場合に、前記第1のインターフェース部を介して前記第1の所定の処理部を使用し、
     前記第1のオペレーティングシステムは、他の所定の場合に、前記第2のインターフェース部を介して前記第2の所定の処理部を使用する、
    計算機の制御方法。
    A method of controlling a computer having a first operating system and a second operating system, each of which operates independently, and a plurality of input / output devices,
    Creating a first predetermined processing unit in the first operating system;
    Creating a second predetermined processing unit in the second operating system;
    A first input / output device corresponding to a characteristic of the first predetermined processing unit among the plurality of input / output devices is assigned to the first operating system;
    Allocating a second input / output device corresponding to characteristics of the second predetermined processing unit among the plurality of input / output devices to the second operating system;
    Creating a first interface unit in the first operating system for the second operating system to use the first predetermined processing unit;
    Creating a second interface unit in the second operating system for the first operating system to use the second predetermined processing unit;
    Setting the second operating system capable of using the first predetermined processing unit;
    Setting the first operating system capable of using the second predetermined processing unit;
    Setting an inter-operating system communication path for communication between the first operating system and the second operating system;
    The second operating system uses the first predetermined processing unit via the first interface unit in a predetermined case,
    The first operating system uses the second predetermined processing unit via the second interface unit in another predetermined case.
    Computer control method.
  13.  前記複数のオペレーティングシステムは、計算機を仮想化する仮想化機能の上に設けられる少なくとも一つの仮想オペレーティングシステムを含んでおり、
     前記第2のオペレーティングシステムは前記仮想オペレーティングシステムとして構成されており、
     前記第1のオペレーティングシステムは前記仮想化機能を提供するホストオペレーティングシステムまたは他の仮想オペレーティングシステムのいずれか一つとして構成されている、
    請求項12に記載の計算機の制御方法。
    The plurality of operating systems includes at least one virtual operating system provided on a virtualization function for virtualizing a computer,
    The second operating system is configured as the virtual operating system;
    The first operating system is configured as any one of a host operating system or other virtual operating system that provides the virtualization function,
    The computer control method according to claim 12.
  14.  前記第1の入出力デバイスはテープにデータを入出力するためのテープライブラリ装置であり、
     前記テープライブラリ装置は、テープメディアへデータを読み書きするためのテープドライブと、前記テープメディアの操作を制御するためのテープメディアコントローラとを含んでおり、
     前記第1のインターフェース部は、前記第1の所定の処理部を介して前記テープドライブを使用するためのドライブ用インターフェース部と、前記第1の所定の処理部を介して前記テープメディアコントローラを使用するためのコントローラ用インターフェース部を備えている、
    請求項13に記載の計算機の制御方法。
    The first input / output device is a tape library device for inputting / outputting data to / from a tape;
    The tape library device includes a tape drive for reading and writing data to a tape medium, and a tape media controller for controlling the operation of the tape medium,
    The first interface unit uses a drive interface unit for using the tape drive via the first predetermined processing unit, and the tape media controller via the first predetermined processing unit. It has a controller interface for
    The computer control method according to claim 13.
  15.  それぞれ独立して動作する複数のオペレーティングシステムと、複数の入出力デバイスとを有する計算機であって、
     前記複数のオペレーティングシステムは、計算機を仮想化する仮想化機能を提供するホストオペレーティングシステムとして構成される第1のオペレーティングシステムと、前記仮想化機能により生成される仮想オペレーティングシステムとして構成される第2のオペレーティングシステムとを含んでおり、
     前記第1のオペレーティングシステムと前記第2のオペレーティングシステムとが通信するためのオペレーティングシステム間通信路が設けられており、
     前記第1のオペレーティングシステムは、ブロック単位でデータを処理するブロック処理部として構成される第1の所定の処理部を備えており、
     前記第2のオペレーティングシステムは、通信ネットワークを用いて通信するためのネットワーク処理部として構成される第2の所定の処理部を備えており、
     前記第1のオペレーティングシステムには、ディスクを制御するディスクコントローラとして構成される第1の入出力デバイスが割り当てられており、
     前記第2のオペレーティングシステムには、前記通信ネットワークを用いた通信を制御するためのネットワークコントローラとして構成される第2の入出力デバイスが割り当てられており、
     前記第1のオペレーティングシステムには、前記第1の所定の処理部を前記第2のオペレーティングシステムが使用するための内部通信ポートとして構成される第1のインターフェース部が設けられており、
     前記第2のオペレーティングシステムには、前記オペレーティングシステム間通信路を介して前記第1のインターフェース部にアクセスするためのデバイスファイルが利用元インターフェース部として設けられており、
     前記第1のオペレーティングシステムは、少なくとも、前記第1の所定の処理部、前記第2の所定の処理部、前記第1の入出力デバイス、前記第2の入出力デバイス、前記第1のインターフェース部、前記利用元インターフェース部の構成について管理するための管理テーブルを記憶しており、
     前記第2のオペレーティングシステムは、前記ディスクを介してデータを読み書きする必要がある所定の場合に、前記第1のインターフェース部を介して前記第1の所定の処理部を使用する、
    計算機。
    A computer having a plurality of operating systems that operate independently and a plurality of input / output devices,
    The plurality of operating systems include a first operating system configured as a host operating system that provides a virtualization function for virtualizing a computer, and a second operating system generated as a virtual operating system generated by the virtualization function. Operating system and
    An inter-operating system communication path is provided for communication between the first operating system and the second operating system;
    The first operating system includes a first predetermined processing unit configured as a block processing unit that processes data in block units,
    The second operating system includes a second predetermined processing unit configured as a network processing unit for communicating using a communication network,
    The first operating system is assigned a first input / output device configured as a disk controller for controlling a disk;
    A second input / output device configured as a network controller for controlling communication using the communication network is assigned to the second operating system,
    The first operating system is provided with a first interface unit configured as an internal communication port for the second operating system to use the first predetermined processing unit,
    In the second operating system, a device file for accessing the first interface unit via the inter-operating system communication path is provided as a use source interface unit,
    The first operating system includes at least the first predetermined processing unit, the second predetermined processing unit, the first input / output device, the second input / output device, and the first interface unit. , Storing a management table for managing the configuration of the user interface unit,
    The second operating system uses the first predetermined processing unit via the first interface unit when it is necessary to read / write data via the disk.
    calculator.
PCT/JP2013/051820 2013-01-29 2013-01-29 Computer and control method for computer WO2014118870A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/JP2013/051820 WO2014118870A1 (en) 2013-01-29 2013-01-29 Computer and control method for computer

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2013/051820 WO2014118870A1 (en) 2013-01-29 2013-01-29 Computer and control method for computer

Publications (1)

Publication Number Publication Date
WO2014118870A1 true WO2014118870A1 (en) 2014-08-07

Family

ID=51261620

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2013/051820 WO2014118870A1 (en) 2013-01-29 2013-01-29 Computer and control method for computer

Country Status (1)

Country Link
WO (1) WO2014118870A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017017763A1 (en) * 2015-07-27 2017-02-02 株式会社日立製作所 Storage system and storage control method

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008027279A (en) * 2006-07-24 2008-02-07 Hitachi Ltd Method and system for controlling access to tape media from multiple virtual machines
JP2009075766A (en) * 2007-09-19 2009-04-09 Toshiba Corp Virtual machine system and rescheduling method for the system
JP2009217750A (en) * 2008-03-12 2009-09-24 Nec Corp Computer system, input/output priority control method, and program
JP2010113524A (en) * 2008-11-06 2010-05-20 Exit-Cube Inc Computer system, kernel scheduling system, resource allocation method, and process execution sharing method

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008027279A (en) * 2006-07-24 2008-02-07 Hitachi Ltd Method and system for controlling access to tape media from multiple virtual machines
JP2009075766A (en) * 2007-09-19 2009-04-09 Toshiba Corp Virtual machine system and rescheduling method for the system
JP2009217750A (en) * 2008-03-12 2009-09-24 Nec Corp Computer system, input/output priority control method, and program
JP2010113524A (en) * 2008-11-06 2010-05-20 Exit-Cube Inc Computer system, kernel scheduling system, resource allocation method, and process execution sharing method

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017017763A1 (en) * 2015-07-27 2017-02-02 株式会社日立製作所 Storage system and storage control method
JPWO2017017763A1 (en) * 2015-07-27 2018-04-05 株式会社日立製作所 Storage system and storage control method
US10579275B2 (en) 2015-07-27 2020-03-03 Hitachi, Ltd. Storage system and storage control method

Similar Documents

Publication Publication Date Title
EP3352086B1 (en) Control method, device and system for data reading-writing command in nvme over fabric architecture
US9122415B2 (en) Storage system using real data storage area dynamic allocation method
US11734137B2 (en) System, and control method and program for input/output requests for storage systems
JP5512833B2 (en) Storage system including a plurality of storage devices having both a storage virtualization function and a capacity virtualization function
JP4574408B2 (en) Storage system control technology
KR20200017363A (en) MANAGED SWITCHING BETWEEN ONE OR MORE HOSTS AND SOLID STATE DRIVES (SSDs) BASED ON THE NVMe PROTOCOL TO PROVIDE HOST STORAGE SERVICES
US8271559B2 (en) Storage system and method of controlling same
WO2014087518A1 (en) Network system and method for operating same
KR20210119529A (en) Systems and methods for streaming storage device content
JP6055924B2 (en) Storage system and storage system control method
JP7012010B2 (en) Information processing system and control method of information processing system
JP6234557B2 (en) Storage system
US9348513B2 (en) SAS virtual tape drive
JP2013003691A (en) Computing system and disk sharing method in computing system
US9921753B2 (en) Data replication across host systems via storage controller
WO2014061065A1 (en) Distribution processing unit of shared storage
JP2007004710A (en) Storage access system, data transfer device, storage accessing method and program
WO2014118870A1 (en) Computer and control method for computer
JP4258768B2 (en) File placement system
KR101470857B1 (en) Network distributed file system and method using iSCSI storage system
WO2023273803A1 (en) Authentication method and apparatus, and storage system
JP5355603B2 (en) Disk array device and logical volume access method
US11201788B2 (en) Distributed computing system and resource allocation method
US11481147B1 (en) Buffer allocation techniques
KR20140060959A (en) System and method for load balancing of network distributed file system using iscsi storage system

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

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 13873701

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP