License-based path management method for a computer system

An access path management method for a storage network system where a plurality of paths are formed between a data storage system and a host computer which uses the data storage system, an integrated management server monitors port resources constantly. When a port overloads or when a failure occurs in a port, a previously unavailable port is made available and then an access path passing through this port is created to thereby secure a necessary bandwidth. When the load on a port is reduced, an access path that passes through this port is deleted to free a part of the bandwidth, and then the port that is currently in use is invalidated. A license management server for managing how the ports are used, charges by counting in only the length of time during which the port is in use.

CLAIM OF PRIORITY

The present application claims priority from Japanese patent application P2005-282203 filed on Sep. 28, 2005, the content of which is hereby incorporated by reference into this application.

BACKGROUND

This invention relates to a method and apparatus for managing an access path between a host computer and a data storage system. More specifically, this invention relates to access path management in a multipath system where a data storage system is accessed via a plurality of access paths.

The storage capacity of data storage systems run by business organizations and the like is increasing from several reasons including a law that demands long-term storage of data coming into force and data taking a multimedia form. One measure to accommodate the increased storage capacity is to build a SAN (Storage Area Network), with which data sharing, high-speed access, and the like are made possible by connecting a plurality of host computers to disk arrays of a plurality of data storage systems through Fibre Channel or the like.

Placed between the host computers and the data storage systems are a plurality of equipments suitable for SAN connection, such as an HBA port, which is a port of a host computer bus adapter (HBA) connecting the host computers to the SAN, a CHA port, which is a port of a channel adapter (CHA) connecting the data storage systems to the SAN, a Fibre Channel switch, and a hub.

Connecting these equipments between the host computers and the data storage systems creates a plurality of physical paths.

The physical paths created between the host computers and the data storage systems bring path redundancy, which is effective against bandwidth shortage due to overload and such failures as one due to an out-of-order equipment.

The data storage systems each have a storage area composed of a plurality of physical disks. The storage area is partitioned into a plurality of logical volumes, and each of the logical volumes is provided to a specific host computer.

The host computer can choose from the plurality of physical paths laid between the host computer and the data storage systems a route to access the logical volume (hereinafter referred to as access path).

A SAN employs multipath management in which a plurality of access paths are set for one logical volume and the set plurality of access paths are managed.

Multipath management switches access paths when one of the equipments between the host computers and the data storage systems breaks down, thereby enabling the host computers to continue accessing the data storage systems. Multipath management can also balance the access load by using a plurality of access paths concurrently.

Companies that sell SAN-related equipments employ such a sales system for selling an equipment with a limited use of resources at a low price and then selling a right to lift the use limitations (hereinafter referred to as license) to a user who needs more resources of the equipment than initially allowed.

Users can lower the cost of running a SAN by using the minimum amount of equipment resources necessary for normal operation of the SAN and adding more resources as the need arises.

An example of this type of technology is found in JP 2005-165440 A, which discloses a technique of enabling a user to use only an actually necessary number of ports in a data storage system having a plurality of ports.

SUMMARY

In such a computer system, setting a plurality of access paths between a host computer and a logical volume of a disk device reduces the load per access path. It also enables the host computer to access the logical volume of the disk device when a failure occurs along one access path by using another access path.

However, an administrator (user) of the host computer tends to desire to use a minimum number of access paths in order to keep the running cost low in the case where the administrator of the host computer is charged by the amount of resources (CHA ports, for example) of the data storage system that he/she uses.

The administrator of the host computer is also required to go through a purchase procedure for adding resources if lowering of access path QoS or the like necessitates an increase in number of available CHA ports of the data storage system.

This invention has been made in view of the above, and it is therefore an object of this invention to provide an access path management method that needs a minimum number of access paths to keep access path QoS in a computer system having a plurality of access paths.

An embodiment of invention is characterized in that in a method of managing a plurality of access paths in a computer system, the computer system including: a data storage system including a storage area and a plurality of ports; a host computer coupled to the data storage system; an integrated management server for managing a state of the data storage system and a state of the host computer; and a license management server for managing license keys used for making the ports available/unavailable, the plurality of access paths being set between the data storage system and the host computer, whereby the host computer can access the storage area, the method including the steps of: requesting the license management server to issue a license key for validating one of the ports when the access path is set; sending the license key obtained in the requesting step to the data storage system in order to validate an unused port that is currently unavailable among the ports; receiving a notification of a change in an available/unavailable state of the unused port from the data storage system; and creating an access path passing through the unused port that has been made available with the license key upon reception of the notification of the change in the available/unavailable state of the unused port.

According to the embodiment of invention, access path QoS can be maintained with a minimum number of access paths and port resources can be used efficiently.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT

An embodiment of this invention will be described below with reference to the accompanying drawings.

FIG. 1is a system configuration diagram showing the configuration of a computer system according to a first embodiment of this invention.

This computer system has an integrated management server100, a license management server300, a host computer500a, a host computer500b, a host computer500c, a data storage system600a, and a data storage system600b. In the following description, “host computer500” will be used to collectively refer to the host computer500a, the host computer500b, and the host computer500c, and “data storage system600” will be used to collectively refer to the data storage system600aand the data storage system600b.

The host computers500ato500care connected to the data storage systems600aand600bby a first network400. The first network400is a network suitable for data communications, such as a SAN which follows a Fibre Channel protocol or an IP-SAN which follows a TCP/IP protocol.

The integrated management server100, the license management server300, the host computers500ato500cand the data storage systems600aand600bare connected to one another by a second network410. The second network410is a network communications over which are made by a TCP/IP protocol.

When the first network400is an IP-SAN, the first network400and the second network410may together reside in a physically single IP network.

The host computer500a, the host computer500band the host computer500chave host bus adapters (HBAs)510ato510f, which are network connecting interfaces, and are connected to the first network400via the HBAs510ato510f. In the following description, “HBA510” will be used to collectively refer to the host bus adapters510ato510f.

Specifically, the HBA510is, as shown inFIG. 4, equipped with a plurality of HBA ports520for connecting to the first network400. Connecting the HBA ports520to the first network400connects the host computer500to the first network400.

A path management program540of the host computer500gathers information about paths, and balances the load by selecting access paths in accordance with the I/O load.

The data storage system600aand the data storage system600bhave channel adapters (CHAs)610ato610h, which are network connecting interfaces, and are connected to the first network400via the CHAs610ato610h. In the following description, “CHA610” will be used to collectively refer to the channel adapters610ato610h.

Specifically, the CHA600is equipped with a plurality of CHA ports620for connecting to the first network400. Connecting the CHA ports620to the first network400connects the data storage system600to the first network400.

The data storage system600has a logical volume630, which is a logical access unit.

A data storage system management program650of the data storage system600performs such processing as monitoring the state of the CHA610in the data storage system600, setting validation and invalidation of the CHA ports620, and creating and deleting an access path.

A plurality of access paths through which the host computer500accesses the logical volume630in the data storage system600are set between the host computer500and the data storage system600. An access path is a route from one of the HBA ports520of the HBA510to the logical volume630via one of the CHA ports620of the CHA610.

The license management server300uses a license management program350to manage license keys with which the CHA ports620of the data storage system600are made available or unavailable.

The integrated management server100uses an integrated path-management program160to manage the state of the host computer500and of the data storage system600, and orders to execute processing of validating or invalidating the CHA ports620of the data storage system600, processing of validating or invalidating access paths, and other processing.

The port validating or invalidating processing of the CHA ports620, the access path validating or invalidating processing, and others may be executed when the administrator of this computer system inputs to the integrated management server100the number of CHA ports620and/or access paths that are necessary.

The operation of this computer system will be outlined below.

The integrated management server100executes the integrated path-management program160periodically (at predetermined time intervals, for example). Alternatively, the integrated management server100executes the integrated path-management program160when the path management program540of the host computer500detects a failure of an access path and notifies the integrated management server100of the failure.

The integrated path-management program160performs the following processing:

