WO2017175350A1 - 計算機システム - Google Patents

計算機システム Download PDF

Info

Publication number
WO2017175350A1
WO2017175350A1 PCT/JP2016/061378 JP2016061378W WO2017175350A1 WO 2017175350 A1 WO2017175350 A1 WO 2017175350A1 JP 2016061378 W JP2016061378 W JP 2016061378W WO 2017175350 A1 WO2017175350 A1 WO 2017175350A1
Authority
WO
WIPO (PCT)
Prior art keywords
storage
speed memory
server
computer system
extent
Prior art date
Application number
PCT/JP2016/061378
Other languages
English (en)
French (fr)
Inventor
健 杉本
永見 明久
Original Assignee
株式会社日立製作所
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 株式会社日立製作所 filed Critical 株式会社日立製作所
Priority to PCT/JP2016/061378 priority Critical patent/WO2017175350A1/ja
Publication of WO2017175350A1 publication Critical patent/WO2017175350A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • 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

Definitions

  • the present invention relates to a computer system.
  • This approach can be said to be a method in which the device takes advantage of low latency by installing high-speed memory in the data processing unit, that is, the server.
  • this method improves application performance, it has the following problems. First, maintenance and management of the high-speed memory mounted on the server is required, so that maintainability and manageability are deteriorated. Next, the capacity efficiency is reduced as compared with the case where a high-speed memory is installed in the storage. Finally, since it is necessary to install a high-speed memory for each server, the cost of the entire system is improved considering that high-speed memory is generally effective.
  • the latency of the interconnect has been lowered, and the processing latency of the storage apparatus has also been lowered. Therefore, even if high-speed memories are aggregated from the server to the storage device, the latency is not greatly reduced as compared with the case where they are installed in the server. Therefore, it is considered that by consolidating the high-speed memory in the storage, it is possible to improve the maintainability and manageability, improve the capacity efficiency, and reduce the system cost while taking advantage of the low latency of the high-speed memory device.
  • a thin provisioning technique is known as a technique for improving the maintainability, manageability, and capacity efficiency of a disk that is a final storage device of data.
  • the thin provisioning technology creates a virtual volume having a virtual capacity on a storage device and provides it to a server.
  • the thin provisioning technology can dynamically assign a real storage area to a virtual volume from a disk that is a final storage device of data, thereby giving a virtual capacity larger than the actual capacity of the disk to the virtual volume.
  • Thin provisioning technology can set the disk capacity in the server to a large value in advance, so that it is possible to cope with the shortage of practical capacity by only adding disks in the storage device without changing the disk capacity setting in the server. .
  • Thin provisioning technology performs reclaim processing to release thin provisioned areas. Thereby, it is possible to reuse an area from which data has been deleted after thin provisioning.
  • the reclaim process is disclosed, for example, in US Pat. No. 8,595,431.
  • the storage control system uses one or more non-write target data patterns in which the data pattern of data exchanged with the host device is included in the pre-write non-write target data pattern information. If a negative determination result is obtained, the storage control subsystem stores the data in a logical device formed on the disk type storage device. If the determination result is obtained, the storage control subsystem erases the data without storing it in the logical device "(for example, summary).
  • thin provisioning technology makes it easy to design disk capacity when designing applications. For this reason, it is conceivable to improve the maintainability, manageability, and capacity efficiency of the high-speed memory by applying the thin provisioning technology to the configuration in which the high-speed memory is integrated into the storage device.
  • High-speed memory at the time of application design by thin-provisioning the storage area (high-speed memory area) of high-speed memory, preallocating virtual capacity more than the practical amount to the server in advance, and adding high-speed memory in the storage device when necessary It is thought that the capacity design can be facilitated.
  • the high-speed memory is used by the server as a disk cache area (also referred to simply as a cache area) for data stored on the disk or as a swap area (memory expansion area). Is done. For this reason, when high-speed memory is thin-provisioned and allocated to a server (a volume area accessed by the server), a problem is expected in terms of usage of the high-speed memory area.
  • the disk space usage gradually increases monotonously. Therefore, when the thin provisioning technology is applied to the disk, the time when the disk capacity is insufficient can be predicted from the past usage data, the function expansion plan of the future application, and the like. By adding a disk before the disk capacity is insufficient, the capacity shortage can be avoided.
  • the high-speed memory capacity is much less than the disk capacity. For this reason, when the high-speed memory area is allocated by thin provisioning, it is considered that the allocated virtual capacity is used up in a short period of time and the capacity of the high-speed memory falls short.
  • the storage area required for swapping changes from time to time according to the operation of the server. Since high-speed memory is used by a plurality of servers, it is required to appropriately allocate a limited high-speed memory area to the plurality of servers.
  • the system may statically allocate a high speed memory area to the volume.
  • the system may fix the allocation relationship between the area of the high-speed memory and the area in the volume and allow the server to recognize the actual capacity. Even in this configuration, the same problem as the allocation by thin provisioning occurs.
  • the high-speed memory area is used as a temporary data storage area, and the change in usage by each server is also significantly different from the disk area. Therefore, a technique different from the conventional disk area releasing technique is required for releasing the high-speed memory area.
  • One aspect of the present invention is a computer system including a storage system that receives access from a plurality of servers via a network, and a management device that manages the plurality of servers, the storage system including a storage controller, Including a first storage and a second storage that is faster than the first storage, wherein the first storage provides a final storage location for the data of the plurality of servers, and the second storage is stored in the first storage
  • the management device refers to information related to access of data stored in each of the plurality of storage area units used as a cache in the second storage, and based on the information, the plurality of data Determine the risk value for releasing each storage unit, Serial based on the risk value, determines the storage area unit to release in the plurality storage area units.
  • FIG. 1 is a volume configuration diagram according to Embodiment 1.
  • FIG. 1 is a hardware configuration diagram of a computer system related to Example 1.
  • FIG. 1 is a diagram illustrating an example of a software configuration of a computer system according to Embodiment 1.
  • FIG. 4 shows an example of an in-server high-speed memory allocation table according to the first embodiment. An example of the access log which concerns on Example 1 is shown. An example of the free list which concerns on Example 1 is shown.
  • 3 shows an example of an inter-server high-speed memory allocation table according to the first embodiment. 6 shows an example of an active / standby table server table according to the first embodiment.
  • 3 is an example of a flowchart of read processing according to Embodiment 1; 6 is an example of a flowchart of a write process according to the first embodiment. 3 is an example of a flowchart of extent securing processing according to Embodiment 1; 6 is an example of a flowchart of extent release processing of an active server according to the first embodiment. 7 is an example of a flowchart of extent release processing of a standby server according to the first embodiment. 6 is an example of a flowchart of an operation of an administrator at the time of a high-speed memory capacity shortage warning according to the first embodiment. 3 is an example of an initial setting flowchart according to the first embodiment; 6 is an example of a setting screen according to the first embodiment. FIG.
  • 10 is a diagram illustrating an example of a software configuration of a computer system according to a second embodiment.
  • 10 shows an example of an in-storage high-speed memory allocation table according to the second embodiment.
  • 10 shows an example of a multipath table according to the second embodiment.
  • 12 is an example of a flowchart of a read process according to the second embodiment.
  • 12 is an example of a flowchart of a write process according to the second embodiment.
  • 10 is an example of a flowchart of extent release processing associated with a path state change according to the second embodiment.
  • 12 is an example of a flowchart of an operation of an administrator at the time of a high-speed memory capacity shortage warning according to the second embodiment.
  • 10 is an example of a setting screen according to the second embodiment.
  • Example 1 will be described below.
  • the storage system thin provisions high-speed memory to create one or a plurality of virtual volumes, and provides each virtual volume as an LU (Logical Unit) to one or a plurality of servers (server modules in the following example). Thin provisioning allocates a real storage area in accordance with a write to a virtual volume. In the following, an example in which one virtual volume is allocated to a plurality of servers will be described.
  • the server uses the LU provided by the high-speed memory as a cache.
  • FIG. 1A shows a volume configuration example.
  • two LDEVs (Logical Devices) 13 are constructed from the storage area (disk area) of the disk 121, and each is provided to the server module 101 as an LU 14.
  • the LDEV 13 (disk area) is a final storage area for host data (hereinafter also simply referred to as data).
  • a plurality of LDEVs 13 may be assigned to one LU 14, and the LU 14 may be a virtual volume by thin provisioning.
  • a plurality of LDEVs 11 are constructed from the storage area (high-speed memory area) of the high-speed memory 120, and a capacity pool (hereinafter also simply referred to as a pool) 10 is configured.
  • the high speed memory 120 is a storage device that is faster than the disk 121.
  • the LDEV 11 is a pool volume of the pool 10.
  • a virtual volume 12 is formed from the pool 10 by thin provisioning, and is provided to the plurality of server modules 101 as an LU.
  • a real storage area (high-speed memory area) is dynamically allocated to the virtual volume 12 from the LDEV 11 in the pool 10 in accordance with new writing of data.
  • the capacity of the virtual volume 12 is virtualized, and the virtual volume has a virtual capacity that is greater than the practical amount.
  • Each server module 101 is assigned several extents 15 in the virtual volume 12.
  • the extent 15 is an area (storage area unit) of a predetermined size in the virtual volume 12, and is a management storage area unit of the virtual volume 12 in the storage system.
  • the storage system allocates a real storage area from the pool 10 to the virtual volume 12 in extent units.
  • the virtual volume 12 is used by a plurality of server modules 101 as a cache.
  • the server module 101 writes data to the LU 14 (LDEV 13) and also to the virtual volume 12 (LDEV 11).
  • the LDEV 11 is faster than the LDEV 13, and when data is stored in the virtual volume 12, the server module 101 can acquire data faster than acquiring data from the LU 14.
  • the disk 121 is a first storage that provides a final storage location of server data
  • the high-speed memory 120 is a second storage that is faster than the disk 121 and provides a storage area used as a cache.
  • real storage areas allocated to the plurality of server modules 101 are released from the allocation in units of extents.
  • the extent released from the allocation to the server module 101 is further released from the allocation to the virtual volume 12.
  • the risk value for releasing each extent is managed, and the extent to be released is selected based on the risk value.
  • the system for example, the risk value is based on the access frequency to the extent.
  • the system monitors access to each extent and determines whether each extent is released based on the access frequency.
  • the extent risk value may be based on information regarding other accesses of the extent.
  • the information related to other accesses is, for example, information on the state of a path between an application that uses extents or an extent allocation destination and the storage system 110.
  • the limited storage area of the high speed memory 120 can be more appropriately distributed among the plurality of server modules 101.
  • the virtual volume 12 by thin provisioning is provided as a cache to the plurality of server modules 101, but the system may statically allocate a high-speed memory area to a volume (LU). That is, the system may fix the allocation relationship between the area of the high-speed memory 120 and the area in the volume so that the server module 101 recognizes the actual capacity.
  • LU volume
  • the system determines the extent to be released from the allocation to the server module 101 based on the risk value.
  • the extent allocation to the server module 101 is released, but the allocation to the volume is maintained.
  • the released extent changes to a free area in the volume.
  • FIG. 1B is a hardware configuration diagram of the computer system according to the first embodiment.
  • the computer system includes one or more server devices 100, one or more shared storage systems 110, and a management device 140.
  • the management device 140 is connected to the server device 100 via the network 150.
  • the management device 140 is connected to the shared storage system 110 via the network 160.
  • the management device 140 may be included in the storage system 110. In this case, the operation performed by the management apparatus 140 is also the operation of the storage system 110, and vice versa.
  • Examples of the networks 150 and 160 are WAN (Wide Area Network) or LAN (Local Area Network), but are not limited thereto.
  • the server apparatus 100 and the management apparatus 140, and the shared storage system 110 and the management apparatus 140 may be directly connected without going through a network.
  • the network 150 and the network 160 may be the same network.
  • the shared storage system 110 is also referred to as the storage system 110.
  • the server apparatus 100 includes a plurality of server modules 101.
  • the server device 100 is a server system including a plurality of server modules.
  • Each server module 101 includes a processor 102, a memory 103, a storage network interface (I / F) 104, a server network I / F 105, and a management network I / F 106.
  • the server module 101 may include other configurations (not shown) such as a storage medium and an input / output device. These components in the server module 101 are connected to each other via an internal path.
  • the processor 102 and the memory 103 may be referred to as a server controller.
  • the storage network I / F 104 is an interface device for connecting to a storage controller 111 described later via the network 130.
  • the server network I / F 105 is an interface device for connecting the server modules 101.
  • the management network I / F 106 is an interface device for connecting to the management apparatus 140.
  • An example of the network 130 connected between the server module 101 and the storage controller 111 described below uses the Fiber Channel, but is not limited to this.
  • the processor 102 executes a program stored in the memory 103.
  • the processor 102 executes the program stored in the memory 103, the functions of the server module 101 are realized.
  • the memory 103 stores a program executed by the processor 102 and information necessary for executing the program.
  • the memory 103 also includes a work area used by the program.
  • the memory 103 may include a cache area. The cache area temporarily stores data stored in the storage system 110 by the server module 101.
  • the server module 101 uses the cache area of the memory 103 as a temporary cache, and can use a virtual volume provided by the storage system 110 and assigned with a high-speed memory area as a secondary cache.
  • the storage system 110 includes a plurality of storage controllers 111 and a high-speed memory 120 that is a device that includes one or a plurality of high-speed memory devices, and a disk that is a device that includes one or a plurality of disk devices. 121.
  • Each storage controller 111 is connected to the high-speed memory 120 and the disk 121.
  • the high-speed memory 120 and the disk 121 include a storage area for storing data used by an application executed by each server module 101.
  • the storage system 110 thin provisions the high-speed memory 120 and provides the server apparatus 100 with one or more LUs 15 (virtual volumes) having virtualized capacity. Further, the storage system 110 provides the server apparatus 100 with one or more LUs 14 to which the storage area of the disk 121 is allocated.
  • the high-speed memory 120 includes a storage device such as 3DXPoint, MRAM, or PCM.
  • the disk 121 includes a storage device such as an HDD (Hard Disk Drive) and an SSD (Solid State Drive). Any device can be used as long as it can store data, but the device included in the high-speed memory 120 is faster than the device included in the disk 121.
  • a RAID (redundant array of inexpensive disks) volume may be configured by the storage areas of a plurality of devices in the high-speed memory 120 or the disk 121.
  • the storage controller 111 controls the storage system 110.
  • the storage controller 111 includes a processor 112, a memory 113, a disk I / F 114, a storage network I / F 115, and a management network I / F 116. These components of the storage controller 111 are connected to each other via an internal path.
  • the processor 112 executes a program stored in the memory 113.
  • the processor 112 executes a program stored in the memory 113, thereby realizing the functions of the storage system 110.
  • the memory 113 stores a program executed by the processor 112 and information necessary for executing the program.
  • the memory 113 includes a work area used by the program.
  • the disk I / F 114 is an interface device for connecting to the high-speed memory 120 and the disk 121 described above.
  • the storage network I / F 115 is an interface device for connecting to the server module 101 via the network 130.
  • the management network I / F 116 is an interface device for connecting to the management apparatus 140.
  • the management device 140 manages each server module 101 and each storage system 110.
  • the management apparatus 140 includes a processor 142, a memory 143, a management network I / F 141, and a management network I / F 144. Each component of the management apparatus 140 is connected to each other via an internal path.
  • the processor 142 executes a program stored in the memory 143.
  • the memory 143 stores a program executed by the processor 142 and information necessary for executing the program.
  • the memory 143 includes a work area used by the program.
  • the management network I / F 141 is an interface for connecting to other devices via the network 150.
  • the management network I / F 144 is an interface for connecting to other devices via the network 160.
  • FIG. 2 is a diagram illustrating an example of a software configuration of the computer system according to the first embodiment.
  • the software configuration of the server module 101 will be described.
  • the server module 101 stores the OS 200 and one or more applications 201 that operate on the OS 200 in the memory 103.
  • the application 201 is, for example, database software, a hypervisor, a virtual desktop infrastructure, or the like, but the type of application is not limited to these.
  • the OS 200 is control software that controls the entire server module 101.
  • the OS 200 includes a high-speed memory allocation server driver 210.
  • the high-speed memory allocation server driver 210 executes control for using the LU (virtual volume) 12 of the thin provisioned high-speed memory 120 provided by the storage system 110 as a cache of the disk 121 from the server side.
  • LU virtual volume
  • the high-speed memory allocation server driver 210 adjusts the real-time capacity allocated from the high-speed memory 120 to the virtual volume 12 and the high-speed memory allocation management software 220 of the management apparatus 140 described later.
  • the high speed memory allocation server driver 210 includes an interface with the high speed memory allocation management software 220.
  • the high-speed memory allocation server driver 210 includes a hit miss check 211, a high-speed memory allocation 212, and a server high-speed memory capacity management 213 as control modules.
  • the high-speed memory allocation server driver 210 includes an intra-server high-speed memory allocation table 214, an access log 215, and a free list 216 as management tables.
  • the software configuration of the storage system 110 will be described.
  • the storage system 110 stores the microprogram 230 in the memory 113.
  • the microprogram 230 is executed by the processor 142.
  • the microprogram 230 is control software that controls the entire storage system 110.
  • the microprogram 230 includes a thin provisioning management 231. This module controls thin provisioning of the high-speed memory 120.
  • the software configuration of the management apparatus 140 will be described.
  • the management device 140 stores the high-speed memory allocation management software 220 in the memory 143.
  • the high speed memory allocation management software 220 is executed by the processor 142.
  • the high speed memory allocation management software 220 adjusts the allocated capacity of the high speed memory 120 between the server modules 101.
  • the high-speed memory allocation management software 220 includes an inter-server high-speed memory allocation management 221, an inter-server high-speed memory allocation table 222, and a server active / standby table 223 as control modules.
  • FIG. 3 shows an example of the in-server high-speed memory allocation table 214 held by the server module 101.
  • the in-server high-speed memory allocation table 214 indicates the correspondence between the data address in the disk 121 and the cache data address in the high-speed memory 120 when the data on the disk 121 is cached in the high-speed memory 120. .
  • the intra-server high-speed memory allocation table 214 includes information on the disk address 2140, the high-speed memory server extent number 2141, the high-speed memory address 2142, the valid bit 2143, the high-speed memory extent size 2144, and the page size 2145.
  • FIG. 3 shows address information of the virtual volume 12 of one high-speed memory.
  • the high-speed memory extent size 2144 indicates the size of the extent.
  • An extent is a management unit of the storage area of the high-speed memory 120 in the storage system 110.
  • the page size 2145 indicates the size of a page that is a management unit and an access unit of the storage area of the high-speed memory 120 by the server module 101.
  • the page is also a management unit and an access unit for the storage area of the disk 121.
  • One entry of the disk address 2140 indicates one page on the disk, and one entry of the high-speed memory server extent number 2141 and the high-speed memory address 2142 indicates one page on the high-speed memory.
  • the extent number is unique within the server module.
  • the extent size is a multiple of the page size. Accordingly, the server module 101 can efficiently acquire necessary data and can efficiently manage storage areas by the storage system 110.
  • the server module 101 can perform cache hit determination based on whether or not the high-speed memory address corresponding to the disk address exists in the high-speed memory allocation table 214 in the server.
  • the storage area of the high-speed memory 120 is allocated to each server module 101 in units of a high-speed memory extent size 2144.
  • the server module 101 uses the high-speed memory 120 in units of page size 2145.
  • the high-speed memory extent size 2144 is the same among all the server modules 101, the management apparatus 140, and the storage system 110, but the page size 2145 may be a different value between the server modules 101.
  • the high-speed memory extent size may be simply referred to as the extent size.
  • FIG. 4 shows an example of the access log 215 held by the server module 101.
  • the access log 215 holds the number of accesses (access frequency) within a predetermined time for each extent allocated to the server module 101.
  • the access log 215 includes information on the extent number 2150 in the high-speed memory server and the number of accesses 2151.
  • FIG. 5 shows an example of the free list 216 held by the server module 101.
  • the free list 216 manages free areas that are not yet allocated (no data is stored) in the extents of the high-speed memory 120 allocated to the server module 101.
  • the free list 216 includes information on the extent number 2160 and the high-speed memory address 2161 in the high-speed memory server. Also, information on the free list remaining number threshold 2162 is included. The free list remaining number threshold 2162 is a reference value for assigning a new extent to the server module 101.
  • FIG. 6 shows an example of the inter-server high-speed memory allocation table 222 held by the management apparatus 140.
  • the inter-server high-speed memory allocation table 222 holds information for adjusting extents between servers.
  • the extent allocation status for each server module 101, the total number of extents in the high-speed memory 120, the number of remaining extents in the high-speed memory 120, etc. Contains information.
  • the inter-server high-speed memory allocation table 222 includes a server number 2220, a server extent number 2221, an access count 2222, a valid bit 2223, a total extent number 2224, a remaining extent number 2225, an extent remaining number threshold 2226, a release threshold 2227, and a minimum extent release.
  • the information of Formula 2228 and warning threshold value 2229 is included.
  • the number of accesses 2222 (access frequency) can be used as a risk value.
  • the risk value is a reference value for determining whether to release the allocated extent.
  • the risk value may be determined based on information different from the access frequency. For example, a risk value may be assigned to an application, a server, or a link state, and these may be combined to determine a risk value. Accordingly, it is possible to relatively increase the hit rate of an application that requires high-speed access, relatively increase the hit rate of an application on a specific server, or preferentially release extents that cannot be accessed due to link down.
  • FIG. 7 shows an example of the server active / standby table 223 held by the management apparatus 140.
  • the server active / standby table 223 holds the active / standby configuration of each cluster.
  • This table includes information on the active server number 2230 and the standby server number 2231.
  • the management apparatus 140 refers to the server active / standby table 223 and allocates the storage area of the high-speed memory 120 to the active side
  • the management apparatus 140 allocates the storage area of the high-speed memory 120 to the standby side in advance.
  • FIG. 8 is an example of a flowchart of processing of the high-speed memory allocation server driver 210 when the application 201 executes read.
  • this processing for example, when the application 201 issues a read system call to the OS 200 and the OS 200 has a miss in the cache of the memory 103, or the read system in which the application 201 does not pass through the cache of the memory 103 to the OS 200.
  • the process starts when the OS 200 issues a read command to the disk 121 when a call is issued.
  • the server module 101 does not have a cache for application data in the apparatus, the hit / miss determination is skipped.
  • the high-speed memory allocation server driver 210 performs hit-miss determination using the in-server high-speed memory allocation table 214 in the hit miss check 211 (S100). As a result, subsequent processing corresponding to the hit or miss is executed, and the data cached in the high-speed memory 120 can be read at high speed.
  • the hit miss check 211 has an entry of the disk address 2140 that matches the disk address of the read destination included in the read command in the intra-server high-speed memory allocation table 214, and the valid bit 2143 of the entry is valid. Whether it is “1”.
  • the hit miss check 211 determines that the cache hit. If there is no matching disk address 2140 entry or there is a matching disk address 2140 entry but its valid bit 2143 is not valid, the hit miss check 211 determines that the cache miss.
  • the high-speed memory allocation 212 acquires the corresponding high-speed memory server extent number 2141 from the high-speed memory allocation table 214 in the server and matches the number acquired in the access log 215.
  • the access count 2151 is incremented (S102). As a result, the number of accesses to the extent is updated to the latest value.
  • the high-speed memory allocation 212 replaces the read destination address of the read command with the cache destination address of the high-speed memory 120 and executes normal read processing on the high-speed memory 120 (S103). Thereby, data can be read at high speed.
  • the high-speed memory allocation 212 executes a read process for the disk 121 (S104). In the case of a cache miss, data is read from the final storage location.
  • the high-speed memory allocation 212 searches for an entry (empty area) in the free list 216 (S105). If there is no entry in the free list 216 (S105: NO), that is, if there is no free area in the high-speed memory 120 allocated to the server module 101, the read process ends.
  • the high-speed memory allocation 212 acquires one free entry from the free list 216. For example, the top entry of the free list 216 is acquired.
  • the high-speed memory allocation 212 writes the data read from the disk 121 to the high-speed memory 120 (S106). As a result, the latest read data is cached in the high-speed memory 120.
  • the high-speed memory allocation 212 is the high-speed memory allocation table 214 in the server.
  • the read address of the read command is the disk address 2140
  • the extent number 2141 in the high-speed memory server is the extent number 2160 in the high-speed memory server in the free list 216
  • the high-speed memory The high-speed memory address 2161 of the free list 216 is registered in the address 2142, and “1” indicating validity is registered in the validity bit 2143, respectively. This completes the read process.
  • FIG. 9 is an example of a flowchart of processing of the high-speed memory allocation server driver 210 when the application 201 executes write.
  • the high-speed memory allocation server driver 210 performs cache control using the write-through method.
  • write-through method write data is written to each of the high-speed memory 120 and the disk 121.
  • This processing is performed when the OS 200 writes data to the disk 121 from the cache in the memory 103 or when the application 201 issues a write system call that does not pass through the cache in the memory 103 to the OS 200. Started when a command is issued.
  • the high-speed memory allocation server driver 210 executes normal write processing on the disk 121 (S201).
  • the hit miss check 211 the high speed memory allocation server driver 210 performs hit miss determination using the internal high speed memory allocation table 214 in the same manner as when reading (S202). Thereby, the subsequent processing corresponding to the hit or miss is executed.
  • the hit miss check 211 as in the read, there is an entry of the disk address 2140 that matches the write destination disk address included in the write command in the high-speed memory allocation table 214 in the server, and the valid bit 2143 of the entry is valid. Whether it is “1”.
  • the hit miss check 211 determines that the cache hit. If there is no matching disk address 2140 entry or there is a matching disk address 2140 entry but its valid bit 2143 is not valid, the hit miss check 211 determines that the cache miss.
  • the high-speed memory allocation 212 acquires the corresponding high-speed memory server extent number 2141 from the high-speed memory allocation table 214 in the server, and the number acquired in the access log 215, as in reading.
  • the number of accesses 2151 is incremented in the entry of the extent number 2150 in the high-speed memory server that coincides with (S203). As a result, the number of accesses to the extent is updated to the latest value.
  • the high-speed memory allocation 212 replaces the write destination address of the write command with the address of the cache destination (write destination) of the high-speed memory 120 and executes normal write processing on the high-speed memory 120 (virtual volume 12) (S204). ).
  • the write destination address (cache write address) is determined by the following equation, for example.
  • Cache write address high speed memory extent size 2144 ⁇ high speed memory server extent number 2141 + high speed memory address 2142 This completes the write process.
  • the high-speed memory allocation 212 searches for an entry in the free list 216 (S205). If there is no entry in the free list 216 (S205: NO), that is, if there is no free area in the high-speed memory 120 allocated to the server module 101, the write process ends.
  • the high-speed memory allocation 212 acquires one entry from the free list 216. For example, the high-speed memory allocation 212 acquires the top entry of the free list 216. The high-speed memory allocation 212 writes data to the high-speed memory 120 (S206).
  • the write destination address in the high-speed memory 120 is obtained by the following equation, for example.
  • Cache write address high-speed memory extent size 2144 ⁇ free-list 216 high-speed memory server extent number 2160 + free list 216 high-speed memory address 2161
  • the high-speed memory allocation 212 includes the high-speed memory allocation table 214 in the server, the write address of the write command in the disk address 2140, the extent number 2141 in the free list 216 in the high-speed memory server extent number 2141, the high-speed memory
  • the high-speed memory address 2161 of the free list 216 is registered in the address 2142, and “1” indicating validity is registered in the validity bit 2143 (S207). This completes the write process.
  • FIG. 10 is an example of a flowchart of the capacity securing process (storage area allocation process) of the high-speed memory 120 for the server module 101.
  • This process is executed by the server high-speed memory capacity management 213 of the high-speed memory allocation server driver 210. This process is started, for example, every predetermined time.
  • the server high-speed memory capacity management 213 may be started when the number of remaining free list entries decreases due to read processing or write processing (S106 or S206).
  • the server high-speed memory capacity management 213 determines whether the number of remaining entries in the free list 216 is equal to or less than the free list remaining number threshold 2162 (S300). If the number of remaining entries in the free list 216 is greater than the free list remaining number threshold 2162 (S300: NO), this process ends. When the number of remaining entries in the free list 216 is equal to or smaller than the free list remaining number threshold 2162 (S300: YES), the server high-speed memory capacity management 213 starts processing for adding entries to the free list 216. Thereby, it is possible to add when the free capacity of the high-speed memory 120 allocated to the server module 101 is insufficient.
  • the server high-speed memory capacity management 213 requests extent allocation to the inter-server high-speed memory allocation management 221 of the high-speed memory allocation management software 220 executed by the management device 140 (S301).
  • the inter-server high-speed memory allocation management 221 refers to the number of remaining extents 2225 in the inter-server high-speed memory allocation table 222, and determines whether there is a remaining extent (S302).
  • the inter-server high-speed memory allocation management 221 decrements the value of the number of remaining extents 2225 and determines the extent number to be allocated.
  • the extent number to be determined is, for example, the smallest extent number that is not allocated to the server number of the allocation request source server module 101 in the inter-server high-speed memory allocation table 222. Since the extent number is defined in the server module, any unassigned number may be used.
  • the in-server extent number 2221 indicates the extent number assigned to the server number.
  • the inter-server high-speed memory allocation management 221 adds a new entry to the inter-server high-speed memory allocation table 222.
  • the server number 2220 is the allocation request source server module number
  • the in-server extent number 2221 is the number determined as described above
  • the number of accesses 2222 is “0”
  • the valid bit 2223 is “1” indicating valid. is there.
  • the inter-server high-speed memory allocation management 221 notifies the allocation request source server module 101 of the extent number determined as described above.
  • the server high-speed memory capacity management 213 receives the extent number from the inter-server high-speed memory allocation management 221 and updates the free list 216 (S304). Specifically, the server high-speed memory capacity management 213 divides extents into pages based on the high-speed memory extent size 2144 and page size 2145 and registers them in the free list 216. As a result, a new free extent is allocated to the request source server module 101.
  • the inter-server high-speed memory allocation management 221 refers to the active / standby server table 223, determines whether there is a standby server corresponding to the allocation request source server module 101, and refers to the number of remaining extents 2225. It is determined whether there is a remaining extent (S305).
  • Whether there is a standby server is determined by whether there is a standby server number 2231 corresponding to the request source server number (active server number 2230) in the active / standby server table 223. If there is no standby server or the number of remaining extents 2225 is 0 (S305: NO), the process ends. This is because if either one does not exist, an extent cannot be allocated to the standby server.
  • the inter-server high-speed memory allocation management 221 determines the maximum number of extents allocated to the corresponding active server as the inter-server high-speed. Obtained from the memory allocation table 222. The inter-server high-speed memory allocation management 221 determines whether the maximum number of allocated extents has been updated by the current extent allocation (S306).
  • the inter-server high-speed memory allocation management 221 allocates extents to the standby server modules (S307). Thereby, the number of allocated extents of the standby server matches the maximum number of allocated extents in the active server, and the possibility of occurrence of a malfunction due to a cache shortage at the time of failover can be reduced.
  • the standby server module 101 updates the free list 216 according to the addition of the extent (S308). Note that details of the processing of S307 are the same as those of S303, and details of the processing of S308 are the same as those of S304. This completes the process of securing the capacity of the high-speed memory 120 for the server module 101 by the server high-speed memory capacity management 213 of the high-speed memory allocation server driver 210.
  • FIG. 11 is an example of a flowchart of extent release processing of the high-speed memory 120 from the active server by the inter-server high-speed memory allocation management 221. This process is started, for example, every predetermined time.
  • the inter-server high-speed memory allocation management 221 may start this process when the number of remaining extents 2225 is reduced by the high-speed memory securing process by the server high-speed memory capacity management 213 (S303, S306).
  • the inter-server high-speed memory allocation management 221 refers to the number of remaining extents 2225 and determines whether the value of the number of remaining extents 2225 is less than or equal to the value of the extent remaining number threshold 2226 (S400). When the value of the remaining extent number 2225 is larger than the value of the extent remaining number threshold value 2226 (S400: NO), this process ends. By executing the release process after the number of remaining extents (free capacity) has been reduced to a preset number, unnecessary release is avoided and allocation to the server module 101 that originally needs the extent is more reliably performed. Can do.
  • the inter-server high-speed memory allocation management 221 collects the access log 215 from the server module 101.
  • the inter-server high-speed memory allocation management 221 registers the collected values in the inter-server high-speed memory allocation table 222 (S401).
  • the inter-server high-speed memory allocation management 221 refers to the values collected and registered in S401, and selects the extent to be released by the minimum extent release number 2228 minutes from the extent whose access count is the release threshold 2227 or lower or the extent whose access count is lower. (S402). When the number of extents whose access count is less than or equal to the release threshold 2227 is less than the minimum extent release count 2228, all extents whose access count is less than or equal to the release threshold 2227 are selected. By selecting an extent with a small number of accesses, the cache hit rate of the entire high-speed memory 120 can be increased.
  • the inter-server high-speed memory allocation management 221 notifies the corresponding server module 101 of the extent number to be released according to the determination in S402 (S403).
  • the server high-speed memory capacity management 213 of each server module 101 receives this notification and deletes the information on the designated extent from the held table (S404).
  • the server high-speed memory capacity management 213 deletes all entries corresponding to extents that received the deletion notification from the intra-server high-speed memory allocation table 214, the access log 215, and the free list 216.
  • the server high-speed memory capacity management 213 requests extent release to the thin provisioning management 231 of the microprogram 230 (S405).
  • the extent release request may be transmitted between the microprogram 230 and the high-speed memory allocation server driver 210 via a new I / F created for the extent release processing of the high-speed memory 120.
  • the high-speed memory allocation server driver 210 may request extent release from the thin provisioning management 231 by writing all 0s in the extent area and separately requesting an area reclaim from the storage management I / F.
  • the storage system 110 reads data in units of extents, and if all data in a certain extent is 0, releases the extent.
  • the volume constructed from the high-speed memory 120 is not a virtual volume based on thin provisioning and the allocation of the storage area of the high-speed memory 120 to the volume is fixed (static), this step is omitted.
  • the high-speed memory 120 since the high-speed memory 120 is used as a write-through cache, data in the high-speed memory 120 can be deleted without considering data loss.
  • dirty data is read from the high-speed memory 120 and written back to the disk 121.
  • the write back method after writing to the cache area, data is written from the cache area to the disk area.
  • the server high-speed memory capacity management 213 responds to the inter-server high-speed memory allocation management 221 with the extent release completion (S406). Based on this notification, the inter-server high-speed memory allocation management 221 deletes the extent entry to be released from the inter-server high-speed memory allocation table 222 and increments the remaining extent number 2225. This is the end of the extent release processing.
  • the inter-server high-speed memory allocation management 221 determines whether the access count of the released extent is greater than or equal to the warning threshold value 2229 (S408). If it is less than or equal to the threshold value, this process ends. If the access count is equal to or higher than the warning threshold 2229, it is considered that the high-speed memory capacity has become insufficient. Therefore, the inter-server high-speed memory allocation management 221 warns the administrator that the high-speed memory capacity is insufficient (S409). Examples of warnings include email notifications and dashboard notifications.
  • FIG. 12 is an example of a flowchart of the extent release processing of the high-speed memory 120 from the standby server by the inter-server high-speed memory allocation management 221. This process is executed, for example, after the extent release process of the active server shown in FIG. This process is executed for each standby server.
  • the inter-server high-speed memory allocation management 221 acquires the active server number associated with the standby server from the active / standby server table 223 (S500). Next, the inter-server high-speed memory allocation management 221 acquires from the inter-server high-speed memory allocation table 222 the maximum number of extents allocated to the acquired active server number and the number of extents allocated to the standby server ( S501).
  • the inter-server high-speed memory allocation management 221 reduces the number of extents allocated to the standby server to the maximum number of extents allocated to the corresponding active server (S502). As a result, the free area of the high-speed memory 120 can be increased while avoiding a cache shortage during failover.
  • the allocation extent release processing from the standby server is the same as the allocation extent release processing from the active server in FIG.
  • FIG. 13 is an example of a flowchart of the operation of the administrator when the administrator receives an alarm in S408 of FIG.
  • the administrator receives a warning about insufficient capacity of the high-speed memory 120 through S408 (S600).
  • the administrator receives a warning and determines the necessity of adding a high-speed memory (S601).
  • the administrator determines the necessity of high-speed memory expansion from a business aspect, such as the amount of investment required for expansion and the impact on applications when not expanded. If it is determined to add, the administrator adds a device of the high-speed memory 120 and incorporates it in the thin provisioning volume (S602). This process is a normal device expansion process of the storage system.
  • the administrator uses the input device of the management apparatus 140 to perform a capacity increase setting for the inter-server high-speed memory allocation management 221. Specifically, the administrator increases the number of total extents 2224 and the number of remaining extents 2225 in the inter-server high-speed memory allocation table 222 according to the additional capacity and extent size of the high-speed memory 120 (S603). If it is determined in S601 that no additional memory is to be added, the administrator determines at which stage the high-speed memory is to be added next, and changes the warning threshold 2229 according to the determination (S604).
  • FIG. 14 is an example of an initial setting flowchart according to the first embodiment.
  • the initial setting may be performed when the computer system is constructed, or may be performed during the operation of the computer system.
  • the administrator installs hardware and software as necessary in each server module 101, storage system 110, and management apparatus 140 (S700). Specifically, the high-speed memory allocation server driver 210 is introduced into each server module 101, the high-speed memory 120 is introduced into the storage system 110, and the high-speed memory allocation management software 220 is introduced into the management device 140.
  • the administrator uses the input device of the management apparatus 140 to perform initial setting of various parameters (S701). Specifically, the administrator sets the high-speed memory extent size 2144, page size 2145, free list remaining number threshold 2162, extent remaining number threshold 2226, release threshold 2227, minimum extent release number 2228, and warning threshold 2229. Next, the administrator uses the input device of the management apparatus 140 to set the number of each server module 101 that can use the high-speed memory 120 (S702), and the LDEV # of the high-speed memory 120 that can be used by the server module 101. Is set (S703).
  • the high-speed memory allocation management software 220 thin provisions the LDEV of the high-speed memory 120 indicated by LDEV #, creates an LU for the server module 101, and assigns it to the server module 101 (S704). .
  • the inter-server high-speed memory allocation management 221 allocates extents to each server module (S705).
  • the server high-speed memory capacity management 213 updates the free list 216 according to the allocated number of extents.
  • the inter-server high-speed memory allocation management 221 sets the total extent number 2224 from the total capacity and extent size of the high-speed memory 120, and subtracts the total extent number allocated to the server module 101 from the total extent number 2224. The remaining extent number 2225 is set.
  • FIG. 15 shows an example of a GUI display image by the high-speed memory allocation management software 220 of the first embodiment.
  • the display image 300 is an image for setting high-speed memory allocation.
  • the display image 300 includes a currently used LDEV number 301, a server number 302 to which high-speed memory has been allocated, a newly assignable LDEV number 303, and a server number 304 to which a new high-speed memory can be allocated.
  • the administrator uses the input device of the management apparatus 140 to input an additional LDEV number 305 and presses the LDEV addition button 306, so that the LDEV newly constructed from the high-speed memory 120 can be used by the server module 101. Become.
  • the input LDEV # is displayed on the available LDEV # 303.
  • the administrator can add the server module 101 that can use the high-speed memory 120 by inputting the additional server name 307 using the input device of the management apparatus 140 and pressing the server addition button 308.
  • the input server # is displayed in the assignable server module # 304.
  • the administrator can stop the use of the LDEV by inputting the deletion LDEV number 309 from among the unallocated LDEVs and pressing the LDEV deletion button 320.
  • the selected LDEV # is deleted from the available LDEV # 303.
  • the administrator can stop the use of the high-speed memory 120 by the server module 101 by inputting the deletion server name 321 and pressing the server deletion button 322.
  • the selected server # is deleted from the assigned server module # 302 or the assignable server module # 304.
  • Embodiment 2 uses a volume provided from a high-speed memory as a swap area (memory expansion area).
  • the configuration of the second embodiment may be included in the system together with the configuration of the first embodiment, and only the configuration of the first embodiment or only the configuration of the second embodiment may be included in the system.
  • the swap area is a save destination for data stored in the memory of the host module, and is used as a part of the main memory area.
  • the volume provided from the high-speed memory is a virtual volume by thin provisioning.
  • the volume may have a fixed capacity.
  • the high-speed memory storage area as a swap area that can be used by multiple server modules enables high-speed swapping and prevents errors due to insufficient memory capacity of multiple server modules with a small amount of high-speed memory capacity. it can.
  • the server module When using the high-speed memory storage area allocated by thin provisioning as a swap area (memory expansion area), the server module transmits an instruction to secure or release the high-speed memory storage area to the storage system.
  • the storage system secures or releases the storage area of the high-speed memory according to the instruction.
  • the high-speed memory area reservation instruction may be included in the extended write command. Since the necessary data read (swap-in) from the swap area by the server module is basically executed when the swap area is released, the high-speed memory area release instruction may be included in the extended read command.
  • the write command is extended for the high-speed memory capacity securing process and the read command is extended for the high-speed memory capacity releasing process.
  • dedicated instructions are prepared for the high-speed memory capacity securing process and the releasing process.
  • the command extension eliminates the need for dedicated commands and dedicated access control for area allocation / release. Note that if data read (swap-in) that requires high-speed memory area release is not involved, reading data in the area only for releasing the area will only increase the I / O load.
  • one virtual volume generated from high-speed memory stores swap data of a plurality of server modules.
  • Each server module is assigned a virtual LU as a swap destination.
  • the virtual LU is not assigned a real storage area of the disk.
  • the server module designates a virtual LU address and performs swap data read / write (swap-in / swap-out).
  • the designated address is converted into the address of the virtual volume in the high-speed memory, and the area of the virtual volume is accessed for swap data.
  • the data of the host server is not stored in the disk but is stored only in the high-speed memory.
  • a plurality of virtual LUs may be assigned to one server module.
  • FIG. 16 shows an example of the software configuration of the computer system according to this embodiment.
  • the hardware configuration diagram of the computer system according to the present embodiment is the same as FIG.
  • the software configuration of the server module 101 will be described.
  • the server module 101 stores the OS 200 and one or more applications 201 operating on the OS 200 in its own memory 103.
  • the application 201 is, for example, database software, a hypervisor, a virtual desktop infrastructure, or the like, but the type of the application 201 is not limited to these.
  • the OS 200 is control software that controls the entire server module 101.
  • the OS 200 includes a high-speed memory allocation server driver 210.
  • the storage system 110 stores the microprogram 230 in the memory 113.
  • the microprogram 230 is executed by the processor 142.
  • the micro program 230 executes I / O control between the server module 101, the high-speed memory 120, and the disk 121.
  • the microprogram 230 includes a high speed memory allocation storage driver 240.
  • the high-speed memory allocation storage driver 240 uses an LU (virtual volume) generated by thin provisioning the high-speed memory 120 as a swap area for a plurality of server modules 101. , Adjust the contact capacity from the high-speed memory 120.
  • the high-speed memory allocation storage driver 240 includes an I / F with the high-speed memory allocation management software 220 of the management device 140.
  • the high-speed memory allocation storage driver 240 includes a storage high-speed memory allocation 241 and a path monitoring 242 as control modules, and a storage internal high-speed memory allocation table 243 and a multipath table 244 as management tables.
  • the management device 140 stores the high-speed memory allocation management software 220 in the memory 143.
  • the high speed memory allocation management software 220 is executed by the processor 142.
  • the high-speed memory allocation management software 220 has a setting I / F for the high-speed memory allocation storage driver 240.
  • FIG. 17 shows an example of the high-speed memory allocation table 243 in the storage.
  • the in-storage high-speed memory allocation table 243 holds information on the LU number and LU address to which each extent of the high-speed memory 120 is allocated, and the extent usage status.
  • the LU number and the LU address are addresses designated by the server module 101 for swapping.
  • the in-storage high-speed memory allocation table 243 includes information on a high-speed memory extent number 2430, an LU number 2431, an LU base address 2432, an allocated page number 2433, and a valid bit 2434.
  • the in-storage high-speed memory allocation table 243 further includes information on a high-speed memory extent size 2435, a page size 2436, a remaining extent number 2437, and an extent remaining number threshold value 2438.
  • the high-speed memory extent size 2235 indicates the size of an extent that is a management unit of a high-speed memory area by the storage system 110.
  • the page size 2436 indicates the size of a page that is a management unit of the high-speed memory area (swap area) by the server module 101.
  • the high-speed memory extent size 2435 may be simply abbreviated as the extent size 2435.
  • FIG. 18 shows an example of the multipath table 244.
  • the high-speed memory 120 is used as a swap area, the data in the area has a volatile characteristic. Therefore, when a path between a certain server module 101 and the storage system 110 is disconnected, it is considered that data in the LU virtually allocated to the server module 101 for swap is not used thereafter. Also good. Therefore, in this embodiment, the extent of the high-speed memory 120 assigned to the LU is deleted.
  • the multipath table 244 holds multipath information of the server module 101.
  • the multipath table 244 includes information on the LU number 2340 and the multipath configuration 2341. In addition, information on the path number 2342 and the state 2343 for each path is included.
  • FIG. 19 is an example of a flowchart of processing of the high-speed memory allocation storage driver 240 when the OS 200 executes a read (swap-in) from the swap area. This process is started when the OS 200 issues a read command signifying the release of the swap area and the microprogram 230 receives the read command.
  • the read command designates a virtual LU assigned to the OS 200 and its address.
  • the storage high-speed memory allocation 241 acquires the LU number of the read destination and the value obtained by normalizing the read address (address within the LU) with the extent size 2435.
  • the value of the LU number 2431 and the value of the LU base address 2432 from the in-storage high-speed memory allocation table 243 correspond to the values obtained by normalizing the acquired LU number and read address, respectively.
  • An entry is selected (S1000).
  • the storage high-speed memory allocation 241 calculates, for example, the read destination address of the high-speed memory corresponding to the read address according to the following formula.
  • High-speed memory read destination address high-speed memory extent size ⁇ high-speed memory extent number 2430+ (read address ⁇ LU base address 2432)
  • the storage high-speed memory allocation 241 reads data from the high-speed memory 120 using the calculated read destination address of the high-speed memory as a read address, and returns the result to the server module 101 (S1001).
  • the storage high-speed memory allocation 241 decrements the value of the allocated page number 2433 of the corresponding entry in the in-storage high-speed memory allocation table 243 (S1002).
  • the storage high-speed memory allocation 241 is decremented by the number of “read size / page size 2436”.
  • the allocated page number 2433 indicates the number of pages in which data is stored in the extent.
  • the storage high-speed memory allocation 241 determines whether or not the value of the allocated page count 2433 after decrement is 0 (S1003). If the value of the allocated page number 2433 is not 0 (S1003: NO), this extent ends because the extent stores swap data.
  • FIG. 20 is an example of a flowchart of processing performed by the high-speed memory allocation storage driver 240 when the OS 200 executes a write (swap out) to the swap area. This process is started when the OS 200 issues a write command that means to secure a swap area and the microprogram 230 receives the write command.
  • the write command designates a virtual LU assigned to the OS 200 and its address.
  • the storage high-speed memory allocation 241 obtains the write destination LU number and the value obtained by normalizing the write address (LU internal address) with the extent size 2435.
  • the value of the LU number 2431 and the value of the LU base address 2432 from the in-storage high-speed memory allocation table 243 correspond to the values obtained by normalizing the acquired LU number and read address, respectively.
  • An entry is selected (S1100).
  • the calculation of the write destination address of the high-speed memory corresponding to the write address follows, for example, the following equation.
  • High-speed memory write destination address high-speed memory extent size ⁇ high-speed memory extent number 2430+ (write address ⁇ LU base address 2432)
  • the storage high-speed memory allocation 241 determines that the extent has been allocated (S1101: YES). The storage high-speed memory allocation 241 increments the allocation entry allocation page number 2433 (S1102).
  • the storage high-speed memory allocation 241 secures a free extent from the in-storage high-speed memory allocation table 243.
  • the free extent is an entry whose effective bit 2434 is “0” in the in-storage high-speed memory allocation table 243.
  • the storage high-speed memory allocation 241 writes to the LU number 2431 of the entry that secures the write destination LU number, and writes the value obtained by normalizing the write destination address with the high-speed memory extent size to the LU base address 2432. Furthermore, the storage high-speed memory allocation 241 sets the value of the allocated page number 2433 of the entry to 1, and sets the value of the valid bit 3434 to “1” that indicates valid. The storage high-speed memory allocation 241 decrements the number of remaining extents 2437 (S1104).
  • the storage high-speed memory allocation 241 performs a writing process to the high-speed memory 120 (S1105).
  • the high-speed memory write destination address is determined according to the above formula.
  • the storage high-speed memory allocation 241 determines whether the value of the remaining extent number 2437 is less than or equal to the value of the extent remaining number threshold value 2238 (S1106). Thereby, it is determined whether the capacity of the swap area is insufficient. When the value of the remaining extent number 2437 is larger than the extent remaining number threshold value 2238 (S1106), this processing ends.
  • the storage high-speed memory allocation 241 alerts the administrator that the swap area is insufficient (S1107). Thereby, the real storage area for swap can be increased as necessary. Examples of alerts are email notifications or dashboard notifications.
  • FIG. 21 is an example of a flowchart of processing in which the storage system 110 monitors the link state and releases the extent according to the link state. Since it is considered that the swap data having the volatile characteristic is not necessary due to the link disconnection, the free area of the high-speed memory 120 is increased by releasing the extent.
  • the path monitoring 242 detects a change in the link state (S1200).
  • the change in the link state is when the link is down or when the SLOGI command or the SLOGO command is received when the FC is used.
  • the path monitoring 242 monitors the operation of the application 201, and the change in the link state includes a case where the link between the application 201 and the storage system 110 is disconnected.
  • the path monitoring 242 changes the link state 2443 of the corresponding path 2442 to down in the multipath table 244.
  • the path monitoring 242 specifies the LU number that uses the path by subtracting the value of the LU number 2440 from the value of the in-multipath used path number 2441 (S1202).
  • the path monitoring 242 determines from the link state 2443 whether all the links of the multipath established for the LU are down (S1203). ).
  • the path monitoring 242 changes the value of all valid bits 2434 of the entry whose LU number 2431 is the deallocation LU number in the in-storage high-speed memory allocation table 243 to “0” representing invalidity. To do. Thereby, this process is complete
  • FIG. 22 is an example of a flowchart of the operation of the administrator when the administrator receives an alarm in S1107 of FIG. Basically, it is the same as the operation of the administrator of the first embodiment described with reference to FIG. Specifically, only S1303 is different from the first embodiment, and S1300 to S1302 and S1304 correspond to S600 to S602 and S604, respectively.
  • the administrator uses the input device of the management apparatus 140 to perform capacity increase setting for the high-speed memory allocation setting 224. Specifically, the administrator sets the capacity increase for the storage high-speed memory allocation 241 through the high-speed memory allocation setting 224, expands the extent entry in the in-storage high-speed memory allocation table 243, and expands the remaining extent number 2225. (S1303).
  • the initial setting of the second embodiment is the same as the flow in which S705 is omitted in the initial setting of the first embodiment described with reference to FIG.
  • FIG. 23 shows an example of a GUI display image of the high-speed memory allocation management software 220 according to the second embodiment.
  • the high-speed memory allocation management software 220 displays a multi-path setting GUI image 310 in addition to the high-speed memory allocation setting GUI image 300 shown in FIG.
  • the multipath setting image 310 includes an image for setting the LU number 312 to be used, the multipath use presence / absence 313, and the path number 314 when using the multipath for each server number 311 being used. Based on this information, the high-speed memory allocation setting 224 sets necessary information in the multipath table 244.
  • the management system 140 executes the high-speed memory allocation management software 220, and the computer system has a function realized by the processor executing the high-speed memory allocation management software 220. It may be a simple configuration. For example, a part or all of the high-speed memory allocation management software 220 may be stored in a device different from the management device 140 and performed by another processor. In this embodiment, the example using the software control of the high-speed memory allocation management software 220 has been described. However, a part of the control can be realized by hardware.
  • the present invention is not limited to the above-described embodiments, and includes various modifications.
  • the above-described embodiments have been described in detail for easy understanding of the present invention, and are not necessarily limited to those having all the configurations described.
  • a part of the configuration of one embodiment can be replaced with the configuration of another embodiment, and the configuration of another embodiment can be added to the configuration of one embodiment.
  • each of the above-described configurations, functions, processing units, and the like may be realized by hardware by designing a part or all of them with, for example, an integrated circuit.
  • Each of the above-described configurations, functions, and the like may be realized by software by interpreting and executing a program that realizes each function by the processor.
  • Information such as programs, tables, and files for realizing each function can be stored in a memory, a hard disk, a recording device such as an SSD (Solid State Drive), or a recording medium such as an IC card or an SD card.
  • the control lines and information lines are those that are considered necessary for the explanation, and not all the control lines and information lines on the product are necessarily shown. In practice, it may be considered that almost all the components are connected to each other.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

