The present invention relates to managing configuration of a storage array, and more specifically, relates to the method for updating configuration information of a storage array retained by management software.
Recently, the amount of data being used by companies or individuals is increasing sharply. Therefore, storage systems adopting techniques such as a SAN (Storage Area Network) or a NAS (Network Attached Storage) that couple storage arrays and host computers via switches or hubs to enable flexible data management are used widely.
Recently, there has been proposed a technique of constructing a virtual storage array within a physical storage so as to efficiently utilize resources that the storage array has. One example of such method is disclosed in patent literature 1. Patent literature 1 discloses constructing virtual storage arrays smoothly from independently operated physical storage arrays, by assigning two identifiers to resources such as storage areas included in physical storage arrays, one identifier being an identifier unique among multiple physical storage arrays (first identifier) and an identifier unique within a single physical storage array (second identifier), wherein when an access request designating a first identifier is received from a host computer, the first identifier designated in the request is converted to a corresponding second identifier. By adopting such technique to allocate a resource that multiple physical storage arrays have to the virtual storage arrays, the host computer can utilize the resource as a resource included in a single virtual storage array, without being conscious of the physical boundaries of the storage arrays. Further, multiple virtual storage arrays can be constructed in physical storage arrays, and the corresponding relationship between the subsystems can be a multiple-to-multiple relationship.
On the other hand, along with such complication of storage systems, the costs related to operating the storage systems have become an important issue. One method for solving such problem is to manage the configuration of the storage system including the storage arrays, the host computers, the switches and the hubs via unified control using management software. One example of such method is taught in patent literature 2. By using such technique, the administrator of the storage system can perform management operations, such as referring to connections of multiples storage resources between multiple storage arrays and multiple host computers, or newly allocating resources from storage arrays to host computers, using single management software.
In a configuration where virtual storage systems are constructed within physical storage arrays, there normally exist an administrator for collectively managing multiple physical storage arrays (hereinafter referred to as “physical storage administrator”) and an administrator for managing individual virtual storage arrays constructed therein (hereinafter referred to as “virtual storage administrator”). The physical storage administrator performs management such as the physical maintenance of storage arrays (such as exchanging failure disks) and allocating resources to virtual storages. In contrast, the virtual storage administrator performs management such as the allocation of storage areas included in the virtual storages to the host computer, or creation of copies and backups of storage areas. Furthermore, virtual storage arrays are constructed to correspond to business units or the like, so that administrators exist for each of the respective virtual storage arrays. As described, in a configuration where virtual storage arrays are formed in the physical storage arrays, multiple administrators with different roles manage respective physical storage arrays and virtual storage arrays.
As described, by applying prior art techniques, it becomes possible to manage a storage system composed for example of storage arrays, host computers, switches and hubs via single management software in an integrated manner During management of configuration in which a virtual storage array is constructed in a physical storage array, similar to the prior art where only the physical storage array is managed, update of information becomes necessary to match the actual configuration of the storage array and the configuration information of the storage array that the management software retains in the memory or the disk of the management computer. However, as mentioned earlier, in a construction where a virtual storage array is composed in a physical storage array, multiple administrators having different roles manage physical storage arrays and virtual storage arrays independently, and each administrator executes management operations such as the update of information and change of configuration of the storage arrays at arbitrary timings.
According to the prior art method for updating information, it is necessary to acquire a lock for prohibiting change of configuration of the storage arrays in order to acquire a consistent information update result. Therefore, in case the prior art method for updating information is performed within the configuration where virtual storage arrays are formed in the physical storage arrays, wherein the physical storage administrator updates information of the whole multiple physical storage arrays, it is necessary to acquire a lock for all the physical storage arrays. However, if a lock for all physical storage arrays is acquired, during update of information, not only all the physical storage arrays but also all the virtual storage arrays formed therein cannot be manipulated. Recently, along with the increase of the number of storage arrays installed in data centers of companies and the like, the time required for information update has been extended, and thus, the time during which the virtual storage array cannot be manipulated is also extended. The virtual storage administrator is also capable of performing information update of the virtual storage at any convenient timing. At this time, according to the prior art information update method, only a portion of the information visible from the physical storage administrator (only the information of a portion of the area of the whole information that the virtual storage administrator has updated information) reflects the latest information, and the information as a whole becomes inconsistent. This problem must be solved, since it may lead to the physical storage administrator performing management operations based on misjudgment.
According to the present invention, when the management software updates information, the information update of the physical storage arrays and the virtual storage arrays are performed without prohibiting the management operations of the virtual storage administrator. Since the management operation of the virtual storage administrator is not prohibited, any arbitrary virtual storage administrator can change the configuration of the virtual storage arrays during update of information. If the virtual storage administrator performs change of configuration of the virtual storage array while the physical storage administrator is updating information of the whole multiple physical storage arrays, the information related to the changed configuration is stored in a temporal area of the configuration information database that the management software has. Then, at the last of the information update processing, the information in this temporal area is reflected in the normal area of the configuration information database. Further, in order to reduce the occurrence of change of configuration during information update, the order of information update is changed dynamically based on the relationship between resources of the physical storage arrays and the virtual storage arrays or between resources of the mutual virtual storage arrays, to thereby efficiently perform information update.
According further to the present invention, the configuration information of the storage array is retained by dividing the same into a data area for the physical storage administrator and a data area for the virtual storage administrator. When the physical storage administrator updates information of the whole multiple physical storage arrays, the data area of the physical storage administrator is updated, and when the virtual storage administrator updates information of the virtual storage array, the data area of the virtual storage administrator is updated. As for the virtual storage array, the timing in which information update is executed by the physical storage administrator and the timing in which the information update is executed by the virtual storage administrator are compared, and if the timings are close, information is prevented from being gathered multiple times from virtual storage arrays, and the information obtained via a single gathering of information is reflected to both the data area of the physical storage administrator and the data area of the virtual storage administrator.
According to the present invention where a virtual storage array is constructed within a physical storage array, consistent information update becomes possible without having to acquire a lock of the storage array. Thereby, it becomes possible to prevent a state where the virtual storage administrator cannot execute management operations to the virtual storage array for a long period of time, so that the efficiency of management operations can be improved. Further, even when the physical storage administrator and the virtual storage administrator perform information update at different timings, it becomes possible to prevent only a portion of the information visible from the physical storage administrator from being updated, and the consistency of the configuration information as a whole can be maintained. Furthermore, if information update by the physical storage administrator and the information update by the virtual storage administrator are executed at close timings, the same configuration information of the virtual storage array is prevented from being gathered multiple times, according to which the information update time can be shortened and the load applied on the storage array can be reduced.
Other related characteristic features of the present invention will become apparent from the following description, or can be learned from execution of the present invention. The aspects of the present invention are achieved and realized through the combination of various elements, the following detailed description of the invention and the aspects of the accompanying claims.
The description of the present specification is aimed at describing the present invention in a typified manner, and must not be used in any way to limit the scope of the claims and the application of the present invention.
For example, the target managed by the management software is not restricted to the storage array, but can include the host computers, the switches, the hubs, and the application programs operated in the host computers.
Now, the preferred embodiments of the present invention will be described with reference to the drawings. In the following description, components having the same functions may be denoted by the same reference numbers. The accompanying drawings illustrate actual preferred embodiments and implementation examples in conformity with the principles of the present invention, but the drawings are intended to merely help understand the present invention and should not be used to restrict the scope of the present invention.
In the present preferred embodiments, sufficiently detailed description is provided so that those skilled in the art could be able to implement the present invention, but other modifications are possible, and it should be noted that changes in configuration or arrangement and the replacement of various components can be performed without deviating from the technical scope of the present invention. Thus, the following descriptions should not be used to restrict the interpretation of the present invention.
The embodiments of the present invention can be, as described earlier, implemented via a software operating in a general purpose computer, or a dedicated hardware, or a combination of software and hardware.
In the following description, various information according to the present invention are described in “table” format, but these information can be expressed via data structures other than tables, such as lists, DBs and queues. In order to show that the information does not depend on the data structure, the “tables”, “lists”, “DBs” and “queues” are sometimes simply referred to as “information”.
Expressions such as “identification information”, “identifier”, “name” and “ID” can be used for describing the contents of the respective information, and these terms are mutually replaceable.
The processes are sometimes described using the term “program” as the subject (subject of operation). The program is executed by a processor for performing determined processes using memories and communication ports (communication control units), so that a processor can also be used as the subject of the processes. The processes described using the program as the subject can also be set as processes performed by computers and information processing devices, such as management servers. A portion or all of the programs can be realized via a dedicated hardware, or can be formed into modules. Various programs can be installed to the respective computers via a program distribution server or storage media, for example.
The storage array 1000 and the host computer 2000 are connected to a network via the switching device 3000. Further, the storage array 1000, the host computer 2000 and the management computer 4000 are connected to the network via the switching device 5000. The switching device 3000 and the switching device 5000 can be identical devices. The switching device 5000 can also be separated into a device for connecting the storage array 1000 and the management computer 2000, and a device for connecting the host computer 2000 and the management computer 4000.
The storage array 1000 includes a disk unit 1100 and a disk controller 1200.
The disk unit 1100 includes physical resources 1121 and pools 1120. Physical resources 1121 refer to resources of storage areas provided via physical devices such as HHDs (Hard Disk Drives) and SSDs (Solid State Drives), and the type of the physical devices providing such resources are not limited. Pools 1120 are a group of physical resources 1121. Generally, pools 1120 are composed by arranging physical resources 1121 in redundant configuration using a technique called RAID (Redundant Array of Independent Disks), but the present invention is not restricted thereto, and any configuration can be adopted as long as one or more physical resources 1121 are formed into a group.
In the drawing, there exist four pools 1120 and five physical resources 1121, but the number can be set to any arbitrary number of one or more. For example, the pool 1120 connected to a logical volume 1110 (1) is formed via RAID configuration, whereas the pool 1120 connected to logical volume 1110 (2) provides a virtual volume via thin provisioning or automated tiering. However, the present invention is not restricted to such example, and both pools can adopt a RAID configuration or both pools can provide virtual volumes.
Furthermore, depending on the hardware specification of the storage array 1000, the pools 1120 providing virtual volumes can be composed of logical volumes 1110 instead of physical resources 1121. In this case, the physical resources 1121 constitute pools 1120 adopting a RAID configuration, and the logical volume 1110 (1) clipped from pools 1120 adopting a RAID configuration constitutes pools 1120 providing virtual volumes, and the logical volume 1110 (2) is clipped from the pools 1120 providing virtual volumes. The configuration of pools 1120 providing virtual volumes is not restricted.
The disk controller 1200 includes a memory 1210, a control unit 1220, an I/F (interface) 1230 for connecting to the switching device 3000, an I/F 1240 for connecting to the switching device 5000, and a disk I/F 1250 for connecting to the disk unit. These components are connected via a bus.
The disk controller 1200 further includes a logical volume 1110. The logical volume 1110 is composed of one or more physical resources, and provided via the disk controller 1200 as a logical storage area to the host computer 2000. The logical volume 1110 (1) is composed of one or more physical resources 1121 allocated in advance, wherein the capacity of the logical volume 1110 (1) is equal to the total capacity of the physical resources 1121 constituting the same. If the physical resource adopts a redundant configuration via RAID, the capacity of the logical volume 1110 (1) may be smaller than the total capacity of the physical resources 1121 constituting the same.
On the other hand, the logical volume 1110 (2) is a virtual logical volume provided to the host computer 2000, wherein based on a write request from the host computer 2000, physical resources 1121 are allocated thereto. Actually, when a write request to data with respect to the logical volume 1110 (2) is received, if a physical resource is not allocated to the target area of the write request, the disk controller 1200 allocates a storage area of the physical resources 1121 to the logical volume 1100 (2), and writes data into the storage area of the physical resource having been allocated. Thus, the storage capacity of the logical volume 1110 (2) provided to the host computer 2000 can be set to a larger capacity than the total capacity of the actually allocated physical resource 1121. The art for realizing such technique is called Thin Provisioning.
Further, if the logical volume 1110 (2) is composed of multiple physical resources 1121, the types of physical devices (such as HDDs and SSDs) being the source providing the physical resources 1121 can differ. The physical resources being the storage destination of the data written into the logical volume 1110 (2) can be varied dynamically via the automated tiering function that the storage array 1000 has, based for example on the access frequency from the host computer 2000. Thereby, for example, it is possible to perform control so that the data having a high access frequency from the host computer 2000 is stored in a physical resource provided from an expensive, high-speed physical media such as the SSD, whereas the data having a low access frequency from the host computer 2000 is stored in a physical resource provided from an inexpensive, low-speed physical media such as the SATA.
In
The memory 1210 stores the program and the data used by the control unit 1220. Especially, the memory 1210 includes a storage virtualization program 1211 and a storage information service program 1212.
The storage virtualization program 1211 is a program for virtualizing the resources (such as the processing performance of the control unit, the memory and the pool) that the storage array 1000 has, and providing the same as a virtual storage array.
The storage information service program 1212 is a program for gathering the configuration information of the storage array 1000 and transmitting the information to other programs, wherein the program can operate within the memory space of the storage array 1000 or can operate within the memory space of the virtual storage array 6000.
The control unit 1220 can control the execution of programs and input/output of data within the memory 1210, and the input/output of data and control commands via respective I/Fs of the disk controller 1200.
The storage array 1000 has the common functions of a storage array, such as a function to create pools 1120 from physical resources 1121, a function to create a logical volume 1110 from the pools 1120, a function to allocate the logical volume via the I/F (A) 1230 to the host computer 2000, and a function to receive commands to change the configuration or setting of the storage array 1000 from the management computer 4000.
Further, the storage array 1000 can include an input device for allowing the user of the storage array 1000 to enter data, and an output device through which the storage array 1000 provides information to the user, but since they are not directly related to the present invention, they are not shown.
The host computer 2000 has a memory 2100, a control unit 2200, an I/F (A) 2300 for connecting to the switching device 3000, and an I/F (B) 2400 for connecting to the switching device 5000. These components are connected via a bus. The memory 2100 stores the programs and data used by the control unit 2200. Especially, the memory 2100 stores an application program 2110. The application program 2110 can be any program.
The control unit 2200 controls the execution of programs and input/output of data stored in the memory 2100, and controls the input/output of data and control commands through the I/F (A) 2300 and I/F (B) 2400.
The host computer 2000 can further include an input device for allowing the user of the host computer 2000 to enter data, an output device through which the host computer 2000 provides information to the user, and a secondary storage array for storing data and the like, but since they are not directly related to the present invention, they are not shown.
The switching device 3000 has an I/F (A) 3100 for connecting to the storage array 1000 and an I/F (B) 3200 for connecting to the host computer 2000. Network protocols used among the storage array 1000, the host computer 2000 and the switching device 3000 connecting the same include an FC (Fibre Channel) or an iSCSI, but not restricted thereto. Further, a single I/F (A) 3100 and a single I/F (B) 3200 are shown in the drawing, but the number can be one or more.
The management computer 4000 has a memory 4100, a control unit 4200, and an I/F 4300 for connecting to the switching device 5000. The memory 4100 stores programs and data used by the control unit 4200. Especially, the memory 4100 stores a configuration management program 4110, an information gathering program 4120, a group of configuration information tables 4130, a group of configuration differential information tables 4140 and a group of management information tables 4150.
The configuration management program 4110 is a program for managing the configuration of the storage array 1000, especially having a function to gather configuration information of the storage array 1000 via the information gathering program 4120. The configuration management program 4110 further has the common functions of a management computer, such as a function to form pools 1120 from physical resources 1121, a function to create a logical volume 1110 from the pools 1120, a function to allocate the logical volume 1110 via the I/F (A) 1230 to the host computer 2000, and a scheduler function for performing specific processes at specific times. Further, the configuration management program 4110 has a user interface for displaying the configuration information of the storage array 1000 and for allowing management control of the storage array 1000.
The information gathering program 4120 is a program for gathering the configuration information of the storage array 1000, and has a function to acquire the configuration information of the storage array 1000 through communication with a configuration information service program 1211 of the storage array 1000.
The group of configuration information tables 4130 is a collection of tables storing the configuration information of the storage arrays 1000 and virtual storage arrays 6000, and the actual example thereof is illustrated in
The storage information table 4131 is a table storing the information on the storage arrays 1000, and the actual example thereof is shown in
The virtual storage information table 4132 is a table for storing the information of the virtual storage arrays 6000, and the actual example thereof is illustrated in
The storage related information table 4133 is a table for storing the information regarding the relationship between the storage array 1000 and the virtual storage array 6000, and the example thereof is illustrated in
The physical resource information table 4134 is a table for storing the information related to the physical resources 1121 included in the storage arrays 1000, and the actual example thereof is illustrated in
In
The pool information table 4135 is a table for storing the information related to pools 1120 included in the storage array 1000, and the actual example thereof is illustrated in
In
The virtual pool information table 4136 is a table storing the information of virtual pools 6120 in the virtual storage array 6000, the actual example of which is illustrated in
In
The pool related information table 4137 stores the relationship information between the pools 1120 included in the storage array 1000 and the virtual pools 6120 included in the virtual storage array 6000, and the actual example thereof is illustrated in
The volume information table 4138 is a table storing the information related to the logical volume 6110 included in the virtual storage array 6000, and the actual example thereof is illustrated in
Now, the RAID level refers to the information showing the type of the RAID technology applied to the virtual pool 6120 being the source from which the logical volume 6110 is clipped, that is, the information showing the level of redundancy of the logical volume 6110. Further, the state 41386 is the information showing the operation status of the logical volume 6110. In
The volume allocation information table 4139 is a table showing the relationship between the host computer 2000 and the logical volume 6110 allocated to the host computer 2000, and the actual example thereof is illustrated in
The above description has explained the respective tables constituting the group of configuration information tables 4130.
The group of configuration differential information tables 4140 is an assembly of tables storing changed information as differential information when a management operation accompanying the change of configuration is executed related to the configuration of the storage array 1000 and the virtual storage array 6000 when the configuration management program 4110 is updating the information stored in the group of configuration information tables 4130. In embodiment 1, the group of configuration differential information tables 4140 includes a storage differential information table 4141, a virtual storage differential information table 4142, a pool differential information table 4145, a virtual pool differential information table 4146, a volume differential information table 4148 and a volume allocation differential information table 4149.
The configurations of the tables are basically respectively the same as the storage information table 4131, the virtual storage information table 4132, the pool information table 4135, the virtual pool information table 4136, the volume information table 4138 and the volume allocation information table 4139. The difference is that the tables constituting the group of configuration differential information tables 4140 include an attribute of change type. The change type is the information showing the type of the change that has occurred with respect to the configuration of the storage array 1000 and the virtual storage array 6000.
In present embodiment 1, a value selected from “add”, “update” and “delete” is stored in the change type. For example, in the volume differential information table 4148 shown in
Further, regarding the volume differential information table 4148, the record having “vST.1” stored in the storage ID 41480 and “LU.100” stored in the volume ID 41481 has “add” stored in the change type 41487. This indicates that the corresponding logical volume 6110 has been added. Moreover, in the volume differential information table 4148, the record having “vST.2” stored in the storage ID 41480 and “LU.100” stored in the volume ID 41481 has “delete” stored in the change type 41487. This indicates that the corresponding logical volume 6110 has been deleted.
The other tables constituting the group of configuration differential information tables 4140 will not be described here. The above description has illustrated the group of configuration differential information tables 4140.
The group of management information tables 4150 is an assembly of tables storing the management information used for the configuration management program 4110 to manage the configuration of the storage array 1000 and the virtual storage array 6000, and the actual example thereof is illustrated in
The management task table 4151 is a table for storing the information on the management task executed by the configuration management program 4110, and the actual example thereof is illustrated in
The information update status table 4152 is a table showing the status of progress of processing when the configuration management program 4110 updates the configuration information of the storage array 1000 and the virtual storage array 6000, and the actual example thereof is shown in
The information update time table 4153 is a table showing the estimate of the time required for the configuration management program 4110 to update the configuration information of all the storage arrays 1000 and virtual storage arrays 6000 included in the storage array group 7000, and the actual example thereof is illustrated in
The control unit 4200 controls execution of programs and input/output of data within the memory 4100, and the control of input/output of data and control commands through the I/F 4300.
The management computer 4000 can further include an input device for allowing a user to input data to the management computer 4000, an output device for providing information to the user of the management computer 4000, and a secondary storage array for storing data. Further, the various tables stored in the management computer 4000 can be stored not only in the memory but in a secondary storage array.
In
The switching device 5000 includes an I/F (A) 5100 for connecting to the storage array 1000, an I/F (B) 5200 for connecting to the management computer 4000, and an I/F (C) 5300 for connecting to the host computer 2000. One example of the network protocols used among the storage array 1000, the management computer 4000, the host computer 2000 and the switching device 5000 coupled thereto is a TCP/IP, but the protocol is not restricted thereto. In the drawing, the number of I/F (A) 5100, I/F (B) 5200 and I/F (C) 5300 are one each, but the number can be greater.
The data processing sequence according to present embodiment 1 will be described.
In the present processing, at first in step S1000, the administrator (user) of the storage array group 7000 requests to enter the storage array 1000 and the virtual storage array 6000 as the management target of the configuration management program 4110 via the user interface of the configuration management program 4110. Since the user does not know the configuration of the virtual storage array 6000 formed in the storage array 1000 at this point of time, the target designated to be entered as the management target is the storage array 1000.
Next, in step S1010, the configuration management program 4110 demands the information gathering program 4120 to collect the configuration information from the storage array 1000 designated by the user in step S1000. The information gathering program 4120 collects the configuration information by communicating with the storage information service program 1212 of the storage array 1000, and stores the collected configuration information in the group of configuration information tables 4130. At this time, if a virtual storage array 6000 is formed in the storage array 1000, the configuration information of the virtual storage array 6000 will also be collected and stored.
Further in step S1030, the configuration management program 4110 notifies the user that the storage array 1000 and the virtual storage array 6000 have been entered as the management target. The notification methods include, but are not limited to, methods using user interfaces such as GUI (Graphical User Interface) and CLI (Command Line Interface), or a method for outputting a message via a log.
By the above-described processing, the process for registering the storage array 1000 and the virtual storage array 6000 as the management target of the configuration management program 4110 is completed. The present processing is not necessarily executed by having the user enter the storage array 1000 as the management target of the configuration management program 4110. That is, the registration processing can be executed for example when the configuration management program 4110 detects the presence of the storage array 1000 connected through the switching device 5000 using techniques such as an SLP (Service Location Protocol).
In the present processing, at first in step S2000, the user demands execution of management operation of the storage array 1000 and the virtual storage array 6000 via the user interface of the configuration management program 4110.
In step S2010, the configuration management program 4110 enters the management operation of the storage array 1000 and the virtual storage array 6000 to the management task table 4151.
According to the above processing, the process for entering the management operation of the storage array 1000 and the virtual storage array 6000 to the configuration management program 4110 is completed. If the user wishes to immediately execute the management operation of the storage array 1000 and the virtual storage array 6000, the current date and time should be designated as the execution date and time of the management task.
In the present processing, at first in step S3000, the configuration management program 4110 periodically refers to the management task table 4151. The interval of the time of the configuration management program 4110 referring to the management task table 4151 can either be determined in advance or designated by the user.
Next, in step S3010, the configuration management program 4110 compares the current date and time with the execution date and time 41511 entered in the management task table 4151, and determines whether the current date and time is equal to or has passed the execution date and time 41511 entered in the management task table 4151.
If the current date and time is not equal to the execution date and time 41511 entered in the management task table 4151 and has not yet passed the entered date and time, the procedure advances to step S3000, whereas if the current date and time is equal to or has passed the execution date and time 41511, the procedure advances to step S3020.
Next, in step S3020, the configuration management program 4110 executes a management task (management operation) of the storage array 1000 and the virtual storage array 6000. Possible management tasks (management operations) include, but are not restricted to, an operation for allocating pools 1120 as virtual pools 6120, an operation for creating a logical volume 6110 from virtual pools 6120, and an operation for allocating the logical volume 6110 to the host computer 2000, as shown partially in the task 41512 of the management task table 4151.
Next, in step S3030, the information gathering program 4120 collects the configuration information of the storage array 1000 and the virtual storage array 6000 changed via the management task executed in step S3020, and stores the same in the group of configuration information tables 4130.
Thereafter, in step S3040, the configuration management program 4110 deletes the management task executed in step S3020 from the management task table 4151. When the deleting process is ended, the procedure returns to step S3000.
By the processes described above, the process for executing the management operation to the storage array 1000 and the virtual storage array 6000, and the process of reflecting the configuration of the storage array 1000 and the virtual storage array 6000 changed via the management operation in the group of configuration information tables 4130 are completed.
In the present processing, at first in step S4000, the administrator (user) of the storage array group 7000 demands update of the configuration information of the storage array 1000 and the virtual storage array 6000 included in the storage array group 7000 via the user interface of the configuration management program 4110.
Next, in step S4010, the configuration management program 4110 refers to the management task table 4151 and the information update time table 4153, and specifies the management task being scheduled to be executed within the time indicated in the average time 41531 for updating information from the current date and time.
Next, in step S4020, the configuration management program 4110 executes a process for specifying the extent of impact of changing the configuration caused as a result of executing the management task specified in step S4010. The contents of the present processing will be described in detail later with reference to
Next, in step S4030, the configuration management program 4110 stores the storage ID (identifier) of the storage array 1000 or the virtual storage array 6000 determined to have no impact in step S4020 in the information update status table 4152. At this time, “unexecuted” is stored in the information update status 41522. If multiple storage arrays 1000 or virtual storage arrays 6000 determined to have no impact in step S4020 exist, the order for updating information among the storage arrays 1000 or virtual storage arrays 6000 can be determined for example by setting the order of the storage array 1000 to come after the virtual storage array 6000, or to set the order so that the storage array 1000 or the virtual storage array 6000 having the greater number of resources (logical volumes and pools) is updated first.
Next, in step S4040, the configuration management program 4110 stores the storage ID (identifier) of the storage array 1000 or the virtual storage array 6000 determined to have an impact in step S4020 in the information update status table 4152. At this time, “unexecuted” is stored in the information update status 41522. If multiple storage arrays 1000 or virtual storage arrays 6000 determined to have an impact in step S4020 exist, the order for updating information among the storage arrays 1000 or virtual storage arrays 6000 can be determined for example by setting the storage array 1000 or virtual storage array 6000 having the earliest execution date and time of the management time at the top of the execution sequence of updating information.
Through the processes of steps S4030 and S4040, the information update status table 4152 stores records so that the order of the storage array 1000 or the virtual storage array 6000 determined to have no impact in step S4020 is set earlier in the order for updating information than the storage array 1000 or the virtual storage array 6000 determined to have an impact in step S4020. Thus, by updating information of the storage array 1000 or the virtual storage array 6000 known to cause change of configuration via the scheduled management task at a later timing, it becomes possible to minimize the occasion where configuration change occurs during update of information.
Next, it is determined in step S4050 whether a record in which the information update status 41522 is “unexecuted” exists in the information update status table 4152 or not. If a corresponding record exists, the procedure advances to step S4060, and if a corresponding record does not exist, the procedure advances to step S4100.
In step S4060, the configuration management program 4110 refers to the information update status table 4152, specifies a single record where the information update status 41522 is “unexecuted” and the value of the information update order 41520 is smallest, so as to acquire the storage ID 41521 and to change the information update status 41522 to “execution on-going”.
Next, in step S4070, the configuration management program 4110 demands the information gathering program 4120 to execute the process for acquiring configuration information with respect to the storage array 1000 or the virtual storage array 6000 shown in the storage ID 41521 acquired in step S4060.
Next, in step S4080, the information gathering program 4120 gathers the configuration information of the storage array 1000 or the virtual storage array 6000, and stores the same in the group of configuration information tables 4130.
Thereafter, in step S4090, the configuration management program 4110 refers to the information update status table 4152, and changes the information update status 41522 of the record corresponding to the storage ID 41521 acquired in step S4060 to “completed”. When the process of step S4090 is completed, the procedure returns to step S4050.
On the other hand, in step S4100, when differential information is stored in the group of configuration differential information tables 4140, the configuration management program 4110 reflects the information to the group of configuration information tables 4130. The differential information having been reflected is deleted from the group of configuration differential information tables 4140. Further, the process for storing the differential information in the group of configuration differential information tables 4140 will be described later with reference to
Next, in step S4110, the configuration management program 4110 refers to the average time 41531 for updating information in the information update time table 4153, re-calculates the average value based on the average time 41531 and the time required to perform processes of steps S4010 to S4110, and updates the average time 41531 for updating information.
Next, in step S4120, the configuration management program 4110 erases the corresponding record stored in the information update status table 4152.
Based on the above-described processes, the process of the configuration management program 4110 updating the configuration information of the storage array 1000 and the virtual storage array 6000 included in the storage array group 7000 is completed.
In the present process, at first in step S5000, the configuration management program 4110 refers to the management task table 4151, and specifies the target 41513 manipulated via the management task.
Next, in step S5010, the configuration management program 4110 refers to the group of configuration information tables 4130, and specifies the storage array 1000 or the virtual storage array 6000 having the ownership of the target resource being manipulated by the management task.
Next, in step S5020, the configuration management program 4110 refers to the management task table 4151, and acquires the value of the necessity of tracking extent of impact 41514.
Then, in step S5030, the configuration management program 4110 determines whether tracking of the extent of impact is necessary or not. If tracking of the extent of impact is necessary, the procedure advances to step S5050, and if tracking of the extent of impact is not necessary, the procedure advances to S5040.
In step S5040, the configuration management program 4110 determines that the storage array 1000 or the virtual storage array 6000 specified in step S5010 is a storage array having impact, and determines that the other storage array 1000 or the virtual storage array 6000 included in the storage array group 7000 is a storage array not having impact.
In step S5050, the configuration management program 4110 refers to the group of configuration information tables 4130, tracks the corresponding relationship between the resource being the target being manipulated by the management task and other resources, and specifies the related storage array 1000 or the virtual storage array 6000.
Next, in step S5060, the configuration management program 4110 determines the storage array 1000 or the virtual storage array 6000 specified in step S5010 and the storage array 1000 or the virtual storage array 6000 specified in step S5050 as storage systems having impact, and determines the other the storage arrays 1000 or virtual storage arrays 6000 as storage arrays not having impact.
Now, the extent of impact of the change of configuration that has occurred as a result of executing the management task will be described taking the configuration illustrated in
As for the virtual storage array 1, only the area constructed in the storage array 1 is specified as the related storage array, and the area of the virtual storage array 1 constructed in the storage array 2 can be specified as an unrelated storage array. At this time, upon storing a record showing the information update status of the virtual storage array 6000 to the information update status table 4152, it is necessary to store records corresponding to the respective areas of the virtual storage array 6000 considering the relationship with the physical storage array 1000.
According to the above-described process, the process of the configuration management program 4110 specifying the extent of impact of the change of configuration occurring as a result of executing the management task is completed.
In the present processing, at first in step S6000, the administrator of the virtual storage array 6000 executes a management operation accompanying a change of configuration with respect to the virtual storage array 6000 via the user interface of the configuration management program 4110. Further, in present embodiment 1, it is assumed that the administrator of the virtual storage array 6000 immediately executes the management operation.
However, by other reasons, the process of S6010 and subsequent steps can be performed when a management task other than the management task specified in step S4010 is executed during execution on-going of the information update processing illustrated in
Next, in step S6010, the configuration management program 4110 refers to the information update status table 4152, and acquires the value of the information update status 41522 of the virtual storage array 6000 subjected to change of configuration.
Next, in step S6020, the configuration management program 4110 determines whether the information update status is “completed” or “execution on-going”. If the information update status is “completed” or “execution on-going”, the procedure advances to step S6060. If the information update status is not “completed” or “execution on-going” (in other words, if the information update status is “unexecuted”), the procedure advances to step S6030.
In step S6030, the configuration management program 4110 executes the specific processing of the extent of impact via the management task. The content of the processing is as shown in
Next in step S6040, the configuration management program 4110 refers to the information update status table 4152, and changes the information update order 41520 of the record corresponding to the ID of the storage array 1000 or the virtual storage array 6000 determined to have an impact in step S6030 to a value greater than the information update order of other records. In other words, the order of information update of the corresponding storage array 1000 or the virtual storage array 6000 is changed to be later than the other storage arrays 1000 or virtual storage arrays 6000.
Then, in step S6050, the configuration management program 4110 executes a management task of the change of configuration with respect to the virtual storage array 6000.
On the other hand, in step S6060, the configuration management program 4110 executes a management task of the change of configuration with respect to the virtual storage array 6000.
Next, in step S6070, the information gathering program 4120 executes an information acquisition processing for collecting the information on the change of configuration that has occurred via a management task (management operation).
Next, in step S6080, the information gathering program 4120 stores the information on the change of configuration gathered in step S6070 in the group of configuration differential information tables 4140.
The above has illustrated a processing according to embodiment 1 when the administrator of the virtual storage array 6000 executes management operation accompanying change of configuration with respect to the virtual storage array 6000 while the configuration management program 4110 is updating the configuration information of the storage array 1000 and the virtual storage array 6000 included in the storage array group 7000.
Other variations of the processes of steps S6060, S6070 and S6080 are possible. For example, the process of step S6080 does not necessarily have to be performed. In that case, regarding the result of the configuration management program 4110 updating the configuration information of the storage array 1000 and the virtual storage array 6000 included in the storage array group 7000, the result of the change of configuration executed for the virtual storage array 6000 will not be reflected by the administrator of the virtual storage array 6000. Therefore, in this case, the update result of the configuration information shows the configuration information of the time when information update was started.
Further, the processes of steps S6060, S6070 and S6080 can be changed so that, for example, the management task executed by the virtual storage administrator is stored in a queue, and the task is executed after completing update of the configuration information of the storage array 1000 and the virtual storage array 6000 included in the storage array group 7000.
The above has illustrated the data processing sequence according to embodiment 1. According to these processes, when the management software performs information update, the information update of the physical storage array and the virtual storage array can be performed without having to prohibit management operations from the virtual storage administrator. Since the manipulation operation of the virtual storage administrator is not prohibited, any arbitrary virtual storage administrator can change the configuration of the virtual storage array during update of information.
Further, in order to reduce the occurrence of change of configuration during information update, the order for updating information is changed dynamically based on the relationship between the physical storage array and the virtual storage array or between the virtual storage arrays, so that the update of information can be performed efficiently. Thereby, it becomes possible to avoid a situation where the virtual storage administrator cannot perform management operation to the virtual storage array for a long period of time, and the efficiency of operation management can be improved.
The differences between the present computer system and the computer system illustrated in
The actual example of the group of configuration information tables 4130b is shown in
The actual examples of the group of management information tables 4150b are illustrated in
The actual example of the information update status table 4152b is shown in
An actual example of the information update status table 4154b by the virtual storage administrator is shown in
Major portions of the operation of the present embodiment 2 are the same as the operation of embodiment 1, so only the differences therefrom are described hereafter. The differences of the sequence of the processing of the present embodiment 2 from the sequence of the processing of embodiment 1 are that the process performed when the configuration management program 4110 records the storage array 1000 and the virtual storage array 6000 as management targets differs, that the process performed when the configuration management program 4110 updates the configuration information of the storage array 1000 and the virtual storage array 6000 included in storage array group 7000 differs, and that there exists a process where the configuration management program 4110 updates only the information related to the virtual storage array 6000.
In step S1010b, the configuration management program 4110 demands the information gathering program 4120 to collect configuration information from the storage array 1000 designated by the user in step S1000. The information gathering program 4120 collects configuration information by communicating with the storage information service program 1212 stored in the storage array 1000, and stores the collected configuration information in the group of configuration information tables 4130b. At this time, the configuration information of the storage array 1000 is stored only in the group of tables 4130b1 for the storage array group administrator. If a virtual storage array 6000 is formed within the storage array 1000, the configuration information of the virtual storage array 6000 is stored both in the group of tables 4130b1 for the storage array group administrator and the group of tables 4130b2 for the virtual storage array administrator.
In step S4065b, the configuration management program 4110 refers to the information update status table 4154b by the virtual storage administrator, and determines whether or not the virtual storage array 6000 shown by the storage ID (identifier) acquired in step S4060 is subjected to information update by the virtual storage administrator or has completed information update within a certain period of time from the current time. If information update is being performed or if the information update has been completed within a certain period of time from the current time, the procedure advances to step S4185b. If information update is not being performed and the information update has not been completed within a certain period of time from the current time, the procedure advances to step S4070.
In step S4080b, the information gathering program 4120 collects the configuration information of the storage array 1000 or the virtual storage array 6000, and stores the same in the group of tables 4130b1 for the storage array group administrator of the group of configuration information tables 4130b.
In step S4085b, regarding the virtual storage array 6000 shown by the storage ID (identifier) acquired in step S4060, the configuration management program 4110 copies the information stored in the group of tables 4130b2 for the virtual storage array administrator to a corresponding table in the group of tables 4130b1 for the storage array group administrator.
In step S4090b, the configuration management program 4110 changes the information update status 4152b2 of the information update status table 4152b to “completed”, and stores the current date and time at that point of time to the final update time 4152b3.
In step S4100b, if differential information is stored in the group of configuration differential information tables 4140, the configuration management program 4110 reflects the information in the group of tables 4130b1 for the storage array group administrator of the group of configuration information tables 4130b. The differential information in which reflection of information is completed is deleted from the group of configuration differential information tables 4140.
In the present processing, at first in step S7000, the administrator of the virtual storage array 6000 demands to update the configuration information of the virtual storage array 6000 via the user interface of the configuration management program 4110.
Thereafter, in step S7010, the configuration management program 4110 refers to the information update status table 4152b, and determines whether or not the virtual storage array 6000 designated by the virtual storage administrator is subjected to information update by the storage array group administrator or has completed information update within a certain period of time from the current time. If information update is being performed or if the information update has been completed within a certain period of time from the current time, the procedure advances to step S7060. If information update is not being performed and the information update has not been completed within a certain period of time from the current time, the procedure advances to step S7020.
In step S7020, regarding the virtual storage array 6000 designated by the virtual storage administrator, the configuration management program 4110 changes the information update status of the information update status table 4154b by the virtual storage administrator to “execution on-going”.
Thereafter, in step S7030, the configuration management program 4110 demands the information gathering program 4120 to perform information acquisition processing of the virtual storage array 6000.
Next, in step S7040, the information gathering program 4120 collects the configuration information of the virtual storage array 6000, and stores the acquired configuration information in the group of tables 4130b2 for the virtual storage array administrator within the group of configuration information tables 4130b.
Thereafter, in step S7050, the configuration management program 4110 changes the information update status 4154b1 of the information update status table 4154b by the virtual storage administrator to “completed”, and stores the current date and time at that point of time to the final update time 4154b2.
On the other hand, in step S7060, regarding the virtual storage array 6000 designated by the virtual storage administrator, the configuration management program 4110 copies the information stored in the group of tables 4130b1 for the storage array group administrator to the corresponding table of the group of tables 4130b2 for the virtual storage array administrator.
The sequence of data processing according to embodiment 2 has been described above. According to these processes, even if the storage array group administrator or the virtual storage administrator updates information at independent timings, the present invention enables to prevent only a portion of the information from being updated to the latest state when seen from the storage array group administrator, and thus, the consistency of configuration information can be maintained as a whole.
Furthermore, if the update of information by the storage array group administrator and the update of information by the virtual storage administrator are executed at close timings, the present invention enables to prevent having to gather the same configuration information of the virtual storage array 6000 for multiple times, thereby shortening the information update time and reducing the load applied on the storage array.
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/JP2012/006937 | 10/30/2012 | WO | 00 | 11/26/2012 |