IP Library Granted Patent US 11,263,032
Granted Patent B1
US 11,263,032 · App. 15/942,070 · Granted Mar 1, 2022

Systems and methods for emulating local storage

Inventors: Nalini Kumari Nallamalli (Andhra Pradesh, IN); Utkarsh Naiknaware (Pune, IN); Raosaheb Jadhav (Sangli, IN); Kushal Kumaran (Cupertino, CA); Anindya Banerjee (Pune, IN)
Assignee: Veritas Technologies LLC
G06F9/45508G06F3/0614G06F3/0659G06F3/0673G06F9/45558G06F2009/45583
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,263,032
App. No.
15/942,070
Filed
Mar 30, 2018
Granted
Mar 1, 2022
Kind
B1
Examiner
LUU, CUONG V
Art Unit
2148
USPC
703/24
Abstract

The disclosed computer-implemented method for emulating local storage may include (i) exposing a cloud storage as a local block storage device by providing a translation service that translates commands formatted according to an operating system compatibility standard protocol into commands formatted according to a cloud storage application programming interface protocol, the cloud storage dividing a cloud storage volume into multiple objects, (ii) receiving a command that is formatted according to the operating system compatibility standard protocol and that specifies a length and offset of the cloud storage volume, (iii) translating the command into a translated command formatted according to the cloud storage application programming interface protocol, and (iv) returning a result of executing the translated command. Various other methods, systems, and computer-readable media are also disclosed.

Claims (58)

1. A computer-implemented method for emulating local storage, at least a portion of the method being performed by a computing device comprising at least one processor, the method comprising:

exposing a cloud storage as a local block storage device by providing a translation service that translates commands formatted according to an operating system compatibility standard protocol into commands formatted according to a cloud storage application programming interface protocol, the cloud storage dividing a cloud storage volume into multiple objects;

receiving a command that is formatted according to the operating system compatibility standard protocol and that specifies a length and offset of the cloud storage volume;

translating the command into a translated command formatted according to the cloud storage application programming interface protocol;

translating the length and offset into information indicating a different length and offset in reference to at least one object within the cloud storage volume rather than referencing the cloud storage volume itself; and

returning a result of executing the translated command that is formatted according to the cloud storage application programming interface protocol and that specifies, as a parameter, the information indicating the different length and offset in reference to the object within the cloud storage volume;

wherein:

the cloud storage application programming interface protocol comprises the REPRESENTATIONAL STATE TRANSFER protocol;

the command comprises an overwrite command to overwrite data of the object that is preexisting prior to the command;

the cloud storage provides strict consistency for newly created objects and provides eventual consistency for overwrite commands;

strict consistency for the overwrite command is achieved by inserting a unique string as part of a unique name for a new object to be created as a replacement for the object that is preexisting; and

strict consistency specifies waiting to return an indication that the overwrite command was successful until after the overwrite command has been successfully performed on both an original node to which the overwrite command is directed and also a secondary node to which the overwrite command is being replicated.

2. The computer-implemented method of claim 1 , wherein the operating system compatibility standard protocol comprises the PORTABLE OPERATING SYSTEM INTERFACE.

3. The computer-implemented method of claim 2 , wherein the command that is formatted according to the operating system compatibility standard protocol comprises both a read command and the overwrite command.

4. The computer-implemented method of claim 1 , wherein the operating system compatibility standard protocol comprises a variant of the PORTABLE OPERATING SYSTEM INTERFACE that was derived from the PORTABLE OPERATING SYSTEM INTERFACE.

5. The computer-implemented method of claim 2 , wherein the command that is formatted according to the operating system compatibility standard protocol further comprises a reclaim command.

6. The computer-implemented method of claim 1 , wherein the translated command formatted according to the cloud storage application programming interface protocol comprises a PUT command.

7. The computer-implemented method of claim 1 , wherein translating the length and offset comprises translating the length and offset into both a second length and offset for a first object and a third length and offset for a second object.

8. The computer-implemented method of claim 1 , wherein the cloud storage volume comprises a thin reclaimable volume.

9. The computer-implemented method of claim 1 , wherein the cloud storage divides the cloud storage volume into multiple objects of uniform length.

10. The computer-implemented method of claim 9 , wherein the uniform length of the multiple objects is identical to a block length of the local block storage device.

11. The computer-implemented method of claim 1 , wherein the translation service enables direct execution of at least one of the following commands on a volume manager:

a mirroring command;

a snapshot command;

an encryption command.

12. The computer-implemented method of claim 1 , wherein the translation service is cloud storage agnostic such that the translation service is compatible with multiple cloud storage vendors.

13. The computer-implemented method of claim 1 , wherein the translation service references objects in terms of a respective unique name assigned to each respective object.

14. The computer-implemented method of claim 13 , wherein the translation service further references objects in terms of a respective incrementing number assigned to each respective object that increments from object to object.

15. The computer-implemented method of claim 14 , wherein the respective unique name assigned to each respective object enables the cloud storage to provide data storage that satisfies a strict consistency protocol rather than an eventual consistency protocol.

16. The computer-implemented method of claim 1 , wherein returning a result of executing a second translated command comprises checking whether an object referenced by the translated command exists.

17. The computer-implemented method of claim 16 , wherein returning the result of executing the second translated command comprises returning random data in response to determining that a corresponding object referenced by the second translated command does not exist.

18. The computer-implemented method of claim 16 , wherein returning the result of executing the second translated command comprises returning data fetched from a corresponding object referenced by the second translated command in response to determining that the corresponding object referenced by the second translated command does exist.

19. A system for emulating local storage, the system comprising:

an exposure module, stored in memory, that exposes a cloud storage as a local block storage device by providing a translation service that translates commands formatted according to an operating system compatibility standard protocol into commands formatted according to a cloud storage application programming interface protocol, the cloud storage dividing a cloud storage volume into multiple objects;

a reception module, stored in memory, that receives a command that is formatted according to the operating system compatibility standard protocol and that specifies a length and offset of the cloud storage volume;

a translation module, stored in memory, that:

translates the command into a translated command formatted according to the cloud storage application programming interface protocol;

translates the length and offset into information indicating a different length and offset in reference to at least one object within the cloud storage volume rather than referencing the cloud storage volume itself;

a returning module, stored in memory, that returns a result of executing the translated command that is formatted according to the cloud storage application programming interface protocol and that specifies, as a parameter, the information indicating the different length and offset in reference to the object within the cloud storage volume; and

at least one physical processor configured to execute the exposure module, the reception module, the translation module, and the returning module;

wherein:

the cloud storage application programming interface protocol comprises the REPRESENTATIONAL STATE TRANSFER protocol;

the command comprises an overwrite command to overwrite data of the object that is preexisting prior to the command;

the cloud storage provides strict consistency for newly created objects and provides eventual consistency for overwrite commands;

strict consistency for the overwrite command is achieved by inserting a unique string as part of a unique name for a new object to be created as a replacement for the object that is preexisting; and

strict consistency specifies waiting to return an indication that the overwrite command was successful until after the overwrite command has been successfully performed on both an original node to which the overwrite command is directed and also a secondary node to which the overwrite command is being replicated.

20. A non-transitory computer-readable medium comprising one or more computer-readable instructions that, when executed by at least one processor of a computing device, cause the computing device to:

expose a cloud storage as a local block storage device by providing a translation service that translates commands formatted according to an operating system compatibility standard protocol into commands formatted according to a cloud storage application programming interface protocol, the cloud storage dividing a cloud storage volume into multiple objects;

receive a command that is formatted according to the operating system compatibility standard protocol and that specifies a length and offset of the cloud storage volume;

translate the command into a translated command formatted according to the cloud storage application programming interface protocol;

translate the length and offset into information indicating a different length and offset in reference to at least one object within the cloud storage volume rather than referencing the cloud storage volume itself; and

return a result of executing the translated command that is formatted according to the cloud storage application programming interface protocol and that specifies, as a parameter, the information indicating the different length and offset in reference to the object within the cloud storage volume;

wherein:

the cloud storage application programming interface protocol comprises the REPRESENTATIONAL STATE TRANSFER protocol;

the command comprises an overwrite command to overwrite data of the object that is preexisting prior to the command;

the cloud storage provides strict consistency for newly created objects and provides eventual consistency for overwrite commands;

strict consistency for the overwrite command is achieved by inserting a unique string as part of a unique name for a new object to be created as a replacement for the object that is preexisting; and

strict consistency specifies waiting to return an indication that the overwrite command was successful until after the overwrite command has been successfully performed on both an original node to which the overwrite command is directed and also a secondary node to which the overwrite command is being replicated.

Assignments (15)
CORRECTIVE ASSIGNMENT TO CORRECT THE CONVEYING PARTY DATA AND CORRECT THE PATENT NUMBERS PREVIOUSLY RECORDED AT REEL: 69548 FRAME: 468. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Feb 4, 2026
From: VERITAS TECHNOLOGIES LLC
To: ARCTERA US LLC
Reel/Frame 074876/0584 →
SECURITY INTEREST Recorded Dec 12, 2025
From: ARCTERA US LLC
To: CITIBANK, N.A., AS COLLATERAL AGENT
Reel/Frame 073951/0470 →
TERMINATION AND RELEASE OF PATENT SECURITY AGREEMENT AT R/F 070530/0497 Recorded Dec 1, 2025
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: ARCTERA US LLC
Reel/Frame 073833/0730 →
TERMINATION AND RELEASE OF PATENT SECURITY AGREEMENT AT R/F 069585/0150 Recorded Dec 1, 2025
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: ARCTERA US LLC
Reel/Frame 073833/0848 →
RELEASE OF SECURITY INTEREST Recorded Dec 16, 2024
From: ACQUIOM AGENCY SERVICES LLC, AS COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 069697/0238 →
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 10, 2024
From: ARCTERA US LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 069563/0243 →
PATENT SECURITY AGREEMENT Recorded Dec 10, 2024
From: ARCTERA US LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 069585/0150 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2024
From: VERITAS TECHNOLOGIES LLC
To: ARCTERA US LLC
Reel/Frame 069548/0468 →
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 INTEREST IN PATENTS AT R/F 052426/0001 Recorded Nov 30, 2020
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 054535/0565 →
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 052426/0001 →
PATENT SECURITY AGREEMENT SUPPLEMENT Recorded Mar 18, 2020
From: VERITAS TECHNOLOGIES LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 052189/0311 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 30, 2018
From: NALLAMALLI, NALINI KUMARI; NAIKNAWARE, UTKARSH; JADHAV, RAOSAHEB; KUMARAN, KUSHAL; BANERJEE, ANINDYA
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 045401/0396 →