Block Storage vs File Storage vs Object Storage

Last Updated: 2021-12-07

The are different levels of abstractions. From low to high:

  • Block storage:
    • the traditional storage type. Lowest level, no file systems.
    • data is arbitrarily organized, evenly sized.
    • mountable: can be attached or detached from virtual machines. (think of USB drives)
    • usually deployed in storage-area network (SAN) environments and must be tied to a functioning server.
    • can either be HDD or SSD.
    • high latency comparing to databases; but faster comparing to File storage due to the lack of file hierarchy. Good for storing rich media.
    • comparable to SAN
  • File storage:
    • data is organized as a hierarchy of files in folders
    • on top of a file system; easier to use and navigate
    • comparable to NAS
  • Object storage:
    • get and put any file you want via a REST API
    • high level web services provided by cloud providers (most notably AWS S3)
    • not mountable, a storage service, not a device

In the Cloud

Major cloud providers have solutions for different data storage usecases:

Amazon Google Cloud Azure
Object Storage S3 Google Cloud Storage Azure Blob Storage
File Storage EFS Google Cloud Filestore Azure Files
Block Storage EBS Persistent Disk Azure Disk Storage

Related: DAS vs NAS vs SAN

  • DAS: direct-attached storage.
  • NAS: network-attached storage. At file-level as opposed to block-level storage.
  • SAN: storage area network.

Key differences:

  • DAS vs NAS: DAS is simply an extension to an existing server and is not necessarily networked. NAS is networked, typically provides access to files using network file sharing protocols such as NFS, SMB, or AFP.
  • NAS vs SAN: NAS provides both storage and a file system. SAN only provides block-based storage. For the client OS:
    • NAS appears to be a file server
    • SAN appears to be a disk: visible in disk and volume management utilities along with local disks, and available to be formatted with a file system and mounted.