Skip to content

Instantly share code, notes, and snippets.

@hd1801
Forked from CMCDragonkai/storage_tiers.md
Created January 8, 2024 16:48
Show Gist options
  • Save hd1801/e4a80abc06d8fe5b64ab5c6dc53ed8d1 to your computer and use it in GitHub Desktop.
Save hd1801/e4a80abc06d8fe5b64ab5c6dc53ed8d1 to your computer and use it in GitHub Desktop.
Storage Tiers

Storage Tiers

  1. Block Devices
  2. Filesystems
  3. Object Storage
  4. Application Domain

Block Devices

At the bottom we have block devices supplied by HDDs and SSDs. These use a protocol like SCSI or ATA or SAS or SATA.

They are presented as block devices to the operating system. Use lsblk to see all the connected block devices.

This is what operating systems "hosts" require (at least to boot).

Networked Variant:

  • iSCSI (AWS offers Storage Gateway, a cloud-managed iSCSI target)
  • ATA over Ethernet

Filesystems

Filesystems backed by some set of block devices. They present a POSIX filesystem interface that most Unix applications expect.

This is what the marketing term of "Block Storage" usually refers to.

This is what containers require.

Networked Variant:

  • NFS
  • Ceph
  • IPFS

Object Storage

These systems abstract filesystem semantics into a simpler key-value semantics. Every object has a key and a value. Amazon S3 is a typical example.

Almost all object storage systems are intended to be served over a network.

Application Domain

These present a more domain-specific stateful interface. But any application which maintains "memory" in some form will present some interface to storage.

Almost all application domain state are intended to be served over a network.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment