Resource management apparatus, resource management method, and nonvolatile recording medium

A storage apparatus includes a plurality of resources including a plurality of types of surplus resources, determines a surplus resource introduction plan used for coping with abnormalities, and controls allocation of the surplus resources according to the determined introduction plan. The storage apparatus includes a processor. The processor detects an abnormality associated with the resource of the storage apparatus, calculates one or more surplus resource introduction plans capable of coping with the abnormality on the basis of management information of the resource of the storage apparatus when the abnormality is detected, and determines, when there are a plurality of introduction plans, an introduction plan used for coping with the abnormality on the basis of a state in which other abnormalities that are likely to occur concurrently with the abnormality can be coped with, by surplus resources remaining when the introduction plans are executed.

CROSS-REFERENCE TO PRIOR APPLICATION

This application relates to and claims the benefit of priority from Japanese Patent Application No. 2017-198588 filed on Oct. 12, 2017, the entire disclosure of which is incorporated herein by reference.

BACKGROUND

The present invention relates to a resource management apparatus and the like for determining an introduction plan for surplus resources and allocating surplus resources according to the determined introduction plan.

As an IT resource management technique, a technique of dynamically changing allocation of IT resources to reduce a management cost of the IT resources has been considered. For example, a technique of virtualizing an entire storage system and allocating storage resources without changing the configuration of a business application when performance deteriorates or failures occur is known (for example, see Japanese Patent Application Publication No. 2005-216151).

SUMMARY

For example, in a storage apparatus including a plurality of storage devices (for example, drives), spare (replacement) drives for replacement with faulty drives are prepared in order to secure redundancy in the event of faults (abnormalities), and a faulty drive is switched to a spare drive when any one of drives is broken down. Moreover, in the storage apparatus, the performance and capacity necessary at a peak time are predicted to determine the number of drives that form a physical volume.

For example, as described above, when spare drives are prepared in advance, it is possible to cope with faults in a drive. However, when a drive is replaced, a spare drive needs to have a performance equivalent to an original drive and there is a problem that the cost increases.

In contrast, although the cost can be decreased by preparing drives having different performances, it is important to determine how these drives will be used. For example, when another abnormality occurs after a certain drive is used to cope with a certain abnormality, it may be difficult to cope with the other abnormality depending on the type of the drive used first.

The present invention has been made in view of the problems, and an object thereof is to provide a technique capable of increasing the possibility to cope with a plurality of abnormalities.

In order to attain the object, a resource management apparatus according to an aspect is a resource management apparatus that determines a surplus resource introduction plan used for coping with abnormalities in a storage apparatus including a plurality of resources including a plurality of types of surplus resources, and controls allocation of the surplus resources according to the determined introduction plan, the resource management apparatus includes a processor unit, wherein the processor unit is configured to: detect an abnormality associated with the resource of the storage apparatus; calculate one or more surplus resource introduction plans capable of coping with the abnormality on the basis of management information of the resource of the storage apparatus when the abnormality is detected; and determines, when there are a plurality of introduction plans, an introduction plan used for coping with the abnormality on the basis of a state in which other abnormalities that are likely to occur concurrently with the abnormality can be coped with, by surplus resources remaining when the introduction plans are executed.

According to the present invention, it is possible to increase the possibility to cope with a plurality of abnormalities.

DETAILED DESCRIPTION OF THE EMBODIMENT

Hereinafter, embodiments will be described with reference to the drawings. The embodiments described below are not intended to limit the inventions according to the claims, and all elements and combinations thereof described in the embodiments are not necessarily essential to the solving means for the invention.

In the following description, although information is sometimes described using an expression of an “AAA table,” the information may be expressed by an arbitrary data structure. That is, the “AAA table” may be referred to as “AAA information” in order to show that information does not depend on a data structure.

In the following description, a “processor unit” includes one or more processors. At least one processor is typically a microprocessor such as a CPU (Central Processing Unit). One or more processors may be single cores and may be multi-cores. The processor may include a hardware circuit that performs a part or all of the processes.

A part or all of the processes performed by the processor may be performed by a hardware circuit. A program executed by a processor may be installed from a program source. The program source may be a program distribution server or a storage medium (for example, a nonvolatile and portable storage medium).

Moreover, in the following description, “RAID” is an abbreviation of Redundant Array of Independent (or Inexpensive) Disks. A RAID group includes a plurality of physical devices (typically physical devices of the same type) and stores data according to a RAID level associated with the RAID group. A RAID group may be referred to as a parity group. A parity group may be a RAID group that stores a parity, for example.

In the following description, although names are used as identification information of elements, identification information of the other types maybe used instead of or in addition to the names. Moreover, in the following description, when the same types of elements are not distinguished from each other, reference numerals or common portions in the reference numerals may be used, whereas when the same types of elements are distinguished from each other, the reference numerals of the elements may be used or the names allocated to the elements may be used instead of the reference numerals.

FIG. 1is a diagram illustrating an overall configuration of a computer system according to an embodiment.

A computer system1includes one or more servers10and a storage apparatus30. The server10and the storage apparatus30are connected via a SAN (Storage Area Network)20as an example of a communication network.

The server10can execute various processes and writes data to a virtual volume405(seeFIG. 2) of the storage apparatus30associated with processing and reads data from the virtual volume405.

The storage apparatus30includes a disk unit40including a plurality of storage devices and a storage controller50as an example of a resource management apparatus.

The storage controller50includes a disk I/F (interface)51, a communication I/F52, a processor53as an example of a processor unit, a memory54, an input device55, and an output device56.

The disk I/F51performs a process of transmitting data between the storage controller50and the disk unit40.

The communication I/F52communicates with other devices (for example, the server10) via the SAN20.

The input device55is a mouse, a keyboard, and the like, for example, and receives various pieces of input data from an administrator of the storage apparatus30. The output device56is a liquid crystal display, for example, and displays and outputs various pieces of information.

The processor53executes various processes according to a program stored in the memory54.

The memory54is a RAM (RANDOM ACCESS MEMORY) , for example, and stores a program executed by the processor53, various tables, and necessary information. In the present embodiment, the memory54stores a monitoring program61, a resource management program65, a resource allocation control program67, and a table group80(tables81to98).

The monitoring program61includes a performance monitoring process program62, a drive fault monitoring process program63, and a resource allocation monitoring process program64. The resource management program65includes a resource management process program66. The resource allocation control program67includes a resource introduction process program68, a resource reclamation process program69, a resource introduction plan calculation process program70, a combination calculation process program71, and a resource introduction plan selection process program72. Processes executed when the processor53executes the respective programs will be described later.

The table group80includes a pool management table81, a RAID group management table82, a volume management table83, a drive management table84, a pool monitoring table85, a drive monitoring table86, a drive monitoring history table87, a pool monitoring history table88, a fault table89, a RAID group type table90, a drive type table91, a tier type table92, a resource introduction history table93, a page migration performance list table94, a page migration performance influence list table95, a resource introduction plan list table96, a configuration change time list table97, and a configuration change means list table98. The details of the respective tables will be described later.

FIG. 2is a diagram illustrating a configuration of resources of a storage apparatus according to an embodiment.

The storage controller50includes a monitoring unit57, a resource management unit58, and a resource allocation control unit59. The monitoring unit57is configured when the processor53executes the monitoring program61. The resource management unit58is configured when the processor53executes the resource management program65. The resource allocation control unit59is configured when the processor53executes the resource allocation control program67.

