IP Library Granted Patent US 10,444,994
Granted Patent B2
US 10,444,994 · App. 15/095,969 · Granted Oct 15, 2019

Method and apparatus for scaling out storage devices and scaled-out storage devices

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 10,444,994
App. No.
15/095,969
Granted
Oct 15, 2019
Kind
B2
Abstract

Embodiments of the present disclosure relate to method and apparatus for scaling out storage devices, and scaled-out storage devices by establishing a cross-device link between a first storage device and a second storage device; exchanging configuration information of at least one of the first storage device and the second storage via the cross-device link; creating, in the first storage device, a shadow object corresponding to a real object in the second storage device; and creating, in the second storage device, a shadow object corresponding to a real object in the first storage device; wherein each shadow object can expose feature and/or state of a corresponding real object to users without implementing a functioning logic of the corresponding real object.

Claims (77)

1. A method for scaling out storage devices, the method comprising:

establishing a cross-device link between a first storage device and a second storage device, wherein the cross-device link enables use of resources on either the first storage device and the second storage device;

exchanging configuration information of the first storage device and the second storage via the cross-device link;

creating, in the first storage device, a shadow object corresponding to a real object in the second storage device; and creating, in the second storage device, a shadow object corresponding to a real object in the first storage device;

receiving, at the first storage device, an input/output (I/O) request from a user;

causing the first storage device to process the I/O request, if a target of the I/O request is a real object;

causing the first storage device to redirect the I/O request to the second storage device, if a target of the I/O request is a shadow object, wherein the shadow object, as the target of the I/O request, corresponds to a real object in the second storage device; and

if the I/O request is a write request, causing the first storage device to forward data to be written to the second storage device via the cross-device link, and causing the second storage device to process the I/O request and return processing result to the first storage device via the cross-device link, enabling the first storage device to return the processing result to the user;

wherein each real object tracks a disk configuration describing how at least a portion of data is stored on a disk in a respective storage device of the first storage device and the second storage device;

wherein each shadow object exposes at least one of a feature or a state of a corresponding real object to a user without implementing a functioning logic of the corresponding real object.

2. The method according to claim 1 , the method further comprises:

discovering a disk in either storage device of the first storage device and the second device, wherein both the first storage device and the second storage device contain disks, when at least one of:

the either storage device boots from scratch or a new disk is added to the either storage device;

creating a real object in the either storage device after discovering the disk, to track at least one of a disk configuration or the state of the either storage device;

wherein exchanging configuration information of at least one of the first storage device and the second storage via the cross-device link comprises exchanging information of at least one of the disk configuration or the state of the either storage device.

3. The method according to claim 2 , wherein the first storage device and the second storage device comprise storage arrays, and the real object includes at least one of the from the group consisting of:

a Physical Drive Object (PDO);

a Redundant Array of Independent Disk (RAID) Group (RG);

a Logical Unit (LUN); and

a volume of a disk.

4. The method according claim 1 , the method further comprises:

setting a storage processor (SP) of the first storage device and a corresponding SP of the second storage device as a remote peer SP of each other, wherein both the first storage device and the second storage device contain storage processors, wherein creating, in the first storage device, a shadow object comprises: creating a shadow object for a corresponding remote peer SP in the SP of the first storage device; and

wherein creating, in the second storage device, a shadow object comprises: creating a shadow object for a corresponding remote peer SP in the SP of the second storage device.

5. The method according to claim 4 , the method further comprises:

detecting a peer status between an active SP of the first storage device and an active SP of the second storage device via the cross-device link, wherein both the first storage device and the second storage device contain active SPs.

6. The method according to claim 5 , the method further comprises:

promoting a passive SP of the at least one storage device to be a new active SP, when the active SP of the at least one storage device fails, wherein at least one storage device of the first storage device and the second device further comprises the passive SP.

7. The method according to claim 6 , wherein setting a SP of the first storage device and a corresponding SP of the second storage device as a remote peer SP of each other comprises:

setting an active SP of the first storage device and an active SP of the second storage device as a remote peer SP of each other, when both the first storage device and the second storage device comprises an available active SP;

setting both the active SP and the passive SP of the first storage device as remote peer SPs of the active SP of the second storage device, when the first storage device includes the available active SP and the passive SP and the second storage device comprises the available active SP; and

setting the active SP of the first storage device and the active SP of the second storage device as a remote peer SP of each other and setting the passive SP of the first storage device and the passive SP of the second storage device as a remote peer SP of each other, when both the first storage device and the second storage device comprises the active SP and the passive SP.

8. The method according to claim 1 , wherein causing the first storage device to redirect the I/O request to the second storage device comprises at least one of the followings:

if the I/O request is a read request, causing the first storage device to forward the I/O request to the second storage device via the cross-device link, and causing the second storage device to process the I/O request and return data to the first storage device via the cross-device link, enabling the first storage device to return data to the user.

9. The method according to claim 1 , wherein the cross-device link is implemented by at least one of the Transmission Control Protocol and Internet Protocol (TCP/IP), Fast Communication Controller (FCC), INIFINIBAND and Peripheral Component Interconnect Express (PCI-E) protocols.

10. An apparatus for scaling out storage devices, the apparatus comprising computer-executable logic operating in memory, wherein the computer-executable program logic is configured to enable execution across one or more processors configured to:

establish a cross-device link between the first storage device and the second storage device, wherein the cross-device link enables use of resources on either the first storage device and the second storage device;

exchange configuration information of at least one of the first storage device and the second storage device via the cross-device link; and

create, in the first storage device, a shadow object corresponding to a real object in the second storage device; and configured to create, in the second storage device, a shadow object corresponding to a real object in the first storage device;

receive, at the first storage device, an input/output (I/O) request from a user;

cause the first storage device to process the I/O request, if a target of the I/O request is a real object;

cause the first storage device to redirect the I/O request to the second storage device, if a target of the I/O request is a shadow object, wherein the shadow object, as the target of the I/O request, corresponds to a real object in the second storage device; and

if the I/O request is a write request, cause the first storage device to forward data to be written to the second storage device via the cross-device link, and cause the second storage device to process the I/O request and return processing result to the first storage device via the cross-device link, enable the first storage device to return the processing result to the user;

wherein each real object tracks a disk configuration describing how at least a portion of data is stored on a disk in a respective storage device of the first storage device and the second storage device;

wherein each shadow object exposes at least one of a feature or a state of a corresponding real object to a user without implementing a functioning logic of the corresponding real object.

11. The apparatus according to claim 10 , further configured to:

discover a disk in either storage device of the first storage device and the second device, wherein both the first storage device and the second storage device contain disks, when at least one of

the either storage device boots from scratch or a new disk is added to the either storage device;

create a real object in the either storage device after the discovery of the disk, to track at least one of a disk configuration or the state of the either storage device; and

exchange information of at least one of the disk configuration or the state of the either storage device via the cross-device link.

12. The apparatus according to claim 11 , wherein the first storage device and the second storage device comprise storage arrays, and the real object includes at least one of the followings:

a Physical Drive Object (PDO);

a Redundant Array of Independent Disk (RAID) Group (RG);

a Logical Unit (LUN); and

a volume of a disk.

13. The apparatus according to claim 10 , further configured to:

set a Storage Processor (SP) of the first storage device and a corresponding SP of the second storage device as a remote peer SP of each other, wherein both the first storage device and the second storage device contain storage processors;

create, in the SP of the first storage device, a shadow object for a corresponding remote peer SP; and create, in the SP of the second storage device, a shadow object for a corresponding remote peer SP.

14. The apparatus according to claim 13 , further configured to:

detect a peer status between an active SP of the first storage device and an active SP of the second storage device via the cross-device link, wherein both the first storage device and the second storage device contain active SPs.

15. The apparatus according to claim 14 , further configured to:

promote a passive SP of the at least one storage device to be a new active SP, when the active SP of the at least one storage device fails, wherein at least one storage device of the first storage device and the second device further comprises the passive SP.

16. The apparatus according to claim 15 , further configured to:

setting an active SP of the first storage device and an active SP of the second storage device as a remote peer SP of each other, when both the first storage device and the second storage device comprises an available active SP;

setting both the active SP and the passive SP of the first storage device as remote peer SPs of the active SP of the second storage device, when the first storage device includes the available active SP and the passive SP and the second storage device comprises the available active SP; and

setting the active SP of the first storage device and the active SP of the second storage device as a remote peer SP of each other and setting the passive SP of the first storage device and the passive SP of the second storage device as a remote peer SP of each other, when both the first storage device and the second storage device comprises the active SP and the passive SP.

17. The apparatus according to claim 10 , wherein causing the first storage device to redirect the I/O request to the second storage device comprises one of the following:

if the I/O request is a read request, causing the first storage device to forward the I/O request to the second storage device via the cross-device link, and causing the second storage device to process the I/O request and return data to the first storage device via the cross-device link, enabling the first storage device to return data to the user.

18. A computer program product comprising a non-transitory computer readable medium encoded with computer executable program code, wherein the code enables execution across one or more processors

establishing a cross-device link between a first storage device and a second storage device, wherein the cross-device link enables use of resources on either the first storage device and the second storage device;

exchanging configuration information of the first storage device and the second storage via the cross-device link;

creating, in the first storage device, a shadow object corresponding to a real object in the second storage device; and creating, in the second storage device, a shadow object corresponding to a real object in the first storage device;

receiving, at the first storage device, an input/output (I/O) request from a user;

causing the first storage device to process the I/O request, if a target of the I/O request is a real object;

causing the first storage device to redirect the I/O request to the second storage device, if a target of the I/O request is a shadow object, wherein the shadow object, as the target of the I/O request, corresponds to a real object in the second storage device; and

if the I/O request is a write request, causing the first storage device to forward data to be written to the second storage device via the cross-device link, and causing the second storage device to process the I/O request and return processing result to the first storage device via the cross-device link, enabling the first storage device to return the processing result to the user;

wherein each real object tracks a disk configuration describing how at least a portion of data is stored on a disk in a respective storage device of the first storage device and the second storage device;

wherein each shadow object exposes at least one of a feature or a state of a corresponding real object to a user without implementing a functioning logic of the corresponding real object.

Assignments (8)
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 (051302/0528) 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; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO WYSE TECHNOLOGY L.L.C.); SECUREWORKS CORP.
Reel/Frame 060438/0593 →
RELEASE OF SECURITY INTEREST AT REEL 051449 FRAME 0728 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.; SECUREWORKS CORP.; EMC CORPORATION
Reel/Frame 058002/0010 →
SECURITY AGREEMENT Recorded Dec 31, 2019
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.; SECUREWORKS CORP.; EMC CORPORATION
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 051449/0728 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Dec 16, 2019
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.; SECUREWORKS CORP.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 051302/0528 →
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 Mar 3, 2017
From: EMC CORPORATION
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 041872/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 4, 2016
From: GAO, HONGPO; GAO, JIAN; XU, XINLEI; HAN, GENG; DONG, JIBING
To: EMC CORPORATION
Reel/Frame 039339/0922 →