The integrated path-management program160first gathers information about the CHA ports620from each data storage system600. From the gathered information, the integrated path-management program160detects a failure or overload of an access path. An access path overloads when the used ratio of one of the CHA ports620through which the access path passes reaches or exceeds a given threshold. For instance, upon detecting that an access path is overloading or experiencing a failure, the integrated path-management program160requests the license management server300to issue a license to use one of the CHA ports620of the data storage system600that are available to the host computer500.

The license management server300receives the request and sends a license for validating one of the CHA ports620of the data storage system600that are available to the host computer500, to the integrated management server100. Upon receiving the license, the integrated path-management program160sends the license to the data storage system600to request the data storage system600to validate this CHA port620. Based on the received license, the data storage system management program650of the data storage system600validates the CHA port620that is not in use.

The integrated path-management program160is notified that the CHA port620of the data storage system600is now validated, and requests the data storage system management program650of the data storage system600to validate an access path in order to set an access path from the host computer500to the logical volume630that is used by the host computer500. This enables the host computer500to access the logical volume630via the newly set access path.

Upon recovery from the failure or solution of the overload of the CHA port620, the newly set access path is invalidated. Specifically, the integrated path-management program160detects recovery from the failure or solution of the overload from information about the path. Overload of the CHA ports620is solved when the used ratio of the CHA ports620becomes equal to or lower than a given threshold.

Upon detecting recovery from the failure or solution of the overload, the integrated path-management program160requests the data storage system management program650to invalidate an access path using one of the CHA ports620that is to be invalidated. The data storage system management program650notifies the integrated path-management program160of completion of invalidating this path.

After notified of the invalidation completion, the integrated path-management program160requests the license management server300to issue a license to invalidate the one of the CHA ports620of the data storage system600that is to be invalidated.

The license management server300receives the request and sends a license for invalidating the CHA port620of the data storage system that is currently used by the host computer500to the integrated management server100. The integrated path-management program160sends the license to the data storage system600and requests the data storage system600to invalidate this CHA port620.

The data storage system management program650invalidates the CHA port620based on the received license, and notifies the integrated management server100of the fact that the CHA port620is now invalidated.

In this manner, the license management server300manages licenses for validating and invalidating the CHA ports620. The license management server300also manages how much users of the CHA ports620are charged in accordance with their frequency of use of the ports (e.g., utilization time of the ports). The license management server300may manage fees sorted by the type of cause that propels users to use the CHA ports620. This makes it possible to, when, for instance, a failure in the data storage system600anecessitates addition of new CHA ports620, charge the administrator of the data storage system600a. In another example where overload in the host computer500anecessitates addition of new ports, this makes it possible to charge the administrator of the host computer500a.

Furthermore, the license management server300may manage fees sorted by the cause of failure, which can be classified into failure in the data storage system600, network failure, and failure in a port of the host computer500. This makes it possible to charge the administrator of the data storage system600, the administrator of the host computer500, and the administrators of the networks.

Next, the configuration of each component of this computer system will be described in detail.

FIG. 2is a block diagram showing an example of the configuration of the integrated management server100according to the first embodiment.

The integrated management server100has a processor710a, a main memory730a, a network interface (NIC)720a, and a disk device110.

The processor710a, the NIC720a, the main memory730a, and the disk device110are connected to one another by a system bus700a.

The NIC720ais an interface for communicating, via the second network410, with components connected to the integrated management server100.

The disk device110stores threshold information120, path configuration information130, and port information140, which will be described later.

The main memory730astores the integrated path-management program160, a network communication program150, and a system program740a, which are usually stored in a non-volatile storage medium (for example, the disk device110). These programs are transferred from the disk device110to the main memory730aand executed as the need arises by the processor710a.

A part of the main memory730ais set aside as a work area750a, which is used to store temporarily needed data in executing the programs.

The integrated path-management program160includes an integrated path-management subprogram170, a port state updating subprogram180, a path state updating subprogram190, a port validation judging subprogram200, a port validating subprogram210, a path validating subprogram220, a port invalidation judging subprogram230, a port invalidating subprogram240, and a path invalidating subprogram250.

The port state updating subprogram180gathers information on the used ratio of the bandwidth of the CHA ports620and information on the state of the CHA ports620. The port state updating subprogram180updates the port information140based on the gathered information, and executes port state updating processing in which the updated port information140is stored in the disk device110.

The path state updating subprogram190gathers information on the state of access paths between the host computer500and the data storage system600. The path state updating subprogram190updates the path configuration information130based on the gathered information, and executes path state updating processing in which the updated path configuration information130is stored in the disk device110.

The port validation judging subprogram200executes port validation judging processing in which whether it is necessary to make additional CHA ports620available or not is judged from at least one of the used ratio of the bandwidth of the CHA ports620and the state of the CHA ports620.

The port validating subprogram210executes port validating processing in which the CHA ports620that are currently unavailable are validated and thus made available.

The path validating subprogram220executes path validating processing for creating new access paths that pass through the CHA ports620that have been made available by the processing of the port validating subprogram210.

The port invalidation judging subprogram230executes port invalidation judging processing in which whether it is necessary to turn currently available CHA ports620unavailable or not is judged from at least one of the used ratio of the bandwidth of the CHA ports620and the state of the CHA ports620.

The port invalidating subprogram240executes port invalidating processing in which currently available CHA ports620are invalidated and thus made unavailable.

The path invalidating subprogram250executes path invalidating processing for deleting access paths that pass through the CHA ports620to be invalidated.

The integrated path-management subprogram170controls the port state updating subprogram180, the path state updating subprogram190, the port validation judging subprogram200, the port validating subprogram210, the path validating subprogram220, the port invalidation judging subprogram230, the port invalidating subprogram240, and the path invalidating subprogram250to execute processing of these programs in order.

The system program740aprovides basic processing functions for executing various programs including the integrated path-management program160, for example, a function of inputting/outputting data with an external device coupled to the integrated management server100.

The network communication program150is a program that enables the integrated management server100to communicate with other components of the computer system via the second network410.

The processor710aexecutes various programs stored in the main memory730a.

The NIC720acontrols network communications requested by the network communication program150to communicate with an external device coupled to the integrated management server100.

FIG. 3is a block diagram showing an example of the configuration of the license management server300according to the first embodiment.

The license management server300has a disk device310, a processor710b, a network interface (NIC)720b, and a main memory730b.

The processor710b, the NIC720b, the main memory730b, and the disk device310are connected to one another by a system bus700b.

The NIC720bis an interface that communicates, via the second network410, with components connected to the license management server300.

The disk device310stores charging information320and charge amount information330, which will be described later.

The main memory730bstores the license management program350, a network communication program340, and a system program740b, which are usually stored in a non-volatile storage medium (for example, the disk device310). These programs are transferred from the disk device310to the main memory730band executed as the need arises by the processor710b.

A part of the main memory730bis set aside as a work area750b, which is used to store temporarily needed data in executing the programs.

The license management program350includes a key issuing subprogram360. The key issuing subprogram360executes key issuing processing for management of license keys with which the CHA ports620are make available or unavailable and management of fees charged in accordance with how much users use the CHA ports620.

The system program740bprovides basic processing functions for executing various programs including the license management program350, for example, a function of exchanging data with an external device coupled to the license management server300.

The network communication program340is a program that enables the license management server300to communicate with other components of the computer system via the second network410.

The processor710bexecutes various programs stored in the main memory730b.

The NIC720bcontrols network communications requested by the network communication program340to communicate with an external device coupled to the license management server300.

FIG. 4is a block diagram showing an example of the configuration of the host computer500according to the first embodiment. The host computer500a, the host computer500b, and the host computer500chave the same configuration.

The host computer500has a processor710c, a network interface (NIC)720c, a main memory730c, and the HBA510.

The host computer500is connected to the first network400via a network connecting interfaces (the HBA510). The HBA510has a plurality of HBA ports520to connect with the first network400.

The main memory730cstores the path management program540, an application program570, a network communication program530, and a system program740c, which are usually stored in a non-volatile storage medium (for example, a disk device that is omitted from the drawing). These programs are transferred from the not-shown disk device to the main memory730cand executed as the need arises by the processor710c.

A part of the main memory730cis set aside as a work area750c, which is used to store temporarily needed data in executing the programs.

The path management program540provides a multipath logical volume, which will be described later.

The path management program540includes a path information gathering subprogram550and a path load balancing subprogram560.

The path information gathering subprogram550executes path information gathering processing to collect information that makes up an access path between the host computer500and the data storage system600, and creates the path configuration information130.

The path load balancing subprogram560manages a plurality of access paths, namely, multi-access paths, between the host computer500and the data storage system600, and controls switching of multi-access paths. When a failure occurs along one access path, the path load balancing subprogram560executes path load balancing processing to switch to an access path that is not experiencing a failure.

The application program570requests data input/output (I/O request) to/from the data storage system600.

For an I/O request issued by the application program570, the path load balancing subprogram560chooses one of the HBA ports520where the load is small. The I/O request is sent to the data storage system600via the chosen HBA port520.

The system program740cprovides basic processing functions for executing various programs, for example, a function of exchanging data with an external device coupled to the host computer500.

The network communication program530is a program that enables the host computer500to communicate with an external device coupled to the host computer500via the second network410.

The processor710cexecutes various programs stored in the main memory730c.

The NIC720ccontrols network communications requested by the network communication program530to communicate with an external device coupled to the host computer500.

FIG. 5is a block diagram showing an example of the configuration of the data storage system600according to the first embodiment. The data storage system600aand the data storage system600bhave the same configuration.

The data storage system600has a processor710d, a network interface (NIC)720d, a main memory730d, disk drives635aand635b, a disk control unit636, and the CHA610.

The processor710d, the network interface (NIC)720d, the main memory730d, the disk drives635aand635b, the disk control unit636, and the CHA610are connected to one another via a system bus700d.

The data storage system600is connected to the first network400via a network connecting interfaces (the CHA610). The CHA610has a plurality of CHA ports620to connect with the first network400.

The data storage system600has disk drives635(the disk drive A635a, the disk drive B635b. . . ), and provides the logical volume630where data is stored.

The disk control unit636is responsible for overall management of disk drives. Specifically, the disk control unit636controls a RAID group constituted of the disk drives635. The disk control unit636also controls data write in the logical volume630of the disk drives635or data read out of the logical volume630of the disk drives635in accordance with an I/O request made by the CHA ports620.

The logical volume630is a logical unit of access from the host computer500. The logical volume630is formed by dividing a RAID group, which is constituted of the disk drives635, into areas of given size.

The main memory730dstores the data storage system management program650, the network communication program640, and a system program740d, which are usually stored in a non-volatile storage medium (for example, a non-volatile memory omitted from the drawing). These programs are transferred from the not-shown, non-volatile memory to the main memory730dand executed as the need arises by the processor710d.

A part of the main memory730dis set aside as a work area750d, which is used to store temporarily needed data in executing the programs.

The data storage system management program650includes a port information gathering subprogram660, a port setting subprogram670, and a path setting subprogram680.

The port information gathering subprogram660executes port information gathering processing for gathering information on the CHA ports620such as the ports' used ratio and state.

The port setting subprogram670executes port setting processing to control validation and invalidation of the CHA ports620in accordance with license keys.

The path setting subprogram680executes path setting processing to control setting up and removal of routes to the logical volume630from the CHA ports620which constitute a part of access paths.

The system program740dprovides basic processing functions for executing various programs, for example, a function of exchanging data with an external device coupled to the data storage system600.

The network communication program640is a program that enables the data storage system600to communicate with an external device coupled to the data storage system600via the second network410.

The processor710dexecutes various programs stored in the main memory730d.

The NIC720dcontrols network communications requested by the network communication program640to communicate with an external device coupled to the data storage system600.

FIG. 6is a system configuration diagram showing an example of the configuration of the computer system according to the first embodiment of this invention when the first network400is a SAN.

Ports of a SAN switch A430aand of a SAN switch B430bare connected to the host computer500avia the HBA ports520of the HBA510, and to the data storage system600avia the CHA ports620of the CHA610.

From the HBA ports520, here the HBA port520a, the HBA port520b, and the HBA port520c, a plurality of physical paths are formed to reach the CHA ports620, here, the CHA port620a, the CHA port620b, the CHA port620c, the CHA port620d, the CHA port620e, and the CHA port620f, via the SAN switch A430aand the SAN switch B430b. A physical path is formed also between the SAN switch A430aand the SAN switch B430b.

FIG. 6shows one host computer,500a, and one data storage system,600a, but the configuration ofFIG. 6is also applicable to a case where the computer system has a plurality of host computers500and a plurality of data storage systems600.

FIG. 7is a diagram showing an example of access paths in the computer system ofFIG. 1. Physical paths, which are unnecessary for the description here, are omitted fromFIG. 7and logical access paths alone are shown inFIG. 7.

An access path is a logical route set on chosen one of a plurality of physical paths present between the host computer500and the data storage system600.

An access path is also defined as a logical route that passes through at least three points, the HBA port520, the CHA port620, and the logical volume630.

The data storage system600sets an access path by having the path setting subprogram680execute the path setting processing.

A method of setting an access path is described below.

First, a specific logical volume630is allocated to a specific CHA port620of the data storage system600to create an access path on the side of the data storage system600. The access path on the side of the data storage system600is a portion of a whole access path.

The access path on the side of the data storage system600is open only to a specific HBA port520. In other words, allocation between one CHA port620and one logical volume630is set such that this logical volume630can be accessed via this CHA port620only from a specifically chosen HBA port520.

The access path on the side of the data storage system600is open only to a specific HBA port520. In other words, allocation between one CHA port620and one logical volume630is set such that this logical volume630can be accessed via this CHA port530only from a specifically chosen HBA port520.

In the example shown inFIG. 7, a logical volume A630ais allocated to a CHA port620a. The allocation between the logical volume A630aand the CHA port620ais set such that the logical volume A630acan be accessed via the CHA port620aonly from the HBA port520a.

A logical volume B630bis allocated to the CHA port620aand the CHA port620b. The allocation between the logical volume B630band the CHA port620ais set such that the logical volume B630bcan be accessed via the CHA port620aonly from the HBA port520b. The allocation between the logical volume B630band the CHA port620bis set such that the logical volume B630bcan be accessed via the CHA port620bonly from the HBA port520c.

Created as a result are an access path420aleading to the logical volume630avia the CHA port620aand the HBA port520a, an access path420bleading to the logical volume630bvia the CHA port620aand the HBA port520b, and an access path420cleading to the logical volume630bvia the CHA port620band the HBA port520c.

The path management program540provides a multipath logical volume525.

The multipath logical volume525makes it look like the logical volume630in the data storage system600is located in the host computer500.

The multipath logical volume525also makes it seem like there is only one logical volume630on the host computer500when a plurality of access paths lead to one logical volume630, which otherwise causes as many logical volumes630as the number of access paths connected to the logical volume630to appear on the host computer500.

In the example shown inFIG. 7, one access path,420a, is connected to the logical volume A630aand a multipath logical volume A525amakes it seem like the logical volume A630ais located in the host computer500.

To the logical volume B630b, two access paths,420band420c, are connected and a multipath logical volume B525bmakes it seem like only one logical volume B is on the host computer500.

There are two access paths420band420cbetween the logical volume B630band the multipath logical volume525b, and the path load balancing subprogram560of the path management program540balances the load to access the logical volume B630bby alternately allocating data I/O to and from the logical volume B630bto the two access paths through a load balancing algorithm such as round robin.

A plurality of physical paths are secured for redundancy for the CHA ports620of the data storage system600. The CHA ports620that are not part of any access paths at present, here, the CHA ports620c,620d,620e, and620f, are kept in an unavailable state.

The CHA ports620c,620d,620e, and620fwhich are currently unavailable and not in use serve as auxiliary ports for when the CHA ports620aand620bwhich are available and part of access paths at present overload, suffer a failure, or are otherwise incapacitated. The unavailable CHA ports620c,620d,620e, and620fare connected to the HBA ports520a,520b, and520cin advance, to thereby form physical paths for redundancy.

To form physical paths, all ports between the host computer500and the data storage system600are connected to one another in advance as in the example shown inFIG. 6.

FIG. 8is a diagram showing an example of the configuration of a table of the threshold information120according to the first embodiment.

The threshold information120is kept in the disk device110of the integrated management server100.

The threshold information120includes data storage system information12001, CHA information12002, CHA port information12003, an upper threshold12004, and a lower threshold12005.

The data storage system information12001is a unique identifier for identifying the data storage system600. The CHA information12002is a unique identifier for identifying the CHA610. The CHA port information12003is a unique identifier for identifying the CHA port620.

The upper threshold12004indicates a preset value that is compared against the used ratio of the CHA port620so that the port validation judging subprogram180can judge whether the port is overloaded or not. The upper threshold12004can be changed by the administrator of the integrated management server100.

The lower threshold12005indicates a preset value that is compared against the used ratio of the CHA port620so that the port invalidation judging subprogram230can judge whether the port is lightly loaded or not. The lower threshold12005can be changed by the administrator of the integrated management server100.

In the first embodiment, the upper threshold12004and the lower threshold12005are expressed by the used bandwidth ratio (%), which is the ratio of how much of the maximum usable bandwidth of the CHA port620is consumed. Alternatively, the amount of data (mega bit/second (Mbps)) transferred through the CHA port620may be employed for the upper threshold12004and the lower threshold12005.

In the case where a plurality of host computers500share one CHA port620, the threshold information120may be set individually for each of the plurality of host computers500.

FIG. 9is a diagram showing an example of the configuration of a table of the path configuration information130according to the first embodiment.

The path configuration information130is kept in the disk device110of the integrated management server100.

The path configuration information130includes path information13001, host information13002, HBA information13003, HBA port information13004, multipath logical volume information13005, data storage system information13006, CHA information13007, CHA port information13008, and logical volume information13009.

The path information13001is a unique identifier for identifying an access path. The host information13002is a unique identifier for identifying the host computer500. The HBA information13003is a unique identifier for identifying the HBA510.

The HBA port information13004is a unique identifier for identifying the HBA port520. The multipath logical volume information13005is a unique identifier for identifying the multipath logical volume525. The data storage system information13006is a unique identifier for identifying the data storage system600.

The CHA information13007is a unique identifier for identifying the CHA610. The CHA port information13008is a unique identifier for identifying the CHA port620. The logical volume information13009is a unique identifier for identifying the logical volume635.

The path configuration information130is information for identifying the configuration of an access path. The path configuration information130is created through the path information gathering processing executed by the path information gathering subprogram550upon reception of requests periodically made through the path state updating processing, which is executed by the path state updating subprogram190.

FIG. 10is a diagram showing an example of the configuration of a table of the port information140according to the first embodiment.

The port information140is kept in the disk device110of the integrated management server100.

The port information140includes data storage system information14001, CHA information14002, CHA port information14003, a used ratio14004, a last state14005, a latest state14006, and a copy flag14007.

The data storage system information14001is a unique identifier for identifying the data storage system600. The CHA information14002is a unique identifier for identifying the CHA610. The CHA port information14003is a unique identifier for identifying the CHA port620.

The used ratio14004is information indicating how much of the bandwidth of the CHA port620is consumed, and is expressed by the used bandwidth ratio of the CHA port620.

The last state14005is information indicating which of the three states “in use”, “not in use”, and “in failure” the CHA port620is in the last time. The latest state14006is information indicating which of the three states “in use”, “not in use”, and “in failure” the latest state of the CHA port620is.

The copy flag14007is a flag indicating whether the CHA port620is a copy port or an original port. In the case where the CHA port620is a copy port, values for identifying the original port from which the copy port is copied, namely, the data storage system information14001, CHA information14002, and CHA port information14003of the original port, are kept as the copy flag14007.

The port information140is created through the port information gathering processing executed by the port information gathering subprogram660upon reception of requests periodically made through the port state updating processing, which is executed by the port state updating subprogram180of the integrated path-management program160.

FIG. 11is a diagram showing an example of the configuration of a table of the charging information320according to the first embodiment.

The charging information320is kept in the disk device310of the license management server300.

The charging information320includes data storage system information32001, CHA information32002, CHA port information32003, a state flag32004, a validation cause32005, a validation start time32006, and an accumulated charge amount32007.

The data storage system information32001is a unique identifier for identifying the data storage system600. The CHA information32002is a unique identifier for identifying the CHA610. The CHA port information32003is a unique identifier for identifying the CHA port620. The data storage system information32001, the CHA information32002, and the CHA port information32003are information used to specify the CHA port620.

The state flag32004indicates the state of the CHA port620, the “state” here being valid (available) or invalid (unavailable).

The validation cause32005is information indicating why the CHA port620that is currently valid (available) has been validated. Specifically, the validation cause32005indicates whether the CHA port620has been purchased, is overloading, or experiencing a failure. The validation start time32006is information indicating the time when the CHA port620is validated. The year, month, date, and time at which validation is started are entered as the validation start time32006.

The accumulated charge amount32007is information indicating the amount of charge accumulated from the first time to the last time.

The charging information320is managed through the key issuing processing, which is executed by the license management program350of the license management server300.

FIG. 12is a diagram showing an example of the configuration of a table of the charge amount information330according to the first embodiment.

The charge amount information330includes a per-unit charge amount, is set in advance by the administrator, and is kept in the disk device310. The per-unit charge amount shows how much is charged hourly for the use of the CHA port620.

The charge amount information330, which in the first embodiment sets an hourly charge amount, may set an arbitrary amount charged by the unit of an arbitrary length of time.

Different per-unit charge amounts may be set to different CHA ports620.

FIG. 13is a diagram showing an example of the configuration of a table of latest port information900according to the first embodiment.

The latest port information900is information for updating the used ratio14004and the latest state14006in the port information140ofFIG. 10with the latest data. Once updated with the latest port information900, the port information140is stored in the disk device110of the integrated management server100.

The latest port information900includes data storage system information90001, CHA information90002, CHA port information90003, a used ratio90004, and a state90005.

The data storage system information90001is a unique identifier for identifying the data storage system600. The CHA information90002is a unique identifier for identifying the CHA610. The CHA port information90003is a unique identifier for identifying the CHA port620. The data storage system information90001, the CHA information90002, and the CHA port information90003are information used to specify the CHA port620.

The used ratio90004is information indicating the latest load of the CHA port620, and is expressed by how much of the bandwidth of the CHA port620is consumed. The state90005is information indicating which of the three states, “in use”, “not in use”, and “in failure”, the latest state of the CHA port620is.

FIG. 14is a flow chart for integrated path-management processing executed by the integrated path-management subprogram170according to the first embodiment.

The integrated path-management processing according to the first embodiment will be described first with reference toFIG. 14. Thereafter, a detailed description will be given on each characteristic processing that makes up the integrated path-management processing with reference toFIGS. 15 to 27.

The integrated management server100executes the integrated path-management subprogram170periodically (e.g., for every 10 minutes). The integrated management server100may execute the integrated path-management subprogram170when receiving a request for an additional access path bandwidth from the host computer500that detects a failure or overload of an access path.

The integrated path-management subprogram170first gathers information on the used ratio of the CHA ports620and information on the state of the CHA ports620in order to have the port state updating subprogram180update the port information140with the latest data. Then the port state updating processing is executed to update the port information140based on the gathered information (17001).

The integrated path-management subprogram170next gathers information on the state of access paths between the host computer500and the data storage system600with the use of the path state updating subprogram190in order to update the path configuration information130to the latest state. Then the path state updating processing is executed to update the path configuration information130based on the gathered information (17002).

The integrated path-management subprogram170chooses one CHA port620that is specified by the data storage system information14001, the CHA information14002, and the CHA port information14003in the port information140updated through the port state updating processing in the step17001(the chosen CHA port is hereinafter referred to as “CHA port P”). From an entry of the chosen CHA port P in the port information140, the data storage system information14001, the CHA information14002, the CHA port information14003, the used ratio14004, the last state14005, the latest state14006, and the copy flag14007are extracted and stored in the work area750a, which is secured in the main memory730aof the integrated management server100(17003).

Next, the integrated path-management subprogram170has the port validation judging subprogram200execute the port validation judging processing to judge whether it is necessary to validate the CHA port P or not (17004).

When it is judged in the step S17004that the CHA port P needs to be validated, the port validating subprogram210executes the port validation processing to validate the CHA port P and make the CHA port P available (17005).

The path validating subprogram220executes the path validating processing to create a new access path that passes through the CHA port P now made available by the port validating processing of the step17005(17006). Then the integrated path-management subprogram170proceeds to a step17007.

On the other hand, when it is judged in the step17004that validation of the CHA port P is unnecessary, the integrated path-management subprogram170moves to the step17007without executing the processing in the step17005and the step17006.

In the step17007, the integrated path-management subprogram170has the port invalidation judging subprogram230execute the port invalidation judging processing to judge whether it is necessary to invalidate the CHA port P or not.

When it is judged in the step17007that the CHA port P needs to be invalidated, the path invalidating subprogram250executes the path invalidating processing to delete an access path that passes through the CHA port P (17008).

Then the port invalidating subprogram240executes the port invalidating processing to invalidate the CHA port P and turn the CHA port P unavailable (17009), and the integrated path-management subprogram170proceeds to the step17010.

On the other hand, when it is judged in the step17007that invalidation of the CHA port P is unnecessary, the integrated path-management subprogram170moves to the step S17010without executing the processing in the step17008and the step17009.

In the step17010, the integrated path-management subprogram170checks the CHA port information14003of the port information140to judge whether there is any CHA port620that has not been chosen as the CHA port P, in other words, to judge whether there is any unprocessed CHA port620.

When it is judged in the step17010that there is an unprocessed CHA port620, the integrated path-management subprogram170returns to the step17002to choose a new CHA port620as the CHA port P.

When it is judged in the step17010that there is no CHA port620left unprocessed, the integrated path-management subprogram170ends the integrated path-management processing since every CHA port620has been processed.

In this embodiment, the integrated path-management subprogram170returns to the step17002when an unprocessed CHA port620is found in the step17010. Alternatively, the integrated path-management subprogram170may return to the step17001in order to process the unprocessed CHA port620based on the latest port state. If it is known that there has been no change in state of ports and paths, the integrated path-management subprogram170may return to the step17003.

FIG. 15is a flow chart for the port state updating processing executed by the port state updating subprogram180according to the first embodiment.

The port state updating subprogram180first requests, through the network communication program150, the data storage system600to execute the port information gathering processing in order to cause the port information gathering subprogram660of the data storage system600to execute the port information gathering processing (18001).

The network communication program150sends the request for execution of the port information gathering processing to the data storage system600via the second network410.

The data storage system600receives the request for execution of the port information gathering processing, and the port information gathering subprogram660executes the port information gathering processing (18002). Then the latest port information900including the latest used bandwidth ratio90004and state90005of the CHA ports620is created. The created latest port information900is sent to the integrated management server100.

The integrated management server100obtains the latest port information900from the network communication program150(18003).

Lastly, a value written as the latest state14006in an entry of the port information140whose data storage system information, CHA information, and CHA port information match the data storage system information90001, CHA information90002, and CHA port information90003of the latest port information900is copied to overwrite the last state14005(18004).

Then the used ratio14004and the latest state14006in this entry are overwritten with values of the used ratio90004and the state90005in the latest port information900. The updated port information140is stored in the disk device110(18005).

FIG. 16is a flow chart for the path state updating processing executed by the path state updating subprogram190according to the first embodiment.

The path state updating subprogram190first requests, through the network communication program150, the host computer500to execute the path information gathering processing in order to cause the path information gathering subprogram550of the host computer500to execute the path information gathering processing (19001).

The network communication program150sends the request for execution of the path information gathering processing to the host computer500via the second network410.

The host computer500receives the request for execution of the path information gathering processing, and the path information gathering subprogram550executes the path information gathering processing (19002). Then a latest version of the path configuration information130is created, and the created path configuration information130is sent to the integrated management server100.

The integrated management server100obtains the latest version of the path configuration information130from the network communication program150(19003).

Lastly, the path configuration information130that has been kept in the disk device110of the integrated management server100is overwritten with the latest version of the path configuration information130. The thus updated path configuration information130is stored in the disk device110(19004).

FIG. 17is a flow chart for the port validation judging processing executed by the port validation judging subprogram200according to the first embodiment.

In the port validation judging processing executed by the port validation judging subprogram200, the following processing is performed on the CHA port P that is chosen in the step17003of the integrated path-management processing shown inFIG. 14.

First, the port validation judging subprogram200judges whether or not the latest state14006of the CHA port P is “in use” in the port information140in order to judge whether the CHA port P is currently available or not (20001).

When it is judged in the step S20001that the CHA port P is available, the used ratio14004of the CHA port P in the port information140is compared against the upper threshold12004of the threshold information120to see whether or not the used ratio14004of the CHA port P exceeds the upper threshold12004in order to judge whether the CHA port P is overloaded or not (20002).

When it is found as a result that the used ratio14004of the CHA port P exceeds the upper threshold12004, the CHA port P is judged as overloaded (20006).

When the used ratio14004of the CHA port P does not exceed the upper threshold12004, it is judged that validation of a new port is unnecessary, and the port validation judging subprogram200ends the port validation judging processing (20003).

On the other hand, when it is judged in the step20001that the CHA port P is not in use at present, in other words, when the latest state14006of the CHA port P is not “in use”, the port validation judging subprogram200checks whether or not the last state14005of the CHA port P is “in use” and the latest state14006of the CHA port P is “in failure” in the port information140in order to judge whether the reason the latest state14006of the CHA port P is not “in use” is a failure in the CHA port P or not (20004).

When it is found in the step20004that the last state14005of the CHA port P is “in use” and the latest state14006of the CHA port P is “in failure”, in other words, when the CHA port P is suffering from a new failure, it is judged that the cause of the path failure is the failure in the CHA port P (20007).

When it is found in the step20004that the last state14005of the CHA port P is not “in use” or the latest state14006of the CHA port P is not “in failure”, it means that no new failure has occurred in the CHA port P. Accordingly, validation of the port is judged as unnecessary, and the port validation judging subprogram200ends the port validation judging processing (20005).

In the case where the cause of failure is judged as port overload in the step2006or the cause of failure is judged as a port failure in the step20007, it is judged whether or not there is any CHA port whose latest state14006is “not in use” in the port information140in order to check whether any unavailable CHA port620is present or not (20008).

When an unavailable CHA port620is found in the step20008, port validation is judged as necessary and the port validation judging subprogram200ends the port validation judging processing (20009).

On the other hand, there is no unavailable port, port validation is judged as unnecessary, and the port validation judging subprogram200ends the port validation judging processing (20010).

FIG. 18is a flow chart for the port validating processing executed by the port validating subprogram210according to the first embodiment.

In the port validating processing executed by the port validating subprogram210, one CHA port is chosen first whose latest state14006is “not in use” in the port information140(the chosen port is hereinafter referred to as CHA port R). From an entry of the chosen CHA port R in the port information140, the data storage system information14001, the CHA information14002, the CHA port information14003, the used ratio14004, the last state14005, the latest state14006, and the copy flag14007are extracted and stored in the work area750a, which is secured in the main memory730aof the integrated management server100(21001).

The port validating subprogram210next requests, through the network communication program150, the key issuing subprogram360to execute the key issuing processing and issue a license key for validating the CHA port R in order to cause the key issuing subprogram360of the license management server300to execute the key issuing processing (21002).

In the step21002, the port validating subprogram210sends, to the network communication program150, to be delivered to the license management server300, the information about whether the CHA port P is overloading or experiencing a failure which has been obtained in the step20006of the port validation judging processing executed by the port validation judging subprogram200, or the information about the cause of the failure of the CHA port P which has been obtained in the step20007of the port validation judging processing.

The network communication program150sends the request for execution of the key issuing processing to the license management server300via the second network410.

The license management server300receives the request for execution of the key issuing processing, and the key issuing subprogram360executes the key issuing processing (21003).

Through the key issuing processing in the step21003, a license key for validating the CHA port R is issued and sent to the integrated management server100.

The integrated management server100obtains the license key for validating the CHA port R from the network communication program150(21004).

Next, the port validating subprogram210requests, through the network communication program150, the port setting subprogram670of the data storage system600to execute the port setting processing in order to validate the CHA port R (21005).

In the step21005, the port validating subprogram210sends, to the data storage system600, to the network communication program150, to be delivered to the data storage system600, the license key for validating the CHA port R which has been obtained in the step21004.

The network communication program150sends the request for execution of the port setting processing to the data storage system600via the second network410.

The data storage system600receives the request for execution of the port setting processing, and the port setting subprogram670executes the port setting processing to validate the CHA port R (21006). The CHA port R is thus made available. Then the port setting subprogram670notifies, through the network communication program640, the integrated management server100of the change of the CHA port R to an available state.

The integrated management server100receives the notification of the change of the CHA port R to an available state (validation completion notification) (21007).

Validation of the CHA port R is completed in the step21007. Thus the CHA port R is newly validated and made available as a substitute for the CHA port P which has ceased to function due to overload or a failure. Here, the CHA port P is called an original port and the CHA port R is called a copy port.

Receiving the notification of completing validating the CHA port R, the integrated management server100overwrites the copy flag14007of the CHA port R in the port information140with the CHA port information14003of the CHA port P in the port information140in order to show that the CHA port R is a copy port of the CHA port P. The updated port information140is stored in the disk device110of the integrated management server100(21008).

FIG. 19is a flow chart for the path validating processing executed by the path validating subprogram220according to the first embodiment.

First, entries of the path configuration information130are sequentially checked to obtain path list information about paths that pass through the CHA port P (22001).

Obtained as the path list information (hereinafter denoted by Pc) is every item of information about an access path whose data storage system information13006, CHA information13007, and CHA port information13008in the path configuration information130match the data storage system information14001, the CHA information14002, and the CHA port information14003in the port information140, respectively.

What is meant by “every item of information” are the path information13001, host information13002, HBA information13003, HBA port information13004, multipath logical volume information13005, data storage system information13006, CHA information13007, CHA port information13008, and logical volume information13009of the access path.

To give a more detailed description with reference toFIG. 9, when the CHA port P has “USP1” as the data storage system information13006, “CHA1” as the CHA information13007, and “P1” as the CHA port information13008, every item of information of access paths Path1and Path2is obtained as the path list information Pc.

The obtained path list information Pc is copied to create a new entry. A value of the CHA port information13008in the created entry is rewritten with a value of the CHA port information14003of the CHA port R to create path list information Rc (22002).

Next, the path validating subprogram220requests, through the network communication program150of the integrated management server100, the pas setting subprogram680of the data storage system600to create an access path in the path list information Rc created in the step22002(22003).

In the step22003, the path validating subprogram220sends the path list information Rc created in the step22002to the data storage system600.

The network communication program150sends the request for creation of the access path to the network communication program640of the data storage system600via the second network410.

The data storage system600receives the request for creation of the access path, and the data storage system management program650has the path setting subprogram680execute the path setting processing to create the access path based on the path list information Rc (22004).

After the access path is created through the path setting processing, the data storage system management program650requests the network communication program640to send a path creation completion notification to the integrated management server100.

The integrated management server100receives the path creation completion notification (22005).

FIG. 20is a flow chart for the port invalidation judging processing executed by the port invalidation judging subprogram230according to the first embodiment.

In the port invalidation judging processing executed by the port invalidation judging subprogram230, the following processing is performed on the CHA port P chosen in the step17003of the integrated path-management processing by the integrated path-management subprogram170.

When it is found in the step23001that the latest state14006of the port information140is “in use” and a value entered as the copy flag14007is not one that indicates the port is an original port, this port is judged as a copy port. Then the port invalidation judging subprogram230obtains information of a port that matches the CHA port P in terms of the data storage system information14001and the CHA information14002and whose copy flag14007matches the CHA port information14003of the CHA port P in order to obtain information of the original port of the CHA port P (the original CHA port of which information is obtained is hereinafter referred to as CHA port C) (23003).

The obtained information of the CHA port C includes the data storage system information14001, the CHA information14002, and the CHA port information14003.

On the other hand, when it is found in the step23001that the latest state14006of the CHA port P in the port information140is not “in use” or a value entered as the copy flag14007is one that indicates the CHA port P is an original port, it is judged that this port is not a copy port. Then invalidation of the CHA port620is judged as unnecessary, and the port invalidation judging processing is ended (23002).

Next, the port invalidation judging processing230judges whether or not the used ratio14004of the CHA port P in the port information140is below the lower threshold12005of the CHA port P in the threshold information120and the used ratio14004of the CHA port C in the port information140is below the lower threshold12005of the CHA port C in the threshold information120(23004).

When it is judged as a result that the CHA port P and the CHA port C are both lightly loaded, invalidating the CHA port P is unlikely to lower QoS. Accordingly, port invalidation is judged as necessary, and the port invalidation judging processing is ended (23005).

When it is judged that either the CHA port P or the CHA port C is not lightly loaded, port invalidation is judged as unnecessary and the port invalidation judging processing is ended (23006).

FIG. 21is a flow chart for the port invalidating processing executed by the port invalidating subprogram240according to the first embodiment.

In the port invalidating processing, the port invalidating subprogram240first requests, through the network communication program150, the key issuing subprogram360of the license management server300to execute the key issuing processing in order to cause the key issuing subprogram360to issue a license key for invalidating the CHA port P (24001).

The network communication program150of the integrated management server100sends the request for execution of the key issuing processing to the license management server300via the second network410, and the key issuing subprogram360of the license management program350executes the key issuing processing. The license key issued is sent to the integrated management server100(24002).

The next step of the port invalidating processing is to obtain, from the network communication program150, the license key for invalidating the CHA port P which has been issued through the key issuing processing (24003).

The port invalidating subprogram240then requests, through the network communication program150, the port setting subprogram670to execute the port setting processing in order to invalidate the CHA port P (24004).

In the step24004, the port invalidating subprogram240sends, through the network communication program150, to the data storage system600, the license key for invalidating the CHA port P which has been obtained in the step24003.

The network communication program150sends the request for execution of the port setting processing to the data storage system600via the second network410.

The data storage system600receives the request for execution of the port setting processing, and the port setting subprogram670executes the port setting processing to invalidate the CHA port P (24005). The CHA port P is thus turned unavailable. Then the port setting subprogram670notifies, through the network communication program640, the integrated management server100of the change of the CHA port P to an unavailable state.

The integrated management server100receives the notification of the change of the CHA port P to an unavailable state (invalidation completion notification) (24006).

Upon reception of the notification of completing invalidating the CHA port P, the integrated management server100rewrites the copy flag14007of the CHA port P in the port information140to “original” and the latest state14006to “not in use”. The thus updated port information140is stored in the disk device110of the integrated management server100(24007).

FIG. 22is a flow chart for the path invalidating processing executed by the path invalidating subprogram250according to the first embodiment.

The path invalidating processing executed by the path invalidating subprogram250deletes every path that passes through the copy port P to be invalidated.

First, entries of the path configuration information130are sequentially checked to obtain information about paths that pass through the CHA port P (path list information) (25001).

Obtained as the path list information (hereinafter denoted by Pc) is every item of information about an access path whose data storage system information13006, CHA information13007, and CHA port information13008in the path configuration information130match the data storage system information14001, CHA information14002, and CHA port information14003of the CHA port P, respectively.

What is meant by “every item of information” are the path information13001, host information13002, HBA information13003, HBA port information13004, multipath logical volume information13005, data storage system information13006, CHA information13007, CHA port information13008, and logical volume information13009of the access path.

To give a more detailed description with reference toFIG. 9, when the CHA port P has “USP1” as the data storage system information13006, “CHA1” as the CHA information13007, and “P1” as the CHA port information13008, every item of information of access paths Path1and Path2is obtained as the path list information Pc.

The path invalidating subprogram250then requests, through the network communication program150of the integrated management server100, the path setting subprogram680of the data storage system600to delete the access paths in the path list information Pc created in the step25001(25002).

