Non-disruptive storage volume migration between storage controllers
The method addresses disruptive volume migration by creating a migration replication relationship and using asymmetric access states to switch I/O operations non-disruptively from the source to the destination volume, ensuring continuous host operations and data consistency.
Patent Information
- Application Number
- JP2023573342
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2021-06-22
- Filing Date
- 2022-06-08
- Publication Date
- 2025-12-12
- Estimated Expiration
- 2042-06-08
AI Technical Summary
Existing volume migration technologies between storage controllers require disruptive downtime as they interrupt input/output operations during the migration process, necessitating host reconfiguration and data synchronization.
A method and system for non-disruptive volume migration between storage controllers by creating a migration replication relationship, presenting source and destination volumes as the same volume with differentiated discoverable paths, and coordinating I/O operations using asymmetric access states of target ports to seamlessly switch to the destination volume upon completion.
Enables seamless and non-disruptive migration of volumes between storage controllers, maintaining host operations without downtime by preventing I/O to the destination volume during migration and switching I/O operations post-migration, ensuring data consistency and continuity.
Smart Images

Figure 0007785102000001 
Figure 0007785102000002 
Figure 0007785102000003
Abstract
Description
[Technical Field]
[0001] The present invention relates to storage systems, and more particularly to non-disruptive storage volume migration between storage controllers. [Background technology]
[0002] Small Computer Systems Interface (SCSI) is a set of standards for physically connecting and transferring data between computers and peripheral devices. The SCSI standard defines commands, protocols, electrical interfaces, optical interfaces, and logical interfaces. The SCSI standard defines command sets for specific peripheral device types. SCSI is most commonly used for hard disk drives and tape drives.
[0003] Storage controllers in a storage network implement block virtualization of storage, achieving a separation between physical and logical storage so that storage can be accessed regardless of its physical or heterogeneous structure. This separation allows storage system administrators more flexibility in managing end-user storage. A logical unit number (LUN) is a number used to identify a logical unit; a logical unit is a device that is addressed by the SCSI protocol or a storage area network protocol that encapsulates SCSI, such as Fibre Channel or iSCSI.
[0004] A volume or logical drive is a single accessible storage area with a single file system, typically (but not always) residing on a single partition of a hard disk. Although a volume may be distinct from a physical disk drive, a volume may still be accessed using a logical interface in an operating system.
[0005] To balance workloads or migrate to new storage controller hardware, users need to migrate volumes from one storage controller to another. Often, this migration can only be performed in an outage manner by making the volume unavailable to host input / output (I / O) operations while the migration is taking place.
[0006] The existing volume migration technology is a Metro Mirror relationship that synchronizes a second copy of a volume on a second system with the first copy of the volume on the first system. The target volume appears as a separate volume, and hosts must be reconfigured to use this new volume instead of the source. This requires I / O to be interrupted.
[0007] Other data migration techniques are host-based solutions. Applications run on the host, which initializes and controls the data migration. An initial copy phase reads data from the source and writes it to the target, then a recurring refresh phase performs the same operation for any further updates to the source that occur during the copy phase. Once synchronization is achieved, a volume I / O redirection phase redirects further I / O from the source to the target. Summary of the Invention
[0008] According to one aspect of the present invention, a computer-implemented method for non-disruptive volume migration between storage controllers is provided, the computer-implemented method including creating a migration replication relationship for data migration between a source volume on a first storage controller and a destination volume on a second storage controller, wherein the volumes represent virtualized devices; presenting the source volume and the destination volume as the same volume to a host while defining different discoverable paths to the source volume and the destination volume using differentiated target port descriptors; during the data migration, presenting a target port on the first storage controller as available to enable I / O operations to the source volume and presenting a target port on the second storage controller as standby to enable host discovery of a path to the destination volume, thereby inhibiting I / O operations to the destination volume; and, upon completion of the data migration, switching the target port state to enable I / O operations to the destination volume and inhibit I / O operations to the source volume.
[0009] This has the advantage of allowing data to be migrated from a volume on a first storage controller to a volume on a second storage controller, and then once the migration is complete, host I / O operations can be seamlessly and non-disruptively switched over to the volume on the second storage controller.
[0010] Creating the migration replication relationship may include copying a volume identifier from the source volume to the destination volume so that the destination volume and the source volume respond to a command to identify the destination volume and the source volume with the same volume identifier.
[0011] Creating the migration replication relationship may include coordinating between the first storage controller and the second storage controller such that non-conflicting target port groups and associated port identifiers are identified for the source volume and the destination volume.
[0012] Suppressing I / O operations to the destination volume may include failing received I / O operations at the destination volume.
[0013] The method may include detecting that the host has detected the target port on the second storage controller or receiving confirmation that the host has detected the target port on the second storage controller before switching the port state. The method may include automatically switching the target port state upon detecting completion of the data migration or receiving confirmation of completion of the data migration.
[0014] The method may include issuing an asymmetric access state changed unit attention to the host to alert the host to a change in state that will result in switching of I / O operations from the source volume to the destination volume. The method may include temporarily suspending I / O operations to the volume upon completion of the data migration to ensure consistency of the source and destination volumes. The method may include automatically unmapping the host from the source volume upon detecting completion of the data migration or receiving confirmation of completion of the data migration.
[0015] Suppressing I / O operations to the source volume upon completion of the data migration may include switching a port on the first storage controller to a standby state or removing a path to the source volume upon detecting or receiving confirmation that the migration is successful.
[0016] Switching the target port state may simultaneously switch the state of all volumes in a consistency group.
[0017] According to another aspect of the present invention, a computer-implemented method for non-disruptive volume migration between storage controllers is provided, the computer-implemented method including creating a migration replication relationship for data migration between a source volume on a first storage controller and a destination volume on a second storage controller, wherein the volumes represent virtualized devices; configuring metadata of the destination volume to present the source volume and the destination volume as the same volume to a host while defining different discoverable paths to the source volume and the destination volume using differentiated target port descriptors; facilitating discovery of the destination volume using the discoverable paths; and coordinating I / O operation access during the data migration using asymmetric access states of target ports presented to the host by the first storage controller and the second storage controller.
[0018] Facilitating discovery of the destination volume using the discoverable path may include one or both of the first storage controller and the second storage controller presenting target port group information regarding the source volume, the destination volume, or both, to the host.
[0019] Defining different discoverable paths to the source volume and the destination volume using differentiated target port descriptors may include coordinating between the first storage controller and the second storage controller non-conflicting target port groups and associated port identifiers so that the source volume and the destination volume can identify non-conflicting target port groups and associated port identifiers.
[0020] Defining different discoverable paths to the source volume and the destination volume using differentiated target port descriptors may include setting a system differentiator parameter associated with the destination volume as the inverse of a system differentiator parameter associated with the source volume.
[0021] The method may include configuring a migration replication relationship, including associating metadata with the destination volume to indicate that the destination volume is a migration destination that enables recovery if the data migration is interrupted.
[0022] Configuring the metadata of the destination volume to present the source volume and destination volume to the host as the same volume may include replacing a portion of the metadata associated with the destination volume with a copy of the metadata associated with the source volume.
[0023] According to a further aspect of the present invention, there is provided a system for non-disruptive volume migration between storage controllers, the system including a processor and a memory configured to provide the processor with computer program instructions to perform functions of components of the volume migration system, the components of the volume migration system including a migration relationship configuration component for creating a migration replication relationship for data migration between a source volume on a first storage controller and a destination volume on a second storage controller, the volume representing a virtualized device; and a migration relationship configuration component for presenting the source volume and the destination volume to a host as the same volume while using differentiated target port descriptors. a path discovery component for defining different discoverable paths to the source volume and the destination volume; a target port access component for, during data migration, enabling I / O operations to the source volume by presenting the target port on the first storage controller as available and inhibiting I / O operations to the destination volume by presenting the target port on the second storage controller as standby while allowing the host to discover paths to the destination volume; and an access switching component for, upon completion of data migration, switching the target port state to enable I / O operations to the destination volume and inhibit I / O operations to the source volume.
[0024] The target port access component may include an I / O fail component for failing an I / O operation received at the destination volume.
[0025] The access switching component may include a data migration completion component for detecting completion of the data migration or facilitating automatic switching of the target port state upon receiving confirmation of completion of the data migration.
[0026] The system includes an attention issuing component for issuing an asymmetric access state change unit attention to a host to alert the host of a change in state that will result in a switch of I / O operations from the source volume to the destination volume.
[0027] The access switching component for inhibiting I / O operations to the source volume upon completion of the data migration may include switching a port on the first storage controller to a standby state or removing a path to the source volume upon detecting or receiving confirmation that the migration is successful.
[0028] According to a further aspect of the present invention, there is provided a system for non-disruptive volume migration between storage controllers, the system including a processor and a memory configured to provide the processor with computer program instructions that perform functions of the components of the migration system, the components of the migration system including: a migration relationship configuration component for creating a migration replication relationship for data migration between a source volume on a first storage controller and a destination volume on a second storage controller, wherein the volumes represent virtualized devices; a metadata configuration component for configuring metadata of the destination volume to present the source volume and the destination volume to a host as the same volume while defining different discoverable paths to the source volume and the destination volume using differentiated target port descriptors; a path discovery component for facilitating discovery of the destination volume using the discoverable paths; and a coordination component for coordinating I / O operation access during data migration using asymmetric access states of target ports presented to the host by the first storage controller and the second storage controller.
[0029] The path discovery component for facilitating discovery of the destination volume using discoverable paths may include one or both of the first storage controller and the second storage controller presenting target port group information regarding the source volume, the destination volume, or both, to the host.
[0030] The system may include a recovery indicator component for associating metadata with the destination volume to indicate that the destination volume is a destination that allows recovery if the data migration is interrupted.
[0031] The migration system may be formed by components of each of the first storage controller and the second storage controller, and messages are exchanged between the components to coordinate volume access during data migration.
[0032] According to a further aspect of the present invention, there is provided a computer program product for non-disruptive volume migration between storage controllers, the computer program product including a computer-readable storage medium having program instructions embodied thereon, the program instructions being executable by a processor to cause the processor to: create a migration replication relationship for data migration between a source volume on a first storage controller and a destination volume on a second storage controller, wherein the volumes represent virtualized devices; present the source volume and the destination volume as the same volume to a host while defining different discoverable paths to the source volume and the destination volume using differentiated target port descriptors; during the data migration, presenting the target port of the first storage controller as available thereby enabling I / O operations to the source volume and presenting the target port on the second storage controller as standby while allowing the host to discover a path to the destination volume thereby inhibiting I / O operations to the destination volume; and, when the data migration is complete, switching the target port state to enable I / O operations to the destination volume and inhibit I / O operations to the source volume.
[0033] The computer-readable storage medium may be a non-transitory computer-readable storage medium, and the computer-readable program code may be executable by a processing circuit.
[0034] The subject matter which is regarded as the invention is particularly pointed out and distinctly claimed in the concluding portion of this specification. The invention, both as to organization and method of operation, together with its objects, features, and advantages, may best be understood by reference to the following detailed description taken in conjunction with the accompanying drawings.
[0035] Preferred embodiments of the present invention will now be described, by way of example only, with reference to the following drawings: [Brief explanation of the drawings]
[0036] [Figure 1] FIG. 1 is a block diagram of an example embodiment of a storage system. [Figure 2] FIG. 1 is a block diagram of an exemplary embodiment of a storage system having two storage controllers in which the present invention may be implemented. [Figure 3A] 1 is a flow chart of an exemplary embodiment of a method according to the present invention; [Figure 3B] 1 is a flow chart of an exemplary embodiment of a method according to the present invention; [Figure 4] 4 is a flow chart of another exemplary embodiment of a method according to the present invention; [Figure 5] 1 is a schematic diagram illustrating a method according to the present invention; [Figure 6] FIG. 1 is a block diagram of an exemplary embodiment of a storage controller server according to the present invention. [Figure 7] FIG. 1 is a block diagram of one embodiment of a computer system or cloud server in which the present invention may be implemented. [Figure 8] 1 is a schematic diagram of a cloud computing environment in which the present invention may be implemented. [Figure 9] 1 is a diagram of an abstraction model layer of a cloud computing environment in which the present invention may be implemented. DETAILED DESCRIPTION OF THE INVENTION
[0037] It will be understood that for simplicity and clarity of illustration, elements shown in the figures have not necessarily been drawn to scale. For example, the dimensions of some of the elements may be exaggerated relative to other elements for clarity. Further, where considered appropriate, reference numerals may be repeated among the figures to indicate corresponding or analogous features.
[0038] Detailed embodiments of the claimed structures and methods are disclosed herein. However, it should be understood that the disclosed embodiments are merely exemplary of the claimed structures and methods, which may be embodied in various forms. However, the present invention may be embodied in many different forms and should not be construed as being limited to the exemplary embodiments set forth herein. In the description, details of well-known features and techniques may be omitted to avoid unnecessarily obscuring the presented embodiments.
[0039] Non-disruptive volume migration between two storage controllers is achieved by creating a migration replication relationship to manage the relationship between a source volume on a first storage controller and a destination volume on a second storage controller so that both are presented to the host as a single volume. This allows users to migrate a virtualized disk from one storage controller to another while maintaining host operations for that virtualized disk throughout the migration.
[0040] During the migration phase, when data is copied from the source volume to the destination volume, the second storage controller prevents input / output (I / O) activity to the destination volume by keeping ports in the second storage controller in a standby state, allowing hosts to discover the destination volume.
[0041] Once the migration is completed by changing the port state on the storage controllers, host I / O operations are seamlessly and non-disruptively switched from the first storage controller to the second storage controller. The port state is determined according to the Asymmetric Logical Unit Access (ALUA) state. The ALUA state of the ports on the two storage controllers is set based on the completion of the volume migration so that external devices can detect the state.
[0042] To seamlessly switch the host I / O operations from the source volume to the destination volume, an asymmetric access state change unit attention is issued: the port in the second storage controller switches from a standby state to an active state, while the port in the first storage controller switches from an active state to a standby state or access to the volume through the port is removed.
[0043] 1, a block diagram of a storage network 100 in which the described methods and systems may be implemented is shown, according to one embodiment. The storage network 100 includes hosts 101-103 and a storage network, which may be provided by a high-speed Fibre Channel or iSCSI network, connecting the host systems and storage devices, with connectivity provided through units such as routers and switches provided by a storage fabric 130.
[0044] Storage network 100 includes storage controller 120, which provides a flexible storage solution that enables rapid deployment of block storage services for new and traditional workloads on-premises, off-premises, or a combination of both, including in cloud environments.
[0045] The described methods and systems may be implemented across two storage controllers 120, as further shown with reference to Figure 2, or across three or more storage controllers 120. The two storage controllers 120 may be on the same storage network 100, or may be on two separate storage networks 100, which may be at different sites, for example.
[0046] The storage controller 120 provides block storage virtualization that is presented to the hosts 101-103 in the form of virtualized disks, which the hosts 101-103 discover as managed devices. The storage controller 120 creates a pool of managed devices from the physical storage systems 150, 152, from which volumes 125 are created. The storage controller 120 may present a single point of control for system management and service through one of its nodes acting as a configuration node.
[0047] Storage controller 120 presents volumes 125 to hosts 101-103, which communicate with volumes 125 using SCSI. Volumes 125 used in the described method and system are conventional volumes in the form of SCSI target volumes that receive both management commands (e.g., INQUIRY) and I / O commands (e.g., READ and WRITE types).
[0048] The storage controller 120 includes multiple nodes 121, 122 for redundancy. For example, the nodes 121, 122 may be arranged into pairs known as I / O groups. Because a volume 125 is served by two nodes, there is no loss of availability if one node fails or goes offline. I / O operations between the hosts 101, 102, 103 and the nodes 121, 122 of the storage controller 120 use the SCSI standard. The nodes 121, 122 also communicate with each other through private SCSI commands and / or other internal message exchange protocols.
[0049] Each node 121, 122 has a target port 123, 124 that presents a volume 125 to hosts 101, 102, 103, respectively. A path to a volume 125 is the combination of an initiator port 105 on host 101 and a target port 123 on node 121 that provides access to the volume 125. The target ports 123, 124 on each node 121, 122 in a redundant pair provide access to a given volume 125, and the target ports on a node are grouped into target port groups, with individual node ports identified as associated ports within the group.
[0050] Hosts 101, 102, 103 send I / O operations 110 to volumes 125 of nodes 121, 122, and nodes 121, 122 send I / O (input / output) operations 140 to physical disks of physical storage systems 150, 152.
[0051] Asymmetric Logical Unit Access (ALUA), also known as Target Port Group Support (TPGS), is a set of SCSI concepts and commands that define path prioritization between an initiator port 105 on a host 101 and target ports 123 and 124 on nodes 121 and 122. ALUA is a formalized way to describe the status and access characteristics of a SCSI port. The standard is designed to define a protocol for how multipath I / O should be managed between a host and a storage device.
[0052] The ALUA functionality of SCSI is used to prioritize and coordinate host access to volumes through nodes by presenting the state of a target port group; for example, the state may be used to disable I / O for a node before the node goes offline or when volumes are inaccessible through that node. In the described method and system, this functionality is used to coordinate I / O operations for volumes being migrated between two storage controllers.
[0053] 2, a block diagram illustrates a storage system 200 including a host 201 and a storage network 210 connected to a physical storage network 260 that provides physical storage devices 261-264, according to one embodiment. The storage network 210 includes a first storage controller 220A and a second storage controller 220B. It should be understood that the first storage controller 220A and the second storage controller 220B may be provided on two separate physical storage networks 210 at different sites.
[0054] A volume migration system 230A, 230B is provided in each storage controller 220A, 220B and provides the described functionality for non-disruptive volume migration between the storage controllers 220A, 220B to migrate virtualized disks while maintaining operation of the host 201 for the virtualized disks. A first storage controller 220A may control a source volume 241, and a second storage controller 220B may control a destination volume 251. It will be understood that each storage controller 220A, 220B may include components and functionality to act as both a source and a target for volume migration.
[0055] Volume migration coordination is performed through volume migration systems 230A, 230B running in each of the two storage controllers 220A, 220B and is coordinated via messages sent between the two storage controllers 220A, 220B.
[0056] The volume migration system 230A, 230B in each storage controller 220A, 220B may include a controller port status component 231A, 231B for controlling the port status of the first storage controller 220A and the second storage controller 220B. The volume migration system 230A, 230B may also include a host mapping component 232A, 232B for making the volume accessible to the host 201 using the volume's target port identifier and port status.
[0057] Host 201 may include a multipath device driver component 202 that groups available paths with target ports of storage controllers 220A, 220B into virtual disk devices and presents them to the operating system of host 201. Multipath device driver component 202 performs port handling and selects active I / O paths.
[0058] Host mapping is the process of controlling which hosts or host clusters can access a particular volume. Mapping a volume to a host allows the host to access the volume using a WWPN or an iSCSI name, such as an iSCSI qualified name (IQN) or extended-unique identifier (EUI), configured in the host object. Each mapping associates a volume with a host and provides a way for all WWPNs and iSCSI names within the host or host cluster to access the volume. A volume may be mapped to multiple hosts or host clusters.
[0059] Once a mapping is created, there are multiple paths across the fabric from the host to the node presenting the volume. Multipathing software manages the many paths available to the volume and presents a single storage device to the operating system.
[0060] A path to a volume is any combination of initiator and target ports that provides access to the volume. Due to the added complexity when a volume is presented to a host using multiple paths, Path Discovery uses ALUA states as a formal way to describe SCSI port status and access characteristics.
[0061] In traditional implementations, in response to host management commands, each storage controller returns only target port group descriptors for its own ports. For example, a two-node cluster will report two target port group descriptors, one for each of the two nodes in the cluster, with all ports belonging to a single node grouped into the same target port group.
[0062] In some embodiments, the described methods and systems may provide additional communication between the two storage controllers to report the target port groups of the nodes accessing the migration volume on the other storage controller, allowing the host to discover the destination volume 251, recognize it as the same volume as the source volume 241, and coordinate I / O operations to the volume using the discovered paths and their associated access states.
[0063] In other embodiments, each storage controller may report only the paths to the volume through its own ports. Some host multipath drivers can combine these individual responses into a complete description of all paths to the volume on each storage controller, allowing this nondisruptive migration to work for those hosts.
[0064] In the described method and system, a host 201 discovers paths by sending management commands from its own initiator ports to volumes 241, 251 through target ports on two different storage controllers 220A, 220B.
[0065] Responses to management commands (such as INQUIRY and REPORT TARGET PORT GROUPS commands) are presented from the storage network 210 by the first storage controller 220A and the second storage controller 220B such that the host's multipath device driver component 202 groups the source volume 241 of the first storage controller 220A and the source volume 251 of the second storage controller 220B together as a single volume.
[0066] The described method and system allows host 201 to discover a new path to destination volume 251 through a target port on a node belonging to second storage controller 220A, while presenting that volume 251 with the same identification as source volume 241 and using the ALUA state of the respective target port group to prompt host 201 to send I / O to the correct storage controller at each stage of the migration.
[0067] The described solution is implemented in a storage system that manages data replication from source to target using, for example, a Metro Mirror relationship, and then presents destination volume 251 to host 201 as if it were a new path to access the exact same volume as source volume 241. No additional applications are required on host 201 other than traditional multipath software.
[0068] Referring to FIG. 3A, a flow chart 310 illustrates a first stage of an exemplary embodiment of the described method.
[0069] The method may also create a migration replication relationship (311) to manage the relationship and migration between the source and destination volumes on two different storage controllers so that the volumes are presented to the host as a single volume representing a virtualized disk.
[0070] A user may use a command line interface (CLI) or a graphical user interface (GUI) on a first storage system to create any suitable type of replication relationship between a volume on the first storage system and a volume on the second storage system, which initiates copying of data so that the two volumes are synchronized. This may include setting up a connection between the first storage system and the second storage system and identifying the volumes.
[0071] In the described method, the relationship is further configured as a transitional replication relationship to perform the described additional behavior. The configuration as a transitional replication relationship includes further actions performed between the first storage controller and the second storage controller to configure the transitional replication relationship. Configuring the transitional replication relationship includes sending metadata providing configuration information from the first storage controller having the identified source volume to the second storage controller to configure the destination volume.
[0072] The configuration includes providing the source volume and the destination volume with the same unique universal identifier (UUID) so that the host can recognize the source volume and the destination volume as a single device (312). The destination volume inherits the UUID from the source volume.
[0073] The configured metadata instructs the destination volume to present a different target port group descriptor and associated port identifiers compared to the source volume so that the host can accurately discover all paths to the volume through the two storage controllers (313).
[0074] In one embodiment, when a migration relationship is created, a system differentiator parameter associated with the destination volume is set to the inverse of the system differentiator parameter associated with the source volume. This information is sent from the first storage controller to the second storage controller to set the value at the time the migration relationship is created. This system differentiator value is used when responding to host management commands (such as the SCSI Inquiry command and the SCSI Report Target Port Groups command) so that the two volumes return different target port group descriptors and different relative target port identifiers. This allows the host to uniquely identify paths to volumes through target ports on each storage controller.
[0075] The first storage controller and the second storage controller are configured to present target port group information to the host regarding the source volume and the destination volume in response to a host command (314), which allows the host to group paths together as being associated with a single virtualized device. This may be configured in several ways.
[0076] In one embodiment, each storage controller may present information about only its own target port groups (by coordinating between the two controllers to avoid conflicts between target port group descriptors and associated port IDs, as described), and such presentation is acceptable for some host types that have corresponding host multipath drivers.
[0077] In another embodiment, each storage controller may report information about the target port groups on both storage controllers, which requires additional communication between the storage controllers to pass information about the ports on both storage controllers. In this case, the two storage controllers each include port group information about the ports on the other storage system in their response to a Report Target Port Groups (RTPG) command from the host. For example, both systems may report four target port groups, two of which are groups of ports corresponding to two nodes on the storage controller that received the RTPG, and two of which are groups of ports corresponding to two nodes on the other storage controller.
[0078] In further embodiments, one storage controller may present information about the target port groups on both storage controllers, or one storage controller may simply present those target port groups.
[0079] Configuring the migration replication relationship also directs adjusting the port status of the volumes presented by the first storage controller and the second storage controller so that paths to both the first storage controller and the second storage controller are not both active at the same time (315). The first storage controller and the second storage controller are configured to provide an asymmetric access state in the target port group descriptor according to the status of the migration to allow the host to discover the destination volume while only allowing I / O to the source volume. Once the migration is complete, the asymmetric access state in the target port group descriptor is non-disruptively changed to allow I / O to the destination volume.
[0080] Configuring the migration replication relationship also provides metadata indicating that the volume is part of the migration replication relationship (316) so that the system can recover properly if an error occurs.
[0081] The response from either storage controller to an RTPG command from the host returns the following information: Multiple target port group descriptors, each with an asymmetric access state that indicates how the use of that target port group should be prioritized. The Target Port Group field identifies the group in question. · Multiple target port descriptors describing ports within that target port group, where each port is identified by an associated target port identifier.
[0082] Once configured, the transition relationship ensures that the target port groups and associated port IDs on one storage controller are different from those on the other storage controller, and that one of the two volumes reports all of its target port groups as being in an asymmetric access state of "standby."
[0083] 3B, a flow diagram 320 illustrates further details of an exemplary embodiment of the described method. Once a migration replication relationship is created 311 and configured as described in connection with FIG. 3A, migration begins.
[0084] A migration phase 330 is provided in which data migration occurs and data is copied from a source volume on a first storage controller to a destination volume on a second storage controller.
[0085] The method includes enabling the host to discover the destination volume (331). A user may use a CLI or GUI to create a mapping to the destination volume on the second storage system. This mapping creation may be a user action or may be automated, allowing paths to the destination volume to be discovered by the host. The user may perform device discovery on the host to discover new paths to the volume. Because the destination volume is indicated by the same UUID but has different associated port IDs and target port group descriptors, multipath software on the host groups these new paths to the same volume with existing paths to the source volume on the first storage system as a single device. This discovery may occur during migration phase 330.
[0086] During the transition phase 330, the storage controller ports present paths to the volume to the host using an Asymmetric Logical Unit Access (ALUA) state. The standby state may be an ALUA standby state, and the available state may be an ALUA optimized active state or a non-optimized active state.
[0087] During the migration phase 330, the method prevents I / O operations from the host to the destination volume by reporting the port on the second storage controller as being in a standby state and failing the I / O due to the logical unit being inaccessible and the target port being in a standby state (332). During the migration phase 330, the method enables I / O operations from the host to the source volume by reporting the port on the first storage controller as being available (333).
[0088] The method may confirm when the migration is complete by automatically detecting this or by receiving confirmation of completion from a user 322. The method may also confirm 323 by detecting that the host has detected the port on the second storage controller or by receiving confirmation that the host has detected the port on the second storage controller before switching the port state.
[0089] The replication relationship may switch automatically upon detecting that the copy is complete and that the host is logged in to the second storage controller. Alternatively, the replication relationship may switch in response to a user-generated prompt.
[0090] Once the data migration is complete, a port state switch phase 340 may occur by switching to the second storage controller's port reporting availability to enable I / O operations to the destination volume (341). The method may issue an asymmetric access state change unit attention to the host to switch the host's I / O operations from the source volume to the destination volume (342). The method may prevent I / O operations to the source volume by reporting the first storage controller's port as standby or by removing access to the volume through the first storage controller's port (343).
[0091] Removing access to a volume through a port may be either deleting the volume or removing the mapping between the volume and the host on the first controller. This access removal does not occur immediately because the host is intended to recognize Asymmetric Access State Change Unit Attentions on the path to the first storage controller (immediately after the first storage controller is changed to Standby). This access removal may occur as soon as these Unit Attentions are recognized by the host.
[0092] In this manner, once the migration is complete, the method non-disruptively switches host I / O from the first storage controller to the second storage controller by changing the ALUA state and issuing an Asymmetric Access State Change Unit Attention to seamlessly switch host I / O from the source volume to the destination volume.
[0093] The host may be automatically unmapped from the source volume or the source volume may be automatically removed upon detecting that the migration is successful. Preventing I / O operations to the first storage controller may include automatically removing the source volume upon detecting that the migration is successful or receiving confirmation that the migration is successful. The method may automatically unmap the host from the source volume upon detecting completion of the data migration or receiving confirmation that the data migration is complete.
[0094] The method provides a replication relationship that copies data from a first volume on a first storage controller to a second volume on a second storage controller while presenting both volumes to a host as if they were the same volume. The described method couples a volume's replication state, which determines which copy is writable by the host, with its availability state, which determines which copy the host will attempt to write to. This allows the method to reverse the direction of the replication relationship while maintaining the consistency of the volume from the host's perspective. If the volume is in a consistency group, reversing the replication relationship may simultaneously change the state of all volumes in the consistency group.
[0095] While the copy is occurring, the ALUA states of the port groups on the two controllers prompt the host to send I / O only through the ports on the first storage controller and reject I / O sent through the ports on the second storage controller. Once the copy is complete and the direction of the replication relationship is switched, the ALUA states of the port groups switch, prompting the host to send I / O only through the ports on the second storage controller.
[0096] The method prevents I / O to the destination volume on another system until synchronization is complete. The use of the Standby ALUA state allows hosts to discover paths to this volume during migration, but indicates that the paths should not be used for I / O. Any I / O sent to the destination volume will fail until the direction of the replication migration relationship is switched.
[0097] By exchanging the ALUA state of the two systems and using Asymmetric Access State Change Unit Attention, it is possible to redirect host I / O in a single step without disrupting applications running on the host. At the time of exchanging the ALUA state, the method does not require any additional host binding actions.
[0098] 4, a flowchart 400 illustrates a more detailed exemplary embodiment of the described method performed on the first storage controller 220A and the second storage controller 220B, according to one embodiment. Some of the steps of the method may be performed simultaneously or in a different order than that illustrated in FIG.
[0099] A first storage controller 220A has a mapping to a host that enables I / O to a source volume 401. An input is received at either the first storage controller 220A or the second storage controller 220B, or both, to create a migration replication relationship between a first volume on the first storage controller and a second volume on the second storage controller 402. It may be common to run a command line interface only on the first storage controller 220A and pass in a message the identification of the destination volume on the second storage controller.
[0100] The migration replication relationship binds the two storage controllers 220A, 220B together during data migration. The first storage controller 220A may send a message to the second storage controller 220B to establish a migration replication relationship specifying a source volume (403), and the second storage controller 220B may receive the message (423) and specify a destination volume.
[0101] Establishing a migration replication relationship between storage controllers 220A, 220B via messages (403, 423) may include a compatibility check to ensure that both the storage controllers and the volumes are compatible with the implementation of the migration relationship. For example, this compatibility check may ensure that the volumes are the same size and that there are no unsupported host mappings. The compatibility check may also ensure that storage controller management commands are compatible with the implementation. If the compatibility check fails for either storage controller 220A, 220B, the migration relationship is prevented.
[0102] Establishing a migration replication relationship may send copied metadata from the source volume to the destination volume. A portion of the metadata associated with the destination volume may be replaced with a copy of the metadata associated with the source volume. For example, the destination volume's universally unique identifier (UUID) may be replaced with the source volume's UUID.
[0103] Establishing a migration replication relationship may also send additional metadata associated with the destination volume to the destination volume, which may include the configuration data described in FIG. 3A, including a system differentiator for the target port group descriptor and a flag to indicate the destination to allow recovery if the process is interrupted.
[0104] The second storage controller 220B, based on the metadata provided during configuration, presents a different port group ID to the volume than the first storage controller 220A to avoid port group ID conflicts (424). Optionally, each of the two storage controllers 220A, 220B may include port group information for the ports on the other storage controller in its response to a Report Target Port Groups (RTPG) command from the host.
[0105] The method then copies 405, 425 data from the source volume (which may also be called the master) to the destination volume (which may also be called the auxiliary) using existing replication relationship technology.
[0106] A new user mapping of the destination volume to the host using existing host-to-volume mapping technology allows discovery of the destination volume by the host to be accelerated (426). The source volume already has a host mapping used for I / O on the first storage controller 220A. Because the user is now migrating this volume to the second storage controller 220B, a new host mapping for the destination volume on the second storage controller 220B is set up once the destination volume is created and the migration replication relationship is established. Discovery may be performed as a manual or automatic step accelerated on the host once the user creates the host-to-volume mapping on the second storage controller 220B.
[0107] During data migration, the first storage controller 220A presents port states to allow I / O to the source volume (407). The first storage controller 220A may present paths to the source using the ALUA states Active / Optimized (AO) or Active / Non-Optimized (ANO).
[0108] During data migration, the second storage controller 220B presents a port state to prevent I / O to the destination volume (427). When I / O is received by the destination volume, the second storage controller responds with a status code indicating that the volume is standby. For example, the second storage controller 220B may present a path to the destination volume with an ALUA state of standby (SB). Additionally, any received commands will fail. Because the logical unit is inaccessible, the second storage controller 220B will fail any received I / O.
[0109] Therefore, use of the first storage controller 220A is encouraged by setting the asymmetric access state of the target port group descriptor in response to the Report Target Port Groups command. The port groups on the second storage controller 220B are in a standby state, while the port groups on the first storage controller 220A remain in one of two active states (active / optimized for the volume's preferred node, active / non-optimized for the non-preferred node). An ALUA-compliant host sends RTPG commands to discover these states and route I / O through ports in the active / optimized port group. However, the host may still attempt to send I / O to the second storage controller 220B, and therefore I / O to the second storage controller 220B is prohibited by failing any I / O received at the second storage controller 220B with a check status, e.g., "Check Condition," a sense key of "Not Ready," and an additional sense code of "Logical Unit Not Accessible, Target Port In Standby State."
[0110] Once the migration is complete with the destination volume being a synchronized copy of the source volume, the user confirms or the method detects that the migration is complete and the standby path is detected by the host (410, 430). The method may temporarily suspend I / O by the storage controllers 220A, 220B on both systems to ensure volume consistency (411, 431).
[0111] The direction of the migration replication relationship is switched. The first storage controller 220A changes its port status to prevent I / O to the source volume (412). When I / O is received by the source volume, the first storage controller 220A responds with a status code indicating that the volume is on standby. For example, the first storage controller 220A may present a path to the source volume using an ALUA state of standby (SB). At the same time, the second storage controller 220B changes its port status to allow I / O to the destination volume (432). For example, the second storage controller 220B may present a path to the destination volume using an ALUA state of active / optimized (AO) or active / non-optimized (ANO).
[0112] Both storage controllers 220A, 220B issue unit attentions indicating asymmetric access state changes (413, 433) to prompt the host to discover the new ALUA state for both volumes.
[0113] The purpose of reporting standby paths to the destination volume is to allow the host to discover these paths before the replication relationship direction is switched so that when the switchover occurs, the host immediately begins using these paths, making the migration non-disruptive as host I / O is not interrupted.
[0114] If this is successful (which may be detected by I / O starting on the second storage controller 220B), the host does not necessarily need to switch back to the first storage controller 220A, so the path to the source volume may be automatically removed (414) once I / O starts on the second storage controller 220B.
[0115] The source volume and migration replication relationship may be deleted (415) at the first storage controller 220A, and the migration replication relationship may be deleted (434) at the second storage controller 220B.
[0116] 5, a schematic diagram 500 illustrates the described method. During a migration phase 501 in which data is migrated from a source volume 241 in a first storage controller 240 to a destination volume 251 in a second storage controller 250, the port to the source volume 241 is in an available state 510, the port to the destination volume 251 is in a standby state 520, and the destination volume 251 is discoverable by the host.
[0117] Once the migration is complete (502), the ports to the destination volume 251 are switched to the available state 540, and the ports to the source volume 241 are switched to the standby state 550. The standby paths can remain on the first storage controller at least long enough for the host to recognize the asymmetric access state change unit attention on those paths, after which the user may remove the volume mapping or delete the volume on the original system.
[0118] FIG. 6 shows a block diagram of a server 600 in which storage controller 220 may be implemented, according to one embodiment.
[0119] The server 600 may include at least one processor 601, circuitry for performing the functions of the described components, which may be a hardware module or a software unit running on the at least one processor. Multiple processors may be provided to execute parallel processing threads, such that some or all of the functions of the components can be processed in parallel. The memory 602 may be configured to provide the at least one processor 601 with computer instructions 603 for implementing the functions of the components.
[0120] The storage controller 220 is provided with a volume migration system 230 for coordinating and configuring volume migration between the storage controller 220 and another storage controller, which may be provided in another server. The storage controller 220 may include functionality to act as a storage controller having a source volume and a storage controller having a destination volume. The volume migration system 230 is formed by components of the first storage controller and the second storage controller, and messages are exchanged between the components to coordinate volume migration and volume access during data migration. The storage controller 220 may include a user interface 221 for receiving user commands for the volume migration system 230.
[0121] Volume migration system 230 may include a controller port status component 231 for presenting target port status to a host and a host mapping / unmapping component 232 for mapping ports to a host, as described in connection with Figure 2. Host mapping / unmapping component 232 may automatically unmap the host from the source volume upon detecting completion of the data migration or receiving confirmation of completion of the data migration.
[0122] The volume migration system 230 may include a migration relationship configuration component 640 for creating a migration replication relationship for data migration between a source volume and a destination volume. The migration relationship configuration component 640 may include a metadata configuration component 641 for configuring metadata to present the source volume and the destination volume as the same volume to a host while defining different discoverable paths to the source volume and the destination volume using differentiated target port descriptors (e.g., target port group descriptors and associated port identifiers). The metadata configuration component 641 may replace a portion of the metadata associated with the destination volume with a copy of the metadata associated with the source volume to share the same UUID for the volumes. The migration relationship configuration component 640 may also include a recovery indicator component 642 for associating metadata with the destination volume to indicate that the destination volume is a migration destination that enables recovery if the data migration is interrupted.
[0123] The volume migration system 230 may include a path discovery component 650 for facilitating discovery of the destination volume using discoverable paths, where facilitating discovery of the destination volume may include the storage controller 220 presenting target port group information for both the source volume and the destination volume to the host. The path discovery component 650 may present the source volume and the destination volume as the same volume to the host while defining different discoverable paths to the source volume and the destination volume using differentiated target port descriptors.
[0124] The volume migration system 230 may include a data migration component 680 for copying data from a source volume to a destination volume, which may use known copy services.
[0125] The volume migration system 230 may include a coordination component 670 for coordinating I / O operation access during data migration using the asymmetric access state of the target port presented to the host by the storage controller 220.
[0126] The reconciliation component 670 may include a target port access component 671 for allowing I / O operations to the source volume by presenting the target port of the storage controller as available during data migration and for preventing I / O operations to the destination volume by presenting the target port of the storage controller as standby while allowing the host to discover a path to the destination volume. The reconciliation component 670 may include an I / O failure component 672 for failing I / O operations received at the destination volume.
[0127] The coordination component 670 may include an access switching component 673 for switching the target port state to enable I / O operations to the destination volume and prevent I / O operations to the source volume upon completion of the data migration. The access switching component 673 may include switching a port on a storage controller with the source volume to a standby state or removing a path to the source volume upon detecting or receiving confirmation that the migration is successful. The access switching component 673 may cooperate with a data migration completion component 681 of the data migration component 680 to facilitate automatically switching the target port state upon detecting or receiving confirmation that the data migration is complete.
[0128] The coordination component 670 may include an attention issuing component 676 for issuing an asymmetric access state change unit attention to the host to indicate a change in state that will result in a switch of I / O operations from the source volume to the destination volume. The coordination component 670 may include a host detection component 677 for detecting that the host has detected the target port on the second storage controller or receiving confirmation that the host has detected the target port on the second storage controller before switching the port state.
[0129] The coordination component 670 may include a halt component 675 to temporarily halt I / O operations to the volume upon completion of data migration to ensure consistency between the source and destination volumes. The coordination component 670 may include a consistency group component 674 to ensure that a target port state switch simultaneously switches the state of all volumes in a consistency group.
[0130] 7 illustrates a block diagram of components of a computing system that may be utilized in server 600, in accordance with one embodiment of the present invention. It should be appreciated that FIG. 7 is intended as an illustration of one implementation only and is not intended to suggest any limitations with regard to the environments in which different embodiments may be implemented. Many modifications to the depicted environment may be made.
[0131] The computing system may include one or more processors 702, one or more computer-readable RAMs 704, one or more computer-readable ROMs 706, one or more computer-readable storage media 708, device drivers 712, read / write drives or interfaces 714, and network adapters or interfaces 716, all interconnected through a communications fabric 718. The communications fabric 718 may be implemented using any architecture designed to pass data and / or control information between processors (such as microprocessors, communications and network processors), system memory, peripheral devices, and any other hardware components in the system.
[0132] One or more operating systems 710 and application programs 711, such as volume migration system 230, are stored in one or more computer-readable storage media 708 for execution by one or more of processors 702 via one or more of the respective RAMs 704 (which typically include cache memory). In the illustrated embodiment, each of computer-readable storage media 708 may be an internal hard drive magnetic disk storage device, a CD-ROM, a DVD, a memory stick, magnetic tape, a magnetic disk, an optical disk, a semiconductor storage device such as RAM, ROM, EPROM, flash memory, or any other computer-readable storage medium capable of storing computer programs and digital information according to embodiments of the present invention.
[0133] The computing system may also include a R / W drive or interface 714 for reading from and writing to one or more portable computer-readable storage media 726. Application programs 711 on the computing system may be stored on one or more of the portable computer-readable storage media 726 and read via the respective R / W drive or interface 714 and loaded into the respective computer-readable storage media 708.
[0134] The computing system may also include a network adapter or interface 716, such as a TCP / IP adapter card or a wireless communication adapter. Application programs 711 on the computing system may be downloaded to the computing device from an external computer or external storage device via a network (e.g., the Internet, a local area network, or other wide area network or wireless network) and the network adapter or interface 716. The programs may be loaded into the computer-readable storage medium 708 from the network adapter or interface 716. The network may include copper wire, optical fiber, wireless transmissions, routers, firewalls, switches, gateway computers, and edge servers.
[0135] The computing system may also include a display screen 720, a keyboard or keypad 722, and a computer mouse or touchpad 724. The device driver 712 interfaces to the display screen 720 for imaging and to the keyboard or keypad 722, computer mouse or touchpad 724, and / or display screen 720 for alphanumeric entry and pressure sensing of user selections. The device driver 712, R / W drive or interface 714, and network adapter or interface 716 may comprise hardware and software stored in the computer-readable storage medium 708 and / or ROM 706.
[0136] The programs described herein are identified based on the application for which they are implemented in a particular embodiment of the invention. However, it should be understood that the nomenclature of specific programs herein is used merely for convenience, and thus the invention should not be limited to use solely with the particular application identified and / or implied by such nomenclature.
[0137] Embodiments of the present invention may be delivered to end users through a cloud computing infrastructure. Cloud computing generally refers to the provision of scalable computational resources as a service over a network. More formally, cloud computing may be defined as a computing capability that provides an abstraction between computational resources and their underlying technical architecture (e.g., servers, storage, network), enabling convenient, on-demand network access to a shared pool of configurable computational resources, allowing these computational resources to be rapidly provisioned and released with minimal administrative effort or interaction with a service provider. Cloud computing thus enables users to access virtual computational resources (e.g., storage, data, applications, and even fully virtualized computing systems) in the "cloud" without being aware of the underlying physical systems (or the location of those systems) used to provide the computational resources.
[0138] Typically, cloud computing resources are provided to users on a pay-per-use basis, with users being charged only for the computing resources actually used (e.g., the amount of storage space consumed by the user or the number of virtualization systems instantiated by the user). Users can access any of the resources present in the cloud from anywhere, at any time, via the Internet. In the context of the present invention, users can access a canonicalization search engine or related data available in the cloud. For example, a canonicalization search engine can run on a computing system in the cloud and perform a canonicalized search. In such a case, the canonicalization search engine can normalize a corpus of information and store a canonicalized index in a storage location in the cloud. In this way, users can access this information from any computing system connected to a network (e.g., the Internet) connected to the cloud.
[0139] Although this disclosure includes detailed descriptions of cloud computing, it should be understood in advance that implementation of the teachings described herein is not limited to cloud computing environments. Rather, embodiments of the present invention may be implemented in conjunction with any other type of computing environment now known or later developed.
[0140] Cloud computing is a service delivery model that enables 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) and enables these computing resources to be rapidly provisioned and released with minimal administrative effort or service provider interaction. This cloud model may include at least five characteristics, at least three service models, and at least four deployment models.
[0141] The features are as follows:
[0142] On-Demand Self-Service: Cloud consumers can unilaterally provision computing capabilities, such as server time and network storage, automatically as needed, without the need for human interaction with the service provider.
[0143] Broad network access: Functionality is 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).
[0144] Resource Pooling: Providers' computing resources are pooled to serve multiple consumers using a multi-tenant model, with different physical and virtual resources dynamically allocated and reallocated as required. Consumers generally have no control or knowledge of the exact location of the provided resources, although there is location independence in that it may be possible to identify the location at a higher level of abstraction (e.g., country, state, or data center).
[0145] Rapid Flexibility: Capabilities can be quickly and flexibly provisioned, sometimes automatically, to rapidly scale out and quickly release to rapidly scale in. To the consumer, the capabilities available for provisioning often appear unlimited and can be purchased at any time and in any quantity.
[0146] Service Metering: Cloud systems automatically control and optimize resource usage by leveraging metering capabilities at a level 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 they utilize.
[0147] The service model is as follows:
[0148] Software as a Service (SaaS): The ability to offer consumers the use of 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). With the possible exception of limited user-specific application configuration settings, the consumer does not manage or control the underlying cloud infrastructure, including the network, servers, operating systems, storage, or individual application features.
[0149] Platform as a Service (PaaS): The capability offered to consumers to deploy applications they create or acquire, written using programming languages and tools supported by the provider, onto a cloud infrastructure. The consumer does not manage or control the underlying cloud infrastructure, such as the network, servers, operating systems, or storage, but does control the deployed applications and, in some cases, the application hosting environment configuration.
[0150] Infrastructure as a Service (IaaS): The capability offered to consumers to provision processing, storage, network, and other basic computational resources on which they can deploy and run any software, which may include operating systems and applications. Consumers do not manage or control the underlying cloud infrastructure, but they do control the operating systems, storage, deployed applications, and sometimes have limited control over selected network components (e.g., host firewalls).
[0151] The deployment model is as follows:
[0152] Private Cloud: Cloud infrastructure is operated exclusively for an organization. This cloud infrastructure may be managed by the organization or a third party and may reside on-premises or off-premises.
[0153] Community Cloud: Cloud infrastructure is shared by multiple organizations to support a specific community of shared interests (e.g., mission, security requirements, policies, and compliance considerations). This cloud infrastructure may be managed by the organization or a third party and may reside on-premises or off-premises.
[0154] Public Cloud: Cloud infrastructure is available to the general public or large industry groups and is owned by organizations that sell cloud services.
[0155] Hybrid Cloud: A cloud infrastructure is a composition of two or more clouds (private, community, or public) that remain unique entities but are tied together by standardized or proprietary technologies that allow for data and application portability (e.g., cloud bursting for load balancing between clouds).
[0156] Cloud computing environments are service-oriented with an emphasis on statelessness, low coupling, modularity, and semantic interoperability. At the heart of cloud computing is an infrastructure that includes a network of interconnected nodes.
[0157] Referring now to FIG. 8, an exemplary cloud computing environment 50 is shown, according to one embodiment. As shown, the cloud computing environment 50 includes one or more cloud computing nodes 10 with which local computing devices used by cloud consumers, such as, for example, a personal digital assistant (PDA) or mobile phone 54A, a desktop computer 54B, a laptop computer 54C, or an automobile computer system 54N, or any combination thereof, can communicate. The nodes 10 may communicate with each other. They may be physically or virtually grouped in one or more networks, such as a private cloud, a community cloud, a public cloud, or a hybrid cloud, or any combination thereof, as described herein above (not shown). This enables the cloud computing environment 50 to provide infrastructure, platform, and / or software as a service without the cloud consumer having to maintain resources on their local computing device. It should be understood that the types of computing devices 54A-54N shown in FIG. 8 are intended to be exemplary only, and that the computing node 10 and cloud computing environment 50 can communicate with any type of computerized device over any type of network and / or network-addressable connection (e.g., using a web browser).
[0158] Referring now to Figure 9, a set of functional abstraction layers provided by cloud computing environment 50 (Figure 8) is shown, according to one embodiment. It should be understood in advance that the components, layers, and functions shown in Figure 9 are intended to be illustrative only, and embodiments of the present invention are not limited thereto. As shown, the following layers and corresponding functions are provided:
[0159] 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 networking components 66. In some embodiments, software components include network application server software 67 and database software 68.
[0160] The virtualization layer 70 provides an abstraction layer from which the following examples of virtual entities may be provided: virtual servers 71, virtual storage 72, virtual networks including virtual private networks 73, virtual applications and operating systems 74, and virtual clients 75.
[0161] In one example, the management layer 80 may provide the following functions: Resource provisioning 81 provides dynamic procurement of computational and other resources utilized to execute 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 consumption of these resources. In one example, these resources may include application software licenses. Security provides identity verification for cloud consumers and tasks, as well as protection for 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 computational resources such that requested service levels are met. Service level agreement (SLA) planning and fulfillment 85 provides pre-allocation and procurement of cloud computational resources anticipated for future requests according to SLAs.
[0162] The 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 instruction delivery 93, data analytics processing 94, transaction processing 95, and storage volume migration processing 96.
[0163] The computer program product of the present invention includes one or more computer-readable hardware storage devices having computer-readable program code stored thereon, said program code being executable by one or more processors to perform the methods of the present invention.
[0164] The computer system of the present invention includes one or more processors, one or more memories, and one or more computer-readable hardware storage devices, the one or more hardware storage devices including program code executable by the one or more processors via the one or more memories to implement the methods of the present invention.
[0165] The present invention may be a system, method, and / or computer program product integrated at any possible level of technical detail, and may include a computer-readable storage medium (or multiple computer-readable storage media) having computer-readable program instructions for causing a processor to implement aspects of the present invention.
[0166] A computer-readable storage medium may be a tangible device capable of retaining and storing instructions for use by an instruction-execution device. A computer-readable storage medium may 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 above. A non-exhaustive list of more specific examples of computer-readable storage media includes the following: portable computer diskettes, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), static random access memory (SRAM), portable compact disk read-only memory (CD-ROM), digital versatile disk (DVD), memory sticks, floppy disks, punch cards, or mechanically encoded devices such as raised structures in grooves with instructions recorded thereon, and any suitable combination of the above. As used herein, computer-readable storage media should not be construed as being ephemeral signals per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through a waveguide or other transmission medium (e.g., light pulses through fiber optic cable), or electrical signals transmitted over electrical wires.
[0167] The computer-readable program instructions described herein may be downloaded from a computer-readable storage medium to each computing / processing device or to an external computer or storage device via 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 include copper transmission cables, optical fiber transmissions, wireless transmissions, routers, firewalls, switches, gateway computers, and / or edge servers. A network adapter card or network interface in each computing / processing device receives the computer-readable program instructions from the network and forwards the computer-readable program instructions to a computer-readable storage medium within the respective computing / processing device for storage.
[0168] Computer-readable program instructions for carrying out the operations of the present invention may be either assembler instructions, instruction set architecture (ISA) instructions, machine instructions, machine-dependent instructions, microcode, firmware instructions, state setting data, configuration data for integrated circuits, or source or object code written in any combination of one or more programming languages, including object-oriented programming languages such as Smalltalk®, C++, and procedural programming languages such as the "C" programming language or similar programming languages. The computer-readable program instructions may execute entirely on the user's computer as a standalone software package, partially on the user's computer, 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 via any type of network, including a local area network (LAN) or a wide area network (WAN), or may be connected to an external computer (e.g., via the Internet using an Internet service provider). In some embodiments, to carry out aspects of the present invention, electronic circuitry including, for example, a programmable logic circuit, a field programmable gate array (FPGA), or a programmable logic array (PLA), may execute computer-readable program instructions by utilizing state information of the computer-readable program instructions to personalize the electronic circuitry.
[0169] 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.
[0170] These computer-readable program instructions may be provided to a processor of a computer or other programmable data processing apparatus to produce a machine, such that the instructions, when executed by the processor of the computer or other programmable data processing apparatus, produce means for performing the functions / acts 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 medium, such that the computer-readable storage medium on which the instructions are stored comprises an article of manufacture containing instructions implementing aspects of the functions / acts specified in one or more blocks of the flowcharts and / or block diagrams, and can direct a computer, programmable data processing apparatus, or other device, or combination thereof, to function in a particular manner.
[0171] The computer-readable program instructions may also be loaded into a computer, other programmable data processing apparatus, or other device to create a computer-implemented process that causes the computer, other programmable apparatus, or other device to perform a series of operational steps, such that the instructions, which execute on the computer, other programmable apparatus, or other device, perform the functions / acts specified in one or more blocks of the flowcharts and / or block diagrams.
[0172] 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 a flowchart or block diagram 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 occur out of the order noted in the figures. For example, two blocks shown in succession may in fact be accomplished as a single step, or may be executed concurrently, substantially concurrently, partially, or entirely in a time-overlapping manner, or in some cases, the blocks may be executed in the reverse order, depending on the functionality involved. It should also be noted that each block in the block diagrams and / or flowcharts, and combinations of blocks in the block diagrams and / or flowcharts, may be implemented by a dedicated hardware-based system that performs the specified functions or actions or a combination of dedicated hardware and computer instructions.
[0173] While the description of various embodiments of the present invention has been presented for illustrative purposes, this description is not intended to be exhaustive or limited to the disclosed embodiments. Many modifications and variations will be apparent to those skilled in the art without departing from the scope of the described embodiments. The terms used herein are selected to best explain the principles of the embodiments, practical applications, or technical improvements beyond those found in the market, or to enable those skilled in the art to understand the embodiments disclosed herein.
Claims
1. 1. A computer-implemented method for non-disruptive volume migration between storage controllers, comprising: creating a migration replication relationship for data migration between a source volume on a first storage controller and a destination volume on a second storage controller, wherein the volumes represent virtualized devices; presenting the source volume and the destination volume to a host as the same volume while defining different discoverable paths to the source volume and the destination volume using differentiated target port descriptors; During the data migration, a target port on the first storage controller is presented as available, thereby enabling I / O operations to the source volume, and a target port on the second storage controller is presented as standby, thereby inhibiting I / O operations to the destination volume; and switching the target port state so that input / output operations to the destination volume are enabled and input / output operations to the source volume are inhibited when the data migration is completed.
20. A computer-implemented method comprising:
2. 2. The computer-implemented method of claim 1, wherein creating the migration replication relationship includes copying a volume identifier from the source volume to the destination volume such that the destination volume and the source volume respond to a command to identify the destination volume and the source volume with the same volume identifier.
3. 2. The computer-implemented method of claim 1, wherein creating the migration replication relationship includes coordinating between the first storage controller and the second storage controller such that non-conflicting target port groups and associated port identifiers are identified by the source volume and the destination volume.
4. 2. The computer-implemented method of claim 1, wherein throttling I / O operations to the destination volume comprises failing I / O operations received at the destination volume.
5. detecting that the host has detected the target port on the second storage controller or receiving confirmation that the host has detected the target port on the second storage controller before switching port states; automatically switching the target port state upon detecting completion of the data migration or receiving confirmation of completion of the data migration; The computer-implemented method of claim 1 further comprising:
6. Issuing an asymmetric access state change unit attention to the host to alert the host of a change to the state that will result in a switch of I / O operations from the source volume to the destination volume. The computer-implemented method of claim 1 further comprising:
7. automatically unmapping the host from the source volume upon detecting completion of the data migration or receiving confirmation of completion of the data migration. The computer-implemented method of claim 1 further comprising:
8. 2. The computer-implemented method of claim 1, wherein suppressing I / O operations to the source volume upon completion of the data migration comprises switching a port on the first storage controller to a standby state or removing a path to the source volume upon detecting or receiving confirmation that the data migration has been successful.
9. The computer-implemented method of claim 1 , wherein switching the target port state simultaneously switches the states of the source volume and the destination volume in a consistency group.
10. 1. A computer-implemented method for non-disruptive volume migration between storage controllers, comprising: creating a migration replication relationship for data migration between a source volume on a first storage controller and a destination volume on a second storage controller, wherein the volumes represent virtualized devices; configuring metadata of the destination volume to present the source volume and the destination volume as the same volume to a host while defining different discoverable paths to the source volume and the destination volume using differentiated target port descriptors; facilitating discovery of the destination volume using the discoverable path; using asymmetric access states of the target ports presented to the host by the first storage controller and the second storage controller to coordinate I / O operation access during the data migration; 20. A computer-implemented method comprising:
11. 11. The computer-implemented method of claim 10, wherein facilitating discovery of the destination volume using the discoverable path comprises one or both of the first storage controller and the second storage controller presenting target port group information about the source volume and the destination volume to a host.
12. 11. The computer-implemented method of claim 10, wherein defining different discoverable paths to the source volume and the destination volume using the differentiated target port descriptors comprises coordinating between the first storage controller and the second storage controller such that non-conflicting target port groups and associated port identifiers are identified by the source volume and the destination volume.
13. 11. The computer-implemented method of claim 10, wherein defining different discoverable paths to the source volume and the destination volume using differentiated target port descriptors comprises setting a system differentiator parameter associated with the destination volume as the inverse of a system differentiator parameter associated with the source volume.
14. Configuring the migration replication relationship includes associating metadata with the destination volume to indicate that the destination volume is a destination that allows recovery if the data migration is interrupted. The computer-implemented method of claim 10 further comprising:
15. 11. The computer-implemented method of claim 10, wherein configuring the metadata of the destination volume to present the source volume and the destination volume as the same volume to the host comprises replacing a portion of the metadata associated with the destination volume with a copy of the metadata associated with the source volume.
16. 1. A system for non-disruptive volume migration between storage controllers, comprising: one or more computer processors; one or more computer-readable storage media; and, executed by at least one of the one or more processors; and program instructions stored on the one or more of the computer-readable storage media, wherein the system comprises: a migration relationship configuration component for creating a migration replication relationship for data migration between a source volume on a first storage controller and a destination volume on a second storage controller, wherein the volume represents a virtualized device; a path discovery component for presenting the source volume and the destination volume to a host as the same volume while defining different discoverable paths to the source volume and the destination volume using differentiated target port descriptors; a target port access component for, during the data migration, allowing I / O operations to the source volume by presenting a target port of the first storage controller as available and inhibiting I / O operations to the destination volume by presenting a target port on the second storage controller as standby; and an access switching component for switching a target port state to enable I / O operations to the destination volume and inhibit I / O operations to the source volume upon completion of the data migration.
17. 17. The system of claim 16, wherein the target port access component includes an I / O failure component for failing an I / O operation received at the destination volume.
18. 17. The system of claim 16, wherein the access switching component includes a data migration completion component for facilitating automatically switching a target port state upon detecting completion of the data migration or receiving confirmation of completion of the data migration.
19. 17. The system of claim 16, further comprising an attention issuing component for issuing an asymmetric access state change unit attention to the host to alert the host of a change to the state that results in a switch of I / O operations from the source volume to the destination volume.
20. 17. The system of claim 16, wherein the access switching component for suppressing I / O operations to the source volume upon completion of the data migration comprises switching a port on the first storage controller to a standby state or removing a path to the source volume upon detecting or receiving confirmation that the volume migration has been successful.
21. 1. A system for non-disruptive volume migration between storage controllers, comprising: one or more computer processors; one or more computer-readable storage media; and program instructions stored on the one or more of the computer-readable storage media that are executed by at least one of the one or more processors, the system comprising: a migration relationship configuration component for creating a migration replication relationship for data migration between a source volume on a first storage controller and a destination volume on a second storage controller, wherein the volume represents a virtualized device; a metadata configuration component for configuring metadata of the destination volume to present the source volume and the destination volume as the same volume to a host while defining different discoverable paths to the source volume and the destination volume using differentiated target port descriptors; a path discovery component for facilitating discovery of a destination volume using the discoverable paths; a coordination component for coordinating I / O operation access during the data migration using asymmetric access states of the target ports presented to the host by the first storage controller and the second storage controller; 1. A system capable of performing the functions of components of a volume migration system, including:
22. 22. The system of claim 21, wherein the path discovery component for facilitating the discovery of the destination volume using the discoverable paths comprises one or both of the first storage controller and the second storage controller presenting target port group information regarding the source volume and the destination volume to a host.
23. 22. The system of claim 21, further comprising a recovery indicator component for associating metadata with the destination volume to indicate that the destination volume is a destination that allows recovery if the data migration is interrupted.
24. 22. The system of claim 21, wherein the migration system includes a component for each of the first storage controller and the second storage controller, and wherein messages are exchanged between the components to coordinate the volume access during the data migration.
25. A computer program for non-disruptive volume migration between storage controllers, the computer program comprising: creating a migration replication relationship for data migration between a source volume on a first storage controller and a destination volume on a second storage controller, wherein the volumes represent virtualized devices; presenting the source volume and the destination volume to a host as the same volume while defining different discoverable paths to the source volume and the destination volume using differentiated target port descriptors; During the data migration, a target port on the first storage controller is presented as available, thereby enabling I / O operations to the source volume, and a target port on the second storage controller is presented as standby, thereby inhibiting I / O operations to the destination volume; and switching the target port state so that input / output operations to the destination volume are enabled and input / output operations to the source volume are inhibited when the data migration is completed. A computer program that performs the following:
Citation Information
Patent Citations
Supporting non-disruptive movement of a logical volume of non-volatile data storage between storage appliances
US20200133584A1
Storage system and migration method
WO2015125221A1