IP Library Granted Patent US 11,126,358
Granted Patent B2
US 11,126,358 · App. 16/220,896 · Granted Sep 21, 2021

Data migration agnostic of pathing software or underlying protocol

Inventors: Kundan Kumar (Bangalore, IN); Kurumurthy Gokam (Bangalore, IN); Shubham Sharma (Bangalore, IN)
Assignee: EMC IP Holding Company LLC
G06F3/0635G06F3/061G06F3/067G06F3/0647G06F11/1662G06F13/4221H04L69/14
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,126,358
App. No.
16/220,896
Granted
Sep 21, 2021
Kind
B2
Abstract

An apparatus in one embodiment comprises a host device configured to communicate with a storage system. Responsive to an instruction to migrate data from a source volume to a destination volume, the host device replaces an input-output entry function of a source pathing device associated with the source volume with a migration input-output entry function that is configured, in response to receiving an input-output operation, to call an input-output entry function of a destination pathing device associated with the destination volume and to call the input-output entry function of the source pathing device. Responsive to an indication that a migration of data has completed, the host device replaces the migration input-output entry function with a post-migration input-output entry function. The post-migration input-output function is configured to call the input-output entry function of the destination pathing device in response to receiving an input-output operation.

Claims (49)

1. An apparatus comprising:

at least one host device comprising a processor coupled to memory;

the host device being configured to communicate over a network with at least one storage system comprising a source volume and a destination volume;

wherein the host device is further configured:

responsive to an instruction to migrate data from the source volume to the destination volume, to replace a kernel-based input-output entry function of a source pathing device associated with the source volume with a kernel-based migration input-output entry function, the migration input-output entry function being configured, in response to receiving an input-output operation directed to the input-output entry function of the source pathing device during the migration of the data from the source volume to the destination volume:

to call a kernel-based input-output entry function of a destination pathing device associated with the destination volume; and

to call the input-output entry function of the source pathing device; and

responsive to an indication that a migration of data from the source volume to the destination volume has completed, to replace the migration input-output entry function with a kernel-based post-migration input-output entry function, the post-migration input-output function being configured to call the input-output entry function of the destination pathing device in response to receiving an input-output operation directed to the input-output entry function of the source pathing device;

wherein the input-output entry function of the source pathing device, the input-output entry function of the destination pathing device, the migration input-output entry function, and the post-migration input-output entry function are each implemented at a kernel level of the at least one host device.

2. The apparatus of claim 1 wherein the migration input-output entry function is configured to call the input-output entry function of the source pathing device but not the input-output entry function of the destination pathing device in response to receiving an input-output operation that is a read operation.

3. The apparatus of claim 1 wherein the post-migration input-output entry function is configured to call the input-output entry function of the destination pathing device for both received input-output write operations and received input-output read operations.

4. The apparatus of claim 1 wherein the source pathing device is under control of a first multipath input-output driver and the destination pathing device is under control of a second multipath input-output driver that is different than the first multipath input-output driver.

5. The apparatus of claim 1 wherein the source pathing device is not under control of a multipath input-output driver and the destination pathing device is under control of a multipath input-output driver.

6. The apparatus of claim 1 wherein the source pathing device is under control of a multipath input-output driver and the destination pathing device is not under control of a multipath input-output driver.

7. The apparatus of claim 1 wherein the source pathing device and the destination pathing device are configured to communicate using different transport protocols.

8. The apparatus of claim 7 wherein one of the source pathing device and destination pathing device is configured to communicate using a small computer system interface (SCSI) transport protocol, and the other of the source pathing device and destination pathing device is configured to communicate using a non-volatile memory express (NVMe) transport protocol.

9. The apparatus of claim 1 wherein the host device is further configured:

responsive to the indication that the migration of data from the source volume to the destination volume has completed, to store a relationship between the source pathing device and the destination pathing device in a memory associated with the at least one host device; and

responsive to a reboot of the at least one host device, to form a link in association with the source pathing device based on the relationship, the link configured to re-route input-output operations targeted at the source pathing device to the destination pathing device.

10. The apparatus of claim 1 wherein responsive to the indication that the migration of data from the source volume to the destination volume has completed, the at least one host device is further configured:

to intercept communications, from an application targeting the source pathing device, that are not input-output read or write operations; and

to route the intercepted communications to the destination pathing device.

11. The apparatus of claim 10 wherein routing the intercepted communications comprises translating the intercepted communications.

12. The apparatus of claim 11 wherein the intercepted communications are communicated by the application using a first input-output control interface associated with the source pathing device that is different than a second input-output control interface associated with the destination pathing device, the translating comprising translating the intercepted communications from the first input-output control interface to the second input-output control interface.

13. The apparatus of claim 12 wherein the at least one host device is further configured to route other communications, that are responsive to the intercepted communications, from the destination pathing device to the application, the routing of the other communications comprising translating the other communications from the second input-output control interface to the first input-output control interface.

14. A method comprising:

responsive to an instruction to migrate data from a source volume of at least one storage system to a destination volume of the at least one storage system, replacing a kernel-based input-output entry function of a source pathing device associated with the source volume with a kernel-based migration input-output entry function, the migration input-output entry function being configured, in response to receiving an input-output operation directed to the input-output entry function of the source pathing device during the migration of the data from the source volume to the destination volume:

to call a kernel-based input-output entry function of a destination pathing device associated with the destination volume; and

to call the input-output entry function of the source pathing device; and

responsive to an indication that a migration of data from the source volume to the destination volume has completed, replacing the migration input-output entry function with a kernel-based post-migration input-output entry function, the post-migration input-output being function configured to call the input-output entry function of the destination pathing device in response to receiving an input-output operation directed to the input-output entry function of the source pathing device;

wherein the input-output entry function of the source pathing device, the input-output entry function of the destination pathing device, the migration input-output entry function, and the post-migration input-output entry function are each implemented at a kernel level of at least one host device;

wherein the method is implemented by the at least one host device, the at least one host device comprising a processor coupled to a memory.

15. The method of claim 14 wherein:

the migration input-output entry function is configured to call the input-output entry function of the source pathing device but not the input-output entry function of the destination pathing device in response to receiving an input-output operation that is a read operation; and

the post-migration input-output entry function is configured to call the input-output entry function of the destination pathing device for both received input-output write operations and received input-output read operations.

16. The method of claim 14 wherein the source pathing device is under control of a first multipath input-output driver and the destination pathing device is under control of a second multipath input-output driver that is different than the first multipath input-output driver.

17. The method of claim 14 wherein one of:

the source pathing device is not under control of a multipath input-output driver and the destination pathing device is under control of a multipath input-output driver; and

the source pathing device is under control of a multipath input-output driver and the destination pathing device is not under control of a multipath input-output driver.

18. A computer program product comprising a non-transitory processor-readable storage medium having stored therein program code of one or more software programs, wherein the program code, when executed by at least one host device comprising a processor coupled to a memory, causes the at least one host device:

responsive to an instruction to migrate data from the source volume to the destination volume, to replace a kernel-based input-output entry function of a source pathing device associated with the source volume with a kernel-based migration input-output entry function, the migration input-output entry function being configured, in response to receiving an input-output operation directed to the input-output entry function of the source pathing device during the migration of the data from the source volume to the destination volume:

to call a kernel-based input-output entry function of a destination pathing device associated with the destination volume; and

to call the input-output entry function of the source pathing device; and

responsive to an indication that a migration of data from the source volume to the destination volume has completed, to replace the migration input-output entry function with a post-migration input-output entry function, the post-migration input-output function being configured to call the input-output entry function of the destination pathing device in response to receiving an input-output operation directed to the input-output entry function of the source pathing device;

wherein the input-output entry function of the source pathing device, the input-output entry function of the destination pathing device, the migration input-output entry function, and the post-migration input-output entry function are each implemented at a kernel level of the at least one host device.

19. The computer program product of claim 18 wherein:

the migration input-output entry function is configured to call the input-output entry function of the source pathing device but not the input-output entry function of the destination pathing device in response to receiving an input-output operation that is a read operation; and

the post-migration input-output entry function is configured to call the input-output entry function of the destination pathing device for both received input-output write operations and received input-output read operations.

20. The computer program product of claim 18 wherein the source pathing device is under control of a first multipath input-output driver and the destination pathing device is under control of a second multipath input-output driver that is different than the first multipath input-output driver.

Assignments (4)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
SECURITY AGREEMENT Recorded Mar 21, 2019
From: CREDANT TECHNOLOGIES, INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 049452/0223 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 14, 2018
From: KUMAR, KUNDAN; GOKAM, KURUMURTHY; SHARMA, SHUBHAM
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 047783/0035 →
Continuity (1)
Related Publication 20200192588A1 · Jun 18, 2020
Cited By (7)
US 12,204,762 US 12,216,526 US 12,222,863 US 12,299,300 US 12,443,623 US 12,493,409 US 12,568,040