In the step25002, the path invalidating subprogram250sends the path list information Pc created in the step25001to the integrated management server100.

The network communication program150sends the request for deletion of the access paths to the network communication program640of the data storage system600via the second network410.

The data storage system600receives the request for deletion of the access paths, and the data storage system management program650has the path setting subprogram680execute the path setting processing to delete the access paths based on the path list information Pc (25003).

After the access paths are deleted through the path setting processing, the data storage system management program650requests the network communication program640to send a path deletion completion notification to the integrated management server100.

The integrated management server100receives the path deletion completion notification (25004).

FIG. 23is a flow chart presented to illustrate the key issuing processing executed by the key issuing subprogram360according to the first embodiment.

In the key issuing processing, the key issuing subprogram360judges whether a request received by the network communication program340is a request to issue a license key that validates the CHA port620or a request to issue a license key that invalidates the CHA port620(36001).

When the received request is judged in the step36001as a request to issue a license key that validates the CHA port620, the key issuing subprogram360issues a license key that validates the CHA port620.

Specifically, the cause of issuing a license key and the time at which validation of the CHA port620is started are managed as follows:

The cause of failure which has been obtained in the step20006or the step20007of the port validation judging processing executed by the port validation judging subprogram200, namely, overload or a failure, is stored as the validation cause32005of the CHA port to be validated in the charging information320.

The year, month, and date on which the CHA port620is validated is stored as the validation start time32006of the CHA port to be validated in the charging information320. The state flag32004of this CHA port is also changed to “valid” in the charging information320(36002).

The next step of the key issuing processing is to issue a validation license key for validating the CHA port620and send the license to the network communication program340(36003). Then the key issuing processing is ended.

In the case where the received request is judged in the step36001as a request to issue a license key for invalidating the CHA port620, the license key for invalidating the CHA port620is issued.

Specifically, in order to charge fees differently depending on the cause validating the CHA port620and the cause of failure, the key issuing subprogram360judges whether or not the validation cause32005of the CHA port to be invalidated is “overload” in the charging information320(36004).

When it is judged in the step36004that the validation cause is overload, a charge amount depending on a time counted from when the CHA port620is validated until when the CHA port620is invalidated is added to the accumulated charge amount32007of the charging information320.

Specifically, the utilization time of the CHA port that is to be invalidated is calculated by subtracting the time at which the CHA port is invalidated (current time) from the validation start time32006of this CHA port in the charging information320(36005).

The utilization time calculated in the step36005is multiplied by the per-unit charge amount in the charge amount information330, and the product is added to the accumulated charge amount32007of the charging information320(36006). The key issuing subprogram360then proceeds to the step36007.

On the other hand, when it is judged in the step36004that the validation cause is not overload, in other words, the validation cause is a failure in the CHA port620, there is no charge for the use of the CHA port620during this validation period. Accordingly, the key issuing subprogram360moves to the step36007without executing the step36005and the step36006.

In this embodiment, the charge amount is rewritten only when the validation cause is overload. However, this is merely an example and various modifications can be made. A case of rewriting the charge amount when the validation cause is a failure as well as when the validation cause is overload will be described later as another example.

In the step36007, the state flag32004of the CHA port to be invalidated is changed to “invalid” in the charging information320.

The key issuing subprogram360then issues an invalidation license key for invalidating the CHA port620and sends the license to the network communication program340(36008). This completes the key issuing processing.

FIG. 24is a flow chart for the path information gathering processing executed by the path information gathering subprogram550according to the first embodiment.

The path information gathering subprogram550receives, from the network communication program530, an access path information collection request sent from the integrated management server100(55001).

The path information gathering subprogram550next obtains the configuration of every access path, namely, the path information13001, the host information13002, the HBA information13003, the HBA port information13004, the multipath logical volume information13005, the data storage system information13006, the CHA information13007, the CHA port information13008, and the logical volume information13009, and creates the path configuration information130(55002).

Lastly, the created path configuration information130is sent to the network communication program530of the host computer500(55003).

FIG. 25is a flow chart for the port information gathering processing executed by the port information gathering subprogram660according to the first embodiment.

The port information gathering subprogram660receives a port information gathering request from the network communication program640(66001).

The port information gathering subprogram660next obtains information, namely, the used ratio and state, of the CHA ports620, and creates the latest port information900(66002).

Lastly, the created latest port information900is sent to the network communication program640of the data storage system600(66003).

FIG. 26is a flow chart for the port setting processing executed by the port setting subprogram670according to the first embodiment.

The port setting subprogram670first judges whether a request sent from the network communication program640is for a port validating processing or for a port invalidating processing (67001).

When the received request is judged in the step67001as a request for port validating processing, a designated CHA port is validated with a license key for validating a CHA port (67002). Then a port validation completion notification is sent to the network communication program640(67003).

When the received request is judged in the step67001as a request for port invalidating processing, a designated CHA port is invalidated with a license key for invalidating a CHA port (67004). Then a port invalidation completion notification is sent to the network communication program640(67005).

FIG. 27is a flow chart for the path setting processing executed by the path setting subprogram680according to the first embodiment.

The path setting subprogram680judges whether a request sent from the network communication program640is for a path creation processing or for a path deletion processing (68001).

When the received request is judged in the step68001as a request for path creating processing, every designated path is sequentially created (68002). Then a path creation completion notification is sent to the network communication program640(68003).

When the received request is judged in the step68001as a request for path deleting processing, every designated path is deleted (68004). Then a path deletion completion notification is sent to the network communication program640(68005).

Described next is processing performed by the integrated path-management subprogram170of the integrated management server100when the processing shown inFIGS. 14 to 27is executed in multipath management ofFIG. 28.

FIG. 28is a diagram showing an example of access paths in multipath management applied to the computer system ofFIG. 7. Shown inFIG. 28is an example of expanding the access path bandwidth by turning the CHA port620that is unavailable due to its overload or failure assumed in the CHA port620into an available port, copying information of an access path that passes through the CHA port620that is unavailable due to overload or a failure, and creating an access path that passes through the newly added port.

The integrated path-management subprogram170of the integrated management server100first executes the integrated path-management processing and continuously monitors the state (load, failure) of the CHA ports620. To monitor the CHA ports620, the port state updating subprogram180executes the port state updating processing and periodically (at predetermined time intervals) requests the port information gathering subprogram660of the data storage system600to provide the latest port state, from which the latest port information900is created. The port information140is updated with the latest port information900and stored in the disk device110of the integrated management server100(17001).

The integrated management server100makes the path state updating subprogram190execute the path state updating processing to request the path information gathering subprogram550of the host computer500to execute the path information gathering processing and create the path configuration information130periodically. The created path configuration information130is stored in the disk device110of the integrated management server100(17002).

The integrated management server100sequentially checks, by loop processing or the like, entries of the port information140kept in the disk device110, and judges the CHA port620whose used ratio14004in the port information140exceeds the preset upper threshold12004of the threshold information120as overloaded. In the case where the last state14005of one CHA port620is “in use” and the latest state14006is “in failure” in the port information140, it is judged that this CHA port620is experiencing a failure and that a new CHA port needs to be validated and made available (17004).

Considered here is a case in which the CHA port620aused for normal operation in the example ofFIGS. 7 and 28overloads or a failure occurs in the CHA port620a.

A currently unavailable CHA port is chosen as a substitute for the CHA port620where a failure has occurred. The integrated management server100sequentially checks, by loop processing or the like, entries of the port information140in the data storage system600to choose one unused port. In the example ofFIG. 7, the CHA ports that are currently not in use and not available are the CHA ports620c,620d,620e, and620f, and the integrated management server100chooses the CHA port620c.

The integrated management server100performs processing of making the unused CHA port620available.

Specifically, the integrated management server100requests, via the second network410, the key issuing subprogram360of the license management server300to execute the key issuing processing in which a license key for validating the CHA port620that is not in use is issued.

Through the key issuing processing360executed by the key issuing subprogram360, the validation start time32006and the validation cause32006(specifically, information on whether it is overload, a failure, or other cause) are stored in the charging information320, which is kept in the disk device310of the license management server300. This makes it possible to charge by counting in only the length of time the port is in use and to charge differently depending on the cause of issuing a validation key.

The integrated management server100sends, to the data storage system600, via the second network410, a validation license key for validating the CHA port620which is issued by the license management server300. The port setting subprogram670of the data storage system600validates the CHA port620that has been unavailable. In other words, the port setting subprogram670makes an unused port available (17005).

The newly validated CHA port620is a copy port and the CHA port620where a failure has occurred is the original port.

The integrated management server100stores, in the port information140, information on the newly validated CHA port620, namely, the copy port.

In the example shown inFIG. 28, the CHA port620cis turned available as a copy port of the CHA port620a, which is the original port.

Next, an access path that passes through the validated CHA port620is created to thereby add to the access path bandwidth (17006).

An access path to be created is selected by copying every access path that passes through the CHA port620where a failure has occurred, and an access path that passes through the newly validated CHA port620is created.

Alternatively, an access path that passes through the newly validated CHA port620may be created by sequentially checking the load of access paths that pass through the CHA port620judged as suffering from a failure and by copying only access paths that are heavily loaded.

The integrated management server100requests, via the second network410, the path setting subprogram680of the data storage system600to execute the path setting processing to create the access path.

In the example shown inFIG. 28, two access paths420dand420ewhich pass through the CHA port620care newly added to the existing access paths420a,420b, and420cofFIG. 2.

When overload or breakdown of the CHA port620acauses overload or a failure in the access paths420aand420b, two access paths420dand420e, which are obtained by copying information of the access paths420aand420band rewriting the copied information such that the passing CHA port is the CHA port620c, are determined as to-be-newly-added access paths and created. The access path420dincludes the HBA port520a, the CHA port620c, and the logical volume630a. The access path420eincludes the HBA port520b, the CHA port620cand the logical volume630b. The access paths420dand420eare indicated by dotted lines inFIG. 28.

The path load balancing subprogram560of the host computer500distributes the load of I/O requests between newly created access paths and existing access paths, to thereby maintain QoS of the access path bandwidth.

InFIG. 28, newly created access paths are the access paths420dand420e, and existing access paths are the access paths420a,420b, and420c.

When overload of a CHA port, a failure in a CHA port, or the like narrows the access path bandwidth, a new access path is added to thereby increase the number of access paths and expand the access path bandwidth.

Another example is shown in which, when the load of the available CHA port620cis lessened by lowering of the used ratio of the CHA port620cor from other reasons in the access path configuration ofFIGS. 7 and 28, the access path bandwidth is reduced by deleting an access path that passes through the CHA port620cand turning the previously available CHA port620cto unavailable and thus invalidating the CHA port620c.

First, the integrated management server100continuously monitors the load and state of the CHA ports620and stores the latest state of the CHA ports620as the port information140in the disk device110.

The integrated management server100sequentially checks, by loop processing or the like, entries of the port information140kept in the disk device110, and chooses a copy port. In the case where the used ratio14004of the chosen copy port and the used ratio14004of the original port of the copy port in the port information140are both below the lower threshold12005of the threshold information120, the copy port is deemed as lightly loaded and it is judged that the copy port has to be invalidated (17007).

In the example shown inFIG. 28, the CHA port620cis a copy port and the original port of this copy port is the CHA port620a. The integrated management server100judges whether or not both of the CHA port620aand the CHA port620care lightly loaded.

The integrated management server100next deletes every access path that passes through the copy port620cto reduce the access path bandwidth (17008). Access paths to be deleted are selected by sequentially checking entries of the port information140in the disk device110through loop processing and choosing every access path whose CHA port information14003designates the copy port to be invalidated.

The integrated management server100requests, via the second network410, the path setting subprogram680of the data storage system600to delete the chosen access paths. The path setting subprogram680of the data storage system600deletes the designated access paths.

In the example shown inFIG. 28, access paths that pass through the copy port620care the access paths420dand420e.

In the path configuration information130, the HBA port information13004, the CHA port information13008, and the logical volume information13009are picked up from entries of the access paths420dand420e. According to the picked up information, the access path420dpasses through the HBA port520a, the CHA port620c, and the logical volume A630a, and the access path420epasses through the HBA port520b, the CHA port620c, and the logical volume B630b. The access paths420dand420eare determined as access paths to be deleted, and then deletion of the access paths420dand420eis carried out.

The path load balancing subprogram560in the host computer500distributes the load of I/O requests among access paths remaining after deletion of access paths, to thereby maintain QoS of the access path bandwidth.

Then the integrated management server100turns the CHA port620c, which is currently in use under light load, into an unavailable state (17009).

The integrated management server100requests, via the second network410, the key issuing subprogram360of the license management server300to issue a license key for invalidating the CHA port620c.

The key issuing subprogram360of the license management server300reads information of the CHA port620c, such as the validation start time32006and the validation cause32005, out of the charging information320from the disk device310. Then a charge amount counted from when the CHA port620cis validated until when the CHA port620cis invalidated is added to the accumulated charge amount32007of the charging information320. The updated charge amount is stored in the disk device310.

At this point, the charge amount can be varied depending on the validation cause. For instance, no fee or a discounted fee may be charged when the cause of validation is a failure.

In the first embodiment, charging is based on the length of time the CHA ports620are in use. Charging may be based on other measures such as the data amount of I/O requests that are sent through the CHA ports620.

The integrated management server100sends, to the data storage system600, via the second network410, the license key for invalidating the CHA port620cwhich is issued by the license management server300. The port setting subprogram670of the data storage system600invalidates the CHA port620c. In the example shown inFIG. 28, the CHA port620cas the copy port is turned unavailable.

In the key issuing processing executed by the key issuing subprogram360according to the first embodiment, the charging information320is changed and fees are charged only when overload is the validation cause. Alternatively, fees may be charged when a failure in a port is the validation cause as well as when the cause is overload.

Specifically, charge amount information3300shown inFIG. 29is employed. The charge amount information3300presented as a modified example includes a validation cause33001and a per-unit charge amount33002, is set by the administrator in advance, and is kept in the disk device310. The per-unit charge amount33002indicates an amount charged hourly for the use of a port.

Irrespective of whether overload or breakdown is judged as the validation cause in the key issuing processing ofFIG. 23, the utilization time of the CHA port620that is to be invalidated is calculated by subtracting the time at which the CHA port is invalidated (current time) from the validation start time32006of this CHA port in the charging information320. The charge amount information3300is searched for an entry whose validation cause33001matches the identified validation cause, and the per-unit charge amount33002of this entry is multiplied by the obtained utilization time.

The charge amount information3300, which sets an hourly charge amount inFIG. 29, may set an arbitrary amount charged by the unit of an arbitrary length of time. It is also possible to vary the per-unit charge amount from one CHA port620to another.

In this modified example, how much is charged is calculated using different per-unit charge amounts which are set for different validation causes. Thus charging can be varied depending on the port validation cause, namely, the cause of failure.

Information of a payer33013may be included in charge amount information3301as shown inFIG. 30. In this way, who pays the fee can be changed depending on the validation cause.

In the example shown inFIG. 30, the host administrator pays the fee when the validation cause33011is “overload” whereas the CHA manufacturer pays the fee when breakdown is the validation cause namely, the cause of failure.

In the description given above, the used ratio and state of the CHA ports620are gathered through the port state updating processing, and the cause of failure of the CHA ports620is identified through the port validation judging processing. Alternatively, the used ratio and state of the HBA ports520may be gathered to identify the cause of failure of the HBA ports520through the port validation judging processing.

The used ratio and state of the SAN switches430may be gathered to identify the cause of failure of the SAN switches430through the port validation judging processing. In this case, an unavailable CHA port620is validated and turned available when a failure occurs in any one of the CHA ports620, the HBA ports520, and the SAN switches430.

The charge amount or the payer of the fee may be changed depending on in which of the CHA ports620, the HBA ports520and the SAN switches430a failure occurs.

To give a specific example, the CHA manufacturer pays the fee when the CHA ports620break, the host administrator pays the fee when the CHA ports620overload or when the HBA ports520overload or break or when the SAN switches430overload, and the SAN provider pays the fee when the SAN switches430break.