計算機システムは、複数サーバからのアクセスを、ネットワークを介して受けるストレージシステムと、複数サーバを管理する管理装置と、を含む。ストレージシステムは、ストレージコントローラと、第1ストレージと、第1ストレージより高速な第2ストレージと、を含み、第1ストレージは、複数サーバのデータの最終格納場所を与え、第2ストレージは、第1ストレージに格納されるデータをキャッシュし、管理装置は、第2ストレージにおいてキャッシュとして使用されている複数記憶領域ユニットそれぞれに格納されているデータのアクセスに関する情報を参照し、その情報に基づいて、複数記憶領域ユニットそれぞれを解放する場合のリスク値を決定し、それらリスク値に基づいて、複数記憶領域ユニットにおいて解放する記憶領域ユニットを決定する。

Description

計算機システム
 本発明は、計算機システムに関する。
 近年、高速メモリ(例えばフラッシュメモリ)をサーバへ搭載し、高速メモリをキャッシュやTier領域として利用することで、アプリケーションの性能向上を図る取り組みが進んでいる。例えば米国特許出願公開第2015/0120994号は、サーバにフラッシュメモリを搭載することで仮想マシンを高速化する構成を開示している。高速メモリの例としては、フラッシュメモリの他に、3DXPoint、MRAM(Magnetoresistive Random Access Memory)、PCM(Phase Change Memory)等のSCM(Storage Class Memory)をあげることができる。
 本取り組みは、高速メモリをデータ処理部、すなわちサーバに搭載することで、デバイスが低レイテンシ性を活かす方式と言える。本方式により、アプリケーション性能は向上するものの、以下の課題がある。まず、サーバに搭載した高速メモリの保守・管理が必要となる為、保守性、管理性が低下する。次に、高速メモリをストレージに搭載した場合と比較して、容量効率が低下する。最後に、サーバ毎に高速メモリの搭載が必要となる為、高速メモリは一般的に効果であることを考えると、システム全体のコストが向上する。
 一方、近年インターコネクトのレイテンシの低下が進み、また、ストレージ装置の処理レイテンシも低下している。そのため、高速メモリをサーバからストレージ装置へ集約しても、サーバに搭載する場合と比較してレイテンシが大きく低下しない。そこで、高速メモリをストレージに集約することによって、高速メモリのデバイスの低レイテンシ性を活かしつつ、保守性及び管理性の向上、容量効率性の向上、システムコストの低減が実現可能と考えられる。
 ここで、データの最終格納デバイスであるディスクの保守性、管理性、容量効率性を向上させる技術として、シンプロビジョニング技術が知られている。シンプロビジョニング技術は、ストレージ装置上で、仮想的な容量を持つ仮想ボリュームを作成し、サーバに提供する。シンプロビジョニング技術は、データの最終格納デバイスであるディスクから実記憶領域を仮想ボリュームに動的に割り当てることで、ディスクの実容量以上の仮想的な容量を仮想ボリュームに与えることができる。
 シンプロビジョニング技術以前において、実容量不足に伴い、ストレージ装置のディスク容量増設とサーバにおけるディスク容量設定変更との、2つの作業が必要であった。シンプロビジョニング技術は、サーバにおけるディスク容量を予め大きな値に設定することにより、実用量不足に対して、サーバでのディスク容量設定変更無しに、ストレージ装置におけるディスク増設のみで対応することを可能とする。
 シンプロビジョニング技術は、シンプロビジョニングされた領域を解放するリクレイム処理を行う。これにより、シンプロビジョニングされた後にデータが削除された領域を再利用できる。リクレイム処理は、例えば、米国特許第8595431号に開示されている。
 米国特許第8595431号において、「記憶制御システムは、上位装置との間でやり取りするデータのデータパターンが、予め用意されたライト対象外データパターン情報に含まれる1又は複数のライト対象外データパターンのいずれかに適合するか否かを判定する。否定的な判定結果が得られた場合、記憶制御サブシステムは、データを、ディスク型記憶装置上に形成された論理デバイスに格納する。一方、肯定的な判定結果が得られた場合、記憶制御サブシステムは、当該データを論理デバイスに格納しないで消去する」(例えば要約)ことが開示されている。
