Distributed Storage
Distributed storage spreads data across multiple machines so that no single node holds all the data or represents a single point of failure. It addresses replication, partitioning, consistency models, and fault tolerance to provide durable, scalable data persistence.
itStorage, backup, and data protection | OpenSkills.info
Course pathWalk it in order
Look it upDip in anytime
Go furtherLeaves this page
Don't Panic
Don't Panic: Distributed Storage
Distributed storage is the arrangement in which many machines keep the data while clients are offered one storage service. The polite fiction is useful, but it has a bill: somebody must decide where each piece lives, who gets to change it, and what happens when a machine becomes unexpectedly decorative.
Before this arrangement, a single machine held the data and its limits were pleasantly easy to point at. Add machines and the limits become capacity, throughput, network delay, partial failure, and copies that can disagree. The first useful mental model has five verbs: divide, place, protect, coordinate, repair. They sound like a committee agenda because, regrettably, they are also the job description.
Partitioning divides a data set into chunks, objects, records, or key ranges so different nodes can serve different pieces. Placement then chooses the storage nodes for each piece. This is where the word replicated can become suspiciously vague. Three copies on one host are three copies with one shared bad day. Copies across the failure domain you actually expect to lose are protection.
Replication keeps complete copies. Erasure coding keeps data chunks plus calculated coding chunks that can reconstruct missing pieces. The latter can use less raw capacity, but repair has to read survivors, send data across the network, calculate replacements, and write them somewhere sensible. Storage has a gift for converting saved space into a busy afternoon.
The surprising part is that an available cluster need not be fully protected. A client operation can succeed while a missing copy is still rebuilding. A cluster can also preserve one agreed order by refusing new writes when it lacks a quorum. Quorum means the minimum group needed to make a decision, and its absence can be safety doing an excellent impression of inconvenience.
Read the intro when you need the full architecture and the client-visible consistency choices. Use the slides to keep the five jobs and the write path in one view. Keep the cheatsheet nearby when you are evaluating placement, failure domains, acknowledgment rules, repair capacity, and hotspots. Then use the timeline and landscape to connect those decisions to systems that made different tradeoffs. The field notes are for the expensive bits that remain after the diagrams have gone home.
Where this skill leads
Relevant careers
See how this topic contributes to broader role-level skill maps.
Sources
- https://research.google/pubs/the-google-file-system/
Supports
- Distributed file-system scaling across commodity machines
- Chunking, metadata coordination, replication, fault tolerance, and recovery
- Workload-driven distributed-storage design and measured production behavior
- https://research.google/pubs/bigtable-a-distributed-storage-system-for-structured-data/
Supports
- Distributed storage for structured data across large machine fleets
- Data-model and data-layout choices for workloads with different latency and size demands
- Partitioning and workload distribution in a production storage system
- https://www.allthingsdistributed.com/2007/10/amazons_dynamo.html
Supports
- Highly available key-value storage design
- Consistent hashing, replication, configurable quorums, versioning, and conflict resolution
- Explicit tradeoffs among availability, consistency, durability, performance, and cost
- https://raft.github.io/index.html
Supports
- Consensus for replicated state machines
- Majority behavior and progress limits when a majority cannot communicate
- Replicated logs that preserve one command order
- https://raft.github.io/raft.pdf
Supports
- Leader election, log replication, safety, and membership concepts
- Majority-based replicated state-machine behavior
- Safety and availability distinctions during server failure
- https://research.google/pubs/spanner-truetime-and-the-cap-theorem/
Supports
- CAP as a partition-time tradeoff rather than a timeless product taxonomy
- Strong consistency, availability, and wide-area partition behavior
- The relationship between Spanner's guarantees and CAP
- https://docs.ceph.com/en/latest/architecture/
Supports
- RADOS, monitor, object storage daemon, client, and CRUSH responsibilities
- Direct client access to object storage daemons after calculated placement
- Replication, recovery, rebalancing, and cluster-map concepts
- Object, block, and file services over one distributed storage foundation
- https://docs.ceph.com/en/latest/rados/operations/crush-map/
Supports
- Calculated data placement without a central lookup table
- Topology-aware replica and erasure-chunk placement
- Host and other failure-domain rules
- https://docs.ceph.com/en/latest/rados/operations/erasure-code-profile/
Supports
- K data chunks and M coding chunks
- Reconstruction limits and capacity overhead
- Stripe size, plugins, and failure-domain configuration
- https://docs.ceph.com/en/latest/rados/operations/pools/
Supports
- Replicated and erasure-coded protection strategies
- Capacity, performance, workload, and failure-domain tradeoffs
- Pool-level data-protection configuration
- https://hadoop.apache.org/docs/r3.2.4/hadoop-project-dist/hadoop-hdfs/HdfsDesign.html
Supports
- NameNode metadata and DataNode block-storage responsibilities
- Direct client data transfer after block-location lookup
- Configurable block replication, heartbeats, block reports, and rack-aware placement
- https://research.google/pubs/availability-in-globally-distributed-storage-systems/
Supports
- Hardware, software, network, and power failures in large storage systems
- Effects of data placement and replication strategies on availability
- Recovery and correlated-failure considerations at cloud-storage scale
- https://research.google/pubs/mapreduce-simplified-data-processing-on-large-clusters/
Supports
- MapReduce publication as a 2004 milestone for data-local distributed processing
- https://www.ssrc.us/pub/weil-osdi06.html
Supports
- Ceph publication at OSDI in November 2006 and its CRUSH-based architecture
- https://www.amazon.science/publications/dynamo-amazons-highly-available-key-value-store
Supports
- Dynamo publication in 2007 and its highly available key-value design
- https://engineering.fb.com/2008/08/25/core-infra/cassandra-a-structured-storage-system-on-a-p2p-network/
Supports
- Cassandra announcement in 2008 and its peer-to-peer structured storage design
- https://news.apache.org/foundation/entry/the_apache_software_foundation_announces21
Supports
- Apache Hadoop 1.0 announcement in January 2012
- https://research.google.com/archive/spanner-osdi2012.pdf
Supports
- Spanner publication at OSDI 2012 and globally distributed synchronous replication
- https://engineering.fb.com/2017/08/31/core-infra/logdevice-a-distributed-data-store-for-logs/
Supports
- Placement options, rebuilding throughput, and under-replication recovery in a production distributed data store
- https://engineering.fb.com/2015/05/04/core-infra/under-the-hood-facebook-s-cold-storage-system/
Supports
- Erasure coding, integrity scanning, and distributed reconstruction in cold storage
- https://engineering.fb.com/2020/09/08/data-center-engineering/fault-tolerance-through-optimal-workload-placement/
Supports
- Failure-domain-aware workload placement, buffer capacity, and rebuild costs
- https://ceph.io/
Supports
- Ceph product and project homepage
- https://min.io/
Supports
- MinIO product homepage
- https://aws.amazon.com/s3/
Supports
- Amazon S3 product homepage
- https://cloud.google.com/storage
Supports
- Google Cloud Storage product homepage
- https://azure.microsoft.com/products/storage/blobs
Supports
- Azure Blob Storage product homepage
- https://www.netapp.com/storagegrid/
Supports
- NetApp StorageGRID product homepage
- https://cassandra.apache.org/
Supports
- Apache Cassandra product homepage
- https://www.scylladb.com/
Supports
- ScyllaDB product homepage
- https://longhorn.io/
Supports
- Longhorn product homepage
