WO2013111305A1 - 計算機システムおよび記憶制御方法 - Google Patents

計算機システムおよび記憶制御方法 Download PDF

Info

Publication number
WO2013111305A1
WO2013111305A1 PCT/JP2012/051682 JP2012051682W WO2013111305A1 WO 2013111305 A1 WO2013111305 A1 WO 2013111305A1 JP 2012051682 W JP2012051682 W JP 2012051682W WO 2013111305 A1 WO2013111305 A1 WO 2013111305A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
cache
external cache
read
host computer
Prior art date
Application number
PCT/JP2012/051682
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 US13/577,165 priority Critical patent/US9176881B2/en
Priority to PCT/JP2012/051682 priority patent/WO2013111305A1/ja
Publication of WO2013111305A1 publication Critical patent/WO2013111305A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/31Providing disk cache in a specific location of a storage system
    • G06F2212/314In storage network, e.g. network attached cache

Definitions

  • the present invention relates to a technique for managing data used in a host computer.
  • a technique that speeds up the response to the host computer by temporarily caching data in a storage device having a high access speed.
  • the cache memory can be directly used by using the updated value of the data held in the cache memory of each cluster or the value before the update via the network connecting the clusters.
  • Patent Document 1 There is known a technique for avoiding a decrease in the use efficiency (see Patent Document 1).
  • the host computer has a storage device (in particular, a high-speed storage device such as an SSD), but there is a free area as a surplus resource in the storage device. However, this free space is not effectively utilized.
  • a storage device in particular, a high-speed storage device such as an SSD
  • All or part of the free area in the second storage device of the host computer is used as a cache memory area (external cache) outside the storage apparatus.
  • I / O (Input / Output) in the host computer is a write
  • a write request is transmitted from the host computer to the storage device, and the storage device sends data accompanying the write request (hereinafter, write data) to this storage device.
  • Is written in a cache memory area hereinafter referred to as main cache
  • write data in the main cache is written in a first storage device of the storage apparatus.
  • the storage device writes the data in the main cache (for example, the write data) to the external cache that the host computer has.
  • the I / O in the host computer is a read
  • the host computer determines whether or not the read data that is the read target data is in the external cache, and if the result of the determination is affirmative, Read the read data.
  • FIG. 1 is an overall configuration diagram of a computer system according to the first embodiment.
  • FIG. 2 is a diagram illustrating an outline of the writing process according to the first embodiment.
  • FIG. 3 is a diagram illustrating an outline of the reading process according to the first embodiment.
  • FIG. 4 is a diagram illustrating an overview of the movement process according to the first embodiment.
  • FIG. 5 is a configuration diagram of an external cache management table according to the first embodiment.
  • FIG. 6 is a configuration diagram of an external cache allocation table according to the first embodiment.
  • FIG. 7 is a configuration diagram of an external cache reference frequency table according to the first embodiment.
  • FIG. 8 is a configuration diagram of the business host table according to the first embodiment.
  • FIG. 9 is a configuration diagram of a business host operating status table according to the first embodiment.
  • FIG. 1 is an overall configuration diagram of a computer system according to the first embodiment.
  • FIG. 2 is a diagram illustrating an outline of the writing process according to the first embodiment.
  • FIG. 3 is a diagram
  • FIG. 10 is a diagram illustrating an external cache usage status screen according to the first embodiment.
  • FIG. 11 is a diagram illustrating an external cache setting screen according to the first embodiment.
  • FIG. 12 is a flowchart of the data read process of the business host according to the first embodiment.
  • FIG. 13 is a flowchart of data read / write processing of the storage apparatus according to the first embodiment.
  • FIG. 14 is a flowchart of external cache management processing according to the first embodiment.
  • FIG. 15 is a flowchart of the external cache search process according to the first embodiment.
  • FIG. 16 is a flowchart of the external cache allocation update process according to the first embodiment.
  • FIG. 17 is a flowchart of external cache allocation information transmission processing according to the first embodiment.
  • FIG. 18 is a flowchart of external cache area control processing according to the first embodiment.
  • FIG. 19 is a flowchart of the log storage process according to the first embodiment.
  • FIG. 20 is a flowchart of external cache area calculation processing according to the first embodiment.
  • FIG. 21 is a flowchart of external cache capacity update processing according to the first embodiment.
  • FIG. 22 is a diagram illustrating an overview of the read process according to the second embodiment.
  • FIG. 23 is a configuration diagram of an external cache management table according to the second embodiment.
  • FIG. 24 is a flowchart of the data read process of the business host according to the second embodiment.
  • FIG. 25 is a flowchart of external cache allocation information transmission processing according to the second embodiment.
  • FIG. 26 illustrates a configuration example of the business host according to the first embodiment.
  • FIG. 27 illustrates a configuration example of the storage apparatus according to the first embodiment.
  • FIG. 28 illustrates a configuration example of the storage management server according to the first embodiment.
  • aaa table various types of information may be described using the expression “aaa table”, but the various types of information may be expressed using a data structure other than the table. In order to show that it does not depend on the data structure, the “aaa table” can be called “aaa information”.
  • control device includes a processor (typically, a microprocessor such as a CPU (Central Processing Unit)), and further, a dedicated hardware circuit (for example, a circuit that performs encryption, a decryption circuit) that performs predetermined processing.
  • a processor typically, a microprocessor such as a CPU (Central Processing Unit)
  • a dedicated hardware circuit for example, a circuit that performs encryption, a decryption circuit
  • the process disclosed with the program as the subject may be a process performed by a control device or an apparatus having the control device (for example, a business host, a storage apparatus, or a storage management server described later). Further, part or all of the program may be realized by a dedicated hardware circuit. Various programs may be installed in each computer by a program distribution server or a computer-readable storage medium.
  • the storage management server may have an input / output device.
  • input / output devices include a display, a keyboard, and a pointer device, but other devices may be used.
  • the management system in the computer system may be a set of one or more computers.
  • the computer When the computer displays the display information, the computer may be a management system.
  • a combination of a computer and a display device may be a management system.
  • processing equivalent to that of the management system may be realized with a plurality of computers. In this case, the plurality of computers (if the display device performs display, display is performed). Management system).
  • the act of “displaying” the control device includes the act in which the control device displays a screen component or the like on the display device of the computer having the control device. Any of the acts of transmitting display information such as screen components displayed on the display device to the computer 2 may be used.
  • the second computer receives the display information, the second computer can display a screen component or the like represented by the display information on the display device.
  • FIG. 1 is an overall configuration diagram of a computer system according to the first embodiment.
  • the computer system 1 includes one or more business-use host computers (business host) 10, one or more storage devices 20, a storage management server 30, and a management computer 40.
  • the storage management server 30 and the management computer 40 are components of the management system.
  • the management computer 40 may be a computer as an input / output console, and the storage management server 30 may be a computer as a control console.
  • the business host 10 and the storage apparatus 20 are connected to be communicable via, for example, a first communication network (for example, a SAN (Storage Area Network) 60).
  • the business host 10, the storage device 20, the storage management server 30, and the management computer 40 are connected via, for example, a second communication network (for example, a LAN (Local Area Network) 50).
  • the first and second communication networks may be integrated.
  • the business host 10 executes various processes related to business, reads data from the storage device 20, and writes data to the storage device 20.
  • the storage device 20 stores data used by the business host 10.
  • the storage management server 30 is configured by, for example, a computer, stores information for managing the storage device 20 and the business host 10, and executes various processes for managing the storage device 20 and the business host 10.
  • the management computer 40 is composed of, for example, a PC and displays various screens based on information managed by the storage management server 30 or receives various settings from the administrator and notifies the storage management server 30 of them.
  • the business host 10 includes a communication interface device (I / F), a storage resource, and a control device (hereinafter referred to as a host control device) 141 connected thereto.
  • I / F examples include a SAN I / F 151 (for example, an HBA (Host Bus Adapter)) that communicates via the SAN 60 and a LAN I / F 153 (for example, a LAN controller) that communicates via the LAN 50.
  • the storage resource includes, for example, a memory 154, a drive 121, and an auxiliary storage device 130.
  • the memory 120 stores the business application 100 and the cache control program 110.
  • the business application 100 is executed by a processor in the host control device 141 and executes various processes in the business.
  • the cache control program 110 includes a data read control module 111 and an external cache area control module 112 and is executed by a processor in the host control device 141.
  • the drive 121 is, for example, a storage device that can be read / written at a higher speed than the auxiliary storage device 130 and is, for example, an SSD.
  • the auxiliary storage device 130 is, for example, an HDD.
  • the auxiliary storage device 130 stores an external cache management table 131.
  • the storage apparatus 20 is connected to them via a communication interface device (I / F), one or more nonvolatile physical storage devices (hereinafter, PDEV) 231, storage resources, and an internal network 420.
  • a control device hereinafter referred to as a storage control device
  • the internal network 420 may be, for example, a switch (not shown) or a bus.
  • Examples of the I / F include a SAN I / F 283 (for example, an interface board having one or a plurality of communication ports) and a LAN I / F 282 (for example, a LAN controller).
  • the PDEV 231 is, for example, a SAS-HDD (SAS: Serial Attached SCSI).
  • the PDEV 231 may be another type of HDD instead of the SAS-HDD, or may be a storage device (for example, SSD) other than the HDD.
  • a RAID group may be formed by a plurality of PDEVs.
  • a logical storage device (hereinafter referred to as LDEV) may be formed based on one or more PDEVs, and the LDEV may be mounted on the business host 10 as a volume.
  • the storage resource includes, for example, a first memory 210, a second memory 220, and an auxiliary storage device (for example, HDD) 240.
  • the first memory 210 includes a data read / write control module 211, an external cache management module 212, an external cache allocation update module 213, an external cache capacity update module 214, an external cache allocation table 241, and an external cache reference frequency table 242.
  • These modules 211 to 214 are executed by a processor in the storage control device 281.
  • the second memory 220 is, for example, a volatile (or nonvolatile) memory, and at least a part of the second memory 220 is used as a cache memory area (hereinafter, main cache) 221.
  • the storage management server 30 includes a communication interface device (I / F), a storage resource, and a control device (hereinafter, server control device) 341 connected thereto.
  • I / F is a LAN I / F 353.
  • the storage resource includes, for example, a memory 355 and an auxiliary storage device (for example, HDD) 310.
  • the memory 355 stores, for example, a driver control module 301, an external cache search module 302, an external cache area calculation module 303, and a log storage module 304. These modules 301 to 304 are executed by a processor in the server control device 341.
  • the auxiliary storage device 310 stores a business host table 311 and a business host operating status table 312.
  • the business host 10 includes two business hosts # 1 and # 2.
  • FIG. 2 is a diagram illustrating an outline of the writing process according to the first embodiment.
  • the disk 184 is shown only for the business host # 1, but the disk 184 also exists in other business hosts. Two or more disks 184 may exist in one business host.
  • the VDEV 391 is a virtual LDEV.
  • the VDEV 391 has one or more virtual areas.
  • the virtual area is a virtual external cache 392 of the main cache 221.
  • the virtual external cache 392 is mapped with all or part of the free area 120 of the drive 121 of the business host 10 (hereinafter, real external cache) 120a.
  • This mapping follows, for example, storage virtualization technology. Therefore, the data written to the virtual external cache 392 is actually written to the real external cache 120a mapped to the virtual external cache 392, and the data read from the virtual external cache 392 is actually the virtual external cache 392. It is read from the real external cache 120a mapped to the cache 392. That is, the real external cache 120 a is a cache memory area outside the storage apparatus 20.
  • the business host # 1 when the business application 100 writes data to the disk 184, a data write request is transmitted from the business host 10 to the storage device 20.
  • the SAN I / F 283 receives the write request, and the data read / write control module 211 writes the write target data (write data) accompanying the received write request to the main cache 221 ((1 in FIG. 2). )).
  • the data read / write control module 211 may return a response to the write request to the business host # 1 when the write data is written in the main cache 221.
  • the read / write control module 211 writes the write data from the main cache 221 to the PDEV 231 (PDEV 231 that is the basis of the LDEV corresponding to the disk 184 (the write destination LDEV specified by the write request)) (FIG. (2)).
  • the external cache management module 212 writes the write data in the main cache 221 to the virtual external cache 392, so that the write data is mapped to the virtual external cache 329 and the real external cache of the business host # 1.
  • the real external cache 120a to which the write data is written may be the real external cache 120a of another business host # 2 instead of the real external cache 120a in the business host # 1 that is the transmission source of the write data. good.
  • the disk 184 is a storage space corresponding to the LDEV when the LDEV of the storage device 20 is mounted.
  • the expression “disk” is used.
  • the disk 184 may correspond to an LDEV based on a PDEV other than the disk-type PDEV.
  • FIG. 3 is a diagram illustrating an outline of the reading process according to the first embodiment.
  • the data read control module 111 determines whether or not the read data is cached in the real external cache 120a of the business host # 1 having the business application 100 that requests reading. When it is determined that the read data is cached in the real external cache 120a of the business host # 1, the data read control module 111 reads the read data from the real external cache 120a ((1) in FIG. 3). In this case, it is not necessary to issue a read request to the storage apparatus 20, that is, access to the storage apparatus 20.
  • the business application 100 can acquire the data read by the data read control module 111.
  • the data read control module 111 reads the read data (a read request designating the LDEV corresponding to the disk 184). Is transmitted to the storage apparatus 20.
  • the SAN I / F 283 receives the read request, and the data read / write control module 211 determines whether or not the read data according to the read request is cached in the main cache 221.
  • the data read / write control module 211 reads the read data from the main cache 221, and transmits the read data to the business host # 1 as a response to the read request ( (2) of FIG.
  • the data read / write control module 211 reads the read data from the real external cache 120a of the business host # 2 in parallel (for example, simultaneously) with the PDEV 231 (LDEV (corresponding to the disk 184)).
  • the read data can be read from the PDEV 231) that is the basis of the read source LDEV specified by the read request.
  • the data read / write control module 211 can transmit the read data acquired earlier from the real external cache 120a and the PDEV 231 of the business host # 2 to the business host # 1 as a response to the read request.
  • the data read / write control module 211 determines that the PDEV 231 (the LDEV corresponding to the disk 184 (read request)
  • the read data is read from the PDEV 231) which is the basis of the read source LDEV specified in (2), the read data is stored in the main cache 221, and the read data is sent to the business host # 1 as a response to the read request. Transmit ((4) in FIG. 3).
  • FIG. 4 is a diagram illustrating an overview of the movement process according to the first embodiment.
  • the external cache management module 212 detects overwriting or deletion of data in the main cache 221 (hereinafter, “target data” in the description of FIG. 4) ((1) in FIG. 4).
  • the external cache management module 212 requests the external cache search module 302 in the storage management server 30 to search for the business host 10 that is the transfer destination (cache destination) of the target data. Is specified by the business host 10 ((2) in FIG. 4).
  • the external cache management module 212 stores the target data in the external cache 120a of the designated business host 10 ((3) in FIG. 4).
  • FIG. 5 is a configuration diagram of the external cache management table 131.
  • the external cache management table 131 exists in the business host 10.
  • the external cache management table 131 includes a data identifier 131a, a storage identifier 131b, a connection identifier 131c, and a disk identifier for each data stored in the external cache 120a (“cache data” in the description of FIGS. 5 to 7).
  • 131d a cache capacity 131e, a data address 131f, a cache address 131g, and a last access date 131h.
  • These pieces of information 131a to 131h are as follows.
  • the data identifier 131a is an identifier indicating cache data.
  • the storage identifier 131b is an identifier of the storage apparatus 20 having an LDEV in which data matching the cache data (referred to as “original data” for convenience in FIGS. 5 to 7) is stored.
  • the connection identifier 131c is a connection identifier used by the business host 10 when connecting to the PDEV in which the original data of the cache data is stored. As the connection identifier, for example, a LUN (Logical Unit Number) can be used.
  • the disk identifier 131d is an identifier of a disk (a disk in the business host 10 having the table 131 of FIG. 5) 184 that can be a read source of the original data of the cache data.
  • the cache capacity 131e represents the capacity of cache data. This capacity may be the same capacity as, for example, X (X is an integer of 1 or more) pages (unit storage areas). That is, the cache data may be a multiple of the page capacity (the capacity of one page is 42 MB, for example). The capacity of the cache data may be a capacity that does not depend on the capacity of the page.
  • the data address 131f is an address of an area where the original data of the cache data is stored (for example, LBA: Logical Block Address). The address as the data address 131f is an address belonging to the disk 184 in the business host 10.
  • the cache address 131g is an address of an area (area in the real external cache 120a) where cache data is stored.
  • the last access date and time 131h represents the date and time when the cache data was last accessed. Note that the date and time is expressed in year, month, day, hour, minute, and second, but at least one of these units may be omitted.
  • the original data of the cache data “1” can be read from the address “0x000120” of the disk “00:20:03” corresponding to the LDEV “00” of the storage device “VSP # 01”.
  • the capacity of the cache data “1” is “84 MB”.
  • the cache data “1” can be read from the address “0x000204” of the real external cache 120a in the business host 10 having the table 131 of FIG. 5, and the cache data “1” at the address “0x000204”
  • the date and time of the last access is “2011/11/01 19:30”.
  • FIG. 6 is a configuration diagram of the external cache allocation table 241.
  • the external cache allocation table 241 exists in the storage apparatus 20.
  • the external cache allocation table 241 includes, for each cache data, a data identifier 241a, a business host identifier 241b, a business host connection identifier 241c, a disk identifier 241d, a cache capacity 241e, a data address 241f, a cache address 241g, Last access date and time 241h.
  • These pieces of information are as follows.
  • the data identifier 241a is an identifier of cache data.
  • the business host identifier 241b is an identifier of the business host 10 having the real external cache 120a mapped to the virtual external cache 392 storing the cache data.
  • the business host connection identifier 241c is an identifier used when connecting to the real external cache 120a mapped to the virtual external cache 392 storing the cache data.
  • the LDEV identifier 241d is an identifier of an LDEV that can be a read source of the original data of the cache data.
  • the cache capacity 241e is the capacity of cache data.
  • the data address 241f is the address of the area (the area in the LDEV) that stores the original data of the cache data.
  • the cache address 241g is an address of an area in which cache data is stored (an area in the virtual external cache 392).
  • the last access date and time 241h represents the date and time when the cache data was last accessed.
  • the cache data “1” is in the external cache 120a in the business host “HOST_01”.
  • the original data of the cache data “1” exists in the area of the address “0x000120” of the LDEV “00:20:03”.
  • the capacity of the cache data “1” is “84 MB”.
  • the cache data “1” exists at the address “0x000204” of the external cache 120a.
  • the date and time when the cache data “1” was last accessed is “2011/01/01 19:30: 00”.
  • FIG. 7 is a configuration diagram of the external cache reference frequency table 242.
  • the external cache reference frequency table 242 exists in the storage apparatus 20.
  • the external cache reference frequency table 242 has a data identifier 242a, a disk identifier 242b, an access source business host identifier 242c, and an access date / time 242d for each cache data. These pieces of information are as follows.
  • the data identifier 242a is an identifier of cache data.
  • the LDEV identifier 242b is an identifier of an LDEV that can be a read source of the original data of the cache data.
  • the access source business host identifier 242c is an identifier of the business host (“read source host” in FIG. 7) that has transmitted a read request for reading the original data of the cache data.
  • the access date and time 242d represents the date and time when the cache data was accessed according to the read request from the read source host.
  • the original data of the cache data “1” can be read from the LDEV “00:20:03”.
  • Cache data “1” was accessed at “2011/11/01 10:00:00” in accordance with a read request from the business host “HOST_01”.
  • FIG. 8 is a configuration diagram of the business host table 311.
  • the business host table 311 exists in the storage management server 30.
  • the business host table 311 includes, for each business host 10, a business host identifier 311a, a usage 311b, a cache availability 311c, an available period 311d, an entire drive free capacity 311e, a cache usage capacity 311f, and a data reference access. It has a permitted I / O threshold 311g, a data write permitted throughput threshold 311h, and access information 311i. These pieces of information are as follows.
  • the business host identifier 311 a is an identifier of the business host 10.
  • Usage 311b represents the usage of the business host 10.
  • Cache availability 311c indicates whether the real external cache 120a of the business host 10 can be used.
  • the usable period 311d represents a period in which the real external cache 120a can be used.
  • the total free capacity 311e of the drive represents the total free capacity of the drive 131 of the business host 10.
  • the cache use capacity 311f represents the capacity of the area used as the real external cache 120a out of the total capacity of the drive 131.
  • the data reference access permission I / O threshold 311g is input / output per unit time for determining the availability of the storage area used as the real external cache of the business host 10 Data amount) threshold.
  • the data write permission throughput threshold 311h is a lower limit value of the network throughput (data transfer speed) at which writing to the external cache 120a is permitted.
  • the access information 311i is information (for example, user ID and password) used for communication with the business host 10.
  • the business host “HOST — 01” is used for “data calculation” and can be used as an external cache, and the usable period as an external cache is “2011/11/01 to 2011/11/11”. It is.
  • the entire drive free capacity of the business host “HOST — 01” is 30 GB, of which the cache usage capacity is 8 GB.
  • the data reference access permission I / O threshold value of the business host “HOST_01” is “80 Mb / Sec”, and the data write permission throughput threshold value of the business host “HOST_01” is “50 Mb / Sec”.
  • the access information of the business host “HOST — 01” is “UserID / Pass”.
  • FIG. 9 is a configuration diagram of the business host operating status table 312.
  • the business host operating status table 312 exists in the storage management server 30.
  • the business host operating status table 312 includes, for each business host 10, a business host identifier 312a, a measurement time 312b, a read average I / O 312c, a write average I / O 312d, a network reception average throughput 312e, and a network transmission average throughput. 312f and a cache use capacity 312g. These pieces of information are as follows.
  • the business host identifier 312 a is an identifier of the business host 10.
  • the measurement time 312b represents a time zone (measurement start date / time and end date / time) when the operation status of the business host 10 is measured.
  • Read average I / O 312c represents an average value of the reading speed in the business host 10. This speed is the speed at which data is read from the storage apparatus 20, and the speed at which data is read from the external cache 120a may be excluded. Instead of the Read average I / O 312c, information indicating other types of read loads (for example, read average response time (average time from issuing a read request to receiving a response)) may be employed.
  • Write average I / O 312 d represents the average value of the writing speed in the business host 10. This speed may be a speed at which data is written to the storage device 20.
  • Average network reception throughput 312e represents the average network reception throughput of the business host 10.
  • the network reception throughput is the amount of data received by the business host 10 per unit time via the network (SAN 60 in this embodiment).
  • information representing another type of communication load may be employed.
  • Average network transmission throughput 312f represents the average network transmission throughput of the business host 10.
  • the network transmission throughput is the amount of data that the business host 10 transmits per unit time via the network (SAN 60 in this embodiment).
  • information representing another type of communication load may be employed.
  • the cache use capacity 312 g represents the capacity of the storage area used as the external cache 120 a in the business host 10.
  • screens displayed on the management computer 40 by the storage management server 30 include screen components (for example, text boxes or radio buttons) according to the purpose, but the screen components are not limited to the types shown in the drawings. 10 and 11 are displayed when a predetermined computer program (for example, the driver control module 301) is executed by the server control device 341.
  • a predetermined computer program for example, the driver control module 301
  • FIG. 10 shows an external cache usage status screen according to the first embodiment.
  • the storage management server 30 displays the external cache usage status screen 1000 on the management computer 40 when an instruction to display the usage status screen is received from the management computer 40 (or when another predetermined event occurs).
  • the external cache usage status screen 1000 has an external cache usage status display area 1001, an external cache total capacity display area 1010, and a business host status display area 1020.
  • the external cache usage status display area 1001 information regarding the usage status of the actual external cache 120a on the business host 10 managed by the storage management server 30 is displayed for each business host.
  • information stored in the business host table 311 is displayed for each business host.
  • the display area 1001 includes a change designation radio button 1002 for designating a business host 10 whose setting is to be changed in the real external cache 120a, and a real external cache 120a of the business host 10 designated by the change designation radio button 1002.
  • An external cache setting change button 1003 for displaying an external cache setting screen (see FIG. 11) for changing the setting is displayed.
  • the external cache total capacity display area 1010 a graph indicating the total capacity of the external cache of the plurality of business hosts 10 managed by the storage management server 30 is displayed.
  • the external cache total capacity display area 1010 displays, for example, a graph indicating the relationship between time and the total capacity of the real external cache 120a. According to this graph, it can be seen that the total capacity of the real external cache 120a changes with time.
  • the business host status display area 1020 information on the usage status of the real external cache 120a for any of the business hosts 10 is displayed.
  • a pull-down menu 1021 for selecting a list of business hosts 10 and an individual information display indicating the usage status of the business host 10 selected from the list displayed in the pull-down menu 1021.
  • the disk I / O at each time is specified from the Read average I / O 312c and the Write average I / O 312d corresponding to each measurement time 312b, and the external cache capacity at each time is determined by each measurement. It is specified from the last access date and time 241h corresponding to the time 312b.
  • FIG. 11 is a diagram illustrating an external cache setting screen according to the first embodiment.
  • the storage management server 30 When the storage management server 30 receives a notification from the management computer 40 that the external cache setting change button 1003 has been pressed in the screen 1000 of FIG. 10 (or when another event occurs), the external cache setting screen 2000 Is displayed on the management computer 40.
  • the notification that the external cache setting button 1003 has been pressed may include information (for example, a business host identifier) related to the business host 10 designated by the change designation radio button 1002 on the screen 1000 in FIG. .
  • a setting change area 2010 for changing the setting of the business host 10 designated as a change target and an external cache setting execution button 2020 for executing the setting designated in the setting change area 2010 are displayed.
  • a cancel button 2021 for canceling (cancelling) the setting designated in the setting change area 2010 is displayed.
  • a use permission time setting area 2012 for setting a time (period) a use capacity setting area 2013 for setting a storage capacity usable as the real external cache 120a, and a standard for permitting reference to data in the real external cache 120a.
  • an I / O threshold setting area 2014 for setting an I / O threshold (data reference access permission I / O threshold), and a network throughput threshold (data writing permission) that is a reference for permitting data writing in the real external cache 120a Throughput threshold setting area for setting (throughput threshold) 2015 and is displayed.
  • the use permission time setting area 2012 has a 24-hour specification indicating that the use is always permitted, a time specification for setting the permitted time, a period specification for specifying the permitted period, and a day of the week for setting the permitted day of the week. Any one of the designations can be selected, and information to be designated in the corresponding area can be input.
  • the used capacity setting area 2013 has an automatic control setting area for setting the capacity of the real external cache 120a dynamically, and a capacity designation area for setting the capacity of the real external cache 120a as a fixed value.
  • the automatic control setting area has an attribute selection list box for selecting an attribute (for example, disk I / O) used for determining the capacity.
  • information indicating whether the capacity of the real external cache 120a is a variable value that is dynamically automatically set and changed or a manual fixed value is stored in the memory 355 of the storage management server 30, for example.
  • the external cache area calculation module 303 executes the external cache area calculation process (FIG. 20) periodically (or irregularly) and sets the capacity calculated by the calculation process.
  • the capacity of the real external cache 120a may be changed so that
  • FIG. 12 is a flowchart of data read processing of the business host 10.
  • the data read process is executed by the data read control module 111 when the cache control program 110 detects a read from the disk 184, for example.
  • the data read control module 111 determines whether or not the business host 10 executing this module 111 has the real external cache 120a (step A-01). Whether there is an external cache can be determined by whether there is a record in the external cache management table 131.
  • Step A-04 when there is no real external cache 120a (No in Step A-01), the data read control module 111 advances the process to Step A-04.
  • the data read control module 111 determines whether or not a record corresponding to the read target data (read data) exists in the external cache management table 131. Then, it is determined whether or not there is read data in the real external cache 120a (whether or not it is cached) (step A-02). Specifically, the data read control module 111 determines whether there is a record that stores a value corresponding to the connection identifier and the data address included in the read request.
  • Step A-04 when there is no read data corresponding to the real external cache 120a (No in Step A-02), the data read control module 111 advances the processing to Step A-04.
  • the data read control module 111 reads the read data from the real external cache 120a and returns the read data to the business application 100 ( Step A-03).
  • the storage location of the read data can be specified by the values of the cache address 131g and the cache capacity 131e of the corresponding record in the external cache management table 131. As a result, the read data can be quickly passed to the business application 100 without being read from the storage device 20.
  • step A-04 the data read control module 111 transmits a read request to the storage apparatus 20. Thereby, thereafter, the data read control module 111 can receive read data from the storage apparatus 20 as a response to the read request.
  • the presence or absence of the real external cache 120a is not considered.
  • a write request designating the LDEV is transmitted from the business host 10 to the storage device 20 having the LDEV corresponding to the disk 184.
  • FIG. 13 is a flowchart of data read / write processing of the storage apparatus 20.
  • the data read / write process is performed by the storage control device 281 of the storage apparatus 20 executing the data read / write control module 211.
  • the data read / write process is started, for example, when the storage apparatus 20 receives a write request or a read request (or when another predetermined event occurs).
  • the LDEV designated by the write request is called “write destination LDEV”
  • the LDEV designated by the read request is called “read source LDEV”.
  • the data read / write control module 211 determines whether or not the received request is a write request (step B-01). If the received request is a read request (No in step B-01), the data read / write control module 211 advances the process to step B-04.
  • the data read / write control module 211 starts a write process. That is, the data read / write control module 211 writes the data accompanying the write request to the main cache 221 (step B-02). Before writing the data written in the main cache 221 to the PDEV 231 based on the write destination LDEV, the read / write control module 211 sends a response to the write request to the business host 10 that sent the write request (step B-11). . Then, the read / write control module 211 calls the external cache management module 212. Note that the read / write control module 211 may perform step B-11 when data written to the main cache 221 is written to the PDEV 231.
  • step B-11 the data read / write control module 211 calls the external cache management module 212 (step B-12).
  • the external cache management module 212 executes the external cache management process (FIG. 14).
  • step B-04 the data read / write control module 211 determines whether there is data to be read (read data) according to the read request in the main cache 221 (step B-04).
  • Step B-04 when there is read data in the main cache 221 (Yes in Step B-04), the data read / write control module data 211 reads the read data from the main cache 221 and advances the process to Step B-11. Since the data management method in the main cache 221 is publicly known, detailed description is omitted here.
  • Step B-04 when there is no target read data in the main cache 221 (No in Step B-04), the processing from Step B-06 (processing for reading data from the real external cache 120a) and the processing from Step B-09 ( The process of reading data from the PDEV 231) is executed in parallel.
  • Step B-06 the data read / write control module 211 determines whether or not the record corresponding to the read data is in the external cache allocation table 241. Specifically, for example, the data read / write control module 211 determines whether there is a record in the external cache allocation table 241 that stores a value that matches the connection identifier and data address included in the read request. As a result, when such a record does not exist in the external cache allocation table 241 (No in Step B-06), the data read / write control module 211 advances the process to Step B-10.
  • Step B-06 when such a record is in the external cache allocation table 241 (Yes in Step B-06), the data read / write control module 211 sends the external cache search module 302 of the storage management server 30 to the actual external corresponding to the record.
  • An access permission determination process which is a determination process as to whether or not the business host 10 having the cache 120a is accessible, is requested (step B-07).
  • the access permission determination process by the external cache search module 302 is performed in the external cache search process (see FIG. 15).
  • the data read / write control module 211 advances the process to Step B-10.
  • Step B-08 the data read / write control module 211 reads the read data from the real external cache 120a of the found business host 10 (Step B-08).
  • step B-08 specifically, the process after No in step B-01
  • step A-04 transmission of the read request to the storage device 20
  • step B-09 the data read / write control module 211 reads the read data from the PDEV 231 that is the basis of the read source LDEV, and advances the process to step B-10.
  • step B-10 the data read / write control module 211 performs the processing from step B-06 (processing for reading data from the real external cache 120a) and the processing from step B-09 (processing for reading data from the PDEV 231).
  • the read data from which the read data is read earlier is determined as data to be transmitted to the business host 10 as a response to the read request, and the process proceeds to step B-11.
  • the data read / write control module 211 returns a response to the read request, that is, a response including the read data read, to the business host 10 that is the source of the read request (Step B-11), and the external cache management The module 212 is called (step B-12).
  • the read data is sent to the business host 10 earlier than when read data is read only from the PDEV 231.
  • a PDEV 231 based on a read source LDEV may be based on another LDEV.
  • the PDEV based on the read-source LDEV is busy because the data is being read from another LDEV, etc.
  • the PDEV 231 is an HDD and the disk rotation wait is long (3 )
  • the PDEV 231 is an HDD, and the rotational speed of the HDD is suppressed because of the power saving mode, and it may take time to increase the rotational speed.
  • FIG. 14 is a flowchart of the external cache management process according to the first embodiment.
  • the external cache management process is performed when the data read and data write occur (step B-12 in FIG. 13), or when the data existing in the main cache 221 is overwritten or deleted. It is executed by.
  • the external cache management module 212 refers to the external cache allocation table 241 to determine whether or not there is a virtual external cache 392 (real external cache 120a) in which the target data is stored when the external cache management process is executed. Is determined (step C-01). As a result, when the virtual external cache 392 exists (Yes in Step C-01), the external cache management module 212 advances the processing to Step C-02.
  • the “target data” is data to be overwritten or deleted, or read data referred to in FIG.
  • the external cache management module 212 performs a process of creating a new virtual external cache 392. That is, the external cache management module 212 requests the external cache search module 302 to perform a data storage destination search for searching for the business host 10 as a data storage destination (step C-03).
  • the external cache search module 302 receives the request and executes an external cache search process (see FIG. 15).
  • the external cache management module 212 determines whether or not the real external cache 120a as the storage destination of the target data has been found by the external cache search process (step C-04).
  • the external cache management module 212 generates a virtual external cache 392, and the found real external cache 120a is stored in the virtual external cache 392. Mapping is performed, and the target data is stored in the real external cache 120a through the virtual external cache 392 (step C-05), and the process proceeds to step C-02.
  • the target data can be stored in the real external cache 120a of the business host 10.
  • the external cache management module 212 advances the processing to Step C-02.
  • step C-02 the external cache management module 212 requests the external cache allocation update module 214 to update data (step C-02). As a result, the external cache allocation update module 214 executes external cache allocation update processing (see FIG. 16).
  • step C-04 between Yes and step C-05, the external cache management module 212 determines whether to allow access to the external cache search module 302, specifically, to the found business host. It may be requested to determine whether access is possible. As a result, when receiving a notification that access is not possible, the external cache management module 212 may wait for the execution of step C-05 for a certain period of time and issue the request again. The external cache management module 212 may execute Step C-05 when receiving a notification that access is possible (or when waiting for a predetermined number of times or more).
  • FIG. 15 is a flowchart of the external cache search process according to the first embodiment.
  • the external cache search process is performed when an access permission inquiry is received (step B-07 in FIG. 13) or when an external cache search request is received (step C-03 in FIG. 14). This is executed by the external cache search module 302.
  • the external cache search module 302 determines whether or not the request is an access permission determination request (step D-01). As a result, when the request is an access permission determination request (Yes in step D-01), the external cache search module 302 advances the process to step D-02. On the other hand, when the request is a search request for the business host 10 that provides the real external cache 120a (No in Step D-01), the external cache search module 302 advances the process to Step D-10.
  • step D-02 the external cache search module 302 determines whether or not the determination request is a determination at the time of reading.
  • the external cache search module 302 determines that the target business host (for example, the business host that is the source of the write request or the read request) is retrieved from the business host table 311.
  • the data reference access permission I / O threshold value 311g is acquired (step D-03), and the latest write average I / O 312d and read average I / O 312c of the target business host 10 are acquired from the business host operating status table 312.
  • An averaged average I / O is calculated (step D-04), and the process proceeds to step D-07.
  • a value based on I / O 312d and 312c for example, the smaller or larger one of I / O 312d and 312c may be used.
  • the external cache search module 302 acquires the data write permission throughput threshold 311h of the target business host 10 from the business host table 311 (Step S02). D-05), the latest network reception average throughput 312e and network transmission average throughput 312f of the target business host 10 are obtained from the business host operating status table 312, and the average throughput is calculated by averaging these (step D-06) The process proceeds to step D-07.
  • a value based on the throughputs 312e and 312f for example, the smaller or larger one of the throughputs 312e and 312f may be used.
  • step D-07 the external cache search module 302 determines whether the average value (average I / O or average throughput) is equal to or greater than the threshold value 311g or 311h of the target business host 10. As a result, when the average value is smaller than the threshold (No in Step D-07), the external cache search module 302 notifies the storage apparatus 20 that the real external cache 120a in the target business host 10 can be accessed. Transmit (step D-08). On the other hand, if the average value is equal to or greater than the threshold (Yes in Step D-07), the external cache search module 302 notifies the storage apparatus 20 that access to the real external cache 120a in the target business host 10 is not possible. Transmit (step D-09).
  • the average value average I / O or average throughput
  • the average value is equal to or greater than the threshold, it takes a long time to read data from the real external cache 120a in the target business host 10, and in step B-10 in FIG. 13, the data is read from the PDEV 231. There is a high possibility that the collected data will be returned.
  • the processing of FIG. 15 when the average value is equal to or greater than the threshold value, access to the real external cache 120a in the target business host 10 is avoided, so that the load on the target business host 10 increases unnecessarily. It can be avoided.
  • the external cache search module 302 When the request is a search request for the business host 10 (No in step D-01), the external cache search module 302 has a free space equal to or greater than the capacity of the data to be saved based on the business host table 311. The business host 10 located in is searched (step D-10).
  • the external cache search module 302 refers to the information stored in the external cache reference frequency table 242 in the storage apparatus 20, and the reference frequency to the data to be saved is determined from the business host 10 found in step D-10. A large number of business hosts 10 are searched (step D-11). For example, the external cache search module 302 searches for the business host 10 whose reference number in a predetermined period is a predetermined number or more.
  • step D-12 to D-15 the processing (steps D-12 to D-15) is repeatedly executed for the number of business hosts 10 found in step D-11.
  • the external cache search module 302 is a target of processing (step D-12 to step D-15) among the business hosts 10 found in step D-11 based on the business host operating status table 312.
  • the business host 10 with the lowest throughput is identified as the target of processing (steps D-12 to D-15) (step D-13).
  • the external cache search module 302 obtains the data reference access permission I / O threshold value 311g of the business host 10 specified in step D-13 from the business host table 311 (step D-14).
  • the external cache search module 302 uses the data reference access permission I / O threshold value 311g acquired in step D-14 and the average I / O of the business host 10 specified in step D-13 (latest write average I / O). A comparison is made between O312d and Read average I / O312c (step D-15).
  • the external cache search module 302 continues the processing from step D-12, while the average I / O is less than the threshold value 311g.
  • the business host 10 identified in Step D-13 is determined as the business host 10 to be provided with the real external cache 120a and processed (Steps D-12 to D-15). And the process proceeds to step D16. If all the business hosts 10 found in step D-11 have been processed (steps D-12 to D-15), the external cache search module 302 advances the process to step D-16.
  • step D-16 the external cache search module 302 determines whether or not the target business host 10 providing the external cache has been found.
  • the external cache search module 302 stores information on the business host 10 (for example, information including the identifier of the business host 10) in the storage device 20. Return (step D-17).
  • the target business host 10 is not found (No in Step D-16)
  • the external cache search module 302 returns to the storage apparatus 20 that there is no target business host 10 (Step D-18).
  • the external cache is provided to the business host 10 whose reference frequency to the target data (for example, read data in FIG. 13) is high and whose current average I / O is less than a predetermined threshold. It can be determined as a business host to perform. Since the business host is the business host 10 that frequently refers to the data, it can be quickly acquired from its own drive 121 serving as an external cache without acquiring the data from the storage device 20. Response at the time of data reading can be improved.
  • FIG. 16 is a flowchart of the external cache allocation update process according to the first embodiment.
  • External cache allocation update processing is performed by the external cache allocation update module 213 when a data update request is received (step C-02 in FIG. 14 and step J-06 in FIG. 21).
  • the external cache allocation update module 213 determines whether or not it is an update process by newly creating a virtual external cache (real external cache) (step E-01). As a result, in the case of update processing by newly creating a virtual external cache (Yes in step E-01), the external cache allocation update module 213 creates a new record in the external cache allocation table 241, and The corresponding virtual external cache (real external cache) information is stored (step E-02), and the process proceeds to step E-08.
  • the external cache allocation update module 213 determines the external cache allocation table 241 based on the data identifier of the target data. Then, a record corresponding to the target data is searched (step E-03). Next, the external cache allocation update module 213 determines an operation for the corresponding data (step E-04).
  • the external cache allocation update module 213 updates the last access date / time 241h of the obtained record (step E-05), and advances the process to step E-08.
  • the external cache allocation update module 213 updates the data address 241f, cache address 241g, and last access date / time 241h of the obtained record (step E-06), and the process proceeds to step E. Proceed to -08.
  • the external cache allocation update module 213 updates the value of the obtained record to the latest value (step E-07), and the process goes to step E-08. Proceed.
  • step E-08 the external cache allocation update module 213 adds a record related to the corresponding data to the external cache reference frequency table 242.
  • the external cache allocation update module 213 transmits to the driver control module 301 all information (external cache allocation information) of the record in which the external cache allocation table 241 has been added or changed (step E-09).
  • FIG. 17 is a flowchart of external cache allocation information transmission processing according to the first embodiment.
  • the external cache allocation information transmission process is performed when the driver control module 301 receives all the information of the record in which the external cache allocation table 241 has been added or changed from the external cache allocation update module 213 (step E-09 in FIG. 16). And executed by the driver control module 301.
  • the driver control module 301 Based on the external cache allocation information received from the external cache allocation update module 213, the driver control module 301 stores access information 311i for the business host 10 having the real external cache 120a corresponding to the information, in the business host table. It is acquired from 311 (step F-01). Based on the acquired access information 311i, the driver control module 301 accesses the corresponding business host 10 and transmits external cache allocation information (step F-02).
  • FIG. 18 is a flowchart of the external cache area control process according to the first embodiment.
  • the external cache area control process is executed by the external cache area control module 112 when the external cache area control module 112 receives the external cache allocation information (step F-02 in FIG. 17) transmitted from the driver control module 301. Is done.
  • the external cache area control module 112 determines whether there is an increase or decrease in the cache area based on the external cache management table 131 and the received external cache allocation information (step G-01). As a result, when there is no increase or decrease in the capacity of the cache area (No in Step G-01), the external cache area control module 112 advances the process to Step G-03. On the other hand, if there is an increase or decrease in the capacity of the cache area (Yes in step G-01), the external cache area control module 112 increases or decreases the cache area to the capacity of the external cache allocation information (step G-02), and the process is stepped. Proceed to G-03.
  • step G-03 the external cache area control module 112 stores the external cache allocation information in the external cache management table 131.
  • the business host 10 can appropriately hold the information of its own external cache.
  • FIG. 19 is a flowchart of log storage processing according to the first embodiment.
  • the log storage process is performed by the log storage module 304 at regular intervals designated by the user or at regular intervals.
  • the log storage module 304 acquires the list information of the business host 10 that is the management target of the storage management server 30 from the business host table 311 (step H-01). Next, the log storage module 304 repeatedly executes the processing (steps H-02 to H-05) as many times as the number of acquired business hosts 10. That is, the log storage module 304 accesses the business host 10, acquires the latest operating status information (step H-03), and calls the external cache area calculation module 303. As a result, the external cache area calculation module 303 executes the external cache area calculation process (FIG. 20), calculates the capacity used as the external cache (cache usage capacity), and returns it. The log storage module 304 acquires the cache usage capacity (step H-04), and stores the operating status information and the acquired cache usage capacity in the business host operating status table 312 (step H-05).
  • the log storage module 304 instructs the external cache capacity update module 214 of the storage apparatus 20 to update the capacity.
  • the capacity update instruction includes information indicating the cache use capacity calculated for each business host 10.
  • the external cache capacity update module 214 executes the external cache capacity update process (see FIG. 21).
  • FIG. 20 is a flowchart of external cache area calculation processing according to the first embodiment.
  • the external cache area calculation process is performed by the external cache area calculation module 303 (step H-04 in FIG. 19) called by the log storage module 304.
  • the I / O per hour may be a value based on the I / O 312c and 312d (for example, an average, minimum value, or maximum value of the plurality of I / Os 312c and 312d).
  • the maximum I / O per 24 hours may be the maximum value among a plurality of daily average I / Os (24 hours of I / O).
  • the external cache area calculation module 303 uses the following equation (2):
  • Cache usage capacity free capacity of the entire drive x (1-1 percentage of usage capacity per hour) (2) Is used to determine the cache usage capacity, and the cache usage capacity is returned to the log storage module 304 (step I-03).
  • the maximum I / O in 24 hours is 6.54 (Mb / Sec)
  • the I / O in the calculation time (23:00 to 24:00) is 1.35 (Mb / Sec)
  • the free capacity of the physical drive 121 of the drive 121 of the business host 10 is 30 GB
  • the ratio of used capacity per hour 1.35 / 6.54 ⁇ 0.21
  • the cache used capacity 30 ⁇ (1-0. 21) ⁇ 23.7 GB.
  • one or more information element values collected by the storage management server 30 may be used. For example, it may be determined based on the throughput of the network. In this case, when the traffic load on the network increases, the cache use capacity may be set lower. Further, it may be determined based on the CPU usage rate. In this case, when the CPU usage rate increases, the cache usage capacity may be reduced.
  • FIG. 21 is a flowchart of the external cache capacity update process according to the first embodiment.
  • the external cache capacity update process is performed by the external cache capacity update module 214 (step H-06 in FIG. 19) called by the log storage module 304.
  • the external cache capacity update module 214 acquires information on each business host 10 from the business host table 311 (step J-01).
  • the external cache capacity update module 214 repeatedly executes the following processing (steps J-02 to J-05) as many times as the number of business hosts 10 acquired.
  • the external cache capacity update module 214 compares the current cache usage capacity of the business host 10 to be processed (steps J-02 to J-05) with the designated cache usage capacity (step J-03). ).
  • the external cache capacity update module 214 processes the next business host 10 (steps J-02 to The processing (steps J-02 to J-05) is executed as the target of J-05).
  • the external cache capacity update module 214 designates the data of the business host 10 to be processed from the external cache reference frequency table 242 and identifies the data with the oldest access date, and deletes the data from the external cache of the corresponding business host 10 (step J -04).
  • the external cache capacity update module 214 compares the current cache usage capacity of the business host 10 to be processed with the designated cache usage capacity (step J-05). As a result, when the current cache usage capacity is smaller than the designated cache usage capacity (No in step J-05), the external cache capacity update module 214 sets the next business host 10 as the processing target (step (step J-02 to J-05) are executed. On the other hand, if the current cache usage capacity is equal to or greater than the specified cache usage capacity (Yes in step J-05), it means that the capacity used as a cache is large, so the external cache capacity update module 214 advances the process to step J-04.
  • the external cache capacity update module 214 requests the external cache allocation update 213 to update the data (step J -06).
  • the external cache allocation update 213 executes the external cache allocation update process (see FIG. 16).
  • the capacity of the data cached in the business host 10 can be made smaller than the specified cache usage capacity, so the load on the business host 10 by holding the data in the real external cache 120a. Can be appropriately reduced.
  • the data is deleted in order starting from the oldest access date. For example, the data having the lowest reference frequency within a predetermined period is deleted in order. It may be a target.
  • Example 2 will be described. Hereinafter, differences from the first embodiment will be mainly described, and description of common points with the first embodiment will be omitted or simplified.
  • FIG. 22 is a diagram illustrating an outline of the reading process according to the second embodiment. Hereinafter, differences from FIG. 3 will be mainly described. In FIG. 22, it is assumed that there is a business host # 3 in addition to the business hosts # 1 and # 2.
  • the business host # 1 has a virtual cache 2201 to which the real external cache 120a of another business host # 2 is mapped.
  • This mapping follows, for example, storage virtualization technology.
  • the data read control module 111 recognizes the real external cache 120a of another business host # 2 or # 3. (That is, whether or not it has a virtual cache 2201) ((1) in FIG. 22).
  • the data read control module 111 determines which of the target read data is based on the external cache management table 132 (see FIG. 23). It is determined whether it exists in the business host 10 ((2) in FIG. 22). If there is no read data in any business host 10, the data read control module 111 acquires the read data by the same processing as in the first embodiment ((3) in FIG. 22).
  • the data read control module 111 receives another data. Read data is read from the real external cache 120a of the business host # 2 ((4) in FIG. 22). As a result, it can be expected that the read data is acquired more quickly than when the read data is read from the storage device 20.
  • FIG. 23 is a configuration diagram of an external cache management table according to the second embodiment.
  • the external cache management table 132 further includes a storage destination business host identifier 131 i and a business host connection identifier 131 j in each record of the external cache management table 131. Based on the storage destination business host identifier 131i, the business host connection identifier 131j, the cache address 131g, and the cache capacity 131e, the storage location where the data is cached (the business host 10 and the storage location on the business host 10) is specified. be able to.
  • the storage destination business host identifier 131i is an identifier of the business host 10 that stores the cache data.
  • the business host connection identifier 131j is an identifier used for accessing the real external cache 120a of another business host 10.
  • FIG. 24 is a flowchart of the data read process of the business host 10 according to the second embodiment.
  • Steps K-01, K-02 and K-03 are substantially the same as steps A-01, A-02 and A-03 in FIG.
  • Step K-04 If the answer is No in Step K-02 (that is, if there is no read data in the real external cache 120a in the business host 10 to which it belongs), the data read control module 111 advances the process to Step K-04.
  • step K-04 the data read control module 111 determines whether there is read data in the real external cache 120a of the other business host 10 depending on whether or not a record corresponding to the read data exists in the external cache management table 132. Determine whether or not (cached or not). In step K-04, it may be determined whether or not there is a virtual cache 2201 to which the real external cache 120a of another business host 10 is mapped.
  • the data read control module 111 reads and reads the read data from the real external cache 120a of the other business host 10 Data is returned to the business application 100 (step K-05). Thereby, the read data can be passed to the business application 100 without reading the read data from the storage device 20.
  • Step K-04 when there is no read data in the real external cache 120a of the other business host 10 (No in Step K-04), the data read control module 111 transmits a read request to the storage apparatus 20 (Step K-06).
  • Step K-06 is substantially the same as Step A-04 in FIG.
  • FIG. 25 is a flowchart of external cache allocation information transmission processing according to the second embodiment.
  • the driver control module 301 acquires access information 311i for each business host 10 from the business host table 311 (step L-01). Next, the driver control module 301 repeatedly executes the following processes (steps L-02 to L-03) as many times as the number of acquired business hosts 10. Based on the access information 311i of the processing target business host 10 in the acquired business host 10, the driver control module 301 accesses the corresponding business host 10 and sends the external cache allocation information (step L-03). .
  • the external cache allocation information further includes a storage destination business host identifier 131i and a business host connection identifier 131j in the external cache allocation information of the first embodiment.
  • the driver control module 301 ends the external cache allocation information transmission processing.
  • the external cache management table 132 of each business host 10 stores not only the records about the data stored in its own external cache but also the external caches of other business hosts 10. Records about data are also stored. That is, each business host 10 can access data cached in another business host 10 based on the record of the external cache management table 132.
  • information in the external cache allocation table 241 is stored in the host computer 10 from the storage device 20 via the storage management server 30. It may be transmitted to the host computer 10 without going through the server 30. Further, for example, at least a part of the functions of the storage management server 30 may be in the storage device 20 or the business host 10.
  • the data read / write control module 211 compares the read data read from the external cache 120a with the read data read from the PDEV 231, and if they match each other, the read data is read out. It may be returned to the business host 10.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

 ホスト計算機が有する第2の記憶デバイスにおける空き領域の全部又は一部が、ストレージ装置の外部のキャッシュメモリ領域(外部キャッシュ)として利用される。ホスト計算機におけるI/O(Input/Output)がライトの場合、ホスト計算機からストレージ装置にライト要求が送信され、ストレージ装置は、そのライト要求に付随するデータを、このストレージ装置が有するキャッシュメモリ領域であるメインキャッシュに書き込み、メインキャッシュ内のデータを、ストレージ装置が有する第1の記憶デバイスに書き込む。ストレージ装置は、メインキャッシュ内のデータを、ホスト計算機が有する外部キャッシュに書き込む。ホスト計算機におけるI/Oがリードの場合、ホスト計算機が、リードの対象のデータであるリードデータが外部キャッシュにあるか否かを判定し、その判定の結果が肯定的であれば、外部キャッシュからリードデータを読み出す。

Description

計算機システムおよび記憶制御方法
 本発明は、ホスト計算機で利用されるデータを管理する技術に関する。
 高速記憶デバイスの価格低下が進んでおり、業務(例えばデータベース管理)を実行するホスト計算機(以下、業務ホスト)に、大容量メモリやSSD(Solid state disk)が採用されることがある。
 また、ストレージシステムにおいて、アクセス速度の速い記憶デバイスに一時的にデータをキャッシュすることにより、ホスト計算機への応答を迅速にする技術が知られている。キャッシュに関する技術としては、例えば、クラスタ構成のストレージにおいて、クラスタ間を接続するネットワークを介して、各クラスタのキャッシュメモリに保持されたデータの更新値や更新前の値を直接用いることにより、キャッシュメモリの利用効率の低下を回避する技術が知られている(特許文献1参照)。
 また、ストレージ装置で記憶ボリュームのデータについて複数の複製を作成する際に、複数の記憶ボリュームのデータ整合性を保証できる技術が知られている(特許文献2参照)。
特開2003-131818号公報 特開2007-265441号公報
 上記したように、ホスト計算機が記憶デバイス(特に、SSDのような高速記憶デバイス)を有するが、その記憶デバイスに余剰リソースとしての空き領域が存在する。しかし、この空き領域は、有効に活用されていない。
 ホスト計算機が有する第2の記憶デバイスにおける空き領域の全部又は一部が、ストレージ装置の外部のキャッシュメモリ領域(外部キャッシュ)として利用される。ホスト計算機におけるI/O(Input/Output)がライトの場合、ホスト計算機からストレージ装置にライト要求が送信され、ストレージ装置は、そのライト要求に付随するデータ(以下、ライトデータ)を、このストレージ装置が有するキャッシュメモリ領域(以下、メインキャッシュ)に書き込み、メインキャッシュ内のライトデータを、ストレージ装置が有する第1の記憶デバイスに書き込む。また、ストレージ装置は、メインキャッシュ内のデータ(例えば、上記ライトデータ)を、ホスト計算機が有する外部キャッシュに書き込む。ホスト計算機におけるI/Oがリードの場合、ホスト計算機が、リードの対象のデータであるリードデータが外部キャッシュにあるか否かを判定し、その判定の結果が肯定的であれば、外部キャッシュからリードデータを読み出す。
図1は、実施例1に係る計算機システムの全体構成図である。 図2は、実施例1に係る書き込み処理の概要を示す図である。 図3は、実施例1に係る読み出し処理の概要を示す図である。 図4は、実施例1に係る移動処理の概要を示す図である。 図5は、実施例1に係る外部キャッシュ管理テーブルの構成図である。 図6は、実施例1に係る外部キャッシュ割り当てテーブルの構成図である。 図7は、実施例1に係る外部キャッシュ参照頻度テーブルの構成図である。 図8は、実施例1に係る業務ホストテーブルの構成図である。 図9は、実施例1に係る業務ホスト稼働状況テーブルの構成図である。 図10は、実施例1に係る外部キャッシュ利用状況画面を示す図である。 図11は、実施例1に係る外部キャッシュ設定画面を示す図である。 図12は、実施例1に係る業務ホストのデータ読み出し処理のフローチャートである。 図13は、実施例1に係るストレージ装置のデータ読み書き処理のフローチャートである。 図14は、実施例1に係る外部キャッシュ管理処理のフローチャートである。 図15は、実施例1に係る外部キャッシュ検索処理のフローチャートである。 図16は、実施例1に係る外部キャッシュ割り当て更新処理のフローチャートである。 図17は、実施例1に係る外部キャッシュ割り当て情報送信処理のフローチャートである。 図18は、実施例1に係る外部キャッシュ領域制御処理のフローチャートである。 図19は、実施例1に係るログ保存処理のフローチャートである。 図20は、実施例1に係る外部キャッシュ領域計算処理のフローチャートである。 図21は、実施例1に係る外部キャッシュ容量更新処理のフローチャートである。 図22は、実施例2に係る読み出し処理の概要を示す図である。 図23は、実施例2に係る外部キャッシュ管理テーブルの構成図である。 図24は、実施例2に係る業務ホストのデータ読み出し処理のフローチャートである。 図25は、実施例2に係る外部キャッシュ割り当て情報送信処理のフローチャートである。 図26は、実施例1に係る業務ホストの構成例を示す。 図27は、実施例1に係るストレージ装置の構成例を示す。 図28は、実施例1に係るストレージ管理サーバの構成例を示す。
 幾つかの実施例を、図面を参照して説明する。なお、以下に説明する実施例は特許請求の範囲にかかる発明を限定するものではなく、また実施例の中で説明されている諸要素及びその組み合わせの全てが発明の解決手段に必須であるとは限らない。
 なお、以下の説明では、「aaaテーブル」の表現にて各種情報を説明することがあるが、各種情報は、テーブル以外のデータ構造で表現されていてもよい。データ構造に依存しないことを示すために「aaaテーブル」を「aaa情報」と呼ぶことができる。
 また、以下の説明では、各情報の内容を説明する際に、「識別情報」、「識別子」、「名」、「名前」、「ID」という表現を用いるが、これらについてはお互いに置換が可能である。
 また、以下の説明において、「プログラム」、「モジュール」を主語として説明を行う場合があるが、プログラム、モジュールは、制御デバイスによって実行されることで定められた処理を記憶資源(例えばメモリ)及び通信インタフェースデバイス(例えば通信ポート)を用いながら行うため、制御デバイスを主語とした説明としてもよい。制御デバイスは、プロセッサ(典型的にはCPU(Central Processing Unit)のようなマイクロプロセッサ)を含むが、更に、所定の処理を行う専用のハードウェア回路(例えば、暗号化を行う回路、復号化を行う回路、圧縮を行う回路及び伸長を行う回路のうちの少なくとも1つ)を含んで良い。プログラムを主語として開示された処理は、制御デバイス、或いはその制御デバイスを有する装置(例えば、後述の業務ホスト、ストレージ装置、或いはストレージ管理サーバ)が行う処理としてもよい。また、プログラムの一部または全ては専用ハードウェア回路によって実現されてもよい。また、各種プログラムはプログラム配布サーバや、計算機が読み取り可能な記憶メディアによって各計算機にインストールされてもよい。
 また、ストレージ管理サーバが入出力デバイスを有してもよい。入出力デバイスの例としては、ディスプレイとキーボードとポインタデバイスが考えられるが、これ以外のデバイスであってもよい。
 また、計算機システムにおける管理システムは、1以上の計算機の集合で良い。計算機が表示用情報を表示する場合は、その計算機が管理システムで良い。また、計算機と表示用装置の組み合わせも管理システムで良い。また、管理処理の高速化や高信頼化のために複数の計算機で管理システムと同等の処理を実現してもよく、この場合は、当該複数の計算機(表示を表示用装置が行う場合は表示用装置も含め)が管理システムで良い。
 また、制御デバイス(及びその制御デバイスを有する計算機)の「表示する」という行為は、制御デバイスが、その制御デバイスを有する計算機の表示デバイスに画面部品等を表示する行為と、表示デバイスを有する第2の計算機に、その表示デバイスに表示される画面部品等の表示用情報を送信する行為のいずれであっても良い。第2の計算機は、表示用情報を受信した場合、その表示用情報が表す画面部品等を表示デバイスに表示することができる。
 図1は、実施例1に係る計算機システムの全体構成図である。
 計算機システム1は、1以上の業務用のホスト計算機(業務ホスト)10と、1以上のストレージ装置20と、ストレージ管理サーバ30と、管理計算機40とを有する。ストレージ管理サーバ30と管理計算機40が管理システムの構成要素である。管理計算機40が、入出力コンソールとしての計算機で良く、ストレージ管理サーバ30が、制御コンソールとしての計算機で良い。
 業務ホスト10と、ストレージ装置20とは、例えば、第1の通信ネットワーク(例えばSAN(Storage Area Network)60)を介して通信可能に接続されている。また、業務ホスト10と、ストレージ装置20と、ストレージ管理サーバ30と、管理計算機40とは、例えば、第2の通信ネットワーク(例えば、LAN(Local Area Network)50)を介して接続されている。第1及び第2の通信ネットワークは、一体でも良い。
 業務ホスト10は、業務に関する各種処理を実行し、ストレージ装置20からデータを読み出したり、ストレージ装置20へデータを書き込んだりする。ストレージ装置20は、業務ホスト10で利用されるデータを記憶する。ストレージ管理サーバ30は、例えば、計算機により構成され、ストレージ装置20及び業務ホスト10を管理する情報を記憶し、ストレージ装置20及び業務ホスト10を管理する各種処理を実行する。管理計算機40は、例えば、PCにより構成され、ストレージ管理サーバ30で管理されている情報に基づく各種画面を表示したり、管理者から各種設定を受け付けてストレージ管理サーバ30に通知したりする。
 業務ホスト10は、図26に示すように、通信インタフェースデバイス(I/F)、記憶資源及びそれらに接続された制御デバイス(以下、ホスト制御デバイス)141を有する。I/Fとして、例えば、SAN60を介して通信するSAN I/F151(例えばHBA(Host Bus Adapter))と、LAN50を介して通信するLAN I/F153(例えばLANコントローラ)とがある。記憶資源は、例えば、メモリ154と、ドライブ121と、補助記憶デバイス130とを含む。メモリ120は、業務アプリケーション100と、キャッシュ制御プログラム110とを記憶する。業務アプリケーション100は、ホスト制御デバイス141内のプロセッサにより実行され、業務における各種処理を実行する。キャッシュ制御プログラム110は、データ読み出し制御モジュール111と、外部キャッシュ領域制御モジュール112とを含み、ホスト制御デバイス141内のプロセッサにより実行される。ドライブ121は、例えば、補助記憶デバイス130と比較して高速にリード/ライト可能な記憶デバイスであり、例えば、SSDである。補助記憶デバイス130は、例えば、HDDである。補助記憶デバイス130は、外部キャッシュ管理テーブル131を格納する。
 ストレージ装置20は、図27に示すように、通信インタフェースデバイス(I/F)、1以上の不揮発性の物理記憶デバイス(以下、PDEV)231、記憶資源及び内部ネットワーク420を介してそれらに接続された制御デバイス(以下、ストレージ制御デバイス)281を有する。内部ネットワーク420は、例えば図示しないスイッチであっても良いしバスでも良い。I/Fとして、例えば、SAN I/F283(例えば1又は複数の通信ポートを有するインタフェースボード)と、LAN I/F282(例えばLANコントローラ)とがある。PDEV231は、例えば、SAS-HDD(SAS:Serial Attached SCSI))である。PDEV231は、SAS-HDDに代えて他種のHDDでも良いし、HDD以外の記憶デバイス(例えばSSD)でも良い。複数のPDEVでRAIDグループが形成されても良い。1以上のPDEVに基づき論理記憶デバイス(以下、LDEV)が形成され、LDEVがボリュームとして業務ホスト10にマウントされて良い。記憶資源は、例えば、第1メモリ210と、第2メモリ220と、補助記憶デバイス(例えばHDD)240とを含む。第1メモリ210は、データ読み書き制御モジュール211と、外部キャッシュ管理モジュール212と、外部キャッシュ割り当て更新モジュール213と、外部キャッシュ容量更新モジュール214と、外部キャッシュ割り当てテーブル241と、外部キャッシュ参照頻度テーブル242とを記憶する。これらのモジュール211~214は、ストレージ制御デバイス281内のプロセッサにより実行される。第2メモリ220は、例えば揮発性(又は不揮発性)のメモリであり、第2メモリ220の少なくとも一部がキャッシュメモリ領域(以下、メインキャッシュ)221として利用される。
 ストレージ管理サーバ30は、図28に示すように、通信インタフェースデバイス(I/F)、記憶資源及びそれらに接続された制御デバイス(以下、サーバ制御デバイス)341を有する。I/Fとしては、例えば、LAN I/F353がある。記憶資源は、例えば、メモリ355と、補助記憶デバイス(例えば、HDD)310とを含む。メモリ355は、例えば、ドライバ制御モジュール301と、外部キャッシュ検索モジュール302と、外部キャッシュ領域計算モジュール303と、ログ保存モジュール304とを記憶する。これらのモジュール301~304は、サーバ制御デバイス341内のプロセッサにより実行される。補助記憶デバイス310は、業務ホストテーブル311と、業務ホスト稼働状況テーブル312とを記憶する。
 以下、図2乃至図4を用いて、データの書込み処理、データの読み出し処理、メインキャッシュからのデータ移動処理の概要を説明する。なお、図2乃至図4では、業務ホスト10は、業務ホスト#1及び#2の2つであるとする。
 図2は、実施例1に係る書き込み処理の概要を示す図である。なお、図2~図4では、ディスク184は、業務ホスト#1についてのみ示されているが、ディスク184は、他の業務ホストにも存在する。また、1つの業務ホストに2以上のディスク184が存在しても良い。
 ストレージ装置20にVDEV391がある。VDEV391は、仮想的なLDEVである。VDEV391は、1以上の仮想的な領域を有する。仮想的な領域は、メインキャッシュ221の仮想的な外部キャッシュ392である。仮想外部キャッシュ392には、業務ホスト10のドライブ121の空き領域120のうちの全部又は一部(以下、実外部キャッシュ)120aがマッピングされている。このマッピングは、例えば、ストレージ仮想化技術に従う。従って、仮想外部キャッシュ392に書き込まれるデータは、実際には、その仮想外部キャッシュ392にマッピングされた実外部キャッシュ120aに書き込まれ、仮想外部キャッシュ392から読み出されるデータは、実際には、その仮想外部キャッシュ392にマッピングされた実外部キャッシュ120aから読み出される。つまり、実外部キャッシュ120aは、ストレージ装置20の外部のキャッシュメモリ領域である。
 業務ホスト#1において、業務アプリケーション100により、ディスク184に対するデータの書き込みが発生した場合には、業務ホスト10からデータのライト要求がストレージ装置20に送信される。ストレージ装置20において、SAN I/F283がライト要求を受信し、データ読み書き制御モジュール211が、その受信したライト要求に付随する書込み対象データ(ライトデータ)をメインキャッシュ221に書き込む(図2の(1))。データ読み書き制御モジュール211は、ライトデータをメインキャッシュ221に書き込んだ場合に、ライト要求に対する応答を業務ホスト#1に返して良い。
 その後、読み書き制御モジュール211が、ライトデータを、メインキャッシュ221からPDEV231(ディスク184に対応するLDEV(ライト要求で指定されたライト先のLDEV)の基になっているPDEV231)に対して書き込む(図2の(2))。
 また、外部キャッシュ管理モジュール212は、メインキャッシュ221内のライトデータを、仮想外部キャッシュ392に書き込むことにより、そのライトデータを、その仮想外部キャッシュ329にマッピングされた、業務ホスト#1の実外部キャッシュ120aに書き込む(図2の(3))。なお、ライトデータの書き込み先の実外部キャッシュ120aは、そのライトデータの送信元の業務ホスト#1内の実外部キャッシュ120aに代えて、他の業務ホスト#2の実外部キャッシュ120aであっても良い。
 なお、ディスク184とは、ストレージ装置20のLDEVがマウントされたことによりLDEVに対応した記憶空間である。実施例1では、便宜上、「ディスク」という表現を採用したが、ディスク184は、ディスク型のPDEV以外のPDEVに基づくLDEVに対応していても良い。
 図3は、実施例1に係る読み出し処理の概要を示す図である。
 業務ホスト#1において、業務アプリケーション100により、ディスク184に対するデータの読み出しが発生した場合には、読み出し対象のデータ(リードデータ)の格納状況に応じて、以下に示す4つの読み出しパターンのいずれかにより、リードデータを読み出される。
 (第1の読み出しパターン)
読み出しを要求する業務アプリケーション100を有する業務ホスト#1の実外部キャッシュ120aにリードデータがキャッシュされているか否かを、データ読み出し制御モジュール111が判定する。業務ホスト#1の実外部キャッシュ120aにリードデータがキャッシュされていると判定された場合には、データ読み出し制御モジュール111が、その実外部キャッシュ120aからリードデータを読み出す(図3の(1))。この場合には、ストレージ装置20へのリード要求の発行、つまり、ストレージ装置20へのアクセスは不要である。業務アプリケーション100は、データ読み出し制御モジュール111により読み出されたデータを取得することができる。
 (第2の読み出しパターン)
業務ホスト#1の実外部キャッシュ120aにリードデータがキャッシュされていないと判定された場合には、データ読み出し制御モジュール111が、リードデータのリード要求(ディスク184に対応したLDEVを指定したリード要求)をストレージ装置20に送信する。ストレージ装置20において、SAN I/F283がリード要求を受信し、データ読み書き制御モジュール211が、そのリード要求に従うリードデータがメインキャッシュ221にキャッシュされているか否かを判定する。リードデータがメインキャッシュ221にキャッシュされている場合には、データ読み書き制御モジュール211が、メインキャッシュ221からリードデータを読み出し、上記リード要求の応答として、そのリードデータを業務ホスト#1に送信する(図3の(2))。
 (第3の読み出しパターン)
