WO2017183177A1 - 計算機システム、キャッシュ制御方法、及び計算機 - Google Patents

計算機システム、キャッシュ制御方法、及び計算機 Download PDF

Info

Publication number
WO2017183177A1
WO2017183177A1 PCT/JP2016/062733 JP2016062733W WO2017183177A1 WO 2017183177 A1 WO2017183177 A1 WO 2017183177A1 JP 2016062733 W JP2016062733 W JP 2016062733W WO 2017183177 A1 WO2017183177 A1 WO 2017183177A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
memory
cache
storage
server
Prior art date
Application number
PCT/JP2016/062733
Other languages
English (en)
French (fr)
Inventor
近藤 伸和
健 杉本
Original Assignee
株式会社日立製作所
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 株式会社日立製作所 filed Critical 株式会社日立製作所
Priority to PCT/JP2016/062733 priority Critical patent/WO2017183177A1/ja
Publication of WO2017183177A1 publication Critical patent/WO2017183177A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures

Definitions

  • the present invention relates to cache control in processing using an in-memory database.
  • non-volatile memories such as Flash memories are used in various electronic devices. Since the nonvolatile memory does not involve a mechanical operation like an HDD (Hard Disk Drive), it can be accessed at a higher speed than the HDD.
  • HDD Hard Disk Drive
  • a system using a flash memory as a cache memory different from a main memory is known (for example, see Patent Document 1).
  • a cache driver included in an OS or the like running on the server stores the cache data in the flash memory based on the access characteristics (for example, access frequency) of the data, and drives out the cache data from the flash memory.
  • access characteristics for example, access frequency
  • a hierarchical storage area is composed of a storage medium with high access performance and a storage medium with low access performance, and the storage area for storing data is changed based on the data access characteristics.
  • the technique which performs is known (for example, refer patent document 2).
  • a cache driver included in a virtualization control unit such as a hypervisor controls data stored in the cache memory based on a cache control algorithm such as LRU.
  • the cache driver cannot control data in consideration of the access characteristics of the application and the business schedule. Therefore, there is a problem that unnecessary data is stored in the cache memory or necessary data is not stored in the cache memory.
  • the hypervisor does not hold information related to applications on the virtual machine.
  • the memory access does not include information related to the application. Therefore, the hypervisor cannot grasp the access characteristics of the application from the memory access to the in-memory database.
  • the present invention provides a system, method, and apparatus for an in-memory database using a virtualization technology, in which a hypervisor realizes cache control according to an access characteristic of an application from memory access to the in-memory database.
  • a typical example of the invention disclosed in the present application is as follows. That is, a computer system including a business server on which a virtual computer that executes an application that executes a predetermined process operates, and a storage server that stores data used by the application, the business server including a first processor, A first memory connected to the first processor; a first cache device connected to the first processor and configured to temporarily store data; and connected to the first processor.
  • a second interface for connecting to another device, and a plurality of storage devices, which are executed on the virtual machine The application executes a predetermined process using a database constructed using a virtual memory allocated to the virtual machine, and the business server manages the virtual machine and controls the cache Monitoring policy management information for managing a monitoring policy including an acquisition policy indicating a physical address of the virtual memory managed by the virtual machine and a method of reading the data from the storage server.
  • a memory access monitoring unit that monitors memory access to the database, and an IO request issuing unit that generates an IO request for acquiring predetermined data from the storage server, and the memory access monitoring unit Includes the physical address of the virtual memory registered in the monitoring policy management information.
  • the virtualization control unit can execute cache control according to the access characteristics of the application by issuing an IO request based on the memory access monitoring result.
  • FIG. 1 is a diagram illustrating a configuration example of a computer system according to a first embodiment.
  • 3 is a diagram illustrating an example of a host physical address space of a memory of a server module according to Embodiment 1.
  • 6 is a diagram illustrating an example of characteristic management information according to the first embodiment.
  • FIG. 6 is a diagram illustrating an example of LU allocation management information according to Embodiment 1.
  • FIG. It is a figure which shows an example of the monitoring policy management information of Example 1.
  • FIG. It is a sequence diagram explaining the flow of the initialization process in the computer system of Example 1.
  • FIG. 7 is a flowchart illustrating an example of a mode change determination process executed by the management server according to the first embodiment.
  • 6 is a flowchart illustrating an example of a data storage process executed by the hypervisor according to the first embodiment.
  • 6 is a flowchart illustrating an example of a memory access monitoring process executed by the hypervisor according to the first embodiment.
  • FIG. 1 is a diagram illustrating a configuration example of a computer system according to the first embodiment.
  • the computer system shown in FIG. 1 includes a management server 100 and a server device 10.
  • the management server 100 is connected to the server device 10 directly or via a network.
  • WAN Wide Area Network
  • LAN Local Area Network
  • the present embodiment is not limited to the type of network.
  • the server apparatus 10 includes a plurality of server modules 101, a plurality of server modules 102, and a cache memory system 103.
  • the plurality of server modules 101 are connected to the cache memory system 103 via, for example, an interface compliant with the PCI Express connection standard.
  • the plurality of server modules 101 and the plurality of server modules 102 are connected to other server modules 101 and 102 directly or via a network.
  • the server module 101 includes a processor 130, a memory 131, and a connection interface 132.
  • the server module 102 also includes a processor 130, a memory 131, a connection interface 132, and a storage device 133.
  • the server modules 101 and 102 may have hardware other than the hardware described above.
  • the processor 130 executes a program stored in the memory 131.
  • a predetermined function can be realized on the server module 101 by the processor 130 executing the program.
  • a program for realizing the function is being executed by the processor 130.
  • the memory 131 stores a program executed by the processor 130 and information necessary for executing the program.
  • the memory 131 includes a work area. The logical configuration in the memory 131 will be described later.
  • connection interface 132 is a device for connecting to an external device.
  • FC Fiber Channel
  • NIC Network Interface Card
  • the storage device 133 is a storage device that stores data permanently.
  • the storage device 133 may be, for example, an HDD (Hard Disk Drive), an SSD (Solid State Drive), or the like. Note that the present embodiment is not limited to the type of the storage device 133.
  • the server module 101 is used as a server that allocates computer resources to the VM 141 that executes a predetermined application.
  • the server module 102 is used as a storage server that provides a large-capacity storage area to the VM 141.
  • the cache memory system 103 provides a large-capacity cache 160 (buffer area) used by the server module 101.
  • the cache memory system 103 includes a nonvolatile memory (nonvolatile storage element) such as a flash memory.
  • the cache memory system 103 includes a controller (not shown) for controlling the nonvolatile memory.
  • the cache 160 is a storage area for temporarily storing data.
  • the cache 160 is used when data stored in the server module 102 is temporarily stored.
  • the memory 131 of the server module 101 stores a program for realizing the hypervisor 140 as a virtualization control unit.
  • the memory 131 includes an in-memory database 144.
  • the hypervisor 140 generates one or more VMs 141 by dividing the computer resources of the server module 101, and manages the VMs 141.
  • the present invention is not limited to the computer resource dividing method.
  • the hypervisor 140 has map information for managing the correspondence between the host physical address space of the memory 131 and the guest physical address space of the virtual memory allocated to the VM 141. Since the map information is publicly known, detailed description thereof is omitted.
  • the hypervisor 140 of this embodiment analyzes access from the OS 142 to the in-memory database 144 and executes cache control using the cache 160 based on the analysis result.
  • the hypervisor 140 has a function of controlling a device driver for operating the cache memory system 103.
  • the hypervisor 140 executes cache control using the cache memory system 103 using the function.
  • the VM 141 is a virtual computer composed of virtual computer resources.
  • the OS 142 runs on the VM 141, and the application 143 is executed on the OS 142.
  • the OS 142 provides a function for controlling the VM 141, controls data transfer between the VM 141 and the storage area (logical device) provided by the server module 102, and provides a function between the VM 141 and the in-memory database 144. Control data transfer.
  • the OS 142 has map information for managing the correspondence between the guest physical address space of the virtual memory allocated to the VM 141 and the guest virtual address space provided to the application 143. Since the map information is publicly known, detailed description thereof is omitted.
  • This embodiment is not limited to the types of OS 142 and application 143. However, one of the OS 142 and the application 143 has a function of managing the in-memory database 144.
  • the in-memory database 144 is a database configured using the storage area of the memory 131.
  • the in-memory database 144 is configured from the memory 131 of one server module 101.
  • the in-memory database 144 may be configured using the memories 131 of the plurality of server modules 101.
  • the memory 131 of the server module 102 stores a program for realizing the storage OS 150.
  • the storage OS 150 controls the server module 102.
  • a RAID volume is configured using a plurality of storage apparatuses 133.
  • the storage OS 150 generates a plurality of LUs (Logical Units) by logically dividing the RAID volume.
  • the storage OS 150 provides one or more logical devices to which one or more LUs are assigned to the VM 141. The above is the description of the logical configuration of the memory 131 of the server module 102.
  • Management server 100 controls server device 10.
  • the management server 100 of this embodiment controls storage of data in the cache 160 in cooperation with the hypervisor 140.
  • the management server 100 includes a processor 110, a memory 111, and a connection interface 112.
  • the processor 110, the memory 111, and the connection interface 112 are the same as the processor 130, the memory 131, and the connection interface 132.
  • the memory 111 stores a program for realizing the policy setting unit 120, characteristic management information 121, and LU allocation management information 122.
  • the policy setting unit 120 sets a control policy for controlling storage of data in the cache 160 in cooperation with the hypervisor 140.
  • the characteristic management information 121 is information for managing the characteristics of data handled by the application 143, the execution schedule, and the like.
  • the LU allocation management information 122 is information for managing the correspondence relationship between the LU provided by the server module 102 and the VM 141 that can access the LU.
  • FIG. 2 is a diagram illustrating an example of the host physical address space of the memory 131 of the server module 101 according to the first embodiment.
  • the host physical address space is managed by the hypervisor 140.
  • the hypervisor 140 reserves a part of the storage area of the memory 131 as a storage area for the hypervisor 140.
  • the hypervisor 140 reserves a part of the storage area of the memory 131 as a virtual memory, and allocates the storage area to the VM 141. Further, the hypervisor 140 reserves a part of the storage area of the memory 131 as the detection data area 210.
  • the hypervisor 140 In the storage area for the hypervisor 140, a program for realizing the hypervisor 140 is stored.
  • the hypervisor 140 according to the present embodiment includes a memory access monitoring unit 200 and an IO request issuing unit 201, and holds monitoring policy management information 202.
  • the monitoring policy management information 202 may be included in the hypervisor 140 or may not be included in the hypervisor 140. When the monitoring policy management information 202 is not included in the hypervisor 140, the monitoring policy management information 202 is stored in the storage area for the hypervisor 140.
  • the memory access monitoring unit 200 monitors access from the OS 142 to the in-memory database 144 based on the monitoring policy management information 202.
  • the IO request issuing unit 201 issues an IO request for acquiring data to be stored in the cache 160 based on an instruction from the memory access monitoring unit 200.
  • the monitoring policy management information 202 stores a monitoring policy for monitoring memory access from the OS 142 to the in-memory database 144.
  • the storage area of the virtual memory allocated to the VM 141 includes an OS 142, an application 143, and an in-memory database 144.
  • the detection data area 210 is a storage area for storing data related to a trigger for reading data from the server module 102. Note that the hypervisor 140 hides the detection data area 210 from the OS 142. The OS 142 recognizes the detection data area 210 as a part of the in-memory database 144.
  • FIG. 3 is a diagram illustrating an example of the characteristic management information 121 according to the first embodiment.
  • the property management information 121 includes a plurality of entries including ID 301, AP type 302, processing data 303, trigger 304, property 305, and acquisition policy 306.
  • One entry indicates characteristic information of an arbitrary application.
  • one or more entries are registered in the characteristic management information 121 for one application 143.
  • ID 301 is an identifier for uniquely identifying an entry of the characteristic management information 121.
  • the AP type 302 is identification information of the application 143. In the AP type 302, the name and identification number of the application 143 are stored.
  • the processing data 303 is data identification information used by the application 143.
  • the trigger 304 is information indicating a trigger for reading data from the server module 102.
  • a characteristic 305 is information indicating characteristics such as data access characteristics and an execution schedule.
  • the acquisition policy 306 is a policy indicating a method for reading data from the server module 102.
  • the characteristic management information 121 may be generated based on the execution result by executing the application 143 on the test system.
  • FIG. 4 is a diagram illustrating an example of the LU allocation management information 122 according to the first embodiment.
  • the LU allocation management information 122 includes a plurality of entries including a server ID 401, LU_ID 402, VM_ID 403, and data 404.
  • the server ID 401 is an identifier for uniquely identifying the server module 102 that provides the LU.
  • the LU_ID 402 is an identifier for uniquely identifying an LU provided by the server module 102.
  • the VM_ID 403 is an identifier of the VM 141 that can access the LU.
  • Data 404 is identification information of data stored in the LU.
  • the information stored in the LU allocation management information 122 may be generated based on information acquired from the server module 102 included in the server device 10 or manually input by the administrator.
  • FIG. 5 is a diagram illustrating an example of the monitoring policy management information 202 according to the first embodiment.
  • the monitoring policy management information 202 includes a plurality of entries including the guest physical address 501, the acquisition data 502, the acquisition destination 503, and the acquisition policy 504. One entry indicates one monitoring policy.
  • the guest physical address 501 is an address of the guest physical memory space used when the OS 142 accesses the in-memory database 144.
  • the acquired data 502 is identification information of data stored in the cache 160 when a memory access including an address corresponding to the guest physical address 501 is detected.
  • the acquired data 502 stores the name of the data to be acquired, the name of the storage area in which the acquired data is stored, the address of the storage area, and the like.
  • the acquisition source 503 is identification information of the server module 102 from which data corresponding to the acquisition data 502 is acquired.
  • the acquisition policy 504 is the same as the acquisition policy 306.
  • FIG. 6 is a sequence diagram illustrating the flow of the initial setting process in the computer system according to the first embodiment.
  • the initial setting process is executed when a part of data used by the application 143 executed on an arbitrary OS 142 is stored in the in-memory database 144.
  • the management server 100, the hypervisor 140, and the OS 142 cooperate to execute an initial setting process.
  • the management server 100 receives a data storage request from the application 143 via the OS 142, the management server 100 starts an initial setting process.
  • a method for detecting a data storage request a method in which the hypervisor 140 provides an interface for inputting a data storage request to the in-memory database 144 to the OS 142 can be considered.
  • the hypervisor 140 can detect a data storage request by detecting an input through the interface.
  • the hypervisor 140 acquires the type of the application 143, identification information of stored data, and the like from the OS 142 via the interface.
  • the management server 100 transmits a data storage instruction to the OS 142 via the hypervisor 140 (step S600).
  • step S601 When the OS 142 receives a data storage instruction via the hypervisor 140, the OS 142 cooperates with the hypervisor 140 to execute a data storage process for storing data in a predetermined data unit in the in-memory database 144 (step S601). In this embodiment, it is assumed that data is stored in block units or record units. Details of the data storage process will be described with reference to FIG.
  • the OS 142 transmits the data storage result to the management server 100 via the hypervisor 140 (step S602).
  • the data storage result includes the identification information of the stored data and the identification information of the data to be stored next.
  • the management server 100 executes a mode change determination process based on the data storage result and the characteristic management information 121 (step S603).
  • the mode change determination process is a process for determining whether or not to change the mode for controlling the storage destination of the next stored data. Details of the mode change determination process will be described with reference to FIG.
  • the normal mode is a mode for storing data in the in-memory database 144 in the virtual memory.
  • the registration mode is a mode for storing data in the detection data area 210. It is assumed that the normal mode is set as the initial mode.
  • step S603 it is assumed that the management server 100 determines to change from the normal mode to the registration mode.
  • the management server 100 transmits a data storage instruction including a mode change instruction to the OS 142 via the hypervisor 140 (step S604).
  • the hypervisor 140 When the hypervisor 140 detects a data storage instruction including a mode change instruction, the hypervisor 140 changes from the normal mode to the registration mode (step S605).
  • the OS 142 receives a data storage instruction via the hypervisor 140, the OS 142 executes data storage processing in cooperation with the hypervisor 140 (step S606).
  • the hypervisor 140 changes from the registration mode to the normal mode (step S607).
  • the OS 142 transmits the data storage result to the management server 100 via the hypervisor 140 (step S608).
  • the management server 100 executes a mode change determination process based on the data storage result and the characteristic management information 121 (step S609).
  • the OS 142 transmits a completion notification to the management server 100 via the hypervisor 140 (step S610).
  • data for detecting a trigger for reading data from the server module 102 is stored in the detection data area 210, and the monitoring policy management information 202 is generated.
  • FIG. 7 is a flowchart illustrating an example of the mode change determination process executed by the management server 100 according to the first embodiment.
  • step S700 When the management server 100 detects a data storage request, the management server 100 starts a mode change determination process (step S700).
  • the management server 100 determines whether or not a completion notification has been received from the OS 142 (step S701).
  • the management server 100 determines whether a data storage result has been received from the OS 142 (step S702).
  • the management server 100 When it is determined that the data storage result has not been received from the OS 142, the management server 100 returns to step S702 and executes the same processing.
  • the management server 100 When it is determined that the data storage result has been received from the OS 142, the management server 100 refers to the characteristic management information 121 and determines whether or not the mode needs to be changed (step S703). Specifically, the following processing is executed.
  • the policy setting unit 120 refers to the characteristic management information 121 and searches for an entry whose AP type 302 matches the identification information of the application 143 included in the data storage request. If there is no corresponding entry, the policy setting unit 120 determines that there is no need to change the mode.
  • the policy setting unit 120 refers to the trigger 304 of the entry and determines whether or not the mode needs to be changed.
  • the policy setting unit 120 determines whether or not the record stored next matches the record set in the trigger 304. When the next stored record matches the record set in the trigger 304, the policy setting unit 120 determines that the mode needs to be changed.
  • the policy setting unit 120 determines whether or not the file is the first data storage request set in the trigger 304. If it is the first data storage request of the file set in the trigger 304, the policy setting unit 120 determines that the mode needs to be changed.
  • the management server 100 transmits a data storage instruction including a mode change instruction to the OS 142 (step S704). Thereafter, the management server 100 returns to step S701 and executes similar processing. In step S704, the following processing is executed.
  • the policy setting unit 120 acquires the acquisition policy stored in the acquisition policy 306 of the entry retrieved from the characteristic management information 121, and specifies the data to be read based on the processing data 303 and the characteristic 305 of the entry. .
  • the policy setting unit 120 refers to the LU assignment management information 122 and searches the data 404 for an entry including data to be read.
  • the policy setting unit 120 acquires the LU_ID 402 of the searched entry as the identifier of the LU that stores the data to be read, and acquires the server ID 401 of the searched entry as the identifier of the server module 102 that provides the LU.
  • the policy setting unit 120 generates a mode change instruction including an acquisition policy, identification information of data to be read, an LU identifier, an identifier of the server module 102 that provides the LU, and a mode change command.
  • the management server 100 transmits a data storage instruction to the OS 142 (step S705). Thereafter, the management server 100 returns to step S701 and executes similar processing.
  • Step S701 when it is determined that the completion notification is received from the OS 142, the management server 100 ends the mode change determination process.
  • FIG. 8 is a flowchart illustrating an example of a data storage process executed by the hypervisor 140 according to the first embodiment.
  • step S800 When the hypervisor 140 receives a data storage instruction (step S800), the hypervisor 140 starts a data storage process. The hypervisor 140 transmits a data storage instruction to the OS 142.
  • the hypervisor 140 determines whether or not a mode change instruction is included in the data storage instruction (step S801).
  • the hypervisor 140 changes the mapping destination from the storage area allocated to the VM 141 to the detection data area 210 (step S802). That is, the hypervisor 140 changes from the normal mode to the registration mode.
  • the hypervisor 140 When the hypervisor 140 receives data to be stored in the in-memory database 144 from the OS 142, the hypervisor 140 stores the data in the detection data area 210 (step S803).
  • the hypervisor 140 associates the guest physical address, which is the address of the virtual memory managed by the OS 142, with the host physical address, which is the address of the detection data area 210, and registers it in the map information.
  • the hypervisor 140 changes the mapping destination from the detection data area 210 to the storage area allocated to the VM 141 (step S804). That is, the hypervisor 140 changes from the registration mode to the normal mode.
  • the hypervisor 140 registers an entry in the monitoring policy management information 202 (step S805). Thereafter, the hypervisor 140 ends the data storage process. In step S805, the following processing is executed.
  • the hypervisor 140 adds one entry to the monitoring policy management information 202, and sets the guest physical address on the virtual memory in which data is stored in step S703, to the guest physical address 501 of the entry.
  • the hypervisor 140 sets the identification information of the data to be read included in the mode change instruction in the acquired data 502 of the added entry. Further, the hypervisor 140 sets the identifier of the LU and the identifier of the server module 102 included in the mode change instruction in the acquisition destination 503 of the added entry. Further, the hypervisor 140 sets the acquisition policy included in the mode change instruction in the acquisition policy 504 of the added entry. The above is the description of the process in step S805.
  • step S801 If it is determined in step S801 that the data storage instruction does not include the mode change instruction, the hypervisor 140 stores the data to be stored in the in-memory database 144 received from the OS 142 in the storage area allocated as the virtual memory ( Step S806). Thereafter, the hypervisor 140 ends the data storage process.
  • the hypervisor 140 associates the guest physical address, which is the address of the virtual memory managed by the OS 142, with the host physical address, which is the address of the virtual memory on the physical memory, and registers it in the map information.
  • FIG. 9 is a flowchart illustrating an example of the memory access monitoring process executed by the hypervisor 140 according to the first embodiment.
  • the hypervisor 140 starts memory access monitoring processing after the application 143 starts processing using the in-memory database 144.
  • the hypervisor 140 detects memory access to the virtual memory (step S900).
  • the hypervisor 140 emulates memory access to the detected virtual memory (step S901).
  • the hypervisor 140 accesses the storage area allocated to the virtual memory and outputs the access result to the OS 142. Since memory access emulation is a known technique, detailed description thereof is omitted.
  • the hypervisor 140 refers to the monitoring policy management information 202 and determines whether there is a monitoring policy corresponding to the detected memory access to the virtual memory (step S902).
  • the memory access monitoring unit 200 determines whether there is an entry in which the guest physical address 501 matches the guest physical address included in the memory access to the virtual memory. When the corresponding entry exists, the memory access monitoring unit 200 determines that there is a monitoring policy corresponding to the detected memory access to the virtual memory.
  • the hypervisor 140 When it is determined that there is no monitoring policy corresponding to the memory access to the detected virtual memory, the hypervisor 140 returns to step S900 and executes the same processing.
  • the hypervisor 140 If it is determined that there is a monitoring policy corresponding to the detected memory access to the virtual memory, the hypervisor 140 generates an IO request for acquiring data to be read from the server module 102 based on the monitoring policy. Then, the generated IO request is transmitted (step S903). Specifically, the following processing is executed.
  • the IO request issuing unit 201 includes the acquired data 502 of the entry corresponding to the memory access in the IO request as an identifier of data to be read.
  • the IO request issuing unit 201 includes the identifier of the LU included in the acquisition destination 503 of the entry corresponding to the memory access in the IO request as the identifier of the LU that stores the data to be read.
  • the IO request issuing unit 201 includes the identification information of the OS 142 that issued the memory access to the virtual memory as the IO request transmission source in the IO request. Note that the identification information of the VM 141 may be included instead of the identification information of the OS 142.
  • the IO request issuing unit 201 transmits the generated IO request to a predetermined server module 102 based on the identifier of the server module 102 stored in the acquisition destination 503 of the entry corresponding to the memory access.
  • the IO request issuing unit 201 generates an IO request at a predetermined timing in accordance with the acquisition policy 504 for an entry corresponding to the memory access, and transmits the IO request at a predetermined timing.
  • the IO request issuing unit 201 generates an IO request for reading 200 MB of data from the file B every 100 ms, and the generated IO A request is transmitted to the server 1.
  • the IO request issuing unit 201 generates an IO request for reading 500 MB of data from the file C every 1 ms, and the generated IO request is sent to the server. 1 to send.
  • the hypervisor 140 stores the data acquired from the server module 102 by the IO request in the cache 160 of the cache memory system 103.
  • the above is the description of the process in step S903.
  • the hypervisor 140 monitors the memory access, and stores data in the cache memory system 103 in accordance with the characteristics (behavior) and execution schedule of the application 143. Can be read out. Therefore, the storage area of the cache memory system 103 can be used effectively and the processing performance of the application 143 can be improved.
  • Modification 1 When the server module 102 includes a cache device for caching, data hierarchy control may be performed based on an IO request issued by the hypervisor 140.
  • step S903 the IO request issuing unit 201 includes an instruction or flag instructing hierarchical control in the IO request.
  • the server module 102 executes the hierarchical control process in cooperation with the hypervisor 140. For example, the following processing is executed.
  • the server module 102 inquires of the hypervisor 140 whether the data to be read can be stored in the cache 160 of the cache memory system 103.
  • the server module 102 When the server module 102 receives a response indicating that the data to be read can be stored in the cache 160, the server module 102 transmits the data to be read to the hypervisor 140.
  • the server module 102 When the server module 102 receives a response indicating that the data to be read cannot be stored in the cache 160, the server module 102 reads the data to be read from the storage device 133 and stores the data in the cache device. As a result, the access performance for the data to be read can be improved.
  • Modification 2 When the in-memory database 144 using the memories 131 of the plurality of server modules 101 is configured, the following processing is executed.
  • the management server 100 identifies a plurality of server modules 101 having the memory 131 constituting the in-memory database 144, and transmits a data storage instruction to the hypervisor 140 on each identified server module 101.
  • Each hypervisor 140 switches the mode from the normal mode to the registration mode in order to receive the data storage instruction.
  • the monitoring policy management information 202 is generated regardless of the data stored in the in-memory database 144 of any memory 131.
  • Each hypervisor 140 can execute the same processing as in the first embodiment by monitoring memory access to the in-memory database 144 based on the monitoring policy management information 202.
  • this invention is not limited to the above-mentioned Example, Various modifications are included. Further, for example, the above-described embodiments are described in detail for easy understanding of the present invention, and are not necessarily limited to those provided with all the described configurations. Further, a part of the configuration of each embodiment can be added to, deleted from, or replaced with another configuration.
  • each of the above-described configurations, functions, processing units, processing means, and the like may be realized by hardware by designing a part or all of them with, for example, an integrated circuit.
  • the present invention can also be realized by software program codes that implement the functions of the embodiments.
  • a storage medium in which the program code is recorded is provided to the computer, and a processor included in the computer reads the program code stored in the storage medium.
  • the program code itself read from the storage medium realizes the functions of the above-described embodiments, and the program code itself and the storage medium storing it constitute the present invention.
  • Examples of storage media for supplying such program codes include flexible disks, CD-ROMs, DVD-ROMs, hard disks, SSDs, optical disks, magneto-optical disks, CD-Rs, magnetic tapes, and nonvolatile memory cards.
  • ROM is used.
  • program code for realizing the functions described in this embodiment can be implemented by a wide range of programs or script languages such as assembler, C / C ++, Perl, Shell, PHP, Java, and the like.
  • the program code is stored in a storage means such as a hard disk or memory of a computer or a storage medium such as a CD-RW or CD-R.
  • a processor included in the computer may read and execute the program code stored in the storage unit or the storage medium.
  • control lines and information lines indicate those that are considered necessary for the explanation, and do not necessarily indicate all the control lines and information lines on the product. All the components may be connected to each other.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

