The present invention relates generally to storage systems and, more particularly, to a method and an apparatus to record and utilize access information in a conversion process between conventional volumes and thin provisioned volumes.
Hierarchical storage management also called tier management is a storage management method designed for improving utilization of storage resources in computer systems. Specifically, the utilization of resources is optimized by changing the location of data in a computer system based on the worth and usage of the data in the enterprise. On the other hand, the analysis and classification of the aforesaid worth and the usage are generally difficult tasks. Therefore, recently some storage system vendors proposed automated page-based hierarchical storage management performed by the storage system itself. With this function, the storage system itself monitors access characteristics of each small data storage area, such as a page, in a data storage volume or a file system region, and automatically relocates the data in the page based on the detected access characteristics. The data relocation is performed regardless of the usage of the data in the host or application side. For example, Compellent provides storage system products having automated page-based management or automated tire management capability. See http://www.compellent.com/Products/Software/Automated-Tiered-Storage.aspx.
Using pages mentioned above for providing data storage volumes can achieve reduction of storage cost, management cost, and power consumption. This approach is called thin provisioning for storage. With thin provisioning, a storage system provides virtual volumes as the storage area to store data for computers. For the virtual volumes, the storage system allocates and assigns a physical area to only a location having write access of the computers. The total amount of used physical area in a pool can be smaller than the total amount of virtual area shown to the computers. To realize this capability, the storage system divides the storage area (e.g., storage area in HDD or flash memory) into a plurality of fixed-length areas called chunks or pages, and manages mapping between chunks and logical segments in the virtual volumes.
Because an old and conventional method to provide data storage volumes is to assign the storage area to the whole area of the volumes at the creation of the volumes, a conversion process from conventional volumes to thin provisioned volumes (TPV) is required to achieve the above advantages such as the reduction of storage cost. For example, U.S. Pat. No. 7,162,600 to Kano discloses methods for migration between normal (not thin provisioning) volumes and thin provisioned volumes. In addition, conversion from TPVs to conventional volumes is also needed because the conventional method has an advantage from the performance perspective, since it does not involve a process to obtain an actual page having designated data from mapping relation between the area of virtual volume and pages.
With regard to the automated page-based hierarchical storage management, however, the management such as proper relocation does not work immediately after the conversion because the monitoring of access characteristics is started after the conversion even if the conversion is performed in order to achieve superior utilization of storage resources. In other words, it requires considerable time to realize an effect of the automated page-based hierarchical storage management after the conversion of volumes.
Exemplary embodiments of the invention provide a method and an apparatus to accomplish prompt improvement of utilization of storage resources with thin provisioning and automated page-based hierarchical storage management even with having conversion of volumes between conventional volume and TPV. With the presented invention, a storage system that provides conventional volumes and TPVs to host computers has a capability to monitor access characteristics of conventional volumes and a capability to continuously use the access characteristic information of a conventional volume as access characteristic information of a TPV in conversion from the conventional volume to the TPV. Efficient use and assignation of storage resources based on past access characteristics are performed immediately. In addition, the storage system maintains the historical access characteristics information with multiple bidirectional conversions between conventional volume and TPV. As another embodiment, plural storage systems exchange access characteristics information to maintain history of access characteristic with conversion of volumes between the storage systems.
An aspect of the present invention is directed to a method for providing storage volumes which are to be converted to thin provisioned volumes. The method comprises receiving from a host computer a read/write request identifying a target storage volume among the storage volumes and a target area of access; if the read/write request is a read request, transferring data stored in the target area of access of the target storage volume to the host computer, and updating an access information of the target storage volume; if the read/write request is a write request containing write data, storing the write data in the target area of access of the target storage volume, and updating an access information of the target storage volume; if the target storage volume does not have access information, generating access information for the converted thin provisioned volume from initial values; and if the target storage volume has access information, generating access information for the converted thin provisioned volume based on the access information of the target storage volume.
In some embodiments, the method further comprises determining whether there is a need to relocate data in the converted thin provisioned volume by referring to the generated access information. In specific embodiments, the method further comprises prior to updating the access information of the target storage volume, determining whether to update the access information by checking a “record access information” flag in a volume information regarding the target storage volume. The size of segments of the target storage volume is equal to an integral multiple of the segment size of the thin provisioned volume.
In some embodiments, during a relocation process of the converted thin provisioned volume, the method further comprises determining a location that stores data in the converted thin provisioned volume by using the generated access information. The access information for the thin provisioned volume is generated based on the access information of the storage volume, and the method further comprises, for each segment of a plurality of segments of the thin provisioned volume, determining whether there is a need to assign a chunk for said each segment; and if there is a need to assign a chunk for said each segment, determining a chunk to be assigned for said each segment according to the access information of the thin provisioned volume, assigning the chunk for said each segment, and copying data from the storage volume to the assigned chunk. The storage volumes may be disposed in a first storage system, and are to be converted to the thin provisioned volumes disposed in a second storage system.
Another aspect of the invention is directed to a system for providing storage volumes which are to be converted to thin provisioned volumes. The system comprises a host computer; and a first storage system connected with the host computer via a network, wherein the first storage system includes a first storage area and a storage controller which has a processor. The storage controller is configured to receive from a host computer a read/write request identifying a target storage volume among the storage volumes in the first storage area of the first storage system, and a target area of access. If the read/write request is a read request, the storage controller transfers data stored in the target area of access of the target storage volume to the host computer, and updates an access information of the target storage volume. If the read/write request is a write request containing write data, the storage controller stores the write data in the target area of access of the target storage volume, and updates an access information of the target storage volume. If the target storage volume does not have access information, the storage controller generates access information for the converted thin provisioned volume from initial values. If the target storage volume has access information, the storage controller generates access information for the converted thin provisioned volume based on the access information of the target storage volume.
In some embodiments, a second storage system is connected with the first storage system. The second storage system includes a second storage area. The storage volumes are disposed in the first storage area of the first storage system and are to be converted to the thin provisioned volumes disposed in the second storage area of the second storage system.
Another aspect of the invention is directed to a computer-readable storage medium storing a plurality of instructions for controlling a data processor to provide storage volumes which are to be converted to thin provisioned volumes. The plurality of instructions comprise instructions that cause the data processor to receive from a host computer a read/write request identifying a target storage volume among the storage volumes and a target area of access; if the read/write request is a read request, instructions that cause the data processor to transfer data stored in the target area of access of the target storage volume to the host computer, and update an access information of the target storage volume; if the read/write request is a write request containing write data, instructions that cause the data processor to store the write data in the target area of access of the target storage volume, and update an access information of the target storage volume; if the target storage volume does not have access information, instructions that cause the data processor to generate access information for the converted thin provisioned volume from initial values; and if the target storage volume has access information, instructions that cause the data processor to generate access information for the converted thin provisioned volume based on the access information of the target storage volume.
These and other features and advantages of the present invention will become apparent to those of ordinary skill in the art in view of the following detailed description of the specific embodiments.
In the following detailed description of the invention, reference is made to the accompanying drawings which form a part of the disclosure, and in which are shown by way of illustration, and not of limitation, exemplary embodiments by which the invention may be practiced. In the drawings, like numerals describe substantially similar components throughout the several views. Further, it should be noted that while the detailed description provides various exemplary embodiments, as described below and as illustrated in the drawings, the present invention is not limited to the embodiments described and illustrated herein, but can extend to other embodiments, as would be known or as would become known to those skilled in the art. Reference in the specification to “one embodiment”, “this embodiment”, or “these embodiments” means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment of the invention, and the appearances of these phrases in various places in the specification are not necessarily all referring to the same embodiment. Additionally, in the following detailed description, numerous specific details are set forth in order to provide a thorough understanding of the present invention. However, it will be apparent to one of ordinary skill in the art that these specific details may not all be needed to practice the present invention. In other circumstances, well-known structures, materials, circuits, processes and interfaces have not been described in detail, and/or may be illustrated in block diagram form, so as to not unnecessarily obscure the present invention.
Furthermore, some portions of the detailed description that follow are presented in terms of algorithms and symbolic representations of operations within a computer. These algorithmic descriptions and symbolic representations are the means used by those skilled in the data processing arts to most effectively convey the essence of their innovations to others skilled in the art. An algorithm is a series of defined steps leading to a desired end state or result. In the present invention, the steps carried out require physical manipulations of tangible quantities for achieving a tangible result. Usually, though not necessarily, these quantities take the form of electrical or magnetic signals or instructions capable of being stored, transferred, combined, compared, and otherwise manipulated. It has proven convenient at times, principally for reasons of common usage, to refer to these signals as bits, values, elements, symbols, characters, terms, numbers, instructions, or the like. It should be borne in mind, however, that all of these and similar terms are to be associated with the appropriate physical quantities and are merely convenient labels applied to these quantities. Unless specifically stated otherwise, as apparent from the following discussion, it is appreciated that throughout the description, discussions utilizing terms such as “processing”, “computing”, “calculating”, “determining”, “displaying”, or the like, can include the actions and processes of a computer system or other information processing device that manipulates and transforms data represented as physical (electronic) quantities within the computer system's registers and memories into other data similarly represented as physical quantities within the computer system's memories or registers or other information storage, transmission or display devices.
The present invention also relates to an apparatus for performing the operations herein. This apparatus may be specially constructed for the required purposes, or it may include one or more general-purpose computers selectively activated or reconfigured by one or more computer programs. Such computer programs may be stored in a computer-readable storage medium, such as, but not limited to optical disks, magnetic disks, read-only memories, random access memories, solid state devices and drives, or any other types of media suitable for storing electronic information. The algorithms and displays presented herein are not inherently related to any particular computer or other apparatus. Various general-purpose systems may be used with programs and modules in accordance with the teachings herein, or it may prove convenient to construct a more specialized apparatus to perform desired method steps. In addition, the present invention is not described with reference to any particular programming language. It will be appreciated that a variety of programming languages may be used to implement the teachings of the invention as described herein. The instructions of the programming language(s) may be executed by one or more processing devices, e.g., central processing units (CPUs), processors, or controllers.
Exemplary embodiments of the invention, as will be described in greater detail below, provide apparatuses, methods and computer programs for recording and utilizing access information in a conversion process between conventional volumes and thin provisioned volumes.
A.1. System Configuration
The host 500 and management computer 520 are connected to the host interface 113 via the SAN 900 (e.g., Fibre Channel, Fibre Channel over Ethernet, or iSCSI(IP)). The host 500, management computer 520, and storage controller 110 are connected to each other via the LAN 902 (e.g., IP network). The host 500 has a file system 501, an operating system 502, and an application program 503. To execute these programs, the host 500 also has resources such as processor, memory, and storage devices not shown in
Volumes (Logical Units or LUs) provided by the storage system 100 are produced from collection of areas in HDDs. They may be protected by storing parity code (i.e., by RAID configuration) or mirroring.
A.2. Overview of Method for Providing Volumes
As mentioned above, the storage system 100 provides TPVs and conventional volumes.
As shown in U.S. Pat. No. 7,441,096, the storage system 100 can realize page-based transparent data relocation between chunks by copying data and changing mapping information 201.
The storage system 100 also provides conventional volumes. The storage controller 110 allocates storage areas to the whole area of the conventional volume 630 at creation of the volume as shown in
The volume information 203 is also used to supply TPVs as data storage volumes provided by the storage system 100 to the host 500, by referring to the TPV ID. In other words, the volume information 203 maintains the relation (mapping) between the public volume ID and the TPV ID. The volume information 203 also includes information regarding segment size of each volume of not only the TPV but the conventional volume. That is, both the TPV and conventional volume have a fixed-length segment. The segment size may be selectable and registered by the user via the host 500, the management computer 520, and/or the management terminal of the storage system 100. In addition, the volume information 203 has a “Record Access Information” flag and an “Under Conversion” flag as described below. The initial value of the “Record Access Information” flag is “Yes” and the initial value of the “Under Conversion” is “No.”
A.3. Overview of Write Process
A.4. Overview of Read Process
A.5. Write Process for TPV
At step 1203 (a chunk has not been assigned), the storage controller 110 assigns a new chunk to store the write data. To do this, the storage controller 110 updates the mapping information 201 and pool information 202. By using the pool information 202, the storage controller 110 finds the new chunk from internal storage. At step 1204, the storage controller 110 stores the write data to the new chunk, and then the process proceeds to step 1209.
At step 1205 (a chunk has been assigned), the storage controller 110 checks the “Under Relocation” flag in the mapping information 201 and “Under Conversion” flag in the volume information 203. The “Under Relocation” flag is set in the relocation process described below and shows whether the chunk is under relocation or not. The “Under Conversion” flag is set in the conversion process described below and shows whether the chunk is under conversion as source of conversion or not. If the status is under relocation or under conversion, the process proceeds to step 1206. If not, the process proceeds to step 1208.
At step 1206 (under relocation or under conversion), by referring to the relocation information 206 described below, the storage controller 110 checks whether the area regarding write in the chunk has been copied in the relocation process. The storage controller 110 may also check the copy progress information for conversion process described below. If yes, the process proceeds to step 1207. If not, the process proceeds to step 1208. At step 1207, the storage controller 110 stores the write data to the relocation target or the converted volume, and then the process proceeds to step 1208. At step 1208, the storage controller 110 stores the write data to the existing chunk.
At step 1209, the storage controller 110 updates the access information 204. This information records access characteristics regarding the segment (i.e., page) and used for determination of relocation described below. At step 1210, if the storage controller 110 has checked all segments of the target area, the process ends. If not, the storage controller 110 advances the check to the next segment (step 1211).
A.6. Read Process for TPV
At step 1303 (a chunk has been assigned), the storage controller 110 transfers data stored in the chunk to the host 500. At step 1304, the storage controller 110 updates the access information 204. At step 1305 (a chunk has not been assigned), the storage controller 110 sends data of zero (0) to the host 500. Finally, at step 1306, if the storage controller 110 has checked all segments of the target area, the process ends. If not, the storage controller 110 advances the check to the next segment (step 1307).
A.7. Relocation Decision Process
As mentioned above, the relocation of data can be performed for the TPV to achieve efficient use of storage resources.
At step 1401, storage controller 110 chooses a segment (i.e., page) to be examined. At step 1402, by referring to the access information 204, the storage controller 110 obtains one or more values to be compared with the relocation condition 205. At step 1403, the storage controller 110 decides whether the relocation of data in the segment should be performed according to the relocation condition 205.
At step 1404, if the relocation will be performed as a result of the decision, the process proceeds to step 1405. If not, the process ends. At step 1405, the storage controller 110 finds a destination of the relocation in a suitable tier determined from the condition and updates the pool information 202. At step 1406, the storage controller 110 performs the relocation. The detailed process is described below.
In order to adjust the actual location of data in the TPV 610 according to usage of data, the above relocation decision process is repeated at a predetermined interval or performed when the load of the storage system 110 is low. This process is performed for segments that have stored data.
A.8. Relocation Process
A.9. Write Process for Conventional Volume
According to embodiments of this invention, the access information 204 is recorded (i.e., access characteristics is monitored) also for the conventional volumes 630 if a flag of “Record Access Information” in the volume information 203 is “Yes.” This flag may be set and changed for the conventional volume 630 by the user via the host 500, management computer 520, and/or management terminal of the storage system 100. The default value of this flag is ‘Yes’.
At step 1603, the storage controller 110 checks whether the area regarding write in the volume has been copied in the conversion process. If yes, the process proceeds to step 1604. If not, the process proceeds to step 1605. At step 1604, the storage controller 110 stores the write data to the converted volume, and then the process proceeds to step 1605. At step 1605, the storage controller 110 stores the write data to the target area of the write access. At step 1606, the storage controller 110 checks the “Record Access Information” flag in the volume information 203 regarding the target conventional volume 630, and determines whether the access information should be recorded in step 1607. If the flag is ‘Yes’, the process proceeds to step 1608. If not, the process ends. At step 1608, the storage controller 110 updates the access information 204.
A.10. Read Process for Conventional Volume
A. 11. Conversion Process
At step 1803, the storage controller 110 checks the “Record Access Information” flag of the volume to be converted (i.e., whether the volume to be converted has access information or not). If the volume to be converted has access information, the storage controller 110 generates the access information for the converted volume from the access information of the volume to be converted (step 1804). Otherwise, the storage controller 110 generates the access information for the converted volume with initial values for the access information 204 (step 1805). At step 1806, the storage controller 110 sets a flag of “Under Conversion” for the volume to be converted in the volume information 203 to “Yes.”
At step 1807, the storage controller 110 checks the type of the volume specified as the converted volume. If the type is TPV, the process proceeds to step 1808. If the type is conventional volume, the process proceeds to step 1813.
At step 1808 (TPV type), the storage controller 110 examines the necessity of assigning a chunk for each segment of the converted volume. For the converted volume, the segment is defined based on the segment size of the TPV used as the converted volume. As one example of methods for the examination of the necessity, the storage controller 110 can check the data in the segment and can regard a segment as unused segment requiring no assigned actual area (i.e., the necessity of assigning a chunk) when the data is all zero (0) data or a specific predefined pattern of data. At step 1809, the storage controller 110 refers to the access information 204 for the converted volume to select the appropriate chunk for the segments demanding a chunk. At step 1810, the storage controller 110 determines a chunk for each segment of the converted volume according to the access information 204 if the segment needs a chunk. The segment mentioned here is defined by the segment size of the TPV used as the converted volume. At step 1811, the storage controller 110 creates a new TPV and assigns chunks to the TPV by updating the mapping information 201 and pool information 202 based on the plan for the assignment of chunks. At step 1812, the storage controller 110 copies data from the corresponding storage area in the volume to be converted to the assigned chunk. This copy process can be performed with a manner similar to the relocation process in
At step 1813 (conventional volume type), by updating the volume information 203, the storage controller 110 creates a new conventional volume that will be the converted volume. At step 1814, the storage controller 110 copies data from the volume to be converted to the new conventional volume. This copy process can also be performed with a manner similar to the relocation process in
Subsequently, at step 1815, the storage controller 110 sets a flag of “Under Conversion” for the volume to be converted in the volume information 203 to “No.” At step 1816, the storage controller 110 changes the public volume ID for the volume to be converted to the ID of the created volume. In other words, the storage controller 110 changes the relation (mapping) between the volume to be converted and the actual converted volume with maintaining exposed ID as transparent migration by updating the volume information 203.
With the method described above, prompt improvement of utilization of storage resources with thin provisioning and automated page-based hierarchical storage management are achieved even with having conversion of volumes between conventional volume and TPV. Especially by using the above conversion process, proper usage of storage resources immediately after the creation of the TPV based on the past access characteristics can be accomplished.
A.12. Another example of Conversion process
A.13. Correspondence Relation of Segment between Volume to be Converted and Converted Volume
In
In
In
One of the advantages of having such flexibility or selectability of the segment size is the achievement of applying large segment size for conventional volumes. That is, as shown above, the segment size of conventional volumes can be the integral multiple of the segment size of the thin provisioned volumes. It is reasonable because the access information is just recorded and is not used for the relocation for conventional volumes, and maintaining the access information of small (i.e., a large number of) segments requires a large amount of memory area in the memory 200 or disk 600. As mentioned above, the segment size of a volume that has the possibility to become a volume to be converted (e.g., a conventional volume in
The correspondence of segments can be acquired by calculation with the segment number and segment size. For example, (a start address of one segment in one volume)=(segment number of the segment)×(segment size of the volume), and then (the segment number of the corresponding segment in the other volume)=(the address)/(segment size of the other volume). The offset can be obtained as deference of the start address of the segments.
The recorded access information for the conventional volumes 630 and TPVs 610 can be transferred to the management computer 520 via SAN 900 and/or LAN 902. That is, it can be obtained, monitored, analyzed, displayed and reported by the management computer 520. It may also be used to make a policy or plan for data management and volume management including charging.
By copying and applying the access information 240 from one storage system having the volume to be converted (i.e., source of migration) to the other storage system 100 having the converted volume (i.e., destination of migration) via the SAN 900 or LAN/WAN 902, prompt improvement of utilization of storage resources with thin provisioning and automated page-based hierarchical storage management are achieved even with having conversion of volumes between conventional volume and TPV among multiple storage systems 100. In other words, by using processes described in the first embodiment to the system configuration with multiple storage systems 100, the same consequence is achieved even in the multiple storage systems 100. That is, plural storage systems exchange access characteristics information to maintain history of access characteristic with conversion of volumes between the storage systems 100.
Of course, the system configurations illustrated in
In the description, numerous details are set forth for purposes of explanation in order to provide a thorough understanding of the present invention. However, it will be apparent to one skilled in the art that not all of these specific details are required in order to practice the present invention. It is also noted that the invention may be described as a process, which is usually depicted as a flowchart, a flow diagram, a structure diagram, or a block diagram. Although a flowchart may describe the operations as a sequential process, many of the operations can be performed in parallel or concurrently. In addition, the order of the operations may be re-arranged.
As is known in the art, the operations described above can be performed by hardware, software, or some combination of software and hardware. Various aspects of embodiments of the invention may be implemented using circuits and logic devices (hardware), while other aspects may be implemented using instructions stored on a machine-readable medium (software), which if executed by a processor, would cause the processor to perform a method to carry out embodiments of the invention. Furthermore, some embodiments of the invention may be performed solely in hardware, whereas other embodiments may be performed solely in software. Moreover, the various functions described can be performed in a single unit, or can be spread across a number of components in any number of ways. When performed by software, the methods may be executed by a processor, such as a general purpose computer, based on instructions stored on a computer-readable medium. If desired, the instructions can be stored on the medium in a compressed and/or encrypted format.
From the foregoing, it will be apparent that the invention provides methods, apparatuses and programs stored on computer readable media for recording and utilizing access information in a conversion process. With this invention, efficient use and assignation of storage resources based on past access characteristics can be performed immediately. Additionally, while specific embodiments have been illustrated and described in this specification, those of ordinary skill in the art appreciate that any arrangement that is calculated to achieve the same purpose may be substituted for the specific embodiments disclosed. This disclosure is intended to cover any and all adaptations or variations of the present invention, and it is to be understood that the terms used in the following claims should not be construed to limit the invention to the specific embodiments disclosed in the specification. Rather, the scope of the invention is to be determined entirely by the following claims, which are to be construed in accordance with the established doctrines of claim interpretation, along with the full range of equivalents to which such claims are entitled.