Block storage is a data storage method where data is stored in fixed-size blocks, typically 512 bytes or 4 KB in size. These blocks are addressed by their position on disk and are managed by the operating system or storage controller. Block storage is widely used in filesystems, databases, and virtualized environments, providing low-level access to storage hardware.
Types of Block Storage Technologies
Mechanical Hard Disk Drives (HDDs)
Mechanical HDDs use magnetic platters and a moving read/write head to store and retrieve data. The disks spin at fixed speeds, typically 5400, 7200, or 15,000 RPM, and the read/write head must physically move to the correct track to access data.
Mechanical HDDs have high latency, usually 2-10 ms, due to the mechanical nature of seek time and rotational latency. Their sequential read speeds range from 100-200 MB/s, but random I/O performance is significantly lower, often limiting their effectiveness in high IOPS workloads. They are typically used for cold storage, backup systems, and large sequential scans, where throughput is more important than random access speed.
Solid-State Drives (SSDs)
SSDs use flash memory (NAND or 3D XPoint) to store data electronically, eliminating the mechanical components of HDDs. This results in much lower latency and higher throughput.
SATA SSDs typically exhibit latencies between 30-100 µs, while NVMe SSDs achieve as low as 2-10 µs, leveraging PCIe’s direct access to the CPU. SATA SSDs are limited to 600 MB/s due to the SATA III interface, whereas NVMe SSDs can reach 7 GB/s (PCIe Gen 4) and 15+ GB/s (PCIe Gen 5). The key advantage of SSDs lies in their parallelism, handling multiple I/O operations simultaneously, which makes them ideal for high-performance computing, databases, real-time analytics, and virtualization.
Persistent Memory (PMEM)
Persistent Memory (PMEM), including Intel Optane, offers a hybrid approach that combines memory-like speeds with persistent storage. Unlike SSDs, which are block addressable, PMEM is byte addressable, allowing fine-grained access and low-latency operations.
With latency in the sub-microsecond range, PMEM is significantly faster than SSDs, providing throughput that approaches high-speed DRAM. Ideal use cases include in-memory databases, high-frequency trading systems, and low-latency caching layers, where speed and persistence are critical.
Communication Protocols
Communication protocols define how storage devices connect to computer systems and exchange data. These protocols establish physical connections, electrical signaling, command sets, and data transfer methods. In block storage, communication protocols facilitate efficient data flow between the storage hardware and the host system. Common protocols for block storage include SATA and NVMe, each offering distinct performance and feature sets.
SATA (Serial Advanced Technology Attachment)
SATA is a communication protocol and interface standard for connecting storage devices to computer systems. It uses the AHCI (Advanced Host Controller Interface) protocol, which was originally designed for spinning disks. While SATA III supports 6 Gbps (~600 MB/s) and offers latencies between 30-100 µs, its queue depth is limited to 32 commands per queue, which restricts parallel processing and can lead to performance bottlenecks in high-demand environments.
SATA primarily supports block storage, abstracting physical storage into addressable blocks used by filesystems and databases. Although SATA is rarely used for object storage, it can serve as the underlying block device for software-defined object storage systems, which add a layer of abstraction on top of block storage.
NVMe (Non-Volatile Memory Express)
NVMe is a modern communication protocol designed specifically for SSDs, utilizing the PCIe (Peripheral Component Interconnect Express) bus for direct CPU access. NVMe supports 64,000 commands per queue, with multiple queues allowing massive parallelism and significant performance gains over SATA.
The bandwidth capabilities of NVMe vary by PCIe generation, from 3.5 GB/s (PCIe Gen 3) to 15+ GB/s (PCIe Gen 5), with latencies as low as 2-10 µs. This protocol efficiency is achieved through direct memory access, efficient queue management, and an architecture that avoids the legacy limitations of AHCI.
Performance Metrics: Block Size and Read Efficiency
The performance of SSDs and HDDs varies significantly with block size and read patterns:
| Read Size | HDD Sequential Read | HDD Random Read | SATA SSD Read | NVMe SSD Read |
|---|---|---|---|---|
| 4 KB | ~0.5-1 MB/s | ~0.1-0.2 MB/s | ~50 MB/s | ~200 MB/s |
| 16 KB | ~2-4 MB/s | ~0.5 MB/s | ~200 MB/s | ~800 MB/s |
| 64 KB | ~10-20 MB/s | ~1-2 MB/s | ~400 MB/s | ~1.5 GB/s |
| 256 KB | ~50-80 MB/s | ~5-10 MB/s | ~500 MB/s | ~3 GB/s |
| 1 MB | ~100-150 MB/s | ~10-20 MB/s | ~550 MB/s | ~7 GB/s |