DEV Community

mohideen sahib
mohideen sahib

Posted on

Why S3, NFS, and EFS Are Not Block Storage

☁️ Myth vs Fact: Why S3, NFS, and EFS Are Not Block Storage

💭 The common doubt:

“Everything — NFS, EFS, S3, or even EBS — ultimately saves data on some disk, right?
Then why call some object storage, some file storage, and others block storage?”

Let’s bust this myth once and for all 👇


🧱 1️⃣ Block Storage — The Raw Disk

Block storage is the lowest layer.
You talk directly to the storage device — just like /dev/sda on Linux.

  • No concept of files yet.
  • You format it yourself (mkfs.ext4, mkfs.xfs) to create a filesystem.
  • Best suited for databases, VMs, and OS disks.

🧩 Examples:
AWS EBS, iSCSI volumes, SAN disks.

📦 Analogy:
You’re given a bare hard disk.
You decide how to format, partition, and use it.


📂 2️⃣ File Storage — The Shared Filesystem Layer

File storage sits on top of block storage and exposes a filesystem interface.
Here you work with files and folders, not raw blocks.

  • The server side (like NFS/EFS) already formatted and manages the filesystem.
  • You just mount it on your client using mount -t nfs ... or mount -t efs ....
  • Great for shared environments where multiple servers need file access.

🧩 Examples:
NFS, AWS EFS, SMB, CIFS.

📦 Analogy:
Instead of giving you a disk, someone gives you a shared folder that’s already organized and formatted.


🪣 3️⃣ Object Storage — The API Level

This is the highest level of abstraction.
You don’t see files, folders, or disks — you deal with objects (data + metadata).

  • Accessed via HTTP APIs (PUT, GET).
  • No filesystem.
  • Great for scalable, distributed systems.

🧩 Examples:
AWS S3, MinIO, Azure Blob, GCS.

📦 Analogy:
You hand over a file to a receptionist (the API) who stores it in a massive warehouse.
You never see where it goes — you just ask for it later using its unique ID.


🔍 The Real Difference Is How You Access Data

Type Access Interface What You Manage Example
Block OS Disk (Raw Blocks) Sectors / Blocks EBS, iSCSI
File Filesystem (Paths) Files & Folders NFS, EFS
Object API Calls (HTTP) Objects & Metadata S3, MinIO

⚡ Myth vs Fact

Myth Fact
“All storage is block storage since it ends up on disks.” Physically true, but the user interface and protocol define the storage type.
“EFS and S3 are both network storages, so they’re similar.” Nope! EFS is file-level (POSIX filesystem), S3 is object-level (HTTP-based).
“NFS uses block storage, so it’s block-level.” It uses block storage underneath, but it exposes a file interface, not blocks.
“For file storage, we always format the disk.” Only for local disks. For NFS/EFS, the server has already done that formatting.

🧠 TL;DR

Storage type is not about where data lives —
it’s about how you access and manage* it.*

  • 🧱 Block → raw disk control
  • 📂 File (NFS/EFS) → filesystem view
  • 🪣 Object (S3) → API-based storage

Everything ends up on physical disks,
but what you touch — blocks, files, or objects — defines its nature.


💬 Bonus Thought

Databases prefer block storage because they want total control of how bytes hit the disk.
But backups, images, and logs shine in object storage — scalable, simple, and metadata-rich.


Top comments (0)