The disk unit40of the storage apparatus30includes a plurality of drives401. The drive401is an example of a resource. The plurality of drives401may be drives having different types and performances. The drive401may be an HDD (Hard Disk Drive) or may be an SSD (Solid State Drive), for example. Moreover, when the drive401is an HDD, the drive401may include a SAS (Serial Attached SCSI) HDD and may include an NL-SAS (Near Line SAS) HDD, for example.

A plurality of drives401among the plurality of drives401are surplus resources prepared as a backup to cope with abnormalities in the storage apparatus30and are managed as a surplus resource group406. In the present embodiment, the use of the drive401of the surplus resource group406is not limited to a specific use such as exclusively for replacement of drives, for example.

In the disk unit40, one or more RAID groups402are formed by a plurality of drives401. A physical volume403is formed on the basis of the storage area of the RAID group402. Moreover, a pool (a capacity pool)404is formed on the basis of the storage area of the physical volume403. The disk unit40includes one or more virtual volumes405which are provided to the server10(that is, which are accessed by the server10). The storage area of the virtual volume405is managed as a plurality of pages. The storage area of the pool404is allocated to the virtual volume405in units of pages. Here, the RAID group402, the physical volume403, the pool404, and the virtual volume405, which are based on the storage area of the drive401, are also examples of resources.

Next, a configuration of the respective tables belonging to the table group80will be described in detail.

FIG. 3is a diagram illustrating a configuration of the pool management table according to an embodiment.

The pool management table81is a table for managing the respective pools404in the storage apparatus30and stores rows (records) corresponding to the respective pools404. The row of the pool management table81includes the fields of number (#)81a,pool name81b,physical volume name (Tier)81c,and physical capacity81d.

The number of a row in the pool management table81is stored in the number (#)81a.The name (a pool name) of the pool404corresponding to the row is stored in the pool name81b.The name of a physical volume that forms the storage area of the pool404corresponding to the row and Tier (layer) of the pool404are stored in the physical volume name (Tier)81c.A physical capacity of a storage area provided from a physical volume corresponding to the physical volume name of the physical volume name (Tier)81cto the pool404corresponding to the row is stored in the physical capacity81d.

FIG. 4is a diagram illustrating a configuration of a RAID group management table according to an embodiment.

The RAID group management table82is a table for managing the respective RAID groups402in the storage apparatus30and stores rows (records) corresponding to the respective RAID groups402. The row of the RAID group management table82includes the fields of number (#)82a,RAID group name82b,drive name82c,and RAID level82d.

The number of a row in the RAID group management table82is stored in the number (#)82a.The name (a RAID group name) of the RAID group402corresponding to the row is stored in the RAID group name82b. Drive names of the plurality of drives41that form the RAID group corresponding to the row are stored in the drive name82c.The RAID level of the RAID group402corresponding to the row is stored in the RAID level82d.

FIG. 5is a diagram illustrating a configuration of a volume management table according to an embodiment.

The volume management table83is a table for managing the respective volumes (the physical volume403and the virtual volume405) in the storage apparatus30and stores rows (records) corresponding to the respective volumes. The row of the volume management table83includes the fields of number (#)83a,volume name83b,RAID group name or pool name83c,and capacity81d.

The number of a row in the volume management table83is stored in the number (#)83a.The name of a volume corresponding to the row is stored in the volume name83b.The name of the RAID group402or the pool404that forms the storage area of a volume corresponding to the row is stored in the RAID group name or pool name83c.The capacity of the storage area of the volume corresponding to the row is stored in the capacity83d.

FIG. 6is a diagram illustrating a configuration of a drive management table according to an embodiment.

The drive management table84is a table for managing the respective drives401in the storage apparatus30and stores rows (records) corresponding to the respective drives401. The row of the drive management table84includes the fields of number (#)84a,drive name84b,drive type84c,capacity84d,state84e,and spin up/down84f.

The number of a row in the drive management table84is stored in the number (#)84a.The name (a drive name) of a drive corresponding to the row is stored in the drive name84b.A drive type of the drive401corresponding to the row is stored in the drive type84c.When the drive401is an SSD, the drive type is SSD. When the drive401is a SAS HDD, the drive type is SAS. The capacity of the storage area of the drive401corresponding to the row is stored in the capacity84d.The state of the drive401corresponding to the row is stored in the state84e.The state of the drive401includes NORMAL indicating that the drive operates normally and ERROR indicating that an abnormality (fault) has occurred. Information indicating whether the drive401corresponding to the row spins up or down is stored in the spin up/down84f.

FIG. 7is a diagram illustrating a configuration of a pool monitoring table according to an embodiment.

The pool monitoring table85is a table for managing the latest operation information of respective pools404in the storage apparatus30and stores rows (records) corresponding to the respective pools404. The row of the pool monitoring table85includes the fields of number (#)85a,pool name85b,usage rate85c,allocation volume name (rate)85d,threshold [warning]85e,threshold [abnormality]85f, and capacity change rate [short-term] (interval)85g.

The number of a row in the pool monitoring table85is stored in the number (#)85a.A pool name of the pool404corresponding to the row is stored in the pool name85b.A usage rate (an example of operation information) of a storage area of the pool404corresponding to the row is stored in the usage rate85c.The name of a volume to which the storage area of the pool404corresponding to the row is allocated and the allocation proportion (rate) are stored in the allocation volume name (rate)85d.A threshold (threshold [warning]) for detecting a warning state (an example of an abnormality) for the usage rate of the pool404corresponding to the row is stored in the threshold [warning]85e.A threshold (threshold [abnormality]) for detecting an abnormal state for the usage rate of the pool404corresponding to the row is stored in the threshold [abnormality]85f.A short-term change rate of the use capacity of the pool404corresponding to the row and an interval corresponding to the change rate are stored in the capacity change rate [short-term] (interval)85g.For example, the first row ofFIG. 7indicates that for a pool404of pool 01, the usage rate is 50%, 100% of the storage area is allocated to physical volume 01, the threshold [warning] is 80%, the threshold [abnormality] is 95%, and the capacity change rate in 15 minutes (15 min) is 0%.

FIG. 8is a diagram illustrating a configuration of a drive monitoring table according to an embodiment.

The drive monitoring table86is a table for managing the latest operation information of the respective drives401in the storage apparatus30and stores rows (records) corresponding to the respective drive401. The row of the drive monitoring table86includes the fields of number (#)86a,drive name86b,operation rate86c,threshold [warning]86d,threshold [abnormality]86e,and operation rate change rate [short-term] (interval)86f.

The number of a row in the drive monitoring table86is stored in the number (#)86a.A drive name of the drive401corresponding to the row is stored in the drive name86b.An operation rate (an example of operation information) of the drive401corresponding to the row is stored in the operation rate86c.A threshold (threshold [warning]) for detecting a warning state (an example of abnormality) for the operation rate of the drive401corresponding to the row is stored in the threshold [warning]86d.A threshold (threshold [abnormality]) for detecting an abnormal state for the operation rate of the drive401corresponding to the row is stored in the threshold [abnormality]86e.A short-term change rate of the operation rate of the drive401corresponding to the row and an interval corresponding to the change rate are stored in the operation rate change rate [short-term] (interval)86f.For example, the first row ofFIG. 8indicates that for the drive401of drive 01, the operation rate is 20%, the threshold [warning] is 60%, the threshold [abnormality] is 80%, and the operation rate change rate in 15 minutes (15 min) is 0%.

FIG. 9is a diagram illustrating a configuration of a drive monitoring history table according to an embodiment.

The drive monitoring history table87is a table for managing the history of operation information from the past of the respective drives401in the storage apparatus30and stores rows (records) corresponding to the respective time points of the respective drives401. The row of the drive monitoring history table87includes the fields of number (#)87a,drive name87b,time87c,and operation rate87d.

The number of a row in the drive monitoring history table87is stored in the number (#)87a.The drive name of the drive401corresponding to the row is stored in the drive name87b.The time indicating a time point corresponding to the row is stored in the time87c.An operation rate at the time point of the drive401corresponding to the row is stored in the operation rate87d.

FIG. 10is a diagram illustrating a configuration of a pool monitoring history table according to an embodiment.

The pool monitoring history table88is a table for managing the history of the operation information from the past of the respective pools404in the storage apparatus30and stores rows (records) corresponding to the respective time points of the respective pools404. The row of the pool monitoring history table88includes the fields of number (#)88a,pool name88b,time88c,usage rate88d, and allocation volume (rate)88e.

The number of a row in the pool monitoring history table88is stored in the number (#)88a.A pool name of the pool404corresponding to the row is stored in the pool name88b.Time indicating a time point corresponding to the row is stored in the time88c.A usage rate at the time point of the pool404corresponding to the row is stored in the usage rate88d.The name of a volume to which the storage area of the pool404corresponding to the row and an allocation proportion (rate) are stored in the allocation volume (rate)88e.

FIG. 11is a diagram illustrating a configuration of a fault table according to an embodiment.

The fault table89is a table for managing faults (abnormalities) occurring in the storage apparatus30and stores rows (records) corresponding to a fault type and a fault location. The row of the fault table89includes the fields of number (#)89a,fault type89b, fault location89c,and concurrent fault89d.

The number of a row in the fault table89is stored in the number (#)89a.A fault type corresponding to the row is stored in the fault type98b.In the present embodiment, examples of the fault type include performance deficiency such as low access speed, capacity shortage such as shortage of a storage capacity of the pool404, and a drive fault such as a fault occurring in a drive. A location (a fault location) in which a fault corresponding to the row is stored in the fault location89c.Information on one or more faults which can occur simultaneously with a fault indicated by a fault type and a fault location corresponding to the row is stored in the concurrent fault89d.Here, the fault occurring simultaneously with the fault indicated by the fault type and the fault location is another fault which can occur concurrently with the fault indicated by the fault type and the fault location after the fault occurred. The fault information may include a pair of the number of a row in the fault table89corresponding the other fault occurring concurrently and a probability of occurrence of the fault when there are a plurality of fault locations of the fault. In the present embodiment, when other faults occur selectively, the respective pieces of fault information are stored in a state of being associated by “or” in the concurrent fault89d.

For example, a third row ofFIG. 11indicates that other faults occurring simultaneously with a fault of capacity shortage for the pool404of pool 01 include a fault (probability 1/1) on the first row or a fault (probability 1/1) on the second row of the fault table89, a fault on the fourth row (probability 1/1), a fault on the fifth row (probability 1/16), and a fault on the sixth row (probability 1/16).

FIG. 12is a diagram illustrating a configuration of a RAID group type table according to an embodiment.

The RAID group type table90is a table indicating a list of RAID group configurations creatable in the storage apparatus30and stores rows (records) corresponding to respective RAID levels. The row of the RAID group type table90includes the fields of number (#)90a, RAID level90b,reliability evaluation value90c,and performance evaluation value90d.

The number of a row in the RAID group type table90is stored in the number90a.A RAID level corresponding to the row is stored in the RAID level90b.An evaluation value (a reliability evaluation value) of reliability of a RAID group of the RAID level corresponding to the row is stored in the reliability evaluation value90c.In the present embodiment, the higher the reliability evaluation value, the higher the reliability of the configuration. An evaluation value (a performance evaluation value) of performance of a RAID group of the RAID level corresponding to the row is stored in the performance evaluation value90d.In the present embodiment, the higher the performance evaluation value, the higher the performance of the configuration.

FIG. 13is a diagram illustrating a configuration of a drive type table according to an embodiment.

The drive type table91is a table indicating a list of drive types mountable in the storage apparatus30and stores rows (records) corresponding to the respective drive types (drive types). The row of the drive type table91includes the fields of number (#)91a, drive type (capacity)91b,spare drive type (capacity)91c, performance evaluation value91d,and performance ratio91e.

The number of a row in the drive type table91is stored in the number91a.A drive type corresponding to the row and the capacity of the drive are stored in the drive type (capacity)91b.A drive type usable as a spare drive (a data migration destination drive) and the capacity of the drive when a fault occurs in the drive of the drive type corresponding to the row occurs are stored in the spare drive type (capacity)91c.When there are a plurality of drive types usable as the spare drive, a plurality of drive types are stored in the spare drive type (capacity)91c.A performance evaluation value of the drive of a drive type corresponding to the row is stored in the performance evaluation value91d.In the present embodiment, the higher the performance evaluation value, the higher the performance of the drive. A value (that is, a performance ratio) indicating the performance of the drive of the drive type corresponding to the row when the performance of an NL-SAS HDD is 1 is stored in the performance ratio91e.

FIG. 14is a diagram illustrating a configuration of a tier type table according to an embodiment.

The tier type table92is a table indicating a list of tier configurations of the pool404that can be formed in the storage apparatus30and stores rows (records) corresponding to the respective tier configurations. The row of the tier type table92includes the fields of number (#)92a,tier92b,and drive type92c.

The number of a row in the tier type table92is stored in the number92a.One or more tier names indicating the tier configuration corresponding to the row are stored in the tier92b.The type of a drive that can form the respective tiers of the tier configuration corresponding to the row is stored in the drive type92c.For example, the eighth row ofFIG. 14indicates that tiers can be formed by Tier 1 and Tier 2, Tier 1 can be formed by SSD, and Tier 2 can be formed by SAS HDD.

FIG. 15is a diagram illustrating a configuration of a resource introduction history table according to an embodiment.

The resource introduction history table93is a table for managing the history of resource introduction for eliminating faults in the storage apparatus30and stores rows (records) corresponding to respective resource introductions. The row of the resource introduction history table93includes the fields of number (#)93a, introduction time93b,reclamation time93c,fault location93d,fault type93e,and introduced resource93f.

The number of a row in the resource introduction history table93is stored in the number93a.The time (for example, year/month/day hh:mm) at which resource introduction corresponding to the row was performed is stored in the introduction time93b.The time at which the resource that performed the resource introduction corresponding to the row was reclaimed is stored in the reclamation time93c.When resources are not reclaimed, the reclamation time93cis blank. A fault location in which resource introduction corresponding to the row was performed is stored in the fault location93d.The type of a fault which is the cause of the resource introduction corresponding to the row is stored in the fault type93e.The resources introduced for the resource introduction corresponding to the row are stored in the introduced resource93f.

For example, the first row ofFIG. 15indicates that, for a fault of performance deficiency of pool 01, resource introduction involving creating RAID group 03 of RAID 5 (5D+1P) using drives13to18, creating physical volume 03 (capacity 500 GB) using the storage area of RAID group 03, and allocating the physical volume 03 so as to be added to Tier 1 of pool 01 was performed 2017/01/01 12:00, and the introduced resources have not been reclaimed.

FIG. 16is a diagram illustrating a configuration of a page migration performance list table according to an embodiment.

The page migration performance list table94is a table for managing the performance (page migration performance) during migration of pages in the storage apparatus30and stores rows (records) corresponding to the page migration performance. The row of the page migration performance list table94includes the fields of number (#)94a,speed type94b,and speed94c.

The number of a row in the page migration performance list table94is stored in the number94a.A speed type corresponding to a page migration performance corresponding to the row is stored in the speed type94b.A transfer speed in the page migration performance corresponding to the row is stored in the speed94c.

FIG. 17is a diagram illustrating a configuration of a page migration performance influence list table according to an embodiment.

The page migration performance influence list table95is a table for managing an increase amount of the load (in this example, an operation rate) when page migration is performed in the storage apparatus30and stores rows (records) corresponding to each configuration of a RAID group that performs page migration. The row of the page migration performance influence list table95includes the fields of number (#)95a,RAID level95b,drive type95c,and low-speed load [migration destination/source]95d.

The number of a row in the page migration performance influence list table95is stored in the number95a.A RAID level of the RAID group corresponding to the row is stored in the RAID level95b.The type of a drive that forms the RAID group corresponding to the row is stored in the drive type95c.An increase amount (an operation rate increase amount) of the load in migration destination/source drives when page migration is performed at a low speed in the configuration of the RAID group corresponding to the row is stored in the low-speed load [migration destination/source]95d.

FIG. 18is a diagram illustrating a configuration of a resource introduction plan list table according to an embodiment.

The resource introduction plan list table96is a table for managing a resource introduction plan calculated to eliminate (solve) abnormalities in the storage apparatus30and stores rows (records) corresponding to respective resource introduction plans. The resource introduction plan list table96is provided for each target abnormality, for example. The row of the resource introduction plan list table96includes the fields of number (#)96a,evaluation value96b,fault # (number)96c,added volume (capacity)96d,added RAID group96e,added drive96f,and configuration change96g.

The number of a row in the resource introduction plan list table96is stored in the number96a.An evaluation value for the resource introduction plan corresponding to the row is stored in the evaluation value96b.In the present embodiment, if the resource introduction plan is a plan to add a physical volume in the event of a fault related to a physical volume, for example, the evaluation value96bis set to “1” when a reliability evaluation value of the added physical volume is equal to that of a physical volume associated with the fault and a performance evaluation value is equal to or larger than that of the faulty physical volume. The evaluation value96bis set to “2” when the reliability evaluation value is equal to that of the faulty physical volume and the performance evaluation value is smaller than that of the faulty physical volume. In the present embodiment, the smaller the evaluation value set in the evaluation value96b,the higher the evaluation of the resource introduction plan. The number (the number of a row in the fault table89corresponding to the fault type) corresponding to the fault type solved by the resource introduction plan corresponding to the row is stored in the fault # (number)96c.A volume name of a volume added by the resource introduction plan corresponding to the row and an added capacity are stored in the added volume (capacity)96d.A RAID level of a RAID group added by the resource introduction plan corresponding to the row is stored in the added RAID group96e.The type and the number of drives added by the resource introduction plan corresponding to the row are stored in the added drive96f.The content of a configuration changed by the resource introduction plan corresponding to the row is stored in the configuration change96g.

FIG. 19is a diagram illustrating a configuration of a configuration change time list table according to an embodiment.

The configuration change time list table97is a table for managing the time necessary when the configuration is changed in the storage apparatus30and stores rows (records) corresponding to each content of the configuration change. The row of the configuration change time list table97includes the fields of number (#)97a,configuration change97b,and time97c.

The number of a row in the configuration change time list table97is stored in the number97a.The content of configuration change corresponding to the row is stored in the configuration change97b. Time (minute (min)) necessary for configuration change corresponding to the row is stored in the time97c.

FIG. 20is a diagram illustrating a configuration of a configuration change means list table according to an embodiment.

The configuration change means list table98is a table for managing configuration change means in the storage apparatus30and stores rows (records) corresponding to each configuration change means. The row of the configuration change means list table98includes the fields of number (#)98a,fault type98b,means98c,and configuration change98d.

The number of a row in the configuration change means list table98is stored in the number98a.A fault type solved by the configuration change means corresponding to the row is stored in the fault type98b.The means corresponding to the row is stored in the means98c. The content of configuration change by the configuration change means corresponding to the row is stored in the configuration change98b.

Next, a processing operation of the storage apparatus30according to an embodiment will be described.

FIG. 21is a flowchart of a performance monitoring process according to an embodiment.

The performance monitoring process is performed when the processor53executes the performance monitoring process program62. The performance monitoring process starts being executed after the power of the storage apparatus30is turned on and is executed continuously.

First, the processor53acquires the operation information (the operation rate of each drive404and the usage rate of each pool404) of the storage apparatus30(step S11).

Subsequently, the processor53updates a monitoring history table (the drive monitoring history table87and the pool monitoring history table88) on the basis of the acquired operation rate and usage rate (step S12).

Subsequently, the processor53calculates a change rate [short-term] h (capacity change rate [short-term] and operation rate change rate [short-term]) of the operation information according to Equation (1) below (step S13).
h=1+(d(1)−d(T/t))/d(T/t)   (1)
Here, T is the period (interval) of calculating the change rate [short-term] and t is an acquisition interval of the operation information. d(n) indicates the operation information at time point n, n=1 indicates a latest time point at which the operation information was acquired, n=2, 3, . . . indicate the time points, one period, two periods, . . . before the operation information was acquired. Therefore, d(T/t) indicates the operation information at the time point, one period before the calculation period of the change rate [short-term].

Subsequently, the processor53updates a monitoring table (the pool monitoring table85and the drive monitoring table86) on the basis of the operation information acquired instep S11and the change rate [short-term] (the capacity change rate [short-term] and the operation rate change rate [short-term]) calculated in step S13(step S14). Specifically, the processor53updates the value of the usage rate85cin the row corresponding to each pool in the pool monitoring table85to the usage rate acquired in step S11and updates the value of the capacity change rate [short-term] (interval)85gto the capacity change rate [short-term] and the interval calculated in step S13. Moreover, the processor53updates the value of the operation rate86cin the row corresponding to each drive in the drive monitoring table86to the operation rate acquired in step S11and updates the value of the operation rate change rate [short-term] (interval)86fto the operation rate change rate [short-term] and the interval calculated in step S13.

Subsequently, the processor53performs the process of step S15with respect to the respective rows of the pool monitoring table85and the drive monitoring table86. First, the processor53determines whether the operation information (the usage rate or the operation rate) of a target record exceeds the value of the threshold [warning] of the row (step S15). When the operation information exceeds the threshold [warning] (step S15: YES), since it means that an abnormality has occurred, the processor53executes a resource introduction process (step S16: seeFIG. 23) of introducing resources to solve the abnormalities. When the operation information does not exceed the threshold [warning] (step S15: NO), the processor53does perform anything.

After performing the processes subsequent to step S15with respect to the respective rows of the pool monitoring table85and the drive monitoring table86, the processor53stops processing until the next monitoring period (step S17) and then the flow proceeds to step S11.

FIG. 22is a flowchart of a drive fault monitoring process according to an embodiment.

The drive fault monitoring process is performed when the processor53executes the drive fault monitoring process program63. The drive fault monitoring process starts being executed after the power of the storage apparatus30is turned on, for example, and is executed continuously.

First, the processor53acquires information (drive information) on the state of each drive401of the storage apparatus30(step S21). Here, the drive information is information indicating a state (NORMAL) in which the drive401operates normally or a state (ERROR) in which a fault has occurred, for example.

Subsequently, the processor53updates the drive management table84on the basis of the acquired drive information (step S22). Specifically, the processor53updates the value of the state84eof the row of each drive401of the drive management table84to the acquired value of the drive information of each drive401.

Subsequently, the processor53performs the process of step S23with respect to respective rows of the drive management table84. First, the processor53determines whether a drive fault has occurred in the drive corresponding to the row (step S23). Specifically, the processor53determines whether a drive fault has occurred in the drive401on the basis of whether the row state84eis ERROR.

As a result, when the drive fault has occurred (step S23: YES), the processor executes a resource introduction process (step S16: seeFIG. 23) of introducing resources to solve the drive fault. When the drive fault has not occurred (step S23: NO), the processor does not perform anything.

After performing the processes up to step S23with respect to the respective rows of the drive management table84, the processor53stops processing until the next monitoring period (step S24) and then the flow proceeds to step S21.

FIG. 23is a flowchart of a resource introduction process according to an embodiment.

The resource introduction process is performed when the processor53executes the resource introduction process program68. The resource introduction process is a process executed in step S16of the performance monitoring process inFIG. 21and the drive fault monitoring process inFIG. 22.

The processor53determines whether the fault is a drive fault (a fault in hardware of the drive401) (step S31). Here, when the resource introduction process is executed in the drive fault monitoring process, it is determined that the fault is a drive fault.

As a result, when the fault is a drive fault (step S31: YES), the processor53sets a grace time required for coping with the fault as a predetermined time (in the present embodiment, for example, 0.1 (min)) in the event of a drive fault (step S32) and starts executing a resource introduction plan calculation process (step S35: seeFIG. 24) of calculating the resource introduction plan for coping with the fault.

On the other hand, when the fault is not a drive fault (step S31: NO), the processor53executes the process of loop A (step S33). In loop A, the value of variable n is increased by 1 from 1, and the process of step S33is executed for respective variables.

Here, S is a threshold [abnormality] of a resource in which a fault has occurred. For example, when a process is related to a fault in the pool404, S is the value of the threshold [abnormality]85fin the row of the pool404in which a fault is detected in the pool monitoring table85. For example, when a process is related to a fault (a fault in an operation rate) in the drive401, S is the value of the threshold [abnormality]86ein the row of the drive401in which a fault is detected in the drive monitoring table86. F(n)=d(1)×hn. For example, F(1)=d(1)×h, F(2)=d(1)×h×h, and F(3)=d(1)×h×h×h. F(n) indicates an estimated value of the operation information after n periods (period is a computation period of change rate [short-term]).

Therefore, the determination on whether 0>S−F(n) is satisfied means determination on whether the value of the operation information after n periods exceeds the value of the threshold [abnormality].

As a result, when 0>S−F(n) is satisfied (step S33: YES), since it means that the operation information exceeds the value of the threshold [abnormality], the processor53exits loop A and the flow proceeds to step S34. On the other hand, when 0>S−F(n) is not satisfied (step S33: NO), since it means that the operation information does not exceed the threshold [abnormality], the processor53continues executing the process of loop A. According to the process of loop A, it is possible to detect the period required for the operation information to exceed the threshold [abnormality] appropriately.

In step S34, the processor53sets n×T as a grace time and then starts executing the resource introduction plan calculation process (step S35: seeFIG. 24) of calculating the resource introduction plan for coping with the fault.

After finishing the resource introduction plan calculation process, the processor53starts executing the resource introduction plan selection process (step S36: seeFIG. 26) of selecting the resource introduction plan to be executed actually from the resource introduction plans calculated in step S35.

After finishing the resource introduction plan selection process, the processor53updates a management table (at least one table among the pool management table81, the RAID group management table82, the volume management table83, and the drive management table84) so that the configuration change of the storage apparatus30according to the selected resource introduction plan is applied (step S37) and performs the configuration change of the selected resource introduction plan (step S38). After that, the processor53performs updating to add a row corresponding to the resource introduction plan performed to the resource introduction history table93(step S39) and ends the resource introduction process.

FIG. 24is a flowchart of the resource introduction plan calculation process according to an embodiment.

The resource introduction plan calculation process is performed when the processor53executes the introduction plan calculation process program70. The resource introduction plan calculation process is a process executed in step S35of the resource introduction process inFIG. 23.

The processor53determines whether the fault is a drive fault (step S41).

As a result, when the fault is not a drive fault (step S41: NO), the processor53determines whether the fault type is capacity shortage (step S42).

As a result, when the fault type is a capacity shortage (step S42: YES), the processor53executes a combination calculation process (step S43: seeFIG. 25) for calculating a combination of RAID group, drive, and configuration change means of pool volumes addable to the same tier as a physical volume where a fault has occurred (hereinafter referred to as a subject physical volume in the description of this process) and having an equivalent reliability evaluation value and an equivalent or higher performance evaluation value.

After executing the combination calculation process, the processor53calculates a capacity necessary for the added physical volume (step S44). Specifically, the processor53calculates the necessary capacity by Equation (2) below.
Necessary capacity [GB]=F(x)×physical capacity [GB]−d(1)×physical capacity [GB]  (2)
Here, x is a predetermined constant, and the value of x may be increased when it is necessary to provide a capacity margin, for example.

Subsequently, the processor53calculates the time necessary for realizing configuration change of the respective combinations calculated in step S43by referring to the configuration change time list table97(step S45).

Subsequently, the processor53extracts a combination in which the added capacity [GB] is larger than a necessary capacity [GB] and the time necessary for realizing configuration change is smaller than the grace time among the respective combinations calculated in step S43as a resource introduction plan (step S46), creates a new resource introduction plan list table96, and adds a row corresponding to the extracted resource introduction plan to the resource introduction plan list table96(step S47).

Subsequently, the processor53executes a combination calculation process (step S48: seeFIG. 25) for calculating a combination of RAID group, drive, and configuration change means of physical volumes addable to a lower tier than the subject physical volume and having an equivalent reliability evaluation value.

After executing the combination calculation process, the processor53calculates an increase amount of the communication amount associated with page migration from the subject physical volume to the added physical volume (step S49). Specifically, the processor53calculates the increase amount according to Equation (3) below.
Increase amount [Mbps]=((Physical capacity [GB]×F(1)−physical capacity [GB]×d(1))×1024×8)÷(T×60)   (3)

Subsequently, the processor53calculates the time necessary for realizing configuration change of the respective combinations calculated in step S48by referring to the configuration change time list table97(step S50).

Subsequently, the processor53extracts a combination in which a value obtained by adding the operation rate of the drive that forms a pool (an added physical volume) and the load during page migration acquired from the page migration performance influence list table95is smaller than the threshold [warning], the increase amount [Mbps] is smaller than the page migration speed (the value of the speed94cof the row in the page migration performance list table94), the added capacity [GB] is larger than the necessary capacity [GB], and the time necessary for realizing configuration change is smaller than the grace time among the combinations calculated in step S48as a resource introduction plan (step S51) and the flow proceeds to step S62.

On the other hand, when it is determined in step S42that the fault type is not a capacity shortage (step S42: NO), since it indicates that the fault type is a performance deficiency, the processor53executes a combination calculation process (step S52: seeFIG. 25) for calculating a combination of RAID group, drive, and configuration change means of physical volumes addable to the same tier as the subject physical volume and having an equivalent reliability evaluation value and an equivalent or higher performance evaluation value.

After executing the combination calculation process, the processor53calculates the time necessary for realizing configuration change of the respective combinations calculated in step S52by referring to the configuration change time list table97(step S53).

Subsequently, the processor53extracts a combination in which an operation rate (an estimated operation rate) expected when a drive is added to the same tier as the subject physical volume is smaller than the threshold [warning] and the time necessary for realizing configuration change is smaller than the grace time among the respective combinations calculated in step S52as a resource introduction plan (step S54).

Here, the estimated operation rate can be calculated according to Equation (4) below, for example.
Estimated operation rate=(F(x)×number of drives on tier to which subject physical volume belongs)÷(number of drives of tier to which subject physical volume belongs+number of drives added in combination)   (4)

Subsequently, the processor53creates a new resource introduction plan list table96and adds a row corresponding to the resource introduction plan extracted in step S54to the resource introduction plan list table96(step S55).

Subsequently, the processor53executes a combination calculation process (step S56: seeFIG. 25) for calculating a combination of RAID group, drive, and configuration change means of physical volumes addable to a higher tier than the subject physical volume and having an equivalent reliability evaluation value and an equivalent or higher performance evaluation value.

Subsequently, the processor53calculates the time necessary for realizing configuration change of the respective combinations calculated in step S56by referring to the configuration change time list table97(step S57).

Subsequently, the processor53extracts a combination in which an operation rate (a higher-tier estimated operation rate) expected when a drive is added to a higher tier than the subject physical volume is smaller than the threshold [warning] and the time necessary for realizing configuration change is smaller than the grace time among the respective combinations calculated in step S56as a resource introduction plan (step S58) and the flow proceeds to step S62. Here, the higher-tier estimated operation rate can be calculated according to Equation (5) below, for example.
Higher-Tier estimated operation rate=(F(x) x number of drives on tier to which subject physical volume belongs x performance ratio of drive of subject physical volume)÷((number of drives on higher tier than tier to which subject physical volume belongs+number of drives added in combination)×performance ratio of drive of added physical volume)   (5)

The performance ratio of a drive of the physical volume can be acquired from the value of the performance ratio91eof the row corresponding to the drive in the drive type table91.

On the other hand, when it is determined in step S41that the fault is a drive fault (step S41: YES), the processor53calculates one or more drives (corresponding to a resource introduction plan) usable as a spare drive of the drive where the fault occurred (step S59), calculates the time necessary for realizing configuration change for replacing the faulty drive with a spare drive (step S60), and extracts a resource introduction plan in which the time necessary for realizing configuration change is smaller than the grace time (step S61), and the flow proceeds to step S62.

In step S62, the processor53adds a row corresponding to the resource introduction plan extracted in the previous step (step S51, S58, or S61) to the resource introduction plan list table96. When the flow has passed through step S61, the processor53creates a new resource introduction plan list table96.

According to this resource introduction plan calculation process, a row corresponding to a resource introduction plan (a plurality of resource introduction plans if there are a plurality of plans) applicable for solving the fault is stored in the resource introduction plan list table96.

FIG. 25is a flowchart of the combination calculation process according to an embodiment.

The combination calculation process is performed when the processor53executes the combination calculation process program71. This combination calculation process is the process executed in steps S43, S48, S52, and S56of the resource introduction plan calculation process inFIG. 24.

The processor53specifies a drive401which corresponds to a row in which the value of the state84ein the drive management table84is NORMAL and which does not belong to the RAID group and selects this drive401as a surplus resource (step S71). Whether the drive401belongs to the RAID group can be specified on the basis of whether a drive name is set as the drive name82cof each row of the RAID group management table82.

Subsequently, the processor53acquires the RAID level and the drive type of the subject physical volume (the subject physical volume in the resource introduction plan calculation process in which the combination calculation process was executed) by referring to the RAID group management table82, the volume management table83, and the drive management table84. Moreover, the processor53acquires the reliability evaluation value and the performance evaluation value of the acquired RAID level by referring to the RAID group type table90. Moreover, the processor53acquires the performance evaluation value of the drive of the acquired drive type by referring to the drive type table91(step S72).

Subsequently, the processor53acquires a RAID level (an equivalent-reliability RAID level) having a reliability evaluation value equivalent to the acquired reliability evaluation value of the RAID level by referring to the RAID group type table90(step S73).

Subsequently, the processor53calculates a combination of RAID groups of the equivalent-reliability RAID level configurable by the selected surplus resource (step S74).

Here, when the RAID levels having an equivalent reliability evaluation value include RAID5(2D+1P) and RAID5(3D+1P) and the surplus resource includes eight SSDs and three SASs, the following nine combinations are calculated, for example.SSD:RAID5(2D+1P)×1SSD:RAID5(3D+1P)×1SAS:RAID5(2D+1P)×1SSD:RAID5(2D+1P)×2SSD:RAID5(3D+1P)×2SSD:RAID5(2D+1P)×1, SSD:RAID5(3D+1P)×1SSD:RAID5(2D+1P)×2, SAS:RAID5(2D+1P)×1SSD:RAID5(3D+1P)×2, SAS:RAID5(2D+1P)×1SSD:RAID5(2D+1P)×1, SSD:RAID5(3D+1P)×1, SAS:RAID5(2D+1P)×1

Subsequently, the processor53determines whether the calculated combination of RAID groups requires an equivalent or higher performance evaluation value (step S75). Whether an equivalent or higher performance evaluation value is required can be determined on the basis of a calculation target combination of the combination calculation process in the resource introduction plan calculation process. For example, in the combination calculation process of step S43, it is determined that an equivalent or higher performance evaluation value is required.

As a result, when the calculated combination of RAID groups requires an equivalent or higher performance evaluation value (step S75: YES), the processor53removes a combination including a RAID group having a lower performance evaluation value from the combinations calculated in step S74(step S76) and the flow proceeds to step S77. When the calculated combination of RAID groups does not require an equivalent or higher performance evaluation value (step S75: NO), the flow proceeds to step S77.

In step S77, the processor53determines whether the calculated combination of RAID groups requires a physical volume to be added to a lower tier. Whether the physical volume to be added to a lower tier is necessary can be determined on the basis of a calculation target combination of the combination calculation process in the resource introduction plan calculation process.

As a result, when the calculated combination of RAID groups requires a physical volume to be added to a lower tier (step S77: YES), the processor53extracts a combination of RAID groups addable to the lower tier among the present combinations (the combinations calculated in step S74or the combinations after execution of step S76if step S76was executed) (step S78) and the flow proceeds to step S79. When the calculated combination of RAID groups does not require a physical volume to be added to the lower tier (step S77: NO), the flow proceeds to step S79.

In step S79, the processor53determines whether the calculated combination of RAID groups requires a physical volume to be added to a higher tier. Whether the physical volume to be added to the higher tier is required can be determined on the basis of the calculation target combination of the combination calculation process in the resource introduction plan calculation process.

As a result, when the calculated combination of RAID groups requires the physical volume to be added to a higher tier (step S79: YES), the processor53extracts a combination of RAID groups addable to the higher tier among the present combinations (the combinations calculated in step S74or the combinations after execution of step S76if step S76was executed) (step S80) and the flow proceeds to step S81. When the calculated combination of RAID groups does not require a physical volume to be added to the higher tier (step S79: NO), the flow proceeds to step S81.

In step S81, the processor53determines whether the calculated combination of RAID groups requires a physical volume to be added to the same tier. Whether the physical volume to be added to the same tier is required can be determined on the basis of the calculation target combination of the combination calculation process in the resource introduction plan calculation process.

As a result, when the calculated combination of RAID groups requires the physical volume to be added to the same tier (step S81: YES), the processor53extracts a combination of RAID groups addable to the same tier among the present combinations (the combinations calculated in step S74or the combinations after execution of step S76if step S76was executed) (step S82) and returns the extracted combination of RAID groups to the combination calculation process, and the process ends. When the calculated combination of RAID groups does not require a physical volume to be added to the same tier (step S81: NO), the processor53returns the extracted combination of RAID groups to the combination calculation process, and the process ends.

FIG. 26is a flowchart of a resource introduction plan selection process according to an embodiment.

The resource introduction plan selection process is performed when the processor53executes the resource introduction plan selection process program72. The resource introduction plan selection process is a process executed in step S36of the resource introduction process inFIG. 23.

The processor53executes the process (steps S91and S92) of loop B. In loop B, the value of variable n is increased by 1 from 1 to the number of faults that are likely to occur simultaneously and the processes of steps S91and S92are executed using the values of the respective variables n.

In loop B, first, the processor53sets a value to be used for calculating E(n) (step S91). Here, E(n) is the resource introduction plan list table96corresponding to the n-th fault occurring concurrently with a fault (occurring fault) occurring presently. n is represented by n=CEIL(k(1)×c(1))+CEIL(k(2)×c(2))+ . . . +CEIL(k(i)×c(i)) where i is the order of registration in the concurrent fault89dof the row corresponding to the occurring fault in the fault table89, k(i) is the probability of i, and c(i) is the number of fault locations of i. CEIL is a function of truncating a fractional part. The number N of faults occurring concurrently with a fault (occurring fault) occurring presently is represented by N=CEIL(k(1)×c(1))+CEIL(k(2)×c(2))+ . . . +CEIL(k(I)×c(I)) where I is the number of faults registered in the concurrent fault89din the row corresponding to the occurring fault in the fault table89.

As values used for calculating E(n), an operation rate or a use capacity is set to a threshold [warning] corresponding thereto, a change rate [short-term] is set to a largest change rate [short-term] measured in the past, and a grace time is set to a value calculated on the basis of the past largest change rate [short-term] and the threshold [warning].

Subsequently, the processor53executes the resource introduction plan calculation process (seeFIG. 24) using the values set in step S91(step S92). According to the process of step S92, the resource introduction plan list table96including the resource introduction plan when a fault that are likely to occur simultaneously with an occurring fault occurred is created.

When steps S91and S92were performed using the number of concurrent faults as the variable n, the processor53exits loop B.

Subsequently, the processor53executes the process (steps S93to S96) of loop C. In loop C, the value of variable x is increased by 1 from 1 to x_max and the processes of steps S93to S96are executed using the values of variables x. Here, x_max is the largest value of the number of the row of the resource introduction plan list table96corresponding to the occurring fault.

In loop C, the processor53assumes that the drive401used in E(0)[x] was used for the set variable x (step S93). Here, E(0) indicates the resource introduction plan list table96corresponding to the occurring fault, and E(0)[x] indicates the x-th row of the resource introduction plan list table96corresponding to the occurring fault.

Subsequently, the processor53calculates combinations (E(1)[a], E(2)[b], . . . ) of resource introduction plans for all faults that are likely to occur concurrently with the occurring fault (step S94).

For example, when E(1)[1], E(1)[2], E(2)[1], E(2)[2], E(3)[1], E(3)[2] are present as a resource introduction plan for other faults occurring concurrently with the occurring fault, and a fault corresponding to E(2) does not occur concurrently with a fault corresponding to E(3), the following sixteen combinations are calculated in step S94. The order of the respective resource introduction plans indicates an execution order.E(1)[1] , E(2)[1]E(1)[1], E(2)[2]E(1)[1], E(3)[1]E(1)[1], E(3)[2]E(1)[2], E(2)[1]E(1)[2], E(2)[2]E(1)[2], E(3)[1]E(1)[2], E(3)[2]E(2)[1], E(1)[1]E(2)[2], E(1)[1]E(3)[1], E(1)[1]E(3)[2], E(1)[1]E(2)[1], E(1)[2]E(2)[2], E(1)[2]E(3)[1], E(1)[2]E(3)[2], E(1)[2]

Subsequently, the processor53calculates the number (N) of faults solvable using usable drives in all calculated combinations (step S95).

Subsequently, the processor53set the largest value among the calculated N as M of E(0)[x] (step S96). Here, M means the largest number of solvable faults that are likely to occur simultaneously. M is an example of a state in which other abnormalities that are likely to occur concurrently with the abnormality can be coped with.

In this case, it is assumed that E(1)[1] uses eight SSDs, E(2)[1] uses four SSDs, E(3)[1] uses four SSDs, and the surplus resource includes eight SSDs.

In this case, in step S95, N=1 is calculated for E(1)[1], E(2)[1], and E(3)[1], N=1 is calculated for E(1)[1], E(3)[1], and E(2)[1], N=1 is calculated for E(2)[1], E(1)[1], and E(3)[1], N=2 is calculated for E(2)[1], E(3)[1], and E(1)[1], N=1 is calculated for E(3)[1], E(1)[1], and E(2)[1], and N=2 is calculated for E(3)[1], E(2)[1], and E(1)[1]. Moreover, M of E(0)[x] is calculated as 2 in step S96.

In loop C, when the processes of steps S93to S96end using variable x as x_max, the processor53exits loop C.

Subsequently, the processor53extracts (determines) the resource introduction plan E(0)[x] which provides the largest M among E(0)[1] to [x_max] as a resource introduction plan to be executed (step S97) and the process ends.

According to the resource introduction plan selection process, it is possible to determine a resource introduction plan that leaves resources capable of coping with a larger number of faults that are likely to occur concurrently with an occurring fault appropriately, as a resource introduction plan used to eliminate an occurring fault. In this way, it is possible to increase the possibility to cope with a fault occurring newly when resources were introduced to eliminate an occurring fault.

FIG. 27is a flowchart of a resource allocation monitoring process according to an embodiment.

The resource allocation monitoring process is performed when the processor53executes the resource allocation monitoring process program64. The resource allocation monitoring process starts being executed after the power of the storage apparatus30is turned on, for example, and is executed continuously.

First, the processor53determines whether there is a resource that is not reclaimed by referring to the resource introduction history table93(step S101). Here, whether a resource is reclaimed can be determined on the basis of whether a row in which a value is not set to the reclamation time93cis present in the resource introduction history table93.

As a result, when it is determined that there is not a resource that is not reclaimed (step S101: NO), the processor53proceeds to step S103.

On the other hand, when it is determined that there is a resource that is not reclaimed (step S101: YES), the processor53determines whether the resource that is not reclaimed is a resource for a drive fault (step S102).

As a result, when the resource is not a resource for a drive fault (step S102: NO), the processor53executes a resource reclamation process (step S103: seeFIG. 28) for reclaiming the corresponding resource and the flow proceeds to step S105.

On the other hand, when the resource is a resource for a drive fault (step S102: YES), the processor53sets the present time to the reclamation time93cof the row corresponding to the fault location of the resource introduction history table93when a drive in the fault location is NORMAL (that is, the state84eof the row corresponding to the drive in the fault location of the drive management table84is NORMAL) and does not perform anything (step S104) when the row state84eis not NORMAL, and the flow proceeds to step S105.

In step S105, the processor53stops the process until the next monitoring period and the flow proceeds to step S101.

FIG. 28is a flowchart of a resource reclamation process according to an embodiment.

The resource reclamation process is performed when the processor53executes the resource reclamation process program69. The resource reclamation process is a process executed in step S103of the resource allocation monitoring process inFIG. 27.

First, the processor53executes the process (steps S111to S113) of loop D. In loop D, the value of variable v is increased by 1 from 1 to the number of volumes introduced in a target resource introduction plan of reclaiming resources, and the processes of steps S111to S113are executed using the values of variables v.

In loop D, first, the processor53determines whether the usage rate of a pool is smaller than the threshold [warning] ((physical capacity of pool×usage rate)÷(physical capacity-capacity of v-th volume (v-th physical volume))<threshold [warning]) even if resources are reclaimed and the operation rate of the tier of the pool is smaller than the threshold [warning] ((average value of drive operation rate of tier to which v-th volume belongs×number of drives of tier to which v-th volume belongs)÷(number of drives of tier to which v-th volume belongs−number of drives of v-th volume)<threshold [warning]) even if resources are reclaimed (step S111).

As a result, when the usage rate of the pool is smaller than the threshold [warning] even if resources are reclaimed and the operation rate of the tier of the pool is smaller than the threshold [warning] even if resources are reclaimed (step S111: YES), the processor53executes the process (steps S112and S113) of loop E. When the usage rate of the pool is smaller than the threshold [warning] even if resources are reclaimed and the operation rate of the tier of the pool is not smaller than the threshold [warning] even if resources are reclaimed (step S111: NO), the processor53exits the process of loop E.

In loop E, the value of variable n is increased by 1 from 1 to the number of faults occurring concurrently and the processes of steps S112and S113are executed using the values of variables n.

In loop E, the processor53sets values used for calculating E(v,n) (step S112). Here, E(v,n) is the resource introduction plan list table96corresponding to the n-th fault occurring concurrently with a fault (occurring fault) occurring presently when it was possible to reclaim a physical volume corresponding to the variable v.

As values used for calculating E(v,n), an operation rate or a use capacity is set to a threshold [warning] corresponding thereto, a change rate [short-term] is set to a largest change rate [short-term] measured in the past, and a grace time is set to a value calculated on the basis of the past largest change rate [short-term] and the threshold [warning].

Subsequently, the processor53executes a resource introduction plan calculation process (seeFIG. 24) using the values set in step S112(step S113). According to the process of step S113, the resource introduction plan list table96including a resource introduction plan applied when a fault that are likely to occur concurrently with an occurring fault when a physical volume corresponding to the variable v is reclaimed is created.

In loop E, when the processes of steps S112and S113end using the variable n as the number of faults occurring concurrently, the processor53exits the process of loop E.

In loop D, when the processes of steps S111to S113end using the variable v as the number of introduced volumes, the processor53exits the process of loop D.

After exiting the process of loop D, the processor53executes the process (steps S114to S116) of loop F. In loop F, the value of variable v is increased by 1 from 1 to the number of volumes introduced in the target resource introduction plan of reclaiming resources, and the processes of steps S114to S116are executed using the values of variables v.

In loop F, the processor53calculates a combination (a combination of E(v,1)[a], E(v,2)[b], . . . ) of resource introduction plans for all faults that are likely to occur concurrently with an occurring fault (step S114). Here, E(v,n)[a] represents the a-th row in the resource introduction plan list table96corresponding to the occurring fault when the physical volume corresponding to the variable v is reclaimed.

Subsequently, the processor53calculates the number (N) of faults solvable using a usable drive in all of the calculated combinations (step S115).

Subsequently, the processor53sets the largest value among the calculated numbers N as M when the physical volume corresponding to the variable v is removed (step S116). Here, M means the largest number of faults among the faults that are likely to occur concurrently. The value M is an example of a state in which faults that are likely to occur concurrently can be coped with.

In loop F, when the processes of steps S114to S116end using the number of introduced volumes as the variable v, the processor53exits the process of loop F.

Subsequently, the processor53selects the variable v that provides the largest M among variables 1 to v_max (the largest value of the number of introduced volumes) (step S117), updates the related tables among the pool management table81, the RAID group management table82, the volume management table83, and the drive management table84to the state when the physical volume corresponding to the selected variable v was reclaimed (step S118), reclaims the physical volume corresponding to the selected variable v (step S119), and sets the present time to the reclamation time93cof the row corresponding to the resource introduction plan that reclaimed resources in the resource introduction history table93(step S120), and the process ends.

According to this resource reclamation process, it is possible to preferentially reclaim a resource in which the number of solvable faults is large when resources are reclaimed.

FIG. 29is a flowchart of a resource management process according to an embodiment.

The resource management process is performed when the processor53executes the resource management process program66. The resource management process starts being executed after the power of the storage apparatus30is turned on, for example, and is executed continuously.

First, the processor53executes the process (steps S121and S122) of loop G. In loop G, the value of variable n is increased by 1 from 1 to the largest number (n_max) of faults that are likely to occur concurrently, and the processes of steps S121and S122are executed using the values of variables n.

In loop G, first, the processor53sets values used for calculating E(n) (step S121). Here, E(n) is the resource introduction plan list table96corresponding to each fault.

As values used for calculating E(n), an operation rate or a use capacity is set to a threshold [warning] corresponding thereto, a change rate [short-term] is set to a largest change rate [short-term] measured in the past, and a grace time is set to a value calculated on the basis of the past largest change rate [short-term] and the threshold [warning].

Subsequently, the processor53executes the resource introduction plan calculation process (seeFIG. 24) using the values set in step S121(step S122). According to the process of step S122, the resource introduction plan list table96for faults that are likely to occur is created.

When the processes of steps S121and S122are performed using the variable n as the largest number of faults that are likely to occur, the processor53exits the process of loop G.

Subsequently, the processor53calculates a combination (a combination of E(1)[a], E(2)[b], . . . ) of the resource introduction plans for all faults that are likely to occur (step S123).

Subsequently, the processor53calculates the number (N) of faults solvable using a usable drive in all of the calculated combinations (step S124). Subsequently, the processor53sets the largest value among the calculated numbers N as M which is the largest number of solvable faults among the faults that are likely to occur (step S125). The value M is an example of a state in which faults that are likely to occur concurrently can be coped with.

Subsequently, the processor53determines whether M is equal to n_max (step S126).

As a result, when M is not equal to n_max (step S126: NO), it means that the surplus resource is deficient for coping with all faults that are likely to occur concurrently. Therefore, the processor53calculates the smallest number among the number of drives deficient when realizing the combination in which M is equal to n_max (step S127) and causes for example, the output device56to display a message of suggesting addin deficient number and types of drives (step S128). After that, the flow proceeds to step S131. In this way, it is possible to appropriately suggest adding resources necessary for coping with all faults occurring concurrently.

On the other hand, when M is equal to n_max (step S126: YES), it means that it is possible to cope with all faults that are likely to occur concurrently. Therefore, the processor53selects a combination in which the smallest number of drives are used for realizing a combination in which M is equal to n_max (step S129) and causes the output device56, for example, to display a message of suggesting reducing the number and types of drives that are not used when there are drives that are not used in the selected combination (step S130). After that, the flow proceeds to step S131. In this way, it is possible to appropriately suggest reducing resources that are not necessary for coping with all faults occurring concurrently.

In step S131, the processor53stops the processing until the next monitoring period and the flow proceeds to loop G.

As described above, according to the resource management process, it is possible to provide a suggestion so that the number of surplus resources for coping with faults occurring concurrently is adjusted to an appropriate number. Therefore, it is possible to cope with abnormalities appropriately using the minimum necessary surplus resources.

The present invention is not limited to the above-described embodiment but can be changed appropriately without departing from the spirit of the present invention.

For example, in the above-described embodiment, although records corresponding to a low speed are stored in the page migration performance list table94, the present invention is not limited thereto and, for example, rows corresponding to a plurality of speeds (medium speed, high speed, and the like) maybe stored. In this case, the fields of load corresponding to each speed may be provided in the row of the page migration performance influence list table95so that the values of load corresponding to each speed are stored. The load corresponding to a speed when pages are migrated may be specified using this table.

In the above-described embodiment, although the storage controller50in the storage apparatus30is illustrated as an example of a resource management apparatus, the present invention is not limited thereto, and, for example, another server other than the storage apparatus30may execute functions necessary for managing resources of the storage controller50.