Method of controlling storage system

Provided is a computer system including: a plurality of storage systems interconnected via a network, each storage system including a logical volume that stores data; and a management computer that is connected to the storage systems via the network and includes a port connected to the network and a processor connected to the port, wherein: a logical volume of a transfer source in a storage system of the data transfer source and a logical volume of a transfer destination in a storage system of the data transfer destination are decided; it is determined whether it is necessary or not to migrate a license of a program used for the logical volume of the transfer source from one of the plurality of storage systems to the storage system of the transfer destination; and when it is determined necessary to migrate the license, license information regarding the license to the storage system of the transfer destination is migrated. Accordingly, costs of purchasing licenses necessary during data migration or the like are reduced.

CROSS-REFERENCE TO PRIOR APPLICATION

This application relates to and claims priority from Japanese Patent Application No. 2005-178117 filed on Jun. 17, 2005 the entire disclosure of which is incorporated herein by reference.

BACKGROUND

This invention relates to a license management for a program installed in a storage system.

In a computer system that includes one or more storage systems, a program on a storage system base (referred to as storage system program hereinafter) is installed in each storage system. Such a storage system program is a program that executes, for example, creation/deletion of a logical volume, migration/relocation of data, control of host access to the logical volume, or, remote or local copying.

A license structure of such a storage system program (i.e., concept of an application target of the storage system program) may vary from one program to another. For example, one storage system program requires a license to be obtained for every storage system that has the storage system program installed therein, while another storage system program requires only one license to be obtained for a plurality of storage systems.

The license structure may vary depending on a disk capacity to which the storage system program is applied. For example, the license structure includes a flat capacity rate plan which charges a flat rate if a capacity of a logical volume to which the storage program is applied is equal to or less than a predetermined value, and an as-used capacity rate plan which charges by an amount equal to a used capacity.

To manage the licenses, JP 2004-234559 A discloses a method of checking settings of each license and controlling execution of the program.

In addition, known examples of measures for managing data of a computer system include a method for migration of data as disclosed in JP 2001-337790 A. The migration refers to migration of data from one logical volume to another logical volume. The migration is executed to realize load balance or data lifecycle management (DLCM). For example, the load balance is averaging of a disk usage or a path usage. On the other hand, according to the DLCM, for example, when a value of data changes with a passage of time, the data is migrated to a storage system of costs suitable for the value.

Conventionally, the migration has been executed in one storage system. In other words, when disk drives different in performance, capacity, or the like are mixed together in one storage system, the data is migrated to the optimal disk drive (to be specific, logical volume composed of the optimal disk drive).

However, when the computer system includes a plurality of storage systems, data needs to be migrated among the plurality of storage systems. Such migration between the storage systems is also called migration between nodes.

SUMMARY

To execute migration between nodes, storage systems of a migration source and a migration destination need licenses of storage system programs to execute the migration between the nodes. Further, when a logical volume of a migration target is an application target of a certain storage system program, a license of the storage system program is necessary for the storage system of the migration destination.

When there are a plurality of storage systems likely to be migration destinations, there is a possibility that the plurality of storage systems will use the licenses of the storage system programs. In this case, when the licenses are purchased for all the storage systems likely to use the licenses, extra licenses not used in reality may be purchased to increase introduction costs of the storage system programs.

Furthermore, these problems occur when remote-copy is executed between the storage systems, or when the storage system is externally connected to another storage system, and a virtual logical volume (virtual volume) is supplied to a user.

According to an embodiment of this invention, there is provided a management computer that manages a plurality of storage systems interconnected via a network, each storage system including a logical volume that stores data, the management computer including: a transfer management module; and a license migration control module, wherein: the transfer management module decides a logical volume of a transfer source in a storage system of the transfer source of the data among the plurality of storage systems, and a logical volume of a transfer destination in a storage system of the transfer destination of the data stored in the logical volume of the transfer source; the transfer management module instructs the storage system to transfer the data upon reception of a request from the license migration control module; the license migration control module determines whether it is necessary or not to migrate a license of a program used for the logical volume of the transfer source from one of the plurality of storage systems to the storage system of the transfer destination; and when it is determined necessary to migrate the license, the license migration control module migrates license information regarding the license to the storage system of the transfer destination, and requests transfer execution of the data to the transfer management module.

According to this invention, it is not necessary to purchase a license for the storage system which does not actually use the storage system program. Thus, costs can be reduced. Moreover, according to this invention, the storage system program used at the migration source can be used at the migration destination. Similarly, the storage system program used at the copy source storage system or the externally connected storage system can be used at the copy destination storage system or the storage system which includes the virtual volume.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

Hereinafter, the preferred embodiments of this invention will be described with reference to the accompanying drawings.

First, a first embodiment will be described.

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

The computer system of this embodiment comprises storage systems101to103, a storage area network (SAN)110, an application server120, a management server130, and a management network140.

The storage systems101to103store data written by the application server120. An interface (I/F)314of each of the storage systems101to103is connected to the SAN110, and communicates with the application server120or the other of the storage systems101to103via the SAN110. On the other hand, a management I/F313of each of the storage systems101to103is connected to the management network140, and communicates with the management server via the management network140.

The computer system of this embodiment includes the three storage systems101to103. However, this invention can be applied to a computer system which includes the optional number of storage systems. A configuration of the storage systems101or the like shown inFIG. 3will be described in detail later.

The SAN110is a network for connecting the storage system101or the like to the application server120. A switch fabric that comprises one or more fibre channel switches (FC-SW, not shown) is applied to the SAN110of this embodiment. However, other connection forms can be implemented when applied.

The interface (I/F)111is connected to the storage system101or the like, and the application server120. Specifically, the I/F111is a FC-SW port.

The application server120is a computer used for user applications. The application server120of this embodiment comprises a CPU121, an input/output device122, an I/F123, and a memory124.

The CPU121is a processor for executing a program stored in the memory124.

The input/output device122receives an input from a user, and outputs information to the user. For example, the input/output device122includes a keyboard, a mouse, a display screen (not shown), and the like.

The I/F123is connected to the I/F111of the SAN110, and communicates with the storage system101or the like via the SAN110.

The memory124is, for example, a semiconductor memory to store application software125.

The application software125is a program executed by the CPU121. The user of the application server120executes the application software125to perform an application. In this case, when necessary, the application server120writes data in the storage system101or the like, or reads data stored in the storage system101or the like.

The management server130is a computer for managing the storage system101or the like. A management I/F203of the management server130is connected to the management network140, and communicates with the storage system101or the like via the management network140. A configuration of the management server130shown inFIG. 2will be described in detail later.

The management network140connects the management server130and the storage system101, and mediates for communication therebetween. The management network140of this embodiment is a so-called local area network (LAN).

FIG. 2is a block diagram showing the configuration of the management server130according to the first embodiment.

The management server130of this embodiment comprises a CPU201, an input/output device202, a management I/F203, and a memory204.

The CPU201is a processor for executing a program stored in the memory204.

The input/output device202receives an input from a user, and outputs information to the user. For example, the input/output device202includes a keyboard, a mouse, a display screen (not shown), and the like.

The management I/F203is an interface which communicates with the storage system101or the like via the management network140.

The memory204is, for example, a semiconductor memory. The memory204stores various control programs or the like executed by the CPU201, and a table referred to when the control programs or the like are executed. The memory204of this embodiment stores at least a license migration control program205, a migration management program206, a storage management program207, a migration management table208, a configuration management table209, a used license table210, a license type table211, and a license migration management table212.

The storage management program207collects resource information of the storage system101or the like. The collected resource information is registered in the configuration management table209shown inFIG. 5.

The migration management program206instructs migration of data between the storage systems as shown inFIG. 10. Information regarding an execution schedule of the migration is registered in the migration management table208shown inFIG. 6.

The migration means migration of data from a logical volume331of a migration source to that of a migration destination. Specifically, when the migration is executed, data of the logical volume331of the migration source (transfer source) is transferred to the logical volume of the migration destination (transfer destination), and stored. After the execution of the migration, no data is left in the logical volume331of the migration source.

The migration management program206instructs data transfer by such migration.

The license type table211registers a license structure applied in the computer system, shown inFIG. 7.

The used license table210registers information regarding a license of a program used by the storage system101or the like, shown inFIG. 8.

The license migration control program205refers to the information of each table to control a license migration between the storage systems as shown inFIGS. 11 to 16. Information regarding a schedule of a license migration decided by the license migration control program205is registered in the license migration management table212shown inFIG. 9.

According to this embodiment, the license means a right to use a storage system program318. Presence of a license is proved by predetermined license information (license key). For example, the license key is a unique character or numeral string provided by a vender of the storage system program (described later).

The license key is moved to migrate the license. For example, when the storage system101holds a license of a certain program, the storage system101holds a license key to prove the license. When the license key migrates to the storage system102, the storage system101loses a right to use the program. Instead, the storage system102obtains the right.

According to this embodiment, the program and the table are stored in the management server130. However, these may be stored in the storage system101or the like, or a virtualization device (not shown).

FIG. 3is a block diagram showing the configuration of the storage system101according to the first embodiment.

Configurations of the storage systems102and103are similar to that of the storage system101, and thus description thereof will be omitted.

The storage system101of this embodiment comprises a disk device330and a storage controller310.

The disk device330stores data written from the application server120. The disk device330comprises at least one disk drive (not shown) or the like. A storage area of the disk device330is divided into one or more logical volumes331. The logical volume331is an area recognized as a logical disk drive by the application server120.

The storage controller310controls writing of data in the disk device330, or reading of data from the disk device330. The storage controller310comprises a CPU311, a cache312, a management I/F313, an I/F314, and a memory315.

The CPU311is a processor for executing a program stored in the memory315.

The cache312is, for example, a semiconductor memory to temporarily store data written in the disk device330or data read from the disk device330.

The management I/F313is an interface to communicate with the management server130via the management network140.

The I/F314is an interface connected to the I/F111of the SAN110to communicate with the application server120via the SAN110.

The memory315is, for example, a semiconductor memory. The memory315stores programs executed and information referred to by the CPU311. The programs stored in the memory315are at least a management server agent316, a migration program317between nodes, a storage system program318, and a license migration program319. The information stored in the memory315is at least a license table320.

The management server agent316is a program to notify information regarding the storage system101to the management server130.

The migration program317between the nodes is a program to migrate data of the logical volume331to the other storage system102or the like.

The storage system program318is a program of a storage system base to execute, e.g., creation/deletion of a logical volume, migration/relocation of data, control of host access to the logical volume, remote or local copying, or the like. The memory315may store a plurality of storage system programs318.

The license migration program319transfers information of the license table320with the other storage system102or the like to migrate the license shown inFIG. 17.

The license table320registers information regarding a license of the storage system program318held by the storage system101shown inFIG. 4.

Next, the tables stored in the storage system101and the management server130of this embodiment will be described.

FIG. 4is an explanatory diagram of the license table320of the first embodiment.

FIG. 4shows an example of the license table320of the storage system101. The license table320of the storage system101is for managing the license of the storage system program318installed in the storage system101. Specifically, the license table320registers information regarding all the licenses held by the storage system101for all the storage system programs318installed in the storage system101.

In the license table320ofFIG. 4, there are registered pieces of information regarding two licenses. This means that the storage system101of this embodiment holds the two licenses.

In the license table320, a license key401is a character or numeral string provided for each license by the vender when the license is purchased. In the example ofFIG. 4, “XXXXA” and “XXXXB” are registered as license keys401. Hereinafter, a license whose license key401is “XXXXA” will be simply referred to as license “XXXXA”. The same will apply to the other license keys401.

A program name402is a name of a storage system program targeted by each license. In the example ofFIG. 4, “PP1” are registered as program names402corresponding to the two license keys401of “XXXXA” and “XXXXB”. This means that the two licenses target storage programs318of names “PP1”. Hereinafter, the storage system program318whose program name402is “PP1” will be simply referred to as a storage system program “PP1”. The same will apply to the other program names402.

An applied volume ID403is an identifier (ID) of the logical volume331to which each license is applied. In the example ofFIG. 4, applied volume ID's403corresponding to the license key401“XXXXA” are “VOL1” and “VOL2”. This means that the license “XXXXA” uses the storage system program “PP1” in the logical volumes “VOL1” and “VOL2” (i.e., the storage system program “PP1” is used by targeting the logical volumes “VOL1” and “VOL2”). The logical volume whose logical volume ID403is “VOL1” will be simply referred to as a logical volume “VOL1”. The same will apply to the other logical volume ID's403.

On the other hand, an applied volume ID403corresponding to the license key401“XXXXB” is “unused”. This means that the license “XXXXB” is not applied to any logical volume331. In other words, at a point of this time, the license “XXXXB” is unused.

A maximum capacity404is a maximum value of a capacity of the logical volume331to which each license is permitted to be applied. According to this embodiment, a license structure of a flat capacity rate plan is applied. For example, when a system administrator purchases a license whose maximum capacity404is 15 terabytes (TB), the storage system program318can be used in the logical volume331of a capacity up to a maximum 15 TB based on the license. When one license is applied to a plurality of logical volumes, a total value of capacities of the logical volumes only needs to be 15 TB or less.

In the example ofFIG. 4, “15 TB” and “10 TB” are registered as maximum capacities404corresponding to the two license keys401of “XXXXA” and “XXXXB”.

The used capacity405is a capacity of the logical volume331to which each license is actually applied. In the example ofFIG. 4, “15 TB” is registered as a used capacity405corresponding to the license key401“XXXXA”. This means that a total value of capacities of the logical volumes “VOL1” and “VOL2” to which the license “XXXXA” is applied is 15 TB. This value is equal to the value “15 TB” of the maximum capacity404. Thus, the license “XXXXA” cannot be applied to other logical volumes any more.

On the other hand, the license “XXXXB” is not applied to any logical volume331. Accordingly, “0 TB” is registered as a used capacity405corresponding to the license key401“XXXXB”. In other words, the license “XXXXB” can be newly applied to a logical volume331whose capacity is 10 TB or less.

The storage systems102and103hold license tables320similar to the above. However, the license tables320of the storage systems102and103store information regarding licenses held by the storage systems102and103(not shown).

FIG. 5is an explanatory diagram of the configuration management table209of the first embodiment.

The configuration management table209registers resource information of each storage system101or the like collected by the storage management program207. Specifically, the configuration management table209registers information regarding all the logical volumes331stored in the storage system101or the like for each logical volume331.

Referring toFIG. 5, one row of the configuration management table209corresponds to one logical volume331. For each logical volume331, the configuration management table209registers a storage system name501, a model502, a logical volume ID503, a logical volume size504, a used program name505, and a path506.

The storage system name501is an identifier of the storage system101or the like which stores each logical volume331. In the example ofFIG. 5, two “storage systems101”, one “storage system102”, and one “storage system103” are registered. These correspond to the storage systems101to103ofFIG. 1. The two “storage systems101” are registered because two logical volumes331are stored therein.

The model502is a model (type) of each storage system101or the like. As there may be a limitation on models to be targeted by a license, the management server130manages the model of each storage system101or the like. In the example ofFIG. 5, the models502of the storage systems101and102are “A”, while the model502of the storage system103is “B”.

The logical volume ID503is an identifier (ID) of each logical volume331. In the example ofFIG. 5, logical volume ID's503of the two logical volumes331stored in the storage systems101are respectively “VOL1” and “VOL2”. Volume ID's of the logical volumes331stored in the storage systems102and103are respectively “VOL3” and “VOL4”.

The logical volume size504is a data capacity set for each logical volume331. In the example ofFIG. 5, logical volume sizes504of the logical volumes “VOL1” and “VOL4” are “10 TB”, while logical volume sizes504of the logical volumes “VOL2” and “VOL3” are “5 TB”.

The used program name505is a name of a storage system program318used for each logical volume331. In the example ofFIG. 5, storage system programs “PP1” and “PP2” are used for the logical volumes “VOL1” and “VOL2”. On the other hand, a storage system program318is used for neither of the logical volumes “VOL3” and “VOL4”.

The path506is information regarding a path of data set between the storage systems101or the like. For example, referring toFIG. 5, “102” and “103” are registered as paths506corresponding to the storage systems101. This means that a path is set between the storage systems101and102, and a path is similarly set between the storage systems101and103. Specifically, a path is set from the I/F314of the storage system101via the I/F111of the SAN10and another I/F111to the I/F314of the storage system102shown inFIG. 1. The same applies between the storage systems101and103.

When there is a path set between the two storage systems101or the like, migration of data can be executed through the path between the two storage systems101or the like. Moreover, a license can be migrated through the set path. Specifically, the license key401migrates through the set path.

Contents registered in the path506may be collected from each storage system101or the like by the management server130(or specific storage system101or the like). Alternatively, the storage systems101or the like receive information from each other to hold the same contents.

In the example ofFIG. 5, the paths are respectively set between the storage systems101and102, between the storage systems101and103, and between the storage systems102and103. Thus, in any combination of the storage systems101to103, migration of data can be executed.

FIG. 6is an explanatory diagram of the migration management table208of the first embodiment.

In the migration management table208, for migration of data scheduled to be executed, pieces of information regarding logical volumes331of a migration source and a migration destination are registered by the migration management program206.

In the migration management table208, a storage system name611and a logical volume ID612of the migration source are registered in a migration source610. On the other hand, in a migration destination620, a storage system name621and a logical volume ID622of the migration destination are registered.

In the example ofFIG. 6, “storage system101” and “VOL2” are respectively registered as the storage system name611and the logical volume ID612of the migration source610. On the other hand, “storage system102” and “VOL3” are respectively registered as the storage system name621and the logical volume ID622of the migration destination620. This means that migration of data is scheduled to be executed from the logical volume “VOL2” of the storage system101to the logical volume “VOL3” of the storage system102.

FIG. 7is an explanatory diagram of the license type table211of the first embodiment.

In the license type table211, a license structure applied to the storage system program318used in the computer system is registered.

The license type table211comprises a program name701, a license unit702, and a rate structure703.

The program name701is a name of the storage system program318used in the computer system. As shown in the configuration management table209ofFIG. 5, the storage system programs “PP1” and “PP2” are used in the computer system of this embodiment. Thus, “PP1” and “PP2” are registered as program names701.

The license unit702is a scope of application of one license. For example, referring toFIG. 7, the license unit702of the storage system program “PP1” is “storage system”. This means that one license of the storage system program “PP1” is applied to one storage system101or the like. For example, when one license of the storage system program “PP1” is applied to the storage system101, the other storage system102or the like cannot use the storage system program “PP1” based on the license.

The license unit702may contain information indicating a model of a storage system to which the license can be applied. For example, the license unit702may contain information (not shown) indicating that the license of the storage system program “PP1” is applied only to a model “A” (see model502of the configuration management table209shown inFIG. 5).

On the other hand, the license unit702of the storage system program “PP2” is “computer system (divisible)”. This means that one license of the storage system program “PP2” is applied to the entire computer system of this embodiment shown inFIG. 1, and one license can be divided for a plurality of storage systems101or the like to be applied.

For example, when the license of the storage system program “PP2” is applied to the computer system at a maximum capacity of 20 TB, the 20 TB can be divided into 10 TB, 5 TB, and 5 TB to be applied to different logical volumes331. For example, the 10 TB may be applied to the logical volume “VOL1” of the storage system101, the 5 TB may be applied to the logical volume “VOL2”, and the remaining 5 TB may be applied to the logical volume “VOL3” of the storage system102.

The rate structure703is a rate structure of a license applied to each storage system program318. According to this embodiment, for any storage system program318, a flat capacity rate is applied for each 1 TB.

FIG. 8is an explanatory diagram of the used license table210of the first embodiment.

The used license table210is for managing the license of the storage system program318installed in the storage system101or the like in the computer system. Specifically, in the used license table210, for all the storage system programs318in the computer system, pieces of information regarding all the licenses held by the computer system are registered.

In the used license table210ofFIG. 8, pieces of information regarding three licenses are registered. This means that the computer system of this embodiment hold three licenses.

In the used license table210, for each license, a license key801, a program name802, an applied storage system name803, an applied volume ID804, a maximum capacity805, and a used capacity806are registered. Among these, the license key801, the program name802, the applied volume ID804, the maximum capacity805, and the used capacity806are respectively similar to the license key401, the program name402, the applied volume ID403, the maximum capacity404, and the used capacity405of the license table320shown inFIG. 4, and thus detailed description thereof will be omitted.

In the used license table210, pieces of information regarding licenses “XXXXA” and “XXXXB” are similar to those of the license table320except the applied storage system name803, and thus detailed description thereof will be omitted.

The applied storage system name803is a name of a storage system to which each license is applied. According to this embodiment, all the licenses are applied to the storage systems101.

In the example ofFIG. 8, a license “XXXXC” of the storage system program “PP2” is applied to the logical volumes “VOL1” and “VOL2” of the storage systems101. This license can be applied up to 20 TB. Actually, however, the license is applied up to 15 TB (total of logical volume sizes of VOL1and VOL2). Thus, the license “XXXXC” can be further applied to an optional logical volume331whose capacity is 5 TB or less.

FIG. 9is an explanatory diagram of the license migration management table212of the first embodiment.

In the license migration management table212, information regarding the storage system program318which needs to migrate a license associatively with migration of data scheduled to be executed is registered. Specifically, in the license migration management table212, a migration program name901, a migration capacity902, a migration source903, and a migration destination904are registered. As described later, the license migration management table212is created and updated by the license migration control program205shown inFIGS. 11 to 16.

The migration program name901is a name of the storage system program318which needs to migrate the license associatively with the migration of data scheduled to be executed. In other words, it is a name of the storage system program currently used for the logical volume331of the migration source.

The migration capacity902is a capacity of a license to migrate. In other words, it is a capacity of the logical volume331of the migration source.

The migration source903is a name of the storage system101or the like of the license migration source. As described later, the migration source903may be updated by the license migration control program205to be different from a data migration source.

The migration destination904is a name of the storage system101or the like of the license migration destination.

As shown inFIG. 6, the example ofFIG. 9shows the license migration table212when data of the logical volume “VOL2” of the storage system101is migrated to the logical volume “VOL3” of the storage system102.

In this case, “PP1” and “PP2” are registered as migration program names901, and “5 TB” is registered as a corresponding migration capacity902(see used program name505and logical volume size504of the configuration management table209shown inFIG. 5). In both of “PP1” and “PP2”, “storage system101” is stored as a migration source903, and “storage system102” is registered as a migration destination904(see storage system name611and storage system name621of the migration management table208shown inFIG. 6).

Next, a program executed according to this embodiment will be described. In the description below, when the program is a subject, in reality, processing is executed by a CPU (CPU201or311) which executes the program.

FIG. 10is a flowchart of processing executed by the migration management program206of the first embodiment.

For example, the migration management program206is executed when a need arises to migrate data for load balance or DLCM of the computer system.

Upon a start of the processing (1000), the migration management program206decides a storage devices101or the like and logical volumes331of migration source and destination of data, and registers pieces of information thereof in the migration management table208(1002). A method of deciding the migration source610and the migration destination620may be similar to conventional load balance or DLCM.

Next, the migration management, program206calls the license migration control program205to execute processing (1100). The processing executed here will be described in detail later shown inFIGS. 11 to 16.

Next, the migration management program206determines whether execution of migration is requested or not as a result of the processing of the license migration control program205(1004).

If the request of the execution of the migration is determined in the step1004, migration according to the migration management table208can be executed. Thus, the migration management program206executes migration according to the contents registered in the migration management table208(1005) to finish the processing (1008).

On the other hand, if no request of the execution of the migration is determined in the step1004, the migration according to the migration management table208cannot be executed. In this case, the migration management program206determines whether a change of the migration destination620is requested or not as a result of the processing of the license migration control program205(1006).

If no request of the change of the migration destination620is determined in the step1006, migration cannot be executed because of a license shortage shown inFIG. 11. Accordingly, the migration management program206sends a notice of migration cancellation to the system administrator (1007), and finishes the processing without executing any migration (1008). For example, the notice of the step1007may be displayed on the input/output device202of the management server130.

On the other hand, if the request of the change of the migration destination620is determined in the step1006, a license cannot be migrated to the decided migration destination620while there are enough licenses shown inFIG. 11. In other words, the license may be migrated by changing the migration destination620. Accordingly, the migration management program206returns to the step1002, decides a migration destination620again according to the request, and registers the migration destination620in the migration management table208(1002). Then, processing of the step1100and after is executed.

FIG. 11is a flowchart of processing executed by the license migration control program205of the first embodiment.

The processing of the license migration control program205is started when it is called by the migration management program206in the step1100ofFIG. 10.

Upon a start of the processing (1100), the license migration control program205executes processing A (1200). The processing A is for determining a storage system program318which needs to migrate a license to the logical volume331of the migration destination. Specifically, by the processing A, determination is made as to a need to migrate a license of a given storage program318to the logical volume331of the migration destination. Further, when the migration of the license is necessary, determination is made as to which of the storage system programs318needs to migrate its license. The processing A shown inFIG. 12will be described in detail later.

Next, the license migration control program205determines a return value of the processing A (1101).

If the return value of the processing A is determined to be “NO” in the step1101, it is not necessary to migrate licenses of any storage system programs318. In other words, migration can be executed without migrating any license. Thus, the license migration control program205proceeds to a step1105(described later).

On the other hand, if the return value of the processing A is determined to be “YES”, it is necessary to migrate a license of at least one of the storage system programs318. In this case, the license migration control program205executes processing B (1300).

The processing B is for determining whether a license can be migrated or not from the logical volume331of the migration source to that of the migration destination. The processing B shown inFIG. 13will be described later.

Next, the license migration control program205determines a return value of the processing B (1102).

If the return value of the processing B is determined to be “YES” in the step1102, a necessary license can be migrated to the logical volume331of the migration destination. In this case, the license migration control program205proceeds to a step1400to execute processing C (described later).

On the other hand, if the return value of the processing B is determined to be “NO” in the step1102, the necessary license cannot be migrated to the logical volume331of the migration destination. In this case, the license migration control program205executes processing D (1500).

The processing D is for determining whether there is an extra license or not to be applied to the logical volume331of the migration destination. The processing D shown inFIG. 15will be described in detail later.

Next, the license migration control program205determines a return value of the processing D (1103).

If the return value of the processing D is determined to be “NO” in the step1103, there is no extra license to be applied to the logical volume331of the migration destination. In this case, there is a shortage of licenses to be applied to the migration destination. Thus, the license migration control program205notifies the license shortage to the system administrator (1107) to finish the processing (1108).

On the other hand, if the return value of the processing D is determined to be “YES” in the step1103, there is an extra license to be applied to the logical volume331of the migration destination. In this case, the license migration control program205executes the processing C (1400).

Even in the case of storage system programs318of similar functions, program names or license forms may vary because of a difference or the like of models (models502) of the storage systems101which use the programs. The processing C is for determining whether the necessary license can be applied or not to the logical volume331of the storage system101or the like of the migration destination. The processing C shown inFIG. 14will be described in detail later.

The license migration control program205executes the processing C, and then determines its return value (1104).

If the return value of the processing C is determined to be “NO” in the step1104, the necessary license cannot be applied to the logical volume331of the migration destination. In this case, there is not exactly a shortage of necessary licenses. Thus, by changing the migration destination, migration may be executed. Accordingly, the license migration control program205requests a change of the migration destination to the migration management program206(1106) to finish the processing (1108).

Even in the case of different storage system programs318, as long as there are those of similar functions, licenses thereof may be migrated to the migration destination. In this case, the storage system programs318of similar functions are retrieved immediately before the step1106. If they are present, determination is made as to whether licenses thereof can be migrated to the migration destination or not (not shown). If a result of the determination shows that the licenses can be migrated to the migration destination, the licenses are registered as licenses scheduled to migrate in the license migration management table212, and the process proceeds to a step1105(described later).

If the return value of the processing C is determined to be “YES” in the step1104, a necessary license can be migrated to the logical volume331of the migration destination. In this case, the license migration control program205proceeds to a step1600to execute processing E (described later).

The processing E is for migrating a license. The processing E shown inFIG. 16will be described in detail later.

Next, the license migration control program205requests execution of migration to the migration management program206(1105), and finishes the processing (1108).

FIG. 12is a flowchart of the processing A executed by the license migration control program205according to the first embodiment.

Upon a start of the processing A in the step1200ofFIG. 11, the license migration control program205retrieves storage system programs318used for the logical volume331of the migration source and the storage system101or the like of the migration destination (1201).

Specifically, the license migration control program205refers to the configuration management table209and the migration management table208. The used program name505corresponding to the storage system name501the same as the storage system name611of migration source610and the logical volume ID503the same as the logical volume ID612of migration source610is a storage system program318used for the logical volume331of the migration source. On the other hand, the used program name505corresponding to the storage system name501the same as the storage system name621of the migration destination620is a storage system program318used for the storage system101or the like of the migration destination.

Next, the license migration control program205refers to a result of the retrieval in the step1201to determine whether the same storage system program318is used or not for the logical volume331of the migration source and the storage system101or the like of the migration destination (1202).

If the same storage system program318is determined not to be used in the step1202, a program the same as the storage system program318used for the logical volume331of the migration source is not used for the storage system101or the like of the migration destination. In this case, the process proceeds to a step1207(described later). Hereinafter in the description ofFIG. 12, the storage system program318used for the logical volume331of the migration source will be referred to as “the relevant storage system program318”.

On the other hand, if the same storage system program318is determined to be used in the step1202, a program the same as the relevant storage system program318is used for the storage system101or the like of the migration destination. In this case, a license already applied at the storage system101or the like of the migration destination may be applicable to the logical volume331of the migration destination. Accordingly, the license migration control program205refers to the used license table210to calculate an unused capacity of the license of the relevant storage system program318(1203). The unused capacity is a value obtained by subtracting the used capacity806from the maximum capacity805.

Next, the license migration control program205refers to the configuration management table209and the migration management table208to determine whether the unused capacity calculated in the step1203is smaller or not than the logical volume size504of the logical volume331of the migration destination (1204).

If the unused capacity calculated in the step1203is determined not to be smaller that the logical volume size504of the logical volume331of the migration destination in the step1204, an unused capacity of the license already applied at the storage system101or the like of the migration destination can be applied to the logical volume331of the migration destination. Accordingly, the license migration control program205determines that there is no storage system program318which needs a license migration (i.e., it is not necessary to migrate the license in any of the storage system programs318) (1209). In this case, a return value of the processing A is set to “NO”.

On the other hand, if the unused capacity calculated in the step1203is determined to be smaller than the logical volume size504of the logical volume331of the migration destination in the step1204, even when the unused capacity of the license applied at the storage system101or the like at the migration destination is applied to the logical volume331of the migration destination, there still is a shortage of licenses.

In this case, the license migration control program205determines whether the license of the relevant storage system program318can be divided to be applied to the migration destination or not (1205). Specifically, the license migration control program205refers to the license type table211. Then, when a license unit702of the license of the relevant storage system program318is “computer system (divisible)”, it is determined that the license can be divided to be applied to the migration destination.

If it is determined in the step1205that the license of the relevant storage system program318can be divided to be applied to the migration destination, a license alone among those of the relevant storage system program318which is equivalent to a shortage can be migrated from the migration source to the migration destination. Accordingly, the license migration control program205registers the relevant storage system program318in the license migration management table212(1206).

In this case, a name of the relevant storage system program318is registered as a migration program name901. As a migration capacity902, a value obtained by subtracting the unused capacity calculated in the step1203from the logical volume size504of the logical volume331of the migration destination is registered. As a migration source903and a migration destination904, names of the storage systems101or the like of the migration source and the migration destination are registered.

On the other hand, if it is determined in the step1205that the license of the relevant storage system program318cannot be divided to be applied to the migration destination, all the licenses of the relevant storage system program318must be migrated from the migration source to the migration destination. Accordingly, the processing proceeds to a step1207.

In the step1207, if the relevant storage system program318is used for the logical volume331of the migration source, the license migration control program205registers the relevant storage system program318in the license migration management table212.

In this case, the name of the relevant storage system program318is registered as a migration program name901. As a migration capacity902, the logical volume size504of the logical volume331of the migration destination is registered. As a migration source903and a migration destination904, the names of the storage systems101or the like of the migration source and the migration destination are registered.

If the relevant storage system program318is not used for the logical volume331of the migration source, it is not necessary to migrate any license.

After the execution of the step1206or1207, the license migration control program205determines that there is a storage system program318which needs a license migration (i.e., license of the relevant storage system program318must be migrated) (1208). At this time, a return value of the processing A is set to “YES”.

Thus, the processing A comes to an end (1210).

For example, when the configuration management table209and the migration management table208are as shown inFIGS. 5 and 6, the storage system programs “PP1” and “PP2” are used for the logical volume “VOL2” of the storage system101of the migration source (1201). On the other hand, the storage system program318is not used in the storage system102of the migration destination (1201). Accordingly, in the step1202, it is determined that the same storage system program318is not used. In the step1207, the storage system programs “PP1” and “PP2” are registered in the license migration management table212.

In this case, as shown inFIG. 9, as a migration capacity902corresponding to the “PP1” and the “PP2”, a value “5 TB” of the logical volume size504of the logical volume “VOL3” of the storage system102of the migration destination is registered. A value “storage system101” of the storage system name611of the migration source610is registered as a migration source903, and a value “storage system102” of the storage system name621of the migration destination620is registered as a migration destination904.

FIG. 13is a flowchart of the processing B executed by the license migration control program according to the first embodiment.

Upon a start of the processing B in the step1300ofFIG. 11, the license migration control program205retrieves a logical volume331which uses the storage system program318whose license is to be migrated (1301).

Specifically, the license migration control program205refers to the license migration management table212. The storage system program318indicated by a migration program name901of the license migration management table212(in the example ofFIG. 9, storage system programs “PP1” and “PP2”) is a program whose license is to be migrated.

Further, the license migration control program205refers to the used program name505of the configuration management table209to retrieve the logical volume331which uses the storage system program318whose license is to be migrated. In the example ofFIG. 5, the logical volumes “VOL1” and “VOL2” of the storage systems101use the storage system programs “PP1” and “PP2” whose licenses are to be migrated.

Next, the license migration control program205refers to the storage system name501, the logical volume ID503, and the used program name505of the configuration management table209to determine whether the storage system program318whose license is to be migrated is used or not for the logical volume331which is not a migration source (1302).

In the example ofFIG. 5, the storage system programs “PP1” and “PP2” whose licenses are to be migrated are used for the logical volumes “VOL1” and “VOL2” of the storage systems101. When the migration source is the logical volume “VOL2” of the storage system101as shown inFIG. 6, the storage system programs “PP1” and “PP2” whose licenses are to be migrated are used for the logical volume “VOL1” of the storage system101while it is not a migration source.

If it is determined in the step1302that the storage system program318whose license is to be migrated is not used for the logical volume331which is not a migration source, the license migration control program205determines that the license can be migrated to the migration destination (1306). In this case, a return value of the processing B is set to “YES”. Then, the processing B comes to an end (1307).

On the other hand, if it is determined in the step1302that the storage system program318whose license is to be migrated is used for the logical volume331which is not a migration source, the license migration control program205refers to the license type table211to retrieve the license unit702of the storage system program318whose license is to be migrated (1303).

In the example ofFIG. 7, the license units702of the storage system programs “PP1” and “PP2” whose licenses are to be migrated are respectively “storage system” and “computer system (divisible)”.

Next, the license migration control program205refers to the license unit702retrieved in the step1303to determine whether its license can be divided to be applied to the migration source and the migration destination (1304).

In the example ofFIG. 7, the license unit702of the storage system program “PP1” is “storage system”. In other words, one license of the storage program “PP1” is applied to one storage system101or the like. In this case, one license can be applied to a plurality of logical volumes331in one storage system101or the like to which it is applied. However, one license cannot be applied to a plurality of storage systems101or the like. Accordingly, regarding the storage system program “PP1”, the license migration control program205determines that the license cannot be divided to be applied to the migration source and the migration destination (1304).

On the other hand, referring toFIG. 7, the license unit702of the storage system program “PP2” is “computer system (divisible)”. In other words, one license of the storage system program “PP2” is applied to one computer system. In this case, one license can be applied to a plurality of storage systems101or the like in one computer system to which it is applied. Accordingly, regarding the storage system program “PP2”, the license migration control program205determines that the license can be divided to be applied to the migration source and the migration destination (1304).

If it is determined in the step1304that the license cannot be divided to be applied to the migration source and the migration destination, the license migration control program205determines that the license cannot be migrated to the migration destination (1305). In this case, a return value of the processing B is set to “NO”. Then, the processing B comes to an end (1307).

On the other hand, if it is determined in the step1304that the license can be divided to be applied to the migration source and the migration destination, the process proceeds to the step1306(described above).

After all, in the example ofFIG. 7, the return value is set to “NO” for the storage system program “PP1”, and to “YES” for the storage system program “PP2”.

FIG. 14is a flowchart of the processing C executed by the license migration control program205according to the first embodiment.

Upon a start of the processing C in the step1400ofFIG. 11, the license migration control program205refers to the license type table211to retrieve the license unit702of the storage system program318whose license is to be migrated (1401). In the example ofFIG. 9, the storage system programs “PP1” and “PP2” are storage system programs318whose licenses are to be migrated. Accordingly, in the step1401, the license units702“storage system” and “computer system (divisible)” corresponding to the “PP1” and “PP2” are retrieved.

Next, the license migration control program205determines whether the license to be migrated can be applied or not to the storage system101or the like of the migration destination (1402). Specifically, the license migration control program205refers to the model502of the configuration management table209to determine whether the license to be migrated can be applied or not to the model502of the storage system101or the like of the migration destination.

In the example ofFIG. 5, the models502of the storage system101of the migration source and the storage system102of the migration destination are both “A”.

In the example ofFIG. 7, the license units702of the storage system programs “PP1” and “PP2” are respectively “storage system” and “computer system (divisible)”.

As described above with reference toFIG. 7, the license unit702may contain information indicating the model of the storage system101or the like which can use the license. For example, when the license unit702corresponding to the “PP1” indicates applicability to the model “A” alone, as the model502of the storage system102of the migration destination is “A”, the license of the “PP1” can be applied to the storage system102.

When there are a plurality of licenses which can be migrated for one storage system program318, optional one can be selected from the licenses. The selection may be made by the system administrator or the license migration control program205. For example, a license whose unused capacity is closest to the size of the logical volume331of the migration destination may be selected.

If it is determined in the step1402that the license to be migrated can be applied to the storage system101or the like of the migration destination, the license migration control program205sets a return value of the processing C to “YES” (1403), and then the processing C comes to an end (1405).

If it is determined in the step1402that the license to be migrated cannot be applied to the storage system101or the like of the migration destination, the license migration control program205sets a return value of the processing C to “NO” (1404), and then the processing C comes to an end (1405).

FIG. 15is a flowchart of the processing D executed by the license migration control program according to the first embodiment.

The processing D is for determining whether a certain storage system101or the likes holds an extra license to be migrated to the storage system101or the like of the migration destination or not when the license applied to the logical volume331of the migration source cannot be migrated.

Upon a start of the processing D in the step1500ofFIG. 11, the license migration control program205refers to the used license table210to retrieve a license whose unused capacity is equal to or more than the size of the logical volume331of the migration destination (1501). Specifically, the migration capacity902of the license migration management table212is equal to the size of the logical volume331of the migration destination. Accordingly, a license key801whose unused capacity (difference between maximum capacity805and used capacity806) is equal to or more than the migration capacity902is retrieved.

In the example ofFIG. 9, migration capacities902of the storage system programs “PP1” and “PP2” are both 5 TB.

Referring toFIG. 8, license keys801corresponding to the storage system program “PP1” are “XXXXA” and “XXXXB”. An unused capacity of the license “XXXYA” is 0 TB, while an unused capacity of the license “XXXXB” is 10 TB. On the other hand, a license key801corresponding to the storage system program “PP2” is “XXXXC”. An unused capacity of the license “XXXXC” is 5 TB.

Thus, in the step1501, the license “XXXXB” is retrieved for the storage system program “PP1”, and the license “XXXXC” is retrieved for the license system program “PP2”.

Next, the license migration control program205determines whether the license retrieved in the step1501is unused (i.e., not applied to any logical volume331) or not (1502). Specifically, reference is made to the used license table210to determine whether an applied volume ID804is “unused” or not.

In the example ofFIG. 8, an applied volume ID804of the license “XXXXB” is “unused”. On the other hand, an applied volume ID804of the license “XXXXC” is not “unused”.

If it is determined in the step1502that the retrieved license is “unused”, the license can be migrated to the migration destination as it is an extra license not applied to any logical volume331. Accordingly, the license migration control program205updates the migration source903of the license migration management table212to a value of a name of the storage system101or the like (i.e., applied storage system name803) to which the license retrieved in the step1502is currently applied (1503).

In the example ofFIG. 8, an applied storage system name803of the unused license “XXXXB” is “storage system101”. Accordingly, the migration source903of the license migration management table212is updated to “storage system101”. In this example, the migration source903before the updating is also “storage system101”. Thus, there is no change after all.

Next, the license migration control program205determines that there is an extra license to be applied to the migration destination (1504). In this case, a return value of the processing D is set to “YES”. Then, the processing D comes to an end (1507).

On the other hand, if it is determined in the step1502that the retrieved license is not “unused”, at least a part of the license is applied to at least one logical volume331. In this case, the license migration control program205determines whether the retrieved license can be divided or not (1505). Specifically, reference is made to the license unit702of the license type table211.

In the example ofFIG. 8, the license unit702of the storage system program “PP2” to which the license “XXXXC” is applied is “computer system (divisible)”. Accordingly, the license “XXXXC” is determined to be divisible.

If it is determined in the step1505that the retrieved license can be divided, an unused capacity divided from the license is an extra license. In other words, the unused capacity of the license can be divided to be applied to the migration destination. In this case, the process proceeds to the step1503. The process of the step1503and after is as described above, and thus description thereof will be omitted.

On the other hand, if it is determined in the step1505that the retrieved license cannot be divided, the unused capacity of the license cannot be applied to the migration destination. Accordingly, the license migration control program205determines that there is no extra license to be applied to the migration destination (1506). In this case, a return value of the processing D is set to “NO”. Then, the processing D comes to an end (1507).

FIG. 16is a flowchart of processing E executed by a license migration control program205according to the first embodiment.

Upon a start of the processing E in the step1600ofFIG. 11, the license migration control program205refers to the license migration management table212to issue a license migration request to the storage systems101or the like of the migration source903and the migration destination904(1601). In the example ofFIG. 9, a request to migrate the licenses of the storage system programs “PP1” and “PP2” from the storage system101to the storage system102is issued to the storage systems101and102.

The storage system101or the like that has received the request executes the license migration program319to migrate the licenses. Processing shown inFIG. 17executed by the license migration program319will be described in detail later.

Next, the license migration control program205updates the used license table210and the license migration management table212(1602).

For example, when the license migration shown inFIG. 9is executed, in the step1602, the applied storage system name803corresponding to the license “XXXXB” is updated to “storage system102”, the applied volume ID804is updated to “VOL3”, and the used capacity806is updated to “5 TB”. On the other hand, “storage system102” is added to the applied storage system name803corresponding to the license “XXXXC”, “VOL3” is added to the applied volume ID804, and the used capacity806is updated to “20 TB”. Then, each record (row) of the license migration management table212is deleted.

Thus, the processing E comes to an end (1603).

FIG. 17is a flowchart of processing executed by a license migration program319according to the first embodiment.

Execution of the license migration program319of each storage system101or the like is started upon reception of the license migration request issued in the step1601ofFIG. 16(1700).

First, the license migration program319updates the record (line) of the license table320, and transmits/receives the updated record (1701).

Specifically, the license migration program319of the storage system101or the like of the license migration source updates the license table320to match the license migration management table212. Then, the license migration program319transmits the updated record of the license table320to the storage system101or the like of the license migration destination. On the other hand, the license migration program319of the storage system101or the like of the license migration destination receives the record of the license table320transmitted from the license migration source.

For example, when the license migrates as shown inFIG. 9, the license migration program319of the storage system101of the migration source updates an applied volume403corresponding to the license “XXXXB” of the license table320shown inFIG. 4to “VOL3”, and updates a used capacity405to “5 TB”. Then, the license migration program319of the storage system101transmits the updated record corresponding to the license “XXXXB” to the storage system102of the migration destination. The license migration program319of the storage system102receives the transmitted record.

Next, the license migration program319updates the license table320(1702). Specifically, the license migration program319of the storage system101or the like of the license migration source deletes the transmitted record from the license table320. On the other hand, the license migration program319of the storage system101or the like of the license migration destination adds the received record to the license table320.

For example, when the record corresponding to the license “XXXXB” is transmitted as described above, the record is deleted from the license table320of the storage system101shown inFIG. 4. On the other hand, the record is added to the license table320(not shown) of the storage system102.

Next, the license migration program319notifies the end of the license migration processing to the management server130(1703).

Thus, the processing of the license migration program319is finished (1704).

It should be noted that the license key may be common throughout the entire computer system. Alternatively, the license migration program319may generate a license key matched with the storage system101or the like of the migration destination.

In the example ofFIG. 17, the license directly migrates from the migration source to the migration destination. However, the license may first migrate to the management server130or a specific storage system101or the like, and then migrate from the management server130or the like to the migration destination.

FIG. 18is a flowchart of processing executed when use of the storage system program318is canceled in the storage system101or the like of the first embodiment.

This processing is executed when the storage system program318used at a certain storage system101or the like is not used any more (i.e. use is canceled) because of the execution of a data migration.

When this processing is started (1800), and the storage controller310of the storage system101or the like cancels use of a certain storage system program318(1801), the management server agent316transmits a notice of the canceled use of the storage system program318to the management server130(1802). Processing executed by the management server130which receives the notice shown inFIG. 19will be described in detail later.

Each storage system101or the like comprises a storage system management program (not shown) for monitoring an usage status of the storage system program318and detecting cancellation of the use.

Thus, the processing comes to an end (1803).

FIG. 19is a flowchart of processing executed by the license migration control program205when use of the storage system program318is canceled in the storage system101or the like of the first embodiment.

The processing ofFIG. 19is for causing the license migration control program205to update the used license table210when the management server130receives the notice (notice of canceled use of the storage system program318at a certain logical volume331) transmitted from the storage system101or the like in the step1802ofFIG. 18.

In the description ofFIG. 19, the storage system program318of the canceled use is written as “the relevant storage system program318”, and the logical volume331for which use of the storage system program318is canceled is written as “the relevant logical volume331”.

When the management server130receives the notice and this processing is started (1900), the license migration control program205retrieves the storage system101or the like, and the logical volume331which use (or have used) the relevant storage system program318(1901).

Specifically, the license migration control program205refers to the configuration management table209to retrieve a storage system name501and a logical volume ID503which contain the relevant storage system program318in a used program name505.

Next, the license migration control program205determines whether there is a logical volume331which uses the relevant storage system program318or not in addition to the relevant logical volume331(1902).

If it is determined in the step1902that there is no logical volume331which uses the relevant storage system program318in addition to the relevant logical volume331, a license applied to the relevant storage system program318becomes unused at this point of time. Accordingly, the license migration control program205updates an applied volume ID804corresponding to the license applied to the relevant storage system program318of the used license table210to “unused”, and updates a used capacity806to “0 (TB)” (1903).

On the other hand, if it is determined in the step1902that there is a logical volume318which uses the relevant storage system program318in addition to the relevant logical volume331, the license applied to the relevant storage system program318is applied to the other logical volume331at this point of time. In this case, the license migration control program205deletes the logical volume ID of the relevant logical volume331from an applied volume ID804corresponding to the license applied to the relevant storage system program318of the used license table210, and subtracts the capacity of the relevant logical volume331from a used capacity806(1904).

For example, when the configuration management table209is as shown inFIG. 5, and the use of the relevant storage system program “PP1” is canceled for the relevant logical volume “VOL1” of the storage system101, in the step1901, “storage system101” is retrieved as a storage system name501, and “VOL1” and “VOL2” are retrieved as logical volume ID's503.

In this case, it is determined in the step1902that the relevant storage system program “PP1” is used for the logical volume “VOL2” in addition to the relevant logical volume “VOL1”.

Next, in the step1904, the logical volume “VOL1” is deleted from the applied volume ID804corresponding to the license “XXXXA”. Further, a value of the used capacity806is updated to “5 TB” obtained by subtracting a size “10 TB” of the relevant logical volume “VOL1” (see logical volume size504of the configuration management table209shown inFIG. 5) from “15 TB”.

Thus, the processing ofFIG. 19comes to an end (1905).

In the examples ofFIGS. 18 and 19, the management server agent316of the storage system101or the like transmits the notice of the canceled use of the storage system program318to the management server130. However, for example, the management server130may periodically execute polling to find the storage system program318used by each storage system101or the like. Alternatively, the management server agent316may periodically notify the usage status of the storage system program318to the management server130.

In the examples ofFIGS. 18 and 19, the license unused as a result of the canceled use remains held by the storage system101or the like. However, the unused license may be held by those other than the storage system101or the like. For example, the management server130or a specific storage system101or the like may comprise a function of managing an extra license, and the storage system101or the like may return the unused license to this management server130or specific storage system101or the like. In this case, when the license needs to be migrated, the management server130or the like allocates the license.

This embodiment has been described by way of example where the data migration shown inFIG. 6is executed. In this case, the migration source of the data and the migration source of the license are both storage systems101shown inFIG. 9. However, the migration source of the data and the migration source of the license may be different.

For example, in the used license table210ofFIG. 8, when the applied storage system name803of the unused license “XXXXB” regarding the storage system program “PP1” is “storage system103”, the license “XXXXB” must be migrated from the storage system103to the storage system102.

In this case, whether there is a path set or not between the storage systems103and102is a problem. It is because the license cannot be migrated if there is no path set therebetween.

In this case, the license migration control program205determines whether the license can be migrated or not. Specifically, reference is made to a path506of the configuration management table209to determine whether there is a path set or not between the storage systems101or the like of the license migration source and destination. This determination is executed when a return value of the processing D is “YES” in a step1103(not shown).

When the license “XXXXB” is migrated from the storage system103to the storage system102, reference is made to the path506of the storage system103. In the example ofFIG. 5, paths506of the storage system103are “101” and “102”. This means that there is a path set from the storage system103to the storage system102(similarly, there is a path set from the storage system103to the storage system101). In this case, the license can be migrated from the storage system103to the storage system102. Accordingly, migration is executed.

Alternatively, even when there is no direct path, the license may be migrated via the other storage system101or the like. For example, referring toFIG. 5, when a path506of the storage system103is only “101”, there is no direct path set from the storage system103to the storage system102. However, there are paths set from the storage system103to the storage system101and from the storage system101to the storage system102. Thus, the license migration control program205can migrate the license “XXXXB” from the storage system103via the storage system101to the storage system102.

When there are a plurality of paths to migrate the license, an optional path can be selected. For example, an optimal path may be decided to minimize the number of storage systems101or the like to be passed through.

Alternatively, the management server130may migrate the license via itself (or another device in the computer system).

When there are determined no paths to migrate the license to the migration destination, the license migration control program205inhibits migration of the license and retrieve another unused license. Alternatively, presence of an unused license but nonpresence of a path, to migrate the license may be notified to the system administrator.

In the aforementioned case, the storage systems101or the like may be present in different data centers.

The description of this embodiment has been directed for the case of the license migration when the data is migrated. However, this embodiment can be applied to a license migration when data is subjected to remote copy. The remote copy is a technology of transferring, to prevent a data loss at the time of a system trouble or a disaster, data of the storage system to that of a remote place to create a copy of the data.

Specifically, when remote copy is executed, data of a logical volume331of a copy source (transfer source) is transferred to that of a copy destination (transfer destination) to be stored.

Different from the case of the migration, even after the remote copy is executed, the copied data is left in the logical volume331of the storage system101or the like of the copy source. Accordingly, even when a license is necessary at the copy destination, a license of the copy source cannot be migrated to the copy destination.

Hereinafter, a license migration when data is subjected to remote copy will be described.

FIG. 20is a block diagram showing a configuration of the management server130when remote copy is executed according to the first embodiment.

The management server130ofFIG. 20comprises a license migration control program2001, a copy management program2002and a copy pair management table2003which replace the license migration control program205, the migration management program206, and the migration management table208of the management server130ofFIG. 2. The programs and table shown inFIGS. 22 to 24will be described in detail later. Other portions of the management server130ofFIG. 20are similar to those of the management server130ofFIG. 2, and thus description thereof will be omitted.

FIG. 21is a block diagram showing a configuration of the storage system101when remote copy is executed according to the first embodiment.

Configurations of storage systems102and103are similar to that of the storage system101, and thus description thereof will be omitted.

The storage system101ofFIG. 21comprises a remote copy program2101which replaces the migration program317between the nodes of the storage system101ofFIG. 3.

The remote copy program2101is for copying (remote-copy) data of a logical volume331of the storage system101to a logical volume331of the other storage system102or the like.

Other portions of the storage system101ofFIG. 21are similar to those of the storage system101ofFIG. 3, and thus description thereof will be omitted.

FIG. 22is an explanatory diagram of the copy pair management table2003of the first embodiment.

In the copy pair management table2003, for remote-copy scheduled to be executed, information regarding the logical volumes331of the copy source and copy destination is registered by the copy management program2002.

In the copy pair management table2003, a storage system name2211and a logical volume ID2212of the copy source are registered in a copy source2210. On the other hand, a storage system name2221and a logical volume ID2222of the copy destination are registered in a copy destination2220.

In the example ofFIG. 22, “storage system101” and “VOL2” are respectively registered as a storage system name2211and a logical volume ID2212of the copy source2210. On the other hand, “storage system102” and “VOL3” are respectively registered as a storage system name2221and a logical volume ID2222of the copy destination2220. This means that remote-coping is scheduled to be executed from the logical volume “VOL2” of the storage system101to the logical volume “VOL3” of the storage system102.

FIG. 23is a flowchart of processing executed by the copy management program2002of the first embodiment.

The copy management program2002is executed when a copy pair is created and remote-copy is executed based on the copy pair. The copy pair is a set of logical volumes331of the copy source and copy destination.

Upon a start of the processing (2300), the copy management program2002decides storage systems101or the like and logical volumes331of copy source and copy destination, and registers pieces of information thereof in the copy pair management table2003(2301).

Next, the copy pair program2002calls the license migration control program2001to execute processing (2400). The processing executed here will be described in detail later shown inFIG. 24.

Next, the copy management program2002determines whether execution of remote-copy is requested or not as a result of the processing of the license migration control program2001(2302).

If it is determined in the step2302that the execution of remote-copy is requested, remote-copy according to the copy pair management table2003can be executed. Accordingly, the copy management program2002executes remote-copy according to the contents registered in the copy pair management table2003(2303), and the processing comes to an end (2306).

On the other hand, if it is determined in the step2302that the execution of remote-copy is not requested, remote-copy according to the copy pair management table2003cannot be executed. In this case, the copy management program2002determines whether a change of the copy destination2220is requested or not as a result of the processing of the license migration control program2001(2304).

If it is determined in the step2304that the change of the copy destination2220is not requested, remote-copy cannot be executed because of a license shortage shown inFIG. 24. Accordingly, the copy management program2002transmits a notice of remote copy cancellation to the system administrator (2305), and finishes the processing without executing remote-copy (2306).

On the other hand, if it is determined in the step2304that the change of the copy destination2220is requested, a license cannot be migrated to the decided copy destination2220while there are enough licenses shown inFIG. 24. In other words, the license may be migrated by changing the copy destination2220. Thus, the copy management program2002returns to the step2301to decide a copy destination2220again according to the request, and registers the copy destination2220in the copy pair management table2003(23012). Subsequently, a process of a step2400and after will be executed.

FIG. 24is a flowchart of processing executed by the license migration control program2001when remote-copy is executed according to the first embodiment.

The processing of the license migration control program2001is started when it is called by the copy management program2002in the step2400ofFIG. 23.

Description of a portion of the processing of the license migration control program2001similar to that of the license migration control program205will be omitted.

Upon a start of the processing (2400), the license migration control program2001executes processing A (1200). Contents of the processing A are as described above with reference toFIG. 12. However, in the processing A ofFIG. 12, “license migration control program205”, “migration management table208”, “migration”, “migration source”, and “migration destination” are respectively equivalent to “license migration control program2001”, “copy pair management table2003”, “remote copy”, “copy source”, and “copy destination”. This is similar in the cases of processing C, processing D and processing E described below. By the processing A, a storage system program318which needs to migrate a license to a logical volume331of the copy destination is determined.

Next, the license migration control program2001determines a return value of the processing A (2401).

If it is determined in the step2401that a return value of the processing A is “NO”, it is not necessary to migrate a license of any storage system program318. In other words, remote copy can be executed without migrating a license. Thus, the license migration control program2001proceeds to a step2404(described later).

On the other hand, if it is determined in the step2401that the return value of the processing A is “YES”, it is necessary to migrate a license of at least one of the storage system programs318. However, when remote-copy is executed, data is left in the primary storage system101or the like, and thus a license of the copy source cannot be migrated to the copy destination. Thus, the license migration control program2001executes processing D shown inFIG. 15to determine whether there is an extra license or not to be applied to a logical volume331of the copy destination (1500).

Next, the license migration control program2001determines a return value of the processing D (2402).

If the return value of the processing D is determined to be “NO” in the step2402, there is no extra license to be applied to the logical volume331of a copy destination. In this case, there is a shortage of licenses to be applied to the copy destination. Thus, the license migration control program2001notifies the license shortage to the system administrator (2406) and finishes the processing (2407).

On the other hand, if the return value of the processing D is determined to be “YES” in the step2402, there is an extra license to be applied to the logical volume331of the copy destination. In this case, the license migration control program2001executes the processing C (1400). The processing C determines whether or not the necessary license can be applied to the logical volume331of the storage system101or the like of the copy destination shown inFIG. 14.

The license migration control program2001executes the processing C, and then determines a return value for the processing C (2403).

If the return value of the processing C is determined to be “NO” in the step2403, the necessary license cannot be applied to the logical volume331of the copy destination. In this case, there is not exactly a shortage of necessary licenses. Thus, by changing the copy destination, a remote copy may be executed. Accordingly, the license migration control program2001requests a change of the copy pairs to the copy management program2002(2405) to finish the processing (2407).

If the return value of the processing C is determined to be “YES” in the step2403, a necessary license can be applied to the logical volume331of the copy destination. In this case, the license migration control program2001executes the processing E (1600). The processing E is for migrating a license shown inFIG. 16.

Next, the license migration control program2001requests execution of migration to the migration management program206(2404), and finishes the processing (2407).

According to this embodiment, before the execution of data migration or remote-copy, determination is made as to a need to apply the license of the storage system program to the storage system of the migration destination or the copy destination. Then, when the license must be applied, determination is made as to whether a necessary license can be migrated or not.

If the license can be migrated and the license migration provides enough licenses, use of the storage system program can be continued without purchasing a new license.

Only if the license cannot be migrated, or only if there is still a shortage of licenses even when the license is migrated, only a new license needs to be purchased. Thus, running costs of the storage system are reduced.

Next, a second embodiment will be described.

In the description below, differences of this embodiment from the first embodiment will be explained, but explanation of portions similar to those of the first embodiment will be omitted.

FIG. 25is a block diagram showing a configuration of a computer system according to the second embodiment.

The computer system of this embodiment comprises storage systems2501and2502, a SAN110, an application server120, a management server2510, and a management network140.

The storage systems2501and2502and the management server2510shown inFIGS. 26 to 28will be described in detail later.

As described later, the storage system2502of this embodiment is externally connected to the storage system2501.

FIG. 26is a block diagram showing a configuration of the management server2510of the second embodiment.

The management server2510of this embodiment comprises a CPU201, an input/output device202, a management I/F203, and a memory2600.

The memory2600is, for example, a semiconductor memory. The memory2600of this embodiment stores at least a license migration control program2601, a storage management program207, a configuration management table209, a used license table210, and a license type table211. Processing executed by the license migration control program2601inFIG. 31will be described in detail later.

FIG. 27is a block diagram showing a configuration of the storage system2501of the second embodiment.

The storage system2501of this embodiment comprises a disk device2720and a storage controller2710.

The disk device2720stores data written from the application server120. The disk device2720comprises one or more disk drives (not shown). A storage area of the disk device2720is divided into one or more logical volumes331. Further, the disk device2720includes one or more virtual volumes2721. The virtual volume2721is a virtual logical volume331. The storage controller2710causes the management server2510to recognize the logical volume331of the externally connected storage system2502as a virtual volume2721as if it were present in the disk device2720. In other words, the virtual volume2721is not actually present in the disk device2720. Thus, in reality, the disk device2720is similar to the disk device330of the first embodiment.

The storage controller2710comprises a CPU311, a cache312, a management I/F313, two I/F's314, and a memory2711.

One of the two I/F's314communicates with the application server120via the SAN110, while the other communicates with the externally connected storage system2502via the SAN110.

The memory2711is, for example, a semiconductor memory. The memory2711of this embodiment stores at least a management server agent316, an external connection program2712, a storage system program318, a license migration program319, a license table320, and an external volume mapping table2713. The external connection program2712and the external volume mapping table2713shown inFIGS. 29 and 30will be described in detail later.

FIG. 28is a block diagram showing a configuration of the externally connected storage system2502of the second embodiment.

The storage system2502of this embodiment comprises the disk device330and a storage controller2810.

The storage controller2810comprises the CPU311, the cache312, the management I/F313, the I/F314, and a memory2811.

The I/F314communicates with the storage system2501via the SAN110.

The memory2811stores at least the management server agent316, the storage system program318, the license migration program319, and the license table320.

Next, referring toFIGS. 25 to 28, an outline of this embodiment will be described.

According to this embodiment, the storage system2502is externally connected to the storage system2501. Between the application server120and the storage system2501, there is a path set from the I/F123via the I/F111to the I/F314of the storage system2501. On the other hand, there is no path set between the application server120and the storage system2502. Between the storage systems2501and2502, there is a path set via the I/F111.

The storage system2501comprises a virtualization function of a device base. Accordingly, the storage system2501supplies the logical volume331of the externally connected storage system2502as a virtual volume2721to the application server120.

The application server120can directly access the logical volume331of the storage system2501, but not the logical volume331of the storage system2502. However, the application server120can indirectly access the logical volume331of the storage system2502by accessing the virtual volume2721of the storage system2501. In this case, the application server recognizes the virtual volume2721as a logical volume331actually present in the storage system2501.

In this case, the virtual volume2712is processed as one having a capacity equal to that of the corresponding logical volume331.

Such external connection is normally realized by adding the storage system2501to the connection of the application server120with the storage system2502via the SAN110. Before the addition of the storage system2501, the application server120directly accesses the logical volume331of the storage system2502. After the addition of the storage system2501, the application server120accesses the virtual volume2721of the storage system2501to indirectly access the logical volume331of the storage system2502.

In such a case, when the storage system2501is added, and the virtual volume2721is set, it may be necessary to migrate a license of the storage system program318used by the storage system2502to the storage system2501.

This embodiment relates to a license migration when such external connection is executed.

FIG. 29is an explanatory diagram of the external volume mapping table2713of the second embodiment.

In the external volume mapping table2713, information indicating correspondence between a logical volume331to be externally connected and a virtual volume2721is registered.

For the external volume mapping table2713, in a storage system2910to be externally connected, a storage system name2911and a logical volume ID2912of an external connected storage system2502are registered. On the other hand, in a storage system2920that comprises an external connection function, a storage system name2921and a virtual volume ID2922of the storage system2501which comprises an external connection function (i.e., virtualization function) are registered. The virtual volume ID2922is an identifier of a virtual volume2721obtained by virtualizing a logical volume indicated by the logical volume ID2912. Hereinafter, the logical volume331virtualized by the virtual volume2721will be referred to as an external logical volume331. The external logical volume331and the storage system2502including the same will be referred to as “transfer source”, and the virtual volume2721and the storage system2501including the same will be referred to as “transfer destination”.

An example ofFIG. 29shows a case of the external connection shown inFIG. 25. The storage system name2911and the logical volume ID2912of the externally connected storage system2910are respectively “storage system2502” and “VOL2”. On the other hand, the storage system name2921and the virtual volume ID2922of the storage system2910which comprises the external connection function are respectively “storage system2501” and “VOL3”. This means that the logical volume “VOL2” of the storage system2502is virtualized as the virtual volume “VOL3” of the storage system2501.

FIG. 30is a flowchart of processing executed by the external connection program2712of the second embodiment.

When the system administrator executes external connection of the storage system2501or the like, the external connection program2712is executed. Description below will be of a case where the storage system2502is externally connected to the storage system2501as shown inFIG. 25.

Upon a start of execution of the external connection program2712(3000), the system administrator designates a logical volume ID2912of an external logical volume331of the storage system2502to be externally connected, creates a virtual volume ID2922of a virtual volume2721corresponding to the external logical volume331, and registers information thereof in the external volume mapping table2713(3001).

Next, the external connection program2712causes the management server2510to execute the license migration control program2601(3100). Processing executed here shown inFIG. 31will be described in detail later.

Next, the external connection program2712determines whether execution of external connection is requested or not as a result of the processing of the license migration control program2601(3003).

If it is determined in the step3003that the execution of the external connection is requested, external connection according to the external volume mapping table2713can be executed. Accordingly, the external connection program2712executes external connection according to contents registered in the external volume mapping table2713(3005), and the processing comes to an end (3008).

On the other hand, if it is determined in the step3003that the execution of the external connection is not requested, the external connection according to the external volume mapping table2713cannot be executed. In this case, the external connection program2712determines whether inhibition of a license migration has been notified or not as a result of the processing of the license migration control program2601(3004).

If it is determined in the step3004that the inhibition of the license migration has been notified, a license cannot be migrated while there are enough licenses, and thus the external connection cannot be executed. Accordingly, the external connection program2712notifies cancellation of the external connection because of the inhibited license migration to the system administrator (3006), and finishes the processing without executing the external connection (3008).

On the other hand, if it is determined in the step3004that the inhibition of the license migration has not been notified, the external connection cannot be executed because of a license shortage. Thus, the external connection program2712notifies cancellation of the external connection because of the license shortage to the system administrator (3007), and finishes the processing without executing the external connection (3008).

FIG. 31is a flowchart of processing executed by the license migration control program2601of the second embodiment.

The processing of the license migration control program2601is started when the execution is instructed from the external connection program2712in the step3100ofFIG. 30.

Description of portions of the processing of the license migration control program2601similar to those of the processing of the license migration control program205will be omitted.

Upon a start of the processing (3100), the license migration control program2601executes processing A (1200). Contents of the processing A are as described above with reference toFIG. 12. However, in the processing A ofFIG. 12, “license migration control program205”, “migration management table208”, “migration”, “migration source”, and “migration destination” respectively correspond to “license migration control program2601”, “external volume mapping table2713”, “external connection”, “transfer source”, and “transfer destination”. This will be similar for processing B, processing C, processing D, and processing E described below. By the processing A, a storage system program318which needs to migrate a license to a virtual volume2721of the transfer destination is determined.

Next, the license migration control program2601determines a return value of the processing A (3101).

If it is determined in the step3101that the return value of the processing A is “NO”, external connection can be executed without migrating a license of any storage system program318. Thus, the license migration program2601proceeds to a step3105(described later).

On the other hand, if it is determined in the step3101that the return value of the processing A is “YES”, it is necessary to migrate a license of at least one of the storage system programs318. In this case, the license migration control program2601executes processing B (1300).

The processing B determines whether a necessary license can be migrated or not from the logical volume331of the transfer source to the virtual volume2721of the transfer destination shown inFIG. 13.

Next, the license migration control program2601determines a return value of the processing B (3102).

If the return value of the processing B is determined to be “YES” in the step3102, a necessary license can be migrated to the virtual volume2721of the transfer destination. In this case, the license migration control program2601proceeds to a step1400to execute processing C (described later).

On the other hand, if the return value of the processing B is determined to be “NO” in the step3102, the necessary license cannot be migrated to the virtual volume3721of the transfer destination. In this case, the license migration control program2601executes processing D (1500).

The processing D determines whether there is an extra license or not to be applied to the virtual volume2721of the transfer destination shown inFIG. 15.

Next, the license migration control program2601determines a return value of the processing D (3103).

If the return value of the processing D is determined to be “NO” in the step3103, there is no extra license to be applied to the virtual volume2721of the transfer destination. In this case, there is a shortage of licenses to be applied to the transfer destination. Thus, the license migration control program2601notifies the license shortage to the system administrator (3107) to finish the processing (3108).

On the other hand, if the return value of the processing D is determined to be “YES” in the step3103, there is an extra license to be applied to the virtual volume2721of the transfer destination. In this case, the license migration control program2601executes the processing C (1400).

The processing C determines whether a license can be applied or not to the virtual volume2721of the storage system2501of the transfer destination shown inFIG. 14.

Next, the license migration control program2601determines a return value of the processing C, after executing the processing C (3104).

If it is determined in the step3104that the return value of the processing C is “NO”, a necessary license cannot be applied to the virtual volume2721of the transfer destination. In this case, the license migration control program2601notifies inhibition of a license migration to the external connection program2712(3106), and finishes the processing (3108).

On the other hand, if the return value of the processing C is determined to be “YES” in the step3104, a necessary license can be applied to the virtual volume2721of the transfer destination. In this case, the license migration control program2601executes processing E (1600).

The processing E is for migrating a license shown inFIG. 16.

Next, the license migration control program2601requests execution of external connection to the external connection program2712(3105), and finishes the processing (3108).

According to the embodiments as described above, before execution of external connection, determination is made as to whether or not it is necessary to apply the license of the storage system program to the storage system of the transfer destination. Then, when the license must be applied, determination is made as to whether a necessary license can be migrated or not.

If the license can be migrated and the license migration provides enough licenses, use of the storage system program can be continued without purchasing a new license.

Only if the license cannot be migrated, or only if there is still a shortage of licenses even when the license is migrated, a new license needs to be purchased. Thus, running costs of the storage system are reduced.