リードデータがメインキャッシュ221にキャッシュされていないが他の業務ホスト#2の実外部キャッシュ120aにキャッシュされていると判定した場合には、データ読み書き制御モジュール211が、業務ホスト#2の実外部キャッシュ120aからリードデータを読み出し、上記リード要求の応答として、そのリードデータを業務ホスト#1に送信する(図3の(3))。第3の読み出しパターンに従う読み出し処理にかかる時間は、後述の第4の読み出しパターンに従う読み出し処理にかかる時間よりも短く済む可能性がある。なお、図3の(3)では、データ読み書き制御モジュール211は、業務ホスト#2の実外部キャッシュ120aからリードデータを読み出すことに並行して(例えば同時に)、PDEV231(ディスク184に対応するLDEV(リード要求で指定されたリード元のLDEV)の基になっているPDEV231)からリードデータを読み出すことができる。データ読み書き制御モジュール211は、業務ホスト#2の実外部キャッシュ120aとPDEV231のうちより早く取得できたリードデータを、上記リード要求の応答として、業務ホスト#1に送信することができる。
 (第4の読み出しパターン)
リードデータがメインキャッシュ221にも他の業務ホスト#2の実外部キャッシュ120aにもキャッシュされていないと判定した場合には、データ読み書き制御モジュール211が、PDEV231(ディスク184に対応するLDEV(リード要求で指定されたリード元のLDEV)の基になっているPDEV231)からリードデータを読み出し、そのリードデータをメインキャッシュ221に格納し、上記リード要求の応答として、そのリードデータを業務ホスト#1に送信する(図3の(4))。
 図4は、実施例1に係る移動処理の概要を示す図である。
 ストレージ装置20において、外部キャッシュ管理モジュール212が、メインキャッシュ221内のデータ(以下、図4の説明において「対象データ」)の上書き又は削除を検知する(図4の(1))。外部キャッシュ管理モジュール212が、ストレージ管理サーバ30内の外部キャッシュ検索モジュール302に、対象データの移動先(キャッシュ先)となる業務ホスト10の検索を依頼し、外部キャッシュ検索モジュール302から、キャッシュ先となる業務ホスト10の指定を受ける(図4の(2))。外部キャッシュ管理モジュール212は、指定された業務ホスト10の外部キャッシュ120aに、対象データを格納する(図4の(3))。
 次に、実施例1に係る各テーブルの構成を説明する。
 図5は、外部キャッシュ管理テーブル131の構成図である。
 外部キャッシュ管理テーブル131は、業務ホスト10に存在する。外部キャッシュ管理テーブル131は、外部キャッシュ120aに格納されているデータ(図5~図7の説明において「キャッシュデータ」)毎に、データ識別子131aと、ストレージ識別子131bと、接続識別子131cと、ディスク識別子131dと、キャッシュ容量131eと、データアドレス131fと、キャッシュアドレス131gと、最終アクセス日時131hとを有する。これらの情報131a~131hは、下記の通りである。