アプリケーションを実行するVMが稼動する業務サーバ、及び記憶サーバを備える計算機システムであって、業務サーバはキャッシュデバイスを有し、VM上で実行されるアプリケーションは、当該VMに割り当てられる仮想メモリを用いて構築されるデータベースを用いて処理を実行し、業務サーバは仮想化制御部を有し、仮想化制御部は、仮想メモリの物理アドレス、及び記憶サーバからのデータの読出方法を示す取得ポリシを含む監視ポリシを管理する監視ポリシ管理情報を有し、メモリアクセスを監視するメモリアクセス監視部と、IOリクエストを生成するIOリクエスト発行部と、を有し、メモリアクセス監視部は、監視ポリシ管理情報に登録された仮想メモリの物理アドレスを含むメモリアクセスを検出した場合、IOリクエスト発行部にIOリクエストの生成を指示する。

Description

計算機システム、キャッシュ制御方法、及び計算機
 本発明は、インメモリデータベースを用いた処理におけるキャッシュ制御に関する。
 近年、Flashメモリのような不揮発性メモリ(NVM:Non Volatile Memory)が様々な電子機器に用いられる。不揮発性メモリは、HDD(Hard Disk Drive)のように機械的動作を伴わないため、HDDに比べ高速なアクセスが可能である。
 そのため、サーバ及びストレージシステム等高速なデータアクセスが必要とされるエンタープライズ用途にも用いられる。特に、サーバに搭載可能な不揮発性メモリは安価になっているため、広く普及している。
 従来技術として、Flashメモリをメインメモリとは異なるキャッシュ用メモリとして用いるシステムが知られている(例えば、特許文献1参照)。この場合、サーバ上で稼動するOS等に含まれるキャッシュドライバが、データのアクセス特性(例えば、アクセス頻度)に基づいて、Flashメモリにキャッシュデータを格納し、また、Flashメモリからキャッシュデータを追い出す。これによって、高速なデータアクセスを実現することができる。
 また、従来技術として、ストレージシステムでは、アクセス性能が高い記憶媒体とアクセス性能が低い記憶媒体とから階層的な記憶領域を構成し、データのアクセス特性に基づいて、データを格納する記憶領域を変更する技術が知られている(例えば、特許文献2参照)。
米国特許出願公開第2009/0024793号明細書 特開2000-293317号公報
 近年、高速な解析等を目的としてインメモリデータベースの利用が広まっている。ビッグデータ等の解析を行う場合、インメモリデータベースに全てのデータを格納できない場合がある。したがって、必要に応じてストレージシステムにアクセスする必要がある。しかし、ストレージシステムのアクセスに伴う遅延等が発生し、処理性能が低下するという問題がある。
 これを解決するために、ストレージシステムから予めデータを読み出し、キャッシュメモリにデータを格納する方法が考えられる。しかし、仮想化技術を用いたインメモリデータベースでは、以下のような課題が発生する。
 (1)ハイパバイザ等の仮想化制御部に含まれるキャッシュドライバは、LRU等のキャッシュ制御アルゴリズムに基づいて、キャッシュメモリに格納されるデータを制御する。しかし、キャッシュドライバは、アプリケーションのアクセス特性及び業務のスケジュールを考慮して、データを制御できない。そのため、不要なデータがキャッシュメモリに格納され、又は、必要なデータがキャッシュメモリに格納されないという問題がある。
 (2)ハイパバイザは、仮想計算機上のアプリケーションに関する情報を保持していない。また、メモリアクセスには、アプリケーションに関する情報は含まれない。そのため、ハイパバイザは、インメモリデータベースへのメモリアクセスからアプリケーションのアクセス特性等を把握することができない。
 本発明は、仮想化技術を用いたインメモリデータベースにおいて、ハイパバイザが、インメモリデータベースへのメモリアクセスからアプリケーションのアクセス特性等に応じたキャッシュ制御を実現するシステム、方法、及び装置を提供する。
 本願において開示される発明の代表的な一例を示せば以下の通りである。すなわち、所定の処理を実行するアプリケーションを実行する仮想計算機が稼動する業務サーバ、及び前記アプリケーションが使用するデータを格納する記憶サーバを備える計算機システムであって、前記業務サーバは、第1のプロセッサ、前記第1のプロセッサに接続される第1のメモリ、前記第1のプロセッサに接続され、一時的にデータを格納するキャッシュが設定される第1のキャッシュデバイス、及び前記第1のプロセッサに接続され、他の装置と接続するための第1のインタフェースを有し、前記記憶サーバは、第2のプロセッサ、前記第2のプロセッサに接続される第2のメモリ、前記第2のプロセッサに接続され、他の装置と接続するための第2のインタフェース、及び複数の記憶装置を有し、前記仮想計算機上で実行される前記アプリケーションは、当該仮想計算機に割り当てられる仮想メモリを用いて構築されるデータベースを用いて所定の処理を実行し、前記業務サーバは、前記仮想計算機を管理し、前記キャッシュを制御する仮想化制御部を有し、前記仮想化制御部は、前記仮想計算機が管理する前記仮想メモリの物理アドレス、及び前記記憶サーバからの前記データの読出方法を示す取得ポリシを含む監視ポリシを管理する監視ポリシ管理情報を保持し、前記データベースに対するメモリアクセスを監視するメモリアクセス監視部と、前記記憶サーバから所定のデータを取得するためのIOリクエストを生成するIOリクエスト発行部と、を有し、前記メモリアクセス監視部は、前記監視ポリシ管理情報に登録された前記仮想メモリの物理アドレスを含む前記メモリアクセスを検出した場合、前記IOリクエスト発行部に前記IOリクエストの生成を指示することを特徴とする。
 本発明によれば、仮想化制御部(ハイパバイザ)は、メモリアクセスの監視結果に基づいてIOリクエストを発行することによって、アプリケーションのアクセス特性等に応じたキャッシュ制御を実行できる。上記した以外の課題、構成及び効果は、以下の実施形態の説明により明らかにされる。
実施例1の計算機システムの構成例を示す図である。 実施例1のサーバモジュールのメモリのホスト物理アドレス空間の一例を示す図である。 実施例1の特性管理情報の一例を示す図である。 実施例1のLU割当管理情報の一例を示す図である。 実施例1の監視ポリシ管理情報の一例を示す図である。 実施例1の計算機システムにおける初期設定処理の流れを説明するシーケンス図である。 実施例1の管理サーバが実行するモード変更判定処理の一例を説明するフローチャートである。 実施例1のハイパバイザが実行するデータ格納処理の一例を説明するフローチャートである。 実施例1のハイパバイザが実行するメモリアクセス監視処理の一例を説明するフローチャートである。
 図1は、実施例1の計算機システムの構成例を示す図である。
 図1に示す計算機システムは、管理サーバ100及びサーバ装置10から構成される。管理サーバ100は、直接又はネットワークを介してサーバ装置10と接続する。ネットワークは、WAN(Wide Area Network)及びLAN(Local Area Network)等が考えられる。なお、本実施例は、ネットワークの種類に限定されない。
 サーバ装置10は、複数のサーバモジュール101、複数のサーバモジュール102及びキャッシュメモリシステム103を有する。複数のサーバモジュール101は、例えば、PCIExpressの接続規格に準拠したインタフェースを介してキャッシュメモリシステム103に接続する。また、複数のサーバモジュール101及び複数のサーバモジュール102は、直接又はネットワークを介した他のサーバモジュール101、102と接続する。
 サーバモジュール101は、プロセッサ130、メモリ131、及び接続インタフェース132を有する。また、サーバモジュール102は、プロセッサ130、メモリ131、接続インタフェース132、及びストレージ装置133を有する。なお、サーバモジュール101、102は、前述したハードウェア以外のハードウェアを有してもよい。
 プロセッサ130は、メモリ131に格納されるプログラムを実行する。プロセッサ130がプログラムを実行することによって、サーバモジュール101上で所定の機能を実現できる。以下の説明では、機能を主体に処理を説明する場合、プロセッサ130によって当該機能を実現するプログラムが実行されていることを示す。
 メモリ131は、プロセッサ130によって実行されるプログラム及び当該プログラムの実行に必要な情報を格納する。また、メモリ131は、ワークエリアを含む。メモリ131内の論理構成は後述する。
 接続インタフェース132は、外部装置と接続するためのデバイスである。例えば、FC(Fiber Channel)アダプタカード及びNIC(Network Interface Card)等が考えられる。
 ストレージ装置133は、データを永続的に格納する記憶装置である。ストレージ装置133は、例えば、HDD(Hark Disk Drive)及びSSD(Solid State Drive)等が考えられる。なお、本実施例はストレージ装置133の種類に限定されない。
 本実施例では、サーバモジュール101は、所定のアプリケーションを実行するVM141に計算機リソースを割り当てるサーバとして用いられる。また、サーバモジュール102は、VM141に大容量の記憶領域を提供する記憶サーバとして用いられる。
 キャッシュメモリシステム103は、サーバモジュール101が使用する大容量のキャッシュ160(バッファ領域)を提供する。キャッシュメモリシステム103は、フラッシュメモリ等の不揮発性メモリ(不揮発性の記憶素子)から構成される。なお、キャッシュメモリシステム103は、不揮発性メモリに対する制御を行うためのコントローラ(図示省略)を備える。
 キャッシュ160は、一時的にデータを格納する記憶領域である。本実施例では、キャッシュ160は、サーバモジュール102に格納されるデータを一時的に格納する場合に使用される。
 ここで、サーバモジュール101のメモリ131の論理構成について説明する。
 サーバモジュール101のメモリ131は、仮想化制御部としてハイパバイザ140を実現するプログラムを格納する。また、メモリ131は、インメモリデータベース144を含む。
 ハイパバイザ140は、サーバモジュール101の計算機リソースを分割することによって一つ以上のVM141を生成し、VM141を管理する。本発明は計算機リソースの分割方法に限定されない。ハイパバイザ140は、メモリ131のホスト物理アドレス空間とVM141に割り当てられた仮想メモリのゲスト物理アドレス空間との対応関係を管理するマップ情報を有する。当該マップ情報は、公知のものであるため詳細な説明は省略する。
 本実施例のハイパバイザ140は、OS142からインメモリデータベース144へのアクセスを解析し、解析結果に基づいてキャッシュ160を用いたキャッシュ制御を実行する。ハイパバイザ140は、キャッシュメモリシステム103を操作するためのデバイスドライバを制御する機能を有する。ハイパバイザ140は、当該機能を用いてキャッシュメモリシステム103を用いたキャッシュ制御を実行する。
 VM141は、仮想的な計算機リソースから構成される仮想計算機である。VM141上ではOS142が稼働し、また、OS142上ではアプリケーション143が実行される。
 OS142は、VM141を制御する機能を提供し、また、VM141とサーバモジュール102が提供する記憶領域(論理デバイス)との間のデータ転送を制御し、また、VM141とインメモリデータベース144との間のデータ転送を制御する。OS142は、VM141に割り当てられる仮想メモリのゲスト物理アドレス空間とアプリケーション143に提供されるゲスト仮想アドレス空間との対応関係を管理するマップ情報を有する。当該マップ情報は、公知のものであるため詳細な説明は省略する。
 本実施例は、OS142及びアプリケーション143の種類に限定されない。ただし、OS142及びアプリケーション143のいずれか一方は、インメモリデータベース144を管理する機能を有するものとする。
 インメモリデータベース144は、メモリ131の記憶領域を用いて構成されるデータベースである。実施例1では、一つのサーバモジュール101のメモリ131からインメモリデータベース144が構成されるものとする。なお、複数のサーバモジュール101のメモリ131を用いてインメモリデータベース144が構成されてもよい。
 以上がサーバモジュール101のメモリ131の論理構成の説明である。次に、サーバモジュール102のメモリ131の論理構成について説明する。
 サーバモジュール102のメモリ131は、ストレージ用OS150を実現するプログラムを格納する。
 ストレージ用OS150は、サーバモジュール102を制御する。本実施例では、複数のストレージ装置133を用いてRAIDボリュームが構成される。ストレージ用OS150は、RAIDボリュームを論理的に分割することによって、複数のLU(Logical Unit)を生成する。ストレージ用OS150は、VM141に一つ以上のLUが割り当てられた論理デバイスを一つ以上提供する。以上がサーバモジュール102のメモリ131の論理構成の説明である。
 管理サーバ100は、サーバ装置10を制御する。本実施例の管理サーバ100は、ハイパバイザ140と連携して、キャッシュ160へのデータの格納を制御する。
 管理サーバ100は、プロセッサ110、メモリ111、及び接続インタフェース112を有する。プロセッサ110、メモリ111、及び接続インタフェース112は、プロセッサ130、メモリ131、及び接続インタフェース132と同一のものである。
 メモリ111は、ポリシ設定部120を実現するプログラム、並びに、特性管理情報121及びLU割当管理情報122を格納する。
 ポリシ設定部120は、ハイパバイザ140と連携して、キャッシュ160へのデータの格納を制御するための制御ポリシを設定する。特性管理情報121は、アプリケーション143が扱うデータの特性、及び実行スケジュール等を管理する情報である。LU割当管理情報122は、サーバモジュール102が提供するLU、及びLUにアクセス可能なVM141の対応関係を管理する情報である。
 特性管理情報121の詳細は、図3を用いて説明する。また、LU割当管理情報122の詳細は、図4を用いて説明する。
 図2は、実施例1のサーバモジュール101のメモリ131のホスト物理アドレス空間の一例を示す図である。
 ホスト物理アドレス空間は、ハイパバイザ140によって管理される。ハイパバイザ140は、メモリ131の記憶領域の一部を、ハイパバイザ140用の記憶領域として確保する。また、ハイパバイザ140は、メモリ131の記憶領域の一部を、仮想メモリとして確保し、当該記憶領域をVM141に割り当てる。さらに、ハイパバイザ140は、メモリ131の記憶領域の一部を、検出用データ領域210として確保する。
 ハイパバイザ140用の記憶領域は、ハイパバイザ140を実現するプログラムが格納される。本実施例のハイパバイザ140は、メモリアクセス監視部200及びIOリクエスト発行部201を含み、また、監視ポリシ管理情報202を保持する。なお、監視ポリシ管理情報202は、ハイパバイザ140に含まれてもよいし、ハイパバイザ140に含まれなくてもよい。ハイパバイザ140に監視ポリシ管理情報202が含まれない場合、ハイパバイザ140用の記憶領域に監視ポリシ管理情報202が格納される。
 メモリアクセス監視部200は、監視ポリシ管理情報202に基づいてOS142からインメモリデータベース144へのアクセスを監視する。
 IOリクエスト発行部201は、メモリアクセス監視部200の指示に基づいて、キャッシュ160に格納するデータを取得するためのIOリクエストを発行する。
 監視ポリシ管理情報202は、OS142からインメモリデータベース144へのメモリアクセスを監視するための監視ポリシを格納する。
 VM141に割り当てられた仮想メモリの記憶領域は、OS142、アプリケーション143、及びインメモリデータベース144を含む。
 検出用データ領域210は、サーバモジュール102からデータを読み出すトリガに関連するデータを格納する記憶領域である。なお、ハイパバイザ140は、OS142に対して検出用データ領域210を隠蔽する。OS142は、インメモリデータベース144の一部として検出用データ領域210を認識する。
 図3は、実施例1の特性管理情報121の一例を示す図である。
 特性管理情報121は、ID301、AP種別302、処理データ303、トリガ304、特性305、及び取得ポリシ306を含むエントリを複数含む。一つのエントリが任意のアプリケーションの特性情報を示す。本実施例では、一つのアプリケーション143に対して、一つ以上のエントリが特性管理情報121に登録される。
 ID301は、特性管理情報121のエントリを一意に識別するための識別子である。AP種別302は、アプリケーション143の識別情報である。AP種別302には、アプリケーション143の名称及び識別番号等が格納される。
 処理データ303は、アプリケーション143が使用するデータの識別情報である。トリガ304は、サーバモジュール102からデータを読み出す契機を示す情報である。特性305は、データへのアクセス特性及び実行スケジュール等の特性を示す情報である。取得ポリシ306は、サーバモジュール102からのデータの読出方法を示すポリシである。
 なお、特性管理情報121は、テスト用のシステム上でアプリケーション143を実行し、当該実行結果に基づいて生成する方法が考えられる。
 図4は、実施例1のLU割当管理情報122の一例を示す図である。
 LU割当管理情報122は、サーバID401、LU_ID402、VM_ID403、及びデータ404を含むエントリを複数含む。
 サーバID401は、LUを提供するサーバモジュール102を一意に識別するための識別子である。LU_ID402は、サーバモジュール102が提供するLUを一意に識別するための識別子である。VM_ID403は、LUにアクセス可能なVM141の識別子である。データ404は、LUに格納されるデータの識別情報である。
 LU割当管理情報122に格納される情報は、サーバ装置10に含まれるサーバモジュール102から取得した情報に基づいて生成する方法、又は、管理者が手動で入力する方法が考えられる。
 図5は、実施例1の監視ポリシ管理情報202の一例を示す図である。
 監視ポリシ管理情報202は、ゲスト物理アドレス501、取得データ502、取得先503、及び取得ポリシ504を含むエントリを複数含む。一つのエントリが一つの監視ポリシを示す。
 ゲスト物理アドレス501は、OS142がインメモリデータベース144にアクセスする場合に使用するゲスト物理メモリ空間のアドレスである。取得データ502は、ゲスト物理アドレス501に対応するアドレスを含むメモリアクセスが検出された場合に、キャッシュ160に格納するデータの識別情報である。取得データ502には、取得するデータの名称、取得するデータが格納される記憶領域の名称、及び当該記憶領域のアドレス等が格納される。
 取得先503は、取得データ502に対応するデータの取得先のサーバモジュール102の識別情報である。取得ポリシ504は、取得ポリシ306と同一のものである。
 次に、具体的な処理について説明する。図6は、実施例1の計算機システムにおける初期設定処理の流れを説明するシーケンス図である。
 初期設定処理は、任意のOS142上で実行されるアプリケーション143が使用する一部のデータをインメモリデータベース144に格納する場合に実行される。
 管理サーバ100、ハイパバイザ140、及びOS142が連携して、初期設定処理が実行される。管理サーバ100は、アプリケーション143からOS142を介してデータの格納要求を受け付けた場合、初期設定処理を開始する。
 データの格納要求を検出する方法としては、ハイパバイザ140が、インメモリデータベース144へのデータの格納要求を入力するインタフェースをOS142に提供する方法が考えられる。ハイパバイザ140は、当該インタフェースを介した入力を検出することによって、データの格納要求を検出できる。ハイパバイザ140は、当該インタフェースを介して、アプリケーション143の種別及び格納するデータの識別情報等をOS142から取得するものとする。
 管理サーバ100は、ハイパバイザ140を介してOS142にデータ格納指示を送信する(ステップS600)。
 OS142は、ハイパバイザ140を介してデータ格納指示を受信した場合、ハイパバイザ140と連携して、所定のデータ単位のデータをインメモリデータベース144に格納するためのデータ格納処理を実行する(ステップS601)。本実施例では、ブロック単位、又はレコード単位にデータが格納されるものとする。なお、データ格納処理の詳細は、図8を用いて説明する。
 OS142は、データ格納処理が完了した場合、ハイパバイザ140を介して管理サーバ100にデータの格納結果を送信する(ステップS602)。データの格納結果には、格納されたデータの識別情報及び次に格納されるデータの識別情報が含まれる。
 管理サーバ100は、データの格納結果を受信した場合、当該データの格納結果及び特性管理情報121に基づいて、モード変更判定処理を実行する(ステップS603)。
 モード変更判定処理は、次に格納されるデータの格納先を制御するモードを変更するか否かを判定するための処理である。なお、モード変更判定処理の詳細は、図7を用いて説明する。
 本実施例では、通常モード及び登録用モードの二つのモードが存在する。通常モードは、仮想メモリ内のインメモリデータベース144にデータを格納するモードである。登録用モードは、検出用データ領域210にデータを格納するモードである。初期のモードは、通常モードが設定されているものとする。
 ステップS603では、管理サーバ100が、通常モードから登録用モードへ変更すると判定してものとする。
 管理サーバ100は、ハイパバイザ140を介してOS142にモードの変更指示を含むデータ格納指示を送信する(ステップS604)。
 ハイパバイザ140は、モードの変更指示を含むデータ格納指示を検出した場合、通常モードから登録用モードに変更する(ステップS605)。OS142は、ハイパバイザ140を介してデータ格納指示を受信した場合、ハイパバイザ140と連携して、データ格納処理を実行する(ステップS606)。
 データ格納処理が完了した後、ハイパバイザ140は、登録用モードから通常モードに変更する(ステップS607)。
 OS142は、データ格納処理が完了した場合、ハイパバイザ140を介して管理サーバ100にデータの格納結果を送信する(ステップS608)。
 管理サーバ100は、データの格納結果を受信した場合、当該データの格納結果及び特性管理情報121に基づいて、モード変更判定処理を実行する(ステップS609)。
 以下、全てのデータがインメモリデータベース144に格納されるまで同様の処理が実行される。
 OS142は、全てのデータがインメモリデータベース144に格納された場合、ハイパバイザ140を介して管理サーバ100に完了通知を送信する(ステップS610)。
 以上の処理によって、サーバモジュール102からデータを読み出すトリガを検出するためのデータが検出用データ領域210に格納され、また、監視ポリシ管理情報202が生成される。
 図7は、実施例1の管理サーバ100が実行するモード変更判定処理の一例を説明するフローチャートである。
 管理サーバ100は、データの格納要求を検出した場合、モード変更判定処理を開始する(ステップS700)。
 管理サーバ100は、OS142から完了通知を受信したか否かを判定する(ステップS701)。
 OS142から完了通知を受信していないと判定された場合、管理サーバ100は、OS142からデータの格納結果を受信したか否かを判定する(ステップS702)。
 OS142からデータの格納結果を受信していないと判定された場合、管理サーバ100は、ステップS702に戻り、同様の処理を実行する。
 OS142からデータの格納結果を受信したと判定された場合、管理サーバ100は、特性管理情報121を参照して、モードを変更する必要があるか否かを判定する(ステップS703)。具体的には、以下のような処理が実行される。
 ポリシ設定部120は、特性管理情報121を参照して、AP種別302がデータの格納要求に含まれるアプリケーション143の識別情報に一致するエントリを検索する。該当するエントリが存在しない場合、ポリシ設定部120は、モードを変更する必要がないと判定する。
 該当するエントリが存在する場合、ポリシ設定部120は、当該エントリのトリガ304を参照して、モードを変更する必要があるか否かを判定する。
 例えば、検索されたエントリがID301が「1」のエントリである場合、ポリシ設定部120は、次に格納されるレコードがトリガ304に設定されたレコードに一致するか否かを判定する。次に格納されるレコードがトリガ304に設定されたレコードに一致する場合、ポリシ設定部120は、モードを変更する必要があると判定する。
 例えば、検索されたエントリがID301が「2」のエントリである場合、ポリシ設定部120は、トリガ304に設定されたファイルの初めてのデータの格納要求であるか否かを判定する。トリガ304に設定されたファイルの初めてのデータの格納要求である場合、ポリシ設定部120は、モードを変更する必要があると判定する。
 以上がステップS703の処理の説明である。
 モードを変更する必要があると判定された場合、管理サーバ100は、モード変更指示を含むデータ格納指示をOS142に送信する(ステップS704)。その後、管理サーバ100は、ステップS701に戻り、同様の処理を実行する。ステップS704では、以下のような処理が実行される。
 ポリシ設定部120は、特性管理情報121から検索されたエントリの取得ポリシ306に格納される取得ポリシを取得し、また、当該エントリの処理データ303及び特性305に基づいて読出対象のデータを特定する。ポリシ設定部120は、LU割当管理情報122を参照し、データ404に読出対象のデータを含むエントリを検索する。
 ポリシ設定部120は、検索されたエントリのLU_ID402を読出対象のデータを格納するLUの識別子として取得し、また、検索されたエントリのサーバID401をLUを提供するサーバモジュール102の識別子として取得する。
 ポリシ設定部120は、取得ポリシ、読出対象のデータの識別情報、LUの識別子、LUを提供するサーバモジュール102の識別子、及びモードの変更命令を含むモード変更指示を生成する。
 モードを変更する必要がないと判定された場合、管理サーバ100は、データ格納指示をOS142に送信する(ステップS705)。その後、管理サーバ100は、ステップS701に戻り、同様の処理を実行する。
 ステップS701において、OS142から完了通知を受信したと判定された場合、管理サーバ100は、モード変更判定処理を終了する。
 図8は、実施例1のハイパバイザ140が実行するデータ格納処理の一例を説明するフローチャートである。
 ハイパバイザ140は、データ格納指示を受信した場合(ステップS800)、データ格納処理を開始する。ハイパバイザ140は、データ格納指示をOS142に送信する。
 ハイパバイザ140は、データ格納指示にモード変更指示が含まれるか否かを判定する(ステップS801)。
 データ格納指示にモード変更指示が含まれると判定された場合、ハイパバイザ140は、マッピング先をVM141に割り当てられる記憶領域から検出用データ領域210に変更する(ステップS802)。すなわち、ハイパバイザ140は、通常モードから登録用モードに変更する。
 ハイパバイザ140は、OS142からインメモリデータベース144に格納するデータを受信した場合、当該データを検出用データ領域210に格納する(ステップS803)。
 このとき、ハイパバイザ140は、OS142が管理する仮想メモリのアドレスであるゲスト物理アドレスと、検出用データ領域210のアドレスであるホスト物理アドレスとを対応付けて、マップ情報に登録する。
 ハイパバイザ140は、データが格納された後、マッピング先を検出用データ領域210からVM141に割り当てられる記憶領域に変更する(ステップS804)。すなわち、ハイパバイザ140は、登録用モードから通常モードに変更する。
 ハイパバイザ140は、監視ポリシ管理情報202にエントリを登録する(ステップS805)。その後、ハイパバイザ140は、データの格納処理を終了する。ステップS805では、以下のような処理が実行される。
 ハイパバイザ140は、監視ポリシ管理情報202にエントリを一つ追加し、当該エントリのゲスト物理アドレス501に、ステップS703においてデータが格納された仮想メモリ上のゲスト物理アドレスを設定する。
 ハイパバイザ140は、追加されたエントリの取得データ502に、モード変更指示に含まれる読出対象のデータの識別情報を設定する。また、ハイパバイザ140は、追加されたエントリの取得先503に、モード変更指示に含まれるLUの識別子及びサーバモジュール102の識別子を設定する。さらに、ハイパバイザ140は、追加されたエントリの取得ポリシ504に、モード変更指示に含まれる取得ポリシを設定する。以上がステップS805の処理の説明である。
 ステップS801において、データ格納指示にモード変更指示が含まれないと判定された場合、ハイパバイザ140は、OS142から受信したインメモリデータベース144に格納するデータを仮想メモリとして割り当てられた記憶領域に格納する(ステップS806)。その後、ハイパバイザ140は、データ格納処理を終了する。
 このとき、ハイパバイザ140は、OS142が管理する仮想メモリのアドレスであるゲスト物理アドレスと、仮想メモリの物理メモリ上のアドレスであるホスト物理アドレスとを対応付けて、マップ情報に登録する。
 以上が初期設定処理の説明である。次に、メモリアクセス監視処理について説明する。
 図9は、実施例1のハイパバイザ140が実行するメモリアクセス監視処理の一例を説明するフローチャートである。
 ハイパバイザ140は、アプリケーション143がインメモリデータベース144を用いた処理を開始した後、メモリアクセス監視処理を開始する。
 ハイパバイザ140は、仮想メモリへのメモリアクセスを検出する(ステップS900)。ハイパバイザ140は、検出された仮想メモリへのメモリアクセスをエミュレーションする(ステップS901)。これによって、ハイパバイザ140は、仮想メモリに割り当てられた記憶領域にアクセスし、アクセス結果をOS142に出力する。なお、メモリアクセスのエミュレーションは公知の技術であるため詳細な説明は省略する。
 ハイパバイザ140は、監視ポリシ管理情報202を参照して、検出された仮想メモリへのメモリアクセスに対応する監視ポリシが存在するか否かを判定する(ステップS902)。
 具体的には、メモリアクセス監視部200は、ゲスト物理アドレス501が仮想メモリへのメモリアクセスに含まれるゲスト物理アドレスに一致するエントリが存在するか否かを判定する。該当するエントリが存在する場合、メモリアクセス監視部200は、検出された仮想メモリへのメモリアクセスに対応する監視ポリシが存在すると判定する。
 検出された仮想メモリへのメモリアクセスに対応する監視ポリシが存在しないと判定された場合、ハイパバイザ140は、ステップS900に戻り、同様の処理を実行する。
 検出された仮想メモリへのメモリアクセスに対応する監視ポリシが存在すると判定された場合、ハイパバイザ140は、当該監視ポリシに基づいて、読出対象のデータをサーバモジュール102から取得するためのIOリクエストを生成し、生成されたIOリクエストを送信する(ステップS903)。具体的には、以下のような処理が実行される。
 IOリクエスト発行部201は、メモリアクセスに対応するエントリの取得データ502を読出対象のデータの識別子としてIOリクエストに含める。IOリクエスト発行部201は、メモリアクセスに対応するエントリの取得先503に含まれるLUの識別子を読出対象のデータを格納するLUの識別子としてIOリクエストに含める。IOリクエスト発行部201は、IOリクエストの送信元として仮想メモリへのメモリアクセスを発行したOS142の識別情報をIOリクエストに含める。なお、OS142の識別情報の代わりにVM141の識別情報が含まれてもよい。
 IOリクエスト発行部201は、メモリアクセスに対応するエントリの取得先503に格納されるサーバモジュール102の識別子に基づいて、所定のサーバモジュール102に生成されたIOリクエストを送信する。IOリクエスト発行部201は、メモリアクセスに対応するエントリの取得ポリシ504にしたがって、所定のタイミングでIOリクエストを生成し、所定のタイミングでIOリクエストを送信する。
 例えば、図5の監視ポリシ管理情報202の一番上のエントリの場合、IOリクエスト発行部201は、100ms毎に、ファイルBから200MBのデータを読み出すためのIOリクエストを生成し、生成されたIOリクエストをサーバ1に送信する。図5の監視ポリシ管理情報202の二番目のエントリの場合、IOリクエスト発行部201は、1ms毎に、ファイルCから500MBのデータを読み出すためのIOリクエストを生成し、生成されたIOリクエストをサーバ1に送信する。
 ハイパバイザ140は、IOリクエストによってサーバモジュール102から取得されたデータを、キャッシュメモリシステム103のキャッシュ160に格納する。以上がステップS903の処理の説明である。
 以上で説明したように、実施例1の計算機システムによれば、ハイパバイザ140は、メモリアクセスを監視することによって、アプリケーション143の特性(挙動)及び実行スケジュール等に合わせて、キャッシュメモリシステム103にデータを読み出すことができる。そのため、キャッシュメモリシステム103の記憶領域を有効に活用し、かつ、アプリケーション143の処理性能を向上することができる。
 (変形例1)
 なお、サーバモジュール102がキャッシュ用のキャッシュデバイスを備える場合、ハイパバイザ140が発行するIOリクエストに基づいて、データの階層制御を行ってもよい。
 この場合、ステップS903において、IOリクエスト発行部201は、階層制御を指示する命令又はフラグをIOリクエストに含める。
 サーバモジュール102は、当該IOリクエストを受け付けた場合、ハイパバイザ140と連携して、階層制御処理を実行する。例えば、以下のような処理が実行される。
 サーバモジュール102は、ハイパバイザ140にキャッシュメモリシステム103のキャッシュ160に読出対象のデータを格納できるか否かを問い合わせる。
 サーバモジュール102は、キャッシュ160に読出対象のデータを格納できる旨の応答を受信した場合、読出対象のデータをハイパバイザ140に送信する。
 サーバモジュール102は、キャッシュ160に読出対象のデータを格納できない旨の応答を受信した場合、読出対象のデータをストレージ装置133から読み出し、当該データをキャッシュデバイスに格納する。これによって、読出対象のデータに対するアクセス性能を高めることができる。
 (変形例2)
 複数のサーバモジュール101のメモリ131を用いたインメモリデータベース144が構成される場合、以下のような処理が実行される。
 管理サーバ100は、インメモリデータベース144を構成するメモリ131を有する複数のサーバモジュール101を特定し、特定された各サーバモジュール101上のハイパバイザ140に対してデータ格納指示を送信する。
 各ハイパバイザ140は、データ格納指示を受信するため、モードを通常モードから登録用モードに切り替える。これによって、どのメモリ131のインメモリデータベース144にデータが格納されても、監視ポリシ管理情報202が生成される。各ハイパバイザ140は、監視ポリシ管理情報202に基づいて、インメモリデータベース144へのメモリアクセスを監視することによって、実施例1と同様の処理を実行できる。
 なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。また、例えば、上記した実施例は本発明を分かりやすく説明するために構成を詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、各実施例の構成の一部について、他の構成に追加、削除、置換することが可能である。
 また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、本発明は、実施例の機能を実現するソフトウェアのプログラムコードによっても実現できる。この場合、プログラムコードを記録した記憶媒体をコンピュータに提供し、そのコンピュータが備えるプロセッサが記憶媒体に格納されたプログラムコードを読み出す。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施例の機能を実現することになり、そのプログラムコード自体、及びそれを記憶した記憶媒体は本発明を構成することになる。このようなプログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、CD-ROM、DVD-ROM、ハードディスク、SSD、光ディスク、光磁気ディスク、CD-R、磁気テープ、不揮発性のメモリカード、ROMなどが用いられる。
 また、本実施例に記載の機能を実現するプログラムコードは、例えば、アセンブラ、C/C++、perl、Shell、PHP、Java等の広範囲のプログラム又はスクリプト言語で実装できる。
 さらに、実施例の機能を実現するソフトウェアのプログラムコードを、ネットワークを介して配信することによって、それをコンピュータのハードディスクやメモリ等の記憶手段又はCD-RW、CD-R等の記憶媒体に格納し、コンピュータが備えるプロセッサが当該記憶手段や当該記憶媒体に格納されたプログラムコードを読み出して実行するようにしてもよい。
 上述の実施例において、制御線や情報線は、説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。全ての構成が相互に接続されていてもよい。

Claims (13)

  1.  所定の処理を実行するアプリケーションを実行する仮想計算機が稼動する業務サーバ、及び前記アプリケーションが使用するデータを格納する記憶サーバを備える計算機システムであって、
     前記業務サーバは、第1のプロセッサ、前記第1のプロセッサに接続される第1のメモリ、前記第1のプロセッサに接続され、一時的にデータを格納するキャッシュが設定される第1のキャッシュデバイス、及び前記第1のプロセッサに接続され、他の装置と接続するための第1のインタフェースを有し、
     前記記憶サーバは、第2のプロセッサ、前記第2のプロセッサに接続される第2のメモリ、前記第2のプロセッサに接続され、他の装置と接続するための第2のインタフェース、及び複数の記憶装置を有し、
     前記仮想計算機上で実行される前記アプリケーションは、当該仮想計算機に割り当てられる仮想メモリを用いて構築されるデータベースを用いて所定の処理を実行し、
     前記業務サーバは、前記仮想計算機を管理し、前記キャッシュを制御する仮想化制御部を有し、
     前記仮想化制御部は、
     前記仮想計算機が管理する前記仮想メモリの物理アドレス、及び前記記憶サーバからの前記データの読出方法を示す取得ポリシを含む監視ポリシを管理する監視ポリシ管理情報を保持し、
     前記データベースに対するメモリアクセスを監視するメモリアクセス監視部と、前記記憶サーバから所定のデータを取得するためのIOリクエストを生成するIOリクエスト発行部と、を有し、
     前記メモリアクセス監視部は、前記監視ポリシ管理情報に登録された前記仮想メモリの物理アドレスを含む前記メモリアクセスを検出した場合、前記IOリクエスト発行部に前記IOリクエストの生成を指示することを特徴とする計算機システム。
  2.  請求項1に記載の計算機システムであって、
     前記記憶サーバは、
     一時的にデータを格納するキャッシュが設定される第2のキャッシュデバイスを有し、
     前記IOリクエスト発行部によって発行された前記IOリクエストを受信した場合、読出対象のデータを前記第1のキャッシュデバイスに格納できるか否かを判定し、
     前記読出対象のデータを前記第1のキャッシュデバイスに格納できると判定された場合、前記記憶装置から前記読出対象のデータを読み出し、前記読出対象のデータを前記仮想化制御部に送信し、
     前記読出対象のデータを前記第1のキャッシュデバイスに格納できないと判定された場合、前記記憶装置から前記読出対象のデータを読み出し、前記第2のキャッシュデバイスに格納することを特徴とする計算機システム。
  3.  請求項2に記載の計算機システムであって、
     前記監視ポリシは、前記読出対象のデータの識別情報を含み、
     前記IOリクエスト発行部は、
     前記メモリアクセスに含まれる前記仮想メモリの物理アドレスを含む前記監視ポリシに含まれる前記読出対象のデータの識別情報及び前記取得ポリシ、並びに前記メモリアクセスを発行した前記仮想計算機の識別情報を含む前記IOリクエストを生成し、
     前記メモリアクセスに含まれる前記仮想メモリの物理アドレスを含む前記監視ポリシに含まれる前記取得ポリシに基づいて、前記IOリクエストを前記記憶サーバに送信することを特徴とする計算機システム。
  4.  請求項1に記載の計算機システムであって、
     前記計算機システムは、前記業務サーバ及び前記記憶サーバを管理する管理サーバを備え、
     前記管理サーバは、
     第3のプロセッサ、前記第3のプロセッサに接続される第3のメモリ、及び前記第3のプロセッサに接続され、他の装置と接続するための第3のインタフェースを有し、
     前記アプリケーションの識別情報、前記記憶サーバからデータを読み出すタイミングを示すトリガ、前記アプリケーションの特性、及び前記取得ポリシを含む特性情報を管理する特性管理情報を保持し、
     前記特性管理情報に基づいて、前記仮想化制御部に前記監視ポリシ管理情報を設定するポリシ設定部を有することを特徴とする計算機システム。
  5.  請求項4に記載の計算機システムであって、
     前記第1のメモリは、前記トリガを検出するためのデータを格納する検出用データ領域を含み、
     前記ポリシ設定部は、
     前記データベースに前記データが格納される場合に、前記特性管理情報を参照して、前記データを使用する前記アプリケーションの前記特性情報を検索し、
     前記検索された特性情報に含まれる前記トリガに基づいて、前記検出用データ領域に前記データを格納する必要があるか否かを判定し、
     前記検出用データ領域に前記データを格納する必要があると判定された場合、前記検出用データ領域に前記データを格納するための指示であり、前記検索された特性情報に含まれる前記取得ポリシを含む第1の格納指示を前記仮想化制御部に送信し、
     前記検出用データ領域に前記データを格納する必要がないと判定された場合、前記データベースに前記データを格納するための指示である第2の格納指示を前記仮想化制御部に送信し、
     前記仮想化制御部は、
     前記第1の格納指示を受信した場合、前記検出用データ領域に前記データを格納して、前記データが格納された前記検出用データ領域に対応付けられた前記仮想メモリの物理アドレス、及び前記第1の格納指示に含まれる前記取得ポリシを含む前記監視ポリシを前記監視ポリシ管理情報に登録し、
     前記第2の格納指示を受信した場合、前記データベースに前記データを格納することを特徴とする計算機システム。
  6.  所定の処理を実行するアプリケーションを実行する仮想計算機が稼動する業務サーバ、及び前記アプリケーションが使用するデータを格納する記憶サーバを備える計算機システムにおけるキャッシュ制御方法であって、
     前記業務サーバは、第1のプロセッサ、前記第1のプロセッサに接続される第1のメモリ、前記第1のプロセッサに接続され、一時的にデータを格納するキャッシュが設定される第1のキャッシュデバイス、及び前記第1のプロセッサに接続され、他の装置と接続するための第1のインタフェースを有し、
     前記記憶サーバは、第2のプロセッサ、前記第2のプロセッサに接続される第2のメモリ、前記第2のプロセッサに接続され、他の装置と接続するための第2のインタフェース、及び複数の記憶装置を有し、
     前記仮想計算機上で実行される前記アプリケーションは、当該仮想計算機に割り当てられる仮想メモリを用いて構築されるデータベースを用いて所定の処理を実行し、
     前記業務サーバは、前記仮想計算機を管理し、前記キャッシュを制御する仮想化制御部を有し、
     前記仮想化制御部は、
     前記仮想計算機が管理する前記仮想メモリの物理アドレス、及び前記記憶サーバからの前記データの読出方法を示す取得ポリシを含む監視ポリシを管理する監視ポリシ管理情報を保持し、
     前記キャッシュ制御方法は、
     前記仮想化制御部が、前記データベースに対するメモリアクセスを監視する第1のステップと、
     前記仮想化制御部が、前記監視ポリシ管理情報に登録された前記仮想メモリの物理アドレスを含む前記メモリアクセスを検出した場合、前記記憶サーバから所定のデータを取得するためのIOリクエストを生成する第2のステップと、
     前記仮想化制御部が、前記IOリクエストを前記記憶サーバに送信する第3のステップと、を含むことを特徴とするキャッシュ制御方法。
  7.  請求項6に記載のキャッシュ制御方法であって、
     前記記憶サーバは、一時的にデータを格納するキャッシュが設定される第2のキャッシュデバイスを有し、
     前記キャッシュ制御方法は、
     前記記憶サーバが、前記仮想化制御部によって発行された前記IOリクエストを受信した場合、読出対象のデータを前記第1のキャッシュデバイスに格納できるか否かを判定するステップと、
     前記読出対象のデータを前記第1のキャッシュデバイスに格納できると判定された場合、前記記憶サーバが、前記記憶装置から前記読出対象のデータを読み出し、前記読出対象のデータを前記仮想化制御部に送信するステップと、
     前記読出対象のデータを前記第1のキャッシュデバイスに格納できないと判定された場合、前記記憶サーバが、前記記憶装置から前記読出対象のデータを読み出し、前記第2のキャッシュデバイスに格納するステップと、を含むことを特徴とするキャッシュ制御方法。
  8.  請求項7に記載のキャッシュ制御方法であって、
     前記監視ポリシは、前記読出対象のデータの識別情報を含み、
     前記第2のステップは、前記仮想化制御部が、前記メモリアクセスに含まれる前記仮想メモリの物理アドレスを含む前記監視ポリシに含まれる前記読出対象のデータの識別情報及び前記取得ポリシ、並びに前記メモリアクセスを発行した前記仮想計算機の識別情報を含む前記IOリクエストを生成するステップを含み、
     前記第3のステップは、前記仮想化制御部が、前記メモリアクセスに含まれる前記仮想メモリの物理アドレスを含む前記監視ポリシに含まれる前記取得ポリシに基づいて、前記IOリクエストを前記記憶サーバに送信するステップを含むことを特徴とするキャッシュ制御方法。
  9.  請求項6に記載のキャッシュ制御方法であって、
     前記計算機システムは、前記業務サーバ及び前記記憶サーバを管理する管理サーバを備え、
     前記管理サーバは、
     第3のプロセッサ、前記第3のプロセッサに接続される第3のメモリ、及び前記第3のプロセッサに接続され、他の装置と接続するための第3のインタフェースを有し、
     前記アプリケーションの識別情報、前記記憶サーバからデータを読み出すタイミングを示すトリガ、前記アプリケーションの特性、及び前記取得ポリシを含む特性情報を管理する特性管理情報を保持し、
     前記キャッシュ制御方法は、
     前記管理サーバが、前記特性管理情報に基づいて、前記仮想化制御部に前記監視ポリシ管理情報を設定する第4のステップを含むことを特徴とするキャッシュ制御方法。
  10.  請求項9に記載のキャッシュ制御方法であって、
     前記第1のメモリは、前記トリガを検出するためのデータを格納する検出用データ領域を含み、
     前記第4のステップは、
     前記管理サーバが、前記データベースに前記データが格納される場合に、前記特性管理情報を参照して、前記データを使用する前記アプリケーションの前記特性情報を検索するステップと、
     前記管理サーバが、前記検索された特性情報に含まれる前記トリガに基づいて、前記検出用データ領域に前記データを格納する必要があるか否かを判定するステップと、
     前記検出用データ領域に前記データを格納する必要があると判定された場合、前記管理サーバが、前記検出用データ領域に前記データを格納するための指示であり、前記検索された特性情報に含まれる前記取得ポリシを含む第1の格納指示を前記仮想化制御部に送信するステップと、
     前記検出用データ領域に前記データを格納する必要がないと判定された場合、前記データベースに前記データを格納するための指示である第2の格納指示を前記仮想化制御部に送信するステップと、を含み、
     前記キャッシュ制御方法は、
     前記仮想化制御部が、前記第1の格納指示を受信した場合、前記検出用データ領域に前記データを格納して、前記データが格納された前記検出用データ領域に対応付けられた前記仮想メモリの物理アドレス、及び前記第1の格納指示に含まれる前記取得ポリシを含む前記監視ポリシを前記監視ポリシ管理情報に登録するステップと、
     前記第2の格納指示を受信した場合、前記データベースに前記データを格納するステップと、を含むことを特徴とするキャッシュ制御方法。
  11.  所定の処理を実行するアプリケーションを実行する仮想計算機が稼動する計算機であって、
     前記計算機は、前記アプリケーションが使用するデータを格納する記憶装置と接続し、
     前記計算機は、プロセッサ、前記プロセッサに接続されるメモリ、前記プロセッサに接続され、一時的にデータを格納するキャッシュが設定される第1のキャッシュデバイス、及び前記プロセッサに接続され、他の装置と接続するためのインタフェースを備え、
     前記仮想計算機上で実行される前記アプリケーションは、当該仮想計算機に割り当てられる仮想メモリを用いて構築されるデータベースを用いて所定の処理を実行し、
     前記計算機は、前記仮想計算機を管理し、前記キャッシュを制御する仮想化制御部を有し、
     前記仮想化制御部は、
     前記仮想計算機が管理する前記仮想メモリの物理アドレス、及び前記記憶装置からの前記データの読出方法を示す取得ポリシを含む監視ポリシを管理する監視ポリシ管理情報を保持し、
     前記データベースに対するメモリアクセスを監視するメモリアクセス監視部と、前記記憶装置から所定のデータを取得するためのIOリクエストを生成するIOリクエスト発行部と、を有し、
     前記メモリアクセス監視部は、前記監視ポリシ管理情報に登録された前記仮想メモリの物理アドレスを含む前記メモリアクセスを検出した場合、前記IOリクエスト発行部に前記IOリクエストの生成を指示することを特徴とする計算機。
  12.  請求項11に記載の計算機であって、
     前記記憶装置は、一時的にデータを格納するキャッシュが設定される第2のキャッシュデバイスを有し、
     前記計算機は、前記IOリクエストに基づいて、前記記憶装置から読出対象のデータを読み出し、前記読出対象のデータを前記仮想化制御部を送信させるように前記記憶装置を制御し、又は、前記記憶装置から前記読出対象のデータを読み出し、前記読出対象のデータを前記第2のキャッシュデバイスに格納するように前記記憶装置を制御することを特徴とする計算機。
  13.  請求項12に記載の計算機であって、
     前記監視ポリシは、前記読出対象のデータの識別情報を含み、
     前記IOリクエスト発行部は、
     前記メモリアクセスに含まれる前記仮想メモリの物理アドレスを含む前記監視ポリシに含まれる前記読出対象のデータの識別情報及び前記取得ポリシ、並びに前記メモリアクセスを発行した前記仮想計算機の識別情報を含む前記IOリクエストを生成し、
     前記メモリアクセスに含まれる前記仮想メモリの物理アドレスを含む前記監視ポリシに含まれる前記取得ポリシに基づいて、前記IOリクエストを前記記憶装置に送信することを特徴とする計算機。
PCT/JP2016/062733 2016-04-22 2016-04-22 計算機システム、キャッシュ制御方法、及び計算機 WO2017183177A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/JP2016/062733 WO2017183177A1 (ja) 2016-04-22 2016-04-22 計算機システム、キャッシュ制御方法、及び計算機

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2016/062733 WO2017183177A1 (ja) 2016-04-22 2016-04-22 計算機システム、キャッシュ制御方法、及び計算機

Publications (1)

Publication Number Publication Date
WO2017183177A1 true WO2017183177A1 (ja) 2017-10-26

Family

ID=60115778

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2016/062733 WO2017183177A1 (ja) 2016-04-22 2016-04-22 計算機システム、キャッシュ制御方法、及び計算機

Country Status (1)

Country Link
WO (1) WO2017183177A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110109958A (zh) * 2019-04-19 2019-08-09 深圳前海微众银行股份有限公司 缓存处理方法、装置、设备及计算机可读存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11161527A (ja) * 1997-11-28 1999-06-18 Toshiba Corp データ記憶システム
JP2015184883A (ja) * 2014-03-24 2015-10-22 株式会社日立製作所 計算機システム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11161527A (ja) * 1997-11-28 1999-06-18 Toshiba Corp データ記憶システム
JP2015184883A (ja) * 2014-03-24 2015-10-22 株式会社日立製作所 計算機システム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110109958A (zh) * 2019-04-19 2019-08-09 深圳前海微众银行股份有限公司 缓存处理方法、装置、设备及计算机可读存储介质

