Optimized file system layout for distributed consensus protocol
First Claim
1. A system comprising:
- a cluster of storage systems coupled to a network;
a memory coupled to a processor included in each storage system, the memory configured to store a file system executable by the processor that records configuration changes to the cluster via a distributed consensus protocol; and
a storage device connected to each storage system of the cluster and configured to store an on-disk layout of the file system having a plurality of file system objects, each file system object allocated a region on the storage device, each file system object further having two or more storage container instances, wherein the storage container instances for at least one object are used in an alternating arrangement so that write operations directed to a first storage container instance storing a current copy of content is performed without destroying a previous committed copy of the content stored in a second storage container instance.
1 Assignment
0 Petitions
Accused Products
Abstract
A layout of a file system is optimized to meet storage requirements of a distributed consensus protocol implemented on a plurality of nodes of a cluster. Illustratively, the file system has an on-disk layout representation that enables efficient input/output (I/O) operation performance. The on-disk layout of the file system embodies a plurality of file system objects: membership, snapshot and log objects. Each object is allocated an area or region (e.g., a contiguous storage space) on-disk. In addition, each object has two or more storage container instances, e.g., files. In the case of snapshot and membership objects, the two files of each object are used in a circular (alternating) fashion so that write operations directed to a first file storing a current copy of the snapshot/membership content may be performed without destroying a previous committed copy of the snapshot/membership content stored in a second file.
49 Citations
20 Claims
-
1. A system comprising:
-
a cluster of storage systems coupled to a network; a memory coupled to a processor included in each storage system, the memory configured to store a file system executable by the processor that records configuration changes to the cluster via a distributed consensus protocol; and a storage device connected to each storage system of the cluster and configured to store an on-disk layout of the file system having a plurality of file system objects, each file system object allocated a region on the storage device, each file system object further having two or more storage container instances, wherein the storage container instances for at least one object are used in an alternating arrangement so that write operations directed to a first storage container instance storing a current copy of content is performed without destroying a previous committed copy of the content stored in a second storage container instance. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. A method comprising:
-
connecting a storage array to a storage system of a cluster of storage systems, the storage system having a processor configured to store a file system executable by the processor to record configuration changes to the cluster via a distributed consensus protocol; storing an on-disk layout of the file system on the storage array, the on-disk layout of the file system having a plurality of file system objects; allocating a region on disk for each file system object, each file system object further having two or more files; and employing the files for at least one object in an alternating arrangement so that write operations directed to a first file storing a current copy of content is performed without destroying a previous committed copy of the content stored in a second file. - View Dependent Claims (15, 16, 17, 18, 19)
-
-
20. A non-transitory computer readable medium including program instructions for execution on a processor of a storage system of a cluster, the program instructions configured to:
-
record changes to a cluster configuration via a distributed consensus protocol; store an on-disk layout of a file system on disks of a storage array connected to the storage system, the on-disk layout of the file system having a plurality of file system objects; allocate a region on disk for each file system object having two or more files; and employ the files for at least one object in an alternating arrangement so that write operations directed to a first file storing a current copy of the cluster configuration is performed without destroying a previous committed copy of the cluster configuration stored in a second file.
-
Specification