What is Block Storage?
I know you blocked your calendars to check back here and read our weekly blog on storage formats, right? Well, just in case you didn’t, be sure to check out last week’s introductory piece that covers all the bases of file storage. This week’s blog is about block storage, a slightly more nuanced format than file and object but no less attractive.
Part 2. What is Block Storage?
Block storage is a storage format that treats each volume as a separate hard drive. Its configuration is the responsibility of the storage admin. That is why it is called “block”: it organizes and structures the data as blocks with a fixed size. Each block is assigned with metadata serving as its unique address. What is interesting about block storage is that it isn’t limited to one environment: you can store several blocks in one environment and the rest in another.
Block storage is operated and managed via unique software, separated from storage media. This program controls the way blocks are allocated and organized on disk space. The retrieving option is also a part of its functionality, as this software uses unique identifiers to locate the required blocks and sort them into files however the user needs. The most traditional way to operate and control such management programs is by using a server operating system to format block devices with a file system. Users can access block storage volumes through protocols such as NVMe-oF, NVMe over TCP, Fiber Channel over Ethernet (FCoE), or iSCSI. Moreover, directly attached storage, drives, and server RAID are also block storage devices.
Pros & Cons of Block Storage
Today block storage is quite a popular solution for many environments. This is not surprising, considering some of its advantages. Naturally, it has setbacks as well.
- High performance: Access to block storage using high-performance protocols is a perfect fit for high-performance mission-critical apps. Practically, it guarantees high I/O performance with low latency as the cherry on the cake. Its most popular applied use is a high-performance alternative to file storage, used predominantly in SAN environments.
- Reliability: Block storage generally has a low failure rate since blocks of data are stored in self-contained units. An organization can restore data from backup media quickly in case of failure.
- Incremental Modifications: One of the most valuable things about block storage in practical terms is that it is easy to modify. Within a block storage environment, files can be altered without the necessity to remove existing data, as would have happened in the case of a files storage system. Accordingly, blocks can be subjected to any operations, including replacing, deleting, or inserting them. In other words, if you want to change a block, there’s no need to make a new one. Just create another version.
- Server-Bound: The block storage system is usually bound to the server, making it impossible to access it from other servers simultaneously. You can put some software that solves it on top, of course. Unfortunately, it does not remove inconveniences as it is additional pressure on the system overall, affecting performance.
- Limited Metadata: Unlike file or object storage, block storage volumes have almost no metadata. It isn’t hard to imagine how poorly this may reflect on operations where the use of metadata is critical, such as search and retrieval. In a block storage environment, an application has to go through many blocks to succeed in the search. However, specific file systems such as ZFS or Btrfs can provide metadata capabilities to increase data integrity.
- Hard to Afford: Block storage is indeed performative and reliable, but it needs SANs, which are expensive. Such a storage array requires some more considerable financial expenses, let alone professional and regular maintenance. Even a large enterprise may find that supporting and maintaining block storage isn’t that easy to afford.
Block Storage Use Cases
Fast and performative block storage finds much appreciation. Here are some possible use cases:
- Database Storage: Speed, performance, and reliability. These are the reasons that make block storage superb in use for databases and as good support for enterprise apps. Blocks of data are also simple to modify, which makes this such a good match for frequently updated files.
- Server Storage: Block storage systems distribute data across multiple volumes. A block-based storage volume is simple to create and format. It is perfect for running as backend storage for a virtualized system. You can create multiple VMs by attaching a bare-metal server to that block. For example, many enterprises often use block storage for deploying VMFS volumes across the whole enterprise.
- Email Servers: Organizations often choose highly performative and reliable block storage technology as a standard option to store emails.
And with that, the foundational understanding of file and block storage formats has been laid. We hope you have found revisiting these storage types as refreshing as we have. With one final blog in the series, we will discuss the newest of the three (and our personal favorite 😏) object storage next week.