Sign up to receive free email alerts when patent applications with chosen keywords are publishedSIGN UP

Abstract:

The present invention provides a technique for arranging a virtual
logical volume group for satisfying target response performance and
realizing a cost reduction. For this purpose, in the present invention,
in a storage managing system which manages a storage subsystem comprising
in a pool using plural storage devices (hierarchies) having different
performances and provides plural virtual logical volumes from the pool,
the plural virtual logical volumes are classified into plural groups on
the basis of information concerning target response performance
concerning each of the plural virtual logical volumes such that each of
the plural virtual logical volumes satisfies the target response
performance. A new pool is allocated to each of the plural groups of the
virtual logical volumes. Further, information indicating a correspondence
relation between the pool and the virtual logical volumes included in the
groups is generated and the information is output.

Claims:

1. A storage managing system which manages a storage subsystem that
comprises a pool using plural storage devices having different
performances and provides plural virtual logical volumes from the pool,
the storage management system comprising: a memory which stores
information concerning target response performance concerning each of the
plural virtual logical volumes; and a processor which reads out the
information concerning the target response performance from the memory,
classifies, on the basis of the information concerning the target
response performance, the plural virtual logical volumes into plural
groups such that the plural virtual logical volumes satisfy target
response performances of the respective virtual logical volumes,
allocates a new pool to each of the plural groups, executes
classification processing for generating information indicating a
correspondence relation between the pool and the virtual logical volumes
included in the groups, and outputs a result of the classification
processing.

2. A storage managing system according to claim 1, wherein the memory
further stores information concerning access characteristics of the
plural virtual logical volumes, and the processor executes the
classification processing such that, concerning a combination of the
target response performances and the access characteristics of the plural
virtual logical volumes, a virtual logical volume having a relation in
which when one of the target response performance and the access
characteristic increases, the other decreases, is included in one group.

3. A storage managing system according to claim 2, wherein the processor
determines a group of virtual logical volumes which should be arranged in
one pool, by executing, in the classification processing, in a
two-dimensional plane comprising the access characteristics and the
target response performances, (i) plot processing for plotting a set of
the access characteristic and the target response performance of each of
the plural virtual logical volumes, (ii) first plot selection processing
for determining a start point indicating a largest access characteristic
and fastest target response performance in the two-dimensional plane and
selecting a plot point present at a shortest distance from the start
point, (iii) second plot selection processing for selecting, among plots
having the access characteristics smaller than and the target response
performances slower than the selected plot point, another plot point
present at a shortest distance from the selected plot point, and (iv)
repetition processing for repeating the second plot selection processing
excluding the already-selected plot points until no selectable plot point
remains.

4. A storage managing system according to claim 1, wherein the processor
executes the classification processing after executing any one of
processing for detecting addition and/or deletion of the virtual logical
volume, processing for monitoring response performances of the virtual
logical volumes and detecting deterioration in the response performances,
processing for configuration target response performance according to an
instruction, and processing for configuring a virtual logical volume
allocated to a new pool according to an instruction, or periodically
executes the classification processing according to scheduling
configuration.

5. A storage managing system according to claim 1, wherein the memory
further stores an excess performance threshold for correcting a value of
the target response performance, and the processor corrects the target
response performance using the excess performance threshold, generates
corrected target response performance, and executes the classification
processing using the corrected target response performance.

6. A storage managing system according to claim 1, wherein the memory
further stores a value of basic response performance of each of the
plural storage devices and N indicating a value of a total number of
pages included in the plural virtual logical volumes, and when the basic
response performance is represented by a vector T(T1, T2, . . .
, Tn) and a storage capacity from the plural storage devices which
should be allocated to a virtual logical volume to be processed is
represented by a vector C(C1, C2, . . . , Cn), the
processor executes pool hierarchy configuration calculation processing
for calculating the vector C such that evaluation response performance
indicated by an inner product value of the vector C and the vector T is
faster than the target response performance set in the virtual logical
volume to be processed and outputs a result of the pool hierarchy
configuration calculation processing together with the result of the
classification processing.

7. A storage managing system according to claim 6, wherein the memory
further stores information concerning a capacity unit price of each of
the plural storage devices, and the processor executes, based on the
result of the pool hierarchy configuration calculation processing
concerning the virtual logical volume to be processed and the information
concerning the capacity unit price, pool hierarchy configuration cost
calculation processing for calculating a cost required for configuring
the virtual logical volume to be processed and outputs a result of the
pool hierarchy configuration cost calculation processing together with
the result of the classification processing.

8. A storage managing system according to claim 1, wherein the processor
executes the classification processing by generating plural groups
according to levels of values of the target response performances of the
virtual logical volumes, classifying the virtual logical volumes into the
groups, and allocating the new pool to the groups.

9. A storage managing system according to claim 8, wherein the processor
generates groups equivalent to a number of the storage devices set in the
storage subsystem and executes the classification processing.

10. A storage managing system according to claim 2, wherein the memory
further stores information concerning an average of access
characteristics of each of the plural virtual logical volumes and
information concerning a maximum and a minimum of the access
characteristics, and the processor determines a group of virtual logical
volumes which should be arranged in one pool, by executing, in the
classification processing, in a two-dimensional plane comprising the
access characteristics and the target response performances, (i) plot
processing for plotting a set of the average of the access
characteristics and the target response performance of each of the plural
virtual logical volumes, (ii) first plot selection processing for
determining a start point indicating a largest access characteristic and
fastest target response performance in the two-dimensional plane and
selecting a plot point present at a shortest distance from the start
point, (iii) second plot selection processing for selecting, among plots
having the access characteristics smaller than and the target response
performances slower than the selected plot point, which are plot points
which do not have overlap in dispersion values specified by the maximum
and the minimum of the access characteristics and should be included in a
storage device included in another hierarchy determined from the target
response performances, another plot point present at a shortest distance
from the selected plot point, and (iv) repetition processing for
repeating the second plot selection processing excluding the
already-selected plot points until no selectable plot point remains.

11. A computer system comprising: a storage managing system according to
claim 1; at least one storage subsystem; and at least one host computer
which communicates an I/O request to the storage subsystem and executes
processing for reading information from and writing information in the
storage subsystem, wherein in the storage subsystem, plural hierarchies
include plural storage devices having the different performances, and the
storage subsystem allocates storage regions respectively from the plural
hierarchies to create plural pools, configures the virtual logical
volumes with the storage regions allocated to each of the plural pools,
and provides the host computer with the virtual logical volumes.

12. A computer system according to claim 11, wherein the storage managing
system acquires, from the storage subsystem, information concerning
configurations and capacities of the plural virtual logical volumes,
configuration information of the plural pools, information concerning
storage devices included in the plural hierarchies, and information
concerning the storage region allocated to each of the plural pools from
the plural hierarchies and stores the information in the memory.

13. A storage managing method for managing, using a storage managing
system including a processor and a memory, a storage subsystem comprising
a pool using plural storage devices having different performances and
providing plural virtual logical volumes from the pool, the storage
managing method comprising: the processor reading out, from the memory,
information concerning target response performance concerning each of the
plural virtual logical volumes; the processor classifying, on the basis
of the information concerning the target response performance, the plural
virtual logical volumes into plural groups such that the plural virtual
logical volumes satisfy target response performances of the virtual
logical volumes; allocating a new pool to each of the plural groups;
generating information indicating a correspondence relation between the
new pool and the virtual logical volumes included in the groups; and
outputting the information indicating the correspondence relation.

14. A storage managing method according to claim 13, further comprising
the processor reading out, from the memory, information concerning access
characteristics of the plural virtual logical volumes, wherein in the
classifying the plural virtual logical volumes into plural groups, the
processor classifies the virtual logical volumes such that, concerning a
combination of the target response performances and the access
characteristics of the plural virtual logical volumes, a virtual logical
volume having a relation in which when one of the target response
performance and the access characteristic increases, the other decreases,
is included in one group.

15. A storage managing method according to claim 14, wherein, in the
classifying the plural virtual logical volumes into plural groups, the
processor determines a group of virtual logical volumes which should be
arranged in one pool, by executing, in a two-dimensional plane comprising
the access characteristics and the target response performances, (i) plot
processing for plotting a set of the access characteristic and the target
response performance of each of the plural virtual logical volumes, (ii)
first plot selection processing for determining a start point indicating
a largest access characteristic and fastest target response performance
in the two-dimensional plane and selecting a plot point present at a
shortest distance from the start point, (iii) second plot selection
processing for selecting, among plots having the access characteristics
smaller than and the target response performances slower than the
selected plot point, another plot point present at a shortest distance
from the selected plot point, and (iv) repetition processing for
repeating the second plot selection processing excluding the
already-selected plot points until no selectable plot point remains.

Description:

TECHNICAL FIELD

[0001] The present invention relates to a storage managing system, a
computer system, and a storage managing method and relates to, for
example, a technique for creating a pool (a hierarchical pool) using
plural kinds of storage devices having different performances and
providing a virtual logical volume.

BACKGROUND ART

[0002] As a virtual technique for a storage device, there is a storage
device which creates a pool (a hierarchical pool) using plural kinds of
storage devices having different performances (see, for example, Patent
Literature 1). In the hierarchical pool, a storage region of a virtual
logical volume is allocated in a data unit called a page and a storage
device in which the page is arranged is periodically switched according
to an access characteristic (I/O number (IOPS), etc.) per unit time in
the page unit. Specifically, a storage region of a high-performance
storage device (disk device) is preferentially allocated to a page having
a high access characteristic. Consequently, compared with a case in which
data is allocated from a single type of a storage device in a virtual
logical volume unit, in a case in which a virtual logical volume in a
hierarchical pool is configured, when a configuration satisfying a
performance requirement and a capacity requirement of a system is
designed, a necessary capacity of a high-performance storage device
decreases and it is possible to reduce storage cost.

[0003] As a technique for reducing storage cost, there is a technique for
defining an application condition for a pool and removing a volume
configuring the pool while the condition is satisfied (a technique for
collecting an excess storage region of the pool) (see, for example,
Patent Document 2). According to the technique, it is possible to change
a configuration to a pool which can satisfy the performance requirement
and the capacity requirement at low cost.

[0006] However, if a storage region is allocated to a page using only
information concerning an access characteristic to configure a virtual
volume, a storage region is excessively allocated to a virtual volume
from a storage device which can show response performance more than
necessary. On the other hand, even if a virtual logical volume is
requested to have high response performance, if an access characteristic
is low, a storage region is allocated from a storage device having low
response performance. In this way, a shift occurs between response
performance desired by a user for each virtual logical volume and
response performance of a virtual logical volume configured with a
storage region allocated according to an access characteristic.

[0007] According to the related art, in the case of a virtual logical
volume having a high access characteristic but not requested to have very
high response performance, a storage region is allocated from the storage
device having high response performance, i.e., a high-cost storage
device, as mentioned above. Therefore, when a virtual logical volume
group is arranged on a hierarchical pool on the basis of such a control
method, an appropriate storage region is not allocated and a virtual
logical volume requiring cost more than necessary is configured.
Therefore, a situation occurs in which storage cost more than necessary
minimum storage cost is necessary. On the other hand in the related art,
it is attempted to reduce storage cost by collecting an excess storage
region of a pool while an application condition defined in advance is
satisfied (Patent Literature 2). However, a method of reducing storage
cost (cost depending on a capacity of a storage region in use) in
arrangement of a virtual logical volume group in a hierarchical pool is
not established. This is because, in the related art, allocation of a
storage region to a virtual logical volume is controlled only with an
access characteristic.

[0008] The present invention has been devised in view of such a situation
and provides a technique for determining an arrangement pool of a virtual
logical volume for satisfying target response performance and realizing a
cost reduction in a storage system in which a hierarchical pool is used.

Solution to Problem

[0009] In order to solve the problem, the present invention provides a
technique for managing a storage subsystem that comprises a pool using
plural storage devices (hierarchies) having different performances and
provides plural virtual logical volumes from the pool. In a storage
management system, the plural virtual logical volumes are classified into
plural groups on the basis of information concerning target response
performance concerning each of the plural virtual logical volumes such
that each of the plural virtual logical volumes satisfies target response
performance A new pool is allocated to each of the plural groups of the
virtual logical volumes. Further, information indicating a correspondence
relation between the pool and the virtual logical volumes included in
each of the groups is generated and the information is output.

[0010] Further characteristics related to the present invention will be
made apparent from the description of this specification and the
accompanying drawings. A form of the present invention is attained and
realized by elements, a combination of various elements, the following
detailed description, and a form of the appended claims.

[0011] It is necessary to understand that the description of this
specification is merely a typical illustration and by no means limits the
claims or application examples of the present invention.

Advantageous Effects of Invention

[0012] According to the present invention, in a storage system in which a
hierarchical pool is used, it is possible to arrange a virtual logical
volume group to satisfy target response performance and realize a cost
reduction.

BRIEF DESCRIPTION OF DRAWINGS

[0013] FIG. 1 is a diagram for explaining a basic concept of the present
invention.

[0014]FIG. 2 is a diagram for explaining an overview of an arrangement
determination processing procedure for a virtual logical volume according
to a first embodiment.

[0015]FIG. 3 is a diagram showing a schematic configuration of a storage
system (a computer system) 300 according to the present invention.

[0016]FIG. 4 is a block diagram for explaining functions of a storage
managing program 310.

[0017] FIG. 5 is a diagram showing a specific example concerning a
configuration of resources in an SAN environment, a relation among the
resources, and an arrangement state of pages, which are allocated to
virtual logical volumes, in a storage hierarchy.

[0040]FIG. 28 is a diagram for explaining a specific example of number of
pages calculation processing for hierarchies necessary for a virtual
logical volume to satisfy target response performance (S2709).

[0041]FIG. 29 is a diagram for explaining a specific example of
calculation processing for a pool hierarchy configuration which satisfies
target response performances of all virtual logical volumes (S2710).

[0044]FIG. 32 is a diagram for explaining a basic concept of processing
according to a second embodiment (determination of arrangement of virtual
logical volumes).

[0045] FIG. 33 is a flowchart for explaining details of shift target
virtual logical volume classification processing 405 according to the
second embodiment (S210 in FIG. 20).

[0046]FIG. 34 is a diagram for explaining a basic concept of processing
according to a third embodiment (determination of arrangement of virtual
logical volumes).

[0047] FIG. 35 is a flowchart for explaining details of shift target
virtual logical volume classification processing 405 according to the
third embodiment (S210 in FIG. 20).

DESCRIPTION OF EMBODIMENTS

[0048] Embodiments of the present invention are explained below with
reference to the accompanying drawings. In the accompanying drawings, in
some case, functionally same elements are denoted by the same numbers.
The accompanying drawings show specific embodiments and implementation
examples conforming to the principle of the present invention. However,
these drawings are for understanding of the present invention and are by
no means used for limitedly interpreting the present invention.

[0049] In the embodiments, the embodiments are explained in detail
sufficiently for those skilled in the art to carry out the present
invention. However, it is necessary to understand that other
implementations and forms are possible and changes of configurations and
structures and replacement of various elements are possible without
departing from the scope and the spirit of the technical idea of the
present invention. Therefore, the following description should not be
interpreted to be limited to the embodiments.

[0050] Further, as explained later, the embodiments of the present
invention may be implemented by software running on a general-purpose
computer or may be implemented by dedicated hardware or a combination of
the software and the hardware.

[0051] In the following explanation, various kinds of information of the
present invention are explained in a "table" format. These kinds of
information do not always have to be represented in a data structure by a
table and may be represented in a data structure of a list, a DB, a
queue, or the like or other data structures. Therefore, to indicate that
the information does not rely on a data structure, "table", "list", "DB",
"queue", and the like could be simply referred to as "information".

[0052] When contents of the information are explained, it is possible to
use expressions "identification information", "identifier", "title",
"name", and "ID". These can be replaced with one another.

[0053] In the following explanation, processing in the embodiments of the
present invention is explained with "program" set as a subject (an
operation entity). However, the program is executed by a processor to
perform set processing using a memory and a communication port (a
communication control device). Therefore, the processor may be a subject
in the explanation. Processing disclosed with the program set as the
subject may be processing performed by a computer or an information
processing apparatus such as a management server. A part or all of the
program may be realized by dedicated hardware or may be formed as a
module. Various programs may be installed in computers by a program
distribution server or storage media.

(1) First Embodiment

[0054] <Overview>

[0055] The present invention discloses a technique for initially
allocating storage regions of storage devices to virtual logical volumes
configured in pools and, after a predetermined period elapses,
appropriately allocating the storage regions to the virtual logical
volumes present in the same pools from the storage devices in
hierarchies.

[0056] FIGS. 1 and 2 are diagrams for explaining a basic idea of
processing according to a first embodiment (determination of arrangement
of virtual logical volumes). FIG. 1 is a diagram for explaining a basic
concept of the present invention. FIG. 2 is a diagram for explaining an
overview (a specific example) of an arrangement determination processing
procedure for a virtual logical volume according to the first embodiment.

[0057] As shown in FIG. 1A, an arrangement situation of virtual logical
volumes (three in FIG. 1) arranged in one of plural configured
hierarchical pools is grasped and plotted in a two-dimensional plane
including an access characteristic and target response performance as
actually measured values. Values of access characteristics in virtual
logical volumes 101 to 103 are averages of access characteristics to
pages included in the virtual logical volumes. Values of target response
performances of the virtual logical volumes are, for example, values set
by a user as desired values. As the access characteristics, in the
embodiments, processing and operations are explained using an IO number
(IOPS) as an example. However, the access characteristics are not limited
to this. The access characteristics are a concept including a data
transfer amount, access time (a volume accessed recently is a maximum
access load and a volume not accessed for a while is a low load), and a
level of a cache access load.

[0058] In a hierarchical storage device, storage regions are allocated to
virtual logical volumes from a storage device having high response
performance in order from one having a highest IOPS. Therefore, in the
case of the situation shown in FIG. 1A, storage regions are allocated
from a storage device (Tier 1) having high response performance to
virtual volumes in order of virtual logical volumes 102, 101, and 103.
However, according to FIG. 1A, a virtual logical volume originally
requested to have high response performance is the virtual logical volume
103. Therefore, if allocation order is determined only from the TOPS,
storing regions are allocated to the virtual logical volume 103 from
Tier1 after allocating storing regions to the virtual logical volumes 101
and 102. In some case, sufficient response performance cannot be
guaranteed. Therefore, in this case, in order to satisfy target response
performance of the virtual logical volume 103, storage devices having a
capacity more than necessary are necessary as storage devices in a
high-order hierarchy (Tier1) and a intermediate-order hierarchy (Tier2)
at least necessary for the virtual logical volume 103.

[0059] Therefore, in this embodiment, the virtual logical volumes 101 to
103 are classified (grouped) on the basis of target response performance,
whereby storage devices are efficiently allocated to virtual logical
volumes. For example, the virtual logical volumes shown in FIG. 1A are
classified into two groups shown in FIGS. 1B and 1C. Each of the groups
configures one pool. Consequently, storage regions only have to be
allocated from the storage devices in the high-order and
intermediate-order hierarchies to the virtual logical volumes in order
from the virtual logical volume 103. It is unnecessary to allocate the
storage region in the high-order hierarchy to the virtual logical volumes
101 and 102.

[0060] Specifically, basic allocation processing for storage regions to
virtual logical volumes in a storage device is executed in order from a
virtual logical volume having a highest IOPS. Therefore, in the present
invention, while this processing content is maintained, virtual logical
volumes are grouped according to target response performances, each of
groups configures one pool, and storage regions are allocated in order of
TOPS in the pool.

[0061] More specific allocation processing for storage regions to virtual
logical volumes is explained with reference to FIG. 2. In the first
embodiment, grouping processing is executed on the basis of target
response performances and IOPSs of virtual logical volumes. As shown in
FIG. 2A, when virtual logical volumes 201 to 211 are configured, the
virtual logical volumes are plotted on an average IOPS-target response
performance plane (a plane in which an X axis represents an TOPS and a Y
axis represents target response performance). In the plane, a largest
IPOS value and a fastest configurable target response performance value
are set at a start point (a point indicated by a star mark in FIG. 2) of
grouping processing for virtual logical volumes. First, a plot point (the
virtual logical volume 202) present at a shortest distance from the start
point is selected (processing 1). A plot point closest to the point
selected by the processing 1 among plot points having a lower IOPS than
that of the plot point selected in processing 1 and having late target
response performance values is selected next (processing 2). Processing
same as the processing 2 is repeated until no selectable plot point is
left (processing 3). Points selected in order by the processing 1 to the
processing 3 form a group 212 of virtual logical volumes included in one
hierarchical pool 1. When the processing 1 to the processing 3 are
repeated among other volumes excluding virtual logical volumes included
in the group 212, groups 213 and 214 are generated. The group 213
configures a hierarchical pool 2 and the group 214 configures a
hierarchical pool 3. Finally, in the groups, storage regions are
allocated to virtual logical volumes in the same groups from storage
devices included in the hierarchies in order of IOPS. In this way, in a
hierarchical pool in which storage regions are allocated in order from
one having highest performance to pages having high IOPSs (access
characteristics), management target virtual volumes are grouped such that
concerning target response performances and IOPSs of virtual logical
volumes, a relation in which, when one of the target response
performances and the IOPSs increase, the other decrease is given. This
makes it possible to efficiently allocate storage regions of storage
devices and reduce storage cost.

[0062] In FIGS. 1 and 2, processing is performed to group plural virtual
logical volumes arranged in one pool and arrange the virtual logical
volumes belonging to each of groups in one of pools equivalent to the
number of groups. However, it is also possible to group plural virtual
logical volumes included in plural pools present in a system and
rearrange virtual logical volumes belonging to each of groups in plural
pools generated anew. In the former, attention is paid to only one pool
and processing is performed without breaking arrangement of the other
pools. Therefore, it is possible to determine arrangement of the virtual
logical volumes at high speed. On the other hand, in the case of the
latter, when attention is paid to all virtual logical volumes included in
all the pools in the system (not all the pools but plural pools including
processing target pools), the rearrangement processing takes longer time.
However, it is possible to more efficiently arrange the virtual logical
volumes in pools taking into account a balance of all the virtual logical
volumes.

[0063] <System Configuration>

[0064]FIG. 3 is a diagram showing a schematic configuration of a storage
system (which can also be referred to as computer system) 300 according
to the present invention.

[0065] The storage system 300 includes a storage managing client 301, at
least one host server 303, a performance/configuration information
collecting server 304, a management server 305, and at least one storage
device (which can also be referred to as storage subsystem) 312, which
are connected via a LAN (Local Area Network) 102. The host server 303,
the performance/configuration information collecting server 304, and the
storage device 312 are connected via an SAN (Storage Area Network) switch
311. In the configuration shown in FIG. 3, the storage managing client
301, the performance/configuration information collecting server 304, and
the management server 305 are shown as separate computers. However, one
computer may be configured to have the three functions. Therefore, not
only when the functions of the storage managing client 301, the
performance/configuration information collecting server 304, and the
management server 305 are realized by one computer but also when the
functions are realized by plural computers, the computers can be regarded
as configuring one management system.

[0066] With the components explained above, the storage system 300
provides a job system in a storage area network (SAN) environment, a
system which manages execution of the job system, and a system which
manages storage in the SAN environment. Hardware included in the job
system includes the at least one host server 303, the at least one SAN
switch 311, the at least one storage device 312, and a LAN 302. Hardware
included in the system for storage management in the SAN environment
includes the storage managing client 301, the at least one
performance/configuration information collecting server 304, and the
management server 305.

[0067] The storage managing client 301 is a computer for a user to input
various instructions and information to the host server 303, the
performance/configuration information collecting server 304, the
management server 305, and the storage device 312. Although not shown in
the figure, the storage managing client 301 includes hardware (a CPU, a
memory, a communication device, an input and output device, etc.)
included in a normal computer. For example, as the instructions input
from the storage managing client 301 to the management server 305, there
are a target response performance value, a selection instruction for a
shift target virtual logical volume, an instruction for addition and
deletion of a volume, and the like. GUI information for pool information
display is provided from the management server 305 to the storage
managing client 301 and GUI display (see FIG. 19) is performed.

[0068] The host server 303 includes a CPU (Central Processor Unit: which
can also be simply referred to as processor), a communication device, and
a memory/disk device. In the memory/disk device, an OS (Operation
System), job software 306, an application monitoring agent 307, a host
monitoring agent 308, and the like are stored. The host server 303 issues
an I/O request to the storage device 312 according to, for example, a
request from a not-shown client terminal, acquires information from the
storage device 312, and executes operations for, for example, providing
the client terminal with acquired information. The job software 306 is
software included in a job system and is, for example, a DB (database)
managing program and a mail application. The application monitoring agent
307 is a program for monitoring an execution state of the job software
306. The host monitoring agent 308 is a program for monitoring an
operation state of the host server 303.

[0069] Like a normal computer, the performance/configuration information
collecting server 304 includes a CPU, a communication device, and a
memory/disk device. In the memory/disk device, the storage monitoring
agent 309 corresponding to the at least one storage device 312 is stored.
The storage monitoring agent 309 is started at predetermined timing
(e.g., timing periodically determined by a timer according to scheduling
configuration) or started according to a request of storage managing
software. The storage monitoring agent 309 is a program for acquiring
configuration/capacity information and/or performance information from a
monitoring target device, components, and software covered by the storage
monitoring agent 309. As explained later, information acquired by the
storage monitoring agent 309 is provided to the management server 305 and
used for arrangement determination (rearrangement) processing for virtual
logical volumes.

[0070] Like a normal computer, the management server 305 includes a CPU, a
communication device, and a memory/disk device. In the memory/disk
device, a storage managing program 310 is stored. The storage managing
program 310 is a program for performing collection and monitoring of
configuration information of an SAN, performance information, and
application information and shifting a virtual logical volume to reduce
cost according to a state of use of the storage devices 317 to 319. The
storage managing program 310 uses dedicated agents for the configuration
information, the performance information, and the application information
in order to acquire the configuration information, the performance
information, and the application information from hardware and software
included in the SAN. An overview of processing executed by the storage
managing program 310 is explained with reference to FIG. 4.

[0071] The storage device 312 includes a CPU 320, a memory 313, and SSDs
(Solid State Disks) 317, SASs (Serial Attached SCSIs) 318, and SATAs
(Serial ATAs) 319, which are plural kinds of storage devices. The CPU 320
functions as a control part which controls the operation of the storage
device 312 using various programs stored in the memory 313. For example,
the CPU 320 controls writing of data in and readout of data from the SSDs
317, the SASs 318, and the SATAs 319 according to a request received from
the host server 303 or the like. The various programs for controlling the
storage device 312 include at least a virtual logical volume management
control program 314, a pool creation executing program 315, and a virtual
logical volume shift executing program 316. The virtual logical volume
management control program 314 provides a function for showing a storage
region to the host server 303 or the like as a virtual logical volume.
The SSDs 317, the SASs 318, and the SATAs 319, are plural storage device
groups having different performances and may include storage device
groups of types other than SSD, SAS, and SATA. The pool creation
executing program 315 has a function of receiving a command from the
storage managing program 310 and creating a pool. The virtual logical
volume shift executing program 316 has a function of receiving a command
from the storage managing program 310 and shifting a virtual logical
volume.

[0072] <Function of the Storage Managing Program>

[0073]FIG. 4 is a block diagram for explaining functions of the storage
managing program 310. Details of processing by the functions are
explained with reference to flowcharts and the like (FIGS. 20 to 35)
explained later.

[0076] The storage managing program 310 starts and executes the agent
information collection processing 401 at predetermined timing (e.g.,
periodically according to scheduling configuration or according to an
instruction from a user of the storage managing client or other
processing), receives configuration/capacity information or performance
information from devices, agents (programs), and components in an SAN
environment collected by the storage monitoring agent 309, and stores the
information as any one of the resource performance information 412 and
the resource configuration/capacity information 413. A resource is a
general term of hardware (a storage device, a host server, etc.) included
in the SAN environment and physical or logical components (a parity
group, a logical volume, etc.) of the hardware and programs (job
software, a database managing system, a file managing system, volume
managing software, etc.) executed on the hardware and logical components
(a file system, a logical device, etc.) of the programs.

[0078] The storage managing program 310 compares the information stored in
the virtual logical volume configuration/capacity information 1000 during
the last collection in the agent information collection processing 401
and information concerning a virtual logical volume acquired during the
information collection. When addition or deletion of a virtual logical
volume is detected, the storage managing program 310 stores, in the shift
target virtual logical volume information 414 (see FIG. 13), a virtual
logical volume group belonging to a hierarchical pool in which the
virtual logical volume is arranged (generates shift target virtual
logical volume information). A virtual logical volume group other than
the virtual logical volume group may be included in the shift target
virtual logical volume information 1300.