(*)データ識別子131aは、キャッシュデータを示す識別子である。
(*)ストレージ識別子131bは、キャッシュデータと一致するデータ(図5~図7において便宜上「オリジナルデータ」と言う)が格納されるLDEVを有するストレージ装置20の識別子である。
(*)接続識別子131cは、キャッシュデータのオリジナルデータが格納されるPDEVに接続する際に業務ホスト10が利用する接続識別子である。接続識別子としては、例えば、LUN(Logical Unit Number)を用いることができる。
(*)ディスク識別子131dは、キャッシュデータのオリジナルデータの読出し元になり得るディスク(図5のテーブル131を有する業務ホスト10内のディスク)184の識別子である。
(*)キャッシュ容量131eは、キャッシュデータの容量を表す。この容量は、例えば、X個(Xは、1以上の整数)のページ(単位記憶領域)と同じ容量で良い。つまり、キャッシュデータは、ページの容量の倍数で良い(1ページの容量は、例えば、42MBである)。キャッシュデータの容量は、ページの容量に依存しない容量でも良い。
(*)データアドレス131fは、キャッシュデータのオリジナルデータが格納される領域のアドレス(例えば、LBA:Logical Block Address)である。なお、データアドレス131fとしてのアドレスは、業務ホスト10内のディスク184に属するアドレスである。
(*)キャッシュアドレス131gは、キャッシュデータが格納される領域(実外部キャッシュ120a内の領域)のアドレスである。
(*)最終アクセス日時131hは、キャッシュデータに最後にアクセスした日時を表す。なお、日時は、年、月、日、時、分及び秒で表現されるが、これらのうちの少なくとも1つの単位がなくても良い。
 外部キャッシュ管理テーブル131の一番上のレコードによると、下記がわかる。