Similar Documents

Publication Publication Date Title
US20200278880A1 (en) Method, apparatus, and system for accessing storage device
US8086896B2 (en) Dynamically tracking virtual logical storage units
US10452293B2 (en) Virtual storage system
US8578178B2 (en) Storage system and its management method
US10339056B2 (en) Systems, methods and apparatus for cache transfers
US9612966B2 (en) Systems, methods and apparatus for a virtual machine cache
US9740409B2 (en) Virtualized storage systems
US9811465B2 (en) Computer system and cache control method
US7543081B2 (en) Use of N—Port ID virtualization to extend the virtualization capabilities of the FC-SB-3 protocol and other protocols
JP5373893B2 (ja) 異なるサイズを有するデータのブロックを格納し、取り出すための構成
US8244955B2 (en) Storage system and its controlling method
US10824460B2 (en) Information processing apparatus, information processing method for reducing network traffic, and storage medium
US20160246587A1 (en) Storage control device
US9223706B2 (en) System, method and a non-transitory computer readable medium for a pre-fetch operation
JP5492731B2 (ja) 仮想計算機のボリューム割当て方法およびその方法を用いた計算機システム
US8140810B2 (en) Storage management command control in virtualized environment
WO2017183177A1 (ja) 計算機システム、キャッシュ制御方法、及び計算機
US10909044B2 (en) Access control device, access control method, and recording medium containing access control program
US11372556B2 (en) Snapshot access using nocopy undefined thin devices
US11201788B2 (en) Distributed computing system and resource allocation method
JP7495191B2 (ja) I/o性能を最適化するためのメモリ・コピーおよびメモリ・マッピング間の動的な切り替え
CN112714910B (zh) 分布式存储系统及计算机程序产品
US10713171B2 (en) Computer system
US8271725B1 (en) Method and apparatus for providing a host-independent name to identify a meta-device that represents a logical unit number
US20220317910A1 (en) Array-based copy mechanism for migration, replication, and backup

Legal Events

Date Code Title Description
NENP Non-entry into the national phase

Ref country code: DE

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 16899449

Country of ref document: EP

Kind code of ref document: A1

122 Ep: pct application non-entry in european phase

Ref document number: 16899449

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP