IP Library Granted Patent US 9,785,573
Granted Patent B2
US 9,785,573 · App. 15/149,470 · Granted Oct 10, 2017

Systems and methods for storage of data in a virtual storage device

Inventors: Conrad N. Wood (Berlin, DE); Achim Weiss (Berlin, DE)
Assignee: Profitbricks GmbH
G06F12/1009G06F3/06G06F11/0727G06F11/0775G06F11/1484G06F11/3006G06F12/023G06F17/30G06F2212/1044G06F2212/152G06F2212/154G06F2212/651
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,785,573
App. No.
15/149,470
Granted
Oct 10, 2017
Kind
B2
Abstract

A system for providing data storage includes at least one virtual server comprising at least one virtual storage device; at least one physical server comprising at least one physical storage device; a data structure, stored on each of the at least one physical storage devices, the data structure comprising: at least one table of contents, the table of contents configured to map storage locations within the virtual storage device to node structures that provide pointers to corresponding storage locations within the physical storage device; a tree structure having a predetermined number of hierarchical levels, each level containing node structures, the node structures containing pointers that point to other node structures or to data locations on the physical storage device; and one or more core software modules.

Claims (33)

1. A system for providing data storage, the system comprising:

at least one virtual server comprising at least one virtual storage device;

at least one physical server comprising at least one physical storage device;

a data structure, stored on each of the at least one physical storage devices, the data structure comprising:

at least one table of contents, the table of contents configured to map storage locations within the virtual storage device to node structures that provide pointers to corresponding storage locations within the physical storage device; and

a tree structure having a predetermined number of hierarchical levels, each level containing node structures, the node structures containing pointers that point to other node structures or to data locations on the physical storage device; and

one or more core modules executed by the virtual server, the physical server or both, configured to receive requests to access data in the storage locations within the virtual storage device and, in response to the requests, traverse the data structure to access data in the corresponding storage locations within the physical storage device.

2. The system of claim 1 wherein the at least one virtual storage device is block addressable.

3. The system of claim 2 wherein the one or more core modules are configured to translate block addresses of the virtual storage device into block address of the at least one physical storage device.

4. The system of claim 1 wherein the tree structure has three levels of node structures.

5. The system of claim 1 wherein each table of contents structure is associated with a single virtual storage device.

6. The system of claim 1 wherein the one or more physical storage devices have more than one table of contents stored thereon.

7. The system of claim 1 wherein the node structures have a size that is a multiple of a block size of the physical storage device.

8. The system of claim 1 wherein the node structures in a last hierarchical level contain pointers to data blocks, and the node structures in the remaining hierarchical levels contain pointers to other node structures.

9. The system of claim 1 wherein the one or more core modules are further configured to allocate additional storage locations in the physical storage device in response to a request to write data that requires additional storage space.

10. The system of claim 9 wherein the one or more core modules are further configured to dynamically update the tree structure to point to the newly allocated additional storage locations in response to the request.

11. The system of claim 1 wherein the one or more core modules are further configured to process requests to read and write data to the physical storage device.

12. A method for providing data storage, the method comprising:

executing, by a computing device, at least one virtual server comprising at least one virtual storage device;

at least one physical server comprising at least one physical storage device;

storing, on at least one physical storage device coupled to a physical server, a data structure comprising:

at least one table of contents, the table of contents configured to map storage locations within the virtual storage device to node structures that provide pointers to corresponding storage locations within the physical storage device; and

a tree structure having a predetermined number of hierarchical levels, each level containing node structures, the node structures containing pointers that point to other node structures or to data locations on the physical storage device; and

executing, by the virtual server, the physical server, or both, a software driver configured to receive requests to access data in the storage locations within the virtual storage device and, in response to the requests, traverse the data structure to access data in the corresponding storage locations within the physical storage device.

13. The method of claim 12 wherein the at least one virtual storage device is block addressable.

14. The method of claim 13 wherein executing the software driver includes translating block addresses of the virtual storage device into block address of the at least one physical storage device.

15. The method of claim 12 wherein the tree structure has three levels of node structures, and traversing the tree structure includes traversing the three levels.

16. The method of claim 12 further comprising associating each table of contents structure with a single virtual storage device.

17. The method of claim 12 further comprising storing more than one table of contents stored on the physical storage device.

18. The method of claim 12 further comprising storing each node structure in one or more blocks of the physical storage device, wherein the node structures have a size that is a multiple of a block size of the physical storage device.

19. The method of claim 12 wherein executing the software driver comprises allocating additional storage locations in the physical storage device in response to a request to write data that requires additional storage space.

20. The method of claim 19 wherein executing the software driver comprises dynamically updating the tree structure to point to the newly allocated additional storage locations in response to the request.

21. The method of claim 12 wherein executing the software driver comprises processing requests to read and write data to the physical storage device.

Assignments (5)
CORRECTIVE ASSIGNMENT TO CORRECT THE THE DOC DATE WAS ENTERED AS 08/26/2019 AND SHOULD BE 10/25/2018 PREVIOUSLY RECORDED ON REEL 73084 FRAME 476. ASSIGNOR(S) HEREBY CONFIRMS THE CHANGE OF NAME. Recorded Mar 9, 2026
From: PROFITBRICKS GMBH
To: 1&1 IONOS CLOUD GMBH
Reel/Frame 075065/0912 →
CHANGE OF NAME Recorded Feb 27, 2026
From: 1&1 IONOS SE
To: IONOS SE
Reel/Frame 073919/0244 →
MERGER Recorded Feb 23, 2026
From: 1&1 IONOS CLOUD GMBH
To: 1&1 IONOS SE
Reel/Frame 073861/0812 →
CHANGE OF NAME Recorded Oct 13, 2025
From: PROFITBRICKS GMBH
To: 1&1 IONOS CLOUD GMBH
Reel/Frame 073084/0476 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 10, 2016
From: WOOD, CONRAD N.; WEISS, ACHIM
To: PROFITBRICKS GMBH
Reel/Frame 038655/0689 →
Continuity (2)
Continuation 14200764 · Mar 7, 2014
Related Publication 20160253267A1 · Sep 1, 2016