Three ways to store bytes
Storage systems expose data through one of three abstractions, and picking the right one shapes performance and cost.
Block storage
Block storage offers raw fixed size blocks addressed by number, like a virtual disk. The application or file system on top decides how to organize them. It gives low latency and high throughput, which suits databases and boot volumes. The tradeoff is that it carries no metadata and is hard to share across many machines.
File storage
File storage layers a hierarchy of directories and files with names and permissions over blocks, then shares it over a network protocol. It is familiar and easy to browse, but the single namespace can become a bottleneck at very large scale.
Object storage
Object storage keeps each item as an object with a unique key plus rich metadata in a flat namespace. It scales to billions of objects and is reached over HTTP. The cost is higher latency and no in place edits, since objects are usually replaced whole.
Key idea
Block storage gives raw fast volumes, file storage gives a shared hierarchy, and object storage gives flat massively scalable key addressed blobs, so match the abstraction to the access pattern.