米国特許出願公開第2015/0120994号 米国特許第8595431号
 上述のように、シンプロビジョニング技術により、アプリケーション設計時のディスク容量設計が容易となる。このため、高速メモリをストレージ装置へ集約した構成にシンプロビジョニング技術を応用することで、高速メモリの保守性、管理性、容量効率性を向上することが考えられる。
 高速メモリの記憶領域(高速メモリ領域)をシンプロビジョニングし、サーバに実用量以上の仮想容量を予め割り当て、必要になった時にストレージ装置の高速メモリの増設を行う事で、アプリケーション設計時の高速メモリの容量設計を容易化できると考えられる。
 しかし、高速メモリは、データの最終格納デバイスであるディスクとは違い、ディスクに格納されるデータのディスクキャッシュ領域(単にキャッシュ領域とも呼ぶ)や、スワップ領域(メモリ拡張領域)等として、サーバによって利用される。その為、高速メモリをシンプロビジョニングしてサーバ(によってアクセスされるボリューム領域)に割り当てた場合、高速メモリ領域の使用量の面で問題が生じることが予想される。
 一般的にディスク領域の使用量は、徐々に、単調増加する。したがって、ディスクに対してシンプロビジョニング技術を適用した場合、ディスク容量が不足する時を、過去の使用量のデータや今後のアプリケーションの機能拡張の計画等から予想することができる。ディスク容量が不足する前にディスクを増設することによって、容量不足を回避することができる。
 一方、例えば、高速メモリをサーバのディスクキャッシュとして用いる場合、キャッシュに格納されたデータ量が多いほど、サーバの高性能化に繋がる。また、高速メモリ容量はディスク容量よりずっと少ない。そのため、高速メモリ領域をシンプロビジョニングにより割り当てた場合、割り当てられた仮想容量を短期間で使いきってしまい、高速メモリの容量不足に陥ると考えられる。
 また、高速メモリ領域をスワップ領域として使用する場合、スワップのために必要とされる記憶領域は、サーバの動作に応じて随時変化する。高速メモリは複数のサーバによって利用されるため、限られた高速メモリ領域を適切に複数のサーバに割り振ることが求められる。
 これらの点は、実容量以上の仮想容量を有する仮想ボリュームを提供するシンプロビジョニングとは異なる方法により、高速メモリの記憶領域をサーバがアクセスするボリュームに割り当てるシステムにおいて同様である。例えば、システムは、高速メモリ領域を静的にボリュームに割り当ててもよい。つまり、システムは、高速メモリの領域とボリューム内の領域との間の割り当て関係を固定し、サーバに実容量を認識させてもよい。この構成においても、シンプロビジョニングによる割り当てと同様の課題が生じる。
 本課題を解決するためには、サーバに高速メモリ領域を積極的に解放することで、各サーバに割り当てる容量の不足を回避することが考えられる。上述のように、ディスク領域はデータの最終的な格納領域であるため、ディスク領域のシンプロビジョニングは、ライト対象外データを格納するディスク領域、つまりライトデータを格納しないディスク領域を解放する。
 しかし、高速メモリ領域は、最終的なデータの格納場所であるディスク領域と異なり、データの一時的な記憶領域として利用されると共に、各サーバによる使用量の変化もディスク領域と大きく異なる。したがって、高速メモリ領域の解放には、従来のディスク領域の解放手法とは異なる手法が求められる。
 本発明の一態様は、複数サーバからのアクセスを、ネットワークを介して受けるストレージシステムと、前記複数サーバを管理する管理装置と、を含む計算機システムであって、前記ストレージシステムは、ストレージコントローラと、第1ストレージと、前記第1ストレージより高速な第2ストレージと、を含み、前記第1ストレージは、前記複数サーバのデータの最終格納場所を与え、前記第2ストレージは、前記第1ストレージに格納されるデータをキャッシュし、前記管理装置は、前記第2ストレージにおいてキャッシュとして使用されている複数記憶領域ユニットそれぞれに格納されているデータのアクセスに関する情報を参照し、前記情報に基づいて、前記複数記憶領域ユニットそれぞれを解放する場合のリスク値を決定し、前記リスク値に基づいて、前記複数記憶領域ユニットにおいて解放する記憶領域ユニットを決定する。
 上記以外の課題、構成及び効果は、以下の実施形態の説明により明らかにされる。
