Storage devices such as disks are well known. It was also well known that storage controllers control access to the storage devices in response to read and write requests. The storage controllers also mirror data to different storage devices and spread data amongst different storage devices for redundancy and backup purposes. Storage controllers were also known to store data in accordance with one of several known RAID security levels. Generally, the higher the RAID level the greater the redundancy of the data storage.
It was also known that pooled storage devices can be used to increase storage capacity and provide recovery and backup services.
Storage servers, such as an IBM Enterprise Storage Server, were also known. An IBM ESS storage server includes two clusters of processors and associated hardware. Typically, there are four storage controllers in each cluster. Each of the storage controllers controls multiple storage devices grouped in RAID arrays. In one environment, clients with Fiber Channel Host Bus Adapters (“HBAs”) are coupled via a Fiber Channel to a switch. The switch is also coupled to the Storage Server with Fiber Channel HBAs. There may be multiple storage servers per client. Each client is assigned or allocated storage “volumes” which are mapped to physical locations on storage devices that are grouped in RAID arrays. Consequently, clients make data access requests (reads and writes) to the storage server, for data within their allocated volumes, and the storage server accesses the mapped locations in cache storage to satisfy the requests or from disk if the data does not reside in cache storage.
A known IBM Enterprise Storage Server comprises two clusters of storage controllers with four storage controllers per cluster. Each cluster has its own cache (semiconductor) memory shared by all storage controllers in the cluster. Each cluster also has battery backed up nonvolatile storage (“NVS”) which is shared by all of the storage controllers in the cluster, although any one storage controller cannot use more than 25 percent of the total NVS allocated to the cluster. In addition, each storage controller has its own cache (disk) storage. The cache memory is used for rapid access to data inpaged from external storage to service read data access requests from memory and to provide buffering of modified data. All update requests are written to the associated cluster and backed up by the NVS on the mirrored cluster.
Occasionally, one or more of the storage controllers or arrays become “over-utilized”, i.e. there are more data access requests than can be handled expeditiously. The problem may be due to I/O delays within the storage server or other hardware or bandwidth constraints. It was known to move some of the data from a disk of an over-utilized or over-accessed array to another, lesser-utilized array. It was also known that when a cache memory is too small, there may be excessive outpaging of the data in the cache memory to storage, to make room for inpaging of data for which access is requested. It was known to increase the size of the cache memory, when found to be too small, to the capacity of the hardware.
A known IBM TotalStorage Expert program tool monitored cache memory, NVS, Physical Array Activity and Logical Volume activity in a known IBM Enterprise Storage Server. The TotalStorage Expert program tool is further described in published documents, “IBM TotalStorage Expert Reporting: How to Produce Built-In and Customized Reports” by Daniel Demer et al., dated October 2003, and “IBM TotalStorage Expert Hands-On Usage Guide” by Mary Lovelace et al., dated January 2003.
A known Tivoli Multiple Device Manager program tool monitored cache memory, NVS, Physical Array Activity and Logical Volume Activity in a known IBM Enterprise Storage Server, and reported performance data and exceptions. The Tivoli Multiple Device Manager program tool is further described in a published document, “Managing Disk Subsystems using IBM TotalStorage Productivity” by Mary Lovelace et al., dated September 2005.
An object of the present invention is to accurately determine the effectiveness of a storage system to access a storage device.
Another object of the present invention is to take corrective action when the effectiveness of the storage system is impaired.