IP Library Granted Patent US 10,296,422
Granted Patent B1
US 10,296,422 · App. 14/611,233 · Granted May 21, 2019

Low cost, heterogeneous method of transforming replicated data for consumption in the cloud

Inventors: Pooja Sarda (Cupertino, CA); Anish A. Vaidya (San Jose, CA); Manjunath Mageswaran (Sunnyvale, CA)
Assignee: Veritas Technologies LLC
G06F11/1464G06F11/1451H04L67/1095
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,296,422
App. No.
14/611,233
Granted
May 21, 2019
Kind
B1
Abstract

Various systems, methods and apparatuses for replicating data from homogeneous and/or heterogeneous primary computing systems to a single recovery computing system are presented. In one embodiment, the methods, systems and apparatuses described herein allow a computing system to receive information from a remote computing system, where the information contains at least data and a logical storage location corresponding to the location of the data in a logical storage unit of the remote computing system. Upon receiving the data and associated logical storage location, the methods, systems and apparatuses described herein can store the information at a specific location in a storage device such as, for example, a block storage device. The specific location can be determined, for example, based on the logical storage location provided by the remote computing system and an offset associated with the starting location of the relevant logical storage unit on the storage device.

Claims (125)

1. A method comprising:

provisioning a recovery application node, wherein

the recovery application node is communicatively coupled to a computing system, and

the computing system comprises a recovery gateway node;

creating a contiguous storage volume on a storage device, wherein

the contiguous storage volume is created by the recovery application node,

the storage device is communicatively coupled to the recovery gateway node, and

the creating comprises writing information regarding a starting location associated with the contiguous storage volume;

receiving, from a remote computing system, first information at the recovery gateway node, wherein

the first information comprises

first data, and

a first storage location, and

the first storage location corresponds to a first location of the first data in a first logical storage unit of the remote computing system;

disconnecting the recovery application node from the contiguous storage volume; and

subsequent to the disconnecting of the recovery application node from the contiguous storage volume, using the recovery gateway node to store the first data in the contiguous storage volume on the storage device, wherein

the recovery gateway node is used to store the first data at a first location in the contiguous storage volume on the storage device, and

the first location is determined based on the starting location and the first storage location.

2. The method of claim 1 , wherein

the disconnecting comprises shutting down the recovery application node, and

the shutting down is performed prior to storing the first data at the first location.

3. The method of claim 1 , further comprising:

prior to creating the contiguous storage volume, provisioning the storage device, wherein

the recovery application node is used to provision the storage device,

the storage device is communicatively coupled to the computing system.

4. The method of claim 1 , wherein

the remote computing system comprises a remote gateway node, and

the recovery gateway node is communicatively coupled to the remote gateway node.

5. The method of claim 4 , wherein

the recovery gateway node comprises a first operating system,

the remote gateway node comprises a second operating system, and

the first operating system is distinct from the second operating system.

6. The method of claim 1 , wherein storing the first data at the first location further comprises:

searching for a signature on the storage device, wherein

the signature is associated with a first replication volume,

the first replication volume comprises the first storage location,

the signature comprises an offset, and

the searching is performed prior to the receiving.

7. The method of claim 1 , wherein

the storage device is a block storage device,

the first location comprises a first logical block number, and

the first location is determined based on the first logical block number and a first offset.

8. The method of claim 7 , further comprising:

receiving second information at the recovery gateway node, wherein

the second information comprises

second data, and

a logical block number corresponding to the first location; and

storing the second data in the block storage device, wherein

the storing the second data comprises overwriting the first data.

9. The method of claim 1 , wherein

the recovery application node is used to configure the contiguous storage volume as a striped storage volume.

10. The method of claim 1 , wherein

the recovery application node is used to configure the contiguous storage volume as a mirrored storage volume.

11. The method of claim 1 , further comprising:

subsequent to using the recovery gateway node to store the first data in the contiguous storage volume, detecting a failure of the remote computing system; and

subsequent to detecting the failure of the remote computing system, attaching the recovery application node to the contiguous storage volume; and

subsequent to attaching the recovery application node to the contiguous storage volume, bringing the recovery application node online to function in place of the remote computing system that failed.

12. A computer system comprising:

one or more processors; and

a memory coupled to at least one of the one or more processors and configured to store instructions executable by the one or more processors, the instructions configured to perform a method comprising:

provisioning a recovery application node, wherein

the recovery application node is communicatively coupled to a computing system, and

the computing system comprises a recovery gateway node;

creating a contiguous storage volume on a storage device, wherein

the contiguous storage volume is created by the recovery application node,

the storage device is communicatively coupled to the recovery gateway node, and

creating the contiguous storage volume comprises writing information regarding a starting location associated with the contiguous storage volume;

receiving, from a remote computing system, first information at the recovery gateway node, wherein

the first information comprises

first data, and

a first storage location, and

the first storage location corresponds to a first location of the first data in a first logical storage unit of the remote computing system;

disconnecting the recovery application node from the contiguous storage volume; and

subsequent to disconnecting the recovery application node from the contiguous storage volume, using the recovery gateway node to store the first data in the contiguous storage volume on the storage device, wherein

