IP Library Granted Patent US 11,397,589
Granted Patent B2
US 11,397,589 · App. 16/811,751 · Granted Jul 26, 2022

Snapshot transmission from storage array to cloud using multi-path input-output

Inventors: Rabi Shankar Shaw (Bangalore, IN); Anurag Bhatnagar (Bangalore, IN); Sarat Kumar Behera (Bangalore, IN)
Assignee: EMC IP Holding Company LLC
G06F9/4411G06F9/3009G06F9/3889G06F9/542G06F9/546G06F16/128G06F16/1824
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,397,589
App. No.
16/811,751
Granted
Jul 26, 2022
Kind
B2
Abstract

A processing device is configured to communicate over a network with a storage system comprising a plurality of storage devices. The device comprises a multi-path input-output (MPIO) driver configured to control delivery of input-output (IO) operations from the device to the storage system over selected ones of a plurality of paths through the network. The paths are associated with respective initiator-target pairs, and each of a plurality of targets of the initiator-target pairs comprises a corresponding port of the storage system. The MPIO driver is further configured to create a plurality of IO operation threads, to use a given IO operation thread to retrieve a given IO operation from an IO queue, to attempt to perform the given IO operation on a given target of the plurality of targets, and to return the given IO operation to the IO queue upon a failure to perform the given IO operation.

Claims (48)

1. An apparatus comprising:

a processing device comprising a processor coupled to a memory;

the processing device being configured to communicate over a network with a storage system comprising a plurality of storage devices;

the processing device comprising:

a multi-path input-output driver configured to control delivery of input-output operations from the processing device to the storage system over selected ones of a plurality of paths through the network;

the paths being associated with respective initiator-target pairs wherein each of a plurality of targets of the initiator-target pairs comprises a corresponding port of the storage system;

wherein the multi-path input-output driver is further configured:

to create a plurality of input-output operation threads;

to use a given input-output operation thread of the plurality of input-output operation threads to retrieve a given input-output operation from an input-output queue;

to attempt to perform the given input-output operation on a given target of the plurality of targets; and

to return the given input-output operation to the input-output queue upon a failure to perform the given input-output operation.

2. The apparatus of claim 1 wherein the processing device is further configured to perform cloud tiering.

3. The apparatus of claim 1 wherein, following the returning of the given input-output operation to the input-output queue, the multi-path input-output driver is further configured to use another given input-output operation thread of the plurality of input-output operation threads to again retrieve the given input-output operation from the input-output queue.

4. The apparatus of claim 3 wherein the multi-path input-output driver is further configured to attempt to perform the given input-output operation on another given target of the plurality of targets.

5. The apparatus of claim 1 wherein the multi-path input-output driver is further configured to determine whether a remaining number of the plurality of input-output operation threads is greater than one input-output operation thread prior to returning the given input-output operation to the input-output queue.

6. The apparatus of claim 1 wherein the multi-path input-output driver is further configured:

to divide the input-output operations into a plurality of smaller input-output operations; and

provide the plurality of smaller input-output operations to the plurality of input-output operation threads.

7. The apparatus of claim 6 wherein the multi-path input-output driver is further configured to use the plurality of input-output operation threads to add the plurality of smaller input-output operations to the input-output queue.

8. The apparatus of claim 7 wherein the given input-output operation corresponds to one of the plurality of smaller input-output operations.

9. The apparatus of claim 1 wherein the processing device is further configured receive an input from a user specifying the plurality of targets.

10. The apparatus of claim 1 wherein, in creating the plurality of input-output operation threads, the multi-path input-output driver is configured to determine a number of the plurality of input-output operation threads based on a number of the plurality of targets.

11. The apparatus of claim 1 wherein the given input-output operation comprises a read operation of a snapshot from the storage system and transmission of the snapshot to a cloud storage platform over the network.

12. The apparatus of claim 1 wherein the given input-output operation comprises a write operation of a snapshot from a cloud storage provider to the storage system.

13. The apparatus of claim 1 wherein the failure to perform the given input-output operation is due to a failure of the given target, and wherein the multi-path input-output driver is further configured to temporarily eliminate from consideration in a path selection algorithm of the multi-path input-output driver any of the paths that are associated with the given target.

14. The apparatus of claim 13 wherein the multi-path input-output driver is further configured:

to determine that the given target is operational; and

to reverse the temporary elimination from consideration in the path selection algorithm of the multi-path input-output driver of any of the paths that are associated with the given target, wherein the reversal is performed after completion of the given input-output operation.

15. A method performed by a processing device configured to communicate over a network with a storage system, comprising:

configuring a multi-path input-output driver of the processing device to control delivery of input-output operations from the processing device to a storage system over selected ones of a plurality of paths through a network;

the paths being associated with respective initiator-target pairs wherein each of a plurality of targets of the initiator-target pairs comprises a corresponding port of the storage system;

the multi-path input-output driver:

creating a plurality of input-output operation threads;

using a given input-output operation thread of the plurality of input-output operation threads to retrieve a given input-output operation from an input-output queue;

attempting to perform the given input-output operation on a given target of the plurality of targets; and

returning the given input-output operation to the input-output queue upon a failure to perform the given input-output operation;

wherein the processing device comprises a processor coupled to a memory.

16. The method of claim 15 wherein, following the returning of the given input-output operation to the input-output queue, the multi-path input-output driver uses another given input-output operation thread of the plurality of input-output operation threads to again retrieve the given input-output operation from the input-output queue.

17. The method of claim 16 wherein the multi-path input-output driver attempts to perform the given input-output operation on another given target of the plurality of targets.

18. The method of claim 16 wherein the multi-path input-output driver determines whether a remaining number of the plurality of input-output operation threads is greater than one input-output operation thread prior to returning the given input-output operation to the input-output queue.

19. 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 a processing device comprising a processor coupled to a memory, the processing device being configured to communicate over a network with a storage system and comprising a multi-path input-output driver, causes the multi-path input-output driver:

to control delivery of input-output operations from the processing device to the storage system over selected ones of a plurality of paths through the network;

the paths being associated with respective initiator-target pairs wherein each of a plurality of targets of the initiator-target pairs comprises a corresponding port of the storage system;

to create a plurality of input-output operation threads;

to use a given input-output operation thread of the plurality of input-output operation threads to retrieve a given input-output operation from an input-output queue;

to attempt to perform the given input-output operation on a given target of the plurality of targets; and

to return the given input-output operation to the input-output queue upon a failure to perform the given input-output operation.

20. The computer program product of claim 19 wherein, following the returning of the given input-output operation to the input-output queue, the program code further causes the multi-path input-output driver to use another given input-output operation thread of the plurality of input-output operation threads to again retrieve the given input-output operation from the input-output queue.

Assignments (13)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052851/0917) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 060436/0509 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052852/0022) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 060436/0582 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053311/0169) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
Reel/Frame 060438/0742 →
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 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052851/0081) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 060436/0441 →
RELEASE OF SECURITY INTEREST AT REEL 052771 FRAME 0906 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058001/0298 →
SECURITY INTEREST Recorded Jun 5, 2020
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 053311/0169 →
SECURITY INTEREST Recorded Jun 5, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC; THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052851/0081 →
SECURITY INTEREST Recorded Jun 5, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052851/0917 →
SECURITY INTEREST Recorded Jun 5, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052852/0022 →
SECURITY AGREEMENT Recorded May 28, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 052771/0906 →
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 6, 2020
From: SHAW, RABI SHANKAR; BHATNAGAR, ANURAG; BEHERA, SARAT KUMAR
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 052041/0753 →