実施例1に係るボリューム構成図である。 実施例1に係る計算機システムのハードウェア構成図である。 実施例1に係る計算機システムのソフトウェア構成の一例を示す図である。 実施例1に係るサーバ内高速メモリ割り当てテーブルの一例を示す。 実施例1に係るアクセスログの一例を示す。 実施例1に係るフリーリストの一例を示す。 実施例1に係るサーバ間高速メモリ割り当てテーブルの一例を示す。 実施例1に係るアクティブ・スタンバイテーブルサーバテーブルの一例を示す。 実施例1に係るリード処理のフローチャートの一例である。 実施例1に係るライト処理のフローチャートの一例である。 実施例1に係るエクステント確保処理のフローチャートの一例である。 実施例1に係るアクティブサーバのエクステント解放処理のフローチャートの一例である。 実施例1に係るスタンバイサーバのエクステント解放処理のフローチャートの一例である。 実施例1に係る高速メモリ容量不足警告時の管理者の動作のフローチャートの一例である。 実施例1に係る初期設定のフローチャートの一例である。 実施例1に係る設定画面の一例である。 実施例2に係る計算機システムのソフトウェア構成の一例を示す図である。 実施例2に係るストレージ内高速メモリ割り当てテーブルの一例を示す。 実施例2に係るマルチパステーブルの一例を示す。 実施例2に係るリード処理のフローチャートの一例である。 実施例2に係るライト処理のフローチャートの一例である。 実施例2に係るパス状態変化に伴うエクステント解放処理のフローチャートの一例である。 実施例2に係る高速メモリ容量不足警告時の管理者の動作のフローチャートの一例である。 実施例2に係る設定画面の一例である。
発明を実行するための形態
 以下、添付図面を参照して本発明の実施形態を説明する。本実施形態は本発明を実現するための一例に過ぎず、本発明の技術的範囲を限定するものではないことに注意すべきである。各図において共通の構成については同一の参照符号が付されている。
 以下において、実施例1を説明する。ストレージシステムは、高速メモリをシンプロビジョニングして1又は複数の仮想ボリュームを作成し、各仮想ボリュームをLU(Logical Unit)として、1又は複数のサーバ(以下の例においてサーバモジュール)に提供する。シンプロビジョニングは、仮想ボリュームへのライトに応じて実記憶領域を割り当てる。以下においては、一つの仮想ボリュームを複数のサーバに割り当てる例が説明される。サーバは、高速メモリにより提供されるLUを、キャッシュとして利用する。
 図1Aは、ボリューム構成例を示す。図1Aにおいて、ディスク121の記憶領域(ディスク領域)から二つのLDEV(Logical Device)13が構築され、それぞれ、LU14としてサーバモジュール101に提供されている。LDEV13(ディスク領域)は、ホストデータ(以下単にデータとも呼ぶ)の最終的な格納領域である。一つのLU14に対して複数のLDEV13が割り当てられていてもよく、LU14はシンプロビジョニングによる仮想ボリュームであってもよい。
 さらに、高速メモリ120の記憶領域(高速メモリ領域)から複数のLDEV11が構築され、容量プール(以下単にプールとも呼ぶ)10を構成している。高速メモリ120は、ディスク121よりも高速な記憶デバイスである。LDEV11は、プール10のプールボリュームである。
 プール10から、シンプロビジョニングにより、仮想ボリューム12が形成され、LUとして複数のサーバモジュール101に提供されている。仮想ボリューム12に対して、プール10内のLDEV11から、データの新たな書き込みに応じて動的に実記憶領域(高速メモリ領域)が割り当てられる。仮想ボリューム12の容量は仮想化され、仮想ボリュームは実用量以上の仮想容量を有する。
 各サーバモジュール101には、仮想ボリューム12におけるいくつかのエクステント15が割り当てられる。後述するようにエクステント15は、仮想ボリューム12における所定サイズの領域(記憶領域ユニット)であり、ストレージシステムにおける仮想ボリューム12の管理記憶領域単位である。ストレージシステムは、エクステント単位で実記憶領域をプール10から仮想ボリューム12に割り当てる。
 仮想ボリューム12は、キャッシュとして複数のサーバモジュール101に利用される。以下に説明する例において、サーバモジュール101は、データをLU14(LDEV13)に書き込むと共に、仮想ボリューム12(LDEV11)にも書き込む。LDEV11はLDEV13よりも高速であり、データが仮想ボリューム12に格納されている場合、サーバモジュール101は、LU14からデータを取得するよりも、高速にデータを取得することができる。
 このように、ディスク121はサーバデータの最終格納場所を与える第1ストレージであり、高速メモリ120はディスク121より高速な第2ストレージであって、キャッシュとして使用される記憶領域を与える。
 仮想ボリューム12において、複数のサーバモジュール101に割り当てられている実記憶領域は、エクステント単位でその割り当てから解放される。サーバモジュール101への割り当てから解放されたエクステントは、さらに、仮想ボリューム12に対する割り当てから解放される。
 各エクステントの解放のリスク値が管理されており、リスク値に基づいて解放されるエクステントが選択される。システムは、例えば、リスク値は、エクステントへのアクセス頻度に基づく。システムは、各エクステントに対するアクセスを監視し、アクセス頻度に基づいて各エクステントの解放の有無を判定する。エクステントのリスク値は、エクステントの他のアクセスに関する情報に基づいてもよい。他のアクセスに関する情報は、例えば、エクステントを使用するアプリケーションやエクステントの割当先とストレージシステム110との間のパスの状態の情報である。
 リスク値に基づいて高速メモリ120の実記憶領域を解放することで、高速メモリ120の限られた記憶領域を複数のサーバモジュール101の間でより適切に振り分けることができる。
 以下に説明する例において、シンプロビジョニングによる仮想ボリューム12が、キャッシュとして複数のサーバモジュール101に提供されるが、システムは、高速メモリ領域を静的にボリューム(LU)に割り当ててもよい。つまり、システムは、高速メモリ120の領域とボリューム内の領域との間の割り当て関係を固定し、サーバモジュール101に実容量を認識させてもよい。
 システムは、リスク値に基づいて、サーバモジュール101への割り当てからの解放するエクステントを決定する。エクステントのサーバモジュール101への割り当ては解放されるが、ボリュームに対する割り当ては維持される。開放されたエクステントは、ボリュームにおけるフリー領域に変化する。
 図1Bは、実施例1に係る計算機システムのハードウェア構成図である。計算機システムは、1つ又は複数のサーバ装置100と、1つ又は複数の共有ストレージシステム110と、管理装置140とを含む。管理装置140は、ネットワーク150を介してサーバ装置100に接続される。また、管理装置140は、ネットワーク160を介して共有ストレージシステム110に接続される。管理装置140はストレージシステム110に含まれてもよい。この場合、管理装置140が行う動作はストレージシステム110の動作でもあり、その逆も成り立つ。
 ネットワーク150及び160の例は、WAN(Wide Area Network)又はLAN(Local Area Network)であるが、これらに限定されない。サーバ装置100と管理装置140、共有ストレージシステム110と管理装置140とは、それぞれ、ネットワークを介さずに直接接続されていてもよい。ネットワーク150とネットワーク160とは、同一のネットワークであってもよい。以下の説明においては、共有ストレージシステム110を、ストレージシステム110とも呼ぶ。
 サーバ装置100は、複数のサーバモジュール101を含む。サーバ装置100は、複数のサーバモジュールを含むサーバシステムである。各サーバモジュール101は、プロセッサ102、メモリ103、ストレージネットワークインタフェース(I/F)104、サーバネットワークI/F105、及び管理ネットワークI/F106を含む。サーバモジュール101は、図示しない、記憶媒体、入出力装置等の他の構成を含んでもよい。サーバモジュール101内部のこれらの構成要素は、内部経路を介して互いに接続される。プロセッサ102及びメモリ103を、サーバコントローラと呼ぶことがある。
 ストレージネットワークI/F104は、ネットワーク130を介して後述のストレージコントローラ111に接続するためのインタフェースデバイスである。サーバネットワークI/F105は、サーバモジュール101間を接続するためのインタフェースデバイスである。管理ネットワークI/F106は、管理装置140に接続するためのインタフェースデバイスある。サーバモジュール101と後述のストレージコントローラ111との間の接続するネットワーク130の一例は、Fibre Channelを利用するが、これに限定されない。
 プロセッサ102は、メモリ103に格納されるプログラムを実行する。プロセッサ102が、メモリ103に格納されるプログラムを実行することによって、サーバモジュール101が有する機能が実現される。
 メモリ103は、プロセッサ102によって実行されるプログラム及び当該プログラムの実行に必要な情報を格納する。また、メモリ103は、プログラムが使用するワークエリアを含む。メモリ103は、キャッシュ領域を含んでもよい。キャッシュ領域は、サーバモジュール101によりストレージシステム110に格納されるデータを一時的に格納する。
 例えば、サーバモジュール101は、メモリ103のキャッシュ領域を一時キャッシュとして使用し、ストレージシステム110が提供し、高速メモリ領域が割り当てられている仮想ボリュームを、二次キャッシュとして使用できる。
 ストレージシステム110は、複数のストレージコントローラ111と、1つ又は複数の高速メモリデバイスを含んで構成される装置である高速メモリ120及び1つ又は複数のディスクデバイスを含んで構成される装置であるディスク121を備える。各ストレージコントローラ111が、高速メモリ120及びディスク121に接続される。高速メモリ120及びディスク121は、各サーバモジュール101により実行されるアプリケーションが使用するデータを格納する記憶領域を含む。
 図1Aを参照して説明したように、ストレージシステム110は、高速メモリ120をシンプロビジョニングし、仮想化された容量を有する1つ以上のLU15(仮想ボリューム)をサーバ装置100に提供する。また、ストレージシステム110は、ディスク121の記憶領域が割り当てられた1以上のLU14をサーバ装置100に提供する。
 高速メモリ120は、例えば3DXPoint、MRAM、又はPCM等の記憶デバイスを含んで構成される。ディスク121は、例えば、HDD(Hard Disk Drive)、SSD(Solid State Drive)等の記憶デバイスを含んで構成される。いずれもデータを格納できる装置であればどのような装置を含んでもよいが、高速メモリ120に含まれるデバイスは、ディスク121に含まれるデバイスよりも高速である。高速メモリ120又はディスク121における複数デバイスの記憶領域により、RAID(redundant array of inexpensive disks)ボリュームが構成されてよい。
 ストレージコントローラ111は、ストレージシステム110を制御する。ストレージコントローラ111は、プロセッサ112、メモリ113、ディスクI/F114、ストレージネットワークI/F115、管理ネットワークI/F116を備える。ストレージコントローラ111のこれらの構成要素は、内部経路を介して互いに接続される。
 プロセッサ112は、メモリ113に格納されるプログラムを実行する。プロセッサ112が、メモリ113に格納されるプログラムを実行することによって、ストレージシステム110が有する機能が実現される。
 メモリ113は、プロセッサ112によって実行されるプログラム及び当該プログラムの実行に必要な情報を格納する。また、メモリ113は、プログラムが使用するワークエリアを含む。
 ディスクI/F114は前述の高速メモリ120及びディスク121と接続するためのインタフェースデバイスである。ストレージネットワークI/F115は、ネットワーク130を介して前述のサーバモジュール101に接続するためのインタフェースデバイスである。管理ネットワークI/F116は、管理装置140に接続するためのインタフェースデバイスある。
 管理装置140は、各サーバモジュール101及び各ストレージシステム110の管理を行う。管理装置140は、プロセッサ142、メモリ143、管理ネットワークI/F141、及び管理ネットワークI/F144を備える。管理装置140の各構成要素は、内部経路を介して互いに接続される。
 プロセッサ142は、メモリ143に格納されるプログラムを実行する。プロセッサ142が、メモリ143に格納されるプログラムを実行することによって、管理装置140が有する機能が実現される。メモリ143は、プロセッサ142によって実行されるプログラム及び当該プログラムの実行に必要な情報を格納する。また、メモリ143は、プログラムが使用するワークエリアを含む。
 管理ネットワークI/F141は、ネットワーク150を介して他の装置と接続するためのインタフェースである。管理ネットワークI/F144は、ネットワーク160を介して他の装置と接続するためのインタフェースである。
 図2は、実施例1係る計算機システムのソフトウェア構成の一例を示す図である。サーバモジュール101のソフトウェア構成を説明する。サーバモジュール101は、メモリ103に、OS200及びOS200上で動作する1つ以上のアプリケーション201を格納する。アプリケーション201は、例えば、データベースソフトウェア、ハイパーバイザ、仮想デスクトップインフラストラクチャ等であるが、アプリケーションの種類はこれらに限定されない。
 OS200は、サーバモジュール101全体を制御する制御ソフトウェアである。OS200は、高速メモリ割り当てサーバドライバ210を含む。高速メモリ割り当てサーバドライバ210は、ストレージシステム110によって提供されるシンプロビジョニングされた高速メモリ120のLU(仮想ボリューム)12を、ディスク121のキャッシュとして利用する為の制御を、サーバ側から実行する。
 高速メモリ割り当てサーバドライバ210は、後述する管理装置140の高速メモリ割り当て管理ソフトウェア220と、仮想ボリューム12に高速メモリ120から割り当てる実容量を調整する。高速メモリ割り当てサーバドライバ210は、高速メモリ割り当て管理ソフトウェア220とのインタフェースを含む。
 高速メモリ割り当てサーバドライバ210は、制御モジュールとして、ヒットミスチェック211、高速メモリ割り当て212、及びサーバ高速メモリ容量管理213を含む。高速メモリ割り当てサーバドライバ210は、管理テーブルとして、サーバ内高速メモリ割り当てテーブル214、アクセスログ215、フリーリスト216を含む。
 ストレージシステム110のソフトウェア構成について説明する。ストレージシステム110は、メモリ113に、マイクロプログラム230を格納する。マイクロプログラム230は、プロセッサ142によって実行される。マイクロプログラム230はストレージシステム110全体を制御する制御ソフトウェアである。マイクロプログラム230は、シンプロビジョニング管理231を含む。本モジュールは、高速メモリ120のシンプロビジョニングを制御する。
 管理装置140のソフトウェア構成について説明する。管理装置140は、そのメモリ143に、高速メモリ割り当て管理ソフトウェア220を格納する。高速メモリ割り当て管理ソフトウェア220は、プロセッサ142によって実行される。高速メモリ割り当て管理ソフトウェア220は、サーバモジュール101間で、高速メモリ120の割り当て容量を調整する。
 高速メモリ割り当て管理ソフトウェア220は、制御モジュールとして、サーバ間高速メモリ割り当て管理221、サーバ間高速メモリ割り当てテーブル222、サーバアクティブ・スタンバイテーブル223を含む。
 図3は、サーバモジュール101が保持する、サーバ内高速メモリ割り当てテーブル214の一例を示す。サーバ内高速メモリ割り当てテーブル214は、ディスク121上のデータが高速メモリ120上にキャッシュされている場合に、ディスク121におけるデータのアドレスと、高速メモリ120におけるキャッシュデータのアドレスと、の対応関係を示す。
 サーバ内高速メモリ割り当てテーブル214は、ディスクアドレス2140、高速メモリサーバ内エクステント番号2141、高速メモリアドレス2142、有効ビット2143、高速メモリエクステントサイズ2144、ページサイズ2145の情報を含む。図3は、高速メモリ一つの仮想ボリューム12のアドレス情報を示す。
 高速メモリエクステントサイズ2144は、エクステントのサイズを示す。エクステントは、ストレージシステム110における高速メモリ120の記憶領域の管理単位である。
 ページサイズ2145は、サーバモジュール101による高速メモリ120の記憶領域の管理単位かつアクセス単位であるページのサイズを示す。ページは、ディスク121の記憶領域の管理単位かつアクセス単位でもある。ディスクアドレス2140の1つのエントリはディスク上の1つのページを、高速メモリサーバ内エクステント番号2141及び高速メモリアドレス2142の1つのエントリは、高速メモリ上の1つのページを示す。エクステント番号は、サーバモジュール内で一意である。エクステントサイズはページサイズの倍数である。これにより、サーバモジュール101は必要なデータを効率的に取得できると共に、ストレージシステム110による記憶領域の管理を効率化できる。
 アプリケーションがリードまたはライトを実行する場合、サーバモジュール101は、ディスクアドレスに対応した高速メモリアドレスが、サーバ内高速メモリ割り当てテーブル214に存在するか否かによって、キャッシュヒット判定を行うことができる。
 高速メモリ120の記憶領域は、高速メモリエクステントサイズ2144の単位で、各サーバモジュール101に割り当てられる。サーバモジュール101は、ページサイズ2145の単位で、高速メモリ120を利用する。高速メモリエクステントサイズ2144は全サーバモジュール101、管理装置140、及びストレージシステム110間で同一であるが、ページサイズ2145は、サーバモジュール101間で異なる値であってもよい。なお、以下の説明及び図面においては、高速メモリエクステントサイズは、単にエクステントサイズと呼ぶ場合がある。
 図4は、サーバモジュール101が保持する、アクセスログ215の一例を示す。アクセスログ215は、当該サーバモジュール101に割り当てられたエクステント毎の、所定時間内のアクセス回数(アクセス頻度)を保持する。アクセスログ215は、高速メモリサーバ内エクステント番号2150及びアクセス回数2151の情報を含む。
 図5は、サーバモジュール101が保持する、フリーリスト216の一例を示す。フリーリスト216は、当該サーバモジュール101に割り当てられた高速メモリ120のエクステントにおいて、まだ割り当てられていない(データを格納していない)空き領域を管理する。
 サーバモジュール101に対して割り当てられたエクステントにおける各空き領域は、ページサイズを有する。フリーリスト216は、高速メモリサーバ内エクステント番号2160及び高速メモリアドレス2161の情報を含む。また、フリーリスト残数閾値2162の情報を含む。フリーリスト残数閾値2162は、サーバモジュール101に新たにエクステントを割り当てる基準値である。
 図6は、管理装置140が保持する、サーバ間高速メモリ割り当てテーブル222の一例を示す。サーバ間高速メモリ割り当てテーブル222は、サーバ間のエクステントの調整を行うための情報を保持し、各サーバモジュール101に対するエクステントの割り当て状況、高速メモリ120のトータルエクステント数、高速メモリ120の残エクステント数等の情報を含む。
 サーバ間高速メモリ割り当てテーブル222は、サーバ番号2220、サーバ内エクステント番号2221、アクセス回数2222、有効ビット2223、トータルエクステント数2224、残エクステント数2225、エクステント残数閾値2226、解放閾値2227、最低エクステント解放数2228、警告閾値2229の情報を含む。アクセス回数2222(アクセス頻度)はリスク値として用いることができる。リスク値は、割り当てられているエクステントを解放するか判定するための基準値である。
 アクセス頻度をリスク値として使用することで、エクステントの解放によるヒット率の低下を小さくすることができる。リスク値は、アクセス頻度と異なる情報に基づいて決定されてもよい。例えば、アプリケーション、サーバ、又はリンク状態に対してリスク値が割り当てられていてもよく、これらを組み合わせてリスク値を決定しても良い。これらにより、高速アクセスが要求されるアプリケーションのヒット率を相対的に上げる、特定のサーバ上のアプリケーションのヒット率を相対的に上げる、または、リンクダウンによりアクセス不能なエクステントを優先的に開放できる。
 図7は、管理装置140が保持する、サーバアクティブ・スタンバイテーブル223の一例を示す。サーバアクティブ・スタンバイテーブル223は、各クラスタのアクティブ・スタンバイ構成を保持する。本テーブルは、アクティブサーバ番号2230及びスタンバイサーバ番号2231の情報を含む。
 例えば、管理装置140は、サーバアクティブ・スタンバイテーブル223を参照して、アクティブ側に高速メモリ120の記憶領域を割り当てた場合にスタンバイ側にも予め高速メモリ120の記憶領域を割り当てる。これにより、アクティブサーバからスタンバイサーバへフェイルオーバが発生した場合において、高速メモリ容量不足によりスタンバイサーバが立ち上がらない、またはスタンバイサーバが立ち上がったものの速度が急激に低下する、等といった事象を防ぐことができる。
 以下、計算機システムの動作について説明する。
 図8は、アプリケーション201がリードを実行した時の高速メモリ割り当てサーバドライバ210の処理のフローチャートの一例である。本処理は、例えば、アプリケーション201がOS200に対しリードシステムコールを発行し、OS200はメモリ103のキャッシュにおいてミスであった場合、又は、アプリケーション201がOS200に対し、メモリ103のキャッシュを経由しないリードシステムコールを発行した場合に、OS200がディスク121に対するリードコマンドを発行する事で開始される。サーバモジュール101がアプリケーションデータのためのキャッシュを装置内に有していない場合、上記ヒットミス判定はスキップされる。
 高速メモリ割り当てサーバドライバ210は、ヒットミスチェック211において、サーバ内高速メモリ割り当てテーブル214を用いて、ヒットミス判定を実行する(S100)。これにより、ヒット又はミスに応じたその後の処理が実行され、高速メモリ120にキャッシュされているデータを高速に読み出すことができる。
 具体的には、ヒットミスチェック211は、サーバ内高速メモリ割り当てテーブル214において、リードコマンドに含まれるリード先のディスクアドレスと一致するディスクアドレス2140のエントリがあり、かつそのエントリの有効ビット2143が有効である、すなわち"1"であるかチェックする。
 一致するディスクアドレス2140のエントリがあり、かつその有効ビット2143が有効の場合、ヒットミスチェック211は、キャッシュヒットと判定する。一致するディスクアドレス2140エントリが無い、または一致するディスクアドレス2140のエントリはあるが、その有効ビット2143が有効でない場合、ヒットミスチェック211はキャッシュミスと判定する。
 キャッシュヒットの場合(S101:YES)、高速メモリ割り当て212は、サーバ内高速メモリ割り当てテーブル214から、対応する高速メモリサーバ内エクステント番号2141を取得し、アクセスログ215において取得した番号と一致する高速メモリサーバ内エクステント番号2150のエントリにおいて、アクセス回数2151をインクリメントする(S102)。これにより、エクステントに対するアクセス回数を最新値に更新する。
 次に、高速メモリ割り当て212は、リードコマンドのリード先アドレスを、高速メモリ120のキャッシュ先のアドレスに差し替え、高速メモリ120に対する通常のリード処理を実行する(S103)。これにより、高速にデータを読み出すことができる。高速メモリ120のリード先アドレス(キャッシュ読み出しアドレス)は、例えば次の式より計算される。
 キャッシュ読み出しアドレス
 =高速メモリエクステントサイズ2144×高速メモリサーバ内エクステント番号2141+高速メモリアドレス2142
 以上により、リード処理が終了する。
 S101でキャッシュミスと判定されている場合(S101:NO)、高速メモリ割り当て212は、ディスク121に対するリード処理を実行する(S104)。キャッシュミスの場合に、最終格納場所からデータが読み出される。
 次に、高速メモリ割り当て212は、フリーリスト216においてエントリ(空き領域の)を探索する(S105)。フリーリスト216においてエントリが無い場合(S105:NO)、つまり、サーバモジュール101に割り当てられている高速メモリ120の空き領域が存在しない場合、リード処理が終了する。
 フリーリスト216においてエントリがある場合(S105:YES)、高速メモリ割り当て212は、フリーリスト216から1つの空きエントリを取得する。例えば、フリーリスト216の先頭のエントリを取得する。高速メモリ割り当て212は、ディスク121より読みだしたデータを、高速メモリ120に書き込む(S106)。これにより最新のリードデータが高速メモリ120にキャッシュされる。書き込み先アドレス(キャッシュ書き込みアドレス)は、例えば次の式より決定される。
 キャッシュ書き込みアドレス
 =高速メモリエクステントサイズ2144×フリーリスト216の高速メモリサーバ内エクステント番号2160+フリーリスト216の高速メモリアドレス2161
 最後に、高速メモリ割り当て212は、サーバ内高速メモリ割り当てテーブル214において、ディスクアドレス2140にリードコマンドのリードアドレス、高速メモリサーバ内エクステント番号2141にフリーリスト216の高速メモリサーバ内エクステント番号2160、高速メモリアドレス2142にフリーリスト216の高速メモリアドレス2161、有効ビット2143に有効を表す"1"、をそれぞれ登録する。以上でリード処理が終了する。
 図9は、アプリケーション201がライトを実行した時の高速メモリ割り当てサーバドライバ210の処理のフローチャートの一例である。本フローチャートでは、高速メモリ割り当てサーバドライバ210は、ライトスルー方式を用いてキャッシュ制御を行う。ライトスルー方式は、ライトデータを高速メモリ120及びディスク121のそれぞれに書き込む。
 本処理は、OS200がメモリ103のキャッシュよりデータをディスク121に追い出す場合、又は、アプリケーション201がOS200に対し、メモリ103のキャッシュを経由しないライトシステムコールを発行した場合に、OS200がディスク121に対するライトコマンドを発行した事を契機に開始される。高速メモリ割り当てサーバドライバ210は、ディスク121に対する通常のライト処理を実行する(S201)。次に、高速メモリ割り当てサーバドライバ210は、ヒットミスチェック211において、リード時同様に、サーバ内高速メモリ割り当てテーブル214を用いて、ヒットミス判定を実行する(S202)。これにより、ヒット又はミスに応じたその後の処理が実行される。
 ヒットミスチェック211は、リード時同様に、サーバ内高速メモリ割り当てテーブル214において、ライトコマンドに含まれるライト先のディスクアドレスと一致するディスクアドレス2140のエントリがあり、かつそのエントリの有効ビット2143が有効である、すなわち"1"であるかチェックする。
 一致するディスクアドレス2140のエントリがあり、かつその有効ビット2143が有効の場合、ヒットミスチェック211は、キャッシュヒットと判定する。一致するディスクアドレス2140エントリが無い、または一致するディスクアドレス2140のエントリはあるが、その有効ビット2143が有効でない場合、ヒットミスチェック211はキャッシュミスと判定する。
 キャッシュヒットの場合(S202:YES)、リード時同様に、高速メモリ割り当て212は、サーバ内高速メモリ割り当てテーブル214から、対応する高速メモリサーバ内エクステント番号2141を取得し、アクセスログ215において取得した番号と一致する高速メモリサーバ内エクステント番号2150のエントリにおいて、アクセス回数2151をインクリメントする(S203)。これにより、エクステントに対するアクセス回数を最新値に更新する。
 次に、高速メモリ割り当て212は、ライトコマンドの書き込み先アドレスを高速メモリ120のキャッシュ先(ライト先)のアドレスに差し替え、高速メモリ120(仮想ボリューム12)に対し通常のライト処理を実行する(S204)。これにより、最新ライトデータがキャッシュされる。書き込み先アドレス(キャッシュ書き込みアドレス)は、例えば次の式より決定される。
 キャッシュ書き込みアドレス=高速メモリエクステントサイズ2144×高速メモリサーバ内エクステント番号2141+高速メモリアドレス2142
 以上でライト処理が終了する。
 S202でキャッシュミスと判定されている場合(S202:NO)、高速メモリ割り当て212は、フリーリスト216においてエントリを探索する(S205)。フリーリスト216においてエントリが無い場合(S205:NO)、つまり、サーバモジュール101に割り当てられている高速メモリ120の空き領域が存在しない場合、ライト処理が終了する。
 フリーリスト216においてエントリがある場合(S205:YES)、高速メモリ割り当て212は、フリーリスト216から一つのエントリを取得する。例えば、高速メモリ割り当て212は、フリーリスト216の先頭のエントリを取得する。高速メモリ割り当て212は、高速メモリ120にデータを書き込む(S206)。
 高速メモリ120における書き込み先アドレスは、例えば次の式より求められる。
 キャッシュ書き込みアドレス=高速メモリエクステントサイズ2144×フリーリスト216の高速メモリサーバ内エクステント番号2160+フリーリスト216の高速メモリアドレス2161
 最後に、高速メモリ割り当て212は、サーバ内高速メモリ割り当てテーブル214に、ディスクアドレス2140にライトコマンドのライトアドレス、高速メモリサーバ内エクステント番号2141にフリーリスト216の高速メモリサーバ内エクステント番号2160、高速メモリアドレス2142にフリーリスト216の高速メモリアドレス2161、有効ビット2143に有効を表す"1"を登録する(S207)。以上でライト処理が終了する。
 図10は、サーバモジュール101のための高速メモリ120の容量確保処理(記憶領域割り当て処理)のフローチャートの一例である。本処理は、高速メモリ割り当てサーバドライバ210のサーバ高速メモリ容量管理213により実行される。本処理は、例えば所定時間毎に開始される。サーバ高速メモリ容量管理213は、リード処理やライト処理によってフリーリストの残エントリ数が減少した場合(S106やS206)を契機に開始してもよい。
 サーバ高速メモリ容量管理213は、フリーリスト216の残エントリ数が、フリーリスト残数閾値2162以下か判定する(S300)。フリーリスト216の残エントリ数が、フリーリスト残数閾値2162より多い場合(S300:NO)、本処理は終了する。フリーリスト216の残エントリ数が、フリーリスト残数閾値2162以下である場合(S300:YES)、サーバ高速メモリ容量管理213は、フリーリスト216にエントリを追加する為の処理を開始する。これにより、サーバモジュール101に割り当てられている高速メモリ120の空き容量が不足している場合に、追加できる。
 サーバ高速メモリ容量管理213は、管理装置140で実行されている高速メモリ割り当て管理ソフトウェア220のサーバ間高速メモリ割り当て管理221に対し、エクステント割当を要求する(S301)。この要求に応答して、サーバ間高速メモリ割り当て管理221は、サーバ間高速メモリ割り当てテーブル222の残エクステント数2225を参照し、残エクステントが存在するか判定する(S302)。
 残エクステントが存在しない場合(S302:NO)、つまり、残エクステント数2225が0である場合、高速メモリ120から割り当てることができる空き領域が残っていないので、本処理は終了する。残エクステントが存在する場合(S302:YES)、サーバ間高速メモリ割り当て管理221は、割当を要求したサーバモジュール101に対し、一つのエクステントを割り当て、サーバ間高速メモリ割り当てテーブル222を更新する(S303)。
 具体的には、サーバ間高速メモリ割り当て管理221は、残エクステント数2225の値をデクリメントし、割り当てるエクステント番号を決定する。決定されるエクステント番号は例えば、サーバ間高速メモリ割り当てテーブル222の割当要求元サーバモジュール101のサーバ番号に割り当てられていない最小のエクステント番号とする。エクステント番号はサーバモジュール内で定義されるため、未割り当ての任意の番号を使用してよい。サーバ内エクステント番号2221は、サーバ番号に割り当てられているエクステント番号を示す。
 さらに、サーバ間高速メモリ割り当て管理221は、サーバ間高速メモリ割り当てテーブル222に新たなエントリを追加する。追加されるエントリにおいて、サーバ番号2220は割当要求元サーバモジュール番号、サーバ内エクステント番号2221は前述のように定めた番号、アクセス回数2222は"0"、有効ビット2223は有効を現す"1"である。サーバ間高速メモリ割り当て管理221は、割当要求元サーバモジュール101に、前述のように定めたエクステント番号を通知する。
 サーバ高速メモリ容量管理213は、エクステント番号をサーバ間高速メモリ割り当て管理221より受け取り、フリーリスト216を更新する(S304)。具体的には、サーバ高速メモリ容量管理213は、高速メモリエクステントサイズ2144及びページサイズ2145を元に、エクステントをページ単位で分割し、フリーリスト216に登録する。これにより、要求元サーバモジュール101に新たな空きエクステントが割り当てられる。
 次に、サーバ間高速メモリ割り当て管理221は、アクティブ・スタンバイサーバテーブル223を参照し、割当要求元サーバモジュール101に対応するスタンバイサーバが存在するか判定し、さらに、残エクステント数2225を参照して残エクステントが存在するか判定する(S305)。
 スタンバイサーバの有無は、アクティブ・スタンバイサーバテーブル223において要求元サーバ番号(アクティブサーバ番号2230)に対応するスタンバイサーバ番号2231があるか否かによって判定される。スタンバイサーバが存在しない、または残エクステント数2225が0である場合(S305:NO)、処理は終了する。いずれか一方が存在しない場合、スタンバイサーバに対してエクステントを割り当てることはできないからである。
 スタンバイサーバが存在し、かつ残エクステント数2225が1以上である場合(S305:YES)、サーバ間高速メモリ割り当て管理221は、対応するアクティブサーバに割当られているエクステントにおける最大数を、サーバ間高速メモリ割り当てテーブル222より取得する。サーバ間高速メモリ割り当て管理221は、今回のエクステント割当によって、割当エクステント最大数が更新されているか判定する(S306)。
 今回のエクステント割当によって、割当エクステント最大数が更新されていない場合(S306:NO)、本処理は終了する。今回のエクステント割当によって、割当エクステント最大数が更新されている場合(S306:YES)、サーバ間高速メモリ割り当て管理221は、スタンバイ系のサーバモジュールに対してエクステントを割り当てる(S307)。これにより、スタンバイサーバの割当エクステント数は、アクティブサーバにおける割当エクステント数の最大数と一致し、フェイルオーバ時のキャッシュ不足に起因する不具合の発生の可能性を低減できる。
 スタンバイ系サーバモジュール101は、エクステントの追加に応じて、そのフリーリスト216を更新する(S308)。なお、S307の処理の詳細はS303と同様である、S308の処理の詳細はS304と同様である。以上で高速メモリ割り当てサーバドライバ210のサーバ高速メモリ容量管理213による、サーバモジュール101に対する高速メモリ120の容量確保処理が終了する。
 図11は、サーバ間高速メモリ割り当て管理221による、アクティブサーバからの高速メモリ120のエクステントの解放処理のフローチャートの一例である。本処理は、例えば所定時間毎に開始される。その他、サーバ間高速メモリ割り当て管理221は、サーバ高速メモリ容量管理213による高速メモリ確保処理によって残エクステント数2225が減少した場合(S303、S306)を契機に、本処理を開始してもよい。
 サーバ間高速メモリ割り当て管理221は、残エクステント数2225を参照し、残エクステント数2225の値がエクステント残数閾値2226の値以下か判定する(S400)。残エクステント数2225の値がエクステント残数閾値2226の値より多い場合(S400:NO)、本処理は終了する。残エクステント数(空き容量)が予め設定された数まで減少した後に解放処理を実行することで、不要な解放を避けると共に、本来エクステントを必要とするサーバモジュール101への割当をより確実に行うことができる。
 残エクステント数2225がエクステント残数閾値2226以下の場合(S400:YES)、サーバ間高速メモリ割り当て管理221は、サーバモジュール101から、アクセスログ215を収集する。サーバ間高速メモリ割り当て管理221は、収集した値を、サーバ間高速メモリ割り当てテーブル222に登録する(S401)。
 サーバ間高速メモリ割り当て管理221は、S401で収集し登録した値を参照し、アクセス回数が解放閾値2227以下のエクステントまたはアクセス回数が下位のエクステントから、最低エクステント解放数2228分、解放するエクステントを選択する(S402)。アクセス回数が解放閾値2227以下のエクステント数が最低エクステント解放数2228より少ない場合、アクセス回数が解放閾値2227以下の全エクステントが選択される。アクセス回数が少ないエクステントを選択することで、高速メモリ120全体のキャッシュヒット率を上げることができる。
 サーバ間高速メモリ割り当て管理221は、S402の決定に応じて、対応するサーバモジュール101に解放するエクステント番号を通知する(S403)。各サーバモジュール101のサーバ高速メモリ容量管理213は、本通知を受信し、保持しているテーブルから、指定されたエクステントの情報を削除する(S404)。
 具体的には、サーバ高速メモリ容量管理213は、サーバ内高速メモリ割り当てテーブル214、アクセスログ215、及びフリーリスト216から、削除通知を受けたエクステントに対応する全てのエントリを削除する。
 さらに、サーバ高速メモリ容量管理213は、マイクロプログラム230のシンプロビジョニング管理231にエクステント解放を要求する(S405)。エクステント解放要求は、マイクロプログラム230と高速メモリ割り当てサーバドライバ210間において、高速メモリ120のエクステント解放処理為に作成された新規I/Fを介して送信されてもよい。
 または、高速メモリ割り当てサーバドライバ210が、当該エクステント領域内に全て0を書き込み、別途ストレージ管理I/Fより領域リクレイム要請を行うことで、シンプロビジョニング管理231にエクステント解放を要求してもよい。ストレージシステム110は、エクステント単位でデータを読み込み、あるエクステントの全てのデータが0であれば、そのエクステントを解放する。
 なお、高速メモリ120から構築されているボリュームがシンプロビジョニングに拠る仮想ボリュームではなく、当該ボリュームへの高速メモリ120の記憶領域の割当が固定(静的)である場合、本ステップは省略される。
 本実施例は、図9に示した通り、高速メモリ120をライトスルーキャッシュとして利用しているため、データ消失を考慮することなく高速メモリ120内のデータを削除することができる。ライトバック方式のキャッシュとして利用している場合等は、高速メモリ120からダーティデータを読みだして、ディスク121に書き戻す。なお、ライトバック方式は、キャッシュ領域に書き込んだ後、当該キャッシュ領域からディスク領域にデータを書込む。
 以上により、サーバモジュール101内のエクステントの解放処理が完了し、サーバ高速メモリ容量管理213は、サーバ間高速メモリ割り当て管理221に、エクステント解放完了を応答する(S406)。サーバ間高速メモリ割り当て管理221は、本通知に基づき、解放対象のエクステントのエントリをサーバ間高速メモリ割り当てテーブル222から削除し、残エクステント数2225をインクリメントする。以上で、エクステントの解放処理は終了する。
 次に、サーバ間高速メモリ割り当て管理221は、解放したエクステントのアクセス回数が、警告閾値2229以上であったか判定する(S408)。閾値以下であった場合は、本処理は終了する。アクセス回数が、警告閾値2229以上であった場合、高速メモリ容量が不足してきたと考えられる。したがって、サーバ間高速メモリ割り当て管理221は、管理者に高速メモリ容量不足を警告する(S409)。警告の例として、メールによる通知、ダッシュボード上での通知等が挙げられる。
 図12は、サーバ間高速メモリ割り当て管理221による、スタンバイサーバからの高速メモリ120のエクステントの解放処理のフローチャートの一例である。本処理は、例えば、図11に示すアクティブサーバのエクステント解放処理終了後に実行される。本処理は、スタンバイサーバ毎に実行される。
 サーバ間高速メモリ割り当て管理221は、アクティブ・スタンバイサーバテーブル223より、スタンバイサーバに関連付けられたアクティブサーバ番号を取得する(S500)。次に、サーバ間高速メモリ割り当て管理221は、取得したアクティブサーバ番号に割り当てられたエクステント数の最大値、及び、スタンバイサーバに割り当てられたエクステント数を、サーバ間高速メモリ割り当てテーブル222から取得する(S501)。
 サーバ間高速メモリ割り当て管理221は、スタンバイサーバに割り当てるエクステント数を、対応するアクティブサーバに割り当てた最大エクステント数まで削減する(S502)。これにより、フェイルオーバ時のキャッシュ不足を避けつつ、高速メモリ120の空き領域を増加させることができる。スタンバイサーバからの割当エクステントの解放処理は、図11におけるアクティブサーバからの割当エクステントの解放処理と同様である。
 図13は、図11のS408において、管理者がアラームを受け取った場合の管理者の動作のフローチャートの一例である。まず、管理者はS408によって、高速メモリ120容量不足の警告を受ける(S600)。管理者は警告を受け、高速メモリ増設の必要性を判断する(S601)。
 管理者は、増設に必要な投資額や増設しなかった場合のアプリケーションへの影響等、ビジネス的な側面から高速メモリ増設の必要性を判断する。増設すると判断した場合、管理者は、高速メモリ120のデバイスを増設し、シンプロビジョニングのボリュームに組み入れる(S602)。本処理は、ストレージシステムの通常のデバイス増設処理である。
 最後に、管理者は、管理装置140の入力デバイスを使用して、サーバ間高速メモリ割り当て管理221に対し、容量増加設定を行う。具体的には、管理者は、サーバ間高速メモリ割り当てテーブル222におけるトータルエクステント数2224及び残エクステント数2225の数を、高速メモリ120の増設容量及びエクステントサイズに応じて増加させる(S603)。S601において増設しないと判断された場合、管理者は次にどの段階で高速メモリを増設するかを判断し、当該判断に応じて警告閾値2229を変更する(S604)。
 図14は、実施例1の初期設定のフローチャートの一例である。初期設定は、計算機システムを構築した時に行われてもよいし、計算機システム動作中に行ってもよい。管理者は、各サーバモジュール101、ストレージシステム110及び管理装置140に、必要はハードウェア及びソフトウェアを導入する(S700)。具体的には、各サーバモジュール101に高速メモリ割り当てサーバドライバ210を導入し、ストレージシステム110に高速メモリ120を導入し、管理装置140に高速メモリ割り当て管理ソフトウェア220を導入する。
 さらに、管理者は、管理装置140の入力デバイスを使用して、各種パラメータの初期設定を行う(S701)。具体的には、管理者は、高速メモリエクステントサイズ2144、ページサイズ2145、フリーリスト残数閾値2162、エクステント残数閾値2226、解放閾値2227、最低エクステント解放数2228、警告閾値2229を設定する。次に、管理者は、管理装置140の入力デバイスを使用して、高速メモリ120を利用可能なサーバモジュール101それぞれの番号を設定し(S702)、サーバモジュール101が利用できる高速メモリ120のLDEV#を設定する(S703)。
 入力された情報により、高速メモリ割り当て管理ソフトウェア220は、LDEV#で示される高速メモリ120のLDEVをシンプロビジョニングして、サーバモジュール101向けのLUを作成し、当該サーバモジュール101へ割り当る(S704)。
 サーバ間高速メモリ割り当て管理221は各サーバモジュールに対してエクステントを割り当てる(S705)。サーバ高速メモリ容量管理213は、割り当てられたエクステント数に応じてフリーリスト216を更新する。また、サーバ間高速メモリ割り当て管理221は、高速メモリ120の総容量及びエクステントサイズよりトータルエクステント数2224を設定し、また、トータルエクステント数2224からサーバモジュール101に割り当てたトータルエクステント数を引いた値を、残エクステント数2225に設定する。
 図15は、実施例1の高速メモリ割り当て管理ソフトウェア220によるGUI表示画像例を示す。表示画像300は、高速メモリ割り当て設定のための画像である。表示画像300は、現在利用中のLDEV番号301、高速メモリを割り当て済のサーバ番号302、新規に割り当て可能なLDEV番号303、新規に高速メモリを割り当て可能なサーバ番号304を含む。
 管理者は、管理装置140の入力デバイスを使用して、追加LDEV番号305を入力し、LDEV追加ボタン306を押すことで、高速メモリ120から新規に構築されたLDEVがサーバモジュール101により利用可能となる。入力されたLDEV#は、利用可能LDEV♯303に表示される。
 管理者は、管理装置140の入力デバイスを使用して、追加サーバ名307を入力し、サーバ追加ボタン308を押すことで、高速メモリ120を利用できるサーバモジュール101を追加することができる。入力されたサーバ#は、割り当て可能サーバモジュール#304に表示される。
 同様に、管理者は、未割り当てLDEVの中らから削除LDEV番号309を入力し、LDEV削除ボタン320を押すことで、当該LDEVの利用を停止することができる。選択されたLDEV#は、利用可能LDEV♯303から削除される。また、管理者は、削除サーバ名321を入力し、サーバ削除ボタン322を押すことで、当該サーバモジュール101による高速メモリ120の利用を停止することができる。選択されたサーバ#は、割り当て済サーバモジュール#302又は割り当て可能サーバモジュール#304から削除される。
 実施例2は、高速メモリから提供されるボリュームをスワップ領域(メモリ拡張領域)として利用する。実施例2の構成は、実施例1の構成と共にシステムに含まれてもよく、実施例1の構成のみ又は実施例2の構成のみがシステムに含まれてもよい。
 スワップ領域は、ホストモジュールのメモリに格納されるデータの退避先であり、メインメモリ領域の一部として使用される。以下の説明において、高速メモリから提供されるボリュームは、シンプロビジョニングによる仮想ボリュームであるが、実施例1で言及したように、固定容量を有するボリュームであってもよい。
 高速メモリの記憶領域を複数サーバモジュールにより利用可能なスワップ領域として使用することで、高速なスワップが可能となると共に、少ない高速メモリ容量において、複数サーバモジュールのメモリ容量不足によるエラー発生を防ぐことができる。
 サーバモジュールは、シンプロビジョニングにより割り当てられた高速メモリの記憶領域を、スワップ領域(メモリ拡張領域)として利用する場合、ストレージシステムに対して高速メモリの記憶領域の確保又は解放の指示を送信する。ストレージシステムは、指示に応じて、高速メモリの記憶領域の確保又は解放を実行する。
 例えば、高速メモリ領域確保時に必ずサーバモジュールによるスワップ領域へのライト(スワップアウト)が実行されるので、高速メモリ領域確保指示は、拡張されたライトコマンドに含まれてもよい。スワップ領域解放時に基本的にサーバモジュールによるスワップ領域からの必要なデータのリード(スワップイン)が実行されるので、高速メモリ領域解放指示は、拡張されたリードコマンドに含まれてもよい。
 以下の説明において、高速メモリ容量確保処理のためにライトコマンドが拡張され、高速メモリ容量解放処理にリードコマンドを拡張した場合を想定する。高速メモリ容量確保処理及び解放処理に専用命令を用意した場合も考えられる。
 また、サーバ側でメモリ拡張領域として扱う高速メモリ領域を、一回ライトするのに対し一回のみリードするように制御することで、ライトコマンド及びリードコマンドの拡張は不要となる。高速メモリ領域をスワップ領域として管理する場合、スワップインしたデータ、すなわち高速メモリからリードしたデータを追い出す際に必ずライトする事にすれば、前述のようなコマンドの拡張は不要となる。
 つまり、コマンド拡張により、領域確保/解放のための専用コマンドや専用アクセス制御が不要となる。なお、高速メモリ領域解放が必要なデータのリード(スワップイン)を伴わない場合、領域解放のみのために当該領域のデータをリードしても、影響はI/O負荷の増加のみである。
 以下に説明する例において、高速メモリから生成されている一つの仮想ボリュームが、複数のサーバモジュールのスワップデータを格納する。サーバモジュールそれぞれに、スワップ先として仮想的なLUが割り当れている。当該仮想的なLUは、ディスクの実記憶領域は割り当てられていない。
 サーバモジュールは、仮想的なLUのアドレスを指定して、スワップデータのリード/ライト(スワップイン/スワップアウト)を行う。指定されたアドレスが高速メモリの仮想ボリュームのアドレスに変換され、当該仮想ボリュームの領域にスワップデータためにアクセスされる。実施例1におけるキャッシュとしての高速メモリの利用と異なり、ホストサーバのデータはディスクには格納されず、高速メモリのみに格納される。なお、一つのサーバモジュールに複数の仮想的なLUが割り当てられてもよい。
 図16は、本実施例に係る計算機システムのソフトウェア構成の一例を示す。本実施例に係る計算機システムのハードウェア構成図は、図1と同様である。サーバモジュール101のソフトウェア構成を説明する。
 図16に示すように、サーバモジュール101は、自身のメモリ103に、OS200及びOS200上で動作する1つ以上のアプリケーション201を格納する。なお、アプリケーション201は、例えば、データベースソフトウェア、ハイパーバイザ、仮想デスクトップインフラストラクチャなどであるが、アプリケーション201の種類は、これらに限定されない。OS200は、サーバモジュール101全体を制御する制御ソフトウェアである。OS200は、高速メモリ割り当てサーバドライバ210を含む。
 ストレージシステム110は、そのメモリ113に、マイクロプログラム230を格納する。マイクロプログラム230は、プロセッサ142によって実行される。マイクロプログラム230は、サーバモジュール101及び高速メモリ120、ディスク121間のI/Oの制御を実行する。マイクロプログラム230は、高速メモリ割り当てストレージドライバ240を含む。
 高速メモリ割り当てストレージドライバ240は、高速メモリ120をシンプロビジョニングして生成したLU(仮想ボリューム)を、複数のサーバモジュール101のスワップ領域として使用する場合に、サーバモジュール101に割り当てられているLU間の、高速メモリ120からの当て容量を調整する。高速メモリ割り当てストレージドライバ240は、管理装置140の高速メモリ割り当て管理ソフトウェア220とのI/Fを含む。
 高速メモリ割り当てストレージドライバ240は、制御モジュールとしてストレージ高速メモリ割り当て241及びパスモニタリング242を、管理テーブルとしてストレージ内高速メモリ割り当てテーブル243及びマルチパステーブル244を、有する。
 管理装置140は、そのメモリ143に、高速メモリ割り当て管理ソフトウェア220を格納する。高速メモリ割り当て管理ソフトウェア220は、プロセッサ142によって実行される。高速メモリ割り当て管理ソフトウェア220は、高速メモリ割り当てストレージドライバ240に対する設定I/Fを有する。
 図17は、ストレージ内高速メモリ割り当てテーブル243の一例を示す。ストレージ内高速メモリ割り当てテーブル243は、高速メモリ120の各エクステントが割り当てられているLU番号及びLU内アドレス、及びエクステントの利用状況の情報を保持する。LU番号及びLU内アドレスは、サーバモジュール101がスワップのための指定するアドレスである。ストレージ内高速メモリ割り当てテーブル243は、高速メモリエクステント番号2430、LU番号2431、LUベースアドレス2432、割り当てページ数2433、有効ビット2434、の情報を含む。
 ストレージ内高速メモリ割り当てテーブル243は、さらに、高速メモリエクステントサイズ2435、ページサイズ2436、残エクステント数2437及びエクステント残数閾値2438の情報を含む。高速メモリエクステントサイズ2235は、ストレージシステム110による高速メモリ領域の管理単位であるエクステント、のサイズを示す。
 ページサイズ2436は、サーバモジュール101による高速メモリ領域(スワップ領域)の管理単位であるページ、のサイズを示す。以下の説明及び図面においては、高速メモリエクステントサイズ2435は、単にエクステントサイズ2435と略記する場合がある。
 図18は、マルチパステーブル244の一例を示す。本実施例は、高速メモリ120をスワップ領域として使用するので、領域内のデータは揮発性の特徴を持つ。したがって、あるサーバモジュール101とストレージシステム110との間のパスが切断された場合は、当該サーバモジュール101にスワップのために仮想的に割り当てられているLU内のデータは、以降利用されないと考えてもよい。そこで、本実施例は、当該LUに割り当てられている高速メモリ120のエクステントを削除する。
 マルチパスが構成されている場合、本実施例は、マルチパスを構成する全てのパスが切断された場合のみ、LUに割り当てられているエクステントを削除する。マルチパステーブル244は、サーバモジュール101のマルチパスの情報を保持する。マルチパステーブル244は、LU番号2340及びマルチパス構成2341の情報を含む。また、パス番号2342及びパス毎の状態2343の情報を含む。
 図19は、OS200が、スワップ領域からのリード(スワップイン)を実行した時の、高速メモリ割り当てストレージドライバ240の処理のフローチャートの一例である。本処理は、OS200が、スワップ領域の解放を意味するリードコマンドを発行し、当該リードコマンドをマイクロプログラム230が受け取った事を契機に開始される。リードコマンドは、当該OS200に割り当てられている仮想的なLU及びそのアドレスを指定する。
 まず、ストレージ高速メモリ割り当て241は、リード先のLU番号と、リードアドレス(LU内アドレス)をエクステントサイズ2435で正規化した値とを取得する。ストレージ高速メモリ割り当て241は、ストレージ内高速メモリ割り当てテーブル243から、LU番号2431の値とLUベースアドレス2432の値とが、それぞれ、取得したLU番号とリードアドレスを正規化した値とに対応する、エントリを選択する(S1000)。ストレージ高速メモリ割り当て241は、例えば、下記数式に従って、リードアドレスに対応する高速メモリの読み取り先アドレスを計算する。
 高速メモリ読み取り先アドレス=高速メモリエクステントサイズ×高速メモリエクステント番号2430+(リードアドレス-LUベースアドレス2432)
 ストレージ高速メモリ割り当て241は、計算した高速メモリの読み取り先アドレスをリードアドレスとして、高速メモリ120よりデータをリードし、サーバモジュール101に結果を返す(S1001)。
 次に、ストレージ高速メモリ割り当て241は、ストレージ内高速メモリ割り当てテーブル243において、対応するエントリの割り当てページ数2433の値をデクリメントする(S1002)。ストレージ高速メモリ割り当て241は、「リードサイズ/ページサイズ2436」数分、デクリメントする。割り当てページ数2433は、エクステントにおいてデータを格納するページ数を示す。
 次に、ストレージ高速メモリ割り当て241は、デクリメント後の割り当てページ数2433の値が、0か否かを判定する(S1003)。割り当てページ数2433の値が0でない場合(S1003:NO)、当該エクステントがスワップデータを格納しているので、本処理は終了する。
 割り当てページ数2433の値が0である場合(S1003:YES)、当該エクステントの全データが読み出し済みであり、格納されているスワップデータは存在しないため、ストレージ高速メモリ割り当て241は、当該エクステントを解放する(S1004)。ストレージ高速メモリ割り当て241は、有効ビット2434を、無効を表す"0"に設定する。その後、本処理は終了する。
 図20は、OS200がスワップ領域へのライト(スワップアウト)を実行した時の高速メモリ割り当てストレージドライバ240の処理のフローチャートの一例である。本処理は、OS200が、スワップ領域の確保を意味するライトコマンドを発行し、当該ライトコマンドをマイクロプログラム230が受け取った事を契機に開始される。ライトコマンドは、当該OS200に割り当てられている仮想的なLU及びそのアドレスを指定する。
 まず、ストレージ高速メモリ割り当て241は、ライト先のLU番号と、ライトアドレス(LU内アドレス)をエクステントサイズ2435で正規化した値とを取得する。ストレージ高速メモリ割り当て241は、ストレージ内高速メモリ割り当てテーブル243から、LU番号2431の値とLUベースアドレス2432の値とが、それぞれ、取得したLU番号とリードアドレスを正規化した値とに対応する、エントリを選択する(S1100)。ライトアドレスに対応する高速メモリの書き込み先アドレスの計算は、例えば、下記式に従う。
 高速メモリ書き込み先アドレス=高速メモリエクステントサイズ×高速メモリエクステント番号2430+(ライトアドレス-LUベースアドレス2432)
 対応するエントリが存在する場合、ストレージ高速メモリ割り当て241は、エクステントが割り当て済みと判定する(S1101:YES)。ストレージ高速メモリ割り当て241は、対応エントリの割り当てページ数2433をインクリメントする(S1102)。
 対応するエントリが存在しない場合(S1101:NO)、ストレージ高速メモリ割り当て241は、ストレージ内高速メモリ割り当てテーブル243より空きエクステントを確保する。空きエクステントは、ストレージ内高速メモリ割り当てテーブル243で有効ビット2434が"0"であるエントリである。
 ストレージ高速メモリ割り当て241は、ライト先のLU番号を確保したエントリのLU番号2431に書き込み、ライト先のアドレスを高速メモリエクステントサイズで正規化した値をLUベースアドレス2432に書き込む。さらに、ストレージ高速メモリ割り当て241は、当該エントリの割り当てページ数2433の値を1に、有効ビット3434の値を、有効を現す"1"に設定する。ストレージ高速メモリ割り当て241は、残エクステント数2437をデクリメントする(S1104)。
 次に、ストレージ高速メモリ割り当て241は、高速メモリ120への書き込み処理を行う(S1105)。高速メモリ書き込み先アドレスは、上記式に従って決定される。次に、ストレージ高速メモリ割り当て241は、残エクステント数2437の値がエクステント残数閾値2238の値以下か判定する(S1106)。これにより、スワップ領域の容量不足が判定される。残エクステント数2437の値がエクステント残数閾値2238より大きい場合(S1106)、本処理は終了する。
 残エクステント数2437の値がエクステント残数閾値2238の値以下である場合(S1106:YES)、ストレージ高速メモリ割り当て241は、管理者にスワップ領域の容量不足を警告する(S1107)。これにより、必要に応じてスワップのための実記憶領域を増加できる。警告の例は、メールによる通知又はダッシュボード上での通知である。
 図21は、ストレージシステム110がリンク状態を監視し、リンク状態に応じてエクステントを解放する処理のフローチャートの一例である。リンク切断により揮発性の特性を有するスワップデータは不要となると考えられるため、エクステントを解放することで、高速メモリ120の空き領域を増加させる。
 パスモニタリング242は、リンク状態の変化を検出する(S1200)。リンク状態の変化には、リンクダウン時や、FCを利用している場合はSLOGIコマンドやSLOGOコマンドの受信時である。また、パスモニタリング242は、アプリケーション201の動作を監視し、リンク状態の変化は、当該アプリケーション201とストレージシステム110のリンクが切断された場合も含む。
 次に、パスモニタリング242は、マルチパステーブル244において、対応するパス2442のリンク状態2443をダウンに変更する。パスモニタリング242は、当該パスを利用するLU番号を、マルチパス内利用パス番号2441の値からLU番号2440の値を引くことにより特定する(S1202)。マルチパスリンクが張られている場合(S1202:YES)、パスモニタリング242は、当該LUに対して張られているマルチパスのパス全てのリンクがダウンしているかをリンク状態2443より判定する(S1203)。
 マルチパスリンクのいずれかのリンクが接続している場合(S1203:NO)、本処理は終了する。マルチパスリンクが張られていない場合(S1202:NO)、又はマルチパスリンクが張られているが全てのパスの状態がダウンになった場合(S1203:YES)、全パスが切断されているので、パスモニタリング242は、当該LUに対応するエクステントをクリアする(S1204)。
 具体的には、パスモニタリング242は、ストレージ内高速メモリ割り当てテーブル243において、LU番号2431の値が割り当て解除LU番号であるエントリの全ての有効ビット2434の値を、無効を表す"0"に変更する。これにより、本処理は終了する。
 図22は、図20のS1107において、管理者がアラームを受け取った場合の管理者の動作のフローチャートの一例である。基本的に、図12を参照して説明した実施例1の管理者の動作と同様である。具体的には、S1303のみ実施例1と異なり、S1300~S1302、S1304は、それぞれ、S600~S602、S604に対応する。
 S1303において、管理者は、管理装置140の入力デバイスを使用して、高速メモリ割り当て設定224に対し、容量増加設定を行う。具体的には、管理者は、ストレージ高速メモリ割り当て241に対し、高速メモリ割り当て設定224を通じて容量増加設定し、ストレージ内高速メモリ割り当てテーブル243のエクステントのエントリを拡張し、残エクステント数2225を拡張する(S1303)。
 実施例2の初期設定は、図14を参照して説明した実施例1の初期設定において、S705を省略したフローと同様である。
 図23は、実施例2の高速メモリ割り当て管理ソフトウェア220のGUI表示画像例を示す。高速メモリ割り当て管理ソフトウェア220は、図15に示す高速メモリ割り当て設定のGUI画像300の他、マルチパス設定のGUI画像310を表示する。
 マルチパス設定画像310は、利用中のサーバ番号311毎に、利用するLU番号312、マルチパス利用有無313、マルチパス利用時のパス番号314を設定するための画像を含む。当該情報を元に、高速メモリ割り当て設定224は、マルチパステーブル244に必要な情報を設定する。
 本実施例では、高速メモリ割り当て管理ソフトウェア220を管理装置140が実行している、高速メモリ割り当て管理ソフトウェア220をプロセッサが実行することにより実現される機能を、計算機システムが有していればどのような構成であってもよい。例えば、高速メモリ割り当て管理ソフトウェア220の一部又は全部が、管理装置140とは別の装置に記憶され、別のプロセッサが行うとしもよい。また、本実施例では、高速メモリ割り当て管理ソフトウェア220というソフトウェアによる制御を用いた例について説明したが、その一部をハードウェアによって実現することも可能である。
 本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明したすべての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
 また、上記の各構成・機能・処理部等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、SSD(Solid State Drive)等の記録装置、または、ICカード、SDカード等の記録媒体に置くことができる。また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしもすべての制御線や情報線を示しているとは限らない。実際には殆どすべての構成が相互に接続されていると考えてもよい。