(*)キャッシュデータ“1”のオリジナルデータは、ストレージ装置“VSP#01”のLDEV“00”に対応したディスク“00:20:03”のアドレス“0x000120”から読み出し可能である。
(*)キャッシュデータ“1”の容量は、“84MB”である。
(*)キャッシュデータ“1”は、図5のテーブル131を有する業務ホスト10内の実外部キャッシュ120aのアドレス“0x000204”から読み出し可能であり、そのアドレス“0x000204”にあるキャッシュデータ“1”が最後にアクセスされた日時は、“2011/11/01 19:30:00”である。
 図6は、外部キャッシュ割り当てテーブル241の構成図である。
 外部キャッシュ割り当てテーブル241は、ストレージ装置20に存在する。外部キャッシュ割り当てテーブル241は、キャッシュデータ毎に、データ識別子241aと、業務ホスト識別子241bと、業務ホスト接続識別子241cと、ディスク識別子241dと、キャッシュ容量241eと、データアドレス241fと、キャッシュアドレス241gと、最終アクセス日時241hとを有する。これらの情報は、下記の通りである。
(*)データ識別子241aは、キャッシュデータの識別子である。
(*)業務ホスト識別子241bは、キャッシュデータを格納している仮想外部キャッシュ392にマッピングされた実外部キャッシュ120aを有する業務ホスト10の識別子である。
(*)業務ホスト接続識別子241cは、キャッシュデータを格納している仮想外部キャッシュ392にマッピングされた実外部キャッシュ120aに接続する際に利用するための識別子である。
(*)LDEV識別子241dは、キャッシュデータのオリジナルデータの読出し元になり得るLDEVの識別子である。
(*)キャッシュ容量241eは、キャッシュデータの容量である。
(*)データアドレス241fは、キャッシュデータのオリジナルデータを格納している領域(LDEV内の領域)のアドレスである。
(*)キャッシュアドレス241gは、キャッシュデータを格納している領域(仮想外部キャッシュ392内の領域)のアドレスである。
(*)最終アクセス日時241hは、キャッシュデータに最後にアクセスした日時を表す。
 外部キャッシュ割り当てテーブル241の一番上のレコードによると、下記のことがわかる。
(*)キャッシュデータ“1”は、業務ホスト“HOST_01”内の外部キャッシュ120aにある。
(*)その外部キャッシュ120aに、接続識別子“X00”を用いて接続することができる。
(*)キャッシュデータ“1”のオリジナルデータは、LDEV“00:20:03”のアドレス“0x000120”の領域に存在する。
(*)キャッシュデータ“1”の容量は、“84MB”である。
(*)キャッシュデータ“1”は、外部キャッシュ120aのアドレス“0x000204”に存在する。
(*)キャッシュデータ“1”が最後にアクセスされた日時は、“2011/11/01 19:30:00”である。
 図7は、外部キャッシュ参照頻度テーブル242の構成図である。
 外部キャッシュ参照頻度テーブル242は、ストレージ装置20に存在する。外部キャッシュ参照頻度テーブル242は、キャッシュデータ毎に、データ識別子242aと、ディスク識別子242bと、アクセス元業務ホスト識別子242cと、アクセス日時242dとを有する。これらの情報は、下記の通りである。
(*)データ識別子242aは、キャッシュデータの識別子である。
(*)LDEV識別子242bは、キャッシュデータのオリジナルデータの読み出し元になり得るLDEVの識別子である。
(*)アクセス元業務ホスト識別子242cは、キャッシュデータのオリジナルデータを読み出し対象としたリード要求を送信した業務ホスト(図7において「読み出し元ホスト」)の識別子である。
(*)アクセス日時242dは、読み出し元ホストからのリード要求に従ってキャッシュデータがアクセスされた日時を表す。
 外部キャッシュ参照頻度テーブル242の一番上のレコードによると、下記のことがわかる。
(*)キャッシュデータ“1”のオリジナルデータは、LDEV“00:20:03”から読み出し可能である。
(*)キャッシュデータ“1”は、業務ホスト“HOST_01”からのリード要求に従い、“2011/11/01 10:00:00”にアクセスされた。
 図8は、業務ホストテーブル311の構成図である。
 業務ホストテーブル311は、ストレージ管理サーバ30に存在する。業務ホストテーブル311は、業務ホスト10毎に、業務ホスト識別子311aと、用途311bと、キャッシュ利用可否311cと、利用可能期間311dと、ドライブ全体空き容量311eと、キャッシュ利用容量311fと、データ参照アクセス許可I/O閾値311gと、データ書き込み許可スループット閾値311hと、アクセス情報311iとを有する。これらの情報は、下記の通りである。
(*)業務ホスト識別子311aは、業務ホスト10の識別子である。
(*)用途311bは、業務ホスト10の用途を表す。
(*)キャッシュ利用可否311cは、業務ホスト10の実外部キャッシュ120aの利用が可能か否かを表す。
(*)利用可能期間311dは、実外部キャッシュ120aとして利用可能な期間を表す。
(*)ドライブ全体空き容量311eは、業務ホスト10のドライブ131の全体の空き容量を表す。
(*)キャッシュ利用容量311fは、ドライブ131の全容量のうち実外部キャッシュ120aとして利用してされている領域の容量を表す。
(*)データ参照アクセス許可I/O閾値311gは、業務ホスト10の実外部キャッシュとする記憶領域の利用可否を決定するための、ドライブ131のI/O速度(単位時間当たりに入出力されるデータの量)の閾値を表す。
(*)データ書き込み許可スループット閾値311hは、外部キャッシュ120aへの書き込みが許可されるネットワークスループット(データ転送速度)の下限値である。
(*)アクセス情報311iは、業務ホスト10との通信に用いる情報(例えば、ユーザIDとパスワード)である。
 業務ホストテーブル311の一番上のレコードによると、下記のことがわかる。
(*)業務ホスト“HOST_01”は、“データ算出”の用途で使用され、外部キャッシュとして利用が可能であり、外部キャッシュとしての利用可能期間が“2011/11/01~2011/11/10”である。
(*)業務ホスト“HOST_01”のドライブ全体空き容量が30GBであり、そのうちキャッシュ利用容量が8GBである。
(*)業務ホスト“HOST_01”のデータ参照アクセス許可I/O閾値が“80Mb/Sec”であり、業務ホスト“HOST_01”のデータ書き込み許可スループット閾値が“50Mb/Sec”である。
(*)業務ホスト“HOST_01”のアクセス情報が“UserID/Pass”である。
 図9は、業務ホスト稼働状況テーブル312の構成図である。
 業務ホスト稼働状況テーブル312は、ストレージ管理サーバ30に存在する。業務ホスト稼働状況テーブル312は、業務ホスト10毎に、業務ホスト識別子312aと、計測時間312bと、Read平均I/O312cと、Write平均I/O312dと、ネットワーク受信平均スループット312eと、ネットワーク送信平均スループット312fと、キャッシュ利用容量312gとを有する。これらの情報は、下記の通りである。
