IP Library › Granted Patent US 11,474,719
Granted Patent B1
US 11,474,719 · App. 17/320,023 · Granted Oct 18, 2022

Combining the metadata and data address spaces of a distributed storage object via a composite object configuration tree

Inventors: Huseyin Sular (Mountain View, CA); Wenguang Wang (Santa Clara, CA); Eric Knauft (San Francisco, CA); Asit Desai (San Ramon, CA); Varun Shah (Fremont, CA)
Assignee: VMware, Inc.
G06F3/0631G06F3/064G06F3/065G06F3/067G06F3/0613G06F3/0619G06F3/0652
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,474,719
App. No.
17/320,023
Granted
Oct 18, 2022
Kind
B1
Abstract

Techniques for combining the metadata and data address spaces of a distributed storage object are provided. In one set of embodiments, a distributed storage system can receive a request to provision a storage object. In response, the distributed storage system can create, in accordance with an erasure coding scheme, one or more capacity components for holding data of the storage object; create, in accordance with a mirroring scheme having an equivalent level of fault tolerance as the erasure coding scheme, one or more metadata components for holding metadata of the storage object; and create a composite object configuration tree for the storage object that includes first and second subtrees, where the first subtree comprises an indication of the mirroring scheme and references to the one or more metadata components, and where the second subtree comprises an indication of the erasure coding scheme and references to the one or more capacity components.

Claims (62)

1. A method comprising:

receiving, by a distributed storage system including a plurality of nodes, a request to provision a storage object;

creating, by the distributed storage system on one or more first nodes in the plurality of nodes, one or more capacity components for holding data of the storage object, the one or more capacity components being created in accordance with an erasure coding scheme;

creating, by the distributed storage system on one or more second nodes in the plurality of nodes, one or more metadata components for holding metadata of the storage object, the one or more metadata components being created in accordance with a mirroring scheme having an equivalent level of fault tolerance as the erasure coding scheme; and

creating, by the distributed storage system, a composite object configuration tree for the storage object that includes:

a first subtree comprising an indication of the mirroring scheme and references to the one or more metadata components; and

a second subtree comprising an indication of the erasure coding scheme and references to the one or more capacity components.

2. The method of claim 1 wherein the first subtree is ordered before the second subtree in the composite object configuration tree.

3. The method of claim 1 wherein the one or more metadata components are placed on a first storage tier of the distributed storage system, and wherein the one or more capacity components are placed on a second storage tier of the distributed storage system that has lower I/O performance but higher storage capacity than the first storage tier.

4. The method of claim 1 wherein the first subtree is associated with a metadata address region in a logical address space of the storage object, and wherein the second subtree is associated with a data address region in the logical address space of the storage object.

5. The method of claim 4 wherein the second subtree includes a base address for accessing the data in the one or more capacity components, the base address being based on a size of the metadata address region.

6. The method of claim 5 further comprising:

receiving, by a node of the distributed storage system, an I/O request directed to a logical block address (LBA) of the storage object;

translating, by the node, the LBA into a modified LBA using the base address in the second subtree; and

processing, by the node, the I/O request using the modified LBA.

7. The method of claim 5 further comprising:

expanding a size of the metadata address region by:

creating one or more additional metadata components on one or more third nodes of the distributed storage system, the one or more additional metadata components being created in accordance with the mirroring scheme;

adding a third subtree to the composite object configuration tree between the first subtree and the second subtree, the third subtree comprising an indication of the mirroring scheme and references to the one or more additional metadata components; and

updating the base address based on a size of the one or more additional metadata components.

8. A non-transitory computer readable storage medium having stored thereon program code executable by a distributed storage system including a plurality of nodes, the program code embodying a method comprising:

receiving a request to provision a storage object;

creating, on one or more first nodes in the plurality of nodes, one or more capacity components for holding data of the storage object, the one or more capacity components being created in accordance with an erasure coding scheme;

creating, on one or more second nodes in the plurality of nodes, one or more metadata components for holding metadata of the storage object, the one or more metadata components being created in accordance with a mirroring scheme having an equivalent level of fault tolerance as the erasure coding scheme; and

creating a composite object configuration tree for the storage object that includes:

a first subtree comprising an indication of the mirroring scheme and references to the one or more metadata components; and

a second subtree comprising an indication of the erasure coding scheme and references to the one or more capacity components.

9. The non-transitory computer readable storage medium of claim 8 wherein the first subtree is ordered before the second subtree in the composite object configuration tree.

10. The non-transitory computer readable storage medium of claim 8 wherein the one or more metadata components are placed on a first storage tier of the distributed storage system, and wherein the one or more capacity components are placed on a second storage tier of the distributed storage system that has lower I/O performance but higher storage capacity than the first storage tier.

11. The non-transitory computer readable storage medium of claim 8 wherein the first subtree is associated with a metadata address region in a logical address space of the storage object, and wherein the second subtree is associated with a data address region in the logical address space of the storage object.

12. The non-transitory computer readable storage medium of claim 11 wherein the second subtree includes a base address for accessing the data in the one or more capacity components, the base address being based on a size of the metadata address region.

13. The non-transitory computer readable storage medium of claim 12 wherein the method further comprises:

receiving, by a node of the distributed storage system, an I/O request directed to a logical block address (LBA) of the storage object;

translating, by the node, the LBA into a modified LBA using the base address in the second subtree; and

processing, by the node, the I/O request using the modified LBA.

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

expanding a size of the metadata address region by:

creating one or more additional metadata components on one or more third nodes of the distributed storage system, the one or more additional metadata components being created in accordance with the mirroring scheme;

adding a third subtree to the composite object configuration tree between the first subtree and the second subtree, the third subtree comprising an indication of the mirroring scheme and references to the one or more additional metadata components; and

updating the base address based on a size of the one or more additional metadata components.

15. A distributed storage system comprising:

a plurality of nodes; and

a non-transitory computer readable medium having stored thereon program code that, when executed, causes the distributed storage system to:

receive a request to provision a storage object;

create, on one or more first nodes in the plurality of nodes, one or more capacity components for holding data of the storage object, the one or more capacity components being created in accordance with an erasure coding scheme;

create, on one or more second nodes in the plurality of nodes, one or more metadata components for holding metadata of the storage object, the one or more metadata components being created in accordance with a mirroring scheme having an equivalent level of fault tolerance as the erasure coding scheme; and

create a composite object configuration tree for the storage object that includes:

a first subtree comprising an indication of the mirroring scheme and references to the one or more metadata components; and

a second subtree comprising an indication of the erasure coding scheme and references to the one or more capacity components.

16. The distributed storage system of claim 15 wherein the first subtree is ordered before the second subtree in the composite object configuration tree.

17. The distributed storage system of claim 15 wherein the one or more metadata components are placed on a first storage tier of the distributed storage system, and wherein the one or more capacity components are placed on a second storage tier of the distributed storage system that has lower I/O performance but higher storage capacity than the first storage tier.

18. The distributed storage system of claim 15 wherein the first subtree is associated with a metadata address region in a logical address space of the storage object, and wherein the second subtree is associated with a data address region in the logical address space of the storage object.

19. The distributed storage system of claim 18 wherein the second subtree includes a base address for accessing the data in the one or more capacity components, the base address being based on a size of the metadata address region.

20. The distributed storage system of claim 19 wherein the program code further causes the distributed storage system to:

receive an I/O request directed to a logical block address (LBA) of the storage object;

translate the LBA into a modified LBA using the base address in the second subtree; and

process the I/O request using the modified LBA.

21. The distributed storage system of claim 19 wherein the program code further causes the distributed storage system to:

expand a size of the metadata address region by:

creating one or more additional metadata components on one or more third nodes of the distributed storage system, the one or more additional metadata components being created in accordance with the mirroring scheme;

adding a third subtree to the composite object configuration tree between the first subtree and the second subtree, the third subtree comprising an indication of the mirroring scheme and references to the one or more additional metadata components; and

updating the base address based on a size of the one or more additional metadata components.

Assignments (2)
CHANGE OF NAME Recorded Apr 15, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 067102/0395 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 13, 2021
From: SULAR, HUSEYIN; WANG, WENGUANG; KNAUFT, ERIC; DESAI, ASIT; SHAH, VARUN
To: VMWARE INC.
Reel/Frame 056236/0125 →
Cited By (2)
US 12,613,647 US 12,693,788