Claims (15)

  1.  複数サーバからのアクセスを、ネットワークを介して受けるストレージシステムと、
     前記複数サーバを管理する管理装置と、を含む計算機システムであって、
     前記ストレージシステムは、ストレージコントローラと、第1ストレージと、前記第1ストレージより高速な第2ストレージと、を含み、
     前記第1ストレージは、前記複数サーバのデータの最終格納場所を与え、
     前記第2ストレージは、前記第1ストレージに格納されるデータをキャッシュし、
     前記管理装置は、
     前記第2ストレージにおいてキャッシュとして使用されている複数記憶領域ユニットそれぞれに格納されているデータのアクセスに関する情報を参照し、
     前記情報に基づいて、前記複数記憶領域ユニットそれぞれを解放する場合のリスク値を決定し、
     前記リスク値に基づいて、前記複数記憶領域ユニットにおいて解放する記憶領域ユニットを決定する、計算機システム。
  2.  請求項1に記載の計算機システムであって、
     前記管理装置は、前記リスク値を、前記複数記憶領域ユニットそれぞれが格納するデータに対するアクセス頻度に基づき決定する、計算機システム。
  3.  請求項1に記載の計算機システムであって、
     前記ストレージシステムは、仮想ボリュームを前記複数サーバにキャッシュ領域として提供し、
     前記ストレージシステムは、前記仮想ボリュームに対するライトに応じて、前記第2ストレージから記憶領域を前記仮想ボリュームに割り当て、
     前記管理装置は、
     前記仮想ボリュームに割り当てられている前記記憶領域から、前記解放する記憶領域ユニットを決定する、計算機システム。
  4.  請求項1に記載の計算機システムであって、
     前記複数サーバそれぞれの前記第1ストレージへのアクセス単位のサイズは、前記記憶領域ユニットのサイズよりも小さい、計算機システム。
  5.  請求項4に記載の計算機システムであって、
     前記複数サーバのそれぞれは、前記第2ストレージからキャッシュとして割り当てられている容量のうちの空き容量が、閾値以下の場合に、前記第2ストレージからの新たな記憶領域ユニットの割当を前記ストレージシステムに要求する、計算機システム。
  6.  請求項1に記載の計算機システムであって、
     前記管理装置は、前記第2ストレージにおいて前記複数サーバのためのキャッシュとして用意されている容量のうち、空き容量が閾値以下の場合に、前記決定した記憶領域ユニットを解放する、計算機システム。
  7.  請求項1に記載の計算機システムであって、
     前記管理装置は、1又は複数アクティブサーバに対する一つのスタンバイサーバに対して前記第2ストレージから割り当てる容量を、前記1又は複数アクティブサーバへの前記第2ストレージから割当容量の最大容量に一致させる、計算機システム。
  8.  請求項2に記載の計算機システムであって、
     解放すると決定した前記記憶領域ユニットのアクセス頻度が閾値以上の場合、前記管理装置は警告を出力する、計算機システム。
  9.  請求項1に記載の計算機システムであって、
     前記ストレージシステムは、前記第2ストレージの記憶領域をスワップ領域として前記複数サーバに提供する、計算機システム。
  10.  請求項9に記載の計算機システムであって、
     前記ストレージシステムは、前記スワップ領域において、全データが読み出し済みである記憶領域ユニットを解放する、計算機システム。
  11.  請求項9に記載の計算機システムであって、
     前記ストレージシステムは、前記第2ストレージの記憶領域の割当先との全パスが切断されている場合に、前記割当先に割り当てられている前記第2ストレージの記憶領域を解放する、計算機システム。
  12.  請求項9に記載の計算機システムであって、
     前記ストレージシステムは、前記第2ストレージにおいて前記複数サーバのためにスワップ領域として用意されている容量のうち、空き容量が閾値より小さいに場合に警告を出力する、計算機システム。
  13.  複数サーバからのアクセスを、ネットワークを介して受けるストレージシステムを制御する方法であって、
     前記ストレージシステムは、第1ストレージと、前記第1ストレージより高速な第2ストレージと、を含み、
     前記第1ストレージは、前記複数サーバのデータの最終格納場所を与え、
     前記第2ストレージは、前記第1ストレージに格納されるデータをキャッシュし、
     前記方法は、
     前記第2ストレージの複数記憶領域ユニットそれぞれに格納されているデータのアクセスに関する情報を参照し、
     前記情報に基づいて、前記複数記憶領域ユニットそれぞれを解放する場合のリスク値を決定し、
     前記リスク値に基づいて、前記複数記憶領域ユニットにおいて解放する記憶領域ユニットを決定する、ことを含む方法
  14.  請求項13に記載の方法であって、
     前記リスク値の決定は、前記複数記憶領域ユニットそれぞれが格納するデータに対するアクセス頻度に基づき決定する、方法。
  15.  請求項13に記載の方法であって、
     前記ストレージシステムは、前記第2ストレージの記憶領域をスワップ領域として前記複数サーバに提供し、
     前記方法は、前記スワップ領域からのリードコマンドに応答し、前記リードコマンドのリード先の記憶領域ユニットを解放する、ことを含む方法。
PCT/JP2016/061378 2016-04-07 2016-04-07 計算機システム WO2017175350A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/JP2016/061378 WO2017175350A1 (ja) 2016-04-07 2016-04-07 計算機システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2016/061378 WO2017175350A1 (ja) 2016-04-07 2016-04-07 計算機システム

Publications (1)

Publication Number Publication Date
WO2017175350A1 true WO2017175350A1 (ja) 2017-10-12

Family

ID=60001112

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2016/061378 WO2017175350A1 (ja) 2016-04-07 2016-04-07 計算機システム

Country Status (1)

Country Link
WO (1) WO2017175350A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11474750B2 (en) 2020-01-21 2022-10-18 Fujitsu Limited Storage control apparatus and storage medium

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07281836A (ja) * 1994-04-12 1995-10-27 Asahi Kasei Micro Syst Kk データ転送方法
JP2010067042A (ja) * 2008-09-11 2010-03-25 Hitachi Ltd 計算機切り替え方法、計算機切り替えプログラム及び計算機システム
JP2014086052A (ja) * 2012-10-26 2014-05-12 Canon Inc 情報処理装置およびその方法
JP2015517697A (ja) * 2012-05-23 2015-06-22 株式会社日立製作所 二次記憶装置に基づく記憶領域をキャッシュ領域として用いるストレージシステム及び記憶制御方法
WO2015114809A1 (ja) * 2014-01-31 2015-08-06 株式会社 東芝 階層化ストレージシステム、ストレージコントローラ、及び階層間のデータ移動を代替する方法
JP2015170271A (ja) * 2014-03-10 2015-09-28 日本電気株式会社 記憶領域管理装置、記憶領域管理方法及び記憶領域管理プログラム

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07281836A (ja) * 1994-04-12 1995-10-27 Asahi Kasei Micro Syst Kk データ転送方法
JP2010067042A (ja) * 2008-09-11 2010-03-25 Hitachi Ltd 計算機切り替え方法、計算機切り替えプログラム及び計算機システム
JP2015517697A (ja) * 2012-05-23 2015-06-22 株式会社日立製作所 二次記憶装置に基づく記憶領域をキャッシュ領域として用いるストレージシステム及び記憶制御方法
JP2014086052A (ja) * 2012-10-26 2014-05-12 Canon Inc 情報処理装置およびその方法
WO2015114809A1 (ja) * 2014-01-31 2015-08-06 株式会社 東芝 階層化ストレージシステム、ストレージコントローラ、及び階層間のデータ移動を代替する方法
JP2015170271A (ja) * 2014-03-10 2015-09-28 日本電気株式会社 記憶領域管理装置、記憶領域管理方法及び記憶領域管理プログラム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11474750B2 (en) 2020-01-21 2022-10-18 Fujitsu Limited Storage control apparatus and storage medium