the recovery gateway node is used to store the first data at a first location in the contiguous storage volume on the storage device, and

the computing system is configured to determine the first location based on the starting location and the first storage location.

13. The system of claim 12 , wherein:

disconnecting the recovery application node comprises shutting down the recovery application node, wherein

the recovery application node is shut down prior to storing the first data in the storage device of the computing system.

14. The system of claim 12 , wherein the instructions are further configured to:

provision the storage device prior to creating the contiguous storage volume, wherein

the recovery application node is configured to provision the storage device,

the storage device is communicatively coupled to the computing system.

15. The system of claim 12 , wherein

the remote computing system comprises a remote gateway node,

the recovery gateway node is communicatively coupled to the remote gateway node.

16. The system of claim 15 , wherein

the storage device is a block storage device,

the first location comprises a first logical block number, and

the instructions are further configured to determine the first location based on the first logical block number and a first offset.

17. The system of claim 16 , wherein the instructions are further configured to:

receive second information at the recovery gateway node, wherein

the second information comprises

second data, and

a logical block number corresponding to the first location; and

store the second data in the block storage device, wherein

storing the second data comprises overwriting the first data.

18. A non-transitory computer-readable storage medium configured to store program instructions that, when executed on a processor, are configured to cause the processor to perform a method comprising:

provisioning a recovery application node, wherein

the recovery application node is communicatively coupled to a computing system, and

the computing system comprises a recovery gateway node;

creating a contiguous storage volume on a storage device, wherein

the contiguous storage volume is created by the recovery application node,

the storage device is communicatively coupled to the recovery gateway node, and

the creating comprises writing information regarding a starting location associated with the contiguous storage volume;

receiving, from a remote computing system, first information at the recovery gateway node, wherein

the first information comprises

first data, and

a first storage location, and

the first storage location corresponds to a first location of the first data in a first logical storage unit of the remote computing system;

disconnecting the recovery application node from the contiguous storage volume; and

subsequent to the disconnecting of the recovery application node from the contiguous storage volume, using the recovery gateway node to store the first data in the contiguous storage volume on the storage device, wherein

the recovery gateway node is used to store the first data at a first location in the contiguous storage volume on the storage device, and

the first location is determined based on the starting location and the first storage location.

19. The non-transitory computer-readable storage medium of claim 18 , wherein the disconnecting comprises shutting down the recovery application node, and the shutting down is performed prior to storing the first data at the first location.

20. The non-transitory computer-readable storage medium of claim 19 , wherein:

the storage device is a block storage device,

the first location comprises a first logical block number, and

the method further comprises

determining the first location based on the first logical block number and a first offset;

receiving second information at the recovery gateway node, wherein

the second information comprises

second data, and

a logical block number corresponding to the first location; and

storing the second data in the block storage device, wherein

the storing the second data comprises overwriting the first data.

Assignments (13)
AMENDMENT NO. 1 TO PATENT SECURITY AGREEMENT Recorded Apr 8, 2025
From: VERITAS TECHNOLOGIES LLC; COHESITY, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 070779/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 26, 2025
From: VERITAS TECHNOLOGIES LLC
To: COHESITY, INC.
Reel/Frame 070335/0013 →
RELEASE OF SECURITY INTEREST Recorded Dec 16, 2024
From: ACQUIOM AGENCY SERVICES LLC, AS COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC (F/K/A VERITAS US IP HOLDINGS LLC)
Reel/Frame 069712/0090 →
RELEASE OF SECURITY INTEREST Recorded Dec 13, 2024
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 069634/0584 →
SECURITY INTEREST Recorded Dec 9, 2024
From: VERITAS TECHNOLOGIES LLC; COHESITY, INC.
To: JPMORGAN CHASE BANK. N.A.
Reel/Frame 069890/0001 →
ASSIGNMENT OF SECURITY INTEREST IN PATENT COLLATERAL Recorded Nov 25, 2024
From: BANK OF AMERICA, N.A., AS ASSIGNOR
To: ACQUIOM AGENCY SERVICES LLC, AS ASSIGNEE
Reel/Frame 069440/0084 →
TERMINATION AND RELEASE OF SECURITY IN PATENTS AT R/F 037891/0726 Recorded Nov 30, 2020
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: VERITAS US IP HOLDINGS, LLC
Reel/Frame 054535/0814 →
SECURITY INTEREST Recorded Aug 20, 2020
From: VERITAS TECHNOLOGIES LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 054370/0134 →
MERGER Recorded Apr 18, 2016
From: VERITAS US IP HOLDINGS LLC
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 038483/0203 →
SECURITY INTEREST Recorded Feb 23, 2016
From: VERITAS US IP HOLDINGS LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 037891/0726 →
SECURITY INTEREST Recorded Feb 23, 2016
From: VERITAS US IP HOLDINGS LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 037891/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 4, 2016
From: SYMANTEC CORPORATION
To: VERITAS US IP HOLDINGS LLC
Reel/Frame 037693/0158 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 26, 2015
From: SARDA, POOJA; VAIDYA, ANISH A.; MAGESWARAN, MANJUNATH
To: SYMANTEC CORPORATION
Reel/Frame 035306/0096 →
Cited By (2)
US 12,554,597 US 12,632,300