☁️ 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 ...
ormount -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)