The present application claims priority from Japanese application JP2005-245528 filed on Aug. 26, 2005, the content of which is hereby incorporated by reference into this application.
This invention relates to a technique for managing a plurality of I/O (input/output) paths between a storage and a server.
In recent years, a SAN (Storage Area Network) constructing a dedicated network between a storage (also called a storage subsystem) such as disk devices and a server has been closely watched. This construction is expected to reduce the storage management cost and make it possible to effectively utilize the storage capacity.
In the SAN environment, I/O requests are issued from a plurality of application programs at a time to a component element (array group, etc.) for I/O processing in the storage. In the case where the I/O processes of any one of the application programs increase, therefore, the I/O performance of the other application programs is deteriorated. This problem is generally called the I/O collision.
While the existing application program is operating on the server, assume that a new application program is assigned to the component element for I/O processing in the storage. It is necessary to take into account both the effect of I/O performance of the new application program due to the I/O process of the existing application program and the effect of I/O performance of the existing application program due to the I/O process of the new application program.
In this situation, a conventional method has been disclosed to avoid the I/O collision for an array group in the storage. According to this method, before selecting an array group for which a new volume is created, the performance requested for the new volume is acquired. Next, all the volumes associated with each array group to which the new volume can be assigned are checked whether they meet the requested performance. In the presence of any array group meeting the requested performance, the new volume is created for the particular array group (See U.S. Pat. No. 6,748,489 for example).
In the case where an application program is assigned to a volume, however, various component elements such as a server port as well as the array group exist on the I/O path between the storage and the server. The I/O path between the storage and the server is preferably assigned, therefore, taking the interdependency (whether a combination is possible or not) of these component elements into consideration.
This invention has been achieved in view of this situation and the object thereof is to support an optimum I/O assignment path between the storage and the server.
In order to achieve this object, according to this invention, there is provided a storage management system comprising an application server assigned an application program, a storage subsystem having a storage area used for the application program, and a management server for managing an I/O path between the application server and the storage subsystem, wherein the management server includes a storage unit and a processing unit, wherein the storage unit of the management server manages a combination of the I/O path between the application server and the storage subsystem and various performance values of the component elements of the I/O path, and wherein the processing unit of the management server, upon receipt of a new request from an external device to assign an application program to a specified application server, acquires the I/O path between the particular application server and the storage subsystem combined with the application server from the combination of the I/O paths managed in the storage unit, and based on the various performance values managed by the storage unit, extracts an I/O path having the performance value meeting the conditions imposed by the external device from the I/O paths acquired, after which the extracted I/O path is output to the external device as a candidate path.
According to this invention, the assignment of the optimum I/O path between the storage and server can be supported.
Other objects, features and advantages of the invention will become apparent from the following description of the embodiments of the invention taken in conjunction with the accompanying drawings.
In
The application servers 100, the storage monitor servers 200 and the storage subsystems 300 are each connected to a SAN 402 and a management LAN 403.
Although the SAN 402 is used for transmitting and receiving data between each server 100, 200 and each storage subsystem 300, the invention is not limited to this configuration and an ordinary network such as LAN may be used.
[Configuration of Performance Management Server]
Next, the configuration of the performance management server 000 is described in detail.
The performance management server 000, as shown in
The memory 000B includes a basic information input interface 020, an I/O path extraction information input interface 040, an I/O path extraction processing unit 030, a database storage processing unit 010 and a performance management server internal database 050 (also called the database 050).
The performance management server 000 is connected with a display unit 091, a keyboard (external device) 092 and a mouse (external device) 093.
[Configuration of Storage Subsystem]
Next, the configuration of the storage subsystem 300 is explained in detail. Although the internal configuration of one storage subsystem 300 is shown in
The storage subsystem 300, as shown in
An array group 301 is defined as a single virtual storage unit into which a plurality of storage units (hard disk drives, etc.) are integrated by RAID (Redundant Array of Independent Disks). The array groups 301 each include a plurality of logical volumes (also called the storage areas) 304 adapted to be handled as an independent storage unit.
The microprogram 305 creates a partition, not shown, for each predetermined capacity, for example, on the array groups 301. The microprogram 305 has the function of assigning the partition to the application servers 100 through the SAN 402. This microprogram 305 is executed by a processing unit (not shown) such as a processor.
The partition is for dividing a plurality of storage units logically into a plurality of logical volumes 304. According to this embodiment, the partition is created for each predetermined capacity, i.e. each predetermined size. Nevertheless, the partition can alternatively be created for each arbitrary size set by a user.
In the case where the partition is created by the microprogram 305, the application servers 100 create the file systems 101 based on the particular partition. The file system 101 thus created and the partition may be in any of one-to-one, one-to-many, many-to-one and many-to-many relations.
Also, the microprogram 305 has the function of creating cache partitions 303 by dividing a cache not shown and assigning the cache partitions 303 to a plurality of logical volumes 304. The cache partitions 303, though assigned to a plurality of logical volumes 304 according to this embodiment, may alternatively be assigned to the array groups 301.
Further, the microprogram 305 has the function of periodically acquiring the performance value (such as transfer rate) of the storage-side ports 302, the array groups 301 and the cache partitions 303.
[Configuration of Application Server]
Next, the configuration of the application servers 100 is explained in detail. Although the internal configuration of one application server 100 is shown in
The application servers 100 are for starting an application program (also called simply an application) assigned. As shown in
The memory l00B includes a server information collection program 103 (also called the collection program 103), a server storage-related information collection program 104 (also called the collection program 104), and an application server internal database 105 (also called the database 105). The collection programs 103, 104, the functions of which are described later, are operated by the CPU 100A.
The file systems 101 each receive an I/O request for a file system through the SAN 402, and in response to the I/O request, executes a predetermined process for the logical volumes 304 assigned to the file system.
[Configuration of Storage Monitor Server]
Next, the configuration of the storage monitor server 200 is explained in detail. Although the internal configuration of one storage monitor server 200 is shown in
The storage monitor server 200, as shown in
The memory 200B has a storage information collection program 201 (also called the collection program 201) in operation and an application server internal database 202 (also called the database 202).
According to this embodiment, the storage monitor servers 200 are available in the same number as that of the storage subsystems 300, and each storage monitor server 200 monitors a different storage subsystem 300. Nevertheless, one storage monitor server 200 may monitor a plurality of storage subsystems 300.
According to this embodiment, the application servers 100, the server-side ports 102, the storage subsystems 303, the storage-side ports 302, the cache partitions 303, the file systems 101, the array groups 301 and the logical volumes 304 are collectively referred to as the resources.
In
The basic information input interface 020 executes the process of acquiring the information constituting the prerequisite for extraction of the I/O path, and includes an existing application information input interface 044 (also called the input interface 044), and a configuration information/performance information acquisition interface 045 (also called the acquisition interface 045).
The interface 044 acquires the information (an application name, etc.) on existing applications (already in operation) operating in the SAN environment. This information is input by the user operation of the keyboard 092, etc.
The acquisition interface 045 acquires the configuration information and the performance information of each resource from the collection programs 103, 104, 201. The configuration information indicates the relation of the resources existing in the route between the resources of the I/O source and the resources of the I/O destination in the I/O request made from the application server 100 to the storage subsystem 300.
The database storage processing unit 010 is for storing the information acquired by the basic information input interface 020 in the configuration information 090 on the database 050. The database storage processing unit 010 includes a configuration information registration unit 011, a performance information registration unit 012 and an existing application information registration unit 013.
The configuration information registration unit 011 extracts the configuration information for the configuration between the application server 100 and the storage subsystem 300 from the information acquired by the configuration information/performance information acquisition interface 045, and stores the configuration information in the configuration information 090. The performance information registration unit 012 extracts the performance information of the resources described later from the information acquired by the configuration information/performance information acquisition interface 045, and stores the performance information in the performance information 060 of the database 050. The performance information 060 represents various performance values (transfer rate (
The existing application information registration unit 013 stores the information acquired by the input interface 044 in the application information 070.
In place of the configuration information registration unit 011, the basic information input interface 020 may execute the process of the configuration information registration unit 011.
In
The I/O path extraction information input interface 040 (also called the input interface 040) acquires the information (the application name, etc.) on the new application (the application not in operation but to be newly activated) and the condition (the transfer rate of a given port, etc.) for the resources making up the I/O path, and delivers the information and the condition thus acquired to the I/O path extraction processing unit 030. The input interface 040 includes the new application information input interface 043 (also called the input interface 043) and the I/O path extraction condition input interface 042 (also called the input interface 042).
The input interface 043 acquires the name of the server for activating the new application and the I/O peak time zone of the new application. The I/O peak time zone is defined as an operation time zone of the application involved which is set by the user taking the strict request for the I/O performance and the effect on other applications into consideration. Specific contents of the I/O peak time zone are appropriately described later. The input interface 042 acquires the condition for the performance of the resources making up the I/O path and the condition for the application utilizing the resources making up the I/O path.
The I/O path extraction processing unit 030 searches the basic information 080 of the database 050 for the candidates for the I/O path between the application server 100 and the storage subsystem 300 based on the condition acquired by the input interface 040. The I/O path extraction processing unit 030 delivers the retrieved I/O path candidates to the I/O path candidate output interface 041 as an I/O path candidate list. The I/O path extraction processing unit 030 includes the resource candidate information creation unit 031 and the I/O path candidate information creation unit 032.
The resource candidate information creation unit 031 combines the basic information 080 and the input information from the input interface 043 to create the information on each resource described later, and temporarily stores it in the resource candidate information 086 on the database 050.
The I/O path candidate information creation unit 032 extracts the I/O path candidates based on the input information from the input interface 042 and the basic information 080 and the resource candidate information 086 on the database 050. The I/O path candidate information creation unit 032 delivers the extraction result to the I/O path candidate output interface 041.
The I/O path candidate output interface 041 executes the process of acquiring the I/O path candidate list from the I/O path candidate information creation unit 032 and supplying it to the user (for example, the process of displaying on the display unit 091).
Next, the functions of the application server 100 and the storage monitor server 200 are explained in detail with reference to
First, the functions of the application server 100 are described. In the application server 100 shown in
Also, the collection program 103 specifies the server-side port 102 used for each file system 101 (
The collection program 104 shown in
The collection program 103 shown in
Also, the server-side port 102 used for each file system 101 may alternatively be specified by the notice from the operating system (having recorded therein the port name of the server-side port 102) operating on the application server 100 to which the logical volume 304 in the storage subsystem 300 is assigned through the SAN 402. As an alternative, the server-side port 102 used for each file system may be specified by executing the SCSI (Small Computer System Interface) inquiring command.
Next, the functions of the storage monitor server 200 are explained (See
In the storage monitor server 200 shown in
Also, the collection program 201 stores the acquired performance values in the storage-side port performance information 212, the array group performance information 213 and the cache partition performance information 214, respectively, of the database 202.
The storage-side port performance information 212 is a table for holding the performance value for each storage-side port 302, and the array group performance information 213 is a table for holding the performance value for each array group 301. Similarly, the cache partition performance information 214 is a table for holding the performance value for each cache partition 303.
Further, the collection program 201 acquires the name of each of the storage-side ports 302, the array groups 301 and the cache partitions 303 used for each logical volume 304 of the storage subsystem 300, and stores these names in the logical volume configuration information 215 of the database 202. The logical volume configuration information 215 is a table for holding the names of the storage-side port 302, the array group 301 and the cache partition 303 used by each logical volume 304.
The performance values and the configuration information described above are acquired by the microprogram 305 in the storage subsystem 300. The collection program 201 acquires, through the management LAN 403 or the SAN 402, each performance value and each configuration information acquired by the microprogram 305.
Next, an example of a data structure of the server-side port performance information 112 (
As shown in
The server name 700 indicates the server name (“mercury”, for example) of the application server 100 for which the application program is in operation. The port name 701, on the other hand, indicates the port name (“1”, for example) of the port held by the application server 100.
The transfer rate 702 indicates the transfer rate (“6.2 MB/s”, for example) of the port designated by the port name 701, and the time point 703 indicates the time point at which the transfer rate designated by the transfer rate 702 is acquired.
As shown in
The storage subsystem name 710 indicates the storage subsystem name (“#9876”, for example) of the storage subsystem 300, and the storage-side port name 711 the port name of the storage-side port 302.
The transfer rate 712 indicates the transfer rate (“2.3 MB/s”, for example) of the storage-side port 302, and the time point 713 the time point at which the transfer rate designated by the transfer rate 712 is acquired (the time point at which the collection program 201 acquires the transfer rate 712).
As shown in
The storage subsystem name 720 indicates the storage subsystem name (“#9876”, for example) of the storage subsystem 300, and the array group name 721 the group name of the array group.
The response time 722 indicates the array group response time (“7.6 ms”, for example), and the time point 723 the time point at which the response time designated by the response time 722 is acquired (the time point at which the collection program 201 acquires the response time 722).
As shown in
The storage subsystem name 730 indicates the storage subsystem name (“#9876”, for example) of the storage subsystem 300. The cache partition name 731 indicates the name of the cache partition 303.
The hit ratio 732 indicates the probability of presence of the requested data on the cache in the case where the logical volume 304 related to the cache partition 303 is accessed. This hit ratio is determined by, for example, dividing the number of cache hits by the total number of accesses to the logical volume 304 related to the cache partition 303.
The time point 733 indicates the time point at which the hit ratio designated by the hit ratio 732 is acquired (the time point at which the collection program 201 acquires the hit rate 732).
As shown in
The server name 740 indicates the server name (“mercury”, for example) of the application server 100 for which the application program is in operation, and the file system name 741 the file system name of the corresponding file system 101.
The port name 742 indicates the port name of the server-side port 102 held by the application server 100.
As shown in
The logical volume name 751 is for identifying the logical volume 304, and indicates the logical volume name. Each value of a storage subsystem name 750, a storage-side port name 752, an array group name 753 and a cache partition 754 is similar to each value of the storage subsystem names 710, 720, 730 (
As shown in
Each value of the file system name 761, the storage subsystem name 762 and the logical volume name 763 may alternatively be acquired by the collection program 104 from the operating system. In this case, each value of the file system name 761, the storage subsystem name 762 and the logical volume name 763 are recorded by the operating system operating on the application server 100 when the logical volume 304 is disclosed to the particular application server 100 through the SAN 402.
Also, each value of the file system name 761, the storage subsystem name 762 and the logical volume name 763 may alternatively be acquired by execution of the SCSI inquiring command.
According to this embodiment, the collection programs 103, 104 shown in
The collection program 201 shown in
Also, with regard to the response time of the array groups 301 and the hit ratio of the cache partitions 303, the average value is calculated and stored from the values collected, for example, for the past one hour (for example, all the values collected at intervals of one minute). With regard to other values, the values acquired at intervals of one hour are stored.
The collection programs 103, 104, 201 shown in
Returning to
The input interface 044 causes the display unit 091 to output (display) the input view (
The input view 900 is for causing the user to input (by the input operation of the keyboard 092 or the mouse 093) the server name of the application server 100 for operating the existing application, the corresponding file system name and the I/O peak time zone. An example of display of the input view 900 is shown in
The input view 900, as shown in
Returning to
Also, the acquisition interface 045 collects the storage-side port performance information 212 (
Further, the acquisition interface 045 acquires the server storage-related information 122 (
Next, the process executed by the database storage processing unit 010 is explained in detail (
The database storage processing unit 010 includes the existing application information registration unit 013, the performance information registration unit 012 and the configuration information registration unit 011.
The existing application information registration unit 013 stores the information acquired by the input interface 044 in the application information 070.
An example of the data structure of this application information 070 is shown in
The existing application information registration unit 013 shown in
The performance information registration unit 012 acquires the performance information of the server-side port 102 from the collection program 103 and registers it in the performance information 060 of the database 050. Also, the performance information registration unit 012 acquires the performance information of the storage-side ports 302, the performance information of the array groups 301 and the performance information of the cache partitions 303 from the collection program 201 and registers them in the performance information 060 of the database 050.
An example of the data structure of the performance information 060 is shown in
The performance information 060 shown in
The resource type 821 indicates the type of the server-side ports 102, the cache partitions 303, the storage-side ports 302 or the array groups 301.
The server/storage subsystem name 822 indicates the server name or the storage subsystem name of the corresponding resource (the application server 100 or the storage subsystem 300).
The resource name 823 is for identifying the resource designated by resource type and indicates, for example, the port number as a resource name.
The time point 824 indicates the performance value (for example, the port transfer rate of 6.2 MB/s) designated by the performance value 825 described later.
[Functions of Performance Information Registration Unit]
Next, the functions of the performance information registration unit 012 shown in
First, the process executed by the performance information registration unit 012 to store the performance information (for example, the transfer rate) of the server-side ports 102 in the performance information 060 is explained.
The performance information registration unit 012 acquires the server-side port performance information 112 (the values of the server name 700, the server-side port name 701, the server-side port transfer rate 702 and the time point 703 shown in
Also, explanation is made about the process executed by the performance information registration unit 012 to store the performance information (the transfer rate, for example) of the storage-side ports 302 in the performance information 060.
The performance information registration unit 012 acquires the storage-side port performance information 212 (the values of the storage subsystem name 710, the storage-side port name 711, the storage-side port transfer rate 712 and the time point 713 shown in
Next, explanation is made about the process executed by the performance information registration unit 012 to store the performance information of the array groups 301 in the performance information 060.
The performance information registration unit 012 acquires the array group performance information 213 (the values of the storage subsystem name 720, the array group name 721, the array group response time 722 and the time point 723 shown in
Further, explanation is made about the process executed by the performance information registration unit 012 to store the performance information of the cache partitions 303 in the performance information 060.
The performance information registration unit 012 acquires the cache partition performance information 214 (the values of the storage subsystem name 730, the cache partition name 731, the cache partition hit ratio 732 and the time point 733 shown in
[Functions of the Configuration Information Registration Unit]
Next, the functions of the configuration information registration unit 011 shown in
The configuration information registration unit 011 acquires the information periodically from the collection programs 103, 104, 201. The configuration information registration unit 011, based on the information thus acquired, creates the configuration information of the resources existing between the application server 100 and the storage subsystem 300, and stores the configuration information thus created in the configuration information 090 of the database 050. The configuration information 090 represents a combination of the I/O paths between the application server 100 and the storage subsystem 300, and holds the resource name available to which transmission of an I/O request to the file system 101 can be propagated.
An example of the data structure of the configuration information 090 is shown in
As shown in
Returning to
The configuration information registration unit 011 acquires the file system configuration information 113 (the values of the server name 740, the file system name 741, server-side port name 742 shown in
The configuration information registration unit 011 creates the configuration information 090 by combining the values of the file system configuration information 113, the logical volume configuration information 215 and the server storage-related information 122 acquired, based on the file system name and the logical volume name. Specifically, the configuration information registration unit 011 acquires all the combinations of the values of the server name 740 and the file system name 741 from the file system configuration information 113.
Then, the configuration information registration unit 011 compares the combinations of each value acquired with the combinations of the values of the server name 760 and the file system name 761 acquired from the server storage-related information 122, and extracts the row of the coincident server storage-related information 122 (
Next, the configuration information registration unit 011 acquires all the combinations of the values of the storage subsystem name 762 and the logical volume name 763 shown in the row extracted. The configuration information registration unit 011 compares the acquired combinations with the combinations of the values of the storage subsystem name 750 and the logical volume name 751 in the logical volume configuration information 215 (
Then, the configuration information registration unit 011 stores the value of the server name 760 of the file system configuration information 113 in the sever name 801 of the configuration information 090 (
Also, the configuration information registration unit 011 stores the value of the cache partition name 807 of the configuration-information 090. The configuration information registration unit 011 executes this storage process for all the combinations of the values of the file system name 741 and the server name 740 acquired from the file system configuration information 113.
Next, the processes executed by the I/O path extraction process unit 030, the input interface 040 and the output interface 041 are explained in detail.
[Functions of Input Interface]
First, the functions of the input interface 040 are explained. The input interface 040 includes two input interfaces 042, 043 (
The input interface 043 is for acquiring the server name of the application server 100 for activating a new application and the I/O peak time zone of the particular new application. The server name and the I/O peak time zone are acquired through the input view 910 shown in
The input view 910 shown in
Returning to
The input view 920 shown in
The user can select one out of the seven conditions of the pulldown menu 921 using, for example, the mouse 093. The condition thus selected is delivered to the I/O path candidate information creation unit 032 through the input interface 043.
Although a case in which one selectable condition is available is explained with reference to
Next, the process executed by the I/O path extraction processing unit 030 shown in
The I/O path extraction processing unit 030 includes a resource candidate information creation unit 031 and an I/O path candidate information creation unit 032.
The resource candidate information creation unit 031, by combining the input information and the basic information 080 from the input interface 043, creates the performance average value of each resource and the maximum importance degree of the application related to each resource, and stores them in the resource candidate information 086 of the database 050. An example of the data structure of the resource candidate information 086 is shown in
As shown in
The average value indicated in the average performance value 874 is obtained in such a manner that the values designated by the performance value 825 in
The maximum importance degree 875 indicates the importance degree of an application considering mainly the resources (the server-side ports 102, the storage-side ports 302, the array groups 301, the cache partitions 303). This importance degree is designated from preset ranks.
The maximum importance degree 876 indicates the importance degree of the applications sharing the I/O peak time zones. This importance degree is also designated from preset ranks. This designation makes it possible to set the order of importance of the applications sharing the I/O peak time zone.
The resource type 871, the server/storage subsystem name 872 and the resource name 873 have similar contents to the resource type 821, the server/storage subsystem name 822 and the resource name 823, respectively, shown in
Returning to
Next, an example of the process executed by the resource candidate information creation unit 031 is explained with reference to
Step 605 acquires a list of resources available for use by the new application (designated in the server name input column 911) designated on the input view 910 shown in
At Step 610, the data duplication is excluded in the acquired resource list and a resource set is acquired. At Step 605 before excluding the data duplication, all the rows having a combination of the values designated by the resource type 821, the server/storage subsystem name 822 and the resource name 823 are acquired from the rows (resource list) extracted from the performance information 060 shown in
Step 615 checks whether the resource set created at Step 610 is vacant or not. Specifically, it is checked whether the number of elements (number of rows) of the combination set (resource set) is zero or not. In this way, all the rows making up the resource set are processed.
In the case where the determination at Step 615 is 0, it is determined that the resource set is vacant (YES at Step 615), and the process of the resource candidate information creation unit 031 is terminated. In the case where the determination is not 0, on the other hand, it is determined that the resource set is not vacant (NO at Step 615), and the process proceeds to Step 620.
At Step 620, one resource is retrieved from the combination set constituting the resource set created at Step 610, and the retrieved resource is deleted from the resource set.
At Step 625, the average performance value of the resource retrieved at Step 620 is calculated based on the performance information 060. Specifically, first, only the information is extracted which shares the operation time zone (the time zone designated as the I/O peak time zone in
More specifically, from the rows extracted from the performance information 060 at Step 605, a row is selected in which the combination of the values designated in the resource type 821, the server/storage subsystem name 822 and the resource name 823 (
Step 630, with regard to the row of the resource set for the resources retrieved at Step 620, checks whether the resource type designated by the particular row is “the server-side port” or not. In the case where the resource type is “the server-side port” (YES at Step 630), the process proceeds to step 633, while in the case where the resource type is not “the server-side port” (NO at Step 630), on the other hand, the process proceeds to step 635.
At Step 633, the maximum importance degree of an application is calculated from the importance degree (
Next, the rows making up the application information 070 (
At Step 635, the rows of the set of the resources retrieved at Step 620 are checked to see whether the resource type designated by the row is “storage-side ports” or not. In the case where the “storage-side ports” are involved (YES at Step 635), the process proceeds to Step 638, while the “storage-side ports” are not involved (NO at Step 635), on the other hand, the process proceeds to Step 640.
At Step 638, from the importance degree 844 (
Next, the rows making up the application information 070 (
At Step 640, the rows of the set of the resources retrieved at Step 620 are checked to see whether the resource type designated by the particular rows is “array groups” or not. In the case where the “array groups” are involved (YES at Step 640), the process proceeds to Step 643, while in the case where the “array groups” are not involved (NO at Step 640), the process proceeds to step 645.
At Step 643, from the importance degree (
Next, the rows making up the application information 070 (
At Step 645, the rows of the set of the resources retrieved at Step 620 are checked to see whether the resource type designated by the particular rows is “cache partitions” or not. In the case where the “cache partitions” are involved (YES at Step 645), the process proceeds to Step 648, while in the case where the “cache partitions” are not involved (NO at Step 645), the process proceeds to Step 615.
At Step 648, from the importance degree 844 (
Next, the rows making up the application information 070 (
At Step 650, the value determined by calculation at any of Steps 633, 638, 643, 648 is stored in the database 050.
Specifically, the resource type contained in the rows of the set of the resources retrieved at Step 620 is stored in the resource type 871 of the resource candidate information 086, and the server/storage subsystem contained in the particular row is stored in the server/storage subsystem name 822. Also, the resource name contained in the particular row is stored in the resource name 823, and the average performance value calculated at Step 625 is stored in the average performance value 874.
Further, the first and second maximum values calculated at any of Steps 633, 638, 643, 648 are stored in the items 875, 876 of the resource candidate information (
Next, an example of the process executed by the I/O path candidate information creation unit 032 is explained with reference to
The I/O path candidate information creation unit 032 has two provisional tables including a storage-side port list and an I/O path candidate list. The storage-side port list has the same columns (items 871 to 876 in
The I/O path candidate list, on the other hand, contains the information including a server-side port name, a server-side port average transfer rate, a storage subsystem name, a storage-side port name, a storage-side port average transfer rate, an array group name, an array group average response time and a cache partition name. The table also contains the cache partition average hit ratio, the maximum importance degree of the applications sharing the resources, and the maximum importance degree of the applications sharing the I/O peak time zone.
At Step 655, from the resource candidate information 086 (
In the case where the condition designated by the pulldown menu 921 is the “average transfer rate of the storage-side ports”, for example, the rows of the storage-side ports 302 failing to satisfy the condition are removed from the resource candidate information 086 (
In the case where the condition designated by the pulldown menu 921 is “the average response time of the array groups”, for example, the rows having the average performance value not more than the value (the threshold value of the average response time of the array groups) input to the input column 927 of the input view 920 (
In the case where the condition designated by the pulldown menu 921 is “the maximum importance degree of the application using the resources”, for example, only the rows having the importance degree not more than the maximum importance degree of the resources (the server-side ports, etc. for example) input to the input column 927 of the input view 920 (
Further, in the case where the condition designated by the pulldown menu 921 is “not selected”, all the rows of the resource candidate information 086 are extracted and the process proceeds to Step 660.
Step 655 shown in
At Step 660, only the resources of “the server-side ports” are extracted from the resources (the resources not excluded) extracted at Step 655. Specifically, from the rows making up the resource candidate information 086 (
At Step 665, from the resources (the resources not excluded) extracted at Step 655, only the resources of “the storage-side ports” are extracted, and the rows extracted are stored in the storage-side port list (the table having the same items as the items 871 to 877 in
Step 670 checks whether the storage-side port list created at Step 665 is vacant or not (the number of rows is zero or not), and if vacant (YES at Step 670), the process proceeds to Step 695, while if not vacant (NO at Step 670), the process proceeds to Step 675.
At Step 675, from the storage-side port list stored at Step 665, one value of the storage-side ports 302 is retrieved, and deleted from the storage-side port list.
At Step 680, the array group 301 associated with the same storage subsystem 300 as the storage-side port list is extracted from the resources extracted at Step 655. Specifically, from the resources (the rows including the resources) extracted at Step 655, the rows containing the server/storage subsystem name 872 coincident with the server/storage subsystem name of the storage-side port list in the resource type of “the array groups” are extracted.
At Step 685, the cache partition 303 associated with the same storage subsystem as the storage-side port list is extracted from the resources extracted at Step 655. Specifically, from the resources (the rows including the resources) extracted at Step 655, the rows containing the server/storage subsystem name 872 coincident with the server/storage subsystem name of the storage-side port list in the resource type of “the cache partitions” are extracted.
At Step 690, the information representing all possible combinations of the resources extracted at Steps 660, 675, 680, 685 are stored in the I/O path candidate list. Specifically, the process described below is executed for all the possible combinations configured by retrieving one row each from the rows extracted at Step 660, the rows deleted at Step 675 and extracted at Step 680 and the rows extracted at Step 685.
First, the resource name 873 and the average performance value 874 on the rows extracted at Step 660 are stored in the server-side port name and the server-side port average transfer rate, respectively, of the I/O path candidate list. Next, each value of the server/storage subsystem name 872, the resource name 873 and the average performance value 874 on the rows retrieved at Step 675 is stored in the storage subsystem name, the storage-side port name and the storage-side port average transfer rate, respectively, of the I/O path candidate list.
Next, each value of the resource name 873 and the average performance value 874 on the rows extracted at Step 680 are stored in the array group name and the array group average response time of the I/O path candidate list.
Then, each value of the resource name 873 and the average performance value 874 on the rows extracted at Step 685 are stored in the cache partition name and the cache partition average hit ratio, respectively, of the I/O path candidate list.
Finally, with regard to the rows extracted at Step 660, the rows extracted at Step 675 and the rows extracted at Step 685, the maximum value of the maximum importance degree 875 of the applications using the resources and the maximum value of the maximum importance degree 876 of the applications sharing the I/O peak time zone are determined. The two maximum values thus determined are stored in the maximum importance degree of the applications sharing the resources of the I/O path candidate list and the maximum importance degree of the applications sharing the I/O peak time zone, respectively. This process is executed for all the combinations described above (the rows extracted at Steps 660, 675, 680, 685), and then the process returns to Step 670.
At Step 695, the contents of the I/O path candidate list (the information making up the display screen view shown in
The outer interface 041 that has received the I/O path candidate list displays the display screen view indicating the particular I/O path candidate list on the display unit 091. As a result, the display unit 091 displays the I/O path candidate between the application server 100 and the storage subsystem 300.
The display screen view 940 indicating the I/O path candidate list is shown in
As shown in
Through this display screen view 940, the user confirms the I/O path candidate between the application server 100 and the storage subsystem 300, for example, selects the optimum I/O path from the candidates and thus can introduce a new application to the application server 100. For example, the I/O path designated by the path candidate number “1” or the I/O path designated by the path candidate number “2” can be selected from the display screen view 940.
In addition, the I/O path candidate displayed on the display screen view 940 constitutes the I/O path satisfying the conditions designated from the pulldown menu 921 of the input view 920 shown in
Assume that the user designates the condition “the maximum importance of the application using the resources” by the pulldown menu 921 of the input view 920 shown in
In this case, based on the importance degree 844 of the application information 070 (
In the case where the user designates the condition “the maximum importance degree of the applications not sharing the I/O peak time zone” on the pulldown menu 921 of the input view 920 shown in
In this case, the CPU 000A of the performance management server 000 extracts the I/O path satisfying the conditions (1) and (2) described below, from the resource list (I/O path) acquired at Step 605 shown in
As described above, according to this embodiment, assume that the CPU 000A of the performance management server 000 receives a request for newly assigning the application input through the input view 910 shown in
[Modifications]
This invention is not limited to the embodiments described above. The embodiments are described above with reference to a case in which one condition is designated on the input view 920 shown in
For example, an I/O path candidate satisfies two conditions, i.e. a resource not used by the application exceeding a designated importance degree and a resource used only by the existing application not sharing the I/O peak time zone with a new application. Even in the case where the user assigns the resources to the new application using the I/O path cited as the candidate, the important application exceeding the designated importance degree is not affected while at the same time preventing the I/O collision during the I/O peak time zone shared by both the new application and the existing application.
In the case where the display screen view 940 shown in
[Example of Detailed Display of I/O Path Candidates]
Further, the output interface 041, instead of displaying the I/O path candidate on the display unit 091 through the display screen view 940 shown in
The display screen view 960 shown in
[Example of Process for Detailed Display of I/O Path Candidates]
Next, an example of the process executed by the output interface 041 and the I/O path candidate information creation unit 032 in the case where the display screen view 960 shown in
In this case, the user designates one I/O path in the display screen view 940 shown in
Specifically, in the case where the path candidate number is selected by the user operation on the display screen view 940 shown in
The I/O path candidate information creation unit 032 acquires the values of the server-side port name, the storage subsystem name, the storage-side port name, the array group name and the cache partition name from the output interface 041. Then, the I/O path candidate information creation unit 032 extracts, from the configuration information 090 (
Next, the I/O path candidate information creation unit 032 acquires the combination of the values of the server name 801 and the file system name 802 indicated on the row of the extracted configuration information 090 (
Next, the I/O path candidate information creation unit 032 extracts, from the application information 070 (
The output interface 041, based on the values of the particular I/O peak time zone 845, displays the application display column 968 (of the server-side ports 102) of the display screen view 960 (
Next, the I/O path candidate information creation unit 032 extracts, from the configuration information 090 (
Next, the I/O path candidate information creation unit 032 extracts, from the application information 070 (
The output interface 041, based on the value of the I/O peak time zone 845, displays a rectangle 972 in the application display column 969 (that of the storage-side ports 302) of the display screen view 960 (
Next, the I/O path candidate information creation unit 032 extracts, from the configuration information 090 (
Next, the I/O path candidate information creation unit 032 extracts, from the application information 070 (
The output interface 041, based on the value of the I/O peak time zone 845, displays a rectangle 972 in the application display column 970 (that of the array group 301) of the display screen view 960 (
Next, the I/O path candidate information creation unit 032 extracts, from the configuration information 090 (
Next, the I/O path candidate information creation unit 032 extracts, from the application information 070 (
The output interface 041, based on the value of the I/O peak time zone 845, displays a rectangle 972 in the application display column 971 (that of the cache partitions 303) of the display screen view 960 (
Finally, the output interface 041, based on the input value (time zone) of the input columns 912, 913 of the I/O peak time zone of the input view 910 (
In this way, the CPU 000A of the performance management server 000 calculates the I/O peak time zone of the application from the various performance information 112, 212, 213, 214 (
This embodiment has been explained with reference to a case in which the I/O peak time zone of the existing application is displayed on the display screen view 960 shown in
Also, unlike in this embodiment in which the performance management server 000 acquires the I/O peak time zone of the existing application on the input view 900 shown in
Specifically, the threshold of the performance value for each resource used by the existing application is acquired on the input view 900 (
The resource candidate information creation unit 031 determines, based on the threshold value, using the performance information 060 for each time zone, whether the performance value of each resource used by the existing application has reached the I/O peak. The time zone in which at least one resource exceeds the threshold value is regarded as the I/O peak time zone of the same existing application. The performance value used for this determination is the value (period) input to the input column 916 of the input view 910 (
By doing so, the I/O peak time zone of each application can be determined automatically based on the threshold value designated by the user, and in accordance with the I/O peak time zone thus determined, the I/O path candidate including the resources used only by the existing application not sharing the I/O peak time zone with the new application can be displayed. As a result, even in the case where the I/O amount issued by the application is subjected to a protracted variation, an always appropriate I/O path candidate can be displayed.
Further, the performance management server 000 can carry out the distributed process by combining a plurality of computers unlike in the aforementioned case where only one computer is used.
It should be further understood by those skilled in the art that although the foregoing description has been made on embodiments of the invention, the invention is not limited thereto and various changes and modifications may be made without departing from the spirit of the invention and the scope of the appended claims.
Number | Date | Country | Kind |
---|---|---|---|
2005-245528 | Aug 2005 | JP | national |
Number | Name | Date | Kind |
---|---|---|---|
6732104 | Weber | May 2004 | B1 |
6748489 | Soejima et al. | Jun 2004 | B2 |
6760775 | Anerousis et al. | Jul 2004 | B1 |
6769071 | Cheng et al. | Jul 2004 | B1 |
6895472 | Neiman et al. | May 2005 | B2 |
6895485 | DeKoning et al. | May 2005 | B1 |
6957433 | Umberger et al. | Oct 2005 | B2 |
7143008 | Ochi et al. | Nov 2006 | B2 |
7249347 | Chang et al. | Jul 2007 | B2 |
20030223428 | Gonzalez et al. | Dec 2003 | A1 |
Number | Date | Country | |
---|---|---|---|
20070061446 A1 | Mar 2007 | US |