IP Library Granted Patent US 11,327,998
Granted Patent B2
US 11,327,998 · App. 16/731,145 · Granted May 10, 2022

Replication between heterogeneous storage systems

Inventors: Xianbo Zhang (Plymouth, MN); Weibao Wu (Vadnais Heights, MN); Timothy Stevens (Andover, MN); Shuangmin Zhang (Beijing, CN)
G06F16/27G06F3/065G06F3/067G06F3/0623G06F11/1464G06F11/2058H04L67/1095G06F2201/84
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,327,998
App. No.
16/731,145
Granted
May 10, 2022
Kind
B2
Abstract

Disclosed herein are systems, methods, and processes to perform replication between heterogeneous storage systems. In one embodiment, a request to perform a replication operation is sent by a target server to a source server, where the target server and the source server use different protocols to store data. A plurality of instructions, which are associated with a replication stream, are received from the source server by the target server, where the plurality of instructions comprise an include instruction to include existing data and a write instruction to write new data. A replication stream, which is associated with a backup stream stored on the source server, is also received from the source server, where the replication stream and the backup stream share a common format. The target server synthesizes a new replicated backup image, where the synthesizing comprises performing the include instruction and the write instruction on the replication stream.

Claims (111)

1. A method comprising:

sending a request to a source server to perform a replication operation, wherein

the request was sent by a target server,

the source server uses a first protocol to store data,

the target server uses a second protocol to store data, and

the first protocol is different from the second protocol;

receiving a plurality of instructions from the source server, wherein

the plurality of instructions are associated with a replication stream, and

the plurality of instructions comprise an include instruction to include existing data and a write instruction to write new data;

receiving the replication stream from the source server, wherein

the replication stream is associated with a backup stream stored on the source server, and

the replication stream and the backup stream share a common format; and

synthesizing a new replicated backup image, wherein

the synthesizing comprises performing the include instruction and the write instruction on the replication stream.

2. The method of claim 1 , wherein

the include instruction comprises an instruction to include, at a first offset range in the replication stream, the existing data, and

the write instruction comprises an instruction to include, at a second offset range in the replication stream, the new data.

3. The method of claim 1 , further comprising:

prior to sending the request to perform the replication operation, sending information to the source server during performance of a backup operation, wherein

the information is sent by the target server,

the information is associated with the backup stream, and

the information comprises the plurality of instructions.

4. The method of claim 3 , wherein

the existing data is comprised in a replicated backup image,

the replicated backup image is stored by the target server,

the new data and the information are comprised in a source backup image, and

the source backup image is stored by the source server as part of the backup operation.

5. The method of claim 4 , wherein

the source server implements a source storage device,

the source storage device stores the backup stream and the information,

the target server implements a target storage device,

the target storage device stores the replicated backup image, and

the source storage device and the target storage device are heterogeneous.

6. The method of claim 1 , wherein

the common format of the replication stream and the backup stream is facilitated by a plug-in implementing a protocol-independent Application Programming Interface.

7. The method of claim 1 , further comprising:

sending a replication confirmation.

8. A non-transitory computer-readable storage medium comprising program instructions executable to perform a method comprising:

sending a request to a source server to perform a replication operation, wherein

the request was sent by a target server,

the source server uses a first protocol to store data,

the target server uses a second protocol to store data, and

the first protocol is different from the second protocol;

receiving a plurality of instructions from the source server, wherein

the plurality of instructions are associated with a replication stream, and

the plurality of instructions comprise an include instruction to include existing data and a write instruction to write new data;

receiving the replication stream from the source server, wherein

the replication stream is associated with a backup stream stored on the source server, and

the replication stream and the backup stream share a common format; and

synthesizing a new replicated backup image, wherein

the synthesizing comprises performing the include instruction and the write instruction on the replication stream.

9. The non-transitory computer-readable storage medium of claim 8 , wherein

the include instruction comprises an instruction to include, at a first offset range in the replication stream, the existing data, and

the write instruction comprises an instruction to include, at a second offset range in the replication stream, the new data.

10. The non-transitory computer-readable storage medium of claim 8 , wherein the method further comprises:

prior to sending the request to perform the replication operation, sending information to the source server during performance of a backup operation, wherein

the information is sent by the target server,

the information is associated with the backup stream, and

the information comprises the plurality of instructions.

11. The non-transitory computer-readable storage medium of claim 10 , wherein

the existing data is comprised in a replicated backup image,

the replicated backup image is stored by the target server,

the new data and the information are comprised in a source backup image, and

the source backup image is stored by the source server as part of the backup operation.

12. The non-transitory computer-readable storage medium of claim 11 , wherein

the source server implements a source storage device,

the source storage device stores the backup stream and the information,

the target server implements a target storage device,

the target storage device stores the replicated backup image, and

the source storage device and the target storage device are heterogeneous.

13. The non-transitory computer-readable storage medium of claim 8 , wherein

the common format of the replication stream and the backup stream is facilitated by a plug-in implementing a protocol-independent Application Programming Interface.

14. The non-transitory computer-readable storage medium of claim 8 , wherein the method further comprises:

sending a replication confirmation.

15. A system comprising:

one or more processors; and

a memory coupled to the one or more processors, wherein the memory stores program instructions executable by the one or more processors to perform a method comprising

sending a request to a source server to perform a replication operation, wherein

the request was sent by a target server,

the source server uses a first protocol to store data,

the target server uses a second protocol to store data, and

the first protocol is different from the second protocol,

receiving a plurality of instructions from the source server, wherein

the plurality of instructions are associated with a replication stream, and

the plurality of instructions comprise an include instruction to include existing data and a write instruction to write new data,

receiving the replication stream from the source server, wherein

the replication stream is associated with a backup stream stored on the source server, and

the replication stream and the backup stream share a common format, and

synthesizing a new replicated backup image, wherein

the synthesizing comprises performing the include instruction and the write instruction on the replication stream.

16. The system of claim 15 , wherein

the include instruction comprises an instruction to include, at a first offset range in the replication stream, the existing data, and

the write instruction comprises an instruction to include, at a second offset range in the replication stream, the new data.

17. The system of claim 15 , wherein the method further comprises:

prior to sending the request to perform the replication operation, sending information to the source server during performance of a backup operation, wherein

the information is sent by the target server,

the information is associated with the backup stream, and

the information comprises the plurality of instructions.

18. The system of claim 17 , wherein

the existing data is comprised in a replicated backup image,

the replicated backup image is stored by the target server,

the new data and the information are comprised in a source backup image, and

the source backup image is stored by the source server as part of the backup operation.

19. The system of claim 18 , wherein

the source server implements a source storage device,

the source storage device stores the backup stream and the information,

the target server implements a target storage device,

the target storage device stores the replicated backup image, and

the source storage device and the target storage device are heterogeneous.

20. The system of claim 15 , wherein

the common format of the replication stream and the backup stream is facilitated by a plug-in implementing a protocol-independent Application Programming Interface.

Assignments (9)
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 13, 2024
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 069634/0584 →
RELEASE OF SECURITY INTEREST Recorded Dec 13, 2024
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 069574/0944 →
SECURITY INTEREST Recorded Dec 9, 2024
From: VERITAS TECHNOLOGIES LLC; COHESITY, INC.
To: JPMORGAN CHASE BANK. N.A.
Reel/Frame 069890/0001 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS AT R/F 052423/0596 Recorded Nov 30, 2020
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 054535/0460 →
SECURITY INTEREST Recorded Aug 20, 2020
From: VERITAS TECHNOLOGIES LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 054370/0134 →
PATENT SECURITY AGREEMENT SUPPLEMENT Recorded Apr 16, 2020
From: VERITAS TECHNOLOGIES, LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 052423/0596 →
PATENT SECURITY AGREEMENT SUPPLEMENT Recorded Apr 9, 2020
From: VERITAS TECHNOLOGIES LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 052368/0272 →
Continuity (2)
Continuation 15086361 · Mar 31, 2016
Related Publication 20200133958A1 · Apr 30, 2020