(*)業務ホスト識別子312aは、業務ホスト10の識別子である。
(*)計測時間312bは、業務ホスト10について稼働状況を計測した時間帯(計測の開始日時及び終了日時)を表す。
(*)Read平均I/O312cは、業務ホスト10における読み出しの速度の平均値を表す。なお、この速度は、ストレージ装置20からデータを読み出す速度であって、外部キャッシュ120aからデータを読み出す速度は除外されて良い。また、Read平均I/O312cに代えて、他種のリード負荷(例えば、リード平均レスポンスタイム(リード要求を発行してから応答を受けるまでの平均時間)を表す情報が採用されても良い。
(*)Write平均I/O312dは、業務ホスト10における書き込みの速度の平均値を表す。なお、この速度は、ストレージ装置20にデータを書き込む速度で良い。また、Write平均I/O312dに代えて、他種のライト負荷(例えば、ライト平均レスポンスタイム(ライト要求を発行してから応答を受けるまでの平均時間)を表す情報が採用されても良い。
(*)ネットワーク受信平均スループット312eは、業務ホスト10のネットワーク受信スループットの平均値を表す。ネットワーク受信スループットとは、業務ホスト10がネットワーク(本実施例ではSAN60)を介して単位時間当たりに受信するデータの量である。スループット312eに代えて、他種の通信負荷を表す情報が採用されても良い。
(*)ネットワーク送信平均スループット312fは、業務ホスト10のネットワーク送信スループットの平均値を表す。ネットワーク送信スループットとは、業務ホスト10がネットワーク(本実施例ではSAN60)を介して単位時間当たりに送信するデータの量である。スループット312fに代えて、他種の通信負荷を表す情報が採用されても良い。
(*)キャッシュ利用容量312gは、業務ホスト10において外部キャッシュ120aとして利用されている記憶領域の容量を表す。
 次に、ストレージ管理サーバ30が管理計算機40に表示する画面の幾つか例を、図10及び図11を参照して説明する。なお、図10及び図11には、目的に応じた画面部品(例えば、テキストボックス或いはラジオボタン)があるが、画面部品は図示の種類に限られない。また、図10及び図11に示す画面は、サーバ制御デバイス341で所定のコンピュータプログラム(例えばドライバ制御モジュール301)が実行されることで表示される。
 図10は、実施例1に係る外部キャッシュ利用状況画面を示す。
 ストレージ管理サーバ30は、利用状況画面の表示指示を管理計算機40から受けた場合(或いは、他の所定のイベントが発生した場合)に、外部キャッシュ利用状況画面1000を管理計算機40に表示する。
 外部キャッシュ利用状況画面1000は、外部キャッシュ利用状況表示領域1001と、外部キャッシュ総容量表示領域1010と、業務ホスト別状況表示領域1020とを有する。
 外部キャッシュ利用状況表示領域1001には、ストレージ管理サーバ30が管理する業務ホスト10上にある実外部キャッシュ120aの利用状況に関する情報が、業務ホスト毎に表示される。実施例1では、業務ホストテーブル311に格納されている情報が、業務ホスト毎に表示される。この表示領域1001には、実外部キャッシュ120aの設定を変更する対象とする業務ホスト10を指定する変更指定ラジオボタン1002と、変更指定ラジオボタン1002により指定された業務ホスト10の実外部キャッシュ120aの設定を変更するための外部キャッシュ設定画面(図11参照)を表示させるための外部キャッシュ設定変更ボタン1003とが表示される。
 外部キャッシュ総容量表示領域1010には、ストレージ管理サーバ30が管理する複数の業務ホスト10の外部キャッシュの総容量を示すグラフが表示される。実施例1では、外部キャッシュ総容量表示領域1010には、例えば、時刻と、実外部キャッシュ120aの総容量との関係を示すグラフが表示される。このグラフによれば、時間経過に伴う、実外部キャッシュ120aの総容量の遷移、がわかる。
 業務ホスト別状況表示領域1020には、いずれかの業務ホスト10についての実外部キャッシュ120aの利用状況に関する情報が表示される。実施例1では、この表示領域1020には、業務ホスト10の一覧を選択するためのプルダウンメニュー1021と、プルダウンメニュー1021に表示された一覧から選択された業務ホスト10の利用状況を示す個別情報表示領域1022と、プルダウンメニュー1021で選択された業務ホスト10の外部キャッシュ容量(実外部キャッシュ120aの容量)及びディスクI/Oと時刻との関係を示すグラフが表示される個別グラフ表示領域1023とが表示される。このグラフは、ストレージ管理サーバ30内の業務ホスト稼働状況テーブル312を基に生成される。具体的には、例えば、各時刻でのディスクI/Oは、各計測時間312bに対応するRead平均I/O312c及びWrite平均I/O312dから特定され、各時刻での外部キャッシュ容量は、各計測時間312bに対応する最終アクセス日時241hから特定される。
 図11は、実施例1に係る外部キャッシュ設定画面を示す図である。
 ストレージ管理サーバ30は、図10の画面1000において外部キャッシュ設定変更ボタン1003が押下されたとの通知を管理計算機40から受けた場合に(或いは他のイベントが発生した場合に)、外部キャッシュ設定画面2000を管理計算機40に表示する。なお、外部キャッシュ設定ボタン1003が押下されたとの通知には、図10の画面1000の変更指定ラジオボタン1002により指定されている業務ホスト10に関する情報(例えば、業務ホスト識別子)が含まれていて良い。
 外部キャッシュ設定画面2000には、変更対象として指定されている業務ホスト10の設定を変更するための設定変更領域2010と、設定変更領域2010において指定した設定を実行するための外部キャッシュ設定実行ボタン2020と、設定変更領域2010において指定した設定を取り消す(キャンセルする)ためのキャンセルボタン2021とが表示される。
 設定変更領域2010には、対応する業務ホスト10のドライブ121を、実外部キャッシュ120aとして利用可能か否かの設定を行うための利用可否設定領域2011と、実外部キャッシュ120aとしての利用を許可する時間(期間)を設定するための利用許可時間設定領域2012と、実外部キャッシュ120aとして利用可能な記憶容量を設定する利用容量設定領域2013と、実外部キャッシュ120aのデータの参照を許可する基準となるI/O閾値(データ参照アクセス許可I/O閾値)を設定するためのI/O閾値設定領域2014と、実外部キャッシュ120aのデータの書込みを許可する基準となるネットワークスループット閾値(データ書き込み許可スループット閾値)を設定するためのスループット閾値設定領域2015とが表示される。
 実施例1では、利用許可時間設定領域2012は、常に利用を許可することを示す24時間指定、許可する時間を設定する時間指定、許可する期間を指定する期間指定、許可する曜日を設定する曜日指定のいずれかを選択可能となっており、対応する領域において指定する情報を入力可能となっている。
 利用容量設定領域2013は、実外部キャッシュ120aの容量を動的に設定するように設定する自動制御設定領域と、実外部キャッシュ120aの容量を固定の値として設定する容量指定領域とを有する。実施例1では、自動制御設定領域は、容量を決定するために利用する属性(例えば、ディスクI/O)を選択する属性選択リストボックスを有する。なお、実外部キャッシュ120aの容量が動的に自動で設定変更される可変値であるか手動による固定値であるかを表す情報は、例えば、ストレージ管理サーバ30のメモリ355に格納され、実外部キャッシュ120aの容量が可変値の場合、外部キャッシュ領域計算モジュール303が、定期的(又は不定期的)に、外部キャッシュ領域計算処理(図20)を実行し、その計算処理により算出された容量になるよう、実外部キャッシュ120aの容量を変更して良い。
 次に、実施例1に係る計算機システムにおいて行なわれる処理を説明する。
 図12は、業務ホスト10のデータ読み出し処理のフローチャートである。
 データ読み出し処理は、例えば、キャッシュ制御プログラム110がディスク184に対するリードを検知した場合に、データ読み出し制御モジュール111により実行される。
 データ読み出し制御モジュール111は、このモジュール111を実行する業務ホスト10に実外部キャッシュ120aがあるか否かを判定する(ステップA-01)。外部キャッシュを持っているか否かは、外部キャッシュ管理テーブル131にレコードが存在するか否かにより判定することができる。
 この結果、実外部キャッシュ120aが無い場合(ステップA-01でNo)、データ読み出し制御モジュール111は、処理をステップA-04に進める。
 一方、実外部キャッシュ120aがある場合(ステップA-01でYes)、データ読み出し制御モジュール111は、読み出し対象のデータ(リードデータ)に対応するレコードが外部キャッシュ管理テーブル131に存在するか否かにより、実外部キャッシュ120aにリードデータがあるか否か(キャッシュされているか否か)を判定する(ステップA-02)。具体的には、データ読み出し制御モジュール111は、リード要求に含まれる接続識別子及びデータアドレスに対応する値を格納するレコードが存在するか否かを判定する。
 この結果、実外部キャッシュ120aに対応するリードデータがない場合(ステップA-02でNo)、データ読み出し制御モジュール111は、処理をステップA-04に進める。
 一方、外部キャッシュに対応するリードデータがある場合(ステップA-02でYes)、データ読み出し制御モジュール111は、実外部キャッシュ120aからリードデータを読み出し、読み出したリードデータを業務アプリケーション100に返却する(ステップA-03)。ここで、リードデータの格納場所は、外部キャッシュ管理テーブル131の対応するレコードのキャッシュアドレス131g及びキャッシュ容量131eの値により特定することができる。これにより、リードデータをストレージ装置20から読み出すことなく、迅速に業務アプリケーション100に渡すことができる。
 ステップA-04では、データ読み出し制御モジュール111は、ストレージ装置20に対してリード要求を送信する。これにより、この後、データ読み出し制御モジュール111は、そのリード要求の応答として、ストレージ装置20からリードデータを受信することができる。
 なお、業務ホスト10のデータ書き込み処理では、実外部キャッシュ120aの有無は考慮されない。業務アプリケーション100によりディスク184に対する書込みが発生した場合には、業務ホスト10から、そのディスク184に対応するLDEVを有するストレージ装置20に、そのLDEVを指定したライト要求が送信される。
 図13は、ストレージ装置20のデータ読み書き処理のフローチャートである。
 データ読み書き処理は、ストレージ装置20のストレージ制御デバイス281が、データ読み書き制御モジュール211を実行することにより行われる。データ読み書き処理は、例えば、ストレージ装置20がライト要求又はリード要求を受けた場合(或いは、他の所定のイベントが発生した場合)、開始される。以下の説明では、ライト要求で指定されたLDEVを「ライト先LDEV」と言い、リード要求で指定されたLDEVを「リード元LDEV」と言う。
 データ読み書き制御モジュール211は、受信した要求が、ライト要求か否かを判定する(ステップB-01)。受信した要求がリード要求である場合(ステップB-01でNo)、データ読み書き制御モジュール211は、処理をステップB-04に進める。
 一方、受信した要求がライト要求である場合(ステップB-01でYes)、データ読み書き制御モジュール211は、書込み処理を開始する。すなわち、データ読み書き制御モジュール211は、ライト要求に付随するデータを、メインキャッシュ221に書き込む(ステップB-02)。読み書き制御モジュール211は、メインキャッシュ221に書き込んだデータを、ライト先LDEVに基づくPDEV231に書き込む前に、そのライト要求に対する応答をライト要求の送信元の業務ホスト10に送信する(ステップB-11)。そして、読み書き制御モジュール211は、外部キャッシュ管理モジュール212を呼び出す。なお、読み書き制御モジュール211は、メインキャッシュ221に書き込んだデータをPDEV231に書き込んだ場合に、ステップB-11を行っても良い。
 ステップB-11の後、データ読み書き制御モジュール211は、外部キャッシュ管理モジュール212を呼び出す(ステップB-12)。これにより、外部キャッシュ管理モジュール212は、外部キャッシュ管理処理(図14)を実行することとなる。
 一方、ステップB-04では、データ読み書き制御モジュール211は、メインキャッシュ221内に、リード要求に従う読み出し対象のデータ(リードデータ)があるか否かを判定する(ステップB-04)。
 この結果、メインキャッシュ221内にリードデータがある場合(ステップB-04でYes)、データ読み書き制御モジュールデータ211は、メインキャッシュ221からリードデータを読み出し、処理をステップB-11に進める。なお、メインキャッシュ221におけるデータの管理方法は、公知であるので、ここでは詳しい説明は省略する。
 一方、メインキャッシュ221に対象のリードデータがない場合(ステップB-04でNo)、ステップB-06からの処理(実外部キャッシュ120aからデータを読み出す処理)と、ステップB-09からの処理(PDEV231からデータを読み出す処理)とを並行して実行する。
 ステップB-06では、データ読み書き制御モジュール211は、リードデータに対応するレコードが外部キャッシュ割り当てテーブル241にあるか否かを判定する。具体的には、例えば、データ読み書き制御モジュール211は、リード要求に含まれる接続識別子及びデータアドレスに適合する値を格納するレコードが外部キャッシュ割り当てテーブル241にあるか否かを判定する。この結果、そのようなレコードが外部キャッシュ割り当てテーブル241にない場合(ステップB-06でNo)、データ読み書き制御モジュール211は、処理をステップB-10に進める。一方、そのようなレコードが外部キャッシュ割り当てテーブル241にある場合(ステップB-06でYes)、データ読み書き制御モジュール211は、ストレージ管理サーバ30の外部キャッシュ検索モジュール302に、当該レコードに対応する実外部キャッシュ120aを有する業務ホスト10にアクセス可能か否かの判定処理であるアクセス可否判定処理を依頼する(ステップB-07)。なお、外部キャッシュ検索モジュール302によるアクセス可否判定処理は、外部キャッシュ検索処理(図15参照)において行なわれる。この結果、アクセス不可の場合(ステップB-07でNo)、データ読み書き制御モジュール211は、処理をステップB-10に進める。一方、アクセス可能の場合(ステップB-07でYes)、データ読み書き制御モジュール211は、見つかった業務ホスト10の実外部キャッシュ120aからリードデータを読み出す(ステップB-08)。なお、ステップB-08の処理(具体的には、ステップB-01でNo以降の処理)は、リード要求の送信元のホスト10の実外部キャッシュ120aにリードデータが無い場合に行われる。なぜなら、図12に示したように、リード要求の送信元の業務ホスト10の実外部キャッシュ120aにリードデータがある場合には、ステップA-04(ストレージ装置20へのリード要求の送信)が行われないからである。
 一方、ステップB-09では、データ読み書き制御モジュール211は、リード元LDEVの基になっているPDEV231からリードデータを読み出し、処理をステップB-10に進める。
 ステップB-10では、データ読み書き制御モジュール211は、ステップB-06からの処理(実外部キャッシュ120aからデータを読み出す処理)と、ステップB-09からの処理(PDEV231からデータを読み出す処理)とのうち、リードデータがより早く読み出されたリードデータを、リード要求に対する応答として業務ホスト10に送信されるデータとして決定し、ステップB-11に処理を進める。次いで、データ読み書き制御モジュール211は、リード要求の送信元の業務ホスト10に対して、リード要求に対する応答、すなわち、読み出されたリードデータを含む応答を返し(ステップB-11)、外部キャッシュ管理モジュール212を呼び出す(ステップB-12)。
 図13に示す処理によると、PDEV231よりも実外部キャッシュ120aからリードデータが早く読み出された場合には、PDEV231のみからリードデータを読み出す場合に比して、早期に業務ホスト10にリードデータを送信することができる。なお、実外部キャッシュ120aからのデータの読み出しが、PDEV231からのデータの読み出しよりも早いと想定される状況としては、例えば、(1)リード元のLDEVに基づくPDEV231が別のLDEVの基にもなっていてその別のLDEVについてデータの読み出し処理中である等の理由で、リード元のLDEVに基づくPDEVがビジー状態である、(2)PDEV231がHDDでありディスクの回転待ちが長い、(3)PDEV231がHDDであり、省電力モードのためHDDの回転速度が抑えられており、回転速度を上げるまでに時間を要する、等があり得る。
 図14は、実施例1に係る外部キャッシュ管理処理のフローチャートである。
 外部キャッシュ管理処理は、データの読み出し及びデータの書込みが発生した場合(図13のステップB-12)、或いは、メインキャッシュ221に存在するデータが上書き又は削除される場合に、外部キャッシュ管理モジュール212により実行される。
 外部キャッシュ管理モジュール212は、外部キャッシュ割り当てテーブル241を参照して、外部キャッシュ管理処理が実行される際に対象データが格納されている仮想外部キャッシュ392(実外部キャッシュ120a)が存在するか否かを判定する(ステップC-01)。この結果、仮想外部キャッシュ392が存在する場合(ステップC-01でYes)、外部キャッシュ管理モジュール212は、処理をステップC-02に進める。なお、「対象データ」とは、上書き又は削除されるデータ、或いは、図13で言うリードデータである。
 一方、仮想外部キャッシュ392が存在しない場合(ステップC-01でNo)、外部キャッシュ管理モジュール212は、仮想外部キャッシュ392を新規で作成する処理を行う。すなわち、外部キャッシュ管理モジュール212は、外部キャッシュ検索モジュール302に、データの保存先とする業務ホスト10を検索するデータ保存先検索を依頼する(ステップC-03)。ここで、外部キャッシュ検索モジュール302は、依頼を受けて外部キャッシュ検索処理(図15参照)を実行する。
 次いで、外部キャッシュ管理モジュール212は、外部キャッシュ検索処理により、対象データの保存先となる実外部キャッシュ120aが見つかったか否かを判定する(ステップC-04)。保存先となる実外部キャッシュ120aが見つかった場合(ステップC-04でYes)、外部キャッシュ管理モジュール212は、仮想外部キャッシュ392を生成し、その仮想外部キャッシュ392に、見つかった実外部キャッシュ120aをマッピングし、その仮想外部キャッシュ392を通じて実外部キャッシュ120aに対象データを格納し(ステップC-05)、処理をステップC-02に進める。これにより、対象データを業務ホスト10の実外部キャッシュ120aに格納することができる。一方、保存先の実外部キャッシュ120aが見つからなかった場合(ステップC-04でNo)、外部キャッシュ管理モジュール212は、処理をステップC-02に進める。
 ステップC-02では、外部キャッシュ管理モジュール212は、外部キャッシュ割り当て更新モジュール214にデータ更新を依頼する(ステップC-02)。これにより、外部キャッシュ割り当て更新モジュール214は、外部キャッシュ割り当て更新処理(図16参照)を実行する。
 なお、ステップC-04でYesとステップC-05との間で、外部キャッシュ管理モジュール212は、外部キャッシュ検索モジュール302に、書き込み時のアクセス可否判定、具体的には、見つかった業務ホストへのアクセスが可能か否かの判定を依頼して良い。この結果、アクセス不可との通知を受けた場合、外部キャッシュ管理モジュール212は、ステップC-05の実行を一定時間待ち、再度、上記依頼を出して良い。外部キャッシュ管理モジュール212は、アクセス可との通知を受けた場合(或いは、一定時間待ちを所定回数以上行った場合)、ステップC-05を実行して良い。
 図15は、実施例1に係る外部キャッシュ検索処理のフローチャートである。
 外部キャッシュ検索処理は、アクセス可否の問合せを受けた場合(図13のステップB-07)、又は、データ保存先の外部キャッシュの検索依頼を受けた場合(図14のステップC-03)に、外部キャッシュ検索モジュール302により実行される。
 外部キャッシュ検索モジュール302は、依頼がアクセス可否の判定依頼か否かを判定する(ステップD-01)。この結果、依頼が、アクセス可否の判定依頼である場合(ステップD-01でYes)、外部キャッシュ検索モジュール302は、処理をステップD-02に進める。一方、依頼が、実外部キャッシュ120aを提供する業務ホスト10の検索依頼である場合(ステップD-01でNo)、外部キャッシュ検索モジュール302は、処理をステップD-10に進める。
 ステップD-02では、外部キャッシュ検索モジュール302は、判定依頼が、読み出し時の判定であるか否かを判定する。判定依頼が読み出し時の判定である場合(ステップD-02でYes)、外部キャッシュ検索モジュール302は、業務ホストテーブル311から対象業務ホスト(例えば、ライト要求又はリード要求の送信元の業務ホスト)のデータ参照アクセス許可I/O閾値311gを取得し(ステップD-03)、業務ホスト稼働状況テーブル312から対象業務ホスト10の最新のWrite平均I/O312d及びRead平均I/O312cを取得し、これらを平均した平均I/Oを算出し(ステップD-04)、処理をステップD-07に進める。平均I/Oに代えて、I/O312d及び312cに基づく値、例えば、I/O312d及び312cのうち小さい方又は大きい方でも良い。
 一方、判定依頼が、書き込み時の判定である場合(ステップD-02でNo)、外部キャッシュ検索モジュール302は、業務ホストテーブル311から対象業務ホスト10のデータ書き込み許可スループット閾値311hを取得し(ステップD-05)、業務ホスト稼働状況テーブル312から対象業務ホスト10の最新のネットワーク受信平均スループット312e及びネットワーク送信平均スループット312fを取得し、これらを平均した平均スループットを算出し(ステップD-06)、処理をステップD-07に進める。平均スループットに代えて、スループット312e及び312fに基づく値、例えば、スループット312e及び312fのうち小さい方又は大きい方でも良い。
 ステップD-07では、外部キャッシュ検索モジュール302は、平均値(平均I/O、又は平均スループット)が、対象業務ホスト10の閾値311g又は311h以上か否かを判定する。この結果、平均値が閾値よりも小さい場合(ステップD-07でNo)、外部キャッシュ検索モジュール302は、対象業務ホスト10内の実外部キャッシュ120aへのアクセスが可能との通知をストレージ装置20に送信する(ステップD-08)。一方、平均値が閾値以上である場合(ステップD-07でYes)、外部キャッシュ検索モジュール302は、対象業務ホスト10内の実外部キャッシュ120aへのアクセスが不可との通知を、ストレージ装置20に送信する(ステップD-09)。
 平均値が閾値以上の場合、対象業務ホスト10内の実外部キャッシュ120aからデータを読み出すことが行われても、その読み出しに長い時間がかかり、図13のステップB-10では、PDEV231から読み出されたデータが返却対象となる可能性が高い。図15の処理によれば、平均値が閾値以上の場合、対象業務ホスト10内の実外部キャッシュ120aへのアクセスが回避されるので、対象業務ホスト10の負荷が無駄に増加してしまうことを回避することができる。
 さて、依頼が、業務ホスト10の検索依頼の場合(ステップD-01でNo)、外部キャッシュ検索モジュール302は、業務ホストテーブル311に基づいて、保存対象のデータの容量以上の空き容量がドライブ121にある業務ホスト10を検索する(ステップD-10)。
 次いで、外部キャッシュ検索モジュール302は、ストレージ装置20内の外部キャッシュ参照頻度テーブル242が有する情報を参照し、ステップD-10で見つかった業務ホスト10の中から、保存対象のデータへの参照頻度が多い業務ホスト10を検索する(ステップD-11)。例えば、外部キャッシュ検索モジュール302は、所定の期間における参照数が所定数以上の業務ホスト10を検索する。
 次いで、ステップD-11で見つかった業務ホスト10の数だけ処理(ステップD-12~D-15)が繰り返し実行される。
 まず、外部キャッシュ検索モジュール302は、業務ホスト稼働状況テーブル312に基づいて、ステップD-11で見つかった業務ホスト10のうちの、処理(ステップD-12~ステップD-15)の対象となっていない業務ホスト10の中から、スループットが一番少ない業務ホスト10を、処理(ステップD-12~D-15)の対象として特定する(ステップD-13)。次いで、外部キャッシュ検索モジュール302は、業務ホストテーブル311から、ステップD-13で特定された業務ホスト10のデータ参照アクセス許可I/O閾値311gを取得する(ステップD-14)。次いで、外部キャッシュ検索モジュール302は、ステップD-14で取得したデータ参照アクセス許可I/O閾値311gと、ステップD-13で特定された業務ホスト10の平均I/O(最新のWrite平均I/O312dとRead平均I/O312cとを平均したもの)とを比較する(ステップD-15)。
 この結果、平均I/Oが閾値311g以上の場合(ステップD-15でYes)、外部キャッシュ検索モジュール302は、ステップD-12からの処理の引き続き行う一方、平均I/Oが閾値311g未満の場合(ステップD-15でNo)、ステップD-13で特定された業務ホスト10を、実外部キャッシュ120aを提供する対象の業務ホスト10に決定し、処理(ステップD-12~D-15)を終了し、処理をステップD16に進める。なお、ステップD-11で見つかった全ての業務ホスト10について処理(ステップD-12~D-15)を行った場合には、外部キャッシュ検索モジュール302は、処理をステップD-16に進める。
 ステップD-16では、外部キャッシュ検索モジュール302は、外部キャッシュを提供する対象の業務ホスト10が見つかったか否かを判定する。対象の業務ホスト10が見つかった場合(ステップD-16でYes)、外部キャッシュ検索モジュール302は、当該業務ホスト10の情報(例えば、当該業務ホスト10の識別子を含んだ情報)をストレージ装置20に返す(ステップD-17)。一方、対象の業務ホスト10が見つからなかった場合(ステップD-16でNo)、外部キャッシュ検索モジュール302は、対象の業務ホスト10がない旨をストレージ装置20に返す(ステップD-18)。
 上記処理によると、対象データ(例えば図13でのリードデータ)への参照頻度が高い業務ホスト10であって、現時点の平均I/Oが所定の閾値未満の業務ホスト10を、外部キャッシュを提供する業務ホストとして決定することができる。その業務ホストは、当該データへの参照頻度が高い業務ホスト10であるので、ストレージ装置20から当該データを取得せずに、外部キャッシュとなっている自身のドライブ121から迅速に取得することができ、データ読み出し時のレスポンスを向上することができる。
 図16は、実施例1に係る外部キャッシュ割り当て更新処理のフローチャートである。
 外部キャッシュ割り当て更新処理は、データ更新の依頼を受けた場合(図14のステップC-02、図21のステップJ-06)に、外部キャッシュ割り当て更新モジュール213により行われる。
 外部キャッシュ割り当て更新モジュール213は、仮想外部キャッシュ(実外部キャッシュ)の新規作成による更新処理か否かを判定する(ステップE-01)。この結果、仮想外部キャッシュの新規作成による更新処理である場合(ステップE-01でYes)、外部キャッシュ割り当て更新モジュール213は、外部キャッシュ割り当てテーブル241に、新規にレコードを作成し、そのレコードに、対応する仮想外部キャッシュ(実外部キャッシュ)の情報を格納し(ステップE-02)、ステップE-08に処理を進める。
 一方、仮想外部キャッシュ(実外部キャッシュ)の新規作成による更新処理でない場合(ステップE-01でNo)、外部キャッシュ割り当て更新モジュール213は、対象のデータのデータ識別子に基づいて、外部キャッシュ割り当てテーブル241から、対象のデータに対応するレコードを検索する(ステップE-03)。次いで、外部キャッシュ割り当て更新モジュール213は、対応するデータへの操作を判定する(ステップE-04)。
 データへの操作が読み出しの場合には、外部キャッシュ割り当て更新モジュール213は、得られたレコードの最終アクセス日時241hを更新し(ステップE-05)、処理をステップE-08に進める。
 データへの操作が書き込みの場合には、外部キャッシュ割り当て更新モジュール213は、得られたレコードのデータアドレス241f、キャッシュアドレス241g及び最終アクセス日時241hを更新し(ステップE-06)、処理をステップE-08に進める。
 データへの操作がキャッシュ領域の増減を伴う場合には、外部キャッシュ割り当て更新モジュール213は、得られたレコードの値を最新の値に更新し(ステップE-07)、処理をステップE-08に進める。
 ステップE-08では、外部キャッシュ割り当て更新モジュール213は、外部キャッシュ参照頻度テーブル242に、対応するデータに関するレコードを追加する。次いで、外部キャッシュ割り当て更新モジュール213は、ドライバ制御モジュール301に、外部キャッシュ割り当てテーブル241の追加、変更があったレコードの全ての情報(外部キャッシュ割り当て情報)を送信する(ステップE-09)。
 図17は、実施例1に係る外部キャッシュ割り当て情報送信処理のフローチャートである。
 外部キャッシュ割り当て情報送信処理は、ドライバ制御モジュール301が、外部キャッシュ割り当て更新モジュール213から外部キャッシュ割り当てテーブル241の追加、変更があったレコードの全ての情報を受けた場合(図16のステップE-09)、ドライバ制御モジュール301により実行される。
 ドライバ制御モジュール301は、外部キャッシュ割り当て更新モジュール213から受け取った外部キャッシュ割り当て情報に基づいて、当該情報に対応する実外部キャッシュ120aを有している業務ホスト10へのアクセス情報311iを、業務ホストテーブル311から取得する(ステップF-01)。ドライバ制御モジュール301は、取得したアクセス情報311iに基づいて、対応する業務ホスト10にアクセスし、外部キャッシュ割り当て情報を送信する(ステップF-02)。
 図18は、実施例1に係る外部キャッシュ領域制御処理のフローチャートである。
 外部キャッシュ領域制御処理は、外部キャッシュ領域制御モジュール112が、ドライバ制御モジュール301から送信された外部キャッシュ割り当て情報(図17のステップF-02)を受信した場合に、外部キャッシュ領域制御モジュール112により実行される。
 外部キャッシュ領域制御モジュール112は、外部キャッシュ管理テーブル131と、受信した外部キャッシュ割り当て情報とに基づいて、キャッシュ領域の増減があるか否かを判定する(ステップG-01)。この結果、キャッシュ領域の容量に増減がない場合(ステップG-01でNo)、外部キャッシュ領域制御モジュール112は、処理をステップG-03に進める。一方、キャッシュ領域の容量に増減がある場合(ステップG-01でYes)、外部キャッシュ領域制御モジュール112は、キャッシュ領域を外部キャッシュ割り当て情報の容量まで増減し(ステップG-02)、処理をステップG-03に進める。
 ステップG-03では、外部キャッシュ領域制御モジュール112は、外部キャッシュ割り当て情報を外部キャッシュ管理テーブル131に格納する。
 この処理により、業務ホスト10は、自身の外部キャッシュの情報を適切に保持することができる。
 図19は、実施例1に係るログ保存処理のフローチャートである。
 ログ保存処理は、予めユーザによって指定された期間ごとに、又は、指定された時刻に、定期的に、ログ保存モジュール304により行われる。
 ログ保存モジュール304は、ストレージ管理サーバ30の管理対象となっている業務ホスト10の一覧情報を業務ホストテーブル311から取得する(ステップH-01)。次いで、ログ保存モジュール304は、取得した業務ホスト10の数だけ処理(ステップH-02~H-05)を繰り返し実行する。すなわち、ログ保存モジュール304は、業務ホスト10にアクセスし、最新の稼働状況情報を取得し(ステップH-03)、外部キャッシュ領域計算モジュール303を呼び出す。これにより、外部キャッシュ領域計算モジュール303が、外部キャッシュ領域計算処理(図20)を実行して、外部キャッシュとして利用する容量(キャッシュ利用容量)を算出して返送する。ログ保存モジュール304は、キャッシュ利用容量を取得し(ステップH-04)、稼働状況情報と、取得したキャッシュ利用容量とを、業務ホスト稼働状況テーブル312に格納する(ステップH-05)。
 そして、取得したすべての業務ホスト10について上記処理(ステップH-02~H-05)が終了した場合には、ログ保存モジュール304は、ストレージ装置20の外部キャッシュ容量更新モジュール214に容量更新を指示する(ステップH-06)。ここで、容量更新の指示には、各業務ホスト10に対して算出されたキャッシュ利用容量を表す情報が含まれる。これにより、外部キャッシュ容量更新モジュール214は、外部キャッシュ容量更新処理(図21参照)を実行することとなる。
 図20は、実施例1に係る外部キャッシュ領域計算処理のフローチャートである。
 外部キャッシュ領域計算処理は、ログ保存モジュール304により呼び出された外部キャッシュ領域計算モジュール303(図19のステップH-04)により行われる。
 外部キャッシュ領域計算モジュール303は、業務ホスト稼働状況テーブル312から、キャッシュ利用容量を算出する対象の業務ホスト10の稼働状況のレコードを取得する(ステップI-01)。次いで、外部キャッシュ領域計算モジュール303は、取得したレコードに基づいて、以下の式(1)、
1時間当たりの利用容量割合=(1時間当たりのI/O)/(24時間当たりの最大I/O)・・・式(1)
を用いて、1時間当たりの利用容量割合を算出する(ステップI-02)。なお、1時間当たりのI/Oは、I/O312c及び312dに基づく値(例えば、複数のI/O312c及び312dの平均、最小値或いは最大値)で良い。24時間当たりの最大I/Oは、複数の1日平均I/O(24時間分のI/O)のうちの最大値で良い。
 次いで、外部キャッシュ領域計算モジュール303は、以下の式(2)、
 キャッシュ利用容量=ドライブ全体の空き容量×(1-1時間当たりの利用容量割合)・・・式(2)
を用いて、キャッシュ利用容量を決定し、キャッシュ利用容量をログ保存モジュール304に返す(ステップI-03)。
 上記処理によると、例えば、24時間での最大I/Oを6.54(Mb/Sec)、算出時間(23:00~24:00)のI/Oを1.35(Mb/Sec)、業務ホスト10のドライブ121の物理ドライブ121の空き容量を30GBとすると、1時間当たりの利用容量割合=1.35/6.54≒0.21となり、キャッシュ利用容量=30×(1-0.21)≒23.7GBとなる。
 なお、キャッシュ利用容量を計算する方法としては、例えば、ストレージ管理サーバ30が収集している1以上の情報要素の値を用いてもよい。例えば、ネットワークのスループットに基づいて決定してもよく、その場合には、ネットワークのトラフィックの負荷が増えた場合にキャッシュ利用容量を低めに設定するようにすればよい。また、CPU使用率に基づいて、決定してもよく、その場合には、CPU使用率が上昇した場合に、キャッシュ利用容量を減らすようにすればよい。
 図21は、実施例1に係る外部キャッシュ容量更新処理のフローチャートである。
 外部キャッシュ容量更新処理は、ログ保存モジュール304により呼び出された外部キャッシュ容量更新モジュール214(図19のステップH-06)により行われる。
 外部キャッシュ容量更新モジュール214は、業務ホストテーブル311から各業務ホスト10の情報を取得する(ステップJ-01)。
 次いで、外部キャッシュ容量更新モジュール214は、取得した各業務ホスト10の数だけ以下の処理(ステップJ-02~J-05)を繰り返し実行する。まず、外部キャッシュ容量更新モジュール214は、処理(ステップJ-02~J-05)の対象の業務ホスト10の現在のキャッシュ利用容量と、指定されたキャッシュ利用容量とを比較する(ステップJ-03)。
 この結果、現在のキャッシュ利用容量が、指定されたキャッシュ利用容量よりも少ない場合(ステップJ-03でNo)、外部キャッシュ容量更新モジュール214は、次の業務ホスト10を処理(ステップJ-02~J-05)の対象として、処理(ステップJ-02~J-05)を実行する。
 一方、現在のキャッシュ利用容量が、指定されたキャッシュ利用容量以上である場合(ステップJ-03でYes)、キャッシュとして利用している容量が大きいことを意味しているので、外部キャッシュ容量更新モジュール214は、外部キャッシュ参照頻度テーブル242から処理対象の業務ホスト10のデータであって、アクセス日が一番古いデータを特定し、当該データを対応する業務ホスト10の外部キャッシュから削除する(ステップJ-04)。
 次いで、外部キャッシュ容量更新モジュール214は、処理対象の業務ホスト10の現在のキャッシュ利用容量と、指定されたキャッシュ利用容量とを比較する(ステップJ-05)。この結果、現在のキャッシュ利用容量が、指定されたキャッシュ利用容量よりも少ない場合(ステップJ-05でNo)、外部キャッシュ容量更新モジュール214は、次の業務ホスト10を処理対象として、処理(ステップJ-02~J-05)を実行する。一方、現在のキャッシュ利用容量が、指定されたキャッシュ利用容量以上である場合(ステップJ-05でYes)、キャッシュとして利用している容量が大きいことを意味しているので、外部キャッシュ容量更新モジュール214は、処理をステップJ-04に進める。
 そして、取得したすべての業務ホストについて上記処理(ステップJ-03~J-05)が終了した場合には、外部キャッシュ容量更新モジュール214は、外部キャッシュ割り当て更新213にデータ更新を依頼する(ステップJ-06)。これにより、外部キャッシュ割り当て更新213は、外部キャッシュ割り当て更新処理(図16参照)を実行することとなる。上記処理によると、業務ホスト10にキャッシュされているデータの容量を、指定されたキャッシュ利用容量よりも少なくすることができるので、データを実外部キャッシュ120aに保持することによる業務ホスト10への負荷を適切に低減することができる。
 なお、上記外部キャッシュ容量更新処理では、キャッシュ利用容量を削減する際に、アクセス日時が一番古いデータから順に削除対象としていたが、例えば、所定期間内の参照頻度が一番小さいデータから順に削除対象としてもよい。
 実施例2を説明する。以下、実施例1との相違点を主に説明し、実施例1との共通点については説明を省略或いは簡略する。
 図22は、実施例2に係る読み出し処理の概要を示す図である。以下、図3との相違点を主に説明する。なお、図22では、業務ホスト#1及び#2に加えて、業務ホスト#3があるとする。
 業務ホスト#1が、他の業務ホスト#2の実外部キャッシュ120aがマッピングされた仮想的なキャッシュ2201を有する。このマッピングは、例えば、ストレージ仮想化技術に従う。
 業務ホスト#1の実外部キャッシュ120aにリードデータがキャッシュされていないと判定された場合には、データ読み出し制御モジュール111が、他の業務ホスト#2又は#3の実外部キャッシュ120aを認識しているか(つまり仮想キャッシュ2201を有しているか)否かを判定する(図22の(1))。
 他の業務ホスト#2又は#3の実外部キャッシュを認識している場合には、データ読出し制御モジュール111は、外部キャッシュ管理テーブル132(図23参照)に基づいて、対象のリードデータがいずれかの業務ホスト10に存在するか否かを判定する(図22の(2))。いずれの業務ホスト10にもリードデータが存在しない場合には、データ読出し制御モジュール111は、実施例1と同様な処理により、リードデータを取得する(図22の(3))。
 これに対して、他の業務ホスト#2の実外部キャッシュ120aにリードデータが存在し、その実外部キャッシュ120を業務ホスト#1が認識している場合には、データ読み出し制御モジュール111は、他の業務ホスト#2の実外部キャッシュ120aからリードデータを読み出す(図22の(4))。これにより、ストレージ装置20からリードデータを読み出すことよりも迅速にリードデータを取得することが期待できる。
 図23は、実施例2に係る外部キャッシュ管理テーブルの構成図である。
 外部キャッシュ管理テーブル132は、外部キャッシュ管理テーブル131の各レコードに、保存先業務ホスト識別子131iと、業務ホスト接続識別子131jとを更に有する。保存先業務ホスト識別子131i、業務ホスト接続識別子131j、キャッシュアドレス131g、及びキャッシュ容量131eに基づいて、データがキャッシュされている格納位置(業務ホスト10及びその業務ホスト10での格納位置)を特定することができる。
 保存先業務ホスト識別子131iは、キャッシュデータを格納する業務ホスト10の識別子である。業務ホスト接続識別子131jは、他の業務ホスト10の実外部キャッシュ120aにアクセスするために使用する識別子である。
 図24は、実施例2に係る業務ホスト10のデータ読み出し処理のフローチャートである。
 ステップK-01、K-02及びK-03は、図12のステップA-01、A-02及びA-03とそれぞれ実質的に同じである。
 ステップK-02でNoの場合(すなわち、自身が属する業務ホスト10内の実外部キャッシュ120aにリードデータがない場合)、データ読み出し制御モジュール111は、処理をステップK-04に進める。
 ステップK-04では、データ読み出し制御モジュール111は、外部キャッシュ管理テーブル132に、リードデータに対応するレコードが存在するか否かにより、他の業務ホスト10の実外部キャッシュ120aにリードデータがあるか否か(キャッシュされているか否か)を判定する。ステップK-04で、他の業務ホスト10の実外部キャッシュ120aがマッピングされた仮想キャッシュ2201があるか否かも判定されて良い。
 他の業務ホスト10の実外部キャッシュ120aにリードデータがある場合(ステップK-04でYes)、データ読み出し制御モジュール111は、他の業務ホスト10の実外部キャッシュ120aからリードデータを読み出し、読み出したデータを業務アプリケーション100に返却する(ステップK-05)。これにより、リードデータをストレージ装置20から読み出すことなく、業務アプリケーション100にリードデータを渡すことができる。
 一方、他の業務ホスト10の実外部キャッシュ120aにリードデータがない場合(ステップK-04でNo)、データ読み出し制御モジュール111は、ストレージ装置20にリード要求を送信する(ステップK-06)。ステップK-06は、図12のステップA-04と実質的に同じである。
 図25は、実施例2に係る外部キャッシュ割り当て情報送信処理のフローチャートである。
 ドライバ制御モジュール301は、業務ホストテーブル311から各業務ホスト10へのアクセス情報311iを取得する(ステップL-01)。次いで、ドライバ制御モジュール301は、取得した業務ホスト10の数だけ、以下の処理(ステップL-02~L-03)を繰り返し実行する。ドライバ制御モジュール301は、取得した業務ホスト10の中の処理対象の業務ホスト10のアクセス情報311iに基づいて、対応する業務ホスト10にアクセスし、外部キャッシュ割り当て情報を送付する(ステップL-03)。なお、この外部キャッシュ割り当て情報には、実施例1の外部キャッシュ割り当て情報に、保存先業務ホスト識別子131i及び業務ホスト接続識別子131jがさらに含まれている。
 そして、取得したすべての業務ホスト10について上記処理(ステップL-02~L-03)が終了した場合には、ドライバ制御モジュール301は、外部キャッシュ割り当て情報送信処理を終了する。
 図25の処理によると、各業務ホスト10の外部キャッシュ管理テーブル132には、自身の外部キャッシュに格納されているデータについてのレコードだけでなく、他の業務ホスト10の外部キャッシュに格納されているデータについてのレコードも格納されることとなる。すなわち、外部キャッシュ管理テーブル132のレコードに基づいて、各業務ホスト10が他の業務ホスト10にキャッシュされているデータに対してアクセスすることができるようになる。
 以上、幾つかの実施例を説明したが、本発明は、それらの実施例に限られず、他の様々な態様に適用可能である。例えば、装置、画面及びテーブル等の構成、及び、フローチャートが示す処理の流れは、いずれも一例であり、本発明は、上記構成や処理流れに限定されない。また、上記実施例1及び2では、外部キャッシュ割り当てテーブル241の中の情報が、ストレージ装置20からストレージ管理サーバ30を経由してホスト計算機10に格納されるが、例えば、ストレージ装置20からストレージ管理サーバ30を介さずにホスト計算機10に送信されてもよい。また、例えば、ストレージ管理サーバ30の機能の少なくとも一部がストレージ装置20又は業務ホスト10にあっても良い。また、例えば、ストレージ装置20において、データ読み書き制御モジュール211は、外部キャッシュ120aから読み出されたリードデータとPDEV231から読み出されたリードデータを比較し、それらが互いに一致した場合に、リードデータを業務ホスト10に返却しても良い。
1:計算機システム、10:業務ホスト、20:ストレージ装置、30:ストレージ管理サーバ、40:管理計算機

Claims (15)

  1.  I/O(Input/Output)に従うI/O要求を送信する1以上のホスト計算機と、
     前記ホスト計算機から送信されたI/O要求を受信しそのI/O要求を処理する1以上のストレージ装置と
    を有し、
     前記ストレージ装置は、第1の記憶デバイスと、受信した前記I/O要求に従い前記第1の記憶デバイスに入出力されるデータを一時的に記憶するキャッシュメモリ領域であるメインキャッシュを含むメモリと、前記第1の記憶デバイス及び前記メモリに接続された第1の制御デバイスとを有し、
     前記ホスト計算機は、第2の記憶デバイスと、前記第2の記憶デバイスに接続された第2の制御デバイスとを有し、
     前記第2の記憶デバイスの空き領域の全部又は一部が、前記ストレージ装置の外部のキャッシュメモリ領域として利用される領域である外部キャッシュであり、
     (A)前記I/Oがライトの場合、前記I/O要求はライト要求であり、前記第1の制御デバイスは、そのライト要求に付随するデータであるライトデータを前記メインキャッシュに書き込み、前記メインキャッシュ内のライトデータを前記第1の記憶デバイスに書き込み、
     (B)前記第1の制御デバイスは、前記メインキャッシュ内のライトデータを、前記外部キャッシュに書き込み、
     (C)前記I/Oがリードの場合、下記の(c1)及び(c2)が行われる、
    (c1)前記第2の制御デバイスが、前記リードの対象のデータであるリードデータが前記外部キャッシュにあるか否かを判定する、
    (c2)前記(c1)の判定の結果が肯定的であれば、前記第2の制御デバイスが、前記外部キャッシュから前記リードデータを読み出す、
    計算機システム。
  2.  前記(C)において、更に、下記の(c3)が行われる、
    (c3)前記(c1)の判定の結果が否定的であれば、前記第2の制御デバイスが、前記リードデータを読み出すためのリード要求を前記ストレージ装置に送信する、
    請求項2記載の計算機システム。
  3.  ホスト計算機が2以上存在し、
     前記(C)において、更に、下記の(c4)が行われる、
    (c4)前記第1の制御デバイスが、前記リード要求を受信する、
    (c5)前記第1の制御デバイスが、下記の(c51)を行う、
      (c51)前記リードデータを記憶する外部キャッシュを有する、前記リード要求の送信元とは別のホスト計算機、が存在するか否かを判定し、前記別のホスト計算機が存在する場合には、前記別のホスト計算機の外部キャッシュから前記リードデータを読み出す、
    請求項2記載の計算機システム。
  4.  前記(c5)において、前記第1の制御デバイスが、前記(c51)と並行して、下記の(c52)、
      (c52)前記リードデータを前記第2の記憶デバイスから読み出す、
    を行い、
     前記(c5)において、前記第1の制御デバイスは、前記(c51)及び(c52)のうちのいずれか一方のリードデータを、前記リード要求の送信元のホスト計算機に送信する、
    請求項3記載の計算機システム。
  5.  前記いずれか一方のリードデータは、より早く読み出されたリードデータである、
    請求項4記載の計算機システム。
  6.  前記(c5)において、前記第1の制御デバイスが、前記別のホスト計算機の前記1以上のストレージ装置へのアクセスの負荷が所定の閾値以上の場合、前記(c51)を実行しない、
    請求項4記載の計算機システム。
  7.  前記ホスト計算機が、前記外部キャッシュに関する第2の外部キャッシュ管理情報を記憶する第2の記憶領域を有し、前記第2の記憶領域は、前記第2の記憶デバイスの中又は外に存在し、
     前記(B)において、前記第1の制御デバイスは、前記ストレージ装置内でのデータの格納先を表す内部アドレス情報と前記外部キャッシュ内でのデータの格納先を表す外部アドレス情報とを含んだ情報であるキャッシュ割り当て情報を、前記ホスト計算機に送信し、前記第2の制御デバイスは、前記キャッシュ割り当て情報を受信し、そのキャッシュ割り当て情報を前記第2の外部キャッシュ管理情報に登録し、
     前記(c1)において、前記第2の制御デバイスは、前記リードデータが前記外部キャッシュにあるか否かを、前記第2の外部キャッシュ管理情報に基づいて判定する、
    請求項1記載の計算機システム。
  8.  ホスト計算機が2以上存在し、
     前記(B)において、前記ライト要求に付随するデータの書込み先は、そのライト要求の送信元のホスト計算機が有する外部キャッシュであり、
     前記(B)において、前記ライト要求の送信元のホスト計算機が外部キャッシュを有していない場合には、前記ライト要求に付随するデータの書込み先は、外部キャッシュを有する別のホスト計算機の外部キャッシュである、
    請求項1記載の計算機システム。
  9.  前記(B)において、前記別のホスト計算機は、外部キャッシュを有する複数のホスト計算機のうち、通信負荷が最も低いホスト計算機である、
    請求項8記載の計算機システム。
  10.  前記第1の制御デバイスは、第1の制御デバイスを有するホスト計算機の前記第1の記憶デバイスにおけるデータの総容量がそのホスト計算機の稼働状況に基づいて決定された容量であって前記外部キャッシュとして利用される容量であるキャッシュ利用容量より小さくなるように、前記第1の記憶からデータを削除する
    請求項1記載の計算機システム。
  11.  前記外部キャッシュとして利用される容量であるキャッシュ利用容量を時間帯毎に計測する管理システムを更に有し、前記管理システムは、少なくとも1つのホスト計算機又はストレージ装置の中、或いは、ホスト計算機及びストレージ装置の外に存在し、
     前記管理システムが、或る期間における時間帯毎のキャッシュ利用容量を表示する、
    請求項1記載の計算機システム。
  12.  前記管理システムが、前記キャッシュ利用容量の指定に関する情報を受け付け、その情報に従い、前記キャッシュ利用容量を決定する、
    請求項11記載の計算機システム。
  13.  ホスト計算機は2以上存在し、
     前記(c3)において、下記(c31)乃至(c33)が行われる、
    (c31)前記(c1)の判定の結果が否定的であれば、前記第2の制御デバイスが、この第2の制御デバイスを有するホスト計算機とは別のホスト計算機内の外部キャッシュに前記リードデータがあるか否かを判定する、
    (c32)前記(c31)の判定の結果が肯定的であれば、前記第2の制御デバイスが、前記別のホスト計算機内の外部キャッシュから前記リードデータを読み出す、
    (c33)前記(c31)の判定の結果が否定的であれば、前記第2の制御デバイスが、前記リードデータを読み出すためのリード要求を前記ストレージ装置に送信する、
    請求項2記載の計算機システム。
  14.  前記第1の制御デバイスが、データの書込み先となる外部キャッシュを有するホスト計算機の通信負荷が所定の閾値以上の場合、前記(B)の実行を一定時間待つ、
    請求項1記載の計算機システム。
  15.  (A)ホスト計算機におけるI/O(Input/Output)がライトの場合、ホスト計算機からストレージ装置にライト要求が送信され、前記ストレージ装置は、そのライト要求に付随するデータであるライトデータを、前記ストレージ装置が有するキャッシュメモリ領域であるメインキャッシュに書き込み、前記メインキャッシュ内のライトデータを、前記ストレージ装置が有する第1の記憶デバイスに書き込み、
     (B)前記ストレージ装置は、前記メインキャッシュ内のライトデータを、前記ホスト計算機が有する第2の記憶デバイスにおける空き領域の全部又は一部であり前記ストレージ装置の外部のキャッシュメモリ領域として利用される外部キャッシュに書き込み、
     (C)前記I/Oがリードの場合、下記の(c1)及び(c2)が行われる、
    (c1)前記ホスト計算機が、前記リードの対象のデータであるリードデータが前記外部キャッシュにあるか否かを判定する、
    (c2)前記(c1)の判定の結果が肯定的であれば、前記ホスト計算機が、前記外部キャッシュから前記リードデータを読み出す、
    記憶制御方法。
PCT/JP2012/051682 2012-01-26 2012-01-26 計算機システムおよび記憶制御方法 WO2013111305A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US13/577,165 US9176881B2 (en) 2012-01-26 2012-01-26 Computer system and storage control method
PCT/JP2012/051682 WO2013111305A1 (ja) 2012-01-26 2012-01-26 計算機システムおよび記憶制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2012/051682 WO2013111305A1 (ja) 2012-01-26 2012-01-26 計算機システムおよび記憶制御方法

Publications (1)

Publication Number Publication Date
WO2013111305A1 true WO2013111305A1 (ja) 2013-08-01

Family

ID=48871333

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2012/051682 WO2013111305A1 (ja) 2012-01-26 2012-01-26 計算機システムおよび記憶制御方法

Country Status (2)

Country Link
US (1) US9176881B2 (ja)
WO (1) WO2013111305A1 (ja)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9507524B1 (en) 2012-06-15 2016-11-29 Qlogic, Corporation In-band management using an intelligent adapter and methods thereof
US9454305B1 (en) 2014-01-27 2016-09-27 Qlogic, Corporation Method and system for managing storage reservation
US9423980B1 (en) 2014-06-12 2016-08-23 Qlogic, Corporation Methods and systems for automatically adding intelligent storage adapters to a cluster
US9489149B2 (en) * 2014-06-16 2016-11-08 Netapp, Inc. Methods and systems for using a write cache in a storage system
US9436654B1 (en) 2014-06-23 2016-09-06 Qlogic, Corporation Methods and systems for processing task management functions in a cluster having an intelligent storage adapter
US10824335B2 (en) * 2014-07-14 2020-11-03 Western Digital Technologies, Inc. Device and method to store predicted data at a host memory
US9477424B1 (en) 2014-07-23 2016-10-25 Qlogic, Corporation Methods and systems for using an intelligent storage adapter for replication in a clustered environment
US9460017B1 (en) 2014-09-26 2016-10-04 Qlogic, Corporation Methods and systems for efficient cache mirroring
US9483207B1 (en) 2015-01-09 2016-11-01 Qlogic, Corporation Methods and systems for efficient caching using an intelligent storage adapter
KR20200082323A (ko) * 2018-12-28 2020-07-08 에스케이하이닉스 주식회사 반도체 메모리 장치의 컨트롤러 및 그 동작 방법
US11782634B2 (en) * 2020-09-28 2023-10-10 EMC IP Holding Company LLC Dynamic use of non-volatile ram as memory and storage on a storage system
US11256620B1 (en) 2020-11-13 2022-02-22 Micron Technology, Inc. Cache management based on memory device over-provisioning
CN116339561B (zh) * 2023-03-29 2024-03-15 郑州裕中能源有限责任公司 一种锅炉监测三维可视化方法及系统、设备

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005157882A (ja) * 2003-11-27 2005-06-16 Hitachi Ltd ディスクアレイ装置及びディスクアレイ装置の制御方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7266706B2 (en) * 1999-03-03 2007-09-04 Yottayotta, Inc. Methods and systems for implementing shared disk array management functions
JP3736305B2 (ja) * 2000-07-06 2006-01-18 日本電気株式会社 ディスクキャッシュシステムおよびディスクキャッシュ制御方法
JP2003131818A (ja) 2001-10-25 2003-05-09 Hitachi Ltd クラスタ構成ストレージにおけるクラスタ間raid構成
US6965979B2 (en) * 2003-01-29 2005-11-15 Pillar Data Systems, Inc. Methods and systems of host caching
JP4575059B2 (ja) 2004-07-21 2010-11-04 株式会社日立製作所 ストレージ装置
JP4604068B2 (ja) 2007-07-09 2010-12-22 株式会社日立製作所 ストレージ装置
JP2009043030A (ja) * 2007-08-09 2009-02-26 Hitachi Ltd ストレージシステム
JP2010097526A (ja) 2008-10-20 2010-04-30 Hitachi Ltd キャッシュ構成管理システム、管理サーバおよびキャッシュ構成管理方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005157882A (ja) * 2003-11-27 2005-06-16 Hitachi Ltd ディスクアレイ装置及びディスクアレイ装置の制御方法

Also Published As

Publication number Publication date
US9176881B2 (en) 2015-11-03
US20130198457A1 (en) 2013-08-01

Similar Documents

Publication Publication Date Title
WO2013111305A1 (ja) 計算機システムおよび記憶制御方法
JP5586718B2 (ja) 制御プログラム、ホスト装置の制御方法、情報処理装置およびホスト装置
US11163699B2 (en) Managing least recently used cache using reduced memory footprint sequence container
US10346067B2 (en) Multi-tier file storage management using file access and cache profile information
US9652405B1 (en) Persistence of page access heuristics in a memory centric architecture
JP5406363B2 (ja) プール領域の一部の領域を動的にデータ格納領域として割り当てる記憶制御装置及び記憶制御方法
JP5989875B2 (ja) 制御プログラム、ホスト装置の制御方法、情報処理装置およびホスト装置
US9323463B2 (en) Storage system and cache control method
US9323682B1 (en) Non-intrusive automated storage tiering using information of front end storage activities
JP2008181243A (ja) ストレージシステムのキャッシュパーティション領域の設定を制御するデータベース管理システム
JP5531091B2 (ja) 計算機システム及びその負荷均等化制御方法
US9104317B2 (en) Computer system and method of controlling I/O with respect to storage apparatus
WO2012112710A2 (en) Systems and methods for managing data input/output operations
JP2018101334A (ja) メモリシステムおよび制御方法
US9933952B1 (en) Balancing allocated cache pages among storage devices in a flash cache
US20170031601A1 (en) Memory system and storage system
US10067877B1 (en) Method, apparatus and computer program product for use in managing multi-cache data storage systems
CN116360673A (zh) 存储装置、存储装置的操作方法及使用其的存储系统
WO2013184124A1 (en) Augmenting memory capacity for key value cache
US20230333986A1 (en) Techniques for reclaiming dirty cache pages
US10782891B1 (en) Aggregated host-array performance tiering
JP6231700B2 (ja) サーバストレージシステムと管理システムを有する計算機システム
KR20230100522A (ko) 스토리지 장치, 스토리지 장치의 동작 방법 및 스토리지 시스템
US9176854B2 (en) Presenting enclosure cache as local cache in an enclosure attached server
WO2017163322A1 (ja) 管理計算機、および計算機システムの管理方法

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 13577165

Country of ref document: US

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

Ref document number: 12866625

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

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP