Primary and secondary storage system migration

By automating data replication and enabling multi-storage volume swaps, the method addresses inefficiencies in current data migration processes, reducing CPU utilization and migration time while minimizing data loss and costs.

JP2025510523APending Publication Date: 2025-04-15INTERNATIONAL BUSINESS MACHINE CORPORATION
View PDF 6 Cites 0 Cited by

Patent Information

Application Number
JP2024550694
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2022-03-22
Filing Date
2023-02-06
Publication Date
2025-04-15

AI Technical Summary

Technical Problem

Current data migration processes in computer storage systems are inefficient, leading to high CPU utilization, lengthy migration times, and require significant manual intervention, which can result in data loss and increased costs.

Method used

The method involves transitioning from a first storage system to a second storage system by initiating data replication between the primary storage systems and between the primary and secondary storage systems, enabling multi-storage volume swaps, and automating the process to reduce CPU usage and manual intervention.

Benefits of technology

This approach reduces CPU utilization, minimizes migration time, and enhances automation, thereby reducing software license costs, minimizing data loss, and improving overall efficiency in data migration processes.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025510523000001_ABST
    Figure 2025510523000001_ABST
Patent Text Reader

Abstract

A method is provided for migrating from a first storage system to a second storage system. The method includes receiving a command to migrate from a first storage system to a second storage system, the first storage system comprising a first primary storage and a first secondary storage, and the second storage system comprising a second primary storage and a second secondary storage. The method further includes initiating data replication between the first primary storage and the second primary storage in response to receiving the command. The method further includes initiating data replication between the first primary storage and the second secondary storage in response to receiving the command. The method further includes migrating from the first storage system to the second storage system.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] The present disclosure relates generally to the field of computer storage systems, and more particularly to migrating data to an alternative storage device using multi-storage volume swapping. [Background technology]

[0002] A data backup system can provide continuous availability of production data in the event of a sudden catastrophic failure at a single point in time or data loss over a period of time. In one such disaster recovery system, production data is replicated from a local site to a remote site that may be geographically separated by several kilometers from the local site. At the same time that an application system writes new data to a primary storage device, typically located at the local site, such a duplicate, mirror, or shadow copy is typically made on a secondary storage device at the remote site. Various data replication technologies, such as IBM® Metro Mirror, Peer to Peer Remote Copy (PPRC), Extended Remote Copy (XRC), Coupled XRC (CXRC), Global Copy, and Global Mirror Copy, can be used to maintain a remote copy of the data at the secondary site. Summary of the Invention

[0003] Embodiments of the present disclosure include methods, computer program products, and systems for migrating from a first storage system to a second storage system. The method includes receiving a command to migrate from a first storage system to a second storage system, the first storage system comprising a first primary storage and a first secondary storage, and the second storage system comprising a second primary storage and a second secondary storage. The method further includes initiating data replication between the first primary storage and the second primary storage in response to receiving the command. The method further includes initiating data replication between the first primary storage and the second secondary storage in response to receiving the command. The method further includes migrating from the first storage system to the second storage system.

[0004] The present approach can provide numerous advantages over current migration processes. For example, embodiments of the present disclosure provide the ability to migrate without losing the high availability associated with possible multi-storage volume swapping capabilities using software-based data migration products, while reducing or eliminating the additional CPU utilization associated with software-based mirroring solutions. Reducing CPU utilization can lower software license costs and / or reduce impact to business-critical operations even if CPU capacity is not increased. Embodiments also reduce the time required to perform a migration swap compared to existing solutions. Additionally, embodiments of the present disclosure are flexible and can be used with any copy services management tools, such as those offered by EMC (e.g., Geographically Dispersed Disaster Restart (GDDR), Symmetrix Remote Data Facility (SRDF), and AutoSwap) and Hitachi (e.g., Hitachi Universal Replicator (HUR)). Embodiments of the present disclosure may additionally be substantially automated, whereas previous migration processes and operations frequently involve significant manual intervention that is often time consuming, prone to error, and may potentially result in some data loss.

[0005] In some preferred embodiments, the second storage system may be prepared for the migration prior to migrating from the first storage system to the second storage system. Preparing the second storage system may include converting a replication mode between the first primary storage and the second primary storage to a synchronous mode, and converting a replication mode between the first primary storage and the second secondary storage to a synchronous mode. This advantageously allows replication to initially be in asynchronous mode while the majority of the data is being replicated, and the mode is switched to synchronous mode immediately prior to the migration. This reduces the impact of the migration on application performance, since the asynchronous mode is less resource intensive (e.g., fewer concurrent write operations). Furthermore, using the asynchronous mode allows application I / O requests to be completed without waiting for data to be sent to the target storage and subsequent acknowledgment that the copy is complete, which can otherwise add additional latency to application I / O requests, as with synchronous mirroring. While one might expect all three synchronous I / O requests to complete at the same time, there are reasons (such as congestion, link failures, etc.) why this cannot be the case, and therefore waiting to switch will result in better application performance.

[0006] In some preferred embodiments, a multi-storage volume swap between the first primary storage and the second primary storage is enabled. The multi-storage volume swap may be enabled upon reaching a full duplex state between the first primary storage and both the second primary storage and the second secondary storage. Advantageously, enabling the multi-storage volume swap between the first primary storage and the second primary storage may enable the system to fail over to the second primary storage instead of the first secondary storage when an error accessing the first primary storage occurs during the transition.

[0007] Further embodiments of the present disclosure include methods, computer program products, and systems for migrating from a first storage system to a second storage system. The method includes receiving a command to migrate from the first storage system to the second storage system. The first storage system includes a first primary storage and a first secondary storage, and the second storage system includes a second primary storage and a second secondary storage. The method further includes replicating data between the first primary storage and the second primary storage in response to receiving the command. The method further includes replicating data between the first primary storage and the second secondary storage in response to receiving the command. The method further includes suspending received I / O operations for execution on the first storage system, queuing the I / O operations, and enabling a multi-storage volume swap between the second primary storage and the second secondary storage in response to reaching a full-duplex state between the first primary storage and both the second primary storage and the second secondary storage. The method further includes migrating new received I / O operations from the first storage system to the second storage system for execution on the second storage system. The method further includes resuming the I / O operations and executing the queued I / O operations on the second storage system.

[0008] The above summary is not intended to describe each example embodiment or every implementation of the present disclosure.

[0009] The drawings included in this disclosure are incorporated in and form a part of this specification. They illustrate embodiments of the present disclosure and, together with the description, serve to explain the principles of the present disclosure. The drawings are merely illustrative of exemplary embodiments and are not limiting of the present disclosure. [Brief description of the drawings]

[0010] [Figure 1]FIG. 2 is a diagram of an example data migration process. [Diagram 2] FIG. 1 is a diagram of an example networked computing environment employing a primary storage system and a secondary storage system in accordance with an embodiment of the present disclosure. [Figure 3A] FIG. 2 is an example block diagram depicting a storage state before migration from old primary and secondary storage systems to new primary and secondary storage systems in accordance with an embodiment of the present disclosure. [Figure 3B] 1 is an illustrative block diagram depicting a storage state during migration from old primary and secondary storage systems to new primary and secondary storage systems in accordance with an embodiment of the present disclosure. [Figure 3C] 1 is an example block diagram depicting a storage state after migration from old primary and secondary storage systems to new primary and secondary storage systems in accordance with an embodiment of the present disclosure. [Figure 4] 1 is a flowchart of an example method for migrating from an old storage system to a new storage system using a multi-storage volume swap, in accordance with an embodiment of the present disclosure. [Diagram 5] 1 is a flowchart of an example method for migrating data from an old storage system to a new storage system in accordance with an embodiment of the present disclosure. [Figure 6] FIG. 1 illustrates a high-level block diagram of an example computer system that may be used in implementing one or more of the methods, tools, and modules described herein, and any related functionality, in accordance with embodiments of the present disclosure. [Figure 7] FIG. 1 is a diagram of a cloud computing environment according to an embodiment of the present disclosure. [Figure 8] FIG. 2 is a diagram of abstraction model layers according to an embodiment of the present disclosure. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0011] While the embodiments described herein are susceptible to various modifications and alternative forms, details thereof have been shown by way of example in the drawings and will be described in detail. It is to be understood, however, that the particular embodiments described are not to be taken in a limiting sense. On the contrary, the intention is to cover all modifications, equivalents, and alternatives falling within the spirit and scope of the invention.

[0012] Aspects of the present disclosure relate generally to the field of computer storage systems, and in particular to migrating data to an alternative storage device using a multi-storage volume swap. The present disclosure is not necessarily limited to such applications, but various aspects of the present disclosure may be appreciated through the discussion of various examples using this context.

[0013] For purposes of illustration only, embodiments of the present disclosure are described herein with reference to IBM® Copy Services Manager (CSM) and IBM® HyperSwap®. However, embodiments of the present invention are not limited to either of these technologies, and all suitable alternatives (i.e., those having substantially similar functionality) are contemplated.

[0014] In a data mirroring system, data is typically maintained in a pair of volumes, comprising a primary volume on a primary storage device and a corresponding secondary volume on a secondary storage device that contains an identical copy of the data maintained on the primary volume. The primary and secondary volumes are identified by a copy relationship in which data on the primary volume, also called the source volume, is copied to the secondary volume, also called the target volume. Primary and secondary storage controllers may be used to control access to the primary and secondary storage devices.

[0015] IBM® Copy Services Manager (CSM) is an example of an application that customers can use to manage planned and unplanned outages. A solution that includes CSM can detect failures of a primary storage system, which may be at a local site, for example. Such failures may include problems writing to or accessing a primary storage volume at the local site. When the solution detects that a failure has occurred, the CSM can invoke a multi-storage volume swap function, an example of which is the IBM HyperSwap® function (e.g., logical device swap). This function may be used to automatically swap processing for all volumes in a mirroring configuration from a primary storage system to a secondary storage system (e.g., this may include a swap from a local site to a remote site, in some embodiments). In some embodiments, the CSM can initiate a swap even when no failure is detected. As a result of the swap, the storage volume at the remote site that was originally configured as the secondary volume of the original copy relationship is reconfigured as the primary volume of the new copy relationship. Similarly, a storage volume at the local site that was originally configured as a primary volume in the original copy relationship may be reconfigured as a secondary volume in a new copy relationship once the volume at the local site becomes operational again.

[0016] Along with the swap function, a failover function may be invoked. For solutions including a CSM, the failover function may in some cases eliminate the need to perform a full copy when re-establishing data replication in the reverse direction, i.e., from the remote site back to the local site. More specifically, the failover process resets or reconfigures the remote storage device (originally configured as a secondary storage device) as the primary storage device, which is placed in a "suspended" status until the reverse mirroring operation resumes. Meanwhile, the failover process begins logging changes to the remote site for any subsequent data updates made by the host.

[0017] Once the local site is operational, a failback process may be invoked to reset the local site storage device (originally configured as the primary storage device) as the secondary storage device. Mirroring may then be resumed (in the reverse direction, i.e., remote-to-local, rather than local-to-remote) to resynchronize the local site secondary storage device (originally the primary storage device) with the data updates stored on the remote site primary storage device (originally the secondary storage device). Once data synchronization is complete, a HyperSwap® revert operation may reestablish management of the configuration from the local site storage system, which was the original primary storage system, to the remote site storage system, which was the original secondary storage system. With both mirroring and HyperSwap now reestablished in the opposite direction, the configuration may then remain in this configuration, where the remote storage device remains the primary device and the local device remains the secondary device, which is often the case when the remote storage devices are physically co-located. If desired, after the above steps, a planned HyperSwap may be initiated to revert to the original configuration in the opposite direction and in the absence of a device failure. Of course, an unplanned HyperSwap in the event of a device failure being detected should achieve the same result of moving the primary from the remote location back to the local location.

[0018] In various situations, it may be appropriate to switch one or more volumes of a primary or source storage with corresponding volumes of a different source storage without significantly affecting a user's production operations. For example, a user may wish to migrate a source storage to a new or different storage system to improve overall performance or for reconfiguration purposes. FIG. 1 illustrates an example of a typical data replication session, in which data on volume 110 of a first storage control unit 120a (i.e., the old primary storage) is being replicated onto corresponding volume 110 of a second data storage control unit 120b (i.e., the old secondary storage) in an ongoing data replication process represented by arrow 130. Additionally, data on volume 110 of first storage control unit 120a is being migrated to corresponding volume 110 of a third data storage control unit 120c (i.e., the new primary storage) in an ongoing data migration process represented by arrow 140.

[0019] Various products are available to migrate data from an existing storage system to a new storage system with little or no disruption of ongoing input / output (I / O) operations or disaster recovery capabilities that may be provided in the event of a failure during data migration. Examples of such data migration products include the Transparent Data Migration Facility (TDMF) by IBM Corporation, or FDRPAS by Innovation Data Processing. However, when volumes 110 of storage control units 120a and 120b are part of an existing storage replication session, such as data replication process 130, volumes 110 of a fourth control unit, such as storage control unit 120d (i.e., the new secondary storage), have typically been provided to ensure that failover capabilities are maintained.

[0020] Thus, in a typical migration process in which data stored in volume 110 of storage control unit 120a is migrated from storage control unit 120a to a corresponding volume 110 of storage control unit 120c, a fourth storage control unit 120d is typically provided and a data replication process, as indicated by arrow 150, is initiated prior to migration process 140 to replicate to storage control unit 120d the data that may have been initially stored in storage control unit 120c. The first portion of data replication process 150 involves configuring volume 110 of storage control unit 120d to correspond to volume 110 of storage control unit 120c that is configured to correspond to volume 110 of storage control unit 120a, to which the source of the data is to be migrated.

[0021] Thus, the entire migration process typically involves waiting for the two new storage control units 120c and 120d to reach a full duplex state, i.e., the configuration of storage volumes 110 in storage control unit 120c with copy relationships in storage control units 120c and 120d have been replicated to volumes 110 in storage control unit 120d, and the data on these configured volumes 110 is identical to the original data stored in storage control unit 120c. At this point in the entire process, migration process 140 is typically initiated using a migration product, such as, for example, TDMF or FDRPAS. The migration product begins copying data from storage control unit 120a to storage control unit 120c. Once the data migration product has copied most of the data from storage control unit 120a to storage control unit 120c, the data migration product quiesces I / O to storage control unit 120a, copies the remaining changes (data writes) to storage control unit 120a from storage control unit 120a to storage control unit 120c, and then swaps the I / O requests to proceed to storage control unit 120c.

[0022] Data replication processes such as data replication process 130 may frequently involve many copy relationship pairs, often numbering in the thousands. Thus, in a typical data migration, a relatively small number of source volumes of control unit 120a are selected at a time for migration to a new storage control unit 120c. Thus, copy relationship pairs of these source volumes of storage control unit 120a for migration are typically first manually added to an existing replication session represented by process 150. Replication session process 150 is initiated (or re-initiated) and a wait occurs until the added copy relationship pair reaches a full duplex state in replication process 150. Once a full duplex state is achieved for the added copy relationship pair, migration process 140 for the selected source volume of control unit 120a is initiated (or re-initiated) and another wait typically occurs for the migration product to swap the selected volume 110 from storage control unit 120a to storage control unit 120c. Once this swap is complete, the selected copy relationship pair for volumes 110 on storage control unit 120a and storage control unit 120b is removed from replication process 130 and the relationship is terminated. This process is repeated until all source volumes on storage control unit 120a to be migrated have been selected and processed as described above.

[0023] For example, data may be further migrated to a new storage system without the use of a data migration product such as TDMF or FDRPAS. However, such a data migration process may result in an interruption to ongoing data replication processes or disaster recovery capabilities. One example of such a migration process may occur when a source storage device is being migrated to a new source device, but the target storage device remains unchanged.

[0024] In this example, the migration process may include selecting source volumes 110 of storage control unit 120a to be migrated to new storage control unit 120c, first manually removing copy relationship pairs for the selected volumes 110 of storage control unit 120a and corresponding volumes 110 of storage control unit 120b from replication process 130, and terminating these relationship pairs. New copy relationship pairs corresponding to the terminated copy relationship pairs may then be manually established between the new source volumes 110 of storage control unit 120c and the original target volumes 110 of storage control unit 120b.

[0025] Alternatively, if the goal is to migrate to a new generation of storage systems for both the primary and secondary storage systems using CSM and HyperSwap while maintaining disaster recovery capabilities and high availability, the user can perform a multi-step process in which the primary storage system is replaced first and then this is repeated for the secondary storage system. However, this process can be slow as it requires that all of the steps to migrate the secondary storage system are performed after the primary storage system is fully migrated, making the operation highly sequential.

[0026] The embodiments of the present disclosure provide a method for migrating data from one set of source (i.e., primary) and target (i.e., secondary) volumes to another set while maintaining disaster recovery capability throughout the data migration and without requiring the process to be performed twice. This is done by extending the multi-target support of some storage systems (e.g., as found in the IBM® System Storage® DS8000® series) to support at least three targets. This extended capability is then used to allow the primary volume to be mirrored not only to the old secondary volume and new primary volume, but also to the new secondary volume. By doing this, the Global Copy function pair between the new primary storage and the new secondary storage can be replaced by a Metro Mirror function pair between the old primary storage and the new secondary storage.

[0027] In some embodiments, the system may migrate from a first pair of storage devices (e.g., an old primary storage device and an old secondary storage device) to a second pair of storage devices (e.g., a new primary storage device and a new secondary storage device). This may be done, for example, when a user is upgrading to a new storage solution, for example, to improve storage performance, capacity, or functionality (or capabilities). In a first operation, data stored in the old primary storage unit is mirrored from the old primary storage unit to the new primary storage unit and the new secondary storage unit. Software for performing the mirroring operation may include suitable copy services management tools, such as those provided by EMC (e.g., Geographically Dispersed Disaster Restart (GDDR), Symmetrix Remote Data Facility (SRDF), and AutoSwap), Hitachi (e.g., Hitachi Universal Replicator (HUR)), or IBM (e.g., IBM® Copy Services Manager (CSM)). Such tools may be utilized by a storage manager according to the present description to facilitate data migration as described herein. After the data has been mirrored to the new primary and secondary storage units, a failover operation may be performed such that new I / O requests are directed to the new primary storage unit.

[0028] This approach provides numerous advantages over current migration processes. For example, embodiments of the present disclosure provide the ability to migrate without losing high availability with possible multi-storage volume swap (e.g., HyperSwap) capabilities using software-based data migration products such as TDMF or FDRPAS, while reducing or eliminating the additional CPU utilization associated with software-based mirroring solutions. Reducing CPU utilization can lower software license costs and / or reduce impact to business-critical operations even if CPU capacity is not increased. Embodiments also provide the ability to minimize the time required to perform a migration swap compared to existing solutions. Additionally, embodiments of the present disclosure are flexible and can be used with any copy services management tools, such as those provided by EMC (e.g., Geographically Dispersed Disaster Restart (GDDR), Symmetrix Remote Data Facility (SRDF), and AutoSwap) and Hitachi (e.g., Hitachi Universal Replicator (HUR)).

[0029] In yet another aspect, many of the operations of the migration process according to the present disclosure may be automated. For example, operations such as terminating copy relationship pairs in the original source and target storage subsystems and re-establishing these pairs in the alternate source and target storage subsystems may be performed automatically. As described in more detail below, such automation may be provided with a multi-storage volume swap feature. In contrast, it is understood that previous migration processes and operations frequently involve significant manual intervention that is often time consuming, prone to error, and may potentially result in some data loss.

[0030] It should be understood that the foregoing advantages are examples of advantages and should not be construed as limiting, and embodiments of the present disclosure may include all, some, or none of the foregoing advantages while remaining within the spirit and scope of the present disclosure.

[0031] Although embodiments are described with respect to a particular mirror relationship, aspects of the present disclosure are applicable to other types of copy relationships, depending on the particular application. Additional features are discussed in the description. It is understood that additional features may be implemented instead of or in addition to those discussed herein, depending on the particular application.

[0032] In an example embodiment, a copy relationship identifies a source storage location, also referred to as a primary storage location, and a target storage location, also referred to as a secondary storage location, where data stored at the source storage location is to be mirrored or otherwise copied to the target storage location. Thus, as used herein, the primary storage location and the secondary storage location are storage locations related by a copy relationship.

[0033] Additionally, as used herein, the term "storage location" refers to a storage location that includes one or more units of data storage, such as one or more volumes, cylinders, tracks, segments, extents, or any portion thereof, or other unit or units of data suitable for storage. Thus, a source storage location and an associated target storage location may each be a storage volume, with volumes typically being on different devices or sites. However, it is understood that the source storage location and the target storage location may each be, for example, a size other than a volume.

[0034] As used herein, the term "automatically" includes both fully automatic, i.e., operations performed by one or more software-controlled machines without human intervention, such as user input into a graphical user interface. As used herein, the term "automatically" further includes primarily automatic, i.e., most of the operations (e.g., greater than 50%) are performed by one or more software-controlled machines without human intervention, such as user input into a graphical user interface, and the remainder of the operations (e.g., less than 50%) are manually performed, i.e., manual operations are performed by one or more software-controlled machines together with human intervention, such as user input into a graphical user interface, to direct the performance of the operations.

[0035] Turning now to the figures, FIG. 2 illustrates a block diagram of an example representation of a data storage environment 200 for storing host data. The data storage environment 200 includes a host device 232, a primary control unit 202a including a first (e.g., primary) storage 220a, and a secondary control unit 202b including a second (e.g., secondary) storage 220b. The primary and secondary control units may be, for example, separate computer systems (e.g., servers, network-attached storage (NAS) devices, desktop computers, etc.), separate storage nodes, or components of a single device (e.g., individual components of a single storage node). The host device 232 is communicatively coupled to the primary and secondary control units 202a, 202b using a network 250. In some embodiments, the data storage environment 200 may be embodied as a storage-attached network (SAN).

[0036] Consistent with various embodiments, the host device 232 and the primary and secondary control units 202a, 202b may be computer systems. For example, in some embodiments, the host device 232 and the primary and secondary control units 202a, 202b may be storage server computers. The host device 232 includes a processor 236 and a memory 238. The memory 238 may include an operating system 240 and one or more applications 242 configured to utilize (e.g., access, read, write) data stored in the first and second storages 220a, 220b. Similarly, the primary and secondary control units 202a, 202b each include one or more processors 206a, 206b and one or more memories 208a, 208b. The memories 208a, 208b of the primary and secondary control units 202a, 202b may include storage managers 210a, 210b and caches 212a, 212b.

[0037] Operating system 240 may include a multi-storage volume swap manager that provides a multi-storage volume swap function, such as the IBM HyperSwap® function. As described in more detail below, the multi-storage volume swap function, such as the IBM HyperSwap® function, may be modified in accordance with the present disclosure to facilitate swap operations associated with migration operations for replacing primary and secondary storage systems with new storage systems. While the multi-storage volume swap manager is part of operating system 240 of host 232 in the illustrated embodiment, it will be understood that the multi-storage volume swap manager may be executed in application software of the host or in operating system or application software of the storage control unit, for example, for storage management functions.

[0038] The primary and secondary control units 202a, 202b, and the host device 232 may be configured to communicate with each other through internal or external network interfaces 204a, 204b, and 234. The network interfaces 204a, 204b, and 234 may be, for example, modems or network interface cards. For example, the network interfaces 204a, 204b, and 234 may enable the host device 232, and the primary and secondary control units 202a, 202b to connect to a network 250 and communicate with each other.

[0039] The first storage 220a and the second storage 220b illustrate data storage nodes in the data storage environment 200. In some embodiments, the first storage 220a includes a first set (i.e., one or more) of volumes 222a to which data is stored and / or retrieved by the host device 232. Similarly, the second storage 220b includes a second set of volumes 222b. The volumes 222a, 222b may include logical unit numbers (LUNs), logical subsystems (LSSs), or any other grouping of tracks, which may be blocks, tracks, or any other units of data. The data in the second storage 220b (e.g., the second set of volumes 222b) may be copies of the same data stored in the first storage 220a (e.g., a copy of the first set of volumes 222a). The host device 232 may access the first and second volumes 222a, 222b of the first storage 220a and second storage 220b, respectively, via a network 250.

[0040] The host device 232 may direct input / output (I / O) requests to access tracks stored in the first storage 220a to the primary control unit 202a, which may act as a primary storage device. The secondary control unit 202b may act as a secondary or backup storage device in case data cannot be accessed through the first control unit 202a. The primary and secondary control units 202a, 202b may be in a synchronous mode such that data written to the primary control unit 202a is written simultaneously to the secondary control unit 202b, thereby ensuring that both control units 202a, 202b always have identical copies of the data. This is referred to herein as the control units 202a, 202b (or, in some embodiments, the individual storages 220 or volumes 222) having a mirror or mirror copy relationship. If the host device 232 (or the first control unit 202a) detects that the first set of volumes 222a is unavailable, a failover event may occur in which the secondary control unit 202b becomes the primary storage device and a copy of the requested data (e.g., data that was being read or written) may be retrieved from a corresponding track or volume in the second set of volumes 222b.

[0041] The primary and secondary control units 202a, 202b and / or the host device 232 may be equipped with a display or monitor. Additionally, the primary and secondary control units 202a, 202b and / or the host device 232 may include optional input devices (e.g., a keyboard, a mouse, a scanner, or other input devices) and / or any commercially available or custom software (e.g., browser software, communication software, server software, natural language processing software, search engines and / or web crawling software, filter modules for filtering content based on predefined parameters, etc.).

[0042] The primary and secondary control units 202a, 202b and the host device 232 may be remote from each other and communicate via the network 250. In some embodiments, the host device 232 may be a central hub to which the primary and secondary control units 202a, 202b can establish a communication connection, such as in a client-server networking model. Alternatively, the host device 232 and the primary and secondary control units 202a, 202b may be configured in any other suitable networking relationship (e.g., in a peer-to-peer configuration or using any other network topology).

[0043] In some embodiments, the network 250 may be implemented using any number of any suitable communication media. For example, the network 250 may be a wide area network (WAN), a local area network (LAN), a storage area network (SAN), the Internet, or an intranet. In certain embodiments, the primary and secondary control units 202a, 202b, and the host device 232 may be local to one another and communicate via any suitable local communication media. For example, the primary and secondary control units 202a, 202b, and the host device 232 may communicate using a SAN, one or more hardwired connections, a switch such as a Fibre Channel switch or a FICON director, a wireless link or router, or an intranet. In some embodiments, the primary and secondary control units 202a, 202b, and the host device 232 may be communicatively coupled using one or more networks, or one or more local connections, or a combination of both. For example, a first control unit 202a may be hard-wired (e.g., connected by a Fibre Channel cable) to a host device 232, while a second control unit 202b may communicate with the host device using a network 250 (e.g., via the Internet).

[0044] In some embodiments, the network 250 may be a telecommunications network. The telecommunications network may include one or more cellular communication towers, which may be fixed location transceivers that wirelessly communicate directly with mobile communication terminals (e.g., the primary and secondary control units 202a, 202b). Additionally, the network may include one or more wireless communication links between the primary and secondary control units 202a, 202b and the host device 232. The wireless communication links may include, for example, short wave, high frequency, very high frequency, microwave, Wireless Fidelity (Wi-Fi), Bluetooth® technology, Global System for Mobile Communications (GSM), Code Division Multiple Access (CDMA), second generation (2G), third generation (3G), fourth generation (4G), or any other wireless communication technology or standard for establishing a wireless communication link.

[0045] In some embodiments, network 250 can be implemented in a cloud computing environment or using one or more cloud computing services. Consistent with various embodiments, a cloud computing environment may include a network-based distributed data processing system that provides one or more cloud computing services. Additionally, a cloud computing environment may include many computers (e.g., hundreds or thousands of computers or more) located in one or more data centers and configured to share resources via network 250.

[0046] In an exemplary embodiment, the communications hardware associated with the communications paths between the devices includes switches, routers, cables, modems, adapters, power supplies, etc. The communications software associated with the communications paths includes the communications protocols, and instructions and other software that control the operation of the communications hardware in accordance with the communications protocols, if any. It is understood that other communications path protocols may be utilized depending on the particular application.

[0047] The primary and secondary control units 202a, 202b may include storage managers 210a, 210b. The storage managers 210a, 210b may be modules (e.g., program instructions, hardware) in the data storage environment 200 configured to store and retrieve data. The storage managers 210a, 210b may include storage controllers. In some embodiments, the first storage manager 210a includes a set of instructions for processing I / O requests (e.g., read, delete, insert, update, and / or write data) received by the host device 232 to the first storage 220a.

[0048] The storage managers 210a, 210b may further include a set of instructions for maintaining a copy of the first storage 220a on the second storage 220b of the primary and secondary control units, which may be considered to be separate storage systems. The storage systems may comprise enterprise storage servers, such as IBM Enterprise Storage Servers (ESS). The storage managers 210a, 210b managing the first copy relationship may implement synchronous copy operations, such as a Peer-to-Peer Remote Copy (PPRC) program. An example of a program managing a PPRC program is the IBM® Copy Services Manager (CSM) copy program, which allows switching of updates from the primary storage 220a to the secondary storage 220b. The storage managers 210a, 210b may further implement asynchronous remote copy operations, where updates to the primary storage 220a or the secondary storage 220b are mirrored to a corresponding location at a remote site. Suitable asynchronous mirroring programs include Global Mirror and XRC (or zGM). The operations described may be implemented in other programs, such as other copy programs or other global recovery programs.

[0049] In one illustrative example embodiment, the storage managers 210a, 210b can monitor for a migration command. In response to receiving a migration command, the storage managers 210a, 210b can identify new primary and secondary storage devices (e.g., new control units not shown in FIG. 2) and the storage managers 210a, 210b can perform the data migration. The specific steps for performing the data migration to the new storage devices are discussed in more detail with reference to FIGS. 3A-5.

[0050] The first and second storages 220a, 220b may comprise different types or classes of storage devices. For example, the first and second storages 220a, 220b may include magnetic hard disk drives, solid state storage devices (SSDs), electrically erasable programmable read-only memories (EEPROMs), flash memories, flash disks, random access memories (RAMs), storage-class memories (SCMs), phase change memories (PCMs), resistive random access memories (RRAMs), optical disks, tapes, etc. Additionally, the first and second storages 220a, 220b may be configured as an array of devices, such as a simple bundle of disks (JBODs), a direct access storage device (DASD), or a redundant array of independent disks (RAID) array.

[0051] It is noted that Figure 2 is intended to depict representative major components of an exemplary computing environment 200. However, in some embodiments, the individual components may be more or less complex than those depicted in Figure 2, components other than or in addition to those depicted in Figure 2 may be present, and the number, type, and configuration of such components may vary. Likewise, one or more components depicted in computing environment 200 may not be present, and the arrangement of the components may vary.

[0052] For example, although Figure 2 illustrates a computing environment 200 with a single host device 232 and two control units 202a, 202b, a computing environment suitable for implementing embodiments of the present disclosure may include any number of control units and host devices. For example, as discussed in more detail below, the computing environment 200 may include at least four control units. The various models, modules, systems, and components illustrated in Figure 2 may exist across multiple host devices and control units, if at all.

[0053] For example, in some embodiments, the storage manager 210a, 210b may not be part of the primary and secondary control units 202a, 202b, or only one of the primary and secondary control units 202a, 202b may include a storage manager. In some embodiments, the storage manager may be a standalone device entirely separate from the primary and secondary control units. In these embodiments, the storage manager may be communicatively coupled (e.g., via network 250) to either the primary and secondary control units 202a, 202b or the first and second storages 220a, 220b, or both. As another example, some embodiments may include two (or more) host devices. Each host device may be connected to two (or more) control units. In the same manner, the primary and secondary control units 202a, 202b may be connected to and store data for two or more host devices.

[0054] 3A-3C, there is shown a block diagram depicting a storage environment 300 during migration from old primary and secondary storage devices (referred to in the figures as first control unit 302a and second control unit 302b, respectively) to new primary and secondary storage devices (referred to in the figures as third control unit 302c and fourth control unit 302d, respectively) in accordance with an embodiment of the present disclosure. In this example, it is assumed that the client currently has a HyperSwap-enabled two-site storage replication solution that provides high availability, and wishes to migrate to a newer storage system technology that is also a two-site storage replication solution that is HyperSwap-enabled. However, it should be understood that this is for illustrative purposes only. The embodiments of the present disclosure can also be used when the starting solution is a three-site Metro-Global Mirror solution, or possibly a multi-target Metro Mirror / Global Mirror solution, although the latter would require the multi-target to be enhanced to support all four architecturally supported targets.

[0055] Beginning with FIG. 3A, a block diagram of a pre-migration environment 300 is shown. In particular, as shown in FIG. 3A, the environment 300 includes four control units 302a, 302b, 302c, and 302d (collectively and / or individually referred to as control units 302). Each control unit 302 includes a set of volumes 304. In particular, a first control unit 302a includes a first set of volumes 304a, a second control unit 302b includes a second set of volumes 304b, and so on. The first control unit 302a serves as a primary storage device for the clients, while the second control unit 302b serves as a secondary storage device for the clients.

[0056] As mentioned above, the first and second control units 302a, 302b have a HyperSwap-enabled mirror replication relationship as indicated by arrow 306. Thus, for every volume 304a on the first control unit 302a, there is an associated volume 304b on the second control unit 302b. This is represented by arrow 307. In other words, for every volume 302a, there is an identical copy 304b, and any data written to the first set of volumes 304a is also written to the second set of volumes 304b.

[0057] Meanwhile, in this stage, a new storage system is created to which the client will migrate. The new storage system includes a third and a fourth control unit 302c, 302d. The third control unit 302c becomes the new primary storage system / device after migration, and the fourth control unit 302d becomes the new secondary storage system / device after migration. As shown in FIG. 3C, the third and the fourth control units 302c, 302d will have a HyperSwap-enabled mirror replication relationship after migration. Setting up the new storage system includes creating a third set of volumes 304c and a fourth set of volumes 304d on the third and the fourth control units 302c, 302d, respectively.

[0058] 3B, a storage environment 300 is illustrated during migration from an old storage system to a new storage system, according to an embodiment of the present disclosure. In particular, as illustrated in FIG. 3B, a replication relationship 308 is created between a first control unit 302a and a third control unit 302c. Additionally, a replication relationship 310 is created between the first control unit 302a and a fourth control unit 302d. Meanwhile, a HyperSwap-enabled mirror replication relationship 306 is maintained between the first control unit 302a and the second control unit 302b.

[0059] Once the replication relationships 308, 310 between the first control unit 302a and the third and fourth control units 302c, 302d are established, data replication may begin. This is represented by arrows 309, 311 connecting the first set of volumes 304a to the third and fourth sets of volumes 304c, 304d, respectively. In some embodiments, data replication may begin automatically as soon as the replication relationships 308, 310 are created (e.g., in response to a migration command) or at a specific time thereafter (e.g., when data activity on the first set of volumes 304a is low) to minimize the impact of replication. In other embodiments, a user (e.g., a client) may decide when replication should begin (e.g., by providing a command to begin replication using a graphical user interface (GUI)).

[0060] Whether data replication is triggered by a computer system or a user, data replication between the first control unit 302a and the third and fourth control units 302c, 302d may be performed initially using asynchronous replication. This may help to reduce the total number of write operations occurring at any given time and avoid application impact from replication by allowing I / O to the primary volume to continue even though the data still has to be replicated to the secondary volume. In these embodiments, the time it takes to replicate data may be longer. Meanwhile, data may still be written to the second control unit 302b synchronously with the first control unit 302a to maintain high availability and data integrity between the control units 302a, 302b.

[0061] In some embodiments, data replication to one or both of the third and fourth control units 302c, 302d may be performed synchronously. This may be done depending on, for example, the distance between the control units, the bandwidth capabilities between the control units, the degree of impact (predicted or actual) on application performance, and / or the acceptable level of quality of service (QoS) or performance of the application. In some embodiments, data replication may switch from asynchronous to synchronous (or vice versa) as these factors change.

[0062] When data replication from the first control unit 302a and the third and fourth control units 302c, 302d reaches a state where the out-of-sync tracks between all relationships are within a threshold amount, the migration process can be initiated. The threshold amount may be a function of the amount of I / O that has been relegated to the first control unit 302a. In some embodiments, the threshold amount may be close to 100%. The reason for the threshold is that embodiments of the present disclosure may require all storage systems to be in synchronous copy mode to ensure that they all have the same data to allow a HyperSwap to occur. However, the system can never reach 100% typically because work is ongoing to update the primary control unit 302a and the updates are not synchronous. Thus, at some point, the system will no longer be close to 100%, at which point the system will have to switch to synchronous mirroring to get to 100% and therefore move to the next step. When a relationship is switched from asynchronous to synchronous replication, there should be few out-of-sync tracks so that the relationship can reach 100% copied state quickly, allowing the transition to occur with as little impact to applications as possible. In other words, by ensuring that the pair is as "in sync" as possible, the time required for synchronization and swapping can be minimized.

[0063] In some embodiments, how far this threshold is from 100% depends on several things, including but not limited to how much I / O activity - particularly writes or updates - is occurring on the primary volume and the bandwidth between the primary and secondary controllers, which may further vary from client to client and from time to time (e.g., activity may be high during financial firm trading hours).

[0064] In some embodiments, the system can automatically start the migration process as soon as the threshold is reached. In other embodiments, the user may have to trigger the initiation of the migration process. In some embodiments, the user may be able to start the migration process only after the threshold is reached, while in other embodiments, the user may be able to override the threshold. In some embodiments, the system may not automatically migrate as soon as the threshold is reached. For example, if the financial company mentioned above gets into this "steady state" during trading hours (e.g., 97%), the financial company will likely take a conservative approach of waiting until the close of trading - if not 2:00 AM - before switching to synchronous mirroring just to be safe. In any case, the system and / or user will initiate the migration issuing a command, which is referred to herein as a "prepare for migration" command.

[0065] Upon receiving a migration preparation command from a user or an automated system, the replication type between the first control unit 302a and the third and fourth control units 302c, 302d will be converted to synchronous replication if they are not already synchronous replication. Data replication will then continue until all three functional pairs reach a full duplex state, at which point control software such as a CSM will load a HyperSwap configuration for the relationship between the first control unit 302a and the third control unit 302c. The HyperSwap configuration may enable HyperSwap for unplanned swaps, or the HyperSwap configuration may remain available only for migrations and disable HyperSwap for unplanned swaps. In some embodiments, the default may be to disable unplanned swaps so that I / O does not move to the new box until the user explicitly indicates that I / O should move to the new box.

[0066] In some embodiments, the transition may occur even before all three pairs of functions reach full duplex in the case of problems such as the challenge of mirroring data between the first control unit 302a and the second control unit 302b. This may be the result of a problem or failure of the second control unit 302b itself, or a communication failure (e.g., if the network connecting them goes down). In the event of such a failure, the system will move to a new device (i.e., the third and fourth control units 302c, 302d), which are also mirroring and HyperSwap capable, since the system is no longer mirroring between the old devices and therefore no longer HyperSwap capable. Performing this unexpected early transition in response to stopping mirroring between the first and second control units 302a and 302b may be the most convenient way for the system to get into a HyperSwap enabled state again.

[0067] When full duplex between the first control unit 302a and the third control unit 302c is reached, HyperSwap is enabled, and full duplex between the first control unit 302a and the fourth control unit 302d is reached, the actual migration can be initiated through a migration command. The actual migration may be initiated automatically as soon as the above conditions are met, or may be initiated by a user. Once the migration command is issued, the system will proceed to switch the primary and secondary storage systems to the new storage system (e.g., using a failover process such as HyperSwap).

[0068] However, unlike the current process for migrating to a new storage system, after performing the swap phase and before performing the I / O resume phase, the system performs a new phase, which involves failing over or terminating the relationship 310 between the first control unit 302a and the fourth control unit 302d, and establishing a replication relationship 312 between the third control unit 302c and the fourth control unit 302d in synchronous mode, as shown in FIG. 3C. This may be done using multi-target incremental failback support available in some storage systems, including DS8000 series storage systems by IBM. Alternatively, the replication relationship 312 between the third control unit 302c and the fourth control unit 302d can still be established with a "no copy" option in case multi-target support is not available. In any event, creating the replication relationship 312 between the third control unit 302c and the fourth control unit 302d includes creating a relationship between the third set of volumes 304c and the fourth set of volumes 304d, as shown by arrow 313 in FIG. 3C.

[0069] Furthermore, before moving to the I / O resume phase and after replication from the third control unit 302c to the fourth control unit 302d has been successfully initiated, the system will replace the HyperSwap configuration between the first and second control units 302a, 302b with a corresponding HyperSwap configuration between the third and fourth control units 302c, 302d, which may include deleting the HyperSwap configuration between the first control unit 302a and the third control unit 302c that is no longer needed.

[0070] Once HyperSwap between the third and fourth control units 302c, 302d is fully enabled, the system will then move into an I / O resume phase, where I / O operations that were queued during the migration are executed on the third control unit 302c and mirrored to the fourth control unit 302d. After I / O resume is complete, work can continue on the new (i.e., migrated) volume 304c on the third control unit 302c, which now serves as the primary control unit for the system, and the migration is complete, except for some cleanup operations.

[0071] After completing the transition, the system may automatically or manually allow the user to terminate the relationship between the first and second control units 302a, 302b, as indicated by the arrows being removed in Figure 3C. Furthermore, after the transition is completed and the relationship between the first and second control units 302a, 302b is terminated, the resulting configuration looks like that shown in Figure 3C.

[0072] 4, a flow chart of an example method 400 for migrating from an old storage system to a new storage system using a multi-storage volume swap is illustrated in accordance with an embodiment of the present disclosure. Method 400 may be implemented by hardware, firmware, software running on a processor, or any combination thereof. For example, method 400 may be implemented by a processor (e.g., of host device 232).

[0073] The method may begin at operation 402, where a system (e.g., a storage system / server), or a storage subsystem (e.g., when integrated into a server with computer hardware), may receive a request to migrate to a new primary and secondary storage system (e.g., a new storage device, also referred to herein as a control unit). This may occur, for example, during a hardware upgrade, where an old storage device is replaced with a new storage device.

[0074] In operation 404, the system begins replicating data from the old primary storage system to the new primary and secondary storage systems. In some embodiments, operation 404 may include one or more sub-operations. The one or more sub-operations may include initially identifying suitable storage devices to serve as the new primary and secondary storage systems. One or more suitable alternative source storage devices in the alternative source storage subsystem may be identified automatically with little or no intervention from a human operator. For example, the copy management software may automatically identify a list of potential alternative source storage devices in response to a command to initiate a change in the source storage unit and present the list of potential alternative source storage devices to a human operator in a suitable user interface. In response, the human operator may select a suitable alternative source storage device from the list of potential alternative source storage devices. In one embodiment, the potential alternative source storage devices in the storage subsystem may already be defined to be managed by the storage management software.

[0075] In the above example, the copy management software may fully automatically identify a list of candidate alternate source storage devices and present the list of candidate alternate source storage units to a human operator in a suitable user interface. In response, the human operator may select an appropriate alternate source storage device from the list of candidate alternate source storage devices. In this manner, the alternate source storage devices may be identified primarily automatically. In other embodiments, the alternate source storage devices may be identified fully automatically, i.e., without human intervention, or may be identified manually by a human operator, with the selection being manually entered into a graphical user interface.

[0076] Operation 404 may further include identifying copy relationships to be migrated to the new primary and secondary storage systems. In some embodiments, the copy management software may fully automatically identify a list of candidate copy relationships to be migrated in response to a command initiating a change of the primary and secondary storage devices, and present the list of candidate copy relationships to be migrated to a human operator in an appropriate user interface. In response, the human operator may select one or more appropriate copy relationships to be migrated from the list of candidate replacement copy relationships to be migrated. In this manner, the replacement copy relationships to be migrated may be identified primarily automatically. In other embodiments, the copy relationships may be identified automatically by the system. For example, the system may determine that all copy relationships between the old primary and secondary storage systems may be migrated to the new primary and secondary storage systems.

[0077] Operation 404 may further include identifying a set of volumes in the new primary and secondary storage systems that will contain the replicated data from the old storage system. In some embodiments, this may involve creating a new set of volumes in each of the new primary and secondary storage systems. The new set of volumes may be created such that the new primary and secondary storage systems have a volume that corresponds to each of the volumes being migrated. In other embodiments, the set of volumes may already exist in the new primary and secondary storage systems. In these embodiments, the storage manager may use a target volume matching algorithm to create copy relationship pairings between volumes in the old primary storage subsystem and volumes in the new source storage system based on volume size and type. The system may then begin replicating data from the old primary storage system to the new primary and secondary storage systems.

[0078] In operation 406, when a migration threshold for the new primary and secondary storage systems is reached, the old and new storage systems may be placed into migration mode. As discussed herein, the threshold may be an amount of data such that the time required for the systems to reach a full-duplex state is low enough that it does not severely impact application performance. Additionally, in operation 408, the replication mode between the old primary storage system and the new primary and secondary storage systems is converted to synchronous mode. This ensures that new I / O writes performed to the old primary storage system are also performed to both the new primary storage system and the new secondary storage system, thereby ensuring data integrity.

[0079] In operation 410, once the full-duplex mode or state is reached, a multi-storage volume swap (e.g., HyperSwap) between the old and new primary storage systems is enabled. As discussed herein, enabling a multi-storage volume swap means that the applicable program (e.g., HyperSwap) is aware (e.g., from the CSM) of all of the volumes that are part of the multi-storage volume swap session and has confirmed that the applicable program can actually access these volumes. This may further include the multi-storage volume swap program confirming that all volume pairs are now in a full-duplex state and are mirrored.

[0080] In operation 412, the migration is initiated. In some embodiments, the storage management can automatically issue a migration command as soon as a full-duplex state is achieved for the migration and HyperSwap is enabled. For example, the multi-storage volume swap command automatically issued by the storage management can be a HyperSwap® according to the present description. HyperSwap first temporarily suspends I / O operations while the swap is taking place. In some embodiments, I / O operations that were already in progress when the multi-storage volume swap was initiated can be allowed to complete. Any subsequent I / O operations can be queued on the original host to await completion of the multi-storage volume swap operation. It is understood that in other embodiments, the suspending of I / O operations can be performed manually.

[0081] Once I / O operations have been quiesced, a multi-storage volume swap is initiated from the old primary storage system to the new primary and secondary storage systems, the old storage system is migrated to the new storage system, and method 400 ends. Method 500 discussed with respect to Figure 5 is an illustrative example of sub-operations that may be performed in operation 412 to migrate from the old storage system to the new storage system.

[0082] 5, a flow chart of an example method 500 for migrating from an old storage system to a new storage system using a multi-storage volume swap is illustrated in accordance with an embodiment of the present disclosure. Method 500 may be implemented by hardware, firmware, software running on a processor, or any combination thereof. For example, method 500 may be implemented by a processor (e.g., of host device 232).

[0083] Method 500 may begin at operation 502, where a swap phase may be performed. In some embodiments, the storage manager may automatically issue a swap initiation command. The swap initiation command may prepare the system to swap from the volumes of the old primary storage system to the volumes of the new primary and secondary storage systems. In some embodiments, the swap initiation command may be sent automatically when full duplex is reached for the pair of copy relationships between the old primary storage system and the new primary and secondary storage systems.

[0084] In response to a begin swap command, the system may freeze and pause I / O, as illustrated in operation 504. Any outstanding I / O commands, including new I / O commands received after the I / O is frozen, may be stored in an I / O queue.

[0085] In operation 506, the relationship between the old primary storage system and the new primary storage system may be terminated. This action can be taken because the old primary storage system and the new primary storage system have now reached a full-duplex state by this point, and I / O operations are frozen to ensure they remain in a full-duplex state.

[0086] In operation 508, the system swaps to the new primary storage system. In some embodiments, a multi-storage volume swap function, such as HyperSwap®, may be modified in accordance with this description to effect a swap from a volume in the original source storage subsystem to a volume in the alternative source storage subsystem. In this embodiment, the HyperSwap® function is modified for use in facilitating a migration operation.

[0087] In operation 510, the relationship between the old primary storage system and the new secondary storage system may be terminated. This may not occur until a full duplex mode / state is reached. Once a full duplex mode / state is reached and I / O activity is quiesced, no more data needs to be copied to the new secondary storage system until the migration is complete, at which point the new secondary storage system is in a copy relationship with the new primary data system. Thus, the relationship between the old primary storage system and the new secondary storage system is no longer necessary.

[0088] In operation 512, a synchronous replication relationship is established between the new primary storage system and the new secondary storage system. Additionally, a multi-storage swap configuration (e.g., a HyperSwap configuration) is created for the new primary and secondary storage systems. This is shown in operation 514. The creation of the synchronous replication relationship and the multi-storage swap configuration between the new primary and secondary storage systems enables high availability and failover capabilities and ensures data integrity among the new storage systems.

[0089] In operation 516, an I / O resume operation is performed and queued I / O operations are executed on the new primary and secondary storage systems. Any necessary cleanup operations are then performed on the new storage systems in operation 518 and method 500 ends. The cleanup operations performed in operation 518 may include terminating relationships between the old storage devices. For example, a synchronous mirroring relationship between the old primary storage system and the old secondary storage system may be terminated. Additionally, any multi-storage swap configurations (e.g., HyperSwap configurations) between the old primary storage system and the old secondary storage system are removed during cleanup operation 518.

[0090] From the above, it can be seen that storage management according to the present description can provide an automated process for migrating data from one source volume to another while maintaining disaster recovery capabilities and substantially avoiding redundant data and data copies that typically occurred using previous procedures. Thus, disaster recovery capabilities can be maintained throughout the data migration. Furthermore, migration operations may be completed with little or no interruption of ongoing I / O operations. As a result, it is believed that users can migrate data in situations where it may previously have been impractical, such as while business-critical operations are being performed.

[0091] Thus, in one aspect of the present description, migration of a storage system configured for disaster recovery may be undertaken with little or no impact to the disaster recovery capabilities between the original primary and secondary volumes. In one embodiment, a multi-storage volume swap function, such as HyperSwap®, may be utilized and modified to automate the migration of data to a new source storage subsystem without the user having to manually remove existing copy relationships or create new copy relationships. It is believed that storage management according to the present description may save a user significant time while reducing the opportunity for error that may occur when attempting to manually create thousands of copy relationship pairs.

[0092] 6, there is shown a high-level block diagram of an example computer system 601 that may be used in implementing one or more of the methods, tools, and modules described herein, and any related functions (e.g., using one or more processor circuits or computer processors of a computer), in accordance with an embodiment of the present disclosure. In some embodiments, the major components of the computer system 601 may include one or more CPUs 602, a memory subsystem 604, a terminal interface 612, a storage interface 616, an I / O (input / output) device interface 614, and a network interface 618, all of which may be communicatively coupled, directly or indirectly, for inter-component communication via a memory bus 603, an I / O bus 608, and an I / O bus interface unit 610.

[0093] Computer system 601 may include one or more general purpose programmable central processing units (CPUs) 602A, 602B, 602C, and 602D, generally referred to herein as CPUs 602. In some embodiments, computer system 601 may include multiple processors typical of larger systems, while in other embodiments computer system 601 may alternatively be a single CPU system. Each CPU 602 may execute instructions stored in memory subsystem 604 and may include one or more levels of on-board cache.

[0094] The system memory 604 may comprise a computer system readable medium in the form of a volatile memory, such as a random access memory (RAM) 622 or a cache memory 624. The computer system 601 may further include other removable / non-removable, volatile / non-volatile computer system storage media. By way of example only, a storage system 626 may be provided for reading and writing a non-removable, non-volatile magnetic medium, such as a "hard drive." Although not shown, a magnetic disk drive may be provided for reading and writing a removable, non-volatile magnetic disk (e.g., a "floppy disk"), or an optical disk drive may be provided for reading and writing a removable, non-volatile optical disk, such as a CD-ROM, DVD-ROM, or other optical media. Additionally, the memory 604 may include a flash memory, such as, for example, a flash memory stick drive or a flash drive. The memory devices may be connected to the memory bus 603 by one or more data media interfaces. The memory 604 may include at least one program product having a set (eg, at least one) of program modules configured to perform the functions of various embodiments.

[0095] One or more programs / utilities 628, each having at least one set of program modules 630, may be stored in memory 604. The programs / utilities 628 may include a hypervisor (also called a virtual machine monitor), one or more operating systems, one or more application programs, other program modules, and program data. Each of the operating system, one or more application programs, other program modules, and program data, or some combination thereof, may include an implementation of a networking environment. The program modules 630 collectively implement the functions or methods of the various embodiments.

[0096] Although memory bus 603 is illustrated in FIG. 6 as a single bus structure providing a direct communication path between CPU 602, memory subsystem 604, and I / O bus interface 610, memory bus 603 may, in some embodiments, include multiple different buses or communication paths that may be arranged in any of a variety of ways, such as point-to-point links in a hierarchical, star, or web configuration, multiple hierarchical buses, parallel and redundant paths, or any other suitable type of configuration. Additionally, while I / O bus interface 610 and I / O bus 608 are illustrated as single respective units, computer system 601 may, in some embodiments, include multiple I / O bus interface units 610, multiple I / O buses 608, or both. Additionally, although multiple I / O interface units are illustrated separating I / O bus 608 from the various communication paths extending to the various I / O devices, in other embodiments some or all of the I / O devices may be directly connected to one or more system I / O buses.

[0097] In some embodiments, computer system 601 may be a multi-user mainframe computer system, a single-user system, or a server computer or similar device that has little or no direct user interface but receives requests from other computer systems (clients). Further, in some embodiments, computer system 601 may be implemented as a desktop computer, a portable computer, a laptop or notebook computer, a tablet computer, a pocket computer, a telephone, a smart phone, a network switch or router, or any other suitable type of electronic device.

[0098] It is noted that Figure 6 is intended to depict representative major components of an exemplary computer system 601. However, in some embodiments, the individual components may be more or less complex than those depicted in Figure 6, components other than or in addition to those depicted in Figure 6 may be present, and the number, type, and configuration of such components may vary. Additionally, the modules are listed and described illustratively according to an embodiment and are not intended to indicate that a particular module is required or to exclude other potential modules (or functionality / purpose as applied to a particular module).

[0099] Although this disclosure includes detailed descriptions of cloud computing, it should be understood that implementations of the teachings recited herein are not limited to cloud computing environments. Rather, embodiments of the invention are capable of being implemented in conjunction with any other type of computing environment now known or later developed.

[0100] Cloud computing is a model of service delivery for enabling convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, network bandwidth, servers, processing, memory, storage, applications, virtual machines, and services) that can be quickly provisioned and released with minimal management effort or interaction with a service provider. The cloud model may include at least five characteristics, at least three service models, and at least four deployment models.

[0101] The characteristics are as follows:

[0102] On-Demand Self-Service: Cloud customers can unilaterally provision computing capacity, such as server time and network storage, as needed, automatically, without the need for human interaction with the service provider.

[0103] Broad Network Access: Capabilities are available over the network and accessed through standard mechanisms that facilitate use by heterogeneous thin- or thick-client platforms (e.g., mobile phones, laptops, and PDAs).

[0104] Resource Pooling: The provider's computing resources are pooled to serve multiple consumers using a multi-tenant model, with various physical and virtual resources dynamically allocated and reallocated on demand. Location independence is meant in that the consumer generally has no control or knowledge of the exact location of the resources provided, but the location may be specified at a higher level of abstraction (e.g., country, state, or data center).

[0105] Rapid Elasticity: Capacity can be rapidly and elastically provisioned, sometimes automatically, to quickly scale out, and rapidly released to quickly scale in. To the consumer, the capacity available for provisioning often appears unlimited, and can be purchased in any amount at any time.

[0106] Measured Services: Cloud systems automatically control and optimize resource usage by leveraging metering capabilities at several levels of abstraction appropriate to the type of service (e.g., storage, processing, bandwidth, and active user accounts). Resource usage can be monitored, controlled, and reported, providing transparency to both providers and consumers of the services used.

[0107] The service model is as follows:

[0108] Software as a Service (SaaS): The consumer is provided with the ability to use a provider's applications running on a cloud infrastructure. The applications are accessible from a variety of client devices through thin-client interfaces such as web browsers (e.g., web-based email). The consumer has no management or control over the underlying cloud infrastructure, including networks, servers, operating systems, storage, or possibly individual application capabilities, with the possible exception of limited user-specific application configuration settings.

[0109] Platform as a Service (PaaS): The capability provided to a consumer is to deploy consumer-created or acquired applications, created using programming languages ​​and tools supported by the provider, onto a cloud infrastructure. The consumer does not manage or control the underlying cloud infrastructure, including networks, servers, operating systems, or storage, and has control over the deployed applications and, in some cases, the application hosting environment configuration.

[0110] Infrastructure as a Service (IaaS): The capability provided to the customer is to provide processing, storage, networking, and other basic computing resources on which the customer can deploy and run any software, which may include operating systems and applications. The customer does not manage or control the underlying cloud infrastructure, but rather exercises control over the operating systems, storage, deployed applications, and in some cases, limited control over selected networking components (e.g., host firewalls).

[0111] The deployment model is as follows:

[0112] Private Cloud: The cloud infrastructure is operated solely for the organization. The cloud infrastructure may be managed by the organization or a third party and may be on-site or off-site.

[0113] Community Cloud: Cloud infrastructure is shared by several organizations to support a particular community that has shared concerns (e.g., mission, security requirements, policies, and compliance considerations). The cloud infrastructure may be managed by the organization or a third party and may be on-site or off-site.

[0114] Public Cloud: Cloud infrastructure is made available to the general public or large industry entities and is owned by the organizations that sell cloud services.

[0115] Hybrid Cloud: The cloud infrastructure is a composite of two or more clouds (private, community, or public) that remain unique entities but are tied together by standard or proprietary technologies that enable data and application portability (e.g., cloud bursting for load balancing between clouds).

[0116] Cloud computing environments are service-oriented with a focus on statelessness, loose coupling, modularity, and semantic interoperability. At the heart of cloud computing is an infrastructure that consists of a network of interconnected nodes.

[0117] Referring now to FIG. 7, an illustrative cloud computing environment 50 is depicted. As shown, the cloud computing environment 50 includes one or more cloud computing nodes 10, with which local computing devices used by cloud users, such as, for example, a personal digital assistant (PDA) or cellular phone 54A, a desktop computer 54B, a laptop computer 54C, or an automobile computer system 54N, or combinations thereof, may communicate. The nodes 10 may also communicate with each other. The nodes 10 may be physically or virtually grouped in one or more networks, such as a private, community, public, or hybrid cloud, or combinations thereof, as described above (not shown). This allows the cloud computing environment 50 to provide infrastructure, platform, and / or software as a service without the cloud user having to maintain resources on a local computing device. It will be understood that the types of computing devices 54A-N illustrated in FIG. 7 are intended to be illustrative only, and that the computing node 10 and cloud computing environment 50 are capable of communicating with any type of computerized device via any type of network and / or network addressable connections (e.g., using a web browser).

[0118] Referring now to Figure 8, a set of functional abstraction layers provided by cloud computing environment 50 (Figure 7) is shown. It should be understood in advance that the components, layers, and functions shown in Figure 8 are intended to be illustrative only, and embodiments of the present invention are not limited thereto. As depicted, the following layers and corresponding functions are provided:

[0119] Hardware and software layer 60 includes hardware and software components. Examples of hardware components include mainframe 61, RISC (reduced instruction set computer) architecture based servers 62, servers 63, blade servers 64, storage devices 65, and networks and network components 66. In some embodiments, software components include network application server software 67 and database software 68.

[0120] The virtualization layer 70 provides an abstraction layer within which instances of virtual entities such as virtual servers 71, virtual storage 72, virtual networks including virtual private networks 73, virtual applications and operating systems 74, and virtual clients 75 may be provided.

[0121] In one example, the management layer 80 may provide the functions described below. Resource provisioning 81 provides dynamic procurement of computing and other resources utilized to perform tasks within the cloud computing environment. Metering and pricing 82 provides cost tracking as resources are utilized within the cloud computing environment and billing or invoicing for the usage of these resources. In one example, these resources may include application software licenses. Security provides identity verification of cloud consumers and tasks, and protection of data and other resources. User portal 83 provides consumers and system administrators with access to the cloud computing environment. Service level management 84 provides allocation and management of cloud computing resources such that required service levels are met. Service level agreement (SLA) planning and execution 85 provides pre-provisioning and procurement of cloud computing resources in anticipation of future requirements according to SLAs.

[0122] Workload tier 90 provides examples of functions for which a cloud computing environment may be utilized. Examples of workloads and functions that may be provided from this tier include mapping and navigation 91, software development and lifecycle management 92, virtual classroom instructional delivery 93, data analytics processing 94, transaction processing 95, and storage migration 96. Storage migration 96 may include instructions for performing various functions disclosed herein, such as enabling migration from old primary and secondary storage systems to new primary and secondary storage systems while maintaining high availability and HyperSwap® functionality.

[0123] The present invention may be a system, method, and / or computer program product, which may include a computer readable storage medium (or media) having computer readable program instructions for causing a processor to carry out aspects of the present invention.

[0124] A computer readable storage medium can be a tangible device capable of holding and storing instructions for use by an instruction execution device. A computer readable storage medium can be, for example, but not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing. A non-exhaustive list of more specific examples of computer readable storage media includes portable computer diskettes, hard disks, random access memories (RAM), read-only memories (ROM), erasable programmable read-only memories (EPROMs or flash memories), static random access memories (SRAMs), portable compact disk read-only memories (CD-ROMs), digital versatile disks (DVDs), memory sticks, floppy disks, mechanically encoded devices such as punch cards or ridge-in-groove structures having instructions recorded thereon, and any suitable combination of the foregoing. Computer-readable storage media as used herein should not be interpreted as signals that are transitory in nature, such as electric waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through a waveguide or other transmission medium (e.g., light pulses passing through a fiber optic cable), or electrical signals transmitted through wires.

[0125] The computer readable program instructions described herein can be downloaded from the computer readable storage medium to each computing / processing device or to an external computer or external storage device over a network, such as the Internet, a local area network, a wide area network, or a wireless network, or a combination thereof. The network may comprise copper transmission cables, optical transmission fiber, wireless transmission, routers, firewalls, switches, gateway computers, or edge servers, or a combination thereof. A network adapter card or network interface of each computing / processing device receives the computer readable program instructions from the network and forwards the computer readable program instructions for storage on the computer readable storage medium within the respective computing / processing device.

[0126] The computer readable program instructions for carrying out the operations of the present invention may be assembler instructions, instruction set architecture (ISA) instructions, machine language instructions, machine dependent instructions, microcode, firmware instructions, state setting data, or source or object code written in any combination of one or more programming languages, including object oriented programming languages ​​such as Smalltalk®, C++, or the like, and traditional procedural programming languages ​​such as the “C” programming language, or similar programming languages. The computer readable program instructions may run entirely on the user's computer, or partially on the user's computer, as a stand-alone software package, or partially on the user's computer and partially on a remote computer, or entirely on a remote computer or server. In the latter scenario, the remote computer may 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 the connection may be made to an external computer (e.g., through the Internet using an Internet Service Provider). In some embodiments, electronic circuitry including programmable logic devices, field programmable gate arrays (FPGAs), or programmable logic arrays (PLAs) may execute computer readable program instructions by utilizing state information of the computer readable program instructions to individualize the electronic circuitry to implement aspects of the present invention.

[0127] Aspects of the present invention are described herein with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems) and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, can be implemented by computer readable program instructions.

[0128] These computer readable program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute on the processor of the computer or other programmable data processing apparatus, produce means for performing the functions / operations specified in one or more blocks of the flowcharts and / or block diagrams. These computer readable program instructions may also be stored on a computer readable storage medium having instructions stored thereon, such that the computer readable storage medium comprises an article of manufacture including instructions for performing aspects of the functions / operations specified in one or more blocks of the flowcharts and / or block diagrams, and may direct a computer, programmable data processing apparatus, or other device, or combination thereof, to function in a particular manner.

[0129] The computer-readable program instructions may also be loaded into a computer, other programmable data processing apparatus, or other device to cause the computer, other programmable apparatus, or other device to perform a series of operational steps to produce a computer-executed process to perform the functions / operations specified in one or more blocks of the flowcharts and / or block diagrams.

[0130] The flowcharts and block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present invention. In this regard, each block in the flowcharts or block diagrams may represent a module, segment, or portion of instructions, including one or more executable instructions for implementing a specified logical function. In some alternative implementations, the functions noted in the blocks may be performed out of the order noted in the figures. For example, two blocks shown in succession may in fact be performed as a single step that is performed simultaneously, substantially simultaneously, in a partially or fully time-overlapping manner, or the blocks may sometimes be performed in reverse order depending on the functionality involved. It is also noted that each block of the block diagrams and / or flowchart illustrations, and combinations of blocks in the block diagrams and / or flowchart illustrations, may be executed by a special-purpose hardware-based system that performs the specified functions or operations or executes a combination of special-purpose hardware and computer instructions.

[0131] The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the various embodiments. As used herein, the singular forms "a", "an" and "the" are intended to include the plural forms as well, unless the context clearly dictates otherwise. It will be further understood that the terms "includes" and / or "including", as used herein, specify the presence of stated features, integers, steps, operations, elements, or components, or combinations thereof, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, or groups thereof, or combinations thereof. In the preceding detailed description of example embodiments of various embodiments, reference has been made to the accompanying drawings, in which like numerals represent like elements, which form a part of this specification and which are shown as illustrative specific example embodiments in which the various embodiments may be practiced. These embodiments have been described in sufficient detail to enable one skilled in the art to practice the embodiments, but other embodiments may be used and logical, mechanical, electrical and other changes may be made without departing from the scope of the various embodiments. In the previous description, numerous specific details have been set forth in order to provide a thorough understanding of the various embodiments. However, the various embodiments may be practiced without these specific details. In other instances, well-known circuits, structures, and techniques have not been shown in detail in order not to obscure the embodiments.

[0132] As used herein, "a number of," when used in reference to an item, means one or more of the items. For example, "a number of different types of networks" is one or more different types of networks.

[0133] When the various reference numerals include a common number followed by different letters (e.g., 100a, 100b, 100c), or punctuation marks followed by different numbers (e.g., 100-1, 100-2, or 100.1, 100.2), the use of the reference character without a letter or following number (e.g., 100) can refer to the group of elements as a whole, any subset of the group, or a sample of instances of the group.

[0134] Furthermore, the phrase "at least one of," when used in conjunction with a list of items, means that different combinations of one or more of the listed items may be used and only one of each item in the list may be required. In other words, "at least one of" means any combination of items, any number of items may be used from the list, but not all of the items in the list are required. The items can be specific objects, things, or categories.

[0135] For example, and without limitation, "at least one of item A, item B, or item C" may include item A, item A and item B, or item B. This example may also include item A, item B, and item C, or item B and item C. Of course, any combination of these items may be present. In some illustrative examples, "at least one of" may be, for example, and without limitation, two of item A, one of item B, and ten of item C, four of item B, and seven of item C, or other suitable combinations.

[0136] In the foregoing, reference is made to various embodiments. However, it should be understood that the disclosure is not limited to the specifically described embodiments. Instead, any combination of the described features and elements, whether or not related to different embodiments, is envisioned to implement and practice the disclosure. Many changes, modifications, and variations may be apparent to those skilled in the art without departing from the scope and spirit of the described embodiments. Furthermore, the embodiments of the present disclosure may achieve advantages over other possible solutions or over the prior art, but whether or not a particular advantage is achieved by a given embodiment does not limit the disclosure. Thus, the described aspects, features, embodiments, and advantages are merely illustrative and should not be considered elements or limitations of the appended claims unless expressly recited in the claims. Additionally, it is intended that the following claims be construed to include all such modifications and variations as fall within the true spirit and scope of the present invention.

[0137] To illustrate certain aspects of the present disclosure, a non-limiting list of example embodiments is provided below.

[0138] Example embodiment 1 is a method. The method includes receiving a command to migrate from a first storage system to a second storage system, the first storage system comprising a first primary storage and a first secondary storage, and the second storage system comprising a second primary storage and a second secondary storage. The method further includes initiating data replication between the first primary storage and the second primary storage in response to receiving the command. The method further includes initiating data replication between the first primary storage and the second secondary storage in response to receiving the command. The method further includes migrating from the first storage system to the second storage system.

[0139] Example embodiment 2 includes the method of example embodiment 1, but includes or excludes optional features. In this example embodiment, initiating data replication between the first primary storage and the second primary storage includes identifying a first set of volumes to be migrated on the first primary storage, identifying a second set of suitable volumes on the second primary storage to receive the first set of volumes, and mirroring data of the first set of volumes to the second set of volumes. Optionally, the method further includes initiating data replication between the first primary storage and the second secondary storage by identifying a third set of suitable volumes on the second secondary storage to receive the first set of volumes, and mirroring data of the first set of volumes to the third set of volumes.

[0140] Example embodiment 3 includes the method of any one of example embodiments 1 to 2, including or excluding optional features. In this example embodiment, initiating data replication between the first primary storage and the second secondary storage includes identifying a first set of volumes to be migrated on the first primary storage. Initiating data replication further includes creating a second set of volumes on the second primary storage for receiving the first set of volumes. The second set of volumes has properties suitable for receiving the data of the first set of volumes. Initiating data replication further includes mirroring data of the first set of volumes to the second set of volumes. Optionally, the properties include volume size and type. Optionally, the method further includes initiating data replication between the first primary storage and the second secondary storage by creating a third set of suitable volumes on the second secondary storage for receiving the first set of volumes. The third set of volumes has properties suitable for receiving the data of the first set of volumes. Initiating data replication further includes mirroring data of the first set of volumes to the third set of volumes.

[0141] Example embodiment 4 includes the method of any one of example embodiments 1 to 3, including or excluding optional features. In this example embodiment, the method includes preparing the second storage system for migration prior to migrating from the first storage system to the second storage system in response to data replication between the first primary storage and both the second primary storage and secondary storage reaching a threshold completion level. Optionally, preparing the second storage system for migration includes converting a replication mode between the first primary storage and the second primary storage to a synchronous mode, and converting a replication mode between the first primary storage and the second secondary storage to a synchronous mode. Optionally, preparing the second storage system for migration further includes enabling a multi-storage volume swap between the first primary storage and the second primary storage in response to reaching a full duplex state between the first primary storage and both the second primary storage and the second secondary storage.

[0142] Example embodiment 5 includes the method of any one of example embodiments 1 to 4, including or excluding optional features. In this example embodiment, migrating from the first storage system to the second storage system is in response to reaching a full duplex state between the first primary storage and both the second primary storage and the second secondary storage. Optionally, migrating from the first storage system to the second storage system includes suspending I / O operations and queuing received I / O operations for subsequent processing. Optionally, migrating from the first storage system to the second storage system further includes terminating a data replication relationship between the first primary storage and the second secondary storage, enabling a synchronous data replication relationship between the second primary storage and the second secondary storage, and enabling a multi-storage volume swap between the second primary storage and the second secondary storage. Optionally, migrating from the first storage system to the second storage system further includes performing the I / O operations of the queue on the second primary storage.

[0143] Example embodiment 6 includes the method of any one of example embodiments 1 to 5, including or excluding optional features. In this example embodiment, the first primary storage is configured to initially mirror the data to the first secondary storage. The method further includes terminating the relationship between the first primary storage and the first secondary storage after migrating to the second storage system, and performing new I / O operations on the second storage system. Optionally, the data may not be mirrored between the first primary storage and the first secondary storage. This may be the result of, for example, an error in the first secondary storage or a communication network between the first primary storage and the first secondary storage.

[0144] Example embodiment 7 is a system. The system includes a memory and a processor communicatively coupled to the memory, the processor configured to perform a method. The method includes receiving a command to migrate from a first storage system to a second storage system, the first storage system comprising a first primary storage and a first secondary storage, and the second storage system comprising a second primary storage and a second secondary storage. The method further includes initiating data replication between the first primary storage and the second primary storage in response to receiving the command. The method further includes initiating data replication between the first primary storage and the second secondary storage in response to receiving the command. The method further includes migrating from the first storage system to the second storage system.

[0145] Example embodiment 8 includes the system of example embodiment 7, but includes or excludes optional features. In this example embodiment, initiating data replication between the first primary storage and the second primary storage includes identifying a first set of volumes to be migrated on the first primary storage, identifying a suitable second set of volumes on the second primary storage to receive the first set of volumes, and mirroring data of the first set of volumes to the second set of volumes.

[0146] Example embodiment 9 includes the system of any one of example embodiments 7 to 8, including or excluding optional features. In this example embodiment, the method further includes preparing the second storage system for migration prior to migrating from the first storage system to the second storage system in response to data replication between the first primary storage and both the second primary storage and secondary storage reaching a threshold completion level. Optionally, preparing the second storage system for migration includes converting a replication mode between the first primary storage and the second primary storage to a synchronous mode, and converting a replication mode between the first primary storage and the second secondary storage to a synchronous mode. Optionally, preparing the second storage system for migration further includes enabling a multi-storage volume swap between the first primary storage and the second primary storage in response to reaching a full duplex state between the first primary storage and both the second primary storage and the second secondary storage.

[0147] Example embodiment 10 includes the system of any one of example embodiments 7-9, including or excluding optional features. In this example embodiment, migrating from the first storage system to the second storage system is in response to reaching a full duplex state between the first primary storage and both the second primary storage and the second secondary storage. Optionally, migrating from the first storage system to the second storage system includes suspending I / O operations and queuing received I / O operations for subsequent processing. Optionally, migrating from the first storage system to the second storage system further includes terminating a data replication relationship between the first primary storage and the second secondary storage, enabling a synchronous data replication relationship between the second primary storage and the second secondary storage, and enabling a multi-storage volume swap between the second primary storage and the second secondary storage.

[0148] Example embodiment 11 is a computer program product comprising a computer readable storage medium having program instructions embodied therein. The computer readable medium comprises instructions directing a processor to perform a method. The method includes receiving a command to migrate from a first storage system to a second storage system, the first storage system comprising a first primary storage and a first secondary storage, and the second storage system comprising a second primary storage and a second secondary storage. The method further includes initiating data replication between the first primary storage and the second primary storage in response to receiving the command. The method further includes initiating data replication between the first primary storage and the second secondary storage in response to receiving the command. The method further includes migrating from the first storage system to the second storage system.

[0149] Example embodiment 12 includes the computer-readable medium of example embodiment 11, but with or without optional features. In this example embodiment, the method further includes preparing the second storage system for migration prior to migrating from the first storage system to the second storage system in response to data replication between the first primary storage and both the second primary storage and secondary storage reaching a threshold completion level.

[0150] Example embodiment 13 includes the computer-readable medium of any one of example embodiments 11 to 12, including or excluding optional features. In this example embodiment, preparing the second storage system for migration includes converting a replication mode between the first primary storage and the second primary storage to a synchronous mode, converting a replication mode between the first primary storage and the second secondary storage to a synchronous mode, and enabling a multi-storage volume swap between the first primary storage and the second primary storage in response to reaching a full duplex state between the first primary storage and both the second primary storage and the second secondary storage.

[0151] Example embodiment 14 is a method. The method includes receiving a command to migrate from a first storage system to a second storage system. The first storage system includes a first primary storage and a first secondary storage, and the second storage system includes a second primary storage and a second secondary storage. The method further includes replicating data between the first primary storage and the second primary storage in response to receiving the command. The method further includes replicating data between the first primary storage and the second secondary storage in response to receiving the command. The method further includes suspending I / O operations received for execution on the first storage system, queuing the I / O operations, and enabling a multi-storage volume swap between the second primary storage and the second secondary storage in response to reaching a full duplex state between the first primary storage and both the second primary storage and the second secondary storage. The method further includes migrating new received I / O operations from the first storage system to the second storage system for execution on the second storage system. The method further includes resuming the I / O operations and executing the queued I / O operations on the second storage system.

[0152] Example embodiment fifteen is a system. The system includes a memory and a processor communicatively coupled to the memory. The processor is configured to perform a method. The method includes receiving a command to migrate from a first storage system to a second storage system. The first storage system includes a first primary storage and a first secondary storage, and the second storage system includes a second primary storage and a second secondary storage. The method further includes replicating data between the first primary storage and the second primary storage in response to receiving the command. The method further includes replicating data between the first primary storage and the second secondary storage in response to receiving the command. The method further includes suspending received I / O operations for execution on the first storage system, queuing the I / O operations, and enabling a multi-storage volume swap between the second primary storage and the second secondary storage in response to reaching a full-duplex state between the first primary storage and both the second primary storage and the second secondary storage. The method further includes migrating new received I / O operations from the first storage system to the second storage system for execution on the second storage system. The method further includes resuming the I / O operations and executing the queued I / O operations on the second storage system.

Claims

1. 1. A method comprising: receiving a command to migrate from a first storage system to a second storage system, the first storage system comprising a first primary storage and a first secondary storage, and the second storage system comprising a second primary storage and a second secondary storage; initiating data replication between the first primary storage and the second primary storage in response to receiving the command; initiating data replication between the first primary storage and the second secondary storage in response to receiving the command; Migrating from the first storage system to the second storage system; A method comprising:

2. initiating data replication between the first primary storage and the second primary storage; identifying a first set of volumes to be migrated on the first primary storage; identifying a second set of suitable volumes on the second primary storage for receiving the first set of volumes; mirroring data of the first set of volumes to the second set of volumes; The method of claim 1 , comprising:

3. initiating data replication between the first primary storage and the second secondary storage; identifying a first set of volumes to be migrated on the first primary storage; creating a second set of volumes on the second primary storage for receiving the first set of volumes, the second set of volumes having suitable properties to receive data of the first set of volumes; mirroring the data of the first set of volumes to the second set of volumes; The method of claim 1 , comprising:

4. The method of claim 3 , wherein the properties include volume size and type.

5. preparing the second storage system for migration prior to migrating from the first storage system to the second storage system in response to the data replication between the first primary storage and both the second primary and secondary storage reaching a threshold completion level. The method of claim 1 further comprising:

6. Preparing the second storage system for migration includes: converting a replication mode between the first primary storage and the second primary storage to a synchronous mode; converting a replication mode between the first primary storage and the second secondary storage to a synchronous mode; The method of claim 5 , comprising:

7. Preparing the second storage system for migration includes: enabling a multi-storage volume swap between said first primary storage and said second primary storage in response to reaching a full duplex state between said first primary storage and both said second primary storage and said second secondary storage. The method of claim 6 further comprising:

8. 2. The method of claim 1, wherein migrating from the first storage system to the second storage system is in response to reaching a full duplex state between the first primary storage and both the second primary storage and the second secondary storage.

9. Migrating from the first storage system to the second storage system; suspending I / O operations; Queueing the received I / O operations for subsequent processing; The method of claim 8 , comprising:

10. Migrating from the first storage system to the second storage system; terminating a data replication relationship between the first primary storage and the second secondary storage; enabling a synchronous data replication relationship between the second primary storage and the second secondary storage; enabling a multi-storage volume swap between the second primary storage and the second secondary storage; The method of claim 9 further comprising:

11. Migrating from the first storage system to the second storage system; executing I / O operations of the queue on the second primary storage; The method of claim 10 further comprising:

12. The first primary storage is initially configured to mirror data to the first secondary storage, the method comprising: terminating a relationship between the first primary storage and the first secondary storage after migrating to the second storage system; executing new I / O operations on the second storage system; The method of claim 1 further comprising:

13. 1. A system comprising: Memory, a processor communicatively coupled to the memory; wherein the processor is configured to perform a method, the method comprising: receiving a command to migrate from a first storage system to a second storage system, the first storage system comprising a first primary storage and a first secondary storage, and the second storage system comprising a second primary storage and a second secondary storage; initiating data replication between the first primary storage and the second primary storage in response to receiving the command; initiating data replication between the first primary storage and the second secondary storage in response to receiving the command; Migrating from the first storage system to the second storage system; Including, the system.

14. initiating data replication between the first primary storage and the second primary storage; identifying a first set of volumes to be migrated on the first primary storage; identifying a second set of suitable volumes on the second primary storage for receiving the first set of volumes; mirroring data of the first set of volumes to the second set of volumes; The system of claim 13 , comprising:

15. The method further comprising: preparing the second storage system for migration prior to migrating from the first storage system to the second storage system in response to the data replication between the first primary storage and both the second primary and secondary storage reaching a threshold completion level. The system of claim 13 further comprising:

16. Preparing the second storage system for migration includes: converting a replication mode between the first primary storage and the second primary storage to a synchronous mode; converting a replication mode between the first primary storage and the second secondary storage to a synchronous mode; The system of claim 15 , comprising:

17. Preparing the second storage system for migration includes: enabling a multi-storage volume swap between said first primary storage and said second primary storage in response to reaching a full duplex state between said first primary storage and both said second primary storage and said second secondary storage. The system of claim 16 further comprising:

18. 14. The system of claim 13, wherein migrating from the first storage system to the second storage system is in response to reaching a full duplex state between the first primary storage and both the second primary storage and the second secondary storage.

19. Migrating from the first storage system to the second storage system; suspending I / O operations; Queueing the received I / O operations for subsequent processing; The system of claim 18 , comprising:

20. Migrating from the first storage system to the second storage system; terminating a data replication relationship between the first primary storage and the second secondary storage; enabling a synchronous data replication relationship between the second primary storage and the second secondary storage; enabling a multi-storage volume swap between the second primary storage and the second secondary storage; 20. The system of claim 19, further comprising:

21. A computer program product comprising a computer readable storage medium having program instructions embodied thereon, the program instructions being executable by a computer to perform a method, the method comprising: receiving a command to migrate from a first storage system to a second storage system, the first storage system comprising a first primary storage and a first secondary storage, and the second storage system comprising a second primary storage and a second secondary storage; initiating data replication between the first primary storage and the second primary storage in response to receiving the command; initiating data replication between the first primary storage and the second secondary storage in response to receiving the command; Migrating from the first storage system to the second storage system; 2. A computer program product comprising:

22. The method further comprising: preparing the second storage system for migration prior to migrating from the first storage system to the second storage system in response to the data replication between the first primary storage and both the second primary and secondary storage reaching a threshold completion level.

22. The computer program product of claim 21, further comprising:

23. Preparing the second storage system for migration includes: converting a replication mode between the first primary storage and the second primary storage to a synchronous mode; converting a replication mode between the first primary storage and the second secondary storage to a synchronous mode; in response to reaching a full duplex state between the first primary storage and both the second primary storage and the second secondary storage, effecting a multi-storage volume swap between the first primary storage and the second primary storage; 22. The computer program product of claim 21, comprising:

24. 1. A method comprising: receiving a command to migrate from a first storage system to a second storage system, the first storage system comprising a first primary storage and a first secondary storage, and the second storage system comprising a second primary storage and a second secondary storage; in response to receiving the command, replicating data between the first primary storage and the second primary storage; in response to receiving the command, replicating data between the first primary storage and the second secondary storage; in response to a full duplex state being reached between the first primary storage and both the second primary storage and the second secondary storage; suspending I / O operations received for execution on the first storage system; Queueing the I / O operations; Enabling a multi-storage volume swap between the second primary storage and the second secondary storage; migrating new received I / O operations from the first storage system to the second storage system for execution on the second storage system; resuming I / O operations; and executing the queued I / O operations on the second storage system; A method comprising:

25. 1. A system comprising: Memory, a processor communicatively coupled to the memory; wherein the processor is configured to perform a method, the method comprising: receiving a command to migrate from a first storage system to a second storage system, the first storage system comprising a first primary storage and a first secondary storage, and the second storage system comprising a second primary storage and a second secondary storage; in response to receiving the command, replicating data between the first primary storage and the second primary storage; in response to receiving the command, replicating data between the first primary storage and the second secondary storage; in response to reaching full duplex between the first primary storage and both the second primary storage and the second secondary storage; suspending I / O operations received for execution on the first storage system; Queueing the I / O operations; Enabling a multi-storage volume swap between the second primary storage and the second secondary storage; migrating new received I / O operations from the first storage system to the second storage system for execution on the second storage system; resuming I / O operations; and executing the queued I / O operations on the second storage system; Including, the system.

Citation Information

Patent Citations

  • System for transiting remote copy pair

    JP2006293947A

  • Storage system having function which migrates virtual communication port which is added to physical communication port

    JP2009146106A

  • Management server and data migration method

    US20130080723A1

  • Data migration using multi-storage volume swap

    US20150088821A1

  • Storage device and storage device migration method

    WO2014087465A1