WO2016121108A1 - ストレージ装置管理方法および計算機システム - Google Patents
ストレージ装置管理方法および計算機システム Download PDFInfo
- Publication number
- WO2016121108A1 WO2016121108A1 PCT/JP2015/052707 JP2015052707W WO2016121108A1 WO 2016121108 A1 WO2016121108 A1 WO 2016121108A1 JP 2015052707 W JP2015052707 W JP 2015052707W WO 2016121108 A1 WO2016121108 A1 WO 2016121108A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- task
- storage device
- time
- information
- volume
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/10—Program control for peripheral devices
Definitions
- the present invention relates to a storage apparatus.
- the management computer manages the management target by executing the operation of the registered task when the execution start time comes.
- the execution time of each task and the management target may conflict, so in order to properly execute the task, it is necessary to manage the task in consideration of the influence of each task. is there.
- the storage device includes a storage device for storing data read and written by the host computer, and provides the storage area of the storage device to the host computer as one or more volumes. Includes a first memory for storing task information including operation processing contents to the storage device and a scheduled start time and a scheduled end time of the process, and the first task information is stored when the first task information is stored in the first memory.
- a first memory for storing task information including operation processing contents to the storage device and a scheduled start time and a scheduled end time of the process
- the first task information is stored when the first task information is stored in the first memory.
- the accuracy of the required time can be improved by calculating the required time of the task using the actual value when the task is executed.
- a migration task for migrating data from an old storage device to a new storage device since it is a new storage device, there is no actual value of the task, and the estimation accuracy of the required time of the task becomes low. There is a case.
- the physical storage device constituting the migration target volume in the old storage device is subjected to a load higher than the actual value due to data access, the required time estimation accuracy is lowered.
- a storage device management method stores configuration information indicating physical resources in a first storage device and capacity of a volume in the first storage device, A plurality of tasks executed by the first storage device, storing measurement information indicating states of past tasks executed by the first storage device and the physical resources used by the past tasks; Storing schedule information indicating schedules of the plurality of tasks including a migration task from the first volume in the first storage device to the second volume in the second storage device, and measuring based on the schedule information From the information, it is a state in which a task using a specific physical resource allocated to the first volume is being executed, and It selects the closest specific state to the running state of the IG Configuration Tasks, on the basis of the specific state and the capacity of the first volume, estimating the time required for the migration task comprises that.
- the configuration of the computer system is shown. 2 shows a logical configuration of the storage apparatus 1000.
- summary of Example 1 is shown.
- the structure of the management server 3000 is shown.
- the structure of the display computer 4000 is shown.
- the migration task input screen G1000 is shown.
- the task information display screen G2000 is shown.
- a load coefficient table T1000 is shown.
- the pool structure information table T2000 is shown.
- the task information table T3000 is shown.
- the migration task detailed information table T4000 is shown.
- a task progress information table T5000 is shown.
- a similar task type table T6000 is shown.
- the task temporary information table T7000 is shown.
- the resource load information table T8000 is shown.
- a load coefficient initial value table T9000 is shown.
- the volume configuration information table T11000 is shown.
- the resource performance information table T12000 is shown.
- the task registration process is shown.
- Task duration estimation processing is shown.
- Specific condition task duration estimation processing is shown.
- a load coefficient acquisition process is shown.
- An estimation accuracy determination process is shown.
- the phase end time determination process is shown.
- the task estimated time display processing is shown. Indicates task execution processing.
- the load coefficient update process is shown.
- the embodiment 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 software and hardware.
- each information of the present embodiment will be described in a “table” format.
- the information does not necessarily have to be represented by a data structure using a table. It may be expressed in other than.
- “table”, “list”, “DB”, “queue”, etc. may be simply referred to as “information” in order to show that they do not depend on the data structure.
- the expressions “identification information”, “identifier”, “name”, “name”, “ID” can be used, and these can be replaced with each other. It is.
- each process in the present embodiment will be described using “program” as the subject (operation subject), but the processing determined by the program being executed by the control device (processor) is the memory and communication port (communication control device). ), The description may be based on the processor. Further, the processing disclosed with the program as the subject may be processing performed by a computer such as a management server or an information processing apparatus. Part or all of the program may be realized by dedicated hardware, or may be modularized. Various programs may be installed in each computer by a program distribution server or a computer-readable storage medium.
- the management computer has input / output devices.
- input / output devices include a display, a keyboard, and a pointer device, but other devices may be used.
- a serial interface or an Ethernet interface is used as the input / output device, a display computer having a display or keyboard or pointer device is connected to the interface, and the display information is transmitted to the display computer.
- the display computer may perform the display, or the input may be replaced by the input / output device by receiving the input.
- a set of one or more computers that manage the computer system and display the display information of this embodiment may be referred to as a management system.
- the management computer displays the display information
- the management computer is a management system.
- a combination of a management computer (management server) and a display computer is also a management system.
- a plurality of computers may realize processing equivalent to that of the management computer.
- the plurality of computers if the display computer performs the display, display (Including computers) is the management system.
- the management server of the storage apparatus estimates the time required for the task. At this time, the estimated time is estimated using the actual value of the same type of task, and if there is no actual value of the same type of task, the processing tendency for the resource (physical resource) is similar. Estimate using actual values. Further, the management server of the present embodiment presents the estimated accuracy of the estimated required time to the user (administrator). In addition, the management server according to the present embodiment estimates the required time in consideration of the multiplicity of processing for resources for which a plurality of processes are performed simultaneously.
- the management server of this embodiment determines the time required for task execution (task required time) by the influence of processing contention on the processing target resource of the task and the influence of the load due to data access from the host computer on the processing target resource. , Take into account.
- the resource refers to a component that is held by the storage apparatus and that may compete for processing.
- the management server first estimates the required time when the task processing target resource does not compete and the task processing target resource is not loaded, and further determines the resource conflict multiplicity.
- the time required for the task is estimated by multiplying by the load coefficient specified by the degree of load on.
- the load factor is a guide value that indicates how many times the processing time required when a task is processed singly, that is, when the processing target resource does not compete and the load is not applied, in a specific state Is a value indicating the load of the processing target resource.
- phase a time interval in which the multiplicity of processing for the processing target resource R does not change and the degree of load on the resource R is constant during execution of a certain task.
- a phase is a time interval defined by an execution start time and an execution end time.
- One load factor corresponds to one phase.
- the management server divides the time interval from the execution start time to the execution end time into phases, estimates the required time for each phase, and takes the sum of them to calculate the entire task Estimate the required time.
- the management server of this embodiment determines the estimation accuracy and presents it to the user when estimating the time required for the task.
- the estimation accuracy of the present embodiment is expressed by three values of high, medium, and low.
- the method of expressing the estimation accuracy is not limited to this format.
- the estimation accuracy may be a binary value of high or low, or an error in accuracy may be expressed by time or percentage, or expressed by a character string including the accuracy, the reason why the accuracy was calculated, and a countermeasure. May be.
- volume migration a migration task for migrating a volume from an old storage device (old storage device) to a new storage device (new storage device) (volume migration) will be described as an example.
- Fig. 1 shows the configuration of the computer system.
- the computer system includes a plurality of storage apparatuses 1000, a host computer 2000, a management server 3000, a display computer 4000, a data network 5000, and a management network 6000.
- a plurality of storage apparatuses 1000 and a host computer 2000 are connected to each other via a data network 5000.
- the data network 5000 in this embodiment is a SAN (Storage Area Network), but may be an IP (Internet Protocol) network or other data communication network.
- SAN Storage Area Network
- IP Internet Protocol
- the plurality of storage apparatuses 1000 and the host computer 2000 are connected to the management server 3000 via the management network 6000.
- the management network 6000 of this embodiment is an IP network, but may be a SAN or a data communication network other than these. Alternatively, the data network 5000 and the management network 6000 may be the same network.
- the display computer 4000 is connected to the management server 3000 via the management network 6000.
- the network connecting the display computer 4000 and the management server 3000 may be a network different from the management network 6000.
- the display computer 4000 may be the same as the management server 3000.
- FIG. 1 two storage apparatuses 1000, one host computer 2000, one management server 3000, and one display computer 4000 are shown. Does not matter.
- FIG. 2 shows a logical configuration of the storage apparatus 1000.
- the storage device 1000 includes at least one physical storage device (PDEV) 1100.
- the storage device 1000 includes a control device and a main memory, although not shown.
- the main memory stores the management program, and the control device reads and executes the management program, whereby processing for controlling the storage apparatus 1000 can be performed.
- the physical storage device 1100 provides a physical storage area that is treated as a storage area.
- the physical storage device 1100 is, for example, a SATA (Serial Advanced Technology Attachment) disk, an FC (Fibre Channel) disk, an SSD (Solid State Drive), or the like.
- the parity group 1200 is a logical storage area composed of a plurality of physical storage devices 1100, that is, RAID (Redundant Array Of Inexpensive Disks), and is constructed by the function of the storage apparatus 1000. For example, when the storage apparatus 1000 receives an instruction as to which physical storage apparatus 1100 is used to configure the parity group 1200 and a RAID level instruction from the management server 3000 as input parameters, the storage apparatus 1000 has the specified RAID level.
- a parity group 1200 is constructed using the physical storage device 1100.
- the pool 1300 includes at least one logical volume composed of a parity group 1200. Note that illustration of the logical volume is omitted.
- the pool 1300 is a logical group for handling a plurality of logical volumes collectively, and the logical volumes that constitute the pool 1300 are called pool volumes.
- the virtual volume (VVOL) 1400 is a virtual volume generated from the pool 1300.
- a plurality of virtual volumes 1400 can be created from one pool 1300.
- the virtual volume 1400 can be used as a storage area from the host computer 2000 connected via the port 1500 and the data network 5000.
- a logical volume composed of the parity group 1200 can also be used as a storage area from the host computer 2000 in the same manner.
- a virtual volume 1400 and a logical volume composed of a parity group 1200 are simply referred to as a volume.
- FIG. 3 shows an outline of the first embodiment.
- Migration task migrates data from a certain volume (migration source volume) to a certain volume (migration destination volume).
- a migration task includes data migration processing between volumes existing in the same storage apparatus 1000 and data migration processing between volumes existing in different storage apparatuses 1000.
- the migration task of this embodiment refers to data migration processing between volumes existing in different storage apparatuses 1000.
- the processing target resource in the migration task is a resource that configures the migration source volume (that is, the pool 1300 or the parity group 1200 that is not shown), and the port 1500 that connects the migration source volume and the migration destination volume. (Path) and resources constituting the migration destination volume (that is, the pool 1300 or the parity group 1200 (not shown)).
- a migration task from the volume 1400A in the storage apparatus 1000A to the volume 1400D in the storage apparatus 1000B is scheduled.
- the management server 3000 determines the multiplicity of processing conflicts within the execution time for the target resource of the task (that is, the pool 1300A, port 1500A, port 1500B, and pool 1300C) and the resource due to data access from the host.
- the time required for the task is estimated in consideration of the load of the task. Details of the required time estimation processing will be described later as task required time estimation processing. In this required time estimation process, the estimation accuracy is improved by using the actual measurement value of the previous task execution. However, since the storage device 1000B to which the migration destination volume belongs is a new storage device, there is no actual measurement value of the migration task.
- the bottleneck of the process in the migration task is usually the resource constituting the migration source volume, that is, the pool 1300A of this embodiment. Therefore, the management server 3000 uses a measured value of a similar task in which the same resource becomes a bottleneck and the processing tendency for the resource is similar, thereby accurately estimating the time required for a migration task that does not include the measured value. To do.
- Similar tasks with similar processing for resources include a local copy task that replicates data between volumes in the same storage device, and a remote copy task that replicates data between volumes in different storage devices. is there.
- FIG. 3 shows a case where a local copy task has been executed from the volume 1400B configured from the pool 1300A to the volume 1400C in the same manner as the volume 1400A, and the management server 3000 performs actual measurement of the local copy task. Using the value, the time required for the migration task from the volume 1400A to the volume 1400D is estimated.
- the management server 3000 estimated the required time described above, for example, estimated the required time based on the actual measurement value of the same type of task or similar task, or whether the actual measurement value did not exist and was estimated using the initial value or the like
- the estimated accuracy of the required time is determined based on the criteria such as, and the like, and presented to the user.
- the task information screen G2000 displayed on the display computer 4000 in FIG. 3 is an example of a presentation method to the user, and displays the estimated execution end time of the registered task and its estimated accuracy.
- the estimation accuracy determination method will be described later as estimation accuracy determination processing. Details of the task information screen G2000 will be described later with reference to FIG.
- FIG. 4 shows the configuration of the management server 3000.
- the management server 3000 includes a main memory 3100, a control device 3200, and a management interface 3300.
- the main memory 3100 includes a system management program 3101, a task management program 3102, a load coefficient update program 3103, a load coefficient table T1000, a pool configuration information table T2000, a task information table T3000, a migration task detailed information table T4000, and a task progress information table T5000.
- a similar task type table T6000, a temporary task information table T7000, a resource load information table T8000, a load coefficient initial value table T9000, a volume configuration information table T11000, and a resource performance information table T12000 are stored.
- the system management program 3101 is a program for acquiring information on the storage apparatus 1000 and issuing instructions for basic processing to the storage apparatus 1000 such as creation of a parity group 1200 and creation of a pool 1300.
- the task management program 3102 is a program that performs task registration, change, estimation of required time and determination of estimation accuracy in accordance with instructions from the user, and execution of tasks.
- the load coefficient update program 3103 is a program for updating the load coefficient from the actual value of the task that has been executed.
- the control device 3200 receives an instruction from the display computer 4000, for example, and executes a program stored in the main memory 3100.
- the management interface 3300 is connected to the plurality of storage apparatuses 1000 via the management network 6000.
- the management interface 3300 can receive instructions from the control apparatus 3200 and issue instructions to the plurality of storage apparatuses 1000.
- FIG. 5 shows the configuration of the display computer 4000.
- the display computer 4000 includes a main memory 4100, a control device 4200, a management interface 4300, an interface 4400, an interface 4500, a display device 4600, and an input device 4700.
- a display program 4101 is stored in the main memory 4100.
- the display program 4101 is a program for acquiring and operating a screen from the management server 3000. For example, when the management server 3000 is a WEB server, it is a WEB browser program.
- Control device 4200 executes a program stored in main memory 4100.
- the management interface 4300 is connected to the management server 3000 via the management network 6000, issues an instruction to the management server 3000, and receives screen information to be displayed.
- the interface 4400 is connected to the input device 4700.
- the input device 4700 is, for example, a keyboard or a mouse.
- the interface 4500 is connected to the display device 4600.
- the display device 4600 is a liquid crystal display, for example. The user acquires information from the management server 3000 through the display computer 4000 and issues an instruction to the management server 3000.
- FIG. 6 shows a migration task input screen G1000.
- the migration task input screen G1000 includes, for example, a migration source storage device selection column G1001 for selecting a migration source storage device, a migration destination storage device selection column G1002 for selecting a migration destination storage device, and a migration source volume.
- the migration task input screen G1000 is displayed on the display device 4600 of the display computer 4000.
- the user can display the migration task input screen G1000 at any time using the display computer 4000, and can register a new migration task by inputting and determining the migration task setting. Further, for example, the display computer 4000 acquires the registered migration task settings from the task information table T3000 described later and the migration task detailed information table T4000 described later, and displays them on the same screen as the migration task input screen G1000. You can change the migration task settings.
- the task information set here is stored in a task information table T3000 described later and a migration task detailed information table T4000 described later.
- FIG. 7 shows a task information display screen G2000.
- the task information display screen G2000 is displayed on the display device 4600 of the display computer 4000.
- the user can display the task information display screen G2000 at any time using the display computer 4000, and obtain information of registered tasks from, for example, a task information table T3000 described later and a migration task detailed information table T4000 described later. Can be confirmed or edited.
- the displayed task group may be an unexecuted task group or a task group designated by the user.
- the task information display screen G2000 includes, for example, a task list table G2100, a start time change button G2200, and an OK button G2300.
- the task list table G2100 has an entry for each task. Each entry includes a selection check box G2101, a task name G2102, an execution start time G2103, an estimated execution end time G2104, and an estimated accuracy G2105.
- the selection check box G2101 indicates whether or not each row (entry) is selected.
- the display computer 4000 starts execution of the task shown in the selected row, although illustration is omitted.
- a screen for changing the time is opened, the change of the execution start time by the user is accepted, and the change results are stored in, for example, the task information table T3000 and the migration task detailed information table T4000.
- Task name G2102 displays the task name of each task.
- the task name may be anything as long as it is information for the user to uniquely identify, for example, an identifier set at the time of task registration. If the task name displayed in each row of the task name G2102 is pressed, the setting information of each task acquired from the task detailed information table specific to each task type described later is displayed on the screen and is not shown. can do.
- the execution start time G2103 displays the execution start time set by the user at the time of task registration.
- the time display format is not limited to the format shown.
- the estimated execution end time G2104 displays the estimated execution end time of the task estimated by the management server 3000 at the time of task registration or task setting change.
- the execution end time estimation process will be described later.
- the time display format is not limited to the format shown.
- the estimation accuracy G2105 displays the estimation accuracy of the estimated execution end time determined when the management server 3000 estimated the estimated execution end time. The estimation accuracy determination process will be described later.
- the OK button G2300 is a button for ending the display of the task information display screen G2000.
- FIG. 8 shows a load coefficient table T1000.
- the load coefficient table T1000 indicates how many times the processing time required for a single process is, for example, when processing target resources of a plurality of tasks compete or when the processing target resource is loaded. It is a table that holds a reference value.
- This standard value holds a fixed value such as a catalog value as an initial value, but is corrected as needed based on the actual processing time of the task execution result.
- the catalog value is a value built into the management server 3000 from the beginning.
- the management server 3000 does not need to hold an initial value for a resource that is difficult to hold an initial value (for example, a resource created by a user), and in that case, obtains a guide value by other means. Is possible.
- the management server 3000 can acquire a load coefficient as a reference value for the pool 1300 based on the configuration information of the pool 1300 by using a load coefficient initial value table T9000 described later.
- the load coefficient table T1000 has a plurality of entries. Each entry includes a task type T1001, a resource type T1002, a resource identifier T1003, a multiplicity T1004, a load T1005, and a load coefficient T1006.
- Task type T1001 is a type of task.
- the resource type T1002 is the name of the type of resource held by the storage apparatus 1000.
- the resource here is a component of the storage apparatus 1000 and includes, for example, a parity group 1200, a pool 1300, a port 1500, and the like.
- the resource identifier T1003 is an identifier that identifies the resource.
- the multiplicity T1004 is the multiplicity of contention for the resource specified by the resource type T1002 and the resource identifier T1003. For example, when the resource is a pool and three tasks are simultaneously processing the pool, the multiplicity is 3.
- the load T1005 represents the amount of load on the resource specified by the resource type T1002 and the resource identifier T1003.
- the load here is, for example, data reading or data writing from the host computer 2000, and in FIG. 8, the load is expressed as a section in percentage.
- the value of the load T1005, 0-10 indicates that the degree of reading or writing to the resource is between 0 and 10.
- the method for expressing the amount of load is not limited to a percentage.
- the number of reads and writes per unit time IOPS: Input (/ Output per Second) may be used. Values such as the amount and the amount of data read may be used.
- “Saturated resource processing” refers to a case where the processing performance of the components of the storage apparatus 1000 included in the resource has reached a physical limit.
- the resource that becomes the bottleneck of the processing is a resource in which the processing is saturated.
- the load factor T1006 is a guideline value (load factor) k indicating how many times the required time is compared with the required time when the task is executed singly. For example, the required time when a resource is a parity group, the volume creation task of 1 TB for the parity group is executed alone, and the task is executed for one minute, and the processing for the parity group is competing. Is 2 minutes, the value of the load coefficient T1006 is 2.0.
- FIG. 9 shows a pool configuration information table T2000.
- the pool configuration information table T2000 has an entry for each pool 1300 included in the storage apparatus 1000.
- An entry corresponding to one pool 1300 includes a storage device identifier T2001, a pool identifier T2002, a configuration parity group T2003, and a volume identifier T2004.
- the storage device identifier T2001 is an identifier that identifies the storage device 1000 including the pool 1300.
- the pool identifier T2002 is an identifier that identifies the pool 1300.
- the configuration parity group T2003 indicates the number of parity groups 1200 that are generation sources of the pool volume that configures the pool 1300.
- the volume identifier T2004 indicates an identifier that identifies the volume 1400 created from the pool 1300.
- the system management program 3101 acquires and stores information in the pool configuration information table T2000 by issuing an instruction to the storage apparatus 1000. This acquisition process is executed, for example, when a new storage apparatus 1000 is added to the management target of the management server 3000, when the configuration information of the storage apparatus 1000 is changed, or periodically.
- FIG. 10 shows a task information table T3000.
- the task information table T3000 has an entry for each task.
- the entry corresponding to one task includes a task identifier T3001, a task type T3002, a task detailed information identifier T3003, an execution start time T3004, an execution end time T3005, an estimated execution end time T3006, and an estimation system T3007.
- Task identifier T3001 is an identifier that identifies the task.
- the task type T3002 is the type of the task.
- the task detailed information identifier T3003 is an identifier for specifying task detailed information including setting information unique to the task type.
- the management server 3000 holds a task detail information table including setting information unique to each task type for each task type.
- the migration task detailed information table of the migration task is the migration task detailed information table T4000 shown in FIG.
- the execution start time T3004 represents the execution start time of the task.
- the execution end time T3005 represents the execution end time of the task.
- the execution end time T3005 is the time when the task is actually completed, and is different from the estimated execution end time T3006 estimated when the task is registered or when the setting of the task is changed. Accordingly, the execution end time T3005 stores no value before the end of the task.
- the estimated execution end time T3006 holds the estimated execution end time estimated when the task is registered or when the setting of the task is changed.
- the estimation accuracy T3007 holds the estimation accuracy of the estimated execution end time determined at the time of task registration or task setting change.
- the estimation accuracy may indicate the magnitude of time error.
- FIG. 11 shows the migration task detailed information table T4000.
- the migration task detailed information table T4000 which is a task detailed information table for the migration task, holds setting information unique to the migration task among the setting information of the migration task.
- the migration task detailed information table T4000 has an entry for each task detailed information.
- An entry corresponding to one task detailed information includes a task detailed information identifier T4001, a storage identifier T4002, a volume identifier T4003, a storage identifier T4004, and a volume identifier T4005.
- Task detailed information identifier T4001 is an identifier of task detailed information.
- the storage identifier T4002 is an identifier of the storage apparatus 1000 including the migration source volume of migration.
- a volume identifier T4003 is an identifier of a migration source volume for migration.
- the storage identifier T4004 is an identifier of the storage apparatus 1000 including the migration destination volume for migration.
- a volume identifier T4005 is an identifier of a migration destination volume.
- a task detailed information table that stores setting information unique to each task is stored in the management server 3000 for tasks other than the migration task.
- tables that hold setting information unique to each of these tasks will be collectively referred to as task detailed information tables.
- FIG. 12 shows a task progress information table T5000.
- the task progress information table T5000 holds task progress information.
- the task management program 3102 acquires task progress information periodically during execution of the task, for example, every minute, and stores it in the task progress information table T5000.
- the task progress information table T5000 has an entry for each task.
- An entry corresponding to one task includes a task identifier T5001, a time T5002, a progress rate T5003, a storage identifier T5004, a resource type T5005, and a resource identifier T5006.
- Task identifier T5001 is an identifier that identifies the task.
- Time T5002 is the time when the progress information acquisition process is executed.
- the progress rate T5003 is a progress amount of the task at the time of acquisition, which is acquired in a task execution process described later.
- the progress amount of this embodiment is expressed as a progress rate as a percentage where 0 is before task execution and 100 is after task completion.
- the method of expressing the progress amount is not limited to this format. For example, if the target to be processed is a volume, the progress amount may be expressed by the capacity of the volume that has been completed before the progress information is acquired.
- the storage identifier T5004, the resource type T5005, and the resource identifier T5006 are respectively the identifier of the storage apparatus 1000 including the resource whose processing speed is saturated when the progress information is acquired, the type of the resource, and the identifier of the resource. Note that these values are empty when there is no saturated resource when acquiring progress information.
- FIG. 13 shows a similar task type table T6000.
- the similar task type table T6000 shows similar tasks that perform processing similar to a certain task.
- the similar task type table T6000 has a plurality of entries. Each entry includes a task type T6001, a task type T6002, and a priority (priority order) T6003.
- Task type T6001 is a task type that is a key.
- T6002 is a similar task type of the task type T6001.
- the similar task is a task having processing similar to the content of the key task processing.
- the load factor of the similar task of the key task is used as an alternative load factor. It is possible to use.
- a migration task that migrates data from a volume that exists in a storage device to a volume that exists in a different storage device is a remote copy task that replicates the data of a volume that exists in a storage device to a volume that exists in a different storage device And the process is similar. Therefore, the remote copy task is treated as a task similar to the migration task.
- the priority T6003 is the priority of the similar task. When there are a plurality of task types T6002 for a certain task type T6001, the one with the higher priority T6003 is given priority.
- the priority T6003 expresses the priority with an integer in descending order with 1 being the highest. However, the priority is not limited to this, and any expression method that can be ordered may be used.
- the similar task types are remote copy, local copy, and shredding in descending order of priority (in descending order of priority).
- Local copy is similar to migration because it performs copying.
- the local copy priority is lower than the remote copy priority.
- Shredding is similar to migration because it performs sequential access. However, since shredding performs sequential write while migration performs sequential read, the priority of shredding is lower than that of local copy.
- the information of this table is incorporated in the management server 3000 from the beginning, but may be newly added or changed, for example, according to user settings.
- FIG. 14 shows a task temporary information table T7000.
- the required task time estimation information table T7000 is temporarily used when estimating the required task time.
- the task temporary information table T7000 has an entry for each task.
- the entry corresponding to one task includes a task identifier T7011, an execution start time T7002, an estimated execution end time T7003, a progress T7004, and an estimated accuracy T7005.
- Task identifier T7001 is an identifier that identifies the task.
- the execution start time T7002 is the execution start time of the task.
- the estimated execution end time T7003 is an estimated execution end time estimated during the required time estimation process of the task.
- the progress T7004 is a progress amount estimated during the required time estimation process of the task.
- the progress amount of this embodiment is expressed as a progress rate as a percentage where 0 is before task execution and 100 is after task completion.
- the method of expressing the progress amount is not limited to this format. For example, if the target to be processed is a volume, the progress amount may be expressed by the capacity of the volume that has been completed before the progress information is acquired.
- the estimation accuracy T7005 is the estimation accuracy of the estimated task end time estimated during the required time estimation process of the task.
- FIG. 15 shows a resource load information table T8000.
- the resource load information table T8000 holds the degree of load for each time zone on the resources included in the storage apparatus 1000.
- the resource load information table T8000 has a plurality of entries. Each entry includes a storage identifier T8001, a resource type T8002, a resource identifier T8003, a time T8004, and a load T8005.
- Storage identifier T8001 is an identifier of the storage apparatus 1000.
- a resource type T8002 and a resource identifier T8003 are a resource type and a resource identifier included in the storage apparatus 1000, respectively.
- a time T8004 and a load T8005 are a time zone in which the load on the resource is measured and the amount of the load. A method for acquiring the load T8005 will be described later in the task execution process.
- the time zone T8004 of the present embodiment is divided every hour.
- the resource load information table T8000 holds information on the load T8005 for one day.
- the time zone T8004 is not limited to this division method or holding period.
- the resource load information table T8000 may hold the load T8005 every 5 minutes instead of every hour, or may hold information for one week instead of one day.
- the method of expressing the load T8005 in the present embodiment is the same as the method of expressing the load T1005 in the load coefficient table T1000.
- FIG. 16 shows a load coefficient initial value table T9000.
- the load factor initial value table T9000 is used when a load factor used for estimating a required time for a task for processing the pool 1300 does not exist in the load factor table T1000.
- the load coefficient initial value table T9000 has a plurality of entries. Each entry includes a configuration parity group number T9001, a multiplicity T9002, and a load coefficient T9003.
- the number of configured parity groups T9001 indicates the number of parity groups 1200 that are generation sources of pool volumes that constitute one pool 1300.
- the multiplicity T9002 is the multiplicity of contention for processing for the pool.
- the load factor T9003 is an estimated value (load factor k) indicating how many times the required time for a single process, that is, the time required for a task when processing for resources does not compete.
- the information of this table is incorporated in the management server 3000 from the beginning, but may be newly added or changed, for example, according to user settings.
- FIG. 17 shows the volume configuration information table T11000.
- the volume configuration information table T11000 has an entry for each volume 1400.
- An entry corresponding to one volume 1400 includes a storage identifier T11001, a volume identifier T11002, and a volume capacity T11003.
- Storage identifier T11001 is an identifier that identifies the storage device in which the virtual volume exists.
- the volume identifier T11002 is an identifier that identifies the virtual volume.
- the volume capacity T11003 is the capacity of the virtual volume.
- FIG. 18 shows a resource performance information table T12000.
- the resource performance information table T12000 has an entry for each resource.
- An entry corresponding to one resource includes a storage identifier T12001, a resource type T12002, a resource identifier T12003, a reading speed T12004, and a writing speed T12005.
- the storage identifier T12001 is an identifier that identifies the storage device in which the resource exists.
- the resource type T12002 is the name of the resource type.
- the resource identifier T12003 is an identifier that identifies the resource.
- the reading speed T12004 is the reading speed of the resource.
- the writing speed T12005 is the writing speed of the resource.
- the resource performance information table T12000 may indicate the type of storage device, the rotational speed of the HDD, and the like for determining the resource processing speed instead of the reading speed T12004 and the writing speed T12005.
- the contents of the volume configuration information table T11000 and the resource performance information table T12000 are acquired from the storage apparatus 1000 by the system management program 3101 periodically or when the configuration information of the storage apparatus 1000 changes, and stored in the management server 3000.
- a task registration process a task estimated required time display process, a task execution process, and a load coefficient update process in this embodiment will be described with reference to flowcharts.
- the flowchart shown below shows an outline of the processing and may differ from an actual computer program.
- the management server 3000 is mainly described as an operation subject.
- the control device 3200 in the management server 3000 reads and executes a computer program such as the system management program 3101, the task management program 3102, or the load coefficient update program 3103 stored in the main memory 3100, thereby executing predetermined processing. Is realized.
- Task registration processing includes task duration estimation processing and estimated duration estimation accuracy determination processing. Note that the task registration processing here can be realized not only when a new task is registered, but also when the setting of a task already registered is changed. This process is realized by the task management program 3102.
- the task registered in the registration process is executed when an instruction to perform a process necessary for executing the task is issued from the management server 3000 to the storage apparatus 1000 by a task execution process described later.
- FIG. 19 shows task registration processing
- the management server 3000 receives task setting information for executing migration in response to an instruction from a user such as a system administrator.
- the task setting information is input when the user inputs information necessary for generating a migration task on the migration task input screen G1000.
- the management server 3000 displays a screen for inputting information necessary for task setting even in the case of a task other than the migration task, and the same is achieved by the user performing input on the screen. Can be performed.
- the management server 3000 stores the task setting information input in S100 in the task information table T3000 and the migration task detailed information table T4000. In the case of a task other than the migration task, the management server 3000 stores task setting information in the task information table T3000 and the task detailed information table unique to the task.
- the management server 3000 performs task required time estimation processing for estimating the end time of the task and determining its estimation accuracy based on the input task setting information. Details of the task end time estimation process and the estimation accuracy determination process will be described in the task required time estimation process described later.
- the management server 3000 can calculate the time required for the task and its estimated accuracy in accordance with the input of the task setting information by the user.
- FIG. 20 shows task required time estimation processing.
- the management server 3000 estimates the execution end time for the new task input in S100 of the task registration process described above. In addition, the management server 3000 applies to a task whose estimated execution end time changes due to the influence of a new task among the tasks already registered, for example, because the multiplicity of processing for the processing target resource changes. However, the execution end time is estimated again and corrected.
- the management server 3000 calculates the progress rate of the task being executed in the phase in consideration of the multiplicity and load on the resource for each phase from the execution start time of the new task. By repeating this, the estimated end time of each task is estimated.
- the management server 3000 substitutes the execution start time set for the newly input task into the variable Tx.
- the management server 3000 refers to the task information table T3000, acquires a task group whose estimated execution end time may change, and sets it as R1.
- the task group in which the estimated execution end time may change is a task group in which the estimated execution end time T3006 is later than the time Tx.
- R1 also includes a task to be newly input.
- the management server 3000 stores information on the task group R1 at the time Tx in the task temporary information table T7000. Specifically, the management server 3000 stores the values of the task identifier T3001 and the execution start time T3004 acquired from the task information table T3000 in the task identifier T7001 and the execution start time T7002, respectively. The management server 3000 stores the input information for a task to be newly input in a task identifier T7001 and an execution start time T7002.
- the values stored in the progress T7004 and the estimation accuracy T7005 for the task whose execution start time is the same as or later than Tx are 0% and no value, respectively.
- the management server 3000 calculates and stores a value at the time Tx for each task whose execution start time is earlier than Tx, that is, is estimated to be executing at the time Tx.
- the management server 3000 can obtain the progress T7004 of the task being executed at the time Tx by dividing the time from the execution start time to Tx into a plurality of phases and adding the progress amount in each phase.
- the method of dividing the time from the execution start time to Tx into phases is the same as S900 in the load coefficient update process described later.
- the management server 3000 divides the period from the execution start time to the execution end time into a plurality of phases, but this can be implemented by replacing the execution end time with Tx.
- the calculation of the progress amount in each phase can be performed by the process described later in S207.
- the management server 3000 stores the value determined by the estimation accuracy determination processing S306 described later based on the information of the load coefficient k used in the calculation of the progress amount in each phase described above.
- the management server 3000 repeats the processes of S203 to S207. Note that the end of the repetition is performed in the branch process of S204.
- the management server 3000 acquires the task group (G1) being executed at the time Tx from the task group R1.
- the task group being executed at the time point Tx is a task group whose task execution start time is the same as or before the time Tx and whose task execution end time is later than the time Tx. is there.
- the management server 3000 assumes that the multiplicity of processing for the resource does not change and the load on the processing target resource of the task does not change for the task included in the task group G1 from time Tx.
- a specific condition task required time estimation process for estimating the execution end time is performed. Details of this processing will be described in the specific condition task required time estimation processing described later.
- the management server 3000 performs a phase end time determination process for determining the end time of the target phase starting from the time Tx. Further, the management server 3000 substitutes the determined phase end time into the time variable Tx. Details of the phase end time determination process will be described later.
- the management server 3000 reflects the task information included in the task group G1 at the time Tx updated in S206 in the task temporary information table T7000. Specifically, for each task, the management server 3000 includes the progress amount of each task in the target phase for which the phase end time is determined in S205 with respect to the progress T7004 among the information included in the task temporary information table T7000. Is calculated and added to the current progress T7004. Specifically, the management server 3000 first acquires the required time T1 when each task is executed in the same manner as S301 in the specific condition task required time estimation process described later, and then performs S302 to S305. Similarly, the load coefficient k is acquired.
- the management server 3000 uses this T1 and the load coefficient k to multiply the required time T1 in a single process of each task by the load coefficient k, and this is multiplied by the execution time of the target phase, that is, before being updated in S206.
- the management server 3000 reflects the information in the task temporary information table T7000 related to each task included in the task group R1 updated in the processes of S200 to S207 in the task information table T3000. Specifically, the management server 3000 updates the information of the estimated execution end time T3006 and the estimated accuracy T3007 among the information included in the task information table T3000 to the contents of the same task identifier in the corresponding task temporary information table T7000. To do. (S209) The management server 3000 deletes the information on the task group R1 registered in this process, which is included in the temporary task information table T7000.
- the management server 3000 divides the execution period of the input task into a plurality of phases, calculates the progress amount in consideration of the influence of other tasks in each phase, The time required for the input task can be estimated from the progress amount. By selecting a load coefficient for each phase and for each task and estimating the required time using the load coefficient, it is possible to improve the accuracy of estimating the progress of the task group.
- FIG. 21 shows specific condition task required time estimation processing.
- the specific condition task required time estimation process estimates the required time of a task when it is assumed that the multiplicity of processing for the resource is constant and the load on the resource is constant from a certain time Tx. This process is called from, for example, the task required time estimation process S205 described above.
- the inputs to the specific condition task required time estimation process are the time Tx and the task group G1 of the required time estimation target.
- information in the task temporary information table T7000 corresponding to each task included in the task group G1, more specifically, the progress T7004 and the estimation accuracy T7005 are information at the time Tx. Needs to be updated.
- the management server 3000 performs the processing of S301 to S309 for each task included in the task group G1 given as input.
- the target task in the processing of S301 to S309 is task A in the following description.
- the management server 3000 calculates the required time when task A is processed singly and sets it as T1.
- the required time calculation method for a single process varies depending on the task type.
- the main processes in the migration task targeted in this embodiment are the data reading process from the migration source volume, the transfer process between the ports connecting the migration source volume and the migration destination volume, and the data writing to the migration destination volume. These three processes are executed in parallel. Therefore, the management server 3000 calculates the time required for each process from the processing speed of the target resource and the processing target capacity for these three processes, and obtains the required time for the task by taking the maximum value. Can do.
- the transfer rate of the port Q is 5 GB / second
- the write speed of the pool R is 2 GB / second
- the management server 3000 can acquire the volume capacity from the volume configuration information table T11000. Further, the management server 3000 can acquire processing speeds such as a reading speed and a writing speed from the resource performance information table T12000.
- the management server 3000 acquires a resource R that is expected to saturate the processing speed in the execution among the processing target resources of the task A.
- the resource R whose processing speed is saturated is a resource that becomes a bottleneck in task execution.
- the resource R whose processing speed is saturated can be acquired from the storage apparatus 1000, for example.
- the data read processing for the resource that is the generation source of the migration source volume, that is, the pool 1300 and the parity group 1200 is usually a bottleneck. Therefore, in the present embodiment, processing described later will be described on the assumption that the resource R is the pool 1300 or the parity group 1200 from which the migration source volume is generated. If the resource R whose processing speed is saturated cannot be identified, the estimated execution end time is estimated for each processing target resource as described later in S303 to S308, and the slowest one is estimated. By setting the time, it is possible to calculate the estimated execution end time of the task.
- the management server 3000 acquires the multiplicity of processing (the number of competing tasks) M for the resource R. Specifically, the management server 3000 refers to a task detailed information table specific to each task type for each task of the task group G1, for example, a migration task detailed information table T4000 in the case of a migration task, The processing target resource group Rs of the group G1 is acquired, and the number of R included in Rs is set as the multiplicity M.
- the management server 3000 refers to the resource load information table T8000 and acquires the load information B of the resource R at the time Tx.
- the management server 3000 acquires the load coefficient k based on the load information B for the resource R at the task A, resource R, and the resource R at the time Tx, and the load information B for the resource R at the time Tx. Execute the process. Details of this process will be described in a load coefficient acquisition process described later.
- the management server 3000 executes an estimation accuracy determination process for determining the estimation accuracy of the estimated required time based on the load coefficient acquisition method acquired in S305. Details of this process will be described in the estimation accuracy determination process described later.
- the management server 3000 refers to the task temporary information table T7000 and acquires the progress information of the task A.
- This progress information is the progress rate up to the time point Tx and is expressed as a percentage. Let X be the obtained progress rate.
- the management server 3000 calculates the estimated execution end time. Specifically, since the processing for the progress rate X (X is a percentage) already acquired in S307 at the time of Tx has been completed, the management server 3000 performs processing at the required time T1 when the task is executed singly. By multiplying the ratio of uncompleted portion of (100 ⁇ X) / 100, the time required when the task is executed and completed is obtained. The management server 3000 can obtain the required time after Tx of the task A by multiplying the required time by the load coefficient k acquired in S305. The management server 3000 can obtain the estimated execution end time by adding Tx to this required time.
- the management server 3000 updates the value of the estimated execution end time T7003 of the task temporary information table T7000 to the value of the estimated execution end time obtained in S308. Further, the management server 3000 updates the value of the estimation accuracy T7005 using the estimation accuracy obtained in S306.
- the estimation accuracy is updated only when the estimation accuracy obtained in S306 is lower than the current value. For example, when the current estimation accuracy T7005 is low and the estimation accuracy obtained in S306 is high, the management server 3000 does not update the value of the estimation accuracy T7005. Conversely, when the estimation accuracy T7005 is high and the estimation accuracy obtained in S306 is medium, the management server 3000 updates the value of the estimation accuracy T7005 to medium.
- the management server 3000 can estimate the required time for executing a task singly based on the resource processing speed and the volume capacity. Furthermore, the management server 3000 can estimate the required time including the influence of other tasks executed simultaneously by multiplying the calculated required time by the load coefficient corresponding to the state in the phase.
- FIG. 22 shows a load coefficient acquisition process
- the load factor acquisition process takes as input the type of task for estimating the required time, information about the resource used by that task, the multiplicity of processing for that resource, and load information for that resource.
- the load coefficient (the coefficient for estimating the required time) is acquired.
- the load coefficient acquisition process when there is no load coefficient k corresponding to the task type for which the required time is estimated, the load coefficient k corresponding to the similar task type of the task type is acquired, and the load coefficient corresponding to the similar task type is acquired.
- the load coefficient k prepared as an initial value is acquired.
- the management server 3000 refers to the load coefficient table T1000, and matches the conditions of the task type for estimating the required time, resource information, multiplicity of processing for the resource, and load information for the resource.
- the load coefficient k to be acquired is acquired. In some cases, the load coefficient k matching the condition does not exist in the load coefficient table T1000.
- the management server 3000 When the load coefficient k can be acquired in S400, the management server 3000 outputs that the load coefficient k and the load coefficient k of the same task type as the input task are acquired, and ends this process. If the load coefficient k cannot be obtained in S400, that is, if the load coefficient k that matches the input does not exist in the load coefficient table T1000, the management server 3000 proceeds to S402.
- the management server 3000 refers to the similar task type table T6000 and acquires a similar task type for the task type given as an input. If there are a plurality of similar task types that meet the conditions, the management server 3000 preferentially acquires a similar task type having a high priority T6003.
- the management server 3000 refers to the load coefficient table T1000, the similar task type acquired in S402, the resource information given as input, the multiplicity of processing for the resource, and the load for the resource
- the load coefficient k that matches the condition with the information is acquired. Note that there may be no load coefficient k that matches the condition.
- the management server 3000 If the management server 3000 can acquire the load coefficient k in S403, the management server 3000 outputs the fact that the load coefficient k and the load coefficient k have been acquired according to the similar task type of the input task, and ends this processing.
- the load coefficient k cannot be obtained in S403, that is, the management server 3000, that is, the load coefficient k that matches the similar task, the resource information given as input, the multiplicity of processing for the resource, and the load information for the resource. Does not exist in the load coefficient table T1000, the process proceeds to S405.
- the management server 3000 acquires a default load coefficient k from the resource information, multiplicity, and resource load information given as input, outputs the load coefficient k, and ends this processing. To do.
- the method for obtaining the default load coefficient k differs depending on the resource. In this embodiment, a case where the resource is a pool will be described.
- the default load coefficient k is given in the form of a load coefficient initial value table T9000.
- the load coefficient k for a certain pool is given to the number of constituent parity groups T9001 of the pool and the multiplicity T9002 of processing using the pool.
- the number of parity groups constituting the pool can be obtained by referring to the pool configuration information table T2000.
- the management server 3000 has a task execution state of the same task type that matches the execution state of the input task in the past task information.
- the load coefficient corresponding to the state can be acquired.
- the management server 3000 has a state in which a task of the same task type is not being executed, and there is a state of execution of a task of a similar task type that matches the state of execution of the input task. Can be obtained. Further, by assigning priorities to a plurality of similar task types in advance, it is possible to select the similar task type closest to the input task. Further, since the load coefficient condition includes multiplicity, the number of tasks using the same resource can be reflected in the load coefficient and the required time.
- FIG. 23 shows an estimation accuracy determination process.
- the estimation accuracy determination process determines the estimation accuracy of the required time estimated by the specific condition task required time estimation process described above.
- the load coefficient k acquisition method in the load coefficient acquisition process described above is used as an input. More specifically, the input is the result of the branch process in S401 of the load coefficient acquisition process, that is, whether or not the load coefficient specified by the same task type as the task for estimating the required time has been acquired, and the load coefficient acquisition process S404, that is, whether or not the load coefficient specified by the similar task type of the task whose required time is estimated has been acquired.
- step S500 The management server 3000 determines whether or not the load coefficient specified by the same task type as the task for estimating the required time has been acquired in the load coefficient acquisition process, and the load coefficient of the same task type is acquired. If YES in step S501, the process advances to step S502.
- the management server 3000 determines that the estimation accuracy is high accuracy, and ends this flow.
- the management server 3000 determines whether or not the load coefficient specified by the similar task type of the task whose required time is estimated is acquired, and the load coefficient of the similar task type is acquired If yes, go to S503, otherwise go to S504.
- the management server 3000 determines that the estimation accuracy is medium accuracy, and ends this flow.
- the management server 3000 determines that the estimation accuracy is low accuracy, and ends this flow.
- the management server 3000 determines whether the load coefficient of the task for estimating the required time is the load coefficient of the same task type, the load coefficient of the similar task type, or another load coefficient. The estimation accuracy can be determined.
- FIG. 24 shows the phase end time determination process.
- the phase end time determination process determines the phase end time.
- the time Tx, the task group G1 being executed at the time Tx, and the task group R1 whose estimated end time of the task may change due to the input of a new task are input.
- the phase end time is the earliest time among the times when the multiplicity of processing for a resource changes after Tx, that is, the time when a task starts or ends and the earliest time when load information for a task processing target resource changes. It is an early time.
- the management server 3000 refers to the task temporary information table T7000, acquires the earliest estimated execution end time among the tasks included in the task group G1, and sets it as Ta.
- the management server 3000 refers to the task information table T3000, acquires the earliest task start time after Tx among the tasks included in the task group R1, and sets it as Tb.
- the management server 3000 refers to a task detailed information table specific to the task type for each task included in the task group G1, for example, a migration task detailed information table T4000 in the case of a migration task, Get.
- the management server 3000 refers to the resource load information table T8000 for all resources included in the resource group obtained in this way, acquires the earliest time among times when the load on the resource changes after Tx, Change time. Furthermore, the management server 3000 sets Tc as the earliest time among the load change times obtained for each resource.
- the management server 3000 sets the earliest time among the time Ta obtained in S601, the time Tb obtained in S602, and the time Tc obtained in S603 as the phase end time.
- the management server 3000 can update the phase end time based on the estimated execution end time of each task.
- FIG. 25 shows a task estimation required time display process.
- This process presents information on already registered tasks, particularly the estimated accuracy of the estimated execution end time of the task, to the user in response to an instruction from a user such as a system administrator. Further, this process is not executed only by an instruction from the user, and may be executed automatically after completion of the task registration process described above, for example.
- the management server 3000 refers to the task information table T3000, and acquires information on a task group that has already been registered.
- the task group acquired at this time may be all the registered tasks or may be an unexecuted task group, and differs depending on the instruction from the user.
- the management server 3000 causes the display computer 4000 to display a task information display screen G2000 including information on the task group acquired in S700.
- the user can know the task estimation execution end time and its estimation accuracy.
- FIG. 26 shows task execution processing
- the task management program 3102 of the management server 3000 periodically acquires information in the task information table T3000, and if the tasks included in the task information table T3000 are not executed and the execution start time T3004 has reached the current time, The task is selected as an execution target task, and the storage apparatus 1000 is caused to execute the execution target task.
- the detailed flow is as follows.
- the management server 3000 acquires information on the execution target task given as an input from the task information table T3000. In addition, the management server 3000 acquires detailed setting information of the execution target task from the task-specific task detailed information table. When the execution target task is a migration task, this task detailed information table is a migration task detailed information table T4000.
- the management server 3000 selects the storage device 1000 indicated by the setting information as the target storage device according to the setting information of the execution target task acquired in S800, and transmits an execution command for the execution target task to the target storage device. To do.
- the management server 3000 periodically executes the processing of S803 to S804 until the progress information acquired in S803 described later reaches 100%, that is, until the execution target task is completed.
- the management server 3000 acquires, from the storage device, the progress information PR of the execution target task, the resource P whose processing speed is saturated, and the load information B for the resource P.
- the management server 3000 stores the information acquired in S803 in the task progress information table T5000.
- the management server 3000 can cause the storage device to execute a task and acquire information on the task being executed and the resource.
- FIG. 27 shows the load coefficient update process
- the load factor update process updates the load factor from the actual measurement time of the task actually executed.
- the load coefficient update program 3103 of the management server 3000 obtains information on one task that has been completed by referring to the task information table T3000 periodically or triggered by the completion of the task, and information on the obtained task
- the load coefficient update process is executed with the above as an input. The detailed flow is as follows.
- the management server 3000 acquires information on the task A that has been executed as an input, refers to the task information table T3000, and acquires information on the task group G in which the execution time overlaps with the task A.
- the management server 3000 (1) that the execution end time of the task B is later than the execution start time of the task A, and (2) the execution start time of the task B is that of the task A.
- the management server 3000 processes the time interval from the execution start time to the execution end time of the task A for each resource that is the processing target of the task group among the task group G1 that was executed in the time interval.
- the management server 3000 can determine the phase by acquiring the execution start time T3004 and the execution end time T3005 included in the task information table T3000.
- the management server 3000 can determine the time when the load on the resource changes by referring to the task progress information table T5000 in which the load information on the resource for each fixed time is stored by the task execution process described above.
- the above-mentioned task A is executed from 0 o'clock to 3 o'clock on a certain day
- a certain task B is executed from 1 o'clock to 4 o'clock on the same day
- a certain task C is executed from 2 o'clock to 5 o'clock on the same day
- Tasks other than A, B, and C are not executed between 0 o'clock and 5 o'clock
- the load on each resource to be processed by task A, task B, and task C from 0 o'clock to 5 o'clock on the same day is constant.
- the management server 3000 repeatedly applies the processing of S903 to S907 to the phase group acquired in S901 in order from the earliest phase start time.
- the phase being processed in S903 to S907 is referred to as PH.
- the phase PH is represented by information regarding the phase start time and the phase end time.
- the management server 3000 refers to the task progress information table T5000 and refers to the task progress amount X during the phase PH, the resource R whose processing has been saturated during the phase PH, and the load information for the resource R during the phase PH. Get information with B.
- the management server 3000 calculates the phase PH from the progress amount at the phase end time of the phase PH. By reducing the progress amount at the phase start time, the progress amount during the phase PH can be acquired.
- the management server 3000 is necessary when the progress amount in the phase PH acquired in S903 is executed in a single task A, that is, when processing for the resource does not compete and there is no load on the resource.
- the required time is calculated and set as T1.
- the management server 3000 acquires the multiplicity of processing during the phase PH for the resource R whose processing was saturated during the phase PH.
- the management server 3000 refers to the task information table T3000 and acquires a task group whose execution time overlaps with the phase PH.
- the management server 3000 can acquire a task group whose execution time overlaps with the phase PH by the method shown in S900.
- the management server 3000 refers to a task detailed information table specific to each task, for example, a migration task detailed information table T4000 in the case of a migration task, with respect to each task of the acquired task group.
- the number of resources R included in the resource group obtained by the above processing is the multiplicity M of the processing of the resources whose processing has been saturated in the phase PH.
- the management server 3000 updates the value of the load coefficient table T1000 using the load coefficient knew calculated from the actual measurement time of the task A obtained in S905.
- the management server 3000 adds a new entry.
- the update target entry includes the task type of task A, the resource type and resource identifier of the resource R acquired in S903, the multiplicity M of processing for the resource R acquired in S906, and S903 in the load coefficient table T1000.
- the load information B for the resource R acquired in step 1 are all matching entries.
- the update method of the load coefficient k may be simply overwritten with the load coefficient knew, or may be updated with an average value of the load coefficient k and the load coefficient knew already existing in T1000, Other methods using the coefficient knee may be used.
- the management server 3000 divides the execution period of the completed task into phases, calculates the load coefficient for each phase, and updates the load coefficient table T1000, thereby performing the same process thereafter. It is possible to improve the accuracy of estimation of the time required for a similar task in the above state.
- the management server 3000 may periodically execute the load coefficient update process, or execute a measurement task and execute the load coefficient update process in a time zone when the storage apparatus 1000 is not executing a task.
- the load coefficient may be determined based on the catalog value.
- the management server 3000 When the management server 3000 is connected to another computer system or another management server via a network, the management server 3000 calculates a load coefficient from information on tasks executed by storage devices other than the storage devices 1000A and 1000B. Alternatively, the load coefficient information calculated by another management server may be included in the load coefficient table T1000.
- the time required for the migration task is estimated. In this case, it can be estimated with high accuracy, and the efficiency of management operations of the storage administrator can be improved.
- the user can accurately plan the task execution period.
- the configuration information may include any of a pool configuration information table T2000, a volume configuration information table T11000, and a resource performance information table T12000.
- the measurement information may include any one of a load coefficient table T1000, a similar task type table T6000, a resource load information table T8000, and a load coefficient initial value table T9000.
- the schedule information may include any one of a task information table T3000, a migration task detailed information table T4000, a task progress information table T5000, and a task temporary information table T7000.
- the state may be one entry in the load coefficient table T1000, or may include any of task type, resource type, resource identifier, multiplicity, load, and load coefficient.
- the state closest to the state of the migration task may be an entry indicating migration as a task type in the load coefficient table T1000, or may be an entry indicating a similar task type of migration as a task type.
- the load may include multiplicity and load information.
- the load estimation information may include a load coefficient.
- the display device may include a display computer.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
過去のタスクの測定情報が不足する場合の、タスクの所要時間の推定の精度を高める。第一ストレージ装置により実行される過去のタスクと、過去のタスクにより用いられる物理リソースとの状態を示す測定情報を記憶し、第一ストレージ装置により実行される複数のタスクであって、第一ストレージ装置内の第一ボリュームから第二ストレージ装置内の第二ボリュームへのマイグレーションタスクを含む複数のタスクの予定を示す予定情報を記憶し、予定情報に基づいて、測定情報から、第一ボリュームに割り当てられる特定物理リソースを用いるタスクの実行中の状態であって、マイグレーションタスクの実行中の状態に最も近い特定状態を選択し、特定状態と第一ボリュームの容量とに基づいて、マイグレーションタスクの所要時間を推定する。
Description
本発明は、ストレージ装置に関する。
近年、企業等で使用される計算機システムの保持する情報量や、計算機システムに含まれる計算機及びストレージ装置の数は、飛躍的に増大している。
計算機やストレージ装置の数が大規模になると、管理対象の監視や設定を行うための対象の数が増加するため、管理のために多くの管理操作が必要となる。管理者は通常、そのような多くの管理操作を適宜実施するのではなく、管理操作、実行開始時刻、実行終了時刻を、プランまたはタスクとして管理計算機に登録しておく。そして、管理計算機は、実行開始時刻になった時点で登録されたタスクの操作を実行させることで、管理対象の管理を行う。複数のタスクを登録する場合は、各タスクの実行時間や、管理対象が競合することがあるため、適切にタスクを実行するためには、各タスクの影響を考慮してタスク管理を行う必要がある。
例えば特許文献1では、「ストレージ操作が登録された複数のタスクを非同期で実行する場合に、タスクの競合を考慮した実行時間を推定することにより、ストレージ管理者の管理業務の効率を向上させる」ことを課題とし、解決手段として「ストレージ装置は、ホスト計算機によって読み書きされるデータを格納する記憶装置を備え、記憶装置の記憶領域を1つ以上のボリュームとして、ホスト計算機に提供し、ストレージ管理計算機は、ストレージ装置への操作処理内容、及び処理の開始予定時間及び終了予定時間を含むタスク情報を記憶する第1メモリを備え、第1メモリに第1のタスク情報を記憶させる場合に、第1メモリに記憶された第2のタスク情報と、第1のタスク情報の、処理に利用するリソースが同じ場合は、第1及び第2のタスク情報の前記処理が重なる時間に基づいて、第1のタスク情報及び第2のタスク情報の実行の所要時間を計算する」ことを開示している。
タスクを実行した際の実績値を用いてタスクの所要時間を計算することにより、所要時間の精度を高めることができる。しかしながら、例えば、古いストレージ装置から新しいストレージ装置へデータを移行するマイグレーションタスクにおいては、新しいストレージ装置であるために、タスクの実績値が存在せず、タスクの所要時間の推定精度が低くなってしまう場合がある。他にも、古いストレージ装置内のマイグレーション対象ボリュームを構成する物理記憶装置に対して、データアクセスによって実績値の状態より高い負荷がかかる場合にも、所要時間の推定精度が低くなってしまう。
上記課題を解決するために、本発明の一態様であるストレージ装置管理方法は、第一ストレージ装置内の物理リソースと、前記第一ストレージ装置内のボリュームの容量とを示す構成情報を記憶し、前記第一ストレージ装置により実行される過去のタスクと、前記過去のタスクにより用いられる前記物理リソースとの状態を示す測定情報を記憶し、前記第一ストレージ装置により実行される複数のタスクであって、前記第一ストレージ装置内の第一ボリュームから第二ストレージ装置内の第二ボリュームへのマイグレーションタスクを含む前記複数のタスクの予定を示す予定情報を記憶し、前記予定情報に基づいて、前記測定情報から、前記第一ボリュームに割り当てられる特定物理リソースを用いるタスクの実行中の状態であって、前記マイグレーションタスクの実行中の状態に最も近い特定状態を選択し、前記特定状態と前記第一ボリュームの容量とに基づいて、前記マイグレーションタスクの所要時間を推定する、ことを備える。
過去のタスクの測定情報が不足する場合の、タスクの所要時間の推定の精度を高めることができる。
以下、図面に基づいて本発明の実施形態を説明する。図面では、機能的に同じ要素は同じ番号で表示される場合もある。なお、図面は本発明の原理に則った具体的な実施形態及び実施例を示しているが、これらは本発明の理解のための一例であって、本発明を限定的に解釈するために用いられるものではない。
本実施形態では、当業者が本発明を実施するのに十分詳細にその説明がなされているが、他の実装・形態も可能で、本発明の技術的思想の範囲と精神を逸脱することなく構成及び構造の変更や多様な要素の置き換えが可能であることを理解する必要がある。従って、以降の記述をこれに限定して解釈してはならない。
更に、本発明の実施形態は、後述されるように、汎用コンピュータ上で稼動するソフトウェアで実装してもよいし専用ハードウェア又はソフトウェアとハードウェアの組み合わせで実装してもよい。
なお、以後の説明では「テーブル」形式によって本実施形態の各情報について説明するが、これら情報は必ずしもテーブルによるデータ構造で表現されていなくてもよく、リスト、DB、キュー等のデータ構造やそれ以外で表現されていてもよい。そのため、データ構造に依存しないことを示すために「テーブル」、「リスト」、「DB」、「キュー」等について単に「情報」と称することがある。また、各情報の内容を説明する際に、「識別情報」、「識別子」、「名」、「名前」、「ID」という表現を用いることが可能であり、これらについてはお互いに置換が可能である。
以下では「プログラム」を主語(動作主体)として本実施形態における各処理について説明を行うが、プログラムは制御装置(プロセッサ)によって実行されることで定められた処理をメモリ及び通信ポート(通信制御装置)を用いながら行うため、プロセッサを主語とした説明としてもよい。また、プログラムを主語として開示された処理は管理サーバ等の計算機、情報処理装置が行う処理としてもよい。プログラムの一部又は全ては専用ハードウェアで実現してもよく、また、モジュール化されていてもよい。各種プログラムは、プログラム配布サーバやコンピュータ読み取り可能な記憶メディアによって各計算機にインストールされてもよい。
なお、管理計算機は入出力デバイスを有する。入出力デバイスの例としてはディスプレイとキーボードとポインタデバイスが考えられるが、これ以外のデバイスであってもよい。また、入出力デバイスの代替としてシリアルインタフェースやイーサーネットインタフェースを入出力デバイスとし、当該インタフェースにディスプレイ又はキーボード又はポインタデバイスを有する表示用計算機を接続し、表示用情報を表示用計算機に送信したり、入力用情報を表示用計算機から受信することで、表示用計算機で表示を行ったり、入力を受け付けることで入出力デバイスでの入力及び表示を代替してもよい。
以後、計算機システムを管理し、本実施形態の表示用情報を表示する一つ以上の計算機の集合を管理システムと呼ぶことがある。管理計算機が表示用情報を表示する場合は管理計算機が管理システムである。また、管理計算機(管理サーバ)と表示用計算機の組み合わせも管理システムである。また、管理処理の高速化や高信頼化のために複数の計算機で管理計算機と同等の処理を実現してもよく、この場合は当該複数の計算機(表示を表示用計算機が行う場合は表示用計算機も含め)が管理システムである。
本実施形態では、以下に述べるように、ストレージ装置の管理サーバは、タスクの所要時間を推定する。このとき、所要時間の推定には同種のタスクの実績値を用いて推定を行い、さらに同種のタスクの実績値が存在しない場合には、リソース(物理リソース)に対する処理傾向が類似する類似タスクの実績値を用いて推定する。また、本実施形態の管理サーバは、推定した所要時間の推定精度をユーザ(管理者)に提示する。また、本実施形態の管理サーバは、同時に複数の処理が行われるリソースに対する処理の多重度を考慮して所要時間を推定する。
本実施例の管理サーバは、タスクの実行に要する時間(タスク所要時間)を、タスクの処理対象リソースに対する処理の競合による影響と、処理対象リソースに対するホスト計算機からのデータアクセスによる負荷の影響とを、加味して推定する。ここでいうリソースとは、ストレージ装置が保持しており、かつ処理が競合する可能性のある構成要素を指す。
具体的には、管理サーバは、まずタスクの処理対象リソースが競合せず、かつタスクの処理対象リソースに負荷がかかっていない場合の所要時間を推定し、さらにリソースの競合の多重度に、リソースに対する負荷の程度によって特定される負荷係数を乗ずることによって、タスクの所要時間を推定する。
ここで負荷係数は、タスクを単一で処理した場合、すなわち処理対象リソースが競合せずかつ負荷がかかっていない場合に要する処理時間の何倍になるかを示す目安値であり、特定の状態における処理対象リソースの負荷の大きさを示す値である。
本実施例では、あるタスクの実行中で、処理対象リソースRに対する処理の多重度が変化せず、かつリソースRに対する負荷の程度が一定である時間区間を「フェーズ」と呼ぶ。フェーズは、実行開始時刻と実行終了時刻によって定義される時間区間である。1つのフェーズに1つの負荷係数が対応する。管理サーバは、あるタスクの所要時間を推定する際、実行開始時刻から実行終了時刻までの時間区間をフェーズに分割して、フェーズごとに所要時間を推定し、それらの和をとることでタスク全体の所要時間を推定する。
また本実施例の管理サーバは、タスクの所要時間の推定に際して、推定精度を判定し、ユーザに提示する。本実施例の推定精度は、高・中・低の3値で表現されることとする。推定精度の表現方法はこの形式に限られるわけではない。例えば推定精度は、高、低の2値でも良いし、あるいは精度の誤差を時間や百分率によって表現されても良いし、あるいは精度やその精度が算出された理由や対処方法を含む文字列によって表現されても良い。
本実施例では、古いストレージ装置(旧ストレージ装置)から新しいストレージ装置(新ストレージ装置)へボリュームをマイグレーション(ボリュームマイグレーション)するマイグレーションタスクを例として説明する。
図1は、計算機システムの構成を示す。
本実施例の計算機システムは、複数のストレージ装置1000と、ホスト計算機2000と、管理サーバ3000と、表示用計算機4000と、データネットワーク5000と、管理用ネットワーク6000を有する。複数のストレージ装置1000とホスト計算機2000が、データネットワーク5000で互いに接続される。
本実施例のデータネットワーク5000はSAN(Storage Area Network)であるが、IP(Internet Protocol)ネットワークであっても、あるいはこれら以外のデータ通信用ネットワークでも良い。
複数のストレージ装置1000とホスト計算機2000は、管理ネットワーク6000を介して管理サーバ3000と接続される。本実施例の管理ネットワーク6000はIPネットワークであるが、SANであっても、あるいはこれら以外のデータ通信用ネットワークであっても良い。あるいはデータネットワーク5000と管理ネットワーク6000が同一ネットワークであっても良い。
表示用計算機4000は管理ネットワーク6000によって管理サーバ3000と接続される。表示用計算機4000と管理サーバ3000を接続するネットワークは、管理ネットワーク6000と異なるネットワークでも良い。また、表示用計算機4000は管理サーバ3000と同一であっても良い。なお、説明の都合上、図1では、ストレージ装置1000を2台、ホスト計算機2000を1台、管理サーバ3000を1台、表示用計算機4000を1台としたが、本実施形態ではこれらの数は問わない。
図2は、ストレージ装置1000の論理的な構成を示す。
ストレージ装置1000は少なくとも1つの物理記憶装置(PDEV)1100を含む。なお、ストレージ装置1000は、図示を省略するが、制御装置と、メインメモリとを含む。メインメモリが管理プログラムを格納し、制御装置が管理プログラムを読み込んで実行することによって、ストレージ装置1000を制御するための処理を行うことができる。
物理記憶装置1100は記憶領域として扱われる物理記憶領域を提供する。物理記憶装置1100は、例えば、SATA(Serial Advanced Technology Attachment)ディスク、FC(Fibre Channel)ディスク、SSD(Solid State Drive)等である。
パリティグループ1200は、複数の物理記憶装置1100から構成された論理記憶領域、すなわちRAID(Redundant Array of Inexpensive Disks)であり、ストレージ装置1000の機能によって構築される。例えばストレージ装置1000は、どの物理記憶装置1100を使ってパリティグループ1200を構成するかについての指示、及びRAIDレベルの指示を、入力パラメータとして、管理サーバ3000から受け付けると、指定されたRAIDレベルを持つパリティグループ1200を、物理記憶装置1100を用いて構築する。
プール1300は、パリティグループ1200から構成される少なくとも1つの論理ボリュームを含む。なお、論理ボリュームについては図示を省略している。プール1300は複数の論理ボリュームをまとめて扱うための論理的なグループであり、プール1300を構成する論理ボリュームをプールボリュームと呼ぶ。
仮想ボリューム(VVOL)1400は、プール1300から生成される仮想的なボリュームである。1つのプール1300から複数の仮想ボリューム1400を生成することができる。仮想ボリューム1400は、ポート1500と接続されることで、ポート1500及びデータネットワーク5000を介して接続されるホスト計算機2000から、記憶領域として使用可能となる。なお、パリティグループ1200から構成される論理ボリュームについても、同様にしてホスト計算機2000から記憶領域として使用可能である。
以降では、仮想ボリューム1400と、パリティグループ1200から構成される論理ボリュームとを、単にボリュームと呼ぶ。
図3は、実施例1の概要を示す。
マイグレーションタスクは、あるボリューム(移行元ボリューム)から、あるボリューム(移行先ボリューム)へデータを移行する。一般にマイグレーションタスクには、同じストレージ装置1000内に存在するボリューム間のデータ移行処理と、異なるストレージ装置1000内に存在するボリューム間のデータ移行処理が存在する。本実施例のマイグレーションタスクは、異なるストレージ装置1000内に存在するボリューム間のデータ移行処理を指す。これにより、ホスト計算機2000が、マイグレーションが完了した時点で、アクセス先を移行元ボリュームから移行先ボリュームへ切り替えることにより、ホスト計算機2000からのアクセスを止めずにデータを移行することができる。
なお、本実施例において、マイグレーションタスクにおける処理対象リソースは、移行元ボリュームを構成するリソース(すなわちプール1300、又は図示を省略するパリティグループ1200)と、移行元ボリュームと移行先ボリュームを接続するポート1500(パス)と、移行先ボリュームを構成するリソース(すなわちプール1300、又は図示を省略するパリティグループ1200)と、の3つである。
図3では、ストレージ装置1000A内のボリューム1400Aから、ストレージ装置1000B内のボリューム1400Dへのマイグレーションタスクが予定されている。このとき、管理サーバ3000は、タスクの対象リソース(即ちプール1300A、ポート1500A、ポート1500B、プール1300C)に対して、実行時間内での処理の競合の多重度と、ホストからのデータアクセスによるリソースの負荷とを考慮し、タスクの所要時間の推定を行う。所要時間の推定処理の詳細については、タスク所要時間推定処理として後述する。この所要時間の推定処理では以前のタスク実行の実測値を用いることによって、推定精度が高まるが、移行先ボリュームの属するストレージ装置1000Bは新しいストレージ装置であるため、マイグレーションタスクの実測値が存在しない。
ここで、マイグレーションタスクにおける処理のボトルネックは通常、移行元ボリュームを構成するリソース、即ち本実施例のプール1300Aである。従って、管理サーバ3000は、同じリソースがボトルネックとなり、リソースに対する処理の傾向が類似している、類似タスクの実測値を用いることで、実測値が存在しないマイグレーションタスクの所要時間の推定を高精度に行う。
マイグレーションタスクの場合、リソースに対する処理が似た類似タスクとしては、例えば同じストレージ装置内のボリューム間でデータを複製するローカルコピータスクや、異なるストレージ装置内のボリューム間でデータを複製するリモートコピータスクがある。
図3は、ボリューム1400Aと同様にプール1300Aから構成されるボリューム1400Bから、ボリューム1400Cへローカルコピータスクを以前に実行したことがある場合を示しており、管理サーバ3000は、このローカルコピータスクの実測値を用いて、ボリューム1400Aからボリューム1400Dへのマイグレーションタスクの所要時間を推定する。
さらに、管理サーバ3000は、上述した所要時間の推定で、例えば同種別のタスクや類似タスクの実測値によって所要時間を推定したか、あるいは実測値が存在せず初期値等を用いて推定したか、等の基準によって所要時間の推定精度を判別し、ユーザに提示する。図3で表示用計算機4000に表示されるタスク情報画面G2000は、ユーザに対する提示方法の一例であり、登録したタスクの推定実行終了時刻と、その推定精度を表示している。推定精度の判定方法については推定精度判定処理として後述する。タスク情報画面G2000の詳細については図7で後述する。
このように、推定精度をユーザに提示することによって、ユーザのタスクの実行を効率的に計画することが可能になる。
以下、管理サーバ3000及び表示用計算機の構成について説明する。
図4は、管理サーバ3000の構成を示す。
管理サーバ3000は、メインメモリ3100、制御装置3200、管理インタフェース3300を含む。メインメモリ3100には、システム管理プログラム3101、タスク管理プログラム3102、負荷係数更新プログラム3103、負荷係数テーブルT1000、プール構成情報テーブルT2000、タスク情報テーブルT3000、マイグレーションタスク詳細情報テーブルT4000、タスク進捗情報テーブルT5000、類似タスク種別テーブルT6000、タスク一時情報テーブルT7000、リソース負荷情報テーブルT8000、負荷係数初期値テーブルT9000、ボリューム構成情報テーブルT11000、リソース性能情報テーブルT12000が記憶されている。
システム管理プログラム3101は、ストレージ装置1000の情報を取得し、またパリティグループ1200の作成やプール1300の作成など、ストレージ装置1000に対する基本的な処理の指示を出すプログラムである。タスク管理プログラム3102は、ユーザからの指示に応じてタスクの登録や変更、またそれらに際する所要時間の推定や推定精度の判定などを行い、またタスクを実行するプログラムである。負荷係数更新プログラム3103は、実行完了したタスクの実績値から負荷係数を更新するプログラムである。
制御装置3200は、例えば表示用計算機4000から指示を受けて、メインメモリ3100に格納されたプログラムを実行する。管理インタフェース3300は管理ネットワーク6000を介して複数のストレージ装置1000と接続され、例えば制御装置3200から指示を受けて複数のストレージ装置1000に指示を出すことができる。
図5は、表示用計算機4000の構成を示す。
表示用計算機4000はメインメモリ4100、制御装置4200、管理インタフェース4300、インタフェース4400、インタフェース4500、表示装置4600、入力装置4700を含む。メインメモリ4100には、表示プログラム4101が記憶されている。表示プログラム4101は、管理サーバ3000から画面を取得し、操作するためのプログラムであり、例えば管理サーバ3000がWEBサーバである場合には、WEBブラウザプログラムである。
制御装置4200は、メインメモリ4100に格納されたプログラムを実行する。管理インタフェース4300は、管理ネットワーク6000を介して管理サーバ3000と接続され、管理サーバ3000に指示を出し、表示する画面の情報を受け取る。インタフェース4400は、入力装置4700と接続される。入力装置4700は例えばキーボードやマウスである。インタフェース4500は表示装置4600と接続される。表示装置4600は例えば液晶ディスプレイである。ユーザは、表示用計算機4000を通じて管理サーバ3000から情報を取得し、また管理サーバ3000に指示を出す。
以下、表示用計算機4000に表示される幾つかの画面について説明する。
図6は、マイグレーションタスク入力画面G1000を示す。
マイグレーションタスク入力画面G1000は例えば、移行元ストレージ装置を選択するための移行元ストレージ装置選択欄G1001、移行先ストレージ装置を選択するための移行先ストレージ装置選択欄G1002、移行元ボリュームを選択するための移行元ボリューム選択欄G1003、移行先ボリュームを選択するための移行先ボリューム選択欄G1004、マイグレーションタスクの実行開始時刻を入力するための実行開始時刻入力欄G1005、入力中のマイグレーションタスク設定を決定するボタンG1006、入力中のマイグレーションタスク設定をキャンセルするボタンG1007を含む。
マイグレーションタスク入力画面G1000は、表示用計算機4000の表示装置4600に表示される。ユーザは、表示用計算機4000を用いていつでもマイグレーションタスク入力画面G1000を表示することができ、マイグレーションタスクの設定を入力して決定することで、新たなマイグレーションタスクを登録することができる。また、例えば表示用計算機4000は、登録されたマイグレーションタスクの設定を、後述するタスク情報テーブルT3000及び後述するマイグレーションタスク詳細情報テーブルT4000から取得し、マイグレーションタスク入力画面G1000と同様の画面に表示し、マイグレーションタスクの設定を変更することができる。なお、ここで設定したタスクの情報は、後述するタスク情報テーブルT3000及び後述するマイグレーションタスク詳細情報テーブルT4000に格納される。
図7は、タスク情報表示画面G2000を示す。
タスク情報表示画面G2000は、表示用計算機4000の表示装置4600に表示される。ユーザは、表示用計算機4000を用いていつでもタスク情報表示画面G2000を表示することができ、登録されているタスクの情報を、例えば後述するタスク情報テーブルT3000および後述するマイグレーションタスク詳細情報テーブルT4000から取得し、確認あるいは編集することができる。ここで、表示されるタスク群は、未実行のタスク群でもよいし、ユーザによって指定されたタスク群でもよい。
タスク情報表示画面G2000は、例えば、タスク一覧テーブルG2100、開始時刻変更ボタンG2200、OKボタンG2300を含む。
タスク一覧テーブルG2100は、タスク毎のエントリを有する。各エントリは、選択用チェックボックスG2101、タスク名G2102、実行開始時刻G2103、推定実行終了時刻G2104、推定精度G2105を有する。
選択用チェックボックスG2101は、各行(エントリ)が選択されているか否かを表す。少なくとも1つ以上の行が選択されている状態で、ユーザが開始時刻変更ボタンG2200を押下すると、図示を省略するが、表示用計算機4000は、選択されている行に表されたタスクの実行開始時刻を変更するための画面を開き、ユーザによる当該実行開始時刻の変更を受け付け、変更結果を例えばタスク情報テーブルT3000とマイグレーションタスク詳細情報テーブルT4000に格納する。
タスク名G2102は各タスクのタスク名を表示する。タスク名は、ユーザが一意に識別するための情報であれば何でも良く、例えばタスク登録時に設定された識別子でも良い。また、タスク名G2102の各行に表示されるタスク名を押下すると、図示を省略するが、後述する各タスク種別に固有のタスク詳細情報テーブルから取得した各タスクの設定情報を画面に表示し、変更することができる。
実行開始時刻G2103は、タスク登録時にユーザにより設定された実行開始時刻を表示する。時刻の表示形式は、図示されている形式に限らない。
推定実行終了時刻G2104は、タスク登録時やタスク設定変更時に管理サーバ3000が推定したタスクの推定実行終了時刻を表示する。実行終了時刻の推定処理については後述する。時刻の表示形式は、図示されている形式に限らない。
推定精度G2105は、管理サーバ3000が推定実行終了時刻を推定した際に判定した、推定実行終了時刻の推定精度を表示する。推定精度の判定処理については後述する。
OKボタンG2300は、タスク情報表示画面G2000の表示を終了するためのボタンである。
図8は、負荷係数テーブルT1000を示す。
負荷係数テーブルT1000は、複数のタスクの処理対象リソースが競合する場合や、処理対象リソースに対して負荷がかかっている場合などの処理時間が、単一処理で要する処理時間の何倍かを示す目安値を保持するテーブルである。
この目安値は、初期値としてカタログ値などの決まった値を保持するが、タスク実行結果の実際の処理時間に基づいて随時補正されていく。ここで、カタログ値とは、管理サーバ3000に初めから組み込まれている値である。
なお、管理サーバ3000は、初期値を保持することが難しいリソース(例えばユーザによって作成されるリソース)に対して、初期値を保持する必要はなく、その場合には他の手段により目安値を取得することが可能である。例えば、管理サーバ3000は、後述する負荷係数初期値テーブルT9000を用いることにより、プール1300に対して、プール1300の構成情報によって負荷係数を目安値として取得することができる。
負荷係数テーブルT1000は、複数のエントリを有する。各エントリは、タスク種別T1001、リソース種別T1002、リソース識別子T1003、多重度T1004、負荷T1005、負荷係数T1006を含む。
タスク種別T1001は、タスクの種別である。リソース種別T1002は、ストレージ装置1000が保持するリソースの種別の名称である。ここでいうリソースは、ストレージ装置1000の構成要素であり、例えばパリティグループ1200、プール1300、ポート1500などを含む。リソース識別子T1003は、当該リソースを特定する識別子である。多重度T1004は、リソース種別T1002、リソース識別子T1003によって特定されるリソースに対する競合の多重度である。たとえば、当該リソースがプールであり、当該プールに対して3つのタスクが同時に処理を行っている場合、多重度は3である。
負荷T1005は、リソース種別T1002、リソース識別子T1003によって特定されるリソースに対する負荷の量を表す。ここでいう負荷とは、例えばホスト計算機2000からのデータ読み込みやデータ書き込みであり、図8では負荷を百分率における区間として表現している。
例えば負荷T1005は、当該リソースに対する読み込みや書き込みが無い状態を0とし、当該リソースに対する読み込みや書き込みが多く処理が飽和している状態を100とする。このとき、負荷T1005の値、0-10は、当該リソースに対する読み込みや書き込みの程度が0から10の間であることを示す。ただし、負荷の量の表現方法は百分率に限られるわけでは無く、例えば単位時間当たりの読み込みと書き込みの回数(IOPS:Input / Output per Second)などで表現しても良いし、リソースに対するデータの書き込み量やデータの読み込み量などの値を用いても良い。
リソースの処理が飽和しているとは、当該リソースに含まれるストレージ装置1000の構成要素の処理性能が物理的限界に達している場合を指す。あるタスクの実行によって、複数のリソースに対して同時に処理が行われる場合には、処理のボトルネックとなるリソースが、処理が飽和しているリソースである。
負荷係数T1006は、タスクを単一で実行した場合の所要時間と比べて何倍の所要時間となるかを示す目安値(負荷係数)kである。例えばリソースがパリティグループであり、当該パリティグループに対する1TBのボリューム作成タスクで、単一でタスクを実行した際の所要時間が1分であり、当該パリティグループに対する処理が競合している状態の所要時間が2分である場合、負荷係数T1006の値は2.0となる。
図9は、プール構成情報テーブルT2000を示す。
プール構成情報テーブルT2000は、ストレージ装置1000に含まれるプール1300毎のエントリを有する。一つのプール1300に対応するエントリは、ストレージ装置識別子T2001、プール識別子T2002、構成パリティグループT2003、ボリューム識別子T2004を含む。
ストレージ装置識別子T2001は、当該プール1300を含むストレージ装置1000を特定する識別子である。プール識別子T2002は、当該プール1300を特定する識別子である。構成パリティグループT2003は、当該プール1300を構成するプールボリュームの生成元であるパリティグループ1200の数を示す。ボリューム識別子T2004は、当該プール1300より生成されたボリューム1400を特定する識別子を示す。
システム管理プログラム3101は、ストレージ装置1000へ指示を出すことによって、プール構成情報テーブルT2000の情報を取得し、格納する。この取得処理は、例えば新たにストレージ装置1000を管理サーバ3000の管理対象に追加したとき、ストレージ装置1000の構成情報に変更があったとき、あるいは定期的に、実行される。
図10は、タスク情報テーブルT3000を示す。
タスク情報テーブルT3000は、タスク毎のエントリを有する。一つのタスクに対応するエントリは、タスク識別子T3001、タスク種別T3002、タスク詳細情報識別子T3003、実行開始時刻T3004、実行終了時刻T3005、推定実行終了時刻T3006、推定制度T3007を含む。
タスク識別子T3001は、当該タスクを特定する識別子である。タスク種別T3002は、当該タスクの種別である。タスク詳細情報識別子T3003は、当該タスク種別に固有の設定情報を含むタスク詳細情報を特定する識別子である。管理サーバ3000は、タスク種別ごとに固有の設定情報を含むタスク詳細情報テーブルを、タスク種別ごとに保持している。例えばマイグレーションタスクのタスク詳細情報テーブルは、図11に示すマイグレーションタスク詳細情報テーブルT4000である。実行開始時刻T3004は、当該タスクの実行開始時刻を表す。実行終了時刻T3005は、当該タスクの実行終了時刻を表す。実行終了時刻T3005は、実際に当該タスクが完了した時刻であり、当該タスクの登録時や当該タスクの設定変更時に推定された推定実行終了時刻T3006とは異なる。従って、当該タスクの終了前において実行終了時刻T3005は、値を格納していない。
推定実行終了時刻T3006は、当該タスクの登録時や当該タスクの設定変更時に推定された推定実行終了時刻を保持する。推定精度T3007は、タスク登録時やタスク設定の変更時に判定された当該推定実行終了時刻の推定精度を保持する。推定精度は、時間の誤差の大きさを示していてもよい。
図11は、マイグレーションタスク詳細情報テーブルT4000を示す。
マイグレーションタスクのためのタスク詳細情報テーブルであるマイグレーションタスク詳細情報テーブルT4000は、マイグレーションタスクの設定情報のうち、マイグレーションタスクに固有な設定情報を保持する。マイグレーションタスク詳細情報テーブルT4000は、タスク詳細情報毎のエントリを有する。一つのタスク詳細情報に対応するエントリは、タスク詳細情報識別子T4001、ストレージ識別子T4002、ボリューム識別子T4003、ストレージ識別子T4004、ボリューム識別子T4005を含む。
タスク詳細情報識別子T4001は、タスク詳細情報の識別子である。ストレージ識別子T4002は、マイグレーションの移行元ボリュームを含むストレージ装置1000の識別子である。ボリューム識別子T4003は、マイグレーションの移行元ボリュームの識別子である。ストレージ識別子T4004は、マイグレーションの移行先ボリュームを含むストレージ装置1000の識別子である。ボリューム識別子T4005は、マイグレーションの移行先ボリュームの識別子である。
なお、図示を省略するが、マイグレーションタスク以外のタスクに対しても、各タスクに固有な設定情報を保持するタスク詳細情報テーブルが、管理サーバ3000に記憶されている。今後、それらの各タスクに固有の設定情報を保持するテーブルを、タスク詳細情報テーブルと総称する。
図12は、タスク進捗情報テーブルT5000を示す。
タスク進捗情報テーブルT5000は、タスクの進捗情報を保持する。タスク管理プログラム3102は、タスクの実行中、定期的に、例えば1分おきに、タスクの進捗情報を取得し、それをタスク進捗情報テーブルT5000に記憶する。タスク進捗情報テーブルT5000は、タスク毎のエントリを有する。一つのタスクに対応するエントリは、タスク識別子T5001、時刻T5002、進捗率T5003、ストレージ識別子T5004、リソース種別T5005、リソース識別子T5006を含む。
タスク識別子T5001は、当該タスクを特定する識別子である。時刻T5002は、当該進捗情報の取得処理が実行された時刻である。進捗率T5003は、後述するタスク実行処理で取得される、取得時点における当該タスクの進捗量である。本実施例の進捗量は、タスク実行前を0、タスク完了後を100とした百分率で進捗率と表現する。進捗量の表現方法はこの形式に限られるわけではない。例えば進捗量は、処理すべき対象がボリュームであれば、進捗情報取得時までに完了したボリュームの容量で表現されても良い。ストレージ識別子T5004、リソース種別T5005、リソース識別子T5006はそれぞれ、進捗情報取得時に処理速度が飽和していたリソースを含むストレージ装置1000の識別子、そのリソースの種別、そのリソースの識別子である。なお、進捗情報取得時に、飽和しているリソースが存在しない際にはこれらの値は空となる。
図13は、類似タスク種別テーブルT6000を示す。
類似タスク種別テーブルT6000は、あるタスクと類似した処理を行う類似タスクを示す。類似タスク種別テーブルT6000は、複数のエントリを有する。各エントリは、タスク種別T6001、タスク種別T6002、優先度(優先順位)T6003を含む。
タスク種別T6001は、キーとなるタスクの種別である。T6002はタスク種別T6001の類似タスクの種別である。ここでいう類似タスクとは、キーのタスクの処理の内容に類似した処理を持つタスクである。キーのタスクの所要時間を推定する際に、キーのタスクの内容と合致する負荷係数T1006が負荷係数テーブルT1000に存在しないときに、キーのタスクの類似タスクの負荷係数を、代替の負荷係数として使用することが可能である。
例えば、あるストレージ装置に存在するボリュームから、異なるストレージ装置に存在するボリュームへデータを移行するマイグレーションタスクは、あるストレージ装置に存在するボリュームのデータを異なるストレージ装置に存在するボリュームに複製するリモートコピータスクと処理が類似している。従って、リモートコピータスクは、マイグレーションタスクの類似タスクとして扱われる。優先度T6003は、当該類似タスクの優先度である。あるタスク種別T6001に対するタスク種別T6002が複数存在する場合、優先度T6003が高いものが優先される。なお優先度T6003は、1を最高として降順の整数で優先度を表現しているが、これに限られるものではなく、順序付けできる表現方法であればよい。例えば、タスク種別T6001がマイグレーションである場合、類似タスク種別は、優先度の降順に(優先順位の値が小さいものから順に)、リモートコピー、ローカルコピー、シュレッディングである。ローカルコピーは、コピーを行うため、マイグレーションと類似する。しかし、同一ストレージ装置内のコピーであるため、ローカルコピーの優先度は、リモートコピーの優先度より低い。シュレッディングは、シーケンシャルアクセスを行うため、マイグレーションと類似する。しかし、シュレッディングがシーケンシャルライトを行うのに対し、マイグレーションがシーケンシャルリードを行うため、シュレッディングの優先度は、ローカルコピーの優先度より低い。
この類似タスク種別テーブルT6000によれば、負荷係数テーブルT1000内のマイグレーションタスクの実行中の状態が、投入されるマイグレーションタスクの実行中の状態に一致しない場合に、同一のタスク種別の代わりに適切な類似タスク種別を用いることができる。
本実施例では、本テーブルの情報は、管理サーバ3000に初めから組み込まれていることとするが、例えばユーザの設定によって新規追加あるいは変更されても良い。
図14は、タスク一時情報テーブルT7000を示す。
所要時間推定用のタスク一時情報テーブルT7000は、タスクの所要時間を推定する際に一時的に用いられる。タスク一時情報テーブルT7000は、タスク毎のエントリを有する。一つのタスクに対応するエントリは、タスク識別子T7011、実行開始時刻T7002、推定実行終了時刻T7003、進捗T7004、推定精度T7005を含む。
タスク識別子T7001は、当該タスクを特定する識別子である。実行開始時刻T7002は、当該タスクの実行開始時刻である。推定実行終了時刻T7003は、当該タスクの所要時間推定処理中に推定された推定実行終了時刻である。進捗T7004は、当該タスクの所要時間推定処理中に推定された進捗量である。本実施例の進捗量は、タスク実行前を0、タスク完了後を100とした百分率で進捗率と表現する。進捗量の表現方法はこの形式に限られるわけではない。例えば進捗量は、処理すべき対象がボリュームであれば、進捗情報取得時までに完了したボリュームの容量で表現されても良い。
推定精度T7005は、当該タスクの所要時間推定処理中に推定された推定タスク終了時刻の推定精度である。
図15は、リソース負荷情報テーブルT8000を示す。
リソース負荷情報テーブルT8000は、ストレージ装置1000に含まれるリソースに対する時間帯毎の負荷の程度を保持する。リソース負荷情報テーブルT8000は、複数のエントリを有する。各エントリは、ストレージ識別子T8001、リソース種別T8002、リソース識別子T8003、時間T8004、負荷T8005を含む。
ストレージ識別子T8001は、ストレージ装置1000の識別子である。リソース種別T8002、リソース識別子T8003はそれぞれ、ストレージ装置1000に含まれるリソースの種別、リソースの識別子である。時間T8004、負荷T8005はそれぞれ、当該リソースに対する負荷を測定した時間帯と、その負荷の量である。負荷T8005の取得方法については、タスク実行処理で後述する。本実施例の時間帯T8004は、1時間毎に分割されている。リソース負荷情報テーブルT8000は、1日分の負荷T8005の情報を保持している。時間帯T8004は、この分割方法や保持期間に限定されない。例えばリソース負荷情報テーブルT8000は、1時間毎でなく5分毎に負荷T8005を保持してもいいし、1日分でなく1週間の情報を保持しても良い。また、本実施例の負荷T8005の表現方法は、負荷係数テーブルT1000の負荷T1005の表現方法と同じである。
図16は、負荷係数初期値テーブルT9000を示す。
負荷係数初期値テーブルT9000は、プール1300に対する処理を行うタスクに対して、所要時間を推定する際に用いられる負荷係数が、負荷係数テーブルT1000に存在しない際に使用される。負荷係数初期値テーブルT9000は、複数のエントリを有する。各エントリは、構成パリティグループ数T9001、多重度T9002、負荷係数T9003を含む。
構成パリティグループ数T9001は、一つのプール1300を構成するプールボリュームの生成元であるパリティグループ1200の数を示す。多重度T9002は、当該プールに対する処理の競合の多重度である。負荷係数T9003は、単一処理、すなわちリソースに対する処理が競合しない場合のタスクの所要時間と比べて何倍の所要時間となるかを示す見積もり値(負荷係数k)である。本実施例では、本テーブルの情報は、管理サーバ3000に初めから組み込まれていることとするが、例えばユーザの設定によって新規追加あるいは変更されても良い。
図17は、ボリューム構成情報テーブルT11000を示す。
ボリューム構成情報テーブルT11000は、ボリューム1400毎のエントリを有する。一つのボリューム1400に対応するエントリは、ストレージ識別子T11001、ボリューム識別子T11002、ボリューム容量T11003を含む。
ストレージ識別子T11001は、当該仮想ボリュームが存在するストレージ装置を特定する識別子である。ボリューム識別子T11002は、当該仮想ボリュームを特定する識別子である。ボリューム容量T11003は、当該仮想ボリュームの容量である。
図18は、リソース性能情報テーブルT12000を示す。
リソース性能情報テーブルT12000は、リソース毎のエントリを有する。一つのリソースに対応するエントリは、ストレージ識別子T12001、リソース種別T12002、リソース識別子T12003、読み込み速度T12004、書き込み速度T12005を含む。
ストレージ識別子T12001は、当該リソースが存在するストレージ装置を特定する識別子である。リソース種別T12002は、当該リソースの種別の名前である。リソース識別子T12003は、当該リソースを特定する識別子である。読み込み速度T12004は、当該リソースの読み込み速度である。書き込み速度T12005は、当該リソースの書き込み速度である。
リソース性能情報テーブルT12000は、読み込み速度T12004や書き込み速度T12005の代わりに、リソースの処理速度を決定するための、記憶デバイスの種別やHDDの回転数等を示していてもよい。
ボリューム構成情報テーブルT11000及びリソース性能情報テーブルT12000の内容は、定期的あるいはストレージ装置1000の構成情報の変化に際して、システム管理プログラム3101によってストレージ装置1000から取得され、管理サーバ3000に格納される。
以下、管理サーバ3000の動作について説明する。
ここでは本実施例におけるタスクの登録処理、およびタスク推定所要時間表示処理、およびタスク実行処理、および負荷係数更新処理についてフローチャートを用いて説明する。以下に示すフローチャートは、処理の概要を示しており、実際のコンピュータプログラムとは相違する場合がある。また、以下の説明では、主に、管理サーバ3000を動作の主体として述べる。実際には管理サーバ3000内の制御装置3200がメインメモリ3100に記憶されたシステム管理プログラム3101あるいはタスク管理プログラム3102、あるいは負荷係数更新プログラム3103などのコンピュータプログラムを読み込んで実行することにより、所定の処理が実現される。
まず、図19~24に基づいて、タスクの登録処理について説明する。
タスクの登録処理には、タスクの所要時間推定処理及び推定所要時間の推定精度判定処理が含まれる。なお、ここでいうタスクの登録処理は、新たにタスクを登録する場合だけでなく、既に登録されたタスクの設定を変更する場合も同様の処理で実現することができる。この処理はタスク管理プログラム3102によって実現される。
また、後述するタスク実行処理によって管理サーバ3000からストレージ装置1000にタスクを実行するために必要な処理を行う指示が出されることにより、登録処理で登録されたタスクが、実行される。
本実施例では、マイグレーションタスクの例について説明を行うが、他のタスクについても同様に実施可能である。
図19は、タスク登録処理を示す。
タスク登録処理の詳細なフローは下記の通りである。
(S100)管理サーバ3000は、システム管理者等のユーザからの指示に応じて、マイグレーションを実行させるためのタスクの設定情報を受信する。タスクの設定情報の入力は、ユーザがマイグレーションタスク入力画面G1000に対してマイグレーションタスクの生成に必要な情報を入力することで実施される。なお、図示は省略するが、管理サーバ3000は、マイグレーションタスク以外のタスクの場合にもタスクの設定に必要な情報を入力する画面を表示し、ユーザがその画面に対して入力を行うことで同様に実行することが可能である。
(S101)管理サーバ3000は、S100で入力されたタスクの設定情報を、タスク情報テーブルT3000及びマイグレーションタスク詳細情報テーブルT4000に格納する。なお、管理サーバ3000は、マイグレーションタスク以外のタスクの場合、タスクの設定情報を、タスク情報テーブルT3000及び、そのタスク固有のタスク詳細情報テーブルに格納する。
(S102)管理サーバ3000は、入力されたタスクの設定情報をもとに、タスクの終了時刻推定およびその推定精度判定を行うタスク所要時間推定処理を行う。タスクの終了時刻推定処理と推定精度判定処理の詳細については、後述するタスク所要時間推定処理で示す。
以上のタスク登録処理によれば、管理サーバ3000は、ユーザによるタスクの設定情報の入力に応じて、そのタスクの所要時間とその推定精度を算出することができる。
図20は、タスク所要時間推定処理を示す。
この処理で、管理サーバ3000は、前述したタスク登録処理のS100で入力された新たなタスクに対し、実行終了時刻を推定する。また、管理サーバ3000は、既に登録されているタスクのうち、新たなタスクの影響で、例えば処理対象リソースに対する処理の多重度が変化するなどの理由で、推定実行終了時刻が変化するタスクに対しても実行終了時刻を再度推定し、修正する。
より具体的には、管理サーバ3000は、新たなタスクの実行開始時刻から、フェーズごとに、リソースに対する多重度や負荷を考慮して、そのフェーズで実行中のタスクの進捗率を計算する。この繰り返しによって、各タスクの推定終了時刻を推定する。
タスク所要時間推定処理の詳細なフローは、下記の通りである。
(S200)管理サーバ3000は、新たに投入するタスクに設定された実行開始時刻を変数Txに代入する。
(S201)管理サーバ3000は、タスク情報テーブルT3000を参照して、推定実行終了時刻が変化する可能性のあるタスク群を取得し、R1とする。ここで、推定実行終了時刻が変化する可能性のあるタスク群とは、推定実行終了時刻T3006が時刻Txより遅いタスク群である。R1は、新たに投入するタスクも含む。
さらに、管理サーバ3000は、時刻Tx時点での、タスク群R1の情報をタスク一時情報テーブルT7000に格納する。具体的には、管理サーバ3000は、タスク識別子T7001および実行開始時刻T7002に、それぞれタスク情報テーブルT3000から取得されたタスク識別子T3001および実行開始時刻T3004の値を格納する。なお、管理サーバ3000は、新たに投入するタスクについては、入力された情報をタスク識別子T7001および実行開始時刻T7002に格納する。
実行開始時刻がTxと同じもしくはTxより後のタスクに対して、進捗T7004と推定精度T7005に格納される値は、それぞれ0%と値なしである。管理サーバ3000は、実行開始時刻がTxより前、即ちTx時点で実行中と推測されているタスクに対し、それぞれ時刻Tx時点での値を計算して格納する。管理サーバ3000は、実行開始時刻からTxまでの時間を複数のフェーズに分割し、それぞれのフェーズでの進捗量を加算することで、Tx時点で実行中のタスクの進捗T7004を求めることができる。
実行開始時刻からTxまでの時間をフェーズに分割する方法は、後述する負荷係数更新処理におけるS900と同様である。S900で管理サーバ3000は、実行開始時刻から実行終了時刻までを複数のフェーズに分割するが、この実行終了時刻をTxに置き換えることで実施可能である。それぞれのフェーズでの進捗量の計算は、S207で後述する処理によって実施可能である。
推定精度T7005に関して、管理サーバ3000は、前述した各フェーズでの進捗量の計算で使用した負荷係数kの情報を元に、後述する推定精度判定処理S306によって判定した値を格納する。
(S202)管理サーバ3000は、S203~S207の処理を繰り返す。なお、繰り返しの終了は、S204の分岐処理で行われる。
(S203)管理サーバ3000は、タスク群R1から、時刻Tx時点で実行中であるタスク群(G1)を取得する。ここでいう、Tx時点で実行中であるタスク群とは、タスクの実行開始時刻が時刻Txと同じもしくは前であり、かつタスクの推定実行終了時刻が時刻Txより後であるタスク群のことである。
(S204)S203で取得したタスク群G1が1つ以上のタスクを含む場合、管理サーバ3000は、S205に進む。S203で取得したタスク群G1がタスクを1つも含まない場合、管理サーバ3000は、繰り返し処理を終了し、S208に進む。
(S205)管理サーバ3000は、タスク群G1に含まれるタスクに対して、時刻Tx時点から、リソースに対する処理の多重度が変化せず、またタスクの処理対象リソースに対する負荷が変化しない、と仮定したときの実行終了時刻を推定する特定条件タスク所要時間推定処理を行う。この処理の詳細については、後述する特定条件タスク所要時間推定処理で説明する。
(S206)管理サーバ3000は、時刻Txから開始する対象フェーズの終了時刻を判定するフェーズ終了時刻判定処理を行う。また、管理サーバ3000は、判定されたフェーズ終了時刻を時刻の変数Txへ代入する。フェーズ終了時刻判定処理の詳細については、後述する。
(S207)管理サーバ3000は、S206で更新された時刻Tx時点でのタスク群G1に含まれるタスクの情報をタスク一時情報テーブルT7000に反映する。具体的には、管理サーバ3000は、各タスクに対して、タスク一時情報テーブルT7000に含まれる情報のうち、進捗T7004に関して、S205でフェーズ終了時刻を判定された対象フェーズでの各タスクの進捗量を計算し、現在の進捗T7004に加算する。具体的には、管理サーバ3000は、まず後述する特定条件タスク所要時間推定処理のS301と同様にして、単一で各タスクを実行した場合の所要時間T1を取得し、次にS302~S305と同様にして、負荷係数kを取得する。管理サーバ3000は、このT1と負荷係数kを用いて、各タスクの単一の処理での所要時間T1に負荷係数kを乗じ、それを対象フェーズの実行時間、即ちS206で更新される前のTxから現在のTxまでの時間、で割ることで、対象フェーズでの進捗P1を算出し、この値を現在の進捗T7004の値に加算することで、Tx時点での各タスクの進捗を得る。例えば、あるタスクAの現在の進捗T7004が10%で、単一で実行した場合の所要時間が1時間で、負荷係数kが2.0で、フェーズの実行時間が30分であった場合、進捗P1は、30/(60×2.0)=0.25=25%である。従って、新たな進捗T7004の値は、10+25=35%である。
(S208)管理サーバ3000は、S200~S207の処理で更新された、タスク群R1に含まれる各タスクに関するタスク一時情報テーブルT7000の情報を、タスク情報テーブルT3000に反映する。具体的には、管理サーバ3000は、タスク情報テーブルT3000に含まれる情報のうち、推定実行終了時刻T3006と推定精度T3007の情報を、対応するタスク一時情報テーブルT7000における同一のタスク識別子の内容に更新する。
(S209)管理サーバ3000は、タスク一時情報テーブルT7000に含まれる、本処理で登録したタスク群R1の情報を削除する。
(S209)管理サーバ3000は、タスク一時情報テーブルT7000に含まれる、本処理で登録したタスク群R1の情報を削除する。
以上のタスク所要時間推定処理によれば、管理サーバ3000は、投入タスクの実行期間を複数のフェーズに分割し、各フェーズにおいて他のタスクの影響を考慮して進捗量を算出し、各フェーズの進捗量から投入タスクの所要時間を推定することができる。フェーズ毎、タスク毎に、負荷係数を選択し、負荷係数を用いて所要時間を推定することにより、タスク群の進捗の推定の精度を高めることができる。
図21は、特定条件タスク所要時間推定処理を示す。
特定条件タスク所要時間推定処理は、ある時刻Txからリソースに対する処理の多重度が一定かつリソースに対する負荷が一定と仮定した場合のタスクの所要時間を推定する。この処理は、例えば、前述したタスク所要時間推定処理のS205から呼び出される。特定条件タスク所要時間推定処理に対する入力は、時刻Txと所要時間推定対象のタスク群G1である。特定条件タスク所要時間推定処理の前提として、タスク群G1に含まれる各タスクに対応するタスク一時情報テーブルT7000の情報が、より具体的には進捗T7004と推定精度T7005が、時刻Tx時点での情報に更新されている必要がある。
詳細なフローは以下の通りである。
(S300)管理サーバ3000は、入力として与えられたタスク群G1に含まれるタスクそれぞれについてS301~S309の処理を行う。なおS301~S309の処理で対象となるタスクを後述の説明ではタスクAとする。
(S301)管理サーバ3000は、タスクAを単一で処理した場合の所要時間を計算し、T1とする。単一で処理した場合の所要時間の計算方法は、タスク種別によって異なる。本実施例で対象とするマイグレーションタスクにおける主な処理は、移行元ボリュームからのデータの読み込み処理と、移行元ボリューム及び移行先ボリュームをつなぐポート間の転送処理と、移行先ボリュームへのデータの書き込み処理との3つの処理であり、これら3つの処理は並行して実行される。従って、管理サーバ3000は、これら3つの処理に対し、対象リソースの処理速度と処理対象容量から、各処理の所要時間を計算し、その最大値をとることによって、タスクの所要時間を取得することができる。
例えば、プールPから生成されたボリュームから、ポートQを通って、プールRから生成されたボリュームへマイグレーションするタスクを考える。このとき、ボリュームの容量を10GB、プールPからの読み込み速度を1GB/秒とすると、移行元ボリュームの読み込み処理の所要時間Tpは、10/1=10秒である。同様に、ポートQの転送速度が5GB/秒と仮定すると、ポートQの転送処理所要時間Tqは、10/5=2秒である。同様にプールRの書き込み速度を2GB/秒とすると、移行先ボリュームの書き込み処理所要時間Trは、10/2=5秒となる。従って、このタスクの所要時間は、Tp、Tq、Trの最大値をとって、Tp=10秒となる。
管理サーバ3000は、ボリュームの容量を、ボリューム構成情報テーブルT11000から取得することができる。また、管理サーバ3000は、読み込み速度や書き込み速度等の処理速度を、リソース性能情報テーブルT12000から取得することができる。
(S302)管理サーバ3000は、タスクAの処理対象リソースのうち、実行において処理速度が飽和すると予想されるリソースRを取得する。処理速度が飽和するリソースRは、タスクの実行においてボトルネックとなるリソースのことになる。処理速度が飽和するリソースRは、例えばストレージ装置1000から取得することができる。
本実施例で対象とするマイグレーションタスクにおいては、通常、移行元ボリュームの生成元であるリソース、つまりプール1300やパリティグループ1200、に対するデータの読み込み処理がボトルネックとなる。従って、本実施例においては、リソースRが、移行元ボリュームの生成元のプール1300またはパリティグループ1200であると仮定して、後述の処理を説明する。なお、処理速度が飽和するリソースRが特定できないような場合には、処理対象の各リソースに対して、S303~S308で後述するように推定実行終了時刻を推定し、最も遅いものを推定実行終了時刻とすることで、タスクの推定実行終了時刻を算出することが可能である。
(S303)管理サーバ3000は、リソースRに対する処理の多重度(競合タスク数)Mを取得する。具体的には、管理サーバ3000は、タスク群G1の各タスクに対して、各タスク種別に固有のタスク詳細情報テーブル、例えばマイグレーションタスクの場合にはマイグレーションタスク詳細情報テーブルT4000、を参照し、タスク群G1の処理対象リソース群Rsを取得し、Rsに含まれるRの個数を多重度Mとする。
(S304)管理サーバ3000は、リソース負荷情報テーブルT8000を参照し、リソースRの時刻Txでの負荷情報Bを取得する。
(S305)管理サーバ3000は、タスクA、リソースR、Tx時点でのリソースRに対する処理の多重度M、Tx時点でのリソースRに対する負荷情報Bを元に、負荷係数kを取得する負荷係数取得処理を実行する。この処理の詳細は、後述する負荷係数取得処理で説明する。
(S306)管理サーバ3000は、S305で取得した負荷係数の取得方法を元に、推定した所要時間の推定精度を判定する推定精度判定処理を実行する。この処理の詳細は、後述する推定精度判定処理で説明する。
(S307)管理サーバ3000は、タスク一時情報テーブルT7000を参照し、タスクAの進捗情報を取得する。この進捗情報は、Tx時点までの進捗率であり、百分率として表される。この取得した進捗率をXとする。
(S308)管理サーバ3000は、推定実行終了時刻を計算する。具体的には、Tx時点で既にS307で取得した進捗率X(Xは百分率)分の処理が完了しているので、管理サーバ3000は、タスクを単一で実行した場合の所要時間T1に処理の未完了分の割合(100-X)/100を乗ずることにより、タスクを単一で実行し完了した場合の所要時間を得る。管理サーバ3000は、この所要時間に、S305で取得した負荷係数kを乗ずることで、タスクAのTx以降の所要時間を得ることができる。管理サーバ3000は、この所要時間に、Txを加算することで推定実行終了時刻を得ることができる。
(S309)管理サーバ3000は、タスク一時情報テーブルT7000の推定実行終了時刻T7003の値を、S308で得られた推定実行終了時刻の値に更新する。さらに、管理サーバ3000は、推定精度T7005の値を、S306で得られた推定精度を用いて更新する。ここで、推定精度の更新は、S306で得られた推定精度が現行の値より低い場合しか更新しない。例えば、現在の推定精度T7005が低で、S306で得られた推定精度が高である場合、管理サーバ3000は、推定精度T7005の値を更新しない。逆に推定精度T7005が高で、S306で得られた推定精度が中である場合、管理サーバ3000は、推定精度T7005の値を中に更新する。
以上の特定条件タスク所要時間推定処理によれば、管理サーバ3000は、リソースの処理速度と、ボリュームの容量とに基づいて、タスクを単一で実行する場合の所要時間を推定することができる。更に、管理サーバ3000は、そのフェーズにおける状態に対応する負荷係数を、算出された所要時間に乗ずることにより、同時に実行される他のタスクの影響を含む所要時間を推定することができる。
図22は、負荷係数取得処理を示す。
負荷係数取得処理は、所要時間を推定するタスクの種別と、そのタスクにより用いられるリソースの情報と、そのリソースに対する処理の多重度と、そのリソースに対する負荷情報とを入力とし、その入力を元に、負荷係数(所要時間推定用の係数)を取得する。負荷係数取得処理は、所要時間を推定するタスク種別に対応する負荷係数kが存在しない場合、そのタスク種別の類似タスク種別に対応する負荷係数kを取得し、類似タスクの種別に対応する負荷係数kも存在しなかった場合、初期値として用意されている負荷係数kを取得する。
詳細なフローは以下の通りである。
(S400)管理サーバ3000は、負荷係数テーブルT1000を参照し、所要時間を推定するタスクの種別と、リソースの情報と、そのリソースに対する処理の多重度と、そのリソースに対する負荷情報との条件に合致する負荷係数kを取得する。なお、条件に合致する負荷係数kが負荷係数テーブルT1000に存在しない場合もある。
(S401)管理サーバ3000は、S400で負荷係数kを取得できた場合、負荷係数kおよび、入力タスクと同じタスク種別の負荷係数kを取得したことを出力し、本処理を終了する。管理サーバ3000は、S400で負荷係数kが取得できなかった場合、即ち入力に合致する負荷係数kが負荷係数テーブルT1000に存在しなかった場合、S402に進む。
(S402)管理サーバ3000は、類似タスク種別テーブルT6000を参照し、入力として与えられたタスク種別に対する類似タスク種別を取得する。なお、条件に適合する類似タスク種別が複数存在する場合、管理サーバ3000は、優先度T6003が高い類似タスク種別を優先して取得する。
(S403)管理サーバ3000は、負荷係数テーブルT1000を参照し、S402で取得された類似タスク種別と、入力として与えられた、リソースの情報と、そのリソースに対する処理の多重度と、そのリソースに対する負荷情報との条件に合致する負荷係数kを取得する。なお、条件に合致する負荷係数kが存在しない場合もある。
(S404)管理サーバ3000は、S403で負荷係数kを取得できた場合、負荷係数k及び、負荷係数kを入力タスクの類似タスク種別によって取得したことを出力として、本処理を終了する。管理サーバ3000は、S403で負荷係数kが取得できなかった場合、即ち類似タスクと、入力で与えられたリソースの情報およびそのリソースに対する処理の多重度およびそのリソースに対する負荷情報に合致する負荷係数kが負荷係数テーブルT1000に存在しなかった場合、S405に進む。
(S405)管理サーバ3000は、入力として与えられた、リソースの情報と、多重度と、リソースの負荷情報とから、デフォルトの負荷係数kを取得し、負荷係数kを出力し、この処理を終了する。このデフォルトの負荷係数kの取得方法は、リソースによって異なる。本実施例では、リソースがプールである場合を説明する。リソースがプールである場合、デフォルトの負荷係数kは負荷係数初期値テーブルT9000のような形で与えられる。負荷係数初期値テーブルT9000では、あるプールに対する負荷係数kは、そのプールの構成パリティグループ数T9001と、そのプールを用いる処理の多重度T9002とに対して与えられる。プールを構成するパリティグループ数は、プール構成情報テーブルT2000を参照して取得することができる。
以上の負荷係数取得処理によれば、管理サーバ3000は、過去のタスクの情報の中に、投入タスクの実行中の状態に一致する、同一のタスク種別のタスクの実行中の状態がある場合、その状態に対応する負荷係数を取得することができる。また、管理サーバ3000は、同一のタスク種別のタスクの実行中の状態がない場合で、投入タスクの実行中の状態に一致する、類似タスク種別のタスクの実行中の状態がある場合、その状態に対応する負荷係数を取得することができる。また、複数の類似タスク種別に優先度を予め与えることにより、投入タスクに最も近い類似タスク種別を選択することができる。また、負荷係数の条件が多重度を含むことにより、同一のリソースを用いるタスクの数を、負荷係数及び所要時間に反映させることができる。
図23は、推定精度判定処理を示す。
推定精度判定処理は、前述した特定条件タスク所要時間推定処理によって推定された所要時間の推定精度を判定する。この処理は、前述した負荷係数取得処理における、負荷係数kの取得方法を入力とする。より具体的には、入力は、負荷係数取得処理のS401の分岐処理の結果、即ち所要時間を推定するタスクと同じタスク種別によって特定される負荷係数を取得したか否か、と負荷係数取得処理のS404、即ち所要時間を推定するタスクの類似タスク種別によって特定される負荷係数を取得したか否か、である。より具体的なフローは以下の通りである。
(S500)管理サーバ3000は、負荷係数取得処理で、所要時間を推定するタスクと同じタスク種別によって特定される負荷係数を取得したか否かを判定し、同じタスク種別の負荷係数が取得された場合はS501に、そうでない場合はS502に進む。
(S501)管理サーバ3000は、推定精度を高精度と判定し、このフローを終了する。
(S502)管理サーバ3000は、負荷係数取得処理で、所要時間を推定するタスクの類似タスク種別によって特定される負荷係数を取得したか否かを判定し、類似タスク種別の負荷係数が取得された場合はS503に、そうでない場合はS504に進む。
(S503)管理サーバ3000は、推定精度を中精度と判定し、このフローを終了する。
(S504)管理サーバ3000は、推定精度を低精度と判定し、このフローを終了する。
以上の推定精度判定処理によれば、管理サーバ3000は、所要時間を推定するタスクの負荷係数が、同じタスク種別の負荷係数、類似タスク種別の負荷係数、その他の負荷係数の何れであるかによって、推定精度を決定することができる。
図24は、フェーズ終了時刻判定処理を示す。
フェーズ終了時刻判定処理は、フェーズの終了時刻を判定する。この処理では、時刻Txと、Tx時点で実行中であるタスク群G1と、新たなタスクの投入によりタスクの推定終了時刻が変化する可能性のあるタスク群R1とを入力とする。フェーズ終了時刻は、Tx以降で最も早くリソースに対する処理の多重度が変化する時刻、即ちタスクが開始ないし終了する時刻と、最も早くタスクの処理対象リソースに対する負荷情報が変化する時刻とのうち、最も早い時刻である。より詳細なフローは以下の通りである。
(S600)管理サーバ3000は、タスク一時情報テーブルT7000を参照し、タスク群G1に含まれるタスクのうち、最も早い推定実行終了時刻を取得し、Taとする。
(S601)管理サーバ3000は、タスク情報テーブルT3000を参照し、タスク群R1に含まれるタスクのうち、Tx以降で最も早いタスク開始時刻を取得し、Tbとする。
(S602)管理サーバ3000は、タスク群G1に含まれる各タスクについて、タスク種別に固有のタスク詳細情報テーブル、例えばマイグレーションタスクの場合にはマイグレーションタスク詳細情報テーブルT4000、を参照し、処理対象リソース群を得る。管理サーバ3000は、これによって得たリソース群に含まれる全てのリソースに対して、リソース負荷情報テーブルT8000を参照し、Tx以降でリソースに対する負荷が変化する時刻のうち最も早い時刻を取得し、負荷変化時刻とする。さらに、管理サーバ3000は、各リソースに対して得た負荷変化時刻のうち、最も早い時刻をTcとする。
(S603)管理サーバ3000は、S601で得た時刻Taと、S602で得た時刻Tbと、S603で得た時刻Tcのうち、最も早い時刻をフェーズ終了時刻とする。
以上のフェーズ終了時刻判定処理によれば、管理サーバ3000は、各タスクの推定実行終了時刻に基づいて、フェーズの終了時刻を更新することができる。
図25は、タスク推定所要時間表示処理を示す。
本処理は、システム管理者等のユーザからの指示に応じて、既に登録されているタスクの情報、特にタスクの推定実行終了時刻のその推定精度をユーザに提示する。また、本処理はユーザからの指示によってのみ実行されるわけではなく、例えば前述したタスク登録処理の完了後に自動的に実行されるようにしてもよい。
詳細なフローは以下の通りである。
(S700)管理サーバ3000は、タスク情報テーブルT3000を参照し、既に登録されているタスク群の情報を取得する。このとき取得されるタスク群は、登録されているタスク全てでも良いし、未実行のタスク群などでも良く、ユーザからの指示からの指示によって異なる。
(S701)管理サーバ3000は、S700で取得したタスク群の情報を含むタスク情報表示画面G2000を、表示用計算機4000に表示させる。
以上のタスク推定所要時間表示処理によれば、ユーザは、タスクの推定実行終了時刻と、その推定精度とを知ることができる。
図26は、タスク実行処理を示す。
管理サーバ3000のタスク管理プログラム3102は、定期的にタスク情報テーブルT3000の情報を取得し、タスク情報テーブルT3000に含まれるタスクが未実行かつ実行開始時刻T3004がそのときの時刻に達していれば、そのタスクを実行対象タスクとして選択し、ストレージ装置1000に実行対象タスクを実行させる。詳細なフローは以下の通りである。
(S800)管理サーバ3000は、入力として与えられた、実行対象タスクの情報をタスク情報テーブルT3000から取得する。また、管理サーバ3000は、実行対象タスクの詳細な設定情報をタスク固有のタスク詳細情報テーブルから取得する。実行対象タスクがマイグレーションタスクである場合、このタスク詳細情報テーブルはマイグレーションタスク詳細情報テーブルT4000である。
(S801)管理サーバ3000は、S800で取得した実行対象タスクの設定情報に従って、当該設定情報に示されたストレージ装置1000を対象ストレージ装置として選択し、対象ストレージ装置に実行対象タスクの実行命令を送信する。
(S802)管理サーバ3000は、S803~S804の処理を、後述するS803で取得される進捗情報が100%になるまで、即ち実行対象タスクが完了するまで、定期的に実行する。
(S803)管理サーバ3000は、ストレージ装置から、実行対象タスクの進捗情報PRと、処理速度が飽和しているリソースPと、リソースPに対する負荷情報Bとを取得する。
(S804)管理サーバ3000は、S803で取得した情報をタスク進捗情報テーブルT5000に格納する。
以上のタスク実行処理によれば、管理サーバ3000は、ストレージ装置にタスクを実行させ、実行中のタスク及びリソースの情報を取得することができる。
図27は、負荷係数更新処理を示す。
負荷係数更新処理は、実際に実行したタスクの実測時間から負荷係数を更新する。管理サーバ3000の負荷係数更新プログラム3103は、定期的にあるいはタスクの完了を契機として、タスク情報テーブルT3000を参照して1つの実行が完了しているタスクの情報を取得し、取得したタスクの情報を入力として負荷係数更新処理を実行する。詳細なフローは以下の通りである。
(S900)管理サーバ3000は、実行が完了しているタスクAの情報を入力として取得し、タスク情報テーブルT3000を参照し、タスクAと実行時間が重なるタスク群Gの情報を取得する。ここで、管理サーバ3000は、タスクAとタスクBについて、(1)タスクBの実行終了時刻がタスクAの実行開始時刻より後であること、(2)タスクBの実行開始時刻がタスクAの実行完了時刻より前であること、の2つの条件がともに真であるときに、タスクAとタスクBの実行時間が重なる、と判定する。
(S901)管理サーバ3000は、タスクAの実行開始時刻から実行終了時刻までの時間区間を、その時間区間に実行されていたタスク群G1の間で、タスク群の処理対象である各リソースに対する処理の多重度およびリソースに対する負荷が変化しない区間(フェーズ)群に分割する。
リソースに対する処理の多重度が変化する時刻は、タスクの開始ないし終了によって引き起こされる。従って、管理サーバ3000は、タスク情報テーブルT3000に含まれる実行開始時刻T3004と実行終了時刻T3005を取得することで、フェーズを判定することができる。
管理サーバ3000は、前述したタスク実行処理によって、一定時間ごとのリソースに対する負荷情報が格納されているタスク進捗情報テーブルT5000を参照することで、リソースに対する負荷が変化する時刻を判定することができる。
例えば、前述のタスクAがある日の0時から3時まで実行され、あるタスクBが同日の1時から4時まで実行され、あるタスクCが同日の2時から5時まで実行され、同日の0時から5時の間にA、B、C以外のタスクが実行されておらず、同日の0時から5時の間の、タスクAおよびタスクBおよびタスクCの処理対象である各リソースに対する負荷が一定であるような場合を想定すると、タスクAに対するS901の処理では、Aの開始から終了までの時間区間0時―3時を、0時―1時のフェーズと、1時―2時のフェーズと、2時―3時のフェーズ、の3つのフェーズに分割する。
(S902)管理サーバ3000は、S901で取得したフェーズ群に対して、フェーズ開始時刻が早いものから順にS903~S907の処理を繰り返し適用する。なおS903~S907で処理中のフェーズをPHと称する。フェーズPHはフェーズ開始時刻とフェーズ終了時刻に関する情報により表される。
(S903)管理サーバ3000は、タスク進捗情報テーブルT5000を参照し、フェーズPH中のタスク進捗量Xと、フェーズPH中に処理が飽和していたリソースRと、フェーズPH中のリソースRに対する負荷情報Bとの情報を取得する。タスク進捗情報テーブルT5000には、前述したタスク実行処理で説明したとおり、一定区間ごとに進捗情報が記録されているので、管理サーバ3000は、フェーズPHのフェーズ終了時刻での進捗量から、フェーズPHのフェーズ開始時刻での進捗量を減ずることで、フェーズPH中での進捗量を取得することができる。
(S904)管理サーバ3000は、S903で取得したフェーズPH中での進捗量を、タスクAを単一で実施した場合に、即ちリソースに対する処理が競合せず、リソースに対する負荷がない場合に、必要な所要時間を算出し、T1とする。ここで管理サーバ3000は、まずタスク全体を単一で処理した場合の所要時間を、前述した特定条件タスク所要時間推定処理によって求め、これにフェーズPH中での進捗量を乗じることで時間T1を得る。例えば、フェーズPH中での進捗量が10%であり、S301の処理により、タスクA全体を単一で実行した場合の所要時間が2時間(120分)であった場合、T1は、120×0.1=12分となる。
(S905)管理サーバ3000は、タスクAの実測時間から得られた負荷係数knewを計算する。具体的には、管理サーバ3000は、フェーズPHの持続時間、すなわち(フェーズPHのフェーズ終了時間)から(フェーズPHのフェーズ開始時間)を減じた時間、を算出し、この持続時間を、S904で求めたT1で除した商を負荷係数knewとして計算する。例えば、フェーズPHがある日の0時から1時までの60分であり、フェーズPHの進捗量を単一で実行した場合の時間が30分であった場合、負荷係数knewは60/30=2.0となる。
(S906)管理サーバ3000は、フェーズPH中に処理が飽和していたリソースRに対する、フェーズPH中の処理の多重度を取得する。具体的には、管理サーバ3000は、タスク情報テーブルT3000を参照し、フェーズPHと実行時間が重なるタスク群を取得する。ここで、管理サーバ3000は、S900で示した方法によりフェーズPHと実行時間が重なるタスク群を取得できる。さらに管理サーバ3000は、取得したタスク群の各タスクに対して、各タスク固有のタスク詳細情報テーブル、例えばマイグレーションタスクの場合にはマイグレーションタスク詳細情報テーブルT4000、を参照して、処理対象のリソース群を取得する。以上の処理によって得られたリソース群に含まれる、リソースRの個数が、フェーズPHにおいて処理が飽和していたリソースの処理の多重度Mである。
(S907)管理サーバ3000は、S905で得られた、タスクAの実測時間から計算された負荷係数knewを用いて、負荷係数テーブルT1000の値を更新する。なお、更新対象のエントリが存在しない場合、管理サーバ3000は、新たなエントリを追加する。ここで更新対象のエントリは、負荷係数テーブルT1000において、タスクAのタスク種別と、S903で取得したリソースRのリソース種別およびリソース識別子と、S906で取得したリソースRに対する処理の多重度Mと、S903で取得したおよびリソースRに対する負荷情報Bと、の全てが一致するエントリである。ここで、負荷係数kの更新方法は、単に負荷係数knewで上書きしても良いし、既にT1000に存在する負荷係数kと負荷係数knewの平均をとった値で更新しても良いし、負荷係数knewを用いた他の方法でも良い。
以上の負荷係数更新処理によれば、管理サーバ3000は、完了したタスクの実行期間をフェーズ群に分割し、フェーズ毎の負荷係数を算出し、負荷係数テーブルT1000を更新することにより、その後の同様の状態における同様のタスクの所要時間の推定の精度を高めることができる。
なお、管理サーバ3000は、定期的に負荷係数更新処理を実行してもよいし、ストレージ装置1000がタスクを実行していない時間帯に、測定用のタスクを実行し、負荷係数更新処理を実行してもよいし、カタログ値に基づいて、負荷係数を決定してもよい。
なお、管理サーバ3000は、ネットワークを介して他の計算機システムや他の管理サーバに接続されている場合、ストレージ装置1000A、1000B以外のストレージ装置により実行されたタスクの情報から負荷係数を算出してもよいし、他の管理サーバにより算出された負荷係数の情報を負荷係数テーブルT1000に含めてもよい。
本実施例によれば、古いストレージ装置から新しいストレージ装置へのマイグレーションタスクに対し、過去にそれらのストレージ装置の間のマイグレーションタスクの実績がない場合であっても、マイグレーションタスクの所要時間を推定する場合に高精度に推定することができ、ストレージ管理者の管理業務の効率を向上させることができる。また、ユーザは、データアクセスが少ない夜間等の時間帯にタスクを実行させる場合、正確にタスクの実行期間を計画することができる。
本発明の表現のための用語について説明する。構成情報は、プール構成情報テーブルT2000、ボリューム構成情報テーブルT11000、リソース性能情報テーブルT12000の何れかを含んでもよい。測定情報は、負荷係数テーブルT1000、類似タスク種別テーブルT6000、リソース負荷情報テーブルT8000、負荷係数初期値テーブルT9000の何れかを含んでもよい。予定情報は、タスク情報テーブルT3000、マイグレーションタスク詳細情報テーブルT4000、タスク進捗情報テーブルT5000、タスク一時情報テーブルT7000の何れかを含んでもよい。状態は、負荷係数テーブルT1000内の一つのエントリであってもよいし、タスク種別、リソース種別、リソース識別子、多重度、負荷、負荷係数の何れかを含んでもよい。マイグレーションタスクの状態に最も近い状態は、負荷係数テーブルT1000のうち、タスク種別としてマイグレーションを示すエントリであってもよいし、タスク種別としてマイグレーションの類似タスク種別を示すエントリであってもよい。負荷は、多重度、負荷情報を含んでもよい。負荷推定情報は、負荷係数を含んでもよい。表示装置は、表示用計算機を含んでもよい。
1000:ストレージ装置、1100:物理記憶装置、1200:パリティグループ、1300:プール、1400:仮想ボリューム、1500:ポート、2000:ホスト計算機、3000:管理サーバ、4000:表示用計算機、5000:データネットワーク、6000:管理ネットワーク
Claims (11)
- 第一ストレージ装置内の物理リソースと、前記第一ストレージ装置内のボリュームの容量とを示す構成情報を記憶し、
前記第一ストレージ装置により実行される過去のタスクと、前記過去のタスクにより用いられる前記物理リソースとの状態を示す測定情報を記憶し、
前記第一ストレージ装置により実行される複数のタスクであって、前記第一ストレージ装置内の第一ボリュームから第二ストレージ装置内の第二ボリュームへのマイグレーションタスクを含む前記複数のタスクの予定を示す予定情報を記憶し、
前記予定情報に基づいて、前記測定情報から、前記第一ボリュームに割り当てられる特定物理リソースを用いるタスクの実行中の状態であって、前記マイグレーションタスクの実行中の状態に最も近い特定状態を選択し、前記特定状態と前記第一ボリュームの容量とに基づいて、前記マイグレーションタスクの所要時間を推定する、
ことを備えるストレージ装置管理方法。 - 前記測定情報は、前記マイグレーションタスクに類似するタスクの種別である類似タスク種別を含み、
前記測定情報が前記マイグレーションタスクの実行中の状態に一致する状態を含まない場合、前記推定は、前記類似タスク種別の状態から前記特定状態を選択する、
請求項1に記載のストレージ装置管理方法。 - 前記測定情報は、前記マイグレーションタスクに類似する複数の類似タスク種別と、前記複数の類似タスク種別の夫々の優先度とを含み、
前記推定は、前記複数の類似タスク種別の中から、最も高い優先度に対応する類似タスク種別を選択し、前記選択された類似タスク種別の状態から前記特定状態を選択する、
請求項2に記載のストレージ装置管理方法。 - 前記複数の類似タスク種別は、優先度の降順に、リモートコピー、ローカルコピー、シュレッディングを含む、
請求項3に記載のストレージ装置管理方法。 - 前記測定情報は、前記状態毎に、前記過去のタスクの実行中の前記物理リソースの負荷の大きさを示す負荷推定情報を含み、
前記推定は、前記特定状態に対応する負荷推定情報と、前記第一ボリュームの容量とに基づいて、前記マイグレーションタスクの所要時間を推定する、
請求項1に記載のストレージ装置管理方法。 - 前記特定状態に基づいて、前記推定の精度を決定し、前記精度を表示装置に表示させることを更に備える、
請求項5に記載のストレージ装置管理方法。 - 前記負荷は、前記過去のタスクと同時に前記物理リソースを用いるタスク群の数を示す多重度を含み、
前記推定は、前記予定情報に基づいて、前記マイグレーションタスクの実行中における前記特定物理リソースの多重度を算出し、前記測定情報から、前記算出された多重度を含む前記特定状態を選択する、
請求項5に記載のストレージ装置管理方法。 - 前記推定は、前記予定情報に基づいて、前記マイグレーションタスクの実行期間を、前記特定物理リソースの負荷が一定である時間区間に分割し、前記時間区間毎に、前記予定情報から前記時間区間に前記特定物理リソースを用いるタスクを選択し、前記測定情報から、前記時間区間における状態を選択し、前記選択された状態に最も近い状態を選択し、前記選択された状態に対応する負荷推定情報に基づいて、前記選択されたタスクの所要時間を推定し、前記選択されたタスクの所要時間に基づいて前記時間区間を更新する、
請求項5に記載のストレージ装置管理方法。 - 前記構成情報は、前記物理リソースの処理速度を示す処理速度情報を含み、
前記推定は、前記構成情報に基づいて、前記選択されたタスクだけが前記特定物理リソースを用いる場合の前記選択されたタスクの所要時間を算出し、前記算出された所要時間と前記選択された状態に対応する負荷推定情報とに基づいて、前記選択されたタスクの所要時間を推定する、
請求項8に記載のストレージ装置管理方法。 - 前記予定情報に基づいて、前記第一ストレージ装置に前記タスクを実行させ、
前記タスクの所要時間を測定し、
前記測定された所要時間に基づいて前記測定情報を更新する、
ことを更に備える、
請求項5に記載のストレージ装置管理方法。 - 第一ストレージ装置と、
前記第一ストレージ装置に接続される第二ストレージ装置と、
前記第一ストレージ装置及び前記第二ストレージ装置に接続される管理計算機と、
を備え、
前記管理計算機は、
前記第一ストレージ装置内の物理リソースと、前記第一ストレージ装置内のボリュームの容量とを示す構成情報を記憶し、
前記第一ストレージ装置により実行される過去のタスクと、前記過去のタスクにより用いられる前記物理リソースとの状態を示す測定情報を記憶し、
前記第一ストレージ装置により実行される複数のタスクであって、前記第一ストレージ装置内の第一ボリュームから第二ストレージ装置内の第二ボリュームへのマイグレーションタスクを含む前記複数のタスクの予定を示す予定情報を記憶し、
前記予定情報に基づいて、前記測定情報から、前記第一ボリュームに割り当てられる特定物理リソースを用いるタスクの実行中の状態であって、前記マイグレーションタスクの実行中の状態に最も近い特定状態を選択し、前記特定状態と前記第一ボリュームの容量とに基づいて、前記マイグレーションタスクの所要時間を推定する、
計算機システム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2015/052707 WO2016121108A1 (ja) | 2015-01-30 | 2015-01-30 | ストレージ装置管理方法および計算機システム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2015/052707 WO2016121108A1 (ja) | 2015-01-30 | 2015-01-30 | ストレージ装置管理方法および計算機システム |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2016121108A1 true WO2016121108A1 (ja) | 2016-08-04 |
Family
ID=56542758
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2015/052707 WO2016121108A1 (ja) | 2015-01-30 | 2015-01-30 | ストレージ装置管理方法および計算機システム |
Country Status (1)
Country | Link |
---|---|
WO (1) | WO2016121108A1 (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2018151749A (ja) * | 2017-03-10 | 2018-09-27 | 日本電気株式会社 | 制御装置、情報処理システム、制御方法およびプログラム |
JP2019159621A (ja) * | 2018-03-12 | 2019-09-19 | 富士通株式会社 | ストレージ装置およびプログラム |
JP2020098546A (ja) * | 2018-12-19 | 2020-06-25 | 富士通株式会社 | 情報処理システムおよび情報処理装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005275677A (ja) * | 2004-03-24 | 2005-10-06 | Nec Corp | オンラインデータベース再編成実行状況表示装置、表示方法、及び表示用プログラム |
JP2008203937A (ja) * | 2007-02-16 | 2008-09-04 | Hitachi Ltd | 計算機システム、ストレージ管理サーバ、及びデータ移行方法 |
JP2010266993A (ja) * | 2009-05-13 | 2010-11-25 | Hitachi Ltd | データ移動管理装置及び情報処理システム |
WO2014073045A1 (ja) * | 2012-11-07 | 2014-05-15 | 株式会社日立製作所 | 計算機システム、ストレージ管理計算機及びストレージ管理方法 |
JP2014099183A (ja) * | 2013-12-13 | 2014-05-29 | Hitachi Ltd | 計算機システム、ストレージ管理計算機及びストレージ管理方法 |
-
2015
- 2015-01-30 WO PCT/JP2015/052707 patent/WO2016121108A1/ja active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005275677A (ja) * | 2004-03-24 | 2005-10-06 | Nec Corp | オンラインデータベース再編成実行状況表示装置、表示方法、及び表示用プログラム |
JP2008203937A (ja) * | 2007-02-16 | 2008-09-04 | Hitachi Ltd | 計算機システム、ストレージ管理サーバ、及びデータ移行方法 |
JP2010266993A (ja) * | 2009-05-13 | 2010-11-25 | Hitachi Ltd | データ移動管理装置及び情報処理システム |
WO2014073045A1 (ja) * | 2012-11-07 | 2014-05-15 | 株式会社日立製作所 | 計算機システム、ストレージ管理計算機及びストレージ管理方法 |
JP2014099183A (ja) * | 2013-12-13 | 2014-05-29 | Hitachi Ltd | 計算機システム、ストレージ管理計算機及びストレージ管理方法 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2018151749A (ja) * | 2017-03-10 | 2018-09-27 | 日本電気株式会社 | 制御装置、情報処理システム、制御方法およびプログラム |
JP2019159621A (ja) * | 2018-03-12 | 2019-09-19 | 富士通株式会社 | ストレージ装置およびプログラム |
JP2020098546A (ja) * | 2018-12-19 | 2020-06-25 | 富士通株式会社 | 情報処理システムおよび情報処理装置 |
JP7135826B2 (ja) | 2018-12-19 | 2022-09-13 | 富士通株式会社 | 情報処理システムおよび情報処理装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10884791B2 (en) | Migrating jobs from a source server from which data is migrated to a target server to which the data is migrated | |
US9003414B2 (en) | Storage management computer and method for avoiding conflict by adjusting the task starting time and switching the order of task execution | |
JP5123641B2 (ja) | 性能履歴の管理方法および性能履歴の管理システム | |
JP5860462B2 (ja) | 計算機システム及びデータ移行方法 | |
JP5666710B2 (ja) | ストレージ装置及びボリューム管理方法 | |
WO2016199232A1 (ja) | ストレージ管理計算機、及びストレージ装置の管理方法 | |
US9348515B2 (en) | Computer system, management computer and storage management method for managing data configuration based on statistical information | |
WO2011083505A1 (en) | Method and server system for testing and executing migration between virtual servers | |
JP2010097533A (ja) | パーティションで区切られた計算機システムにおけるアプリケーション移動及び消費電力の最適化 | |
WO2015087392A1 (ja) | ストレージ管理システム | |
JP2013164820A (ja) | 評価支援方法、評価支援プログラムおよび評価支援装置 | |
JP2009140356A (ja) | 管理装置及び管理方法 | |
US8806126B2 (en) | Storage apparatus, storage system, and data migration method | |
EP1637987A2 (en) | Operation environment associating data migration method | |
WO2012120667A1 (ja) | 計算機システム、データ複製スケジューリング方法及び計算機読み取り可能な非一時的記憶媒体 | |
JP2010102479A (ja) | 計算機システム、ストレージ装置及びデータ更新方法 | |
US20150154042A1 (en) | Computer system and control method for virtual machine | |
JP5584422B2 (ja) | 情報処理装置,スケジュール管理装置,スケジュール管理方法およびスケジュール管理プログラム | |
WO2016121108A1 (ja) | ストレージ装置管理方法および計算機システム | |
US8732427B2 (en) | Systems and methods for collapsing a derivative version of a primary storage volume | |
CN103902233A (zh) | 虚拟机系统的在线存储迁移方法、装置与服务器 | |
JP2018195088A (ja) | ストレージ装置、ストレージ制御装置、およびストレージ制御プログラム | |
WO2018120939A1 (zh) | 一种存储系统扩容后数据迁移的方法、存储系统 | |
JP6115575B2 (ja) | データセット多重度変更装置、サーバ、データセット多重度変更方法、およびコンピュータ・プログラム | |
US20110231686A1 (en) | Management apparatus and management method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 15880005 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 15880005 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: JP |