IP Library Granted Patent US 9,690,886
Granted Patent B1
US 9,690,886 · App. 15/197,812 · Granted Jun 27, 2017

System and method for a simulation of a block storage system on an object storage system

Inventor: Gil Barash (Tel-Aviv, IL)
Assignee: ZERTO LTD.
G06F17/5009G06F3/0604G06F3/0632G06F3/0673
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 9,690,886
App. No.
15/197,812
Granted
Jun 27, 2017
Kind
B1
Abstract

An embodiment may simulate a block storage system on an object storage system. An embodiment may define one or more logical parts of the block storage system and may store data included in the logical parts in a respective plurality of objects in the object storage system. In order to modify a simulation when data in the block storage system is modified, an embodiment may create a new object in the object storage system and may store the modified data in the new object. An embodiment may update a range-map to include at least one of: a reference to the new object, a logical address of the modified data, a size of the modified data and a counter.

Claims (58)

1. A computerized method of simulating a block storage system on an object storage system, the method comprising:

creating a simulated block storage system on the object storage system, by defining a plurality of logical parts of the simulated block storage system and storing data included in the logical parts in a respective plurality of objects in the object storage system, wherein data included in a logical part is stored in at least one respective object; and

when receiving a notification of a write operation in the simulated block storage system:

creating a new object in the object storage system and storing the data of the write operation in the new object, and

updating a range-map to include at least one of: a reference to the new object, a logical address of the data of the write operation, and a size of the data of the write operation, and a counter.

2. The method of claim 1 , comprising:

receiving a request to read data, the request including an address range;

examining the range-map to identify objects in the object storage that store data related to the address range; and

responding to the request based on data stored in at least one of: the plurality of objects and the new object.

3. The method of claim 1 , comprising:

including a value of a running counter in names of the objects;

sorting a plurality of objects based on the counter value; and

creating the range-map by recording a reference to an object, a logical address of the object, a size of the object and a counter value.

4. The method of claim 3 , comprising creating the range-map by recording at least one of: a time and date value, an identification of a user and an identification of an application.

5. The method of claim 1 , comprising:

determining the set of objects in the object storage system that include data included in a set of logical parts; and

if the number of objects in the set is greater than a threshold value then:

initializing a storage object having a size of the set of logical parts,

storing, in the storage object, data read from objects in the object storage system that include data included in the set of logical parts,

creating a new object in the object storage system and storing data read from the storage object in the new object, and

updating the range-map to include at least: a reference to the new object, a logical address of the modified data, a size of the modified data and a counter.

6. The method of claim 5 , comprising deleting at least some of the objects in the object storage system that include data included in the set of logical parts.

7. The method of claim 5 , wherein the set of logical parts includes one logical part.

8. The method of claim 1 , wherein the range-map is an in-memory object.

9. The method of claim 5 , comprising removing the set of objects from the object storage system.

10. A computerized method of simulating a block storage system on an object storage system, the method comprising:

logically dividing the simulated block storage system into a set of logical parts and storing data included in the logical parts in a respective set of objects in the object storage system, wherein data included in a logical part is stored in at least one respective object; and

when a write operation is performed in the simulated block storage system:

creating a new object in the object storage system and including the data of the write operation in the new object, and

modifying a map to include at least one of: a reference to the object, a logical address of the data of the write operation, a size of the data of the write operation, and a running counter.

11. A system comprising:

a memory; and

a controller configured to:

define a plurality of logical parts of a simulated block storage system and store data included in the logical parts in a respective plurality of objects in an object storage system, wherein data included in a logical part is stored in at least one respective object; and

when receiving a notification of a write operation in the simulated block storage system:

create a new object in the object storage system and store the data of the write operation in the new object, and

update a range-map to include at least one of: a reference to the new object, a logical address of the data of the write operation, a size of the data of the write operation and a counter.

12. The system of claim 11 , wherein the controller is configured to:

receive a request to read data, the request including an address range;

examine the range-map to identify objects in the object storage that store data related to the address range; and

respond to the request based on data stored in at least one of: the plurality of objects and the new object.

13. The system of claim 11 , wherein the controller is configured to:

include a value of a running counter in names of the objects;

sort a plurality of objects based on the counter value; and

create the range-map by recording a reference to an object, a logical address of the object, a size of the object and a counter value.

14. The system of claim 13 , wherein the controller is configured to create the range-map by recording at least one of: a time and date value, an identification of a user and an identification of an application.

15. The system of claim 11 , wherein the controller is configured to:

determine the set of objects in the object storage system that include data included in a set of logical parts; and

if the number of objects in the set is greater than a threshold value then:

initialize a storage object having a size of the set of logical parts,

store, in the storage object, data read from objects in the object storage system that include data included in the set of logical parts,

create a new object in the object storage system and storing data read from the storage object in the new object, and

update the range-map to include at least: a reference to the new object, a logical address of the modified data, a size of the modified data and a counter.

16. The system of claim 15 , wherein the controller is configured to delete at least some of the objects in the object storage system that include data included in the set of logical parts.

17. The system of claim 15 , wherein the set of logical parts includes one logical part.

18. The system of claim 11 , wherein the range-map is an in-memory object.

19. The system of claim 15 , wherein the controller is configured to remove the set of objects from the object storage system.

20. The system of claim 11 , wherein the controller is configured to create the range-map based on names of objects in object storage system.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 10, 2024
From: ZERTO LTD.
To: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
Reel/Frame 066269/0960 →
SECURITY INTEREST Recorded Nov 19, 2019
From: ZERTO LTD.
To: KREOS CAPITAL VI (EXPERT FUND) L.P.
Reel/Frame 051044/0213 →
INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Nov 13, 2019
From: ZERTO LTD
To: SILICON VALLEY BANK
Reel/Frame 050998/0757 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 26, 2016
From: BARASH, GIL
To: ZERTO LTD.
Reel/Frame 039252/0890 →