Use of disaggregated storage by a distributed storage system to facilitate performance of data management features that operate at distributed scale
Systems and methods are provided for implementation and use of disaggregated storage by a distributed storage system. In various examples described herein, the association of blocks of storage space within a storage pod with a given dynamically extensible file system (DEFS) may be in large chunks of one or more gigabytes (GB), which may be referred to herein as “allocation areas” (AAs) that each include multiple RAID stripes. The use of large, multi-GB chunks, as the unit of space allocation/assignment to DEFSs of a distributed storage system facilitates ease of management and independence of write allocation. The use of AAs described herein further allows disk space to be used more fluidly across individual (nodes) storage systems of a distributed storage system (cluster of nodes working together), thereby eliminating silos of storage; and processing resource (e.g., CPU) load may be distributed across the cluster.
1 . A method comprising:
creating a disaggregated storage space within a storage pod that includes a group of disks by dividing storage space of the group of disks into a plurality of allocation areas (AAs), wherein the group of disks contains a plurality of Redundant Array of Independent Disks (RAID) groups, and wherein each AA of the plurality of AAs (i) represents a unit of storage space allocation to a given file system of a distributed storage system and (ii) includes a plurality of RAID stripes of a given RAID group of the plurality of RAID groups; and
providing each node of a plurality of nodes of a cluster representing the distributed storage system with exclusive write access to one or more portions of the disaggregated storage space by assigning a subset of the plurality of AAs to a dynamically extensible file system (DEFS) of the node.
2 . The method of claim 1 , wherein the storage pod is accessible for reads concurrently by all nodes of the plurality of nodes via a global physical volume block number (PVBN) space.
3 . The method of claim 2 , further comprising maintaining an active map for the DEFS indicative of those PVBNs of the global PVBN space that are in use by the DEFS.
4 . The method of claim 1 , wherein information indicative of assignment of the subset of the plurality of AAs to the DEFS is maintained within an AA map at a per AA-level of granularity.
5 . The method of claim 4 , wherein the AA map is sparse in areas not assigned to the DEFS.
6 . The method of claim 1 , wherein each of the plurality of nodes comprise virtual storage appliances hosted by a public cloud provider.
7 . A method comprising:
providing a storage pod having a group of disks, wherein the group of disks contains a plurality of Redundant Array of Independent Disks (RAID) groups, and wherein an entirety of a global physical volume block number (PVBN) space associated with the storage pod is visible and accessible to all nodes of a plurality of nodes of a cluster representing a distributed storage system via their respective dynamically extensible file systems (DEFSs); and
facilitating concurrent access by all nodes of the plurality of nodes to disaggregated storage represented within the global PVBN space by maintaining, for each DEFS of one or more DEFSs of each node of the cluster:
an allocation area (AA) map indicative of a plurality of AAs that are assigned to the DEFS, wherein a given AA of the plurality of AAs (i) represents a unit of storage space allocation to the DEFS and (ii) includes a plurality of RAID stripes within the plurality of RAID groups; and
an active map indicative of those PVBNs of the global PVBN space that are in use by the DEFS.
8 . The method of claim 7 , wherein each of the one or more DEFSs represent an independent file system that have exclusive write access to the assigned plurality of AAs.
9 . The method of claim 8 , wherein plurality of nodes are not required to communicate with one another to perform file system operations regardless of a disk of the group associated with the file system operations.
10 . A non-transitory machine readable medium storing instructions, which when executed by one or more processing resources of a distributed storage system, cause the distributed storage system to:
create a disaggregated storage space within a storage pod that includes a group of disks by dividing storage space of the group of disks into a plurality of allocation areas (AAs), wherein the group of disks contains a plurality of Redundant Array of Independent Disks (RAID) groups, and wherein each AA of the plurality of AAs (i) represents a unit of storage space allocation to a given file system of the distributed storage system and (ii) includes a plurality of RAID stripes of a given RAID group of the plurality of RAID groups; and
provide each node of a plurality of nodes of a cluster representing the distributed storage system with exclusive write access to one or more portions of the disaggregated storage space by assigning a subset of the plurality of AAs to a dynamically extensible file system (DEFS) of the node.
11 . The non-transitory machine readable medium of claim 10 , wherein the storage pod is accessible for reads concurrently by all nodes of the plurality of nodes via a global physical volume block number (PVBN) space.
12 . The non-transitory machine readable medium of claim 11 , wherein the instructions further cause the distributed storage system to maintain an active map for the DEFS indicative of those PVBNs of the global PVBN space that are in use by the DEFS.
13 . The non-transitory machine readable medium of claim 10 , wherein information indicative of assignment of the subset of the plurality of AAs to the DEFS is maintained within an AA map at a per AA-level of granularity.
14 . The non-transitory machine readable medium of claim 13 , wherein the AA map is sparse in areas not assigned to the DEFS.
15 . The non-transitory machine readable medium of claim 10 , wherein each of the plurality of nodes comprise virtual storage appliances hosted by a public cloud provider.
16 . A distributed storage system comprising:
one or more processing resources; and
instructions that when executed by the one or more processing resources cause the distributed storage system to:
create a disaggregated storage space within a storage pod that includes a group of disks by dividing storage space of the group of disks into a plurality of allocation areas (AAs), wherein the group of disks contains a plurality of Redundant Array of Independent Disks (RAID) groups, and wherein each AA of the plurality of AAs (i) represents a unit of storage space allocation to a given file system of a distributed storage system and (ii) includes a plurality of RAID stripes of a given RAID group of the plurality of RAID groups; and
provide each node of a plurality of nodes of a cluster representing the distributed storage system with exclusive write access to one or more portions of the disaggregated storage space by assigning a subset of the plurality of AAs to a dynamically extensible file system (DEFS) of the node.
17 . The distributed storage system of claim 16 , wherein the storage pod is accessible for reads concurrently by all nodes of the plurality of nodes via a global physical volume block number (PVBN) space.
18 . The distributed storage system of claim 17 , wherein the instructions further cause the distributed storage system to maintain an active map for the DEFS indicative of those PVBNs of the global PVBN space that are in use by the DEFS.
19 . The distributed storage system of claim 16 , wherein information indicative of assignment of the subset of the plurality of AAs to the DEFS is maintained within an AA map at a per AA-level of granularity.
20 . The distributed storage system of claim 19 , wherein the AA map is sparse in areas not assigned to the DEFS.
21 . The distributed storage system of claim 16 , wherein each of the plurality of nodes comprise virtual storage appliances hosted by a public cloud provider.