[0079] The storage managing program 310 starts and executes the volume
performance deterioration detection processing 404 at predetermined
timing (e.g., periodically according to scheduling configuration or
according to an instruction from a user of a storage management software
client), compares a value of a response performance space 702 of the
virtual logical volume performance information 700 and values of a target
response performance space 1202 or a target response performance space
1202 and an excess performance threshold space 1203 of the virtual
logical volume target response performance information 417 (FIG. 12), and
stores, in the shift target virtual logical volume information 414, a
virtual logical volume group belonging to a hierarchical pool in which a
virtual logical volume satisfying a condition is arranged (generates
shift target volume information). A virtual logical volume group other
than the virtual logical volume group may be included in the shift target
virtual logical volume information 414. Details of a procedure of the
volume performance deterioration detection processing 404 are explained
later (see FIG. 22).

[0080] The storage managing program 310 executes the volume addition and
deletion detection processing 409 in response to an instruction from the
storage management software client and stores, in the shift target
virtual logical volume information 414, a virtual logical volume group
belonging to a hierarchical pool in which a virtual logical volume for
which the user performs operation for addition or deletion is arranged
(generates shift target volume information). A virtual logical volume
group other than the virtual logical volume group may be included in the
shift target virtual logical volume information 414. Details of the
volume addition and deletion detection processing 409 are explained later
(see FIG. 23).

[0081] The storage managing program 310 executes the target response
performance configuration processing 407 in response to an instruction
from the storage management software client, acquires target response
performance or target response performance and an excess performance
threshold to be set in a virtual logical volume from a user input, and
stores the target response performance or the target response performance
and the excess performance threshold in the virtual logical volume target
response performance information 417 (generates volume target response
performance information). When the target response performance is not
set, for example, the target response performance can be regarded as the
same as basic response performance of a storage device of a lowest
hierarchy included in a pool or can be regarded as infinite. When the
excess performance threshold is not set, the excess performance threshold
can be regarded as absent (0). When the target response performance of
the virtual logical volume is set anew, changed to a different value, or
deleted, the storage managing program 310 stores, in the shift target
virtual logical volume information 414, a virtual logical volume group
belonging to a hierarchical pool in which the virtual logical volume is
arranged (generates shift target volume information). A virtual logical
volume group other than the virtual logical volume group may be included
in the shift target virtual logical volume information 414. Details of
the target response performance configuration information 407 are
explained later (see FIG. 24).

[0082] Further, the storage managing program 310 starts and executes the
shift target virtual logical volume selection processing 408 in response
to an instruction from the storage management software client and stores,
in the shift target virtual logical volume information 414, a virtual
logical volume group selected as a shift target by the user (generates
shift target volume information). Details of the shift target volume
selection processing are explained later (see FIG. 25).

[0086] The storage managing program 310 acquires, according to the pool
information display processing 411, correspondence information of the
capacity information spaces 1503 to 1505 of the hierarchies of the pool
hierarchy configuration information 416, a cost space 1602 of the pool
hierarchy configuration cost information 419, and a pool and a virtual
logical volume of the shift target virtual logical volume group
information 415 (see FIG. 14), generates information for GUI display, and
provides the storage managing client with the information. A GUI display
example is explained later (see FIG. 19). When the user instructs
creation of the pool on the basis of a displayed GUI, the creation target
pool is stored in the creation execution target pool hierarchy
configuration information 420. When the user instructs the creation and
arrangement of a virtual logical volume group, the creation target pool
is stored in the creation execution target pool hierarchy configuration
information 420 and the shift target virtual logical volume is stored in
the shift execution target virtual logical volume group information 421.
Details of the pool information display processing are explained later
(see FIG. 31).

[0087] The storage managing program 310 issues, according to the pool
creation control processing 402, on the basis of the creation execution
target pool hierarchy configuration information 420, an execution command
to the pool creation executing program 315 of the storage device 312. The
storage managing program 310 issues, according to the virtual logical
volume shift control processing 403, on the basis of the shift execution
target virtual logical volume group information 421, an execution command
to the virtual logical volume shift executing program.

[0088] <Logical Relation of Storage Regions in a Storage System>

[0089] FIG. 5 is a diagram showing a specific example concerning the
configuration of resources in an SAN environment, a relation among the
resources, and an arrangement state of pages allocated to virtual logical
volumes in storage hierarchies.

[0090] In FIG. 5, only a single storage device is shown. However, a
storage system may include plural storage devices. The management server
305 may be connected to the storage device 312 by the SAN switch 311. The
storage managing program 310 may be present on the storage device 312.

[0091] It is assumed that an application "AP1_3031" is running on the host
server 303. This AP1_3031 is any one of applications included in the job
software 306 shown in FIG. 1. A file system "FS1_3032" and a device file
"DF1_3033" are present in the host server 303. The FS1_3032 and the
DF1_3033 are examples of resources from which the host monitoring agent
308 acquires information. The file system "FS1_3031" is a unit for the OS
to provide an input and output service for data and is software for
systematically managing a storage region to which data is input. The
device file "DF1_3032" is software managed by the OS as a region for
storing a file in an external storage device. As shown in FIG. 3, in the
host server 303, the application monitoring agent 307 for acquiring
configuration information and performance information of the application
"AP1_3031" and the host monitoring agent 308 for acquiring configuration
information and performance information of the file system "FS1_3032" and
the device file "DF1_3033" are operating.)

[0092] In FIG. 5, it is indicated that a dependency relation by I/O is
present between two resources connected by a line which connects the
resources. For example, a line connecting the application "AP1_3031" and
the file system "FS1_3032" represents a relation that the application
"AP1_3031" issues I/O to the file system "FS1_3032". A line connecting
the file system "FS1_3032" and the device file "DF1_3033" represents a
relation that an I/O load to the file system "FS1_3032" is read or write
of the device file "DF1_3033".

[0093] The device file "DF1_3031" of the host server 303 is allocated to
virtual logical volumes 501 and 502 of the storage device 312. In FIG. 5,
the device file "DF1_3031" is allocated to the virtual logical volumes
501 and 502. However, the device file "DF1_3031" may be allocated to an
actual logical volume such as a pool volume. A correspondence relation
between device files and virtual logical volumes can be acquired from the
host monitoring agent 308 or the like.

[0094] Although not shown in FIG. 5, in order to acquire configuration
information and performance information of the storage device 312, the
storage monitoring agent 309 shown in FIG. 3 is running on a management
system. Resources from which the storage monitoring agent 309 acquires
information are at least virtual logical volumes "VVol1_501" and
"VVol2_502", storage ports "port 1" and "port 2", a pool "Pool1_503",
hierarchies of storage devices "Tier1_504" to "Tier3_506", parity groups
"PG1_512" to "PG3_514", pages "Page_A1" to "Page_A5", "Page_B1" to
"Page_B9", and "Page_C1" to "Page_C9", and pool volumes "Pool Vol1" to
"Pool Vol5".

[0095] Each of the parity groups "PG1_512" to "PG3_514" is a high-speed
and highly-reliable logical disk drive generated from the plural storage
devices 317 to 319 by the storage device 312. The storage devices 317 to
319 include SSDs of semiconductor storage devices and SASs and SATAs of
hard disk devices. In this example, a case in which types of storage
devices included in storage hierarchies are three types of SSD, SAS, and
SATA is explained. The types may be a combination of two types of SSD and
SAS or a combination of three or more types.

[0096] The pool volumes "Pool Vol1_507" to "Pool Vol5_511" are logical
disk drives (actual logical volumes) created by the storage device 312
dividing a parity group. As the pool volumes "Pool Vol1_507" to "Pool
Vol5_511", storage regions equivalent to a defined capacity are secured
on the parity groups "PG1_512" to "PG3_514" in advance during creation.

[0097] The storage hierarchies "Tier1_504" to "Tier3_506" are logical
hierarchies of storage devices created for each of types of the storage
devices such as SSD and SAS and include the plural pool volumes
"Pool_Vol1_507" to "Pool Vol5_511" sliced from the parity groups
"PG1_512" to "PG3_514" created for each of types of a HDD group. As a
specific example, "Tier1_504" shown in FIG. 5 is an SSD, a storage
hierarchy type of which is a semiconductor storage device, and
"Tier2_505" is an SAS, a storage hierarchy type of which is a disk
storage device, and "Tier3_506" is an SATA, a storage hierarchy type of
which is a disk storage device. Therefore, "Tier1_504" has performance
higher than that of "Tier2_505" and "Tier3_506". In the storage
hierarchies, data of the virtual logical volumes 501 and 502 are
allocated from the pool volumes 507 to 511 in a unit of page. The page is
explained later.

[0098] The pool "Pool1_503" is a virtual mapping space in a memory for
allocating storage regions to the virtual logical volumes "VVol1_501" to
"VVol2_502" explained later. The pool "Pool1_503" includes the
hierarchies "Tier1_504" to "Tier3_506" of the storage devices. The number
of pools is not limited to one. Plural pools can be created. In that
case, when pools are created once, concerning the pools, storage regions
(forming a page) allocated to the pools are determined in advance.
Storage regions are allocated to the virtual logical volumes 501 to 502
from one pool. Therefore, the number of unit storage regions (the number
of pages) from hierarchies allocated to the virtual logical volumes from
one pool is determined

[0099] Like the pool volume "Pool Vol1_507", the virtual logical volumes
"VVol1_501" to "VVol2_502" are recognized as logical disk drives by the
host server 303 according to the function of the virtual logical volume
management control program of the storage device 312. However, unlike the
actual logical volume "Pool Vol1_507", when the virtual logical volumes
"VVol1_501" to "VVol1_507" are created, only a capacity is defined and
storage regions equivalent to the defined capacity are not secured.
Thereafter, when a write request for new addresses of "VVol1_501" to
"VVol2_502" is generated, storage regions are allocated by a necessary
amount. The storage regions allocated to the virtual logical volumes 501
to 502 are allocated in a unit of page explained later. In the example
shown in FIG. 5, it is seen that "Page_A1" to "Page_A3" are allocated
from "Tier1_504" and "Page_B1" to "Page_B5" are allocated from
"Tier2_505" to "VVol1_501" and "Page_A4" to "Page_A5" are allocated from
"Tier1_504", "Page_B6" to "Page_B9" are allocated from "Tier2_505", and
"Page_C1" is allocated from "Tier3_506" to "VVol2_502". A mechanism for
allocating pages is explained later.

[0100] The pages "Page_A1" to "Page_C9" are storage regions which can be
allocated to the virtual logical volumes 501 to 502. In the virtual
logical volumes 501 to 502 belonging to a pool having storage hierarchies
like the pool "Pool1_503", pages are arranged in higher-performance
storage hierarchies in order from a page having a relatively high access
characteristic (as a representative access characteristic, as explained
above, the number of I/Os per unit time or Last Access Time) compared
with the other pages in a single pool. A page having a relatively low
access characteristic is arranged in a low-performance storage hierarchy.
In the arrangement of the pages, the storage managing program 310
acquires configuration information (storage hierarchy information and
page information) of the storage device 312 and information concerning an
access characteristic in page unit from the storage device 312 and
performs arrangement of pages according to the rule explained above. In
the example shown in FIG. 5, for example, when an access characteristic
to a page of "Page_B3" currently used by "VVol1_501" substantially
increases, rearrangement of pages for allocating "Page_A4" of "Tier1_504"
to "VVol1_501" and allocating "Page_B3" of "Tier2_505" to "VVol2_502" is
performed.

[0101] The pool 503 provides the host server 303 with the virtual logical
volumes 501 to 502. The pool 503 includes the storage devices 317 to 319
of plural types. The storage devices 317 to 319 provide the pool 503 with
the pool volumes 507 to 511, which are actual regions formed by divided
regions of the parity groups 512 to 514.

[0102] <Configuration Example of Various Kinds of Information>

[0103] FIGS. 6 to 18 are diagrams showing configuration examples of
various kinds of information stored in the management server 305 and used
by the storage managing program 310. In order to explain the information,
a table format is adopted. However, a form of the information is not
limited. Any form may be adopted as long as the form is a structure in
which a relation of configuration items can be grasped.

[0104] (i) Page Performance Information (Table)

[0105]FIG. 6 is a diagram showing a configuration example of the page
performance information 600. The page performance information 600 is
information forming a part of the resource performance information 412.

[0106] The page performance information 600 includes a page identifier 601
and an access characteristic 602 as configuration items. When the storage
monitoring agent 309 collects these kinds of information (the identifier
and the access characteristic (in the figure, as an example, an average
number of I/Os per unit time)) for each of pages. The storage managing
program 310 acquires, according to the agent information collection
processing 401, values collected by the storage monitoring agent 309.

[0107] The page identifier 601 is information for uniquely identifying and
specifying a page, which is a unit of a storage region allocated to a
virtual logical volume from a storage device.

[0108] The access characteristic 602 is information indicating an access
characteristic to a pertinent page. Since this information is a measured
value, the information changes periodically. A value measured at that
point periodically may be written in the table or an average of values
from the last table writing to the present measurement may be written.

[0109] (ii) Virtual Logical Volume Performance Information (Table)

[0110]FIG. 7 is a diagram of a configuration example of the virtual
logical volume performance information 700. The virtual logical volume
performance information 700 is information forming a part of the resource
performance information 412.

[0111] The virtual logical volume performance information 700 includes a
virtual logical volume identifier 701 and response performance 702 as
configuration items. The storage monitoring agent 309 collects an
identifier and response performance for each of virtual logical volumes.
The storage managing program 310 acquires, according to the agent
information collection processing 401, a value collected by the storage
monitoring agent 309.

[0113] The response performance 702 is information indicating a value of
response performance displayed by a virtual logical volume corresponding
thereto. This information is a measured value and represented as an
average of response speed to I/O request made to plural pages included in
virtual logical volumes. The information concerning the response
performance 702 can be used to observe a shift between the response
performance 702 and target response performance. When the response
performance 702 as an actually measured value is deteriorated to be lower
than the target response performance, arrangement of virtual logical
volumes is reconfigured. Details are explained later. In addition to the
average of response speed, a minimum and a maximum of response speed may
be stored. Consequently, it is possible to allocate storage regions to
the virtual logical volumes taking into account a degree of fluctuation
in response speed.

[0114] (iii) Page Configuration Information (Table)

[0115] FIG. 8 is a diagram showing a configuration example of the page
configuration information 800. The page configuration information 800 is
information forming a part of the resource configuration/capacity
information 413. According to the page configuration information 800, it
is seen from which storage device (Tier) each page is sliced as a storage
region and to which virtual logical volume and via which pool the page is
allocated.

[0116] The page configuration information 800 includes a page identifier
801, a storage device type 802, a virtual logical volume identifier 803,
and a pool identifier 804 as configuration items. The storage monitoring
agent 309 collects, for each of pages, an identifier, a hierarchy type of
a storage device, an identifier of an allocated virtual logical volume,
and an identifier of a pool to which the allocated virtual logical volume
belongs. The storage managing program 310 acquires, according to the
agent information collection processing 401, a value collected by the
storage monitoring agent 309.

[0117] The page identifier 801 is information for uniquely identifying and
specifying a page, which is a unit of a storage region allocated to a
virtual logical volume from a storage device.

[0118] The storage device type 802 is information indicating which storage
region of which storage device in which hierarchy a page belongs to.

[0119] The virtual logical volume identifier 803 is information for
uniquely identifying and specifying a virtual logical volume to which the
corresponding page is allocated.

[0120] The pool identifier 804 is information for uniquely identifying and
specifying a pool for allocating the corresponding page to a virtual
logical volume corresponding thereto.

[0121] (iv) Pool Configuration Information (Table)

[0122]FIG. 9 is information showing a configuration example of the pool
configuration information 900. The pool configuration information 900 is
information forming a part of the resource configuration/capacity
information 413. According to the pool configuration information 900, it
is seen which storage region sliced from which storage device (Tier) each
pool allocates to each virtual logical volume.

[0123] The pool configuration information 900 includes a pool identifier
901, a high-order hierarchy storage device type 902, an
intermediate-order hierarchy storage device type 903, and a low-order
hierarchy storage device type 904 as configuration items. The storage
monitoring agent 309 collects, for each of pools, an identifier, a
high-order hierarchy storage device type, an intermediate-order hierarchy
storage device type, and a low-order hierarchy storage device type. The
storage managing program 310 acquires, according to agent information
collection processing, a value collected by the storage monitoring agent
309. A hierarchy of a pool does not always need to include three layers
and may include two layers, four layers, or the like. The agent
information collection processing 401 does not always need to be executed
to acquire these kinds of information.

[0125]FIG. 10 is a diagram showing a configuration example of the virtual
logical volume configuration/capacity information 1000. The virtual
logical volume configuration/capacity information 1000 is information
forming a part of the resource configuration/capacity information 413.
According to the virtual logical volume configuration/capacity
information 1000, a capacity of each virtual logical volume is seen and
it is seen to which pool each virtual logical volume belongs.

[0126] The virtual logical volume information 1000 includes a virtual
logical volume identifier 1001, a virtual logical volume total capacity
1002, and a pool identifier 1003 as configuration items. The storage
monitoring agent 309 collects, for each of virtual logical volumes, an
identifier, a total capacity, and an identifier of a pool to which the
virtual logical volume belongs. The storage managing program 310
acquires, according to the agent information collection processing 401, a
value collected by the storage monitoring agent 309.

[0127] (vi) Storage Device Information by Pool Hierarchy (Table)

[0128]FIG. 11 is a diagram showing a configuration example of the storage
device information by pool hierarchy 418. From the storage device
information by pool hierarchy 418, it is possible to know basic response
performance (design values) of storage devices and a capacity unit price
per GB.

[0129] The storage device by pool hierarchy 418 includes a storage device
type 1101, basic response performance 1102, and a capacity unit price
1103 as configuration items. The storage monitoring agent 309 collects,
for each of storage device types, basic response performance and a
capacity unit price. The storage managing program 310 acquires, according
to the agent information collection processing 401, a value acquired by
the storage monitoring agent 309. The agent information collection
processing 401 does not always need to be executed to acquire these kinds
of information. For example, when the storage system 300 is built, the
storage device information by pool hierarchy 418 may be acquired from
basic information of storage devices configured in the system and stored
in the system in advance.

[0134] The target response performance 1202 is information indicating
target response performance of a virtual logical volume corresponding
thereto (an average of response performance of pages) input by the user
from the storage managing client 301.

[0135] The excess performance threshold 1203 is information indicating an
excess performance threshold input by the user from the storage managing
client 301. This excess performance threshold is a threshold for
determining that actually measured response performance is deteriorated
to be lower than target response performance. For example, if the target
response performance is 10 msec and the excess performance threshold is
30%, when the actually measured response performance is speed equal to or
lower than 10×(1-0.3)=7 msec, it is determined that response
performance is deteriorated. Rearrangement processing for virtual logical
volumes is started. In other words, the excess performance threshold
functions as an adjustment parameter for making it possible to start the
rearrangement processing for virtual logical volumes before actual
response performance is deteriorated to be lower than the target response
performance. The excess performance threshold does not always need to be
acquired from a user input. For example, a constant defined in the system
may be stored.

[0136] (viii) Shift Target Virtual Logical Volume Information (Table)

[0137] FIG. 13 is a diagram showing a configuration example of the shift
target virtual logical volume information 414. The shift target virtual
logical volume information 414 stores an identifier of a virtual logical
volume to be shifted, i.e., a virtual logical volume to which a storage
region should be reallocated. "Shift" means that a virtual logical volume
is shifted among pools according to the grouping processing for virtual
logical volumes (the shift target virtual logical volume classification
processing 405). The "shift" can be rephrased as "rearrangement of
virtual logical volumes". The shift includes a form for moving, in a
state in which plural pools are present, a virtual logical volume among
the pools and a form in which only one pool is present and, after the
grouping processing, pools equivalent to the number of groups are created
and the virtual logical volume is moved.

[0138] The identifier of the virtual logical volume to be shifted is
acquired when it is found that a virtual volume is added or deleted in
the storage device 312 by the agent information collection processing
401, when a virtual logical volume in which actually measured response
performance is deteriorated to be lower than the target response
performance is detected by the volume performance deterioration detection
processing 404, when target response performance is set anew, added, or
deleted by the target response performance configuration processing 407,
when a virtual logical volume to be shifted is designated by the shift
target virtual logical volume selection processing 408, or when the user
instructs addition or deletion of a virtual logical volume according to
the virtual logical volume addition and deletion detection processing
409. The identifier is registered as a shift target virtual logical
volume.

[0140]FIG. 14 is a diagram showing a configuration example of the shift
target virtual logical volume group information 415. From the shift
target virtual logical volume group information 415, it is possible to
know in which pool a shift target virtual logical volume is arranged
anew.

[0141] The shift target virtual logical volume group information 415
includes a virtual logical volume identifier 1401 and an arrangement
destination pool identifier 1402 as configuration items. The storage
managing program 310 executes the shift target volume classification
processing 405 on the basis of the shift target virtual logical volume
information 414, the virtual logical volume target response performance
information 417, the resource configuration/capacity information 413, the
resource performance information 412, and the storage device information
by pool hierarchy 418 and calculates a set of an identifier of a virtual
logical volume to be shifted and an identifier of a pool in which the
virtual logical volume is arranged.

[0142] The virtual logical volume identifier 1401 is information for
uniquely identifying and specifying a virtual logical volume registered
in the shift target virtual logical volume information 414 as a virtual
logical volume to be shifted.

[0143] The arrangement destination pool identifier 1402 is information for
uniquely identifying and specifying a pool in which the virtual logical
volume to be shifted as a result of the shift target virtual logical
volume classification processing 405 should be arranged. The pool in
which the virtual logical volume is arranged could be changed concerning
virtual logical volumes or could be the same as a pool before the
rearrangement processing (the shift target virtual logical volume
classification processing). Actual shift (rearrangement) may be executed
when instructed by the user (explained later) or may be automatically
executed.

[0144] (x) Pool Hierarchy Configuration Information (Table)

[0145]FIG. 15 is a diagram showing a configuration example of the pool
hierarchy configuration information 416. The pool hierarchy configuration
information 416 indicates a total capacity of the pools after the shift
and details of capacities from hierarchy storage devices which configure
the pools.

[0146] The pool hierarchy configuration information 416 includes a pool
identifier 1501, a total capacity of pools 1502, a high-order hierarchy
capacity 1503, an intermediate-order hierarchy capacity 1504, and a
low-order hierarchy capacity 1505 as configuration items. The storage
managing program 310 executes the pool hierarchy configuration
calculation processing 406 on the basis of shift target volume group
information, resource performance information, volume target response
performance information, and storage device information by pool hierarchy
and calculates, for each of arrangement destination pools, an identifier,
a total capacity, a high-order hierarchy capacity, an intermediate-order
hierarchy capacity, and a low-order hierarchy capacity.

[0147] The pool identifier 1501 is information for uniquely identifying
and specifying a pool configured anew by rearrangement processing.

[0148] The total capacity of pools 1502 is information indicating a total
capacity of pools corresponding thereto. The high-order hierarchy
capacity 1503 is information indicating a capacity of a storage region
allocated from a storage device in a high-order hierarchy in the
corresponding pools. The intermediate-order hierarchy capacity 1504 is
information indicating a capacity of a storage region allocated from a
storage device in an intermediate-order hierarchy in the corresponding
pools. The low-order hierarchy capacity 1505 is information indicating a
capacity of a storage region allocated from a storage device in a
low-order hierarchy in the corresponding pools.

[0152] Like the pool identifier 1501 shown in FIG. 15, the pool identifier
1601 is information for uniquely identifying and specifying a pool
configured anew by the rearrangement processing.

[0153] The cost 1602 is information indicating cost of the pools
calculated from the pool hierarchy configuration information 416 and the
storage device information by pool hierarchy 418. The storage managing
program 310 executes the pool hierarchy configuration cost calculation
processing 410 with reference to pool hierarchy configuration information
and storage device information by pool hierarchy and calculates an
identifier and cost for each of arrangement destination pools. For
example, concerning a pool 10, cost of a high-order hierarchy
(300×5)+cost of an intermediate-order hierarchy (600×3),
+cost of a low-order hierarchy (300×1)=3600.

[0156] The creation execution target pool hierarchy configuration
information 420 includes a pool identifier 1701, a total capacity of
pools 1702, a high-order hierarchy capacity 1703, an intermediate-order
hierarchy 1704, and a low-order hierarchy capacity 1705 as configuration
items. These kinds of information are acquired by being extracted from
the pool hierarchy configuration information 416 by the user instructing
pool creation in a GUI (see FIG. 19) generated by pool information
display processing and displayed in the storage managing client 31. In
the example shown in FIG. 17, a state in which creation of pools 10 and
11 is instructed via the GUI (FIG. 19) is shown.

[0158]FIG. 18 is a diagram showing a configuration example of a shift
execution target virtual logical volume group information 421.

[0159] The shift execution target virtual logical volume group information
421 includes a virtual logical volume identifier 1801 and an arrangement
destination pool identifier 1802 as configuration items. These kinds of
information are acquired by being extracted from the shift target virtual
logical volume information 415 by the user instructing arrangement
execution selection in a GUI (see FIG. 19) generated by pool information
display processing and displayed in the storage managing client 301. In
the example shown in FIG. 18, a state in which virtual logical volumes
belonging to the pools 10 and 11 are subjected to rearrangement via the
GUI (FIG. 19) is shown.

[0163] As shown in FIG. 19, the GUI screen includes a region 1901 in which
an identifier of a creation target pool is displayed, a region 1902 in
which a hierarchy configuration of a storage device of a pool is
displayed, a region 1903 in which identifiers of a virtual logical volume
group arranged on the pool are displayed, a region 1904 in which required
cost for pool creation is displayed, a selecting section 1905 for
determining possibility of execution of pool creation, a selecting
section 1906 for determining possibility of execution of arrangement of
the virtual logical volume group on the pool, and an execution button
1907.

[0165]FIG. 20 is a flowchart for explaining an overview of shift
(rearrangement) processing for a virtual logical volume.

[0166] In S200, the storage managing program 310 executes the agent
information collection processing 401, the virtual logical volume
performance deterioration detection processing 404, the volume addition
and deletion detection processing 409, the target response performance
configuration processing 407, and the shift target virtual logical volume
selection processing 408 and registers virtual logical volumes to be
shifted (subjected to rearrangement processing) in the shift target
virtual logical volume information 414 (see FIG. 13). The virtual logical
volumes to be shifted are all virtual logical volumes belonging to a pool
in which a volume, performance deterioration of which is detected, an
added or deleted volume, a selected volume, or a volume, target response
performance of which is set is arranged. These virtual logical volumes
are registered in the shift target virtual logical volume information
414. Details of the respective kinds of processing are explained later
(see FIGS. 21 to 25).

[0167] In S210, the storage managing program 310 executes the shift target
virtual logical volume classification processing 405 (FIG. 26) and
determines a group of the virtual logical volumes to be shifted from the
shift target virtual logical volume information 414. The storage managing
program 310 registers grouped virtual logical volume groups to be shifted
in the shift target virtual logical volume group information 415. The
virtual logical volumes included in each of the determined groups are
included in one pool. Details of the shift target virtual logical volume
classification processing 405 are explained later (see FIG. 26).

[0168] In S220, the storage managing program 310 executes the pool
hierarchy configuration calculation processing 406 to thereby calculate,
for each of the shift target volume groups in the shift target virtual
logical volume group information 415, a pool hierarchy configuration
which satisfies requirements of all the virtual logical volumes. The
calculated pool hierarchy configuration is registered in the pool
hierarchy configuration information 416. Details of the pool hierarchy
configuration calculation processing 406 are explained later (see FIGS.
27 to 29).

[0170] In S240, the storage managing program 310 acquires information from
the pool hierarchy configuration information 416, the pool hierarchy
configuration cost information 419, and the shift target virtual logical
volume group information 415 and executes the pool information display
processing 411 on the basis of the information to thereby generate data
for GUI display. The generated GUI display data is provided to the
storage managing client 301. Details of the pool information display
processing 411 are explained later (see FIG. 31).

[0171] In S250, the storage managing program 310 waits for a user input
and registers (stores) selected information in the creation execution
target pool hierarchy configuration information 420 according to a user
instruction (selection).

[0172] In S260, the storage managing program 310 waits for a user input
and registers (stores) selected information in the shift execution target
virtual logical volume group information 421 according to a user
instruction (selection). In S250 and 260, creation of all pools and
arrangement of all virtual logical volumes may be instructed. The system
can automatically execute the creation and the arrangement without a user
input.

[0173] In S270, the storage managing program 310 executes the pool
creation control processing 402 on the basis of the creation execution
target pool hierarchy configuration information 420 and instructs the
pool creation executing program 315 of the storage device 312 to create a
pool.

[0174] In S280, the storage managing program 310 executes the volume shift
control processing 403 on the basis of information of the shift execution
target volume group information 421 and instructs the virtual logical
volume shift executing program 316 of the storage device 312 to shift a
virtual logical volume.

[0177] FIG. 21 is a flowchart for explaining details of agent information
collection processing forming a part of S200. The agent information
collection processing is executed at predetermined timing (e.g.,
periodically) as explained above.

[0179] In S2107, the storage managing program 310 acquires a virtual
logical volume list from the virtual logical volume
configuration/capacity information (table) 1000 originally included in
the storage managing program 310.

[0181] In S2108, the storage managing program 310 determines whether one
virtual logical volume (a virtual logical volume to be subjected to pool
processing) included in the list of virtual logical volumes (the table
1000) acquired in S2107 is included in the information acquired in S2103,
i.e., whether the virtual logical volume is present in virtual logical
volumes (a group) included in the virtual logical volume
configuration/capacity information acquired this time from the storage
monitoring agent 309. When the virtual logical volume is included in the
information acquired in S2103 (Yes in S2108), the storage managing
program 310 changes the virtual logical volume to be subjected to the
repetition processing and continues the processing. When the virtual
logical volume is not included in the information acquired in S2103 (No
in S2108), the processing shifts to S2109. When the virtual logical
volume is not included in the information acquired in S2103, it is seen
that the virtual logical volume is deleted.

[0182] In S2109, the storage managing program 310 acquires, from the
virtual logical volume configuration/capacity information (table) 1000, a
list of virtual logical volumes belonging to a pool same as a pool of the
virtual logical volume to be subjected to the repetition processing.

[0183] In S2210, the storage managing program 310 stores the virtual
logical volumes in the shift target virtual logical volume information
414. When a virtual logical volume to be stored is already stored in the
shift target virtual logical volume information 414, the storage managing
program 310 does not store identifier information of the virtual logical
volume (does not redundantly store the information).

[0184] When the processing up to S2110 ends concerning the target virtual
logical volume, the storage managing program 310 changes the target of
the repetition processing and continues the repetition processing
concerning the virtual logical volume list. If the processing in S2108 to
S2110 ends concerning all the virtual logical volumes included in the
virtual logical volume list, the repetition processing ends.

[0186] In S2111, the storage managing program 310 determines whether one
virtual logical volume (a processing target) included in the virtual
logical volume configuration/capacity information (the virtual logical
volume list) acquired in S2103 is already present in the virtual logical
volume configuration/capacity information (table) 1000. When the virtual
logical volume is already present in the table (Yes in S2111), the
storage managing program 310 changes the target of the repetition
processing and continues the repetition processing concerning the virtual
logical volume list. When the virtual logical volume is not present in
the table (No in S2111), the processing shifts to S2112. When the virtual
logical volume is not present in the table, it is seen that the virtual
logical volume is added.

[0187] In S2112, the storage managing program 310 acquires, from the
virtual logical volume configuration/capacity information (table) 1000, a
list of virtual logical volumes belonging to a pool same as a pool of the
virtual logical volume to be subjected to the repetition processing.

[0188] In S2113, the storage managing program 310 stores the virtual
logical volume included in the list acquired in S2112 in the shift target
virtual logical volume information (table) 414. When information
concerning a virtual logical volume to be stored is already stored in the
shift target virtual logical volume information (table) 414, the storage
managing program 310 does not store the information (does not redundantly
store the information). The storage managing program 310 may store a
virtual logical volume group other than the virtual logical volume group
in the shift target virtual logical volume information (table) 414. In
other words, when at least one virtual logical volume is added, virtual
logical volumes included in plural or all pools may be subjected to the
rearrangement processing.

[0189] The storage managing program 310 changes the target of the
repetition processing and continues the repetition processing concerning
the virtual logical volume list. If the processing ends concerning all
the virtual logical volumes to be subjected to the processing in S2111 to
S2113, the repetition processing ends.

[0191] To further facilitate understanding, a specific example of the
agent information collection processing is explained below. It is assumed
that virtual logical volumes originally registered in the virtual logical
volume configuration/capacity information (table) 1000 of the management
server 305 are VVol1, VVol2, and VVol3 and virtual logical volumes
included in the virtual logical volume configuration/capacity information
acquired from the storage monitoring agent 309 during the execution of
the agent information collection processing are VVol1, VVol2, and VVol4.
In this case, since it is detected that VVol3 is deleted by the
processing in S2108 to S2110, all virtual logical volumes included in a
pool to which VVol3 belongs are stored in the shift target virtual
logical volume information (table) 414. Since it is detected that VVol4
is added by the processing in S2111 to S2113, all virtual logical volumes
included in a pool to which VVol4 belongs are stored in the shift target
virtual logical volume information (table) 414. In this way, according to
the agent information collection processing, a virtual logical volume
added and/or deleted between the last processing and the present
processing is detected and a pool to which the virtual logical volume
belongs is set as the rearrangement processing for virtual logical
volumes.

[0193]FIG. 22 is a flowchart for explaining details of virtual logical
volume performance deterioration detection processing forming a part of
S200. The virtual logical volume performance deterioration detection
processing is periodically started according to scheduling configuration,
started after the virtual logical volume target response performance
configuration processing, started after the agent information collection
processing, or started according to a request from the storage managing
client triggered by instruction operation of the user.

[0194] First, in S2201, the storage managing program 310 acquires a list
of virtual logical volumes from the virtual logical volume
configuration/capacity information (table) 1000 as the processing target.
Concerning the virtual logical volumes included in this list, processing
in S2202 to S2208 is repeatedly executed.

[0195] In S2202, the storage managing program 310 acquires, from the
virtual logical volume target response performance information (table)
417, information concerning target response performance corresponding to
the virtual logical volume to be subjected to the repetition processing.
When the target response performance cannot be acquired (the target
response performance is not set), the target response performance can be
regarded as the same as basic response performance of a storage device in
a lowest-order hierarchy included in a pool or a value slower than the
basic response performance.

[0196] In S2203, the storage managing program 310 acquires, from the
virtual logical volume target response performance information (table)
417, an excess performance threshold corresponding to the virtual logical
volume to be subjected to the repetition processing. When the excess
performance threshold cannot be acquired (the excess performance
threshold is not set), the excess performance threshold can be regarded
as 0.

[0197] In S2204, the storage managing program 310 calculates corrected
target response performance from the acquired target response performance
and the acquired excess performance threshold. The storage managing
program 310 calculates the corrected target response performance as
explained below. This step can be omitted. When the step is omitted, a
value of the target response performance is used instead of corrected
target response performance after that.

[0198] In S2205, the storage managing program 310 acquires, from the
virtual logical volume performance information (table) 700, a value (a
measured value) of response performance corresponding to the virtual
logical volume to be subjected to the repetition processing.

[0199] In S2206, the storage managing program 310 compares, concerning the
virtual logical volume to be subjected to the repetition processing, the
corrected target response performance calculated in S2204 and the
response performance (the measured value). When the actual response
performance is worse (slower) than the corrected target response
performance (Yes in S2206), the processing shifts to S2207, When the
actual response performance is better (faster) than the corrected target
response performance (No in S2206), the storage managing program 310
changes the virtual logical volume to be subjected to repetition
processing and shifts the processing to S2202.

[0200] In S2207, the storage managing program 310 acquires, from the
virtual logical volume configuration/capacity information (table) 1000,
virtual logical volumes (a group) belonging to a pool same as a pool of
the virtual logical volume to be subjected to the repetition processing
determined as deteriorated in performance.

[0201] In S2208, the storage managing program 310 stores the virtual
logical volumes in the shift target virtual logical volume information
(table) 414. When information concerning a virtual logical volume to be
stored is already stored in the shift target virtual logical volume
information (table) 414, the storage managing program 310 does not store
the information (does not redundantly store the information). The storage
managing program 310 may store a virtual logical volume group other than
the virtual logical volume group in the shift target virtual logical
volume information (table) 414. In other words, when at least one virtual
logical volume is added, virtual logical volumes included in plural or
all pools may be subjected to the rearrangement processing.

[0202] The storage managing program 310 changes the target of the
repetition processing and continues the repetition processing concerning
the virtual logical volume list. If the processing ends concerning all
the virtual logical volumes to be subjected to the processing in S2202 to
S2208, the virtual logical volume performance deterioration processing
ends.

[0204]FIG. 23 is a flowchart for explaining details of virtual logical
volume addition and deletion detection processing forming a part of S200.
The processing is started according to a request from the storage
managing client 301 triggered by instruction operation of the user.

[0205] First, in S2301, the storage managing program 310 monitors whether
a request for adding or deleting a virtual logical volume is received
from the storage managing client 301.

[0206] When a request for adding or deleting a virtual logical volume is
detected (Yes in S2301), in S2302, the storage managing program 310
acquires, from the virtual logical volume configuration/capacity
information (table) 1000, all virtual logical volumes belonging to a pool
same as a pool of the virtual logical volume instructed to be added or
deleted.

[0207] In S2303, the storage managing program 310 stores the virtual
logical volume group acquired in S2302 in the shift target virtual
logical volume information (table) 414 and ends the virtual logical
volume addition and deletion detection processing. When information
concerning a virtual logical volume to be stored is already stored in the
shift target virtual logical volume information (table) 414, the storage
managing program 310 does not store the information (does not redundantly
store the information). The storage managing program 310 may store a
virtual logical volume group other than the virtual logical volume group
in the shift target virtual logical volume information table. In other
words, when at least one virtual logical volume is added, virtual logical
volumes included in plural or all pools may be subjected to the
rearrangement processing.

[0208] <Target Response Performance Configuration Processing>

[0209]FIG. 24 is a flowchart for explaining details of target response
performance configuration processing forming a part of S200. The
processing is started according to a request from the storage managing
client 301 triggered by instruction operation of the user.

[0210] First, the storage managing program 310 acquires, from a user
input, target response performance and an excess performance threshold
set for a virtual logical volume (S2401 and S2402). Concerning the excess
performance threshold, the storage managing program 310 does not always
have to acquire the excess performance threshold from a user input and
may use a constant defined in the system.

[0212] Subsequently, the storage managing program 310 compares the target
response performance and the excess performance threshold acquired from
the user input and the target response performance and the excess
performance threshold acquired from the virtual logical volume target
response performance table and determines whether target response
performance or an excess performance threshold is set anew, changed, or
deleted (no user input value) (S2405 and S2406). When new configuration,
change, or deletion of target response performance or an excess
performance threshold is detected (Yes in S2405 or S2406), the processing
shifts to S2407. When new configuration, change, or deletion of target
response performance or an excess performance threshold is not detected
(No in S2405 and S2406), the processing shifts to S2409.

[0213] In S2407, the storage managing program 310 acquires, from the
virtual logical volume configuration/capacity information (table) 1000,
identification information of all virtual logical volumes included in a
pool to which a virtual logical volume to be subjected to target response
performance configuration belongs.

[0214] In S2408, the storage managing program 310 stores (registers) the
identification information of the virtual logical volume group acquired
in S2407 in the shift target virtual logical volume information (table)
414. When information concerning a virtual logical volume to be stored is
already stored in the shift target virtual logical volume information
(table) 414, the storage managing program 310 does not store the
information (does not redundantly store the information). The storage
managing program 310 may store a virtual logical volume group other than
the virtual logical volume group in the shift target virtual logical
volume information table.

[0215] Finally, in S2409, the storage managing program 310 stores the
target response performance and the excess performance threshold acquired
from the user input in the virtual logical volume target response
performance information (table) 417 and ends the processing.

[0216] <Shift Target Virtual Logical Volume Selection Processing>

[0217]FIG. 25 is a flowchart for explaining details of shift target
virtual logical volume selection processing forming a part of S200. The
processing is started according to a request from the storage managing
client 301 triggered by instruction operation of the user.

[0218] In S2501, the storage managing program 310 acquires, from a user
input, identification information of a virtual logical volume to be
shifted.

[0219] In S2502, the storage managing program 310 stores the virtual
logical volume acquired in S2501 in the shift target virtual logical
volume information (table) 414 and ends the processing. When information
concerning a virtual logical volume to be stored is already stored in the
shift target virtual logical volume information table, the storage
managing program 310 does not store the information (does not redundantly
store the information).

[0220] When a virtual logical volume is selected as a shift target, the
storage managing program 310 applies grouping (classification) processing
(the shift target virtual logical volume classification processing 405)
only to the selected virtual logical volume and configures a pool anew. A
virtual logical volume is deleted from a pool, to which the selected
virtual logical volume originally belongs, by the selection processing.
Therefore, rearrangement processing for virtual logical volumes (grouping
virtual logical volumes and arranging the virtual logical volumes in a
new pool) is performed even in the pool at the deletion source.

[0221] The rearrangement processing is executed only in the selected
virtual logical volume. However, all virtual logical volumes included in
a pool to which the selected virtual logical volume belongs may be
subjected to the rearrangement processing.

[0224] First, in S2601, the storage managing program 310 acquires, from
the shift target virtual logical volume information (table) 414,
information concerning a list of virtual logical volumes to be subjected
to the classification processing. The storage managing program 310
repeatedly execute the processing in S2602 to S2607 concerning the
acquired virtual logical volume.

[0225] In S2602, the storage managing program 310 acquires, from the
virtual logical volume target response performance information (table)
417, a value of target response performance corresponding to the virtual
logical volume to be subjected to the repetition processing. When the
target response performance cannot be acquired (the target response
performance is not set), the target response performance can be regarded
as the same as basic response performance of a storage device in a
lowest-order hierarchy included in a pool or a value slower than the
basic response performance.

[0226] In S2603, the storage managing program 310 acquires, from the
virtual logical volume target response performance information (table)
417, an excess performance threshold corresponding to the virtual logical
volume to be subjected to the repetition processing. When the excess
performance threshold cannot be acquired (the excess performance
threshold is not set), the excess performance threshold can be regarded
as 0.

[0227] In S2604, the storage managing program 310 calculates corrected
target response performance from the target response performance and the
excess performance threshold. The storage managing program 310 calculates
the corrected target response performance as explained below. This step
can be omitted. When the step is omitted, a value of the target response
performance is used as corrected target response performance after that.

[0228] In S2605, the storage managing program 310 acquires, from the page
configuration information (table) 800, a list of pages allocated to the
virtual logical volume to be subjected to the repetition processing.
Processing in S2606 concerning the acquired page list is repeatedly
executed.

[0229] In S2606, the storage managing program 310 acquires, from the page
performance information (table) 600, an access characteristic
corresponding to the pages to be subjected to the repetition processing.
The storage managing program 310 changes the target of the repetition
processing and continues the repetition processing concerning the page
list. In S2606, access characteristics (IOPSs) are acquired concerning
all pages included in the virtual logical volume to be processed.

[0230] In S2607, the storage managing program 310 calculates an average of
the access characteristics to the pages included in the virtual logical
volume to be subjected to the repetition processing.

[0231] When the repletion processing in S2602 to S2607 ends, the storage
managing program 310 acquires, concerning all virtual logical volumes to
be processed, averages of corrected or uncorrected target response
performances and access characteristics.

[0232] In S2608, the storage managing program 310 groups the virtual
logical volume group acquired from the shift target virtual logical
volume (table) 414 to give, to the averages of the corrected target
response performances and the access characteristics, a relation in
which, when one of the target response performances and the access
characteristics increase, the other decrease. More specifically, the
grouping is performed as explained below. A concept is as explained with
reference to FIGS. 1 and 2.

[0233] (i) The storage managing program 310 defines an xy plane (an access
characteristic--target response performance plane) in which an x axis
represents an average of the access characteristics and a y axis
represents the corrected target response performance.

[0235] (iii) The storage managing program 310 defines two-dimensional
vector s=(a maximum of the averages of the access characteristics in all
vb a fastest value of the corrected target response performances in
all v) on the access characteristic--target response performance plane.

[0236] (iv) The storage managing program 310 selects a vector t having a
Euclidian distance closest to s out of vi. If there is no selectable
vector, the storage managing program 310 ends the step (S2608).

[0237] (v) The storage managing program 310 selects a vector which
satisfies the following conditions out of vi. [0238] (a) An
average of access characteristics is lower than t. [0239] (b) Corrected
target response performance is slower than t. [0240] (c) An Euclidian
distance to t is the closest among vectors which satisfy the conditions
(a) and (b).

[0241] (vi) With t used in the processing (v) replaced with the vector
selected in (v), the processing (v) is repeated until no selectable
vector remains.

[0242] (vii) A set of vectors selected by the processing (iv) to (vi) is
grouped.

[0243] (viii) The vectors grouped in the processing (vii) are excluded
from vi defined in the processing (ii).

[0244] (ix) The processing (iv) to (viii) is repeated.

[0245] In S2609, the storage managing program 310 stores, in the shift
target virtual logical volume group information (table) 415, a set of an
unnumbered pool identifier and the groups of the virtual logical volumes
specified in S2608 and ends the shift target virtual logical volume
classification processing.

[0246] <Pool Hierarchy Configuration Calculation Processing>

[0247]FIG. 27 is a flowchart for explaining details of the pool hierarchy
configuration calculation processing 406 (S220 in FIG. 20). The
processing is periodically started according to scheduling configuration,
started after processing by a shift target volume classifying part, or
started according to a request from the storage managing client triggered
by instruction operation of the user.

[0248] First, in S2701, the storage managing program 310 acquires a basic
response performance list of storage devices included in hierarchies from
the storage device information by pool hierarchy configuration (table)
418.

[0249] In S2702, the storage managing program 310 acquires a pool list
from the shift target virtual logical volume group information (table)
415. Processing in S2703 to S2711 concerning the acquired pool list is
repeatedly executed.

[0250] In S2703, the storage managing program 310 acquires, from the shift
target volume group information (table) 415, identifier information of
all virtual logical volumes which should be arranged in the pools to be
subjected to the repetition processing. Processing in S2704 to S2709 is
repeatedly executed concerning the acquired virtual logical volumes.

[0251] In S2704, the storage managing program 310 acquires, from the
virtual logical volume target response performance information (table)
417, target response performance corresponding to the virtual logical
volume to be subjected to the repetition processing. When the target
response performance cannot be acquired (the target response performance
is not set), the target response performance can be regarded as the same
as basic response performance of a storage device in a lowest-order
hierarchy included in a pool or a value slower than the basic response
performance.

[0252] In S2705, the storage managing program 310 acquires, from the
virtual logical volume target response performance information (table)
417, an excess performance threshold corresponding to the virtual logical
volume to be subjected to the repetition processing. When the excess
performance threshold cannot be acquired (the excess performance
threshold is not set), the excess performance threshold can be regarded
as 0.

[0253] In S2706, the storage managing program 310 calculates corrected
target response performance from the target response performance and the
excess performance threshold acquired in S2704 and S2705. The storage
managing program 310 calculates the corrected target response performance
as explained below. This step can be omitted. When the step is omitted, a
value itself of the target response performance is used instead of the
corrected target response performance after that.

[0254] In S2707, the storage managing program 310 acquires, from the page
configuration information (table) 800, a list of pages allocated to the
virtual logical volume to be subjected to the repetition processing.
Processing in S2708 is repeatedly executed concerning the acquired page
list.

[0255] In S2708, the storage managing program 310 acquires, from the page
performance information (table) 600, an access characteristic
corresponding to the pages to be subjected to the repetition processing.
Since the processing in S2708 is repeatedly executed, access
characteristics are acquired concerning all pages included in the virtual
logical volume to be processed.

[0256] In S2709, the storage managing program 310 calculates, concerning
each of all the virtual logical volumes included in the pool to be
subjected to the repetition processing, the numbers of pages of storage
devices in high-order, intermediate-order, and low-order hierarchies
necessary for satisfying the corrected target response performance. The
storage managing program 310 calculates the numbers of pages by
calculating parameters (C1, C2, C3) which satisfy the
following expressions. Since plural parameters which satisfy the
following expressions F1 to F3 are present, after calculating the numbers
of pages concerning all combinations of the parameters, the storage
managing program 310 selects the parameter with lowest cost. To further
facilitate understanding, a specific example of the calculation of the
parameters (C1, C2, C3) is explained later (see FIG. 28).

[0262] N=Total number of pages include in the virtual logical volume:
Acquired in S2707

[0263] CP=Capacity [GB] per one page: known (set value)

[0264] C1=Capacity [GB] of a storage device in the high-order
hierarchy necessary for the virtual logical volume to satisfy the
corrected target response performance: calculation target

[0265] C2=Capacity [GB] of a storage device in the intermediate-order
hierarchy necessary for the virtual logical volume to satisfy the
corrected target response performance: calculation target

[0266] C3=Capacity [GB] of a storage device in the low-order
hierarchy necessary for the virtual logical volume to satisfy the
corrected target response performance: calculation target

[0267] The storage managing program 310 changes the target of the
repetition processing and repeatedly executes the processing in S2704 to
S2709. If (C1, C2, C3) is calculated concerning all the
virtual logical volumes included in the pool to be processed, the
processing shifts to S2710.

[0268] In S2710, the storage managing program 310 calculates a hierarchy
configuration of the pool on the basis of the numbers of pages of the
storage devices in the hierarchies required by a virtual logical volume
group to be shifted. The storage managing program 310 performs the
calculation of the hierarchy configuration of the pool as explained
below. To further facilitate understanding, a specific example of the
calculation of the pool hierarchy configuration is explained later (see
FIG. 29).

[0269] (i) The storage managing program 310 creates a list in which a page
group included in the shift target virtual logical volume group is sorted
in order from the page having a highest access characteristic.

[0270] (ii) The storage managing program 310 calculates, in the high-order
hierarchy, for each of the virtual logical volumes to be shifted, in
which order counted from the top of the sorted page list a page having a
lowest access characteristic required by the virtual logical volume is
located.

[0271] (iii) The storage managing program 310 calculates, in the
intermediate-order hierarchy, for each of the virtual logical volumes to
be shifted, in which order counted from the top of the sorted page list a
page having a lowest access characteristic required by the virtual
logical volume is located.

[0272] (iv) The storage managing program 310 calculates a capacity of the
storage device in the high-order hierarchy necessary for allocating the
page in the high-order hierarchy to a page located in the lowest order (a
page having a lowest access characteristic) among the pages calculated in
(ii).

[0273] (v) After allocating the capacity of the storage device in the
high-order hierarchy calculated in the processing (iv) to the pool, the
storage managing program 310 calculates a capacity of the storage device
in the intermediate-order hierarchy necessary for allocating the page in
the intermediate-order hierarchy to a page located in the lowest order (a
page having a lowest access characteristic) among the pages calculated in
(iii).

[0274] (vi) The storage managing program 310 calculates, as a capacity of
the storage device in the low-order hierarchy, a capacity obtained by
subtracting the capacity of the storage device in the high-order
hierarchy calculated in the processing (iv) and the capacity of the
storage device in the intermediate-order hierarchy calculated in the
processing (v) from the total capacity of the shift target virtual
logical volumes.

[0275] In S2711, the storage managing program 310 stores, in the pool
hierarchy configuration information (table) 900, a set of an identifier
of the pool to be subjected to the repetition processing and the
calculated hierarchy configuration of the pool. The storage managing
program 310 changes the pool to be subjected to the repetition processing
and repeatedly executes the processing in S2703 to S2711 concerning a new
pool. If the processing ends concerning all target pools, the pool
hierarchy configuration calculation processing 406 ends.

[0276] <Specific Example of the Calculation of the Parameters (C1,
C2, C3)>

[0277]FIG. 28 is a diagram for explaining a specific example of the
number of pages calculation processing (S2709) for the hierarchies
necessary for the virtual logical volume to satisfy the target response
performance.

[0278] As explained above, if the parameters (C1, C2, C3)
are calculated, the numbers of pages corresponding to C1, C2,
and C3 are calculated by dividing the parameters by the capacity Cp
per one page.

[0280] When the specific parameter values are substituted in the
expressions (see Expressions (1) to (3) in FIG. 28) to transform the
expressions,

[Expression 2]

C2≧-9/5C1+12 (Expression (1)')

C2≦10-C1 (Expression (2)')

[0281] are obtained.

[0282] Therefore, a parameter with the lowest cost among plural parameters
(a range indicated by a region 2803 of a graph 2802 of FIG. 28) which
satisfy Expressions (1)' and (2)' is selected. Cost is calculated by
multiplication of capacity unit prices of the storage device information
by pool hierarchy (table) 418 corresponding to (C1, C2,
C3).

[0283] <Specific Example of Calculation of a Pool Hierarchy
Configuration>

[0284]FIG. 29 is a diagram for explaining a specific example of the
calculation processing (S2710) for a pool hierarchy configuration which
satisfies the target response performances of all the virtual logical
volumes. Concerning the processing (i) to (vi) of the pool hierarchy
configuration calculation processing (S2710), an example in which shift
target virtual logical volumes VVol1_2901 to VVol2_2902 are processed is
shown.

[0285] Concerning VVol1_2901 and VVol2_2902, required number of pages of
the hierarchies are calculated by dividing the parameters (C1,
C2, C3) calculated in S2709 by the capacity Cp per one page. It
is assumed that the numbers of pages of the hierarchies required for
VVol1_2901 and VVol2_2902 are calculated as necessary numbers of pages
2903 and 2904.

[0286] Processing (i)

[0287] With reference to the page configuration information (table) 800
and the page performance information (table) 600, a list table 2905 in
which the pages included in the virtual logical volumes are sorted in
order from one having the highest access characteristic (IOPS) is
generated.

[0288] Processing (ii)

[0289] Determining from the necessary number of pages 2903 and 2904, pages
in the high-order hierarchy required by VVol1_2901 are pages 1 and 4 and
a page in the high-order hierarchy required by VVol2_2902 is only a page
2. Therefore, it is seen that, according to the processing (ii), the page
4 is selected concerning VVol1_2901, the page 2 is selected concerning
VVol2_2902, and the pages 4 and 2 are respectively located in the fourth
and the second among the sorted pages.

[0290] A storage region only has to be allocated to the page 3 of VVol2
from the intermediate-order hierarchy. However, an access characteristic
of the page 3 is higher than that of the page 4 of VVol1 (a page to which
a storage region needs to be allocated from the high-order hierarchy).
Therefore, if capacities of the hierarchies necessary in the pool are
calculated using only the capacities (C1, C2, C3) of the
hierarchies calculated in S2709, the target response performance cannot
be guaranteed. In other words, since the number of pages to which storage
regions are originally allocated from the high-order hierarchy is three
(two pages in VVol1 and one page in VVol2), a storage region is allocated
from the intermediate-order hierarchy to the page 4 to which a storage
region originally should be allocated from the high order hierarchy.

[0291] Therefore, it is seen that storage regions for four pages have to
be secured from the high-order hierarchy.

[0292] Processing (iii)

[0293] Originally, it is necessary to allocate storage regions for two
pages to VVol2_2902 from the intermediate-order hierarchy. However,
according to the processing (ii), a storage region is allocated to the
page 3 from the high-order hierarchy. Therefore, it is sufficient to
allocate storage regions for two pages from the intermediate-order
hierarchy.

[0294] Therefore, a page in the intermediate-order hierarchy required by
VVol1_2901 is a page 5 and a page in the intermediate-order hierarchy
required by VVol2_2902 is only a page 6. It is seen that, according to
processing (iii), the page 5 is selected concerning VVol1_2901 and the
page 6 is selected concerning VVol2_2902 and the pages 5 and 6 are
respectively located in the fifth and the sixth among the sorted pages.

[0295] Processing (iv)

[0296] Among the pages calculated by the processing (ii), a page located
in the lowest order of pages which should be allocated to the high-order
hierarchy is the page 4 (the page allocated to VVol1). Therefore,
allocation of a storage region from the high-order hierarchy has to be
guaranteed for this page as well.

[0297] Therefore, in order to surely allocate a storage region in the
high-order hierarchy up to the page 4, a required storage capacity
allocated from the storage device in the high-order hierarchy is
calculated by increasing the number of pages allocated from the
high-order hierarchy. In the example shown in FIG. 29, a necessary
capacity of the high-order hierarchy is the capacity CP per one
page×4 pages. This is different from the initially-calculated total
value of the capacity C1 in the high-order hierarchy of the virtual
logical volumes. However, the target response performance can be
guaranteed by this processing.

[0298] According to the processing (ii) and (iii), pages included in the
range 2906 are pages calculated as a capacity of the storage device in
the high-order hierarchy. Pages included in the range 2907 are pages
calculated as a capacity of the storage device in the intermediate-order
hierarchy. Further, pages included in the range 2908 are pages calculated
as a capacity of the storage device in the low-order hierarchy.

[0299] Processing (v)

[0300] Among the pages calculated by the processing (iii), a page in the
lowest order is a page 6. In the example shown in FIG. 29, since a
storage region allocated from the intermediate-order hierarchy is present
for two pages, a necessary capacity of the intermediate-order hierarchy
is the capacity CP per one page×2 pages.

[0301] Processing (vi)

[0302] A capacity of the storage device in the low-order hierarchy is
calculated by subtracting the capacities of the storage devices in the
high-order hierarchy and the intermediate-order hierarchy calculated in
the processing (iv) and (v) from a total capacity required in VVol1_2901
and VVol2_2902.

[0303] <Pool Hierarchy Configuration Cost Calculation Processing>

[0304] FIG. 30 is a flowchart for explaining details of the pool hierarchy
configuration cost calculation processing 410 (S230 in FIG. 20). The
processing is periodically started according to scheduling configuration,
started after the pool hierarchy configuration calculation processing
406, or started according to a request from the storage managing client
301 triggered by instruction operation of the user.

[0305] First, in S3001, the storage managing program 310 acquires, from
the storage device information by pool hierarchy configuration (table)
418, a list of cost information of the storage devices included in the
hierarchies.

[0307] In S3003, the storage managing program 310 calculates, on the basis
of the cost list of the hierarchies acquired in S3001, cost required for
a pool hierarchy configuration for which cost is calculated.

[0308] In S3004, the storage managing program 310 stores, in the pool
hierarchy configuration cost information (table) 419, a set of an
identifier of the pool to be subjected to the cost calculation processing
and the calculated cost.

[0311]FIG. 31 is a flowchart for explaining details of the pool
information display processing 411 (S240 in FIG. 20). The processing is
periodically started according to scheduling configuration, started after
the pool hierarchy configuration cost calculation processing 410, or
started according to a request from the storage managing client 301
triggered by instruction operation of the user.

[0312] In S3101, the storage managing program 310 acquires a list of pool
hierarchy configuration from the pool hierarchy configuration information
(table) 416.

[0314] In S3103, the storage managing program 310 acquires a virtual
logical volume group list from the shift target virtual logical volume
group information (table) 415.

[0315] In S3104, the storage managing program 310 associates, using a pool
identifier, information acquired from the pool hierarchy configuration
information (table) 416, the pool hierarchy configuration cost
information (table) 419, and the shift target volume group information
(table) 415 and displays a GUI (see FIG. 19) on a terminal of the storage
managing client 301.

[0316] In S3105, the storage managing program 310 waits for a user input
and determines whether the user instructs pool creation 1905 and/or
arrangement 1906 of virtual logical volumes. When the user instructs the
pool creation 1905 and/or the arrangement 1906 of virtual logical volumes
(Yes in S3105), the processing shifts to S3106.

[0317] In S3106, the storage managing program 310 acquires pool hierarchy
configuration information to be created and virtual logical volume group
information to be shifted, stores the pool hierarchy configuration
information and the virtual logical volume group information respectively
in the creation execution target pool hierarchy configuration information
(table) 420 and the shift execution target virtual logical volume group
information (table) 421, and ends the pool information display
processing.

[0318] When the user does not instruct the pool creation or the
arrangement of virtual logical volumes in S3105 (No in S3105), the pool
information display processing 411 ends.

[0319] The system can also automatically execute creation of all pools and
arrangement processing for all virtual logical volumes without a user
input.

(2) Second Embodiment

[0320] A second embodiment provides a method of dividing a value of target
response performance of a virtual logical volume into plural regions and
grouping (classifying) plural virtual logical volumes included in a pool
on the basis of the divided regions. The second embodiment is different
from the first embodiment only in shift target virtual logical volume
classification processing. A system configuration, contents of various
kinds of information (tables), and other various processing contents are
the same. Therefore, only differences are explained below.

[0321] <Overview>

[0322]FIG. 32 is a diagram for explaining a basic concept of processing
(determination of arrangement of virtual logical volumes) according to
the second embodiment.

[0323] As shown in FIG. 32A, as in the first embodiment, plural virtual
logical volumes 3201 to 3207 included in one pool are grasped and plotted
in a two-dimensional plane (an access characteristic--target response
performance plane) including an access characteristic and target response
performance as actually measured values. Values of access characteristics
in virtual logical volumes 3201 to 3207 are averages of access
characteristics to pages included in the virtual logical volumes. Values
of target response performances of the virtual logical volumes are, for
example, values set by a user as desired values. In the embodiments,
processing and operations are explained using an IO number (IOPS) as an
example access characteristic. However, the access characteristics are
not limited to this. The access characteristics are a concept including a
data transfer amount, access time (a volume accessed recently is a
maximum access load and a volume not accessed for a while is a low load),
and a level of a cache access load.

[0324] In the access characteristic--target response performance plane, as
shown in FIG. 32A, maximum values 3208 to 3210 of basic response
performance which can be provided by storage devices in hierarchies are
shown. Then, virtual logical volumes can be divided into groups of
virtual logical volumes in which target responsive performances
respectively match the storage devices in the low-order hierarchy, the
intermediate-order hierarchy, and the high-order hierarchy. In other
words, the virtual logical volumes 3201 to 32093 are classified in the
low-order hierarchy, the virtual logical volumes 3204 and 3205 are
classified in the intermediate-order hierarchy, and the virtual logical
volumes 3206 and 3207 are classified in the high-order hierarchy. As
shown in FIG. 32B to 32D, it is seen that the respective groups only have
to configure pools.

[0325] It is possible to reduce storage cost by determining a virtual
logical volume allocated to a pool for each region in this way. In
particular, in an example shown in FIG. 32, it is possible to generate a
pool in which target response performance can be satisfied only by a
storage device in a lowest-order hierarchy and realize minimum use cost
concerning this group.

[0327] FIG. 33 is a flowchart for explaining details of the shift target
virtual logical volume classification processing 405 (S210 in FIG. 20)
according to the second embodiment. The processing is periodically
started according to scheduling configuration, started after the agent
information collection processing 401, the virtual logical volume
performance deterioration detection processing 404, the target response
performance configuration processing 407, the shift target virtual
logical volume selection processing 408, or the virtual logical volume
addition and deletion detection processing 409, or started according to a
request from the storage managing client 301 triggered by instruction
operation of the user.

[0329] In S3302, the storage managing program 310 acquires basic response
performance of a lowest-order hierarchy from the storage device
information by pool hierarchy configuration (table) 418. Instead of the
basic response performance of the lowest-order hierarchy, basic response
performance of an intermediate-order hierarchy or other values of
response performance may be used.

[0330] In S3303, the storage managing program 310 specifies unnumbered
pool identifiers A and B with reference to the pool configuration
information (table) 900. Concerning each of virtual logical volumes
acquired in S3303, processing in S3304 to S3309 is repeatedly executed.

[0331] In S3304, the storage managing program 310 acquires, from the
virtual logical volume target response performance information (table)
417, target response performance corresponding to the virtual logical
volume to be subjected to the repetition processing. When the target
response performance cannot be acquired (the target response performance
is not set), the target response performance can be regarded as the same
as basic response performance of a storage device in a lowest-order
hierarchy included in a pool or a value slower than the basic response
performance.

[0332] In S3305, the storage managing program 310 acquires, from the
virtual logical volume target response performance information (table)
417, an excess performance threshold corresponding to the virtual logical
volume to be subjected to the repetition processing. When the excess
performance threshold cannot be acquired (the excess performance
threshold is not set), the excess performance threshold can be regarded
as 0.

[0333] In S3306, the storage managing program 310 calculates corrected
target response performance from the target response performance and the
excess performance threshold. The corrected target response performance
can be calculated as explained below. This step can be omitted. When the
step is omitted, a value of the target response performance is used as it
is instead of corrected target response performance after that.

[0334] In S3307, the storage managing program 310 compares the corrected
target response performance and the basic response performance of the
lowest-order hierarchy included in the pool. When the corrected target
response performance is slower than the basic response performance of the
lowest-order hierarchy included in the pool (Yes in S3307), the
processing shifts to S3308. On the other hand, when the corrected target
response performance is faster than the basic response performance of the
lowest-order hierarchy included in the pool (No in S3307), the processing
shifts to S3309.

[0335] In S3308, the storage managing program 310 stores, in the shift
target volume group information (table) 415, a set of the pool identifier
A and the virtual logical volume to be subjected to the repetition
processing.

[0336] In S3309, the storage managing program 310 stores, in the shift
target volume group information (table) 415, a set of the pool identifier
B and the virtual logical volume to be subjected to the repetition
processing.

[0337] The storage managing program 310 changes the target of the
repetition processing and continues the repetition processing concerning
the virtual logical volume list. When the processing in S3304 to S3309 is
executed concerning all virtual logical volumes to be processed, the
shift target virtual logical volume classification processing 405 ends.

(3) Third Embodiment

[0338] A third embodiment provides grouping processing for virtual logical
volumes for minimizing storage cost. The third embodiment is different
from the first embodiment only in the shift target virtual logical volume
classification processing 405 and the pool hierarchy configuration
calculation processing 406. A system configuration, contents of various
kinds of information (tables), and other various processing contents are
the same. In the third embodiment, it is unnecessary to execute S2710 of
the pool hierarchy configuration calculation processing. This is because,
although S2710 is processing executed to guarantee achievement of target
response performance in the first and second embodiments, in the third
embodiment, the grouping processing for virtual logical volumes is
executed to guarantee achievement of target response performance. Only
differences are explained below.

[0339] <Overview>

[0340]FIG. 34 is a diagram for explaining a basic concept of processing
(determination of arrangement of virtual logical volumes) according to a
third embodiment.

[0341] As shown in FIG. 34A, as in the first embodiment, plural virtual
logical volumes 3401 to 3407 included in one pool are grasped and plotted
in a two-dimensional plane (an access characteristic--target response
performance plane) including an access characteristic and target response
performance as actually measured values.

[0342] Concerning the virtual logical volumes 3401 to 3407, averages of
access characteristics to pages included in the virtual logical volumes
are indicated by plots. Dispersions (IOPS minimums and maximums) of
access characteristics (IOPSs) to pages allocated to the virtual logical
volumes are indicated by arrows. Values of target response performances
of the virtual logical volumes are, for example, values set by a user as
desired values. In the embodiments, processing and operations are
explained using an IO number (IOPS) as an example access characteristic.
However, the access characteristics are not limited to this. The access
characteristics are a concept including a data transfer amount, access
time (a volume accessed recently is a maximum access load and a volume
not accessed for a while is a low load), and a level of a cache access
load.

[0343] In the access characteristic--target response performance plane, a
maximum IOPS value and a fastest settable target response performance
value are set as a start point (a point indicated by a star in FIG. 34)
of grouping processing for virtual logical volumes. First, a plot point
(the virtual logical volume 3407) present at a shortest distance from the
start point is selected (processing 1). Among plots having IOPSs smaller
than and target response performance values slower than those of the plot
(the virtual logical volume 3407) selected in the processing 1, plots
which do not have overlap in the dispersions of IOPSs (widths between
minimums and maximums of IOPSs) of the virtual logical volume 3407
indicated by arrows and are present in regions of different hierarchies
are selected and, among the plots, a plot points having a shortest
distance is selected next (processing 2). Processing same as the
processing 2 is repeated until no selectable plot point remains
(processing 3). The points selected in order by the processing 1 to 3
form a group 3408 of virtual logical volumes included in one hierarchy
pool 1. When the processing 1 to 3 is repeated among other volumes
excluding the virtual logical volumes included in the group 3408, groups
3409 and 3410 are generated. The group 3409 configures a hierarchical
pool 2 and the group 3410 configures a hierarchical pool 3. Finally, in
the groups, storage regions are allocated from storage devices included
in the hierarchies to the virtual logical volumes in the same groups in
order of IOPSs. In this way, in a hierarchical pool in which storage
regions are allocated in order from one having highest performance to
pages having high IOPSs (access characteristics) management target
virtual volumes are grouped such that, concerning target response
performances and IOPSs of virtual logical volumes, a relation in which,
when one of the target response performances and the IOPSs increase, the
other decrease is given and that there is no overlap in dispersions of
IOPS values and the virtual logical volumes belong to regions in
different hierarchies. This makes it possible to efficiently allocate
storage regions of storage devices and minimize storage cost.

[0345] FIG. 35 is a flowchart for explaining details of the shift target
virtual logical volume classification processing 405 (S210 in FIG. 20)
according to the third embodiment. The processing is periodically started
according to scheduling configuration, started after the agent
information collection processing 401, the virtual logical volume
performance deterioration detection processing 404, the target response
performance configuration processing 407, the shift target virtual
logical volume selection processing 408, or the virtual logical volume
addition and deletion detection processing 409, or started according to a
request from the storage managing client 301 triggered by instruction
operation of the user.

[0346] First, in S3501, the storage managing program 310 acquires, from
the shift target virtual logical volume information (table) 414,
information concerning a list of virtual logical volumes to be subjected
to the classification processing.

[0347] In S3502, the storage managing program 310 acquires a basic
response performance list of the hierarchies from the storage device
information by pool hierarchy configuration (table) 418. Processing in
S3503 to 3511 concerning the virtual logical volumes acquired in S3501 is
repeatedly executed.

[0348] In S3503, the storage managing program 310 acquires, from the
virtual logical volume target response performance information (table)
417, a value of target response performance corresponding to a virtual
logical volume to be subjected to the repetition processing. When the
target response performance cannot be acquired (the target response
performance is not set), the target response performance can be regarded
as the same as basic response performance of a storage device in a
lowest-order hierarchy included in a pool or a value slower than the
basic response performance.

[0349] In S3504, the storage managing program 310 acquires, from the
virtual logical volume target response performance information (table)
417, an excess performance threshold corresponding to the virtual logical
volume to be subjected to the repetition processing. When the excess
performance threshold cannot be acquired (the excess performance
threshold is not set), the excess performance threshold can be regarded
as 0.

[0350] In S3505, the storage managing program 310 calculates corrected
target response performance from the target response performance and the
excess performance threshold. The storage managing program 310 calculates
the corrected target response performance as explained below. This step
can be omitted. When the step is omitted, a value of the target response
performance is used as it is as corrected target response performance
after that.

[0351] In S3506, the storage managing program 310 acquires, from the page
configuration information (table) 800, a list of pages allocated to the
virtual logical volume to be subjected to the repetition processing.
Processing in S3507 concerning the acquired page list is repeatedly
executed.

[0352] In S3507, the storage managing program 310 acquires, from the page
performance information (table) 600, an access characteristic
corresponding to the pages to be subjected to the repetition processing.
The storage managing program 310 changes the target of the repetition
processing and continues the repetition processing concerning the page
list. In S3507, access characteristics (IOPSs) are acquired concerning
all pages included in the virtual logical volume to be processed.

[0353] In S3508, the storage managing program 310 calculates an average of
the access characteristics to the pages included in the virtual logical
volume to be subjected to the repetition processing.

[0354] In S3509, the storage managing program 310 acquires a maximum of
the access characteristics to the pages included in the virtual logical
volume to be subjected to the repetition processing.

[0355] In S3510, the storage managing program 310 acquires a minimum of
the access characteristics to the pages included in the virtual logical
volume to be subjected to the repetition processing.

[0356] In S3511, the storage managing program 310 calculates, from a basic
response performance list and corrected or uncorrected target response
performance of the virtual logical volume to be subjected to the
repetition processing, to which range of ranges explained below the
corrected or uncorrected target response performance is allocated.

[0357] Range of basic response performance of the high-order hierarchy to
the intermediate-order hierarchy (range 1)

[0358] Range of basic response performance of the intermediate-order
hierarchy to the low-order hierarchy (range 2)

[0360] When the repetition processing in S3503 to S3511 ends, the storage
managing program 310 grasps, concerning all the virtual logical volumes
to be processed, to which range of the ranges 1 to 3 corrected or
uncorrected target response performance is allocated and further grasps
IOPS averages, minimums, and maximums of pages of the virtual logical
volumes.

[0361] In S3212, the storage managing program 310 groups virtual logical
volumes into the same group to satisfy the following conditions:

[0362] Condition 1: the corrected target response performance and the
averages of the access characteristics have a relation in which, when one
of the corrected target response performances and the averages of the
access characteristics increase, the other decrease;

[0363] Condition 2: among the virtual logical volumes, there is no overlap
in ranges from maximums to minimums of access characteristics of pages
included in the virtual logical volumes; and

[0364] Condition 3: a range of target response performances of the virtual
logical volumes is divided into plural regions according to basic
response performances of storage devices in the hierarchies included in
the pool, whereby the virtual logical volumes are respectively allocated
to different regions.

[0365] To explain more in detail, in S3212, grouping processing is
executed as explained below. A concept is as explained with reference to
FIG. 34.

[0366] (i) The storage managing program 310 defines an xy plane (an access
characteristic--target response performance plane) in which an x axis
represents an average of the access characteristics and a y axis
represents the corrected target response performance.

[0368] (iii) The storage managing program 310 defines two-dimensional
vector s=(a maximum of the averages of the access characteristics in all
vi, a fastest value of the corrected target response performances in
all v) on the access characteristic--target response performance plane.

[0369] (iv) The storage managing program 310 selects a vector t having a
Euclidian distance closest to s out of vi. If there is no selectable
vector, the storage managing program 310 ends the step (S3212).

[0370] (v) The storage managing program 310 selects a vector which
satisfies the following conditions out of vi. [0371] (a) A maximum
of access characteristics to pages is smaller than a minimum access
characteristics to a page of t. [0372] (b) Corrected target response
performance is slower than t. [0373] (c) The corrected target response
performance is allocated to a range different from corrected target
response performance of t [0374] (d) An Euclidian distance to t is the
closest among vectors which satisfy the conditions (a) to (c).

[0375] (vi) With t used in the processing (v) replaced with the vector
selected in (v), the processing (v) is repeated until no selectable
vector remains.

[0376] (vii) A set of vectors selected by the processing (iv) to (vi) is
grouped.

[0377] (viii) The vectors grouped in the processing (vii) are excluded
from vi defined in the processing (ii).

[0378] (ix) The processing (iv) to (viii) is repeated.

[0379] In S3513, the storage managing program 310 stores, in the shift
target virtual logical volume group information (table) 415, a set of an
unnumbered pool identifier and the groups of the virtual logical volumes
specified in S2512 and ends the shift target virtual logical volume
classification processing.

(4) Conclusion

[0380] (i) In the present invention explained above, on the basis of
information concerning target response performances set to respective
virtual logical volumes included in at least one pool already present in
a storage device (a storage subsystem), plural virtual logical volumes
are classified into plural groups such that the plural virtual logical
volumes satisfy the target response performances of the virtual logical
volumes. A new pool is allocated to the groups obtained by this
classification. GUI information indicating a correspondence relation
between the pool and the virtual logical volumes included in the groups
is generated and outputs in, for example, a storage managing client. The
virtual logical volumes are rearranged in the pool in this way. This
makes it possible to provide a user (an administrator) with the
configuration of a pool which satisfies the target response performances
of the virtual logical volumes.

[0381] More specifically, in the first to third embodiments, processing
for virtual logical volume grouping is performed such that, concerning a
combination of target response performances and access characteristics of
plural virtual logical volumes, a virtual logical volume having a
relation in which when one of the target response performance and the
access characteristic increases, the other decreases (see FIGS. 2 and
34), is included in one group. In the present invention, a configuration
plan of a pool is provided. When, according to a level of access
characteristics (e.g., IOPSs), storage regions (pages) are allocated from
storage devices included in hierarchies to virtual logical volumes
included in a pool configuration created by the present invention,
allocation of pages which always satisfies the target response
performances set in the virtual logical volumes is guaranteed.

[0382] In the first embodiment, as shown in FIG. 2, in a two-dimensional
plane of access characteristic (e.g., IOPS)-target response performance,
virtual logical volumes included in one or plural pools are plotted. A
processing start point (the start point in FIG. 2) is determined in this
two-dimensional plane. This start point is a point indicating a maximum
access characteristic and fastest target response performance and is not
a plot point of a virtual logical volume. A plot point (202) present at a
shortest distance from the start point is selected (first plot selection
processing). Further, among plots (other than 201) having smaller access
characteristics and slower target response performances than the selected
plot point (202), another plot point (204) present at a shortest distance
from the selected plot point (202) is selected (second plot selection
processing). The second plot selection processing is repeated excluding
the already-selected plot points (202 and 204) until no selectable plot
point remains. Consequently, a group of virtual logical volumes which
should be arranged in one pool is determined

[0383] In the third embodiment, as shown in FIG. 34, as in the first
embodiment, a plot point (3407) present at a shortest distance from a
processing start point (the start point in FIG. 34) is selected (first
plot selection processing). Among plots (other than 3405) having smaller
access characteristics and slower target response performances than the
plot 3407, which are plot points (3404, 3402, and 3401) which do not have
overlap in dispersion values specified by maximums and minimums of access
characteristics and which should be included in different hierarchies
when target response performances are taken into account, another plot
point present at a shortest distance from the selected plot (3407) point
is selected (second plot selection processing). The second plot selection
processing is repeated excluding the already-selected plot points until
no selectable plot point remains. A group in which plural virtual logical
volumes selected in the processing are rearranged in one pool is
configured. Consequently, it is possible to generate a group of virtual
logical volumes configured at minimum cost.

[0384] On the other hand, in the second embodiment, as shown in FIG. 32,
irrespective of access characteristics, virtual logical volumes are
simply classified according to values of target response performances.
Specifically, each of a group of virtual logical volumes to which storage
regions are allocated only from a low-order hierarchy, a group of virtual
logical volumes to which storage regions are allocated only from an
intermediate-order hierarchy, and a group of virtual logical volumes to
which storage regions are allocated from only a high-order hierarchy is
rearranged in one pool. Consequently, a group of virtual logical volumes
which can satisfy target response performances only with storage devices
in a lowest-order hierarchy can be configured according to deviation of
target response performances. Therefore, it is possible to reduce use
cost.

[0385] The first embodiment and the second embodiment may be combined to
create a group of virtual logical volumes. The second embodiment and the
third embodiment may be combined to create a group of virtual logical
volumes. In other words, for example, a group of virtual logical volumes
to which storage regions are allocated only from a storage device in a
lowest-order hierarchy may be configured according to the method of the
second embodiment and virtual logical volumes other than the virtual
logical volumes may be classified using the method of the first
embodiment or the third embodiment.

[0386] (ii) In the embodiments, the classification processing for virtual
logical volumes only has to be executed when addition and/or deletion of
a virtual logical volume is detected (when information collected from a
storage device and information of a management server are collated and
addition and/or deletion of a volume is detected and when addition and/or
deletion of a volume is instructed from a user), when deterioration in
response performance of a virtual logical volume is detected, when target
response performance is set according to an instruction, or when
configuration of a virtual logical volume allocated to a new pool is
instructed or only has to be periodically executed according to
scheduling configuration. Consequently, when target response performances
of virtual logical volumes in a pool cannot be attained or when a balance
of the target response performances is lost, it is possible to
immediately take measures. By performing the classification processing
according to scheduling, it is possible to prevent occurrence of a state
in which target response performances of virtual logical volumes cannot
be attained in a pool.

[0387] (iii) As a value of target response performance used in the
classification processing for virtual logical volumes, a set value may be
used as it is. However, target response performance set using an excess
performance threshold may be corrected and the corrected target response
performance may be used. Consequently, rather than starting the
classification processing for virtual logical volumes when set target
response performance is exceeded because of performance deterioration, it
is possible to execute the classification processing in a state close to
performance deterioration to some extent. Consequently, set target
response performance is not exceeded even in a short period and it is
possible to determine a group of virtual logical volumes included in a
pool. Therefore, it is possible to always guarantee achievement of set
target response performance.

[0388] (iv) In the embodiments, storage capacities (C1, C2, . .
. , Cn) from storage devices in the hierarchies which satisfy
Expressions F1 to F3 are calculated. This calculation result (a result of
the pool hierarchy configuration calculation processing) is output as a
GUI together with a result of the classification processing for virtual
logical volumes. In the first and second embodiments, classification of
virtual logical volumes is not performed taking into account overlap of
access characteristics in the virtual logical volumes (dispersion widths
specified by maximums and minimums of the access characteristics).
Therefore, when an access characteristic of a page to which a storage
region should be allocated from a low-order hierarchy exceeds an access
characteristic of a page to which a storage region should be allocated
from a higher-order hierarchy, a situation occurs in which a storage
region cannot be surely allocated to the latter from a high-order
hierarchy. Therefore, when storage regions are allocated to pages, if the
storage regions are allocated on the basis of access characteristics,
processing is performed such that storage regions in hierarchies which
should be allocated are allocated even when order of allocation is
changed. Specifically, pages of virtual logical volumes are sorted in
order from one having a highest access characteristic and, even when a
page from a lower-order hierarchy has a larger access characteristic than
a page from a higher-order hierarchy, a larger capacity is allocated to
the higher-order hierarchy. Consequently, although it is likely that
initial cost is not guaranteed, set target response performance can be
surely guaranteed.

[0389] Cost required for configuring a virtual logical volume to be
processed is calculated on the basis of a result of the pool hierarchy
configuration calculation processing and information concerning a
capacity unit price. A result of the calculation is output as a GUI
together with a result of classification processing pool hierarchy
configuration calculation. Consequently, it is possible to inform the
user (the administrator) of cost required when rearrangement of virtual
logical volumes is performed. The user can determine, looking at this
information, whether rearrangement is actually executed.

[0390] A storage managing system is characterized as explained above.

[0391] (v) The present invention can also be realized by a program code of
software which realizes the functions of the embodiments. In this case, a
storage medium having the program code recorded therein is provided to a
system or an apparatus and a computer (or a CPU or an MPU) of the system
or the apparatus reads out the program code stored in the storage medium.
In this case, the program code itself read out from the storage medium
realizes the functions of the embodiments. The program code itself and
the storage medium having the program code stored therein comprise the
present invention. As the storage medium for supplying such a program
code, for example, a flexible disk, a CD-ROM, a DVD-ROM, a hard disk, an
optical disk, a magneto-optical disk, a CD-R, a magnetic tape, a
nonvolatile memory card, or a ROM is used.

[0392] An OS (operating system) or the like running on a computer may
perform a part or all of actual processing on the basis of an instruction
of the program code and the functions of the embodiments may be realized
by the processing. Further, after the program code read out from the
storage medium is written in a memory on the computer, the CPU or the
like of the computer perform a part or all of the actual processing on
the basis of an instruction of the program code and the functions of the
embodiments may be realized by the processing.

[0393] Further, the program code of the software which realizes the
functions of the embodiments may be stored in storing section such as a
hard disk or a memory of the system or the apparatus or a storage medium
such as a CD-RW or a CD-R by being distributed via a network and, when
the program code is used, the computer (or the CPU or the MPU) of the
system or the apparatus may read out and execute the program code stored
in the storing section or the storage medium.

[0394] Lastly, it should be understood that the process and the technique
explained herein are not essentially related to any specific apparatus
and can also be implemented by any suitable combination of components.
Further, general-purpose devices of various types can be used according
to the teaching described herein. It may be understood that it is useful
to build a dedicated apparatus to execute the steps of the method
explained herein. Various inventions can be formed by an appropriate
combination of the plural components disclosed in the embodiments. For
example, several components may be deleted from all the components
explained in the embodiments. Further, the components explained in the
different embodiments may be combined as appropriate. The present
invention is explained in relation to the specific examples. However, the
specific examples are not for limitation but for explanation in every
aspect. Those having skill in the art would understand that there are a
large number of combinations of hardware, software, and firmware suitable
for carrying out the present invention. For example, the software
explained above can be implemented by programs or script languages in a
wide range such as assembler, C/C++, perl, Shell, PHP, and Java (R).

[0395] Further, in the embodiments, control lines and information lines
considered to be necessary for explanation are shown. All control lines
and information lines are not always shown in terms of a product. All the
components may be connected to one another.

[0396] In addition, other implementations of the present invention are
made apparent to those having ordinary knowledge in the technical field
from the examination of the specification and the embodiments of the
present invention disclosed herein. The explained various forms and/or
components of the embodiments can be used independently or in any
combination in a computerized storage system having a function of
managing data. The specification and the specific examples are merely
typical ones and the scope and the spirit of the present invention are
indicated by claims.