Side by Side
| Aspect | Block | File | Object |
|---|---|---|---|
| What you get | A raw disk | A folder tree on another machine | Buckets of whole files |
| How you reach it | Attached to one server | SFTP, SMB, NFS | HTTP API (S3) |
| Edit part of a file | Yes | Yes | No: you replace the whole object |
| Shared between servers | Usually no (one server at a time) | Yes | Yes, from anywhere |
| Good for | Operating systems, databases, apps | Backups over SSH, shared files, home folders | Backups, media, app uploads, static files |
| Examples | A VPS's own disk | A storage box | S3 and S3-compatible buckets |
Block Storage
Block storage presents numbered blocks and nothing else. The server's operating system puts a file system on it (ext4, XFS, ZFS) and from then on it behaves like a local disk, with the lowest latency of the three. That is why operating systems and databases run on it. The usual limit is that one block device belongs to one server at a time.
File Storage
File storage is a file system on another machine, shared over the network. You get folders, file names and permissions, and you can open a file and change one part of it. Protocols differ: SMB and NFS are common on local networks, while SFTP and rsync over SSH are the usual way to reach file storage across the internet. A storage box is file storage reached over SSH.
Object Storage
Object storage drops the folder tree. Each object is a whole file plus metadata, stored under a key in a bucket, and you upload, download, list and delete objects through an HTTP API. Names can contain slashes, so they look like folders, but there is no real directory structure and no way to rewrite a few bytes in the middle: changing an object means uploading it again.
In return it scales to any size, can be reached from anywhere with a key, and works with every tool that speaks the S3 API, from the AWS CLI to rclone, restic and application SDKs. Using object storage shows the settings.
How to Choose
- Running an operating system, a database or anything that edits files in place: block storage.
- Backups with rsync or Borg, or a folder shared over SSH: file storage, such as a storage box.
- Backups with restic or Kopia, files your application uploads, media and archives: object storage.
The two remote options are compared in more detail, including how restores differ, in storage box vs object storage.
Amazon S3 and AWS are trademarks of their respective owners. Virteche is not affiliated with or endorsed by them. Details about their products come from their public documentation as of the date at the top of this guide.