Migrate data from large interval pool to small interval pool
By creating the correspondence between the logical volume interval and the physical offset position, an efficient method of migrating data from a large interval pool to a small interval pool is realized, and the problem of resource consumption and performance degradation in the existing technology is solved.
Patent Information
- Application Number
- CN202080009281.0
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2019-01-25
- Filing Date
- 2020-01-21
- Publication Date
- 2025-05-23
- Estimated Expiration
- 2040-01-21
AI Technical Summary
The prior art methods are expensive and require the host to copy data or implement flash replicas when migrating data from large interval pools to small interval pools, resulting in resource consumption and performance degradation.
By identifying data migration requests, a correspondence between the logical volume interval of the volume and the physical offset position of the source storage pool is created, using this correspondence to migrate data from the source storage pool to the destination storage pool, avoiding host replication and flash replicas.
It reduces the time and resources for data migration, improves system performance, and realizes efficient data migration.
Smart Images

Figure CN113302602B_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to data migration, and more particularly, the present invention relates to migrating data from a first extent pool to a second extent pool having a smaller granularity than the first extent pool. Background Art
[0002] Interval pools in a storage product can have different interval sizes. For example, a 1GB interval size can be implemented for a large interval pool, and a 16MB interval size can be implemented for a small interval pool. Some workloads may perform better in a small interval pool when compared to a large interval pool. However, current methods of transferring data are expensive and involve using a host to copy data or implementing a flash copy. Therefore, there is a need to efficiently migrate volumes from a large interval pool to a small interval pool. Summary of the invention
[0003] According to one embodiment, a computer-implemented method includes: identifying a request to migrate data associated with a volume from a source storage pool having a first rank interval size to a destination storage pool having a second rank interval size smaller than the first rank interval size, creating a correspondence between the logical volume interval of the volume and the physical offset position within the rank interval of the source storage pool, and migrating data from one or more ranks of the source storage pool to one or more ranks of the destination storage pool by utilizing the correspondence between the logical volume interval of the volume and the physical offset position within the rank interval of the source storage pool.
[0004] In this way, data is migrated from a source storage pool to a destination storage pool having a rank interval size that is smaller than the rank interval size of the source storage pool without having to use a host to copy data or implement a flash copy. This reduces the time and amount of resources used by one or more systems to perform data migration, improving the performance of one or more systems.
[0005] In an optional embodiment, creating the correspondence includes: identifying a volume segment table (VST) entry within the volume, the volume segment table (VST) entry corresponding to a rank interval within the source storage pool containing data to be migrated; and creating a small VST for each identified VST entry.
[0006] According to another embodiment, a computer program product for migrating data from a large extent pool to a small extent pool includes a computer-readable storage medium having program instructions embodied therein, the computer-readable storage medium not being a transient signal per se, and wherein the program instructions are executable by a processor to cause the processor to perform a method that includes: using the processor, identifying a request to migrate data associated with a volume from a source storage pool having a first extent size to a destination storage pool having a second extent size that is less than the first extent size, using the processor to create a correspondence between a logical extent of the volume and a physical offset position within an extent of the source storage pool, and using the processor, using the correspondence between the logical extent of the volume and the physical offset position within the extent of the source storage pool, to migrate the data from one or more extents of the source storage pool to one or more extents of the destination storage pool.
[0007] A system according to another embodiment includes a processor, and logic integrated with or integrated with and executable by the processor, wherein the logic is configured to: identify a request to migrate data associated with a volume from a source storage pool having a first extent size to a destination storage pool having a second extent size that is less than the first extent size, create a correspondence between a logical extent of the volume and a physical offset position within an extent of the source storage pool, and use the correspondence between the logical extent of the volume and the physical offset position within the extent of the source storage pool to migrate the data from one or more extents of the source storage pool to one or more extents of the destination storage pool.
[0008] A computer-implemented method according to another embodiment includes: identifying a request to migrate data associated with a volume from a source storage pool to a destination storage pool, identifying a volume segment table (VST) entry corresponding to an extent of the source storage pool that contains the data, allocating and synchronizing a small VST for the identified VST entry within the volume, allocating one or more extents within the destination storage pool, transferring the data associated with the volume from the extent within the source storage pool that contains the data to the one or more extents within the one or more extents of the destination storage pool, updating the small VST to correspond to the transferred data within the one or more extents within the one or more extents of the destination storage pool, and releasing the data from the one or more extents within the source storage pool.
[0009] In this way, data is migrated from a source storage pool to a destination storage pool having an extent size that is less than the extent size of the source storage pool. This can improve the performance of applications accessing data in the destination storage pool because applications can perform better when using smaller extents.
[0010] According to another embodiment, a computer program product for migrating data from a large interval pool to a small interval pool includes a computer-readable storage medium having program instructions embodied therein, wherein the computer-readable storage medium itself is not a transient signal, and wherein the program instructions can be executed by a processor to cause the processor to perform a method, which includes: using the processor to identify a request to migrate data associated with a volume from a source storage pool to a destination storage pool, using the processor to identify a VST entry corresponding to a rank interval containing the data in the source storage pool, using the processor to allocate and synchronize a small VST for each VST entry in the identified VST entries in the volume, using the processor to allocate one or more rank intervals in the destination storage pool, using the processor to transfer the data associated with the volume from the rank interval in the source storage pool containing the data to the one or more rank intervals in the one or more ranks of the destination storage pool, using the processor to update the small VST to correspond to the transferred data in the one or more rank intervals in the one or more ranks of the destination storage pool, and using the processor to release the data from the one or more rank intervals in the source storage pool.
[0011] Other aspects and embodiments of the present invention will become apparent from the following detailed description, which, taken in conjunction with the accompanying drawings, illustrate, by way of example, the principles of the invention. BRIEF DESCRIPTION OF THE DRAWINGS
[0012] Figure 1 A network architecture according to one embodiment is shown.
[0013] Figure 2 It shows that according to one embodiment, Figure 1 A representative hardware environment associated with a server and / or client.
[0014] Figure 3 A hierarchical data storage system according to one embodiment is shown.
[0015] Figure 4 A method for migrating data from a large interval pool to an inter-small interval pool according to one embodiment is shown.
[0016] Figure 5 A method for migrating data from a source storage pool to a destination storage pool having a smaller extent granularity than the source pool is shown according to one embodiment.
[0017] Fig. 6A An exemplary storage environment before data migration according to one embodiment is shown.
[0018] Figure 6B An exemplary storage environment responding to a migration request according to one embodiment is shown.
[0019] Figure 6C An exemplary storage environment during data migration from a source pool to a destination pool according to one embodiment is shown.
[0020] Fig.6D An exemplary storage environment after data migration from a source pool to a destination pool is shown according to one embodiment. DETAILED DESCRIPTION
[0021] The following description discloses several preferred embodiments of systems, methods, and computer program products for migrating data from a large interval pool to a small interval pool. Each embodiment provides a method for creating a correspondence between a logical volume interval of a volume and a physical offset position within a rank interval of a source storage pool, and using the correspondence to migrate data from one or more ranks of a source storage pool to one or more ranks of a destination storage pool.
[0022] The following description is made for the purpose of illustrating the general principles of the invention and is not intended to limit the inventive concepts claimed herein.Furthermore, specific features described herein may be used in combination with other described features in each of the different possible combinations and ranks.
[0023] Unless expressly defined otherwise herein, all terms are to be given their broadest possible interpretation, including the meaning implied from the specification and as understood by those skilled in the art and / or as defined in dictionaries, treatises, and the like.
[0024] It must also be noted that, as used in this specification and the appended claims, the singular forms "a", "an", and "the" include plural referents unless otherwise indicated. It will be further understood that when the terms "include" and / or "comprises" are used in this specification, they specify the presence of stated features, integers, steps, operations, elements, and / or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and / or groups thereof.
[0025] The following description discloses several preferred embodiments of systems, methods, and computer program products for migrating data from a large inter-area pool to an inter-area pool.
[0026] In a general embodiment, a computer-implemented method includes: identifying a request to migrate data associated with a volume from a source storage pool having a first rank interval size to a destination storage pool having a second rank interval size smaller than the first rank interval size, creating a correspondence between the logical volume interval of the volume and the physical offset position within the rank interval of the source storage pool, and migrating data from one or more ranks of the source storage pool to one or more ranks of the destination storage pool using the correspondence between the logical volume interval of the volume and the physical offset position within the rank interval of the source storage pool.
[0027] In this way, data is migrated from a source storage pool to a destination storage pool having a rank interval size that is smaller than the rank interval size of the source storage pool without having to use a host to copy the data or implement a flash copy. This reduces the amount of time and resources of one or more systems performing the data migration, which improves the performance of one or more systems.
[0028] In another general embodiment, creating the correspondence includes identifying VST entries in the volume that correspond to rank intervals in the source storage pool containing the data to be migrated, and creating a small VST for each identified VST entry.
[0029] In another general embodiment, a computer program product for migrating data from a large interval pool to a small interval pool, the computer program product comprising a computer-readable storage medium having program instructions embodied therewith, wherein the computer-readable storage medium is not a transient signal itself, and wherein the program instructions are executable by a processor to cause the processor to execute a method comprising: using the processor to identify a request to migrate data associated with a volume from a source storage pool having a first rank interval size to a destination storage pool having a second rank interval size smaller than the first rank interval size, using the processor to create a correspondence between a logical volume interval of the volume and a physical offset position within the rank interval of the source storage pool, and using the processor to migrate data from one or more ranks of the source storage pool to one or more ranks of the destination storage pool using the correspondence between the logical volume interval of the volume and the physical offset position within the rank interval of the source storage pool.
[0030] In another general embodiment, a system includes a processor and logic integrated with the processor, executable by the processor, or integrated with the processor and executable by the processor, wherein the logic is configured to identify a request to migrate data associated with a volume from a source storage pool having a first rank interval size to a destination storage pool having a second rank interval size smaller than the first rank interval size, create a correspondence between the logical volume interval of the volume and a physical offset position within the rank interval of the source storage pool, and migrate data from one or more ranks of the source storage pool to one or more ranks of the destination storage pool using the correspondence between the logical volume interval of the volume and the physical offset position within the rank interval of the source storage pool.
[0031] In another general embodiment, a computer-implemented method includes identifying a request to migrate data associated with a volume from a source storage pool to a destination storage pool, identifying a volume segment table (VST) entry corresponding to a rank interval within the source storage pool containing the data, allocating and synchronizing a small VST for the identified VST entry within the volume, allocating one or more rank intervals within the destination storage pool, transferring the data associated with the volume from the rank interval within the source storage pool containing the data to one or more rank intervals within the one or more ranks of the destination storage pool, updating the small VST to correspond to the transferred data in the one or more rank intervals within the one or more ranks of the destination storage pool, and releasing the data from the one or more rank intervals within the source storage pool.
[0032] In this way, data is migrated from a source storage pool to a destination storage pool having a rank interval size that is smaller than the rank interval size of the source storage pool. This can improve the performance of applications accessing data in the destination storage pool because applications can perform better when utilizing smaller rank intervals.
[0033] In another general embodiment, a computer program product for migrating data from a large interval pool to a small interval pool includes a computer-readable storage medium having program instructions embodied therewith, wherein the computer-readable storage medium itself is not a transient signal, and wherein the program instructions are executable by a processor to cause the processor to perform a method, the method comprising: using the processor to identify a request to migrate data associated with a volume from a source storage pool to a destination storage pool, using the processor to identify a VST entry corresponding to a rank interval within the source storage pool containing the data, using the processor to allocate and synchronize a small VST for each VST entry in the identified VST entries within the volume, using the processor to allocate one or more rank intervals within the destination storage pool, using the processor to transfer the data associated with the volume from the rank interval within the source storage pool containing the data to the one or more rank intervals in the one or more ranks of the destination storage pool, using the processor to update the small VST to correspond to the transferred data in the one or more rank intervals in the one or more ranks of the destination storage pool, and using the processor to release the data from the one or more rank intervals in the source storage pool.
[0034] Figure 1 1 shows an architecture 100 according to one embodiment. Figure 1 As shown, a plurality of remote networks 102 are provided including a first remote network 104 and a second remote network 106. A gateway 101 may be coupled between the remote network 102 and the adjacent network 108. In the context of the present architecture 100, the networks 104, 106 may each take any form, including but not limited to a LAN, a WAN such as the Internet, a public switched telephone network (PSTN), an internal telephone network, and the like.
[0035] In use, gateway 101 acts as an entry point from remote network 102 to adjacent network 108. As such, gateway 101 may function as both a router capable of directing a given data packet arriving at gateway 101 and a switch providing the actual path in and out of gateway 101 for a given packet.
[0036] Also included is at least one data server 114, which is coupled to the adjacent network 108 and is accessible from the remote network 102 via the gateway 101. It should be noted that the (one or more) data servers 114 can include any type of computing device / groupware. Coupled to each data server 114 are multiple user devices 116. The user devices 116 can also be directly connected through one of the networks 104, 106, 108. Such user devices 116 can include desktop computers, laptop computers, handheld computers, printers, or any other type of logic. It should be noted that in one embodiment, the user device 111 can also be directly coupled to any network.
[0037] A peripheral device 120 or a series of peripheral devices 120 (e.g., a fax machine, a printer, a networked and / or local storage unit or system, etc.) may be coupled to one or more of the networks 104, 106, 108. It should be noted that the database and / or additional components may be used with or integrated into any type of network element coupled to the networks 104, 106, 108. In the context of this specification, a network element may refer to any component of a network.
[0038] According to some approaches, the methods and systems described herein may be implemented with and / or on a virtual system and / or a system that emulates one or more other systems (such as a UNIX system emulating an IBM z / OS environment, a UNIX system virtually hosting a Microsoft WINDOWS environment, a Microsoft WINDOWS system emulating an IBM z / OS environment, etc.) In some embodiments, such virtualization and / or emulation may be enhanced by using VMWARE software.
[0039] In further approaches, one or more networks 104, 106, 108 may represent a cluster of systems often referred to as a "cloud." In cloud computing, shared resources such as processing power, peripherals, software, data, servers, etc. are provided to any system in the cloud on an on-demand basis, allowing services to be accessed and distributed across many computing systems. Cloud computing typically involves Internet connections between systems operating in the cloud, but other technologies for connecting systems may also be used.
[0040] Figure 2 According to one embodiment, Figure 1 1 and 12. The diagram shows a representative hardware environment associated with a user device 116 and / or server 114. The diagram shows a typical hardware configuration of a workstation having a central processing unit 210 such as a microprocessor and a plurality of other units interconnected via a system bus 212.
[0041] Figure 2The workstation shown in the figure includes random access memory (RAM) 214, read only memory (ROM) 216, an I / O adapter 218 for connecting peripheral devices such as a disk storage unit 220 to the bus 212, a user interface adapter 222 for connecting a keyboard 224, a mouse 226, a speaker 228, a microphone 232, and / or other user interface devices such as a touch screen and a digital camera (not shown) to the bus 212, a communications adapter 234 for connecting the workstation to a communications network 235 (e.g., a data processing network), and a display adapter 236 for connecting the bus 212 to a display device 238.
[0042] A workstation may have an operating system resident on it, such as Microsoft Operating system (OS), MACOS, UNIX OS, etc. It will be appreciated that the preferred embodiment may also be implemented on platforms and operating systems other than those mentioned. The preferred embodiment may be written using XML, C and / or C++ languages or other programming languages together with object-oriented programming methods. Object-oriented programming (OOP) may be used, which has become increasingly used to develop complex applications.
[0043] See now Figure 3 , shows a storage system 300 according to one embodiment. It should be noted that according to different embodiments, Figure 3 Some of the elements shown in the figure may be implemented as hardware and / or software. The storage system 300 may include a storage system manager 312 for communicating with multiple media on at least one higher storage layer 302 and at least one lower storage layer 306. The higher storage layer 302 may preferably include one or more random access and / or direct access media 304, such as a hard disk in a hard disk drive (HDD), a non-volatile memory (NVM), a solid state memory in a solid state drive (SSD), flash memory, an SSD array, a flash memory array, etc., and / or other media indicated herein or known in the art. The lower storage layer 306 may preferably include one or more lower performance storage media 308, including sequential access media, such as tapes in a tape drive and / or optical media, slower access HDDs, slower access SSDs, etc., and / or other media indicated herein or known in the art. One or more additional storage layers 316 may include any combination of storage storage media desired by the designer of the system 300. Moreover, any of the higher storage layer 302 and / or the lower storage layer 306 may include a certain combination of storage devices and / or storage media.
[0044] The storage system manager 312 can communicate with the storage media 304, 308 on the upper storage layer 302 and the lower storage layer 306 through a network 310, such as a storage area network (SAN). Figure 3 , or some other suitable network type. Storage system manager 312 may also communicate with one or more host systems (not shown) via host interface 314, which may or may not be part of storage system manager 312. Storage system manager 312 and / or any other components of storage system 300 may be implemented in hardware and / or software, and may utilize a processor (not shown) to execute commands of a type known in the art, such as a central processing unit (CPU), a field programmable gate array (FPGA), an application specific integrated circuit (ASIC), etc. Of course, any arrangement of storage systems may be used, as will be apparent to those skilled in the art upon reading this specification.
[0045] In further embodiments, the storage system 300 may include any number of data storage tiers, and may include the same or different memory storage media within each storage tier. For example, each data storage tier may contain the same type of memory storage media, such as HDD, SSD, sequential access media (tapes in tape drives, optical disks in optical disk drives, etc.), direct access media (CD-ROM, DVD-ROM, etc.), or any combination of media storage types. In one such configuration, the higher storage tier 302 may include a large portion of an SSD storage medium for storing data in a higher performance storage environment, and include the remaining storage tiers of the lower storage tier 306 and the additional storage tier 316, which may include any combination of SSDs, HDDs, tape drives, etc. for storing data in a lower performance storage environment. In this way, more frequently accessed data, data with a higher priority, data that requires faster access, etc. may be stored in the higher storage tier 302, while data that does not have one of these attributes may be stored in the additional storage tier 316, including the lower storage tier 306. Of course, after reading this specification, those skilled in the art may design many other combinations of storage media types according to the embodiments presented herein to be implemented in different storage schemes.
[0046] According to some embodiments, a storage system (e.g., 300) may include logic configured to receive a request to open a data set, logic configured to determine whether the requested data set is stored in a lower storage tier 306 of the tiered data storage system 300 in multiple associated parts, logic configured to move each associated part of the requested data set to a higher storage tier 302 of the tiered data storage system 300, and logic configured to assemble the requested data set on the higher storage tier 302 of the tiered data storage system 300 from the associated parts.
[0047] Of course, according to different embodiments, the logic may be implemented as a method or computer program product on any device and / or system.
[0048] See now Figure 4 , shows a flow chart of a method 400 according to an embodiment. In different embodiments, the method 400 may be implemented according to the present invention. Figure 1-3 Of course, as will be appreciated by those skilled in the art after reading this specification, method 400 may include more Figure 4 These may be more or less than those specifically described in .
[0049] Each step of method 400 may be performed by any suitable component of an operating environment. For example, in various embodiments, method 400 may be performed in part or in whole by one or more servers, computers, or some other device having one or more processors therein. A processor (e.g., a processing circuit, chip, and / or module implemented in hardware and / or software and preferably having at least one hardware component) may be used in any device to perform one or more steps of method 400. Illustrative processors include, but are not limited to, a central processing unit (CPU), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), and the like, combinations thereof, or any other suitable computing device known in the art.
[0050] like Figure 4 As shown, method 400 may begin at operation 402, where a request is received to migrate data associated with a volume from a source storage pool having a first rank interval size to a destination storage pool having a second rank interval size that is smaller than the first rank interval size.
[0051] In addition, method 400 may continue with operation 404, wherein a correspondence is created between the logical volume interval of the volume and the physical offset position within the rank interval of the source storage pool. In one embodiment, creating the correspondence includes identifying a VST entry within the volume that corresponds to a rank interval within the source storage pool that contains the data to be migrated. For example, the VST may store a logical representation of the data stored within the volume, wherein the VST includes a plurality of entries. A subset of these entries may be identified within the VST, which corresponds to the rank interval within the source storage pool that contains the data to be migrated.
[0052] Further, in one embodiment, creating a correspondence may include creating a small VST for each identified VST entry. For example, for each of the subsets of the identified VST entries, a small VST may be created. In another example, each of the small VSTs may be used to represent all logical volume intervals within its corresponding VST entry at a higher granularity.
[0053] Further, in one embodiment, creating the correspondence may include setting the logical volume interval in the small VST to point to the corresponding offset position in the rank interval in the source storage pool containing the data to be migrated. In this way, a direct correspondence may be established between the logical volume interval of the small VST of the volume and the offset position in the rank interval in the source storage pool containing the data to be migrated.
[0054] Further, method 400 may proceed to operation 406, wherein data is migrated from one or more ranks of the source storage pool to one or more ranks of the destination storage pool using a correspondence between the logical volume intervals of the volume and the physical offset positions within the rank intervals of the source storage pool. In one embodiment, migrating the data may include selecting a plurality of rank intervals within the destination storage pool to receive the migrated data. For example, the plurality of rank intervals may be selected randomly or based on one or more criteria (e.g., rank number, data retrieval speed of the corresponding rank, amount of data currently stored in the corresponding rank, etc.).
[0055] Furthermore, in one embodiment, migrating data may include transferring data associated with the volume from one or more offset locations within a rank interval of a source storage pool to a selected plurality of rank intervals within a destination storage pool.
[0056] In addition, in one embodiment, migrating data may include releasing data from one or more rank intervals in the source storage pool. In another embodiment, migrating data may include adjusting the volume intervals in the small VST to point to the corresponding locations of the migrated data in the selected multiple rank intervals of the destination storage pool storing the transferred data.
[0057] In this way, data is migrated from a source storage pool to a destination storage pool having a rank interval size that is smaller than the rank interval size of the source storage pool without having to use a host to copy the data or implement a flash copy. This reduces the time and amount of resources of one or more systems performing the data migration, improving the performance of one or more systems.
[0058] See now Figure 5 , shows a flow chart of a method 500 for migrating data from a source storage pool to a destination storage pool having a smaller interval granularity than the source pool according to one embodiment. In different embodiments, the method 500 according to the present invention may be Figure 1-3 and 6A-D, etc. Of course, as will be appreciated by those skilled in the art upon reading this specification, method 500 may include more Figure 5 These may be more or less than those specifically described in .
[0059] Each step of method 500 may be performed by any suitable component of an operating environment. For example, in various embodiments, method 500 may be performed in part or in whole by one or more servers, computers, or some other device having one or more processors therein. A processor (e.g., a processing circuit, chip, and / or module implemented in hardware and / or software and preferably having at least one hardware component) may be used in any device to perform one or more steps of method 500. Illustrative processors include, but are not limited to, a central processing unit (CPU), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), and the like, combinations thereof, or any other suitable computing device known in the art.
[0060] like Figure 5 As shown, method 500 may begin at operation 502, where a request to migrate data associated with a volume from a source storage pool to a destination storage pool is identified. In one embodiment, a volume comprises a storage volume that organizes and presents a logical representation of data to one or more hosts in a continuous manner. In another embodiment, a volume comprises a plurality of volume extents. For example, each volume extent may comprise a logical extent.
[0061] In addition, in one embodiment, the storage pool includes one or more ranks. In another embodiment, each rank includes redundant storage (e.g., a RAID storage array, etc.). In yet another embodiment, data logically represented in a volume is physically stored in one or more ranks of the storage pool. For example, in one embodiment, each rank includes multiple rank intervals.
[0062] Further, in one embodiment, intervals within a rank are represented as entries within a rank segment table (RST) of the rank, where each rank interval is full or empty. For example, each rank interval represents a physical interval. In another example, each rank interval represents a predetermined amount of storage for storing data within a storage pool. In yet another example, a full rank interval includes a logical location of data within a volume (e.g., an identification of a volume and a volume interval within the volume where the data is logically stored and presented to one or more hosts).
[0063] Furthermore, in one embodiment, the source storage pool includes one or more ranks that initially store all data logically represented in the volume. In another embodiment, the data logically represented in the volume is physically stored in multiple ranks within the source storage pool.
[0064] Furthermore, in one embodiment, the source storage pool has a first rank interval size, and the destination storage pool has a second rank interval size that is smaller than the first rank interval size. For example, the source storage pool may have a rank interval of 1GB size, and the second interval pool may have a rank interval of 16MB size.
[0065] Additionally, method 500 may proceed to operation 504, where VST entries corresponding to rank intervals containing data within the source storage pool are identified. In one embodiment, volume intervals are grouped within entries of a volume segment table (VST), where each volume interval is full or empty. For example, in one embodiment, a full volume interval includes the physical location of the data within the source storage pool (e.g., an identification of a rank storing data associated with the volume interval and a rank interval within the rank). In another example, each entry of the VST includes a predetermined number of contiguous volume intervals. In yet another example, the VST maps logical intervals of a volume (e.g., volume intervals) to physical intervals of one or more ranks within the storage pool (e.g., rank intervals).
[0066] In addition, method 500 can continue with operation 506, wherein a small VST is allocated and synchronized for the VST entry of the identification within the volume. In one embodiment, the small VST represents and manages the entries of the VST at a higher granularity. For example, each entry of the VST includes a plurality of volume intervals grouped only by the VST entry number identification. In another example, a single VST entry can be represented by a small VST having an entry corresponding to each of the plurality of volume intervals grouped within the single VST entry.
[0067] Further, in one embodiment, synchronizing the small VSTs may include setting the logical volume interval within each of each small VST to point to a corresponding offset position within a rank interval within the source storage pool that contains the data to be migrated. For example, the offset position of the rank interval represents a logical rank interval number within the logical representation of the rank interval (e.g., it indicates a predetermined portion of the rank interval). In another example, a rank interval of size 1GB may have multiple offset positions that each represent a 16MB portion of the rank interval (such that a single 1GB rank interval will have sixty-four 16MB offset positions, etc.). This allows the rank interval to be represented at a higher granularity.
[0068] In another embodiment, synchronizing the small VST may include filling the small VST so that they include a volume interval that contains an offset position within a corresponding rank interval within the source storage pool. In this way, the entries within the small VST are filled so that the organization (e.g., order, numbering, etc.) of the entries within the small VST matches the organization of the offset positions within the allocated rank interval corresponding to the small VST.
[0069] Additionally, method 500 may proceed to operation 508, where one or more rank intervals are allocated within the destination storage pool. In one embodiment, the number of rank intervals allocated within the destination storage pool corresponds to the size of the volume. For example, the total size of the data logically represented by the volume is allocated within the destination storage pool. In another example, the total size of the data logically represented by the volume is divided by the rank interval size of the destination storage pool to determine the number of rank intervals allocated within the destination storage pool. In another embodiment, the one or more rank intervals are allocated randomly, serially, non-serially, etc.
[0070] Additionally, in one embodiment, one or more rank intervals may be allocated based on one or more criteria. For example, one or more rank intervals may be allocated based on the data retrieval speed of the ranks within the destination storage pool. For example, each rank may be listed in order of decreasing data retrieval speed, and intervals may be allocated among the ranks based on the listing (e.g., starting with the rank with the fastest data retrieval speed, etc.).
[0071] In another example, one or more rank intervals may be allocated based on the amount of data currently stored in each rank within the destination storage pool. For example, the ranks may be listed in order of decreasing amount of currently available storage space, and the intervals may be allocated among the ranks according to the listing (e.g., starting with the rank with the most currently available intervals, etc.).
[0072] Additionally, method 500 may continue with operation 510, wherein data associated with the volume is transferred from a rank interval containing the data within the source storage pool to one or more rank intervals of one or more ranks of the destination storage pool. In one embodiment, transferring the data includes determining the locations of all offset locations within the rank intervals of the one or more RSTs of the source storage pool that correspond to all previously allocated volume intervals within the volume. In another embodiment, transferring the data includes determining all allocated rank intervals within the destination storage pool.
[0073] Furthermore, in one embodiment, transferring data includes transferring data stored in an offset position of a rank interval in a source storage pool to a corresponding allocated rank interval in a destination storage pool. For example, data stored in an offset position of a rank interval of a rank of a source storage pool is transferred to an allocated rank interval of a destination storage pool.
[0074] In addition, method 500 may continue with operation 512, in which the small VST is updated to correspond to the transferred data in one or more rank intervals in one or more ranks of the destination storage pool. For example, the volume interval is adjusted within the small VST of the volume to point to a corresponding location within the allocated one or more rank intervals of the destination storage pool storing the transferred data.
[0075] Additionally, method 500 may continue with operation 514, where data is released from one or more rank intervals within the source storage pool. In one embodiment, releasing data may include deleting data from one or more rank intervals within the source storage pool.
[0076] For example, a volume interval within a small VST initially identifies an offset position within a logical representation of a rank interval in a source storage pool where data logically represented by the volume interval is physically stored. In another example, the volume interval is updated within the small VST to identify an allocated rank interval of a destination storage pool to which data associated with the volume interval is migrated. In yet another example, the stored data is migrated from an offset position within a logical representation of a rank interval in a source storage pool to an allocated rank interval of a destination storage pool.
[0077] In this way, the volume intervals within the volume's small VST match the allocated rank intervals in the destination storage pool where the data associated with those volume intervals is stored. For example, the location of the volume intervals within the volume's small VST matches the allocated rank intervals of the data for the storage entry. This simplifies and speeds up data recall within the destination storage pool.
[0078] In one embodiment, one or more applications are provided with access to data at a destination storage pool. For example, one or more applications running on one or more hosts may send one or more data requests to the volume, and the volume may direct the data requests to the destination storage pool to achieve data access. In another embodiment, one or more applications may operate more efficiently when accessing data using a smaller rank interval granularity within the destination storage pool than a larger rank interval granularity within the source storage pool.
[0079] In this way, data is migrated from a source storage pool to a destination storage pool having a rank interval size that is smaller than the rank interval size of the source storage pool. This can improve the performance of applications accessing data in the destination storage pool because applications can perform better when utilizing smaller rank intervals.
[0080] Fig. 6A An exemplary storage environment 600 before data migration according to one embodiment is shown. As shown, VST 602 stores a logical representation of data stored in volume 0 604. In addition, RST stores a physical representation of data stored in rank 3 624 of source pool 0 626. In addition, the rank granularity of source pool 0 626 is 1 GB. For example, each rank interval in source pool 0 626 has a size of 1 GB.
[0081] Further, full volume interval VST entries 632 and 634 reference locations 630A-B within the RST where data is physically stored within source pool 0 626. For example, rank interval 0 630A of rank 3 624 of source pool 0 626 includes a link to VST entry 0 632 within volume 0 604. Conversely, VST entry 0 632 within volume 0 604 includes a link to rank interval 0 630A of rank 3 624 of source pool 0 626.
[0082] Likewise, rank interval 64 630B of rank 3 624 of source pool 0 626 includes a link to VST entry 2 634 within volume 0 604. Conversely, VST entry 2 634 within volume 0 604 includes a link to rank interval 64 630B of rank 3 624 of source pool 0 626.
[0083] In this way, connections between logical representations of data in volume 0 604 are mapped to physical representations of data in source pool 0 626 .
[0084] Figure 6B An exemplary storage environment 600 responding to a migration request according to one embodiment is shown. The rank granularity of destination pool 1 622 is 16MB. For example, each rank interval within destination pool 1 622 has a size of 16MB. Since the rank granularity of source pool 0 626 is 1GB, destination pool 1 622 has a smaller rank granularity than source pool 0 626.
[0085] In one embodiment, a request is received to migrate data from source pool 0 626 to destination pool 1 622. In another embodiment, in response to the migration request, small VSTs 614 and 616 are created within volume 0 604. For example, small VSTs 614 and 616 are used to represent volume extents within VST entry 0 632 and VST entry 2 634, respectively.
[0086] Additionally, in one embodiment, intervals 618A-E and 619A-E within the small VSTs 614 and 616 are updated to include links to corresponding offset locations 640A-E and 641A-E of the allocated rank intervals 630A and 630B. Logical representations 636 and 638 of the offset locations 640A-E and 641A-E of the allocated rank intervals 630A and 630B are shown. For example, volume interval 0 618A of the small VST 614 may be updated to point to offset location 0 640A of the logical representation 636 of the allocated rank interval 0 630A, volume interval 1 618B of the small VST 614 may be updated to point to offset location 1 640B of the logical representation 636 of the allocated rank interval 0 630A, and so on.
[0087] In this manner, a correlation may be made between the intervals 618A-618E and 619A-619E within the small VSTs 614 and 616 and the offset positions 640A-E and 641A-E of the allocated rank intervals 630A and 630B.
[0088] Figure 6C An exemplary storage environment 600 is shown during the migration of data from source pool 0 626 to destination pool 1 622 according to one embodiment. As shown, rank intervals 620A-E and 621A-E are allocated within destination rank 0 610 and destination rank 1 612 of destination pool 1 622. It should be noted that although the allocated rank intervals 620A-E and 621A-E are serial, the allocation may not be performed serially.
[0089] Additionally, although destination rank 0 610 and destination rank 1 612 are shown, rank intervals from other ranks within destination pool 622 may be allocated. For example, rank intervals may be randomly allocated between ranks within destination pool 622 based on data retrieval speed of the ranks, based on the amount of data currently stored in the ranks, and the like.
[0090] Further, as shown, data physically stored in offset position 0 640A of rank 0 630A of rank 3 624 has been transferred to rank interval 1 621B of destination rank 1 612, and rank interval 0 618A of small VST 614 is updated to point to rank interval 1 621B. Conversely, rank interval 1 621B of destination rank 1 612 of source pool 1 622 is updated to include a link to volume interval 0 618A within volume 0 604. This results in stale data at offset position 0 640A.
[0091] Similarly, as shown, the data physically stored in offset location 2 640C has been transferred to rank interval 1 620B of destination rank 0 610, and volume interval 2 618C of small VST 614 is updated to point to rank interval 1 620B. Conversely, rank interval 1 620B of destination rank 0 610 of source pool 1 622 is updated to include a link to volume interval 2 618C within volume 0 604. This results in outdated data at offset location 2 640C.
[0092] Further, as shown, the data physically stored in offset location 65 641B has been transferred to rank interval 0 621A of destination rank 1 612, and volume interval 129 619B of small VST 616 is updated to point to rank interval 0 621A. Conversely, rank interval 0 621A of destination rank 1 612 of source pool 1 622 is updated to include a link to volume interval 129 619B within volume 0 604. This results in outdated data at offset location 65 641B.
[0093] Likewise, as shown, the data physically stored in offset location 127 641E has been transferred to rank interval 2 620C of destination rank 0 610, and volume interval 191 619E of small VST 616 is updated to point to rank interval 2 620C. Conversely, rank interval 2 620C of destination rank 0 610 of source pool 1 622 is updated to include a link to volume interval 191 619E within volume 0 604. This results in outdated data at offset location 127 641E.
[0094] Fig.6D An exemplary storage environment 600 is shown after migration of data from source pool 0 626 to destination pool 1 622 according to one embodiment. As shown, all data physically stored in rank intervals 0 630A and 64 630B of source pool 0 626 is transferred to the allocated rank intervals within rank 0 610 and rank 1 612 of destination pool 1 622. In addition, the corresponding volume intervals in small VSTs 614 and 616 are updated to point to the corresponding rank intervals that now store the migrated data.
[0095] This results in obsolete data in all offset positions of rank intervals 0 630A and 64 630B, and thus releases the data in such rank intervals 0 630A and 64 630B.
[0096] In this way, data may be migrated from source pool 0 626 to destination pool 1 622, and volume 0 604 may be updated to reflect the migration.
[0097] Migrate volumes from large-interval pools to small-interval pools
[0098] Extent pools in a storage product can have different extent sizes. For example, a DS8000 may use 1GB extent sizes for large pools and 16MB for small pools. Some workloads perform better with small pools, while other workloads perform better with large extent pools. Therefore, there is a need to migrate volumes across extent pools of different sizes as workloads change.
[0099] Extent migration is the building block of volume migration. At the start of extent migration, a rank extent is allocated in the target extent pool as the migration target for the source extent. If the extent size is the same for both the source and target extent pools, the migration process involves allocating an extent in the target pool, migrating the data from the source to the target, maintaining backend I / O while the migration is ongoing (or performing mirror writes), and switching I / O to the target once the migration is complete.
[0100] A method is disclosed for migrating data from a large interval pool to a small interval pool in an efficient manner, wherein when the migration is interrupted (planned or unplanned), the migration can be resumed.
[0101] In one embodiment, the rank segment table (RST) is a mapping table that describes the state of the rank interval and the rank (array) of the logical volume interval to which the physical rank interval belongs. For example, assuming that the rank r0 is 1T and the interval size is 1G, the RST table will have 1024 entries, each representing a physical interval. If the rank interval 0 is assigned to the logical interval 1 of the volume 0x1010, the entry in the RST will have information indicating that the physical interval state is assigned and that it is assigned to the logical interval 1 of the volume 0x1010.
[0102] Furthermore, in one embodiment, a volume segment table (VST) is a mapping table of a volume that maps logical extents of a volume to physical extents of a rank, allowing us to easily identify the physical location when a host I / O reaches a volume LBA boundary.
[0103] Further, in one embodiment, the small volume segment table (smVST) is also a mapping table for the volume containing 64 entries, where each entry maps a small logical interval (16MB) to a ranked physical interval, so that we can easily identify the physical location when the host I / O reaches the volume LBA boundary.
[0104] Furthermore, in one embodiment, only the RST is persistent in disk, and the VST is built on demand based on the RST and loaded into memory.
[0105] Likewise, in one embodiment, the following steps provide for interval migration from a large interval pool to a small interval pool:
[0106] 1. Pre-check to ensure that the migration request can be satisfied.
[0107] 2. If it is a thin provisioned volume, stop thin provisioning writes.
[0108] 3. Update the volume extent pool ID to the target extent pool, turn on the volume flag to indicate ongoing space allocation and harden the volume structure.
[0109] 4. Assign a target RST object for the customer data.
[0110] 5. For thin provisioned volumes, if the source large extent has been allocated, 64 small extents are allocated in the target extent pool and marked as DSR_TGT. If the source extent is not allocated, no small extents need to be allocated in the target pool.
[0111] 6. Allocate metadata to the destination RST object.
[0112] 7. If it is a thin provisioned volume, resume thin provisioning writes.
[0113] 8. Harden the changed RST object by using the changed bitmap of RST.
[0114] 9. If it is a thin provisioned volume, stop thin provisioning writes.
[0115] 10. If all entries are in the unallocated state, allocate smVST.
[0116] 11. Send mail to the peer LPAR to synchronize smVST (this step is only valid for ESE volumes).
[0117] 12. If it is a thin provisioned volume, resume thin provisioning writes.
[0118] 13. Turn off the volume allocation flag, turn on the volume migration flag and harden the volume structure.
[0119] 14. Migrate volume intervals.
[0120] 15. Find the cell in DSR_TGT state in the target pool and pair it with the source cell block to start cell migration; maintain I / O in units of 16MB.
[0121] 16. Once all 16MB of customer data from the source interval is in the target, switch to the metadata update phase.
[0122] 17. Change and harden the state of the target RST to TGT_CMPLT state.
[0123] 18. If smVST does not exist, allocate smVST.
[0124] 19. Initialize the smVST entries to point to the relevant small blocks in the source large interval.
[0125] 20. Update smVST to point to the new target cells on all available clusters.
[0126] 21. Release all hold phase and destage I / O.
[0127] 22. CACHE SCAN destages all modified tracks in the cache destage interval.
[0128] 23. If the source interval is the last small block to be migrated to the target, release the source interval, otherwise, return to step 15 to process the next small block.
[0129] 24. Change and harden the state of the target RST to the allocated state.
[0130] Method for allocating space and timing to allocate / update smVST mapping table
[0131] In one embodiment, space is pre-allocated in the target extent pool before the migration begins. A 1GB large extent is equal to a 6416MB small extent, so if the source large extent is allocated, there will be 64 pre-allocated small extents in the target pool. If the source large extent is not yet allocated, there is no need to provide space in the target pool either.
[0132] If the source has not been allocated yet, smVST entries should be allocated for the 64 cell blocks; this way, once I / O starts writing to any of the 64 cell blocks, we can allocate cells from the target cell pool and update the smVST entry to point to the target cell. smVST updates need to be synchronized between storage nodes.
[0133] If the source large extent is in allocated state, we can still pre-allocate the smVST and update its entries to point to the relevant small blocks in the large extent, or delay the allocation of the smVST until the first 16MB small block of the large extent has been migrated to the target small extent.
[0134] Method for saving backend I / O
[0135] In one embodiment, backend I / O is maintained in 16MB small interval units. During the migration of 16MB small chunks from large intervals to the associated small intervals in the target pool, backend I / O is written to both the source and the target when the migration is performed from source to target. Once the majority of the client data from the source small chunk is in the target, the execution switches to the metadata update phase. The target RST state is changed to TGT_CMPLT state indicating that the copy is complete, and the execution updates the associated smVST entry to point to the target interval so that I / O can be directed to the target thereafter.
[0136] Methods for handling migration interruptions due to planned / unplanned reboots
[0137] When the migration is interrupted by a planned / unplanned reboot, part of the 1GB of data is in the source pool and the other part is in the target pool. How to choose which copy to use? How do we build the VST to map to the correct rank segment? In one embodiment, small is always assumed: the process can include scanning the ranks and building a VST for each RST that is in the TGT_CMPLT or allocated state. The RST from the small rank always overwrites the RST from the large rank. This is because if the cell is already in the TGT_CMPLT or allocated state, the I / O has already been switched to the target of the cell. Therefore, we need to rewrite the relevant smVST to point to the target cell.
[0138] The present invention may be a system, method, and / or computer program product. The computer program product may include a computer-readable storage medium (or medium) having computer-readable program instructions thereon, the computer-readable program instructions being used to cause a processor to perform various aspects of the present invention.
[0139] Computer readable storage medium can be a tangible device that can retain and store instructions for use by instruction execution devices. Computer readable storage medium can be, for example, but not limited to, electronic storage devices, magnetic storage devices, optical storage devices, electromagnetic storage devices, semiconductor storage devices, or any suitable combination of the foregoing. A non-exhaustive list of more specific examples of computer readable storage medium includes the following: portable computer disk, hard disk, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), static random access memory (SRAM), portable compact disk read-only memory (CD-ROM), digital versatile disk (DVD), memory stick, floppy disk, mechanical encoding device (such as punched card or a convex structure in a groove with instructions recorded thereon), and any suitable combination of the above. Computer readable storage medium as used herein should not be interpreted as transient signal itself, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagated by waveguides or other transmission media (e.g., light pulses by fiber optic cables), or electrical signals transmitted by wires.
[0140] The computer-readable program instructions described herein can be downloaded from a computer-readable storage medium to a corresponding computing / processing device or downloaded to an external computer or external storage device via a network (e.g., the Internet, a local area network, a wide area network, and / or a wireless network). The network can include copper transmission cables, optical transmission fibers, wireless transmissions, routers, firewalls, switches, gateway computers, and / or edge servers. The network adapter card or network interface in each computing / processing device receives the computer-readable program instructions from the network and forwards the computer-readable program instructions to be stored in a computer-readable storage medium within the corresponding computing / processing device.
[0141] The computer-readable program instructions for performing the operation of the present invention can be assembly instructions, instruction set architecture (ISA) instructions, machine instructions, machine-related instructions, microcode, firmware instructions, state setting data, or source code or object code written in any combination of one or more programming languages (including object-oriented programming languages such as Smalltalk, C++, and conventional procedural programming languages, such as "C" programming language or similar programming languages). The computer-readable program instructions can be executed completely on the user's computer, partially on the user's computer, executed as an independent software package, partially on the user's computer and partially on a remote computer, or completely on a remote computer or server. In the latter case, the remote computer can be connected to the user's computer through any type of network (including a local area network (LAN) or a wide area network (WAN)), or can be connected (for example, by using the Internet of an Internet service provider) to an external computer. In some embodiments, an electronic circuit (including, for example, a programmable logic circuit, a field programmable gate array (FPGA) or a programmable logic array (PLA)) can execute a computer-readable program instruction to personalize the electronic circuit by utilizing the state information of the computer-readable program instructions, so as to perform various aspects of the present invention.
[0142] Aspects of the present invention are described herein with reference to the flowchart illustrations and / or block diagrams of the methods, devices (systems), and computer program products according to embodiments of the present invention. It should be understood that each box of the flowchart and / or block diagram and the combination of each box in the flowchart and / or block diagram can be implemented by computer-readable program instructions.
[0143] These computer-readable program instructions may be provided to a processor of a general-purpose computer, a special-purpose computer, or other programmable data processing device to produce a machine that is executed by a processor of a computer or other programmable data processing device to create a device for implementing the functions / actions specified in one or more boxes of a flowchart and / or block diagram. These computer-readable program instructions may also be stored in a computer-readable storage medium that can instruct a computer, a programmable data processing device, and / or other device that functions in a specific manner, so that a computer-readable storage medium having instructions stored therein includes an article of manufacture that includes instructions for implementing various aspects of the functions / actions specified in one or more boxes of a flowchart and / or block diagram.
[0144] Computer-readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other apparatus to cause a series of operational steps to be performed on the computer, other programmable apparatus, or other device to produce a computer-implemented process, so that the instructions executed on the computer, other programmable apparatus, or other device implement the functions / actions specified in one or more boxes in the flowchart and / or block diagram.
[0145] The flow charts and block diagrams in the accompanying drawings show the architecture, functions and operations of the possible implementations of the systems, methods and computer program products according to various embodiments of the present invention. To this end, each box in the flow chart or block diagram may represent a part of a module, segment or instruction, which includes one or more executable instructions for realizing the specified logical function. In some alternative implementations, the functions marked in the box may not occur in the order marked in the figure. For example, depending on the functions involved, the two boxes shown in succession can actually be executed substantially simultaneously, or these boxes can sometimes be executed in reverse order. It will also be noted that each box in the block diagram and / or flow chart, and the combination of boxes in the block diagram and / or flow chart can be implemented by a system based on special-purpose hardware that performs a specified function or action, or a combination of special-purpose hardware and computer instructions.
[0146] In addition, the system according to different embodiments may include a processor and logic integrated with the processor and / or executable by the processor, the logic being configured to perform one or more of the process steps described herein. By integrated, it is meant that the processor has logic embedded therein as hardware logic, such as an application specific integrated circuit (ASIC), FPGA, etc. By processor executable, it is meant that the logic is hardware logic; software logic (such as firmware, part of an operating system, part of an application, etc.), or a combination of hardware and software logic that the processor is able to access and is configured to cause the processor to perform a certain function when executed by the processor. As known in the art, software logic can be stored on local and / or remote memory of any memory type. Any processor known in the art, such as a software processor module and / or a hardware processor, such as an ASIC, FPGA, a central processing unit (CPU), an integrated circuit (IC), a graphics processing unit (GPU), etc., can be used.
[0147] It will be clear that the different features of the aforementioned systems and / or methods may be combined in any way, thereby creating multiple combinations from the description presented above.
[0148] It will be further appreciated that embodiments of the present invention may be provided as a service deployed on behalf of a customer to provide services on demand.
[0149] Although various embodiments have been described above, it should be understood that these embodiments are presented by way of example only and not limitation. Thus, the breadth and scope of the preferred embodiment should not be limited by any of the above exemplary embodiments, but should only be defined in accordance with the appended claims and their equivalents.
Claims
1. A computer-implemented method, include: identifying a request to migrate data associated with a volume from a source storage pool having a first rank interval size to a destination storage pool having a second rank interval size that is smaller than the first rank interval size; Creating a correspondence between the logical volume interval of the volume and the physical offset position within the rank interval of the source storage pool includes: Identify a volume segment table VST entry in the volume, the VST entry corresponding to a rank interval in the source storage pool containing data to be migrated; Creating a small VST for each identified VST entry; and Setting the logical volume interval in each small VST to point to a corresponding offset position in the rank interval in the source storage pool that contains the data to be migrated; and Data is migrated from one or more ranks of the source storage pool to one or more ranks of the destination storage pool by utilizing the correspondence between the logical volume interval of the volume and the physical offset position within the rank interval of the source storage pool.
2. The computer-implemented method of claim 1, in, Migrating the data includes transferring the data associated with the volume from one or more offset locations within the rank interval of the source storage pool to the rank interval within the destination storage pool.
3. The computer-implemented method of claim 1, in, Migrating the data includes releasing the data from the rank interval in the source storage pool.
4. The computer-implemented method of claim 1, wherein migrating the data comprises adjusting the logical volume extent to point to a corresponding location of the migrated data within a rank extent of the destination storage pool.
5. The computer-implemented method of claim 1, in, Migrating the data includes selecting a plurality of rank intervals within the destination storage pool to receive the migrated data.
6. The computer-implemented method of claim 5, in, The plurality of rank intervals are randomly selected.
7. The computer-implemented method of claim 5, in, The plurality of rank intervals are selected according to data retrieval speeds corresponding to the ranks.
8. The computer-implemented method of claim 5, in, The plurality of rank intervals are selected according to an amount of data currently stored in a corresponding rank.
9. The method according to claim 1, in, Migrating the data further includes: allocating one or more rank intervals within the destination storage pool; transferring the data associated with the volume from the rank interval within the source storage pool containing the data to the one or more rank intervals in one or more ranks of the destination storage pool; updating the small VST to correspond to the transferred data in the one or more rank intervals in the one or more ranks of the destination storage pool; and The data is released from the one or more rank intervals within the source storage pool.
10. The computer-implemented method of claim 9, wherein the volume comprises a storage volume that organizes and presents a logical representation of the data in a sequential manner to one or more hosts.
11. The computer-implemented method of claim 9, in, Data logically represented in the volume is physically stored in one or more ranks of the source storage pool.
12. The computer-implemented method of claim 9, in, The small VST represents and manages the VST entries with higher granularity.
13. The computer-implemented method of claim 9, wherein the number of rank intervals allocated within the destination storage pool corresponds to a size of the volume.
14. The computer-implemented method of claim 9, in, The total size of the data logically represented by the volume is divided by the rank interval size of the destination storage pool to determine the number of the rank intervals allocated within the destination storage pool.
15. The computer-implemented method of claim 9, in, The one or more rank intervals are allocated based on a data retrieval speed of ranks within the destination storage pool.
16. The computer-implemented method of claim 9, wherein the one or more rank intervals are allocated based on a data amount of data currently stored in each of a plurality of ranks within the destination storage pool.
17. The computer-implemented method of claim 9, in, Transferring the data includes transferring the data stored in the offset position of the rank interval in the source storage pool to a corresponding allocated rank interval in the destination storage pool.
18. A computer program product for migrating data from a large inter-area pool to an inter-area pool, the computer program product comprising a computer-readable storage medium having program instructions embodied therewith, in, The computer-readable storage medium itself is not a transient signal, and the program instructions can be executed by a processor to enable the processor to perform the method as claimed in any one of claims 1 to 17.
19. A computer system, include: A processor; as well as Logic integrated with the processor, executable by the processor, or integrated with the processor and executable by the processor, the logic being configured to perform the method of any one of claims 1 to 17.
Citation Information
Patent Citations
Storage apparatus, computer system, and data migration method
US20130073825A1