Similar Documents

Publication Publication Date Title
JP4890033B2 (ja) 記憶装置システム及び記憶制御方法
JP5028381B2 (ja) ストレージ装置およびキャッシュ制御方法
JP5646633B2 (ja) ストレージ装置
US8296543B2 (en) Computer system management apparatus and management method for the computer system
WO2010103569A1 (en) Storage system and control method for the same, and program
EP1755042A2 (en) Storage system for controlling disk cache
US8539142B2 (en) Storage system comprising nonvolatile semiconductor storage media
JP2009043030A (ja) ストレージシステム
JP5531091B2 (ja) 計算機システム及びその負荷均等化制御方法
JP5317807B2 (ja) ファイル制御システムおよびそれに用いるファイル制御計算機
JP2015517697A (ja) 二次記憶装置に基づく記憶領域をキャッシュ領域として用いるストレージシステム及び記憶制御方法
JP5214502B2 (ja) ストレージ装置を管理する計算機及び方法
JP2016162397A (ja) ストレージ制御装置、制御システム及び制御プログラム
US20150186063A1 (en) Compound storage system and storage control method
US10049042B2 (en) Storage device, semiconductor memory device, and method for controlling same
JP6171084B2 (ja) ストレージシステム
JP2008299559A (ja) ストレージシステム及びストレージシステムにおけるデータ移行方法
US11204703B2 (en) Techniques for scavenging of free provisioned blocks
JP2007102314A (ja) ディスクキャッシュ制御装置
US9864688B1 (en) Discarding cached data before cache flush
WO2017175350A1 (ja) 計算機システム
JP5597266B2 (ja) ストレージシステム
US10740250B2 (en) Storage apparatus
US11740792B2 (en) Techniques for data storage management
US11789613B2 (en) Storage system and data processing method

Legal Events

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

Ref country code: DE

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

Ref document number: 16897907

Country of ref document: EP

Kind code of ref document: A1

122 Ep: pct application non-entry in european phase

Ref document number: 16897907

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP