System and method for monitoring computer system resource performance

According to the present invention, policies are prepared for a plurality of resources residing in a computer system comprising a storage system for copying data from a copy source volume to a copy target volume, and an evaluation is carried out for an evaluation-target resource of the plurality of resources for determining whether or not to execute a predefined action based on the policy of this evaluation-target resource. A policy corresponding to a resource related to copying of the plurality of resources is determined based on a time period related to the copying.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application relates to and claims the benefit of priority from Japanese Patent Application No. 2007-141772 filed on May 29, 2007, the entire disclosure of which is incorporated herein by reference.

BACKGROUND

The present invention generally relates to monitoring the performance of a resource, which resides in a computer system.

A storage device is one target of performance monitoring. Technology related to monitoring the performance of a storage device using a threshold is known (For example, U.S. Pat. No. 6,032,224 and U.S. Pat. No. 7,120,832).

There is technology for making the one of a plurality of logical volumes, which resides in a storage system, a copy source, making the other of this plurality of logical volumes a copy target, and copying data stored in the copy source volume to the copy target volume. For a copy to be performed, input/output, which is different from input/output to a logical volume in accordance with an I/O command sent from a host computer, is carried out. Thus, a difference in the performance actually capable of being manifested can occur between a resource, which is involved in the copying of data, and a resource, which is not involved in this copying, even though the capabilities of these resources are substantially the same.

SUMMARY

Therefore, an object of the present invention is to properly monitor the performance of resources related to data copying.

Further objects of the present invention should become clear from the following descriptions.

Respective policies are prepared for a plurality of resources, which reside in a computer system comprising a storage system for copying data from a copy source volume to a copy target volume, and an evaluation which is to determine whether or not to execute a predefined action is carried out on an evaluation-target resource from among the plurality of resources based on the policy of this evaluation-target resource. A policy corresponding to a copy-related resource of this plurality of resources is determined based on the time period related to this copying.

DESCRIPTION OF THE PREFERRED EMBODIMENTS

In one embodiment, a management device, which monitors the performance of a plurality of resources residing in a computer system comprising a storage system, which copies data from a copy source volume to a copy target volume, comprises a policy determination unit; and a resource evaluation unit. The policy determination unit determines, based on the time period related to this copy, a policy corresponding to a resource involved in copying in policy information expressing a plurality of policies corresponding to a plurality of resources. The resource evaluation unit determines whether or not to execute a predefined action based on a policy of a plurality of policies, which corresponds to an evaluation-target resource of a plurality of resources, using a performance value of this evaluation-target resource.

The policy determination unit, for example, corresponds to an alert generator320, which will be explained hereinbelow, and the resource evaluation unit, for example, corresponds to an alert execution unit310, which will be described hereinbelow.

A “copy”, for example, comprises both a replication and a migration. In other words, copy-target data can remain in the copy source volume or not.

“Resource”, for example, designates physical and logical components of a computer system (SAN (Storage Area Network) in the examples of the embodiments explained below). More specifically, for example, a resource is a piece of hardware constituting a computer system (for example, a storage subsystem, SAN switch, job server, and so forth) and the physical as well as logical components thereof (for example, a port, CPU, cache memory, array group, logical volume, and so forth), a program executed on the hardware (for example, an operating system, database management system, email server, and so forth), and the logical components thereof (a file, table, and so forth).

In one embodiment, a resource involved in copying is a copy target volume. The policy determination unit can reference tier management information expressing the relationship between a plurality of tiers and a plurality of resources of a storage system, and can determine a policy corresponding to a copy target volume subsequent to copying having ended, based on the performance value and/or policy of a resource belonging to a first tier to which a copy source volume of a plurality of logical volumes belongs, and the performance value and/or policy of a resource belonging to a second tier to which a copy target volume of a plurality of logical volumes belongs.

A “tier”, for example, is a level or layer in a hierarchical structure constructed logically in the storage system. Assignment to a tier can be carried out in prescribed units, for example, as a logical volume unit, an array group unit, and a storage subsystem unit. When an element other than a logical volume belongs to a tier, all the logical volumes in this element belong to this tier. More specifically, for example, when an array group belongs to a tier, all the logical volumes in this array group belong to this tier, and when a storage subsystem belongs to a tier, all the logical volumes in this storage subsystem belong to this tier. Furthermore, a “storage subsystem” constitutes a storage system, and is an apparatus, which has a logical volume, and a controller for controlling access to this logical volume. When there is one storage subsystem, this storage subsystem becomes the storage system.

In one embodiment, a policy is a threshold, which is compared against a performance value of a resource. The policy determination unit determines the threshold corresponding to the copy target volume based on the performance value of a resource belonging to a first tier and the performance value of a resource belonging to a second tier.

In one embodiment, a policy is an interval of time for executing an evaluation, which is a determination as to whether or not to execute an action based on the performance value of a resource. The policy determination unit determines an evaluation time interval corresponding to the copy target volume based on both the evaluation time interval of a resource belonging to the first tier and the evaluation time interval of a resource belonging to the second tier, or on the evaluation time interval of a resource belonging to the second tier.

In one embodiment, the management device further comprises a history manager. The history manager adds information expressing the corresponding relationship between an identifier of the copy source volume and a policy corresponding to this copy source volume to history information expressing the history of the corresponding relationship. When either the copy target volume or the second tier to which this copy target volume belongs coincides with either the copy source volume specified from the history information or the tier to which this copy source volume belongs, the policy determination unit can determine that either the policy corresponding to this copy source volume, or the policy corresponding to another logical volume belonging to this tier is the policy of the copy target volume.

In one embodiment, the policy determination unit references path management information expressing which resource belongs to which path, and specifies resources that directly and indirectly belong to the path of the copy source volume, and resources that directly and indirectly belong to the path of the copy target volume as the resources involved in a copy. The policy determination unit determines a certain-period policy, which corresponds to a certain period from immediately subsequent to the end of copying until a fixed time has elapsed, for the specified resources. During this certain period, the resource evaluation unit uses the performance value of this evaluation-target resource to determine whether or not to execute an action based on the determined certain-period policy mentioned above.

In one embodiment, the certain-period policy is deemed a stricter policy that the policy for a period subsequent to the certain period. More specifically, for example, when the policy is either a time interval for executing an evaluation, which uses the performance value of a resource to determine whether or not to execute an action, or the number of performance values acquired in an evaluation time interval, the evaluation time interval for the certain period is shorter than the evaluation time interval for a period subsequent to the certain period, and the above-mentioned number of performance values for the certain period is larger than the number of performance values acquired subsequent to the certain period.

In one embodiment, the management device further comprises an action execution controller for validating the determined certain-period policy subsequent to the end of a copy. If the certain-period policy is not valid, the resource evaluation unit does not execute a determination based on this certain-period policy, and if this certain-period policy is valid, the resource evaluation unit executes a determination based on this certain-period policy.

In one embodiment, the policy determination unit references path management information expressing which resource belongs to which path, and specifies resource that directly and indirectly belong to the path over which data passes during copying from a copy source volume to a copy target volume as the resources related to the copying, and determines a copy-period policy, which corresponds to an execution period of the copying, for the specified resources. During the copy execution period, the resource evaluation unit, using the performance value of this evaluation-target resource, determines whether or not to execute an action based on the determined copy-period policy.

In one embodiment, the policy is either a threshold which is compared against the performance value of a resource, an interval of time for executing an evaluation, which uses the performance value of a resource to determine whether or not to execute an action, or the number of performance values acquired during an evaluation time interval. The policy determination unit determines that the copy-period threshold, evaluation time interval, or number of performance values corresponding to the specified resource is either a pre-defined value, or a value obtained by correcting this value.

In one embodiment, if it is determined during the copy execution period to execute an action for an evaluation-target resource, the resource evaluation unit indicates to the storage system to suspend or retard copying as the action execution.

In one embodiment, the management device further comprises an action execution controller for validating a determined copy-period policy during a copy period. If the copy-period policy is not valid, the resource evaluation unit does not execute a determination based on this copy-period policy, and if this copy-period policy is valid, the resource evaluation unit executes a determination based on this copy-period policy.

Two or more of the above-described plurality of embodiments can be combined together. Further, the respective units mentioned above (for example, the policy determination unit, the resource evaluation unit, the action execution controller, and the history manager) can either replace or be used in addition to the management device, and can reside in a host computer or the storage system. Further, the respective units mentioned above can be constructed using hardware, computer programs or a combination thereof (for example, a portion can be realized using a computer program, and the remainder can be realized via hardware). A computer program is read in and executed by a prescribed processor. Further, when a computer program is read into a processor and information processing is carried out, a storage area, which resides in a memory or other such hardware resource, can be utilized as needed. Also, a computer program can be installed in a computer from a CD-ROM or other such recording medium, or downloaded to a computer via a communication network.

An embodiment of the present invention, in which migration is employed as a copy, will be explained in detail hereinbelow.

A “metric value” is the performance value of a performance-monitoring-target resource, which corresponds to a metric (a performance item related to a resource). As metric values, for example, in the case of a storage system there are CPU utilization rate, cache memory utilization capacity, logical volume IOPS (number of I/O commands received per second), and I/O processing time (length of time required to process one I/O command). Further, for example, as metric values for a SAN switch, there are the transmission rate and reception rate for each port.

An “alert definition” is information related to an alert, and, more specifically, is information expressing an alert condition and an action method. An “alert” is a function for automatically notifying a user (for example, the storage system administrator or user) of a phenomenon, such as when the metric value of a resource is in a certain state. An alert condition, for example, is defined by a metric value threshold and a metric value evaluation interval. An alert definition can be configured for the various metrics of the respective resources.

An “action method” is a method for notifying how an action is to be executed, and more specifically, for example, for notifying of the occurrence of a phenomenon in which a metric value is not less than (or not more than) a threshold. As examples of specific notification methods, there are e-mail transmission, command execution, and performance report preparation.

A “migration” is the migration of data between logical volumes, and in this embodiment, more particularly, the migration of data between tiers, and more specifically, refers to the migration of data from a migration source volume of the first tier to a migration target volume of the second tier, which is different from the first tier.

A “trial period” signifies a period from the time when a migration of data from a migration source volume to a migration target volume ends until a fixed time has elapsed.

A “migration period” signifies the period from the migration start time to migration end time.

“Normal processing” signifies a time in a period other than a trial period or a migration period.

In this embodiment, a device is provided based on the following (First Consideration) through (Third Consideration).

(First Consideration) When data inside a first logical volume belonging to a first tier undergoes a migration to a second logical volume belonging to a second tier, it is supposed that there is an alert condition for the first logical volume. A method for passing the alert condition of the first logical volume on to the second logical volume so that this alert condition is utilized for the second logical volume subsequent to migration can be considered, but this method is deemed inappropriate. This is because there are differences in the characteristics of a tier (for example, characteristics from the standpoint of performance) before and after a migration. Thus, a user must define a new alert condition for the second logical volume taking into account the difference in tier characteristics, but if humans are relied on to do this job, there could be a configuration error or configuration omission.

(Second Consideration) Since the access target from the host computer (in this embodiment, a job server) of the storage system switches from the first logical volume to the second logical volume when a migration from the first logical volume to the second logical volume ends, a load resulting from I/O to the second logical volume (hereinafter, I/O load) occurs. However, the increase in I/O load is not limited to the second logical volume, but rather load is likely to increase for all the resources belonging to the I/O path (the path over which an I/O command flows) from a first application program, which is the issuing source of the I/O command specifying the second logical volume, to the second logical volume. Consequently, the resources belonging to another I/O path, which shares the resources belonging to this I/O path, are also likely to be affected from the standpoint of performance. Furthermore, switching the access target of the host computer to the second logical volume prevents the occurrence of I/O load in the first logical volume, and accordingly also reduces I/O load placed on resources belonging to the I/O path from the first application to the first logical volume, but is likely to increase the I/O load placed on the resources belonging to another I/O path, which shares resources belonging to the I/O path. This is because, for example, in a situation in which the metric value for a certain resource, which shares two or more I/O paths, reaches the upper limit, reducing the I/O load on one of the I/O paths of these two or more I/O paths increases the I/O load on the other I/O path. Thus, the I/O load distribution in a computer system changes subsequent to a migration.

(Third Consideration) A migration is realized by reading data from a first logical volume and writing this data to a second logical volume. Thus, during the migration period, the I/O load on the first logical volume, the I/O load on the second logical volume, and the I/O load on the resources belonging to the migration I/O path (path over which data flows due to migration) from the first logical volume to the second logical volume respectively increase temporarily. Consequently, resources belonging to another I/O path, which shares resources belonging to the migration I/O path, are affected performance-wise.

This embodiment will be explained in detail hereinbelow by referring to the figures. Furthermore, in the following explanation, it is supposed that, when the term computer program is the subject, the processing is actually being carried out by the CPU, which executes the computer program.

FIG. 1shows an example of the overall constitution of a system related to an embodiment of the present invention.

A hierarchy management client101, hierarchy management server107, a plurality (or one) of job clients102, a plurality (or one) of job servers106, a plurality (or one) of SAN switches122, a multi-tiered storage system303, a switch monitoring agent server116, a storage monitoring agent server118, a performance monitoring client306and a performance monitoring server121are connected to a LAN (Local Area Network)105. The plurality of job servers106and the multi-tiered storage system303are connected to the plurality of SAN switches122. A SAN is constituted as a computer system by a job server106, a SAN switch122and the multi-tiered storage system303. The metric value of a resource residing in this SAN is acquired by the performance monitoring server121by way of various agent programs, which will be explained hereinbelow.

A job client102is a device for providing a job system user interface function, and communicates with an application109or the like inside a job server106via the LAN105. For example, a job client102can be a personal computer, workstation, thin client terminal or the like. A job client102, hierarchy management client101and performance monitoring client306, for example, are a personal computer, workstation, mainframe computer, and thin client terminal.

A job server106is a server machine for executing a job. A job server106, for example, comprises a NIC (Network Interface Card)1064, a CPU (Central Processing Unit)1063, storage unit1061, and HBA (Host Bus Adapter)1065. The HBA1065has ports113, which are connected to the SAN switches122. The storage unit1061, for example, is constituted by a memory and/or another type of storage device (this also holds true for the other storage units1071,1213, and so forth, which will be described below). As computer programs executed by the CPU1063, the storage unit1061stores an application109, which is an application program for executing a job (abbreviated “AP” in the figure), an operating system (OS)111, an application performance monitoring agent110, which is an agent program for monitoring the performance of the application109, and a host performance monitoring agent112, which is an agent program for monitoring the performance of a job host106. The application109corresponds to a processing request from a job client102, and carries out data input/output to the multi-tiered storage system303as needed (More specifically, the application109transmits an I/O command specifying a logical volume136). Access from the application109to the multi-tiered storage system303is carried out via the OS111, HBA port113, host-side port127of a SAN switch122, a SAN switch122, storage-side port129of the SAN switch122, and port132of the multi-tiered storage system303.

As hardware for hierarchically managing a plurality of logical volumes136inside the multi-tiered storage system303, there are a hierarchy management client101and a hierarchy management server107, and as the software (computer program) therefore, there is hierarchy management software307. The hierarchy management server107, for example, comprises a NIC1073, a CPU1074and a storage unit1071, and this storage unit1071stores the hierarchy management software307, which is executed by the CPU1074. The hierarchy management client101is a device for providing a user interface function for the hierarchy management software307, and communicates with the hierarchy management software307via the LAN105. The hierarchy management software307manages information showing the corresponding relationship between a logical volume136and the tier to which this logical volume136belongs, and provides a task management function related to the migration of data between tiers.

As hardware constituting a system for monitoring the performance of a resource, there is the performance monitoring client306, the performance monitoring server121, the switch monitoring agent server116and the storage monitoring agent server118, and as the software constituting this system, there is SAN performance monitoring software305, an application performance monitoring agent110, the host performance monitoring agent112, a storage performance monitoring agent304, and a SAN switch performance monitoring agent117. The performance monitoring server121, for example, comprises a CPU1211, NIC1212, and a storage unit1213, and the storage unit1213, for example, stores the SAN performance monitoring software305, which is executed by the CPU1211. The switch monitoring agent server116, for example, comprises a CPU1161, NIC1162and storage unit1163, and the storage unit1163stores the SAN switch performance monitoring agent117, which is executed by the CPU1161. The storage monitoring agent server118, for example, comprises a CPU1184, NIC1182, HBA1183, and storage unit1181, and the storage unit1181, for example, stores the storage performance monitoring agent304, which is executed by the CPU1184.

The performance monitoring client306is a device for providing a user interface function for the SAN performance monitoring software305, and communicates with the SAN performance monitoring software305of the performance monitoring server121via the LAN105. The SAN performance monitoring software305has functions for acquiring and evaluating metric values of resources constituting the SAN. The SAN performance monitoring software305respectively utilizes dedicated performance monitoring agent programs to acquire metric values from the various resources (hardware and software) that constitute the SAN. A variety of methods for configuring and arranging the agent programs are possible, andFIG. 1gives one example of these. That is, the application performance monitoring agent110is a computer program for acquiring a metric value related to the application109. The host performance monitoring agent112acquires metric values related to the job server106, OS111, and ports113of the HBA1065. The storage performance monitoring agent304acquires metric values related to the various types of resources (for example, the logical volumes136and ports132) of the multi-tiered storage system303by way of the ports1185of the HBA1183and the ports128of the SAN switches122. The SAN switch performance monitoring agent117acquires metric values related to the various resources (for example, the ports127,128and129) of the SAN switches122. At least two from among the SAN performance monitoring software305, storage performance monitoring agent304, SAN switch performance monitoring agent117, application performance monitoring agent110, host performance monitoring agent112, and hierarchy management software307can be executed by a different server, or by a single server. In other words, at least two from among the hierarchy management server107, agent servers116and118, and performance monitoring server121can be treated as a single server.

The multi-tiered storage system303has a controller3031, and a plurality of storage devices135.

The controller3031is a device for receiving an I/O command from the job server106, and executing I/O relative to a logical volume specified from this I/O command. The controller3031, for example, can be a circuit board comprising a port132, CPU, and cache memory. With this CPU, for example, a migration execution unit308is executed as a computer program. The migration execution unit308executes a migration of data from a migration source volume136of the plurality of logical volumes136to a migration target volume136of the plurality of logical volumes136.

A storage device135with a different attribute coexists with the plurality of storage devices135. The attribute can be a major attribute, like a hard disk drive, DVD (Digital Versatile Disk) drive, or flash memory drive, or a minor attribute, like reliability, performance and/or price. That is, a storage device, which, for example, has a different major attribute and/or minor attribute, coexists with the plurality of storage devices135. An array group (may also be called a RAID (Redundant Array of Independent (or Inexpensive) Disks) group) can be constituted from not less than two storage devices135, and a logical volume136can be formed based on the storage space of the array group. Making the attributes of the not less than two storage devices135, which constitute the array group, the same (for example, substantially the same) enables the attributes of the not less than two logical volumes136formed on the basis of this array group to be made the same as well. Which logical volume is assigned to which tier of a plurality of tiers can be determined on the basis of this attribute. For example, a logical volume formed on an array group constituted by high reliability storage devices135can be assigned to a high-level tier, and a logical volume formed on an array group constituted by low reliability storage devices135can be assigned to a low-level tier.

A storage system, which is subjected to another mode of hierarchical management, can be used instead of the multi-tiered storage system303. For example, instead of the multi-tiered storage system303, the storage system illustrated inFIG. 2can be employed. This storage system is constituted by a virtualization device201, and a plurality of storage subsystems208with different attributes. One storage subsystem208comprises a plurality of storage devices, and this plurality of storage devices has the same attribute. In accordance with the virtualization function of the virtualization device201, logical volumes211, which reside in the plurality of storage subsystems208, are provided to the job server106as virtual volumes205of the virtualization device201. When the job server106accesses a virtual volume205, the access is carried out to the logical volume211corresponding to this virtual volume205. Different logical volumes211in different storage subsystems208are assigned to the respective tiers. For example, all the logical volumes211inside a first storage subsystem belong to the first tier, and all the logical volumes211inside a second storage subsystem belong to the second tier.

FIG. 3shows an example of the configuration of the SAN performance monitoring software305.

The SAN performance monitoring software305, as a program module, for example, has an agent information collector312, I/O path extractor318, hierarchical management information collector324, command execution controller309, alert execution controller322, alert executor310, alert generator320, SNMP traps executor311, e-mail transmission unit314, and user definition unit317. Further, the SAN performance monitoring software305, as information comprising information elements to be referenced and/or updated (added, changed or deleted), for example, has metric value information313, resource association information315, I/O path information319, migration information325, tier information326, alert history information327, migration I/O path information323, alert generation control information321, and alert information316.

The “other SAN configuration resource301” shown inFIG. 3is a resource (hardware or software) other than a resource related to the multi-tiered storage system303in the SAN. More specifically, the other SAN configuration resource301, for example, is a job server106related resource (for example, an HBA1065port113, application109, OS111) and SAN switch122related resource (for example, ports127,128, and129).

Further, the “other performance monitoring agent302” shown inFIG. 3is software for acquiring configuration information and a metric value from the other SAN configuration resource301. More specifically, the other performance monitoring software302, for example, is an application performance monitoring agent110, host performance monitoring agent112, or SAN switch performance monitoring agent117.

The monitoring of a metric value of a resource in the SAN is carried out as follows.

The other performance monitoring agent302and storage performance monitoring agent304are run using a prescribed method (for example, regularly run by a timer in accordance with a scheduling configuration, or run via a request from the SAN performance monitoring software305), and acquire metric values from the monitoring-target resources for which they are responsible. The agent information collector312of the SAN performance monitoring software305is similarly run using a prescribed method (for example, regularly run in accordance with a scheduling configuration), acquires metric values from the respective performance monitoring agents302and304, and registers same in the metric value information313.

The alert execution unit310for the SAN performance monitoring software305monitors the metric value information313, and if a metric value in the metric value information313matches a specific condition, executes a specific action. As the specific action, for example, there is an action for notifying a user via a prescribed method that a phenomenon has occurred in which a metric value matches a specific condition. As the notification method, for example, there are e-mail, SNMP traps, command execution, and so forth, and these respective methods are processed by the e-mail transmission unit314, SNMP traps executor311, and command execution controller309. An alert definition, which is information expressing the definitions of an alert condition and an action method, is recorded in the alert information316. As an alert definition recorded in the alert information316, for example, there is a definition, which is inputted via the user definition unit317from a performance monitoring client306operated by a user, and a definition automatically generated by the alert generator320.

The hierarchy management software307manages an information element recorded in the migration information325, and an information element recorded in the tier information326. The hierarchy management information collector324collects an information element recorded in the migration information325, and an information element recorded in the tier information326from the hierarchy management software307, and records the collected information elements in the migration information325and the tier information326.

The alert execution controller322controls the validation and nullification of respective alert definitions recorded in the alert information316.

The alert generator320automatically generates an alert definition corresponding to a migration target volume. Further, the alert generator320automatically generates, as a trial period alert definition, an alert definition comprising an alert condition, which is stricter than an alert condition used under normal processing (in other words, an alert condition, which strengthens monitoring). Furthermore, the alert generator320also automatically generates an alert definition for a migration period. The automatic generation of these alert definitions will be explained in detail hereinbelow.

The other performance monitoring agent302and storage performance monitoring agent304collect resource association information elements (for example, information elements expressing which port is correspondent to which port, or information elements expressing which port is correspondent to which logical volume), which are recorded in the resource association information315held by the job server106, SAN switches122and multi-tiered storage system303. The agent information collector312acquires the resource association information elements, which the other performance monitoring agent302and storage performance monitoring agent304collected, and records the acquired resource association information elements in the resource association information315. The I/O path extractor318creates I/O path information319based on the resource association information315, and stores same in the storage unit1213inside the performance monitoring server121.

FIG. 4shows an example of the configuration of an I/O path in a computer system. Furthermore, inFIG. 4, the same type resources are distinguishably explained by appending a letter of the alphabet, such as A, B, C, . . . to the resource name like a serial number.

In each job server106, a file408, which the application109accesses, is allocated to a logical device413. The logical device413corresponds to a logical volume136inside the multi-tiered storage system303. The file408is the unit via which the OS111provides data input-output services. The logical device413is managed by the OS as an area for storing a file408in an external storage device (in this embodiment, a logical volume136inside the multi-tiered storage system303).

For example, in job server A, application A accesses file A and file B. File A is allocated to logical device A, and logical device A corresponds to logical volume A. File B is allocated to logical device B, and logical device B corresponds to logical volume B. Applications A and B are resources targeted for information acquisition by the application performance monitoring agent110. Files A through C, logical devices A and B, and ports A and B are resources targeted for information acquisition by the host performance monitoring agent112.

InFIG. 4, the solid lines connecting the resources signify performance dependence in that when the I/O load on the one resource increases, the I/O load on the other resource also increases. More specifically, for example, the solids lines connecting application A with files A and B represent a relationship in which application A issues an I/O command to file A as well as file B. Further, for example, the solid line connecting file A to logical device A represents a relationship in which the I/O load relative to file A becomes I/O (a write or read) of logical device A.

Further, inFIG. 4, the five dotted lines471,472,473,474and475, which have resources as either end points or relay points, respectively show I/O paths.

It is supposed that the storage performance monitoring agent304for acquiring metric values from resources in the multi-tiered storage system303is operating. The resources that this agent304targets for information acquisition are ports U through X, logical volumes A through D, array groups A through C, and storage devices A through F. In the example shown in the figure, logical volumes A and B belong to tier A, and these logical volumes A and B are formed on the basis of array group A, which is constituted by storage devices A and B. Further, logical volumes C through F belong to tier B, logical volumes C and E are formed on the basis of array group B, which is constituted by storage devices C and D, and logical volumes D and F are formed on the basis of array group C, which is constituted by storage devices E and F. Because logical device413inside job server106is allocated to logical volume136, logical volume136is allocated to array group462, and array group462is allocated to storage device135, performance dependence exists among these resources. Further, once the pairing of logical device413and logical volume136is determined, the I/O path for data exchanged therebetween is determined as being from port113of HBA1065to port132of multi-tiered storage system303via ports127and129of the SAN switch. The I/O load placed on the logical device413inside job server106constitutes the communication I/O load on the respective ports belonging to the I/O path, and thus there is performance dependence between the paired logical device413and logical volume136, and among the respective ports of the I/O path. In the example ofFIG. 4, file A is allocated to logical device A, logical device A is allocated to logical volume A, logical volume A is allocated to array group A, array group A is allocated to storage devices A and B, and the pairing of logical device A and logical volume A corresponds to port A, port E, port I, port M, port Q, and port U. Thus, the nodes of I/O path471are application A, file A, logical device A, port A, port E, port I, port M, port Q, port U, logical volume A and array group A, and these nodes (that is, resources) are interlinked. According to I/O path471, the I/O load of file A of application A impacts on storage devices A and B via I/O path471, which is constituted from file A by logical device A, port A, port E, port I, port M, port Q, port U, logical volume A and array group A.

FIG. 5shows the status of the computer system shown inFIG. 4subsequent to the end of a data migration from logical volume B to logical volume E.

When a migration is carried out from logical volume B to logical volume E, the internal path inside the multi-tiered storage system303(for example, port132connection target logical volume136) is switched. More specifically, for example, inFIG. 4, the logical volume linked to port V was logical volume B, but due to the migration, since the data inside logical volume B resides in logical volume E, the connection target of port V is switched to logical volume E from logical volume B. As a result of this, I/O paths472and473, which pass through port V and logical volume B inFIG. 4, are respectively switched as shown inFIG. 5to I/O paths501and502, which pass through port V and logical volume E (Furthermore, either instead of or in addition to switching the internal path as described above for I/O path switching, the changing of resources of either inside or outside the multi-tiered storage system303(for example, the changing of ports127and129in the SAN switch) can be carried out.).

The resources, which are affected performance-wise by I/O path switching like this (hereinafter path switching-affected resources), are the resources directly and indirectly belonging to I/O paths472and473that pass through logical volume B, and the resources directly and indirectly belonging to I/O paths501and502that pass through logical volume E. A resource, which directly belongs to an I/O path (hereinafter, called “target I/O path” for the sake of convenience), is a resource, which belongs to this target I/O path itself. A resource, which indirectly belongs to a target I/O path is a resource, which does not belong to this target I/O path itself, but rather belongs to another I/O path related to a resource belonging to this target I/O path. For example, when a first resource belongs to a first I/O path, this first resource also belongs to a second I/O path, a third resource belongs to the second I/O path, and the third resource also belongs to a third I/O path, if it is supposed that the first I/O path is the target I/O path, the first resource directly belongs to the first I/O path, and the second and third resources, indirectly belong to the first I/O path. As seen from the first I/O path, the logical distance between the first I/O path and the second I/O path is shorter than the logical distance between the first I/O path and the third I/O path. This is because the first I/O path is related to the second I/O path through the first resource only (in other words, the number of interposed I/O paths is zero), but the first I/O path is related to the third I/O path via the second resource of the second I/O path in addition to the first resource (in other words, because the number of interposed I/O paths is 1). Thus, the “logical distance” mentioned above can express the number of I/O paths interposed between the target I/O path.

In this embodiment, as will be explained hereinbelow, a resource affected by path switching is specified, and at the time of this specification, resources belonging directly and indirectly of the target I/O path are specified regardless of the logical distance to the target I/O path. Speaking in terms ofFIGS. 4 and 5, to give one example, logical volume B and array group A, for which the I/O load is decreased by the migration, and logical volume E and array group B, for which I/O load is increased by the migration, and, in addition, application A, file A, logical device A, port A, port E, port I, port M, port Q, port U, logical volume A, file B, logical device B, port B, port F, port J, port N, port R, port V, application B, file C, logical volume E, array group B, application C, file D, logical device C, port C, port G, port K, port O, port S, port W, and logical volume C (that is, the resources belonging to I/O paths471,472,473,501,502, and474) become resources affected by path switching. Further, although not shown in the figure, for example, if I/O path501pass through port Y instead of port R, then port Y would also become a resource affected by path switching.

FIG. 6shows the status of the computer system shown inFIG. 4while a data migration is being carried out from logical volume B to logical volume E.

According to thisFIG. 6, resources belonging to the migration I/O path are array group A, logical volume B, logical volume E and array group B. The I/O paths of these resources are I/O path471,472,473and474. The resources that belong to these I/O paths471,472,473and474are resources (hereinafter, migration-period-affected resources), which are affected performance-wise during the migration period (that is, during migration execution). In this embodiment, these migration-period-affected resources are also specified.

Now then, the various types of information comprising information elements referenced and/or updated by the SAN performance monitoring software305will be explained hereinbelow.

FIG. 7shows an example of the configuration of metric value information313.

Metric value information313, for example, is a table, and comprises metric values for the various types of metrics of the respective resources. More specifically, metric value information313, for example, records for a single metric value a date/time702, which is an information element expressing the date and time at which this metric value was collected; a resource identifier703, which is the identifier of the collection-target resource of this metric value; a metric identifier704, which is the identifier of the metric corresponding to this metric value; and a metric value705, which is the collected metric value.

FIGS. 8 through 12show information comprising resource association information315. More specifically, resource association information315comprises application-file association information801(Refer toFIG. 8); file-logical device association information901(Refer toFIG. 9); logical volume-array group association information1001(Refer toFIG. 10); logical volume information1101(Refer toFIG. 11); and logical device-logical volume-port correspondence information1201(Refer toFIG. 12). The information elements recorded in this information801,901,1001,1101,1201are collected by the agent information collector312, and are recorded in information801,901,1001,1101, and1201.

As shown inFIG. 8, application-file association information801, for example, is a table, and is information expressing the dependence between application109and a file408. More specifically, for example, application-file association information801records an application identifier802and a file identifier803group for a single combination of application109and a file408.

As shown inFIG. 9, file-logical device association information901, for example, is a table, and is information expressing the dependence between a file408and a logical device413. More specifically, for example, file-logical device association information901records a file identifier902and a logical device identifier903group for a single combination of a file408and a logical device413.

As shown inFIG. 10, logical volume-array group association information1001, for example, is a table, and is information expressing the dependence between a logical volume136and an array group462. More specifically, for example, logical volume-array group association information1001records a logical volume identifier1002and an array group identifier1003group for a single combination of a logical volume136and an array group462.

As shown inFIG. 11, logical volume information1101, for example, is a table, and is information expressing a combination of a logical volume136identifier and number. Logical volume information1101, for example, records a logical volume identifier1102and a logical volume number1103for a single logical volume136. A logical volume identifier1102for a logical volume136is constant, but a logical volume number1103changes in accordance with a migration being executed. For example, when data is migrated from logical volume B to logical volume E as in the example given above, and the logical volume number1103of logical volume B is “02”, and the logical volume number1103of logical volume E is “05”, the logical volume number1103of logical volume E is changed from “05” to “02”. Thus, the logical volume number1103can also be deemed as a number for identifying the data inside a logical volume136.

As shown inFIG. 12, logical device-logical volume-port correspondence information1201, for example, is a table, and is information expressing the correspondence among a logical device413, logical volume136and ports. More specifically, for example, logical device-logical volume-port correspondence information1201records for a single correspondence, a logical device identifier1202; logical volume identifier1203; port identifier1204, which is the identifier of a port113in the HBA1065; a port identifier1205, which is the identifier of a port132in the multi-tiered storage system303; and a port identifier/order1206, which is the identifier of the ports127,129in the SAN switch122, and the arrangement thereof along the I/O path.

FIG. 13shows an example of the configuration of I/O path information319.

I/O path information319, for example, is a table, and is information expressing the corresponding relationship between an I/O path and the resources belonging thereto. More specifically, for example, I/O path information319records for a single resource a resource identifier1303; and a path identifier1302, which is the identifier of the I/O path to which this resource belongs. The corresponding relationship between an I/O path and the resources belong thereto is specified by the I/O path extractor318based on resource association information315, and this I/O path information319, which expresses a specified corresponding relationship, is stored in a storage unit1213.

FIG. 14shows an example of the configuration of tier information326.

Tier information326, for example, is a table, and is information expressing the corresponding relationship between a tier and the logical volumes belonging thereto. More specifically, for example, tier information326records for a single logical volume a logical volume identifier1403; and a tier identifier1402, which is the identifier of the tier to which this logical volume belongs. This tier information326is generated by the hierarchy management information collector324based on information acquired from the hierarchy management software307(for example, information expressing which logical volume belongs to which tier), and is stored in a storage unit1213.

FIG. 15shows an example of the configuration of migration information325.

Migration information325, for example, is a table, and expresses information related to a migration. More specifically, for example, migration information325records for a single migration a migration identifier1502; a migration source volume number1503; a migration target volume number1504; a migration status1505, which is information expressing the status related to a migration; and a migration end date/time1506, which is information expressing the date and time at which a migration ends. As values of the migration status1505, for example, there are the following five types: “waiting”, which expresses the fact that it is prior to the execution of a migration; “executing”, which means that a migration is in the process of being executed; “temporarily suspended”, which signifies that migration execution had commenced but has been temporarily suspended; “complete”, which means that a migration has ended; and “cancelled”, which signifies that migration was started, but that this migration was terminated part way through.

The hierarchy management software307, for example, sends information comprising a migration source volume number and a migration target volume number to the hierarchy management information collector324. The hierarchy management information collector324adds the collected information to the migration information325. The alert generator320respectively generates alert definitions for a migration target volume, a trial period and a migration period for a migration corresponding to this added information. The hierarchy management software307can commence this migration in the migration execution unit308subsequent to these alert definitions being generated for this migration.

Further, the hierarchy management software307notifies the migration status (for example, waiting, executing or complete) to the hierarchy management information collector324. The hierarchy management information collector324updates the migration status1505in the migration information325to the notified migration status.

FIG. 16shows an example of the configuration of migration I/O path information323.

Migration I/O path information323, for example, is a table, and is information expressing the resources belonging to a migration I/O path. More specifically, for example, migration I/O path information323records a migration path identifier1602, which is the identifier of a migration I/O path; an identifier1603of a migration during which data passes through this migration I/O path; and an identifier1604of a resource, which belongs to this migration I/O path. For example, the alert generator320can generated this migration I/O path information323based on migration information325and I/O path information319, and can store same in a storage unit1213.

In this migration I/O path information323, for example, for the same type of resource identifier1604in the same migration identifier1603range, the upper side resource identifier (for example, “logical volume B”) is the migration source resource, and the lower side resource identifier (for example, “logical volume E”) is the migration target resource. Information elements expressing a migration source and a migration target can be appended to the migration I/O path information323. Or, the migration source resource and migration target resource can be determined from the migration information325instead.

FIG. 17shows an example of the configuration of alert information316.

Alert information316, for example, is a table, and is information expressing what alert definition is correspondent to which resource. For example, alert information316records for a single resource the alert type1702, which is information expressing the type of alert; a migration identifier1703related to this resource; a resource identifier1704; an identifier1705of a metric for this resource; a threshold1706; an evaluation interval1707; an action type1708, which is information expressing the type of action; an action parameter1709; an alert status1710, which is information expressing the status of an alert; and a last evaluation date/time1711, which is information expressing the date and time of the last evaluation.

As alert type1702values there are “trial period” and “migration period” in addition to the “normal processing” shown in the figure. The migration identifier1703value is entered when the alert type1702value is “trial period” or “migration period”.

An alert condition within an alert definition, for example, is expressed by the threshold1706and evaluation interval1707. The threshold1706is compared against a collected metric value. The evaluation interval1707is the interval of evaluation time when a collected metric value is not less than (or not more than) the threshold1706. When the interval from the last evaluation date/time1711until the current date/time is less than the evaluation interval1707, an evaluation is not carried out.

An action method within an alert definition is expressed by the action type1708and the action parameter1709. The value of the action parameter1709is a value corresponding to the value of the action type1708(For example, if the action type1708value is “e-mail”, the action parameter1709value is configured as e-mail address.)

FIG. 18shows an example of the configuration of alert history information327.

Alert history information327, for example, is a table, and is information expressing the history of information related to the migration source volume in a past migration. More specifically, for example, alert history information327records for a single migration a logical volume number1802of a migration source volume; a logical volume identifier1803of the migration source volume; a metric identifier1804, which is correspondent to a migration source volume; a threshold1805; an evaluation interval1806; an action type1807; and an action parameter1808.

For example, during a migration period, or subsequent to migration end, the alert generator320specifies from the logical volume information1101the logical volume number1103corresponding to the migration source volume in this migration, specifies from the alert information316the metric identifier1705, threshold1706, evaluation interval1707, action type1708, and action parameter1709corresponding to this migration source volume, and records the logical volume identifier, specified logical volume number, metric identifier, threshold, evaluation interval, action type and action parameter of the migration source volume in the alert history information327.

FIG. 19shows an example of the configuration of alert generation control information321.

Alert generation control information321is information for controlling the generation of an alert definition, and, for example, is information prepared in advance. More specifically, for example, in alert generation control information321, there is recorded a trial period1902, which is information expressing the length of a trial period from the time a migration ends; an evaluation interval1903for a trial period; an evaluation interval1904for a migration period; and a threshold [P23,L1]acceptance rate1905for a migration period. The threshold acceptance rate1905is used in computations for calculating a new threshold based on the threshold1706recorded in the alert information316.

The flow of processing carried out in this embodiment will be explained hereinbelow. Furthermore, in the following explanation, the information element group recorded in each row of table-formatted information will be called a “record”.

FIG. 20is a flowchart of the evaluation/execution process carried out by the alert executor310. This evaluation/execution process, for example, is run regularly using a timer in accordance with a scheduling configuration.

In Step2001, the alert executor310acquires information expressing the date and time that the evaluation/execution process was executed immediately prior to this (hereinafter, called “previous evaluation date/time information”). The previous evaluation date/time information, for example, is stored in a storage unit1213(for example, a memory).

In Step2002, the alert executor310determines whether or not there are unprocessed metric values in the metric value information313of the current evaluation/execution process. If there are no unprocessed metric values, the alert executor310moves to Step2013, and if there are unprocessed metric values, the alert executor310moves to Step2003.

In Step2003, the alert executor310acquires one unprocessed metric value705from the metric value information313in the current evaluation/execution process.

In Step2004, the alert executor310determines whether or not the value of the date/time702corresponding to the acquired metric value705is older than the previous evaluation date/time expressed by the previous evaluation date/time information. If the date/time702is older than the previous evaluation date/time, this metric value705was evaluated in an evaluation/execution process of prior to the previous evaluation/execution process, and as such, the alert executor310returns to Step2002. If it is not older, then this metric value705has yet to be evaluated, and the alert executor310proceeds to Step2005.

In Step2005, the alert executor310determines whether or not there are unprocessed records in the alert information316of the current evaluation/execution process. If there are unprocessed records, the alert executor310proceeds to Step2006, and if there are no unprocessed records, the alert executor310returns to Step2002.

In Step2006, the alert executor310acquires one unprocessed record (hereinafter, alert information record) from the alert information316in the current evaluation/execution process.

In Step2007, the alert executor310determines if the value of the alert status1710of the alert information record acquired in Step2006is “valid” or “invalid”. If the value of the alert status1710is “invalid”, the alert executor310returns to Step2005, and if the value of the alert status1710is “valid”, the alert executor310proceeds to Step2008.

In Step2008, the alert executor310compares the resource identifier1704and metric identifier1705in the alert information record acquired in Step2006against the resource identifier703and metric identifier704corresponding to the metric value705acquired in Step2003. If these identifiers match, the alert executor310proceeds to Step2009, and if the identifiers do not match, the alert executor310returns to Step2005.

In Step2009, the alert executor310determines whether or not the difference between the current date/time and the date/time expressed by the last evaluation date/time1711in the alert information record acquired in Step2006is larger than the value expressed by the evaluation interval1707in this alert information record. If this difference is not larger than the evaluation interval value, this means that the time expressed by the evaluation interval1707has not elapsed from the date/time expressed by this last evaluation date/time1711, and the alert executor310returns to Step2005, but if this difference is larger than the evaluation interval value, the alert executor310proceeds to Step2010.

In Step2010, the alert executor310updates the last evaluation date/time1711in the alert information record acquired in Step2006to the information expressing the current date and time.

In Step2011, the alert executor310determines whether or not the metric value705acquired in Step2003exceeds the threshold1706in the alert information record acquired in Step2006. If the metric value705exceeds the threshold1706, this means the alert condition has been met, and the alert executor310proceeds to Step2012. If the metric value does not exceed the threshold1706, this means the alert condition has not been met, and the alert executor310returns to Step2005.

In Step2012, the alert executor310executes an action in accordance with the action type1708and action parameter1709in the alert information record acquired in Step2006by invoking the processors (309,311,314) in accordance with this action type1708and action parameter1709.

In Step2013, the alert executor310updates the previous evaluation date/time information to the information expressing the current date and time.

FIG. 21is a flowchart of an alert execution control process carried out by the alert execution controller322. This alert execution control process, for example, is run regularly using a timer or the like in accordance with a scheduling configuration. Furthermore, the time interval during which the alert execution control process is run is shorter than the time interval during which the above-described evaluation/execution process is run.

In Step2101, the alert execution controller322determines whether or not a record, which was not processed in the current alert execution control process (hereinafter, alert information record), is in the alert information316. If an unprocessed record exists, the alert execution controller322proceeds to Step2102, and if there is no unprocessed record, processing ends.

In Step2102, the alert execution controller322acquires the unprocessed alert information record.

In Step2103, the alert execution controller322references the alert type1702in the alert information records acquired in Step2102. If the alert type1702value is “normal processing”, the alert execution controller322returns to Step2101, if the alert type1702value is “trial period”, the alert execution controller322proceeds to Step2104, and if the alert type1702value is “migration period”, the alert execution controller322proceeds to Step2105.

In Step2104, the alert execution controller322references the migration status1505in the migration information325, which corresponds to the migration identified from the migration identifier1703in the alert information record acquired in Step2102. If the value of the migration status1505is “waiting”, “executing”, “temporarily suspended”, or “cancelled”, the alert execution controller322moves to Step2107, but if the value of the migration status1505is “complete”, the alert execution controller322moves to Step2106.

In Step2105, the alert execution controller322references the migration status1505in the migration information325, which corresponds to the migration identified from the migration identifier1703in the alert information record acquired in Step2102. If the value of the migration status1505is “waiting”, “executing”, or “temporarily suspended”, the alert execution controller322moves to Step2108, but if the value of the migration status1505is “complete” or “cancelled”, the alert execution controller322moves to Step2109.

In Step2106, the alert execution controller322references the migration end date/time1506in the migration information325, which corresponds to the migration specified in Step2104, and the trial period1902in the alert generation control information321. If the difference between the current date and time and the date and time expressed by the migration end date/time1506is less than the period expressed by the trial period1902, this means the current date and time is a date/time within the trial period, and the alert execution controller322proceeds to Step2108. By contrast, if the above-mentioned difference exceeds the period expressed by the trial period1902, this means the current date and time exceeds the trial period, and is a normal processing date/time, and the alert execution controller322proceeds to Step2107.

In Steps2107and2109, the alert execution controller322configures the value of the alert status1710in the alert information record acquired in Step2102to “invalid”.

In Step2108, the alert execution controller322configures the value of the alert status1710in the alert information record acquired in Step2102to “valid”.

FIG. 22is a flowchart of an alert generation process carried out by the alert generator320. The alert generation process, for example, is run at a timing, which registers an information element related to a new migration acquired by the hierarchy management information collector324from the hierarchy management software307(hereinafter, migration information element), in the migration information325.

In Step2201, the alert generator320generates an alert definition for a migration target volume.

In Step2202, the alert generator320generates an alert definition for a trial period.

In Step2203, the alert generator320generates an alert definition for a migration period.

Furthermore, if the alert generator320has finished up to Step2203for a certain migration, the alert generator320can notify the hierarchy management software307of the identifier of this migration. The hierarchy management software307configures the status of this certain migration to “waiting”, and upon receiving the identifier of this certain migration from the alert generator320, can execute the migration corresponding to this identifier via the migration executor308.

FIG. 23is a flowchart of the processing in Step2201ofFIG. 22(the alert definition generation process for the migration target volume).

In Step2301, the alert generator320determines whether or not, of all the metrics that a logical volume possesses, there is a metric that was not processed in the alert definition generation process for the current migration target volume. The identifier of a metric of a logical volume can be acquired from the metric value information313. If there is no unprocessed metric, processing ends, but if there is an unprocessed metric, the alert generator320proceeds to Step2302.

In Step2302, the alert generator320acquires the identifier of one metric, which, from among all the metrics of a logical volume, was not processed in the alert definition generation process for the current migration target volume.

In Step2303, the alert generator320specifies from the migration target volume number1504inside the record, which corresponds to a migration information element (a record in the migration information325), the number of a migration target logical volume comprising this migration information element acquired by the hierarchy management information collector324at the timing at which the alert definition generation process for the current migration target volume was run. The alert generator320uses this specified logical volume number to reference the logical volume information1101, and acquires the logical volume identifier corresponding to this logical volume number. Furthermore, the alert generator320uses this logical volume identifier and the metric identifier acquired in Step2302, and, on the condition that the alert type1702is “normal processing”, references the alert information316, and determines whether or not the pertinent alert information record exists. If the pertinent alert information record exists, this means that an alert definition was generated for the pertinent metric of the migration target volume (the metric identified from the metric identifier acquired in Step2302), and the alert generator320returns to Step2301, and if the pertinent alert information record does not exist, the alert generator320proceeds to Step2304.

In Step2304, the alert generator320retrieves from the alert history information327a record, which expresses a combination of the migration source logical volume number (the number specified from the migration source volume number1503in the record (migration information325record) corresponding to the migration information element acquired by the hierarchy management information collector324at the timing at which the alert definition generation process for the current migration target volume was run), the logical volume identifier the migration target volume specified in Step2303, and the metric identifier acquired in Step2302. If such a record exists, this means that the migration target volume was the migration source volume in the past (More specifically, for example, this signifies that this migration target volume was a migration source volume in the past, and that the migrated data is finally being returned having itself as the migration target.). Thus, if such a record is discovered (Step2305: “YES”) the alert generator320moves to Step2306. By contrast, if such a record is not discovered (Step2305: “NO”), the alert generator320proceeds to Step2307.

In Step2306, the alert generator320records in the alert information316as an alert definition the threshold1805, evaluation interval1806, action type1807, and action parameter1808in the discovered record. Consequently, the correspondent alert definition when the volume was the migration source volume becomes correspondent to the migration target volume.

In Step2307, the alert generator320uses the identifier for the migration source volume (the logical volume identifier, which corresponds to the above-mentioned number (migration source volume number) specified from the migration source volume number1503, and which was specified from the logical volume information1101using this number), and the metric identifier acquired in Step2302, and, on the condition that the alert type1702is “normal processing”, references the alert information316, and determines whether or not the pertinent alert information record exists. If the pertinent alert information record exists, this means that an alert has been defined for the pertinent metric of the migration source volume (the metric identified from the metric identifier acquired in Step2302), and the alert generator320proceeds to Step2308, and if the pertinent alert information record does not exist, the alert generator320returns to Step2301.

In Step2308, the alert generator320specifies from the tier information326all the logical volumes belonging to the tier to which the migration source volume belongs (migration source tier), and respectively acquires from the metric value information313as well as the alert information316the metric values705, thresholds1706, and evaluation intervals1707for all these logical volumes.

In Step2309, the alert generator320specifies from the tier information326all the logical volumes belonging to the tier to which the migration target volume belongs (migration target tier), and respectively acquires from the metric value information313as well as the alert information316the metric values705, thresholds1706, and evaluation intervals1707for all these logical volumes.

In Step2310, the alert generator320generates an alert definition for the migration target volume.

More specifically, for example, the action type1708and action parameter1709of the migration target volume are made the same as the action type1708and action parameter1709in the alert definition of the migration source volume (the alert definition acquired from the alert information record specified in Step2307).

Further, for example, the threshold1706of the migration target volume is computed based on the threshold1706of the migration source volume, the metric values of the respective logical volumes belonging to the migration target tier (metric values705acquired in Step2309), and metric values of the respective logical volumes belonging to the migration source tier (metric values705acquired in Step2308). More specifically, for example, the threshold1706value is computed using the following Equation (1).
Migration target volume threshold 1706 value=migration source volume threshold 1706 value×(average of metric values of logical volumes belonging to migration target tier÷average of metric values of logical volumes belonging to migration source tier)  (1)

Further, for example, the evaluation interval1707of the migration target volume is computed based on the value of the evaluation interval1707of the migration source volume, the values of the evaluation intervals1707of the respective logical volumes belonging to the migration target tier, and values of the evaluation intervals1707of the respective logical volumes belonging to the migration source tier (or, simply the values of the evaluation intervals1707of the respective logical volumes belonging to the migration target tier). More specifically, for example, the evaluation interval1707value is computed using the following either Equation (2) or Equation (3).
Migration target volume evaluation interval 1707 value=migration source volume evaluation interval 1707 value×(average value of evaluation intervals 1707 of one or more logical volumes belonging to migration target tier average value of evaluation intervals 1707 of one or more logical volumes belonging to migration source tier)  (2)
Migration target volume evaluation interval 1707 value=average value of evaluation intervals 1707 of one or more logical volumes belonging to migration target tier  (3)

According to this alert definition generation process, the alert condition of the migration target volume is generated automatically based on the metric value and/or alert condition of a logical volume belonging to the migration target tier (or, in addition thereto, on the metric value and/or alert condition of a logical volume belonging to the migration source tier). Further, an alert definition comprising this alert condition is automatically validated by the process explained usingFIG. 21. Consequently, the performance of the migration target volume can be monitored using an appropriate condition, and an alert definition configuration omission can be prevented for the migration target volume.

FIG. 24is a flowchart of the processing in Step2202ofFIG. 22(the alert definition generation process for a trial period).

In Step2401, the alert generator320specifies from the I/O path information319all the I/O paths of the migration source volume.

In Step2402, the alert generator320specifies from the I/O path information319all the resources directly and indirectly belonging to all of the I/O paths specified in Step2401.

In Step2403, the alert generator320specifies from the I/O path information319all the I/O paths of the migration target volume.

In Step2404, the alert generator320specifies from the I/O path information319all the resources directly and indirectly belonging to all of the I/O paths specified in Step2403.

Step2405and beyond are carried out for all the resources specified in Steps2402and2404(hereinafter, will be called “target resources” in the explanation of thisFIG. 24).

In Step2405, the alert generator320determines if there is a target resource that was not processed in this alert definition generation process. If an unprocessed target resource exists, the alert generator320proceeds to Step2406, and if an unprocessed target resource does not exist, processing ends.

In Step2406, the alert generator320selects one of the above-mentioned unprocessed target resources.

In Step2407, the alert generator320determines whether or not there are unprocessed metrics among all the metrics possessed by the target resource selected in Step2406. The identifier of a metric of the resource can be acquired from the metric value information313. If unprocessed metrics exist, the alert generator320proceeds to Step2408, and if unprocessed metrics do not exist, the alert generator320returns to Step2405.

In Step2408, the alert generator320selects one of the above-mentioned unprocessed metrics.

In Step2409, the alert generator320references the alert information316, and determines whether or not an alert definition for normal processing has been configured for the metric selected in Step2408. If an alert definition for normal processing has not been configured, the alert generator320returns to Step2407, and if this alert definition has been configured, the alert generator320proceeds to Step2410.

In Step2410, the alert generator320generates, as an alert definition for a trial period, an alert definition comprising a stricter alert condition than the alert condition in the alert definition for normal processing (the alert definition specified in Step2409) corresponding to the target resource selected in Step2406and the metric selected in Step2408. More specifically, for example, the alert generator320generates, as an alert definition for a trial period for the above-mentioned selected target resource and metric, an alert definition, which changes the evaluation interval1707in the alert definition for normal processing corresponding to this target resource and metric to the evaluation interval1903for a trial period in the alert generation control information321.

Furthermore, a value smaller than the value of the evaluation interval1707in the alert definition for normal processing is used as the value of the evaluation interval1903for a trial period in the alert generation control information321. However, if in Step2410it is detected that the value of the evaluation interval1903for the trial period in the alert generation control information321is greater than the value of the evaluation interval1707in the normal processing alert definition corresponding to the above-mentioned target resource and metric, a value smaller than the value of the evaluation interval1707in this normal processing alert definition is configured as the value of the evaluation interval in the trial period alert definition.

A method for configuring a value that is smaller than the value of the evaluation interval1707in a normal processing alert definition as described hereinabove has been explained as the method for making an alert condition stricter, but instead of this, it is also possible to use a method in which the number of metric values acquired per unit of time is increased to a number larger than that of normal processing without changing the value of the evaluation interval1707. For example, for a logical volume, only “number of I/Os per second” and “transmission rate” are acquired for normal processing, but it is also possible to employ a method for acquiring “number of read I/Os per second”, “number of write I/Os per second”, “read transmission rate”, and “write transmission rate” in addition thereto for a trial period.

According to the alert definition generation process described hereinabove, a trial period alert definition is automatically prepared for all resources affected by I/O path switching due to a migration. The respective alert definitions are automatically validated by the processing explained usingFIG. 21. An alert condition in a trial period alert definition is automatically made stricter than the alert condition in a normal processing alert definition. Specifically, the evaluation interval is shortened. Thus, when a performance problem arises due to a change in I/O load distribution occurring within a fixed period of time from the point in time when a migration ended, this problem can be quickly detected, and an action corresponding to this problem can be executed.

FIG. 25is a flowchart of the processing in Step2203ofFIG. 22(an alert definition generation process for a migration period).

In Step2501, the alert generator320specifies a migration I/O path, which corresponds to a migration information element acquired by the hierarchy management information collector324at the timing at which the alert definition generation process for this migration target volume was started, by referencing the migration I/O path information323.

In Step2502, the alert generator320specifies, from the migration I/O path information323and I/O path information319, all the resources, which directly and indirectly belong to the migration I/O path specified in Step2501.

Step2503and beyond are carried out for all the resources specified in Step2502(hereinafter, called “target resources” in this explanation ofFIG. 25).

In Step2503, the alert generator320determines whether or not unprocessed target resources exist in this alert definition generation process. If unprocessed target resources exist, the alert generator320moves to Step2504, and if unprocessed target resources do not exist, processing ends.

In Step2504, the alert generator320selects one of the above-mentioned unprocessed target resources.

In Step2505, the alert generator320determines whether or not there are unprocessed metrics among all the metrics possessed by the target resource selected in Step2504. An identifier of a resource's metrics can be acquired from the metric value information313. If unprocessed metrics exist, the alert generator320proceeds to Step2506, and if unprocessed metrics do not exist, the alert generator320returns to Step2503.

In Step2506, the alert generator320selects one of the above-mentioned unprocessed metrics.

In Step2507, the alert generator320references the alert information316, and determines whether or not a normal processing alert definition has been configured for the metric selected in Step2506. If a normal processing alert definition has not be configured, the alert generator320returns to Step2505, and if this definition has been configured, the alert generator320proceeds to Step2508.

In Step2508, the alert generator320generates a migration period alert definition corresponding to the metric selected in Step2506of the target resource selected in Step2504. More specifically, for example, the alert generator320generates, as a migration period alert definition for this target resource and metric, an alert definition, which changes the evaluation interval1707in the normal processing alert definition corresponding to the above-mentioned resource and metric to the migration period evaluation interval1904in the alert generation control information321. The threshold of this migration period alert definition can be a value obtained by correcting the threshold1706in a normal processing’ alert definition (alert definition specified in Step2507) based on the threshold acceptance rate1905in the alert generation control information321. Further, the action method for this migration period alert definition can be the sending of a command (hereinafter, temporary suspension/retardation command) for temporarily suspending or retarding a migration.

According to the alert definition generation process described above, a migration period alert definition is automatically prepared for all resources affected by the execution of a migration. The respective alert definitions are automatically validated by the processing explained usingFIG. 21. Thus, it is possible to properly monitor the performance of resources impacted during a migration period in accordance with the affects of this migration execution. If a performance problem is detected in this monitoring, a temporary suspension/retardation command can be sent to the migration executor308via (or not via) the hierarchy management software307either instead of or in addition to sending a notification to a prescribed address. The migration executor308, upon receiving a temporary suspension/retardation command, can temporarily suspend or retard (slow down the read rate and/or write rate of data) a migration being executed.

A number of embodiments of the present invention has been explained hereinabove, but these embodiments are merely examples for explaining the present invention, and do not purport to limit the scope of the present invention solely to these embodiments. The present invention can be put into practice in a variety of other modes.