Rapidly growing businesses frequently need to increase their server’s capacity to address the increasing needs of their applications. This can be due to growing databases, an increase in file storage needs, additional containers, and more. To increase storage capacity without upgrading to a larger virtual machine, builders will often choose to augment storage using a block storage solution.
Block storage can be thought of as individual hard drives added to a server. Cloud providers provide traditional block storage solutions over the network that are flexible and can be useful for almost any application.
DigitalOcean’s Volumes is a high-performance block storage service that allows users to easily increase the storage capacity of Droplet virtual machines independently of CPU and memory. It’s attached storage that’s separate from the Droplet-native storage, allowing users to increase storage capacity without paying for a larger Droplet.
Demanding workloads benefit from the low latency, high IOPS, and high throughput provided by Volumes. The benefits of Volumes can be leveraged for use cases of all kinds, including websites and web apps, distributed web applications, backups, log files, AI/ML, and more.
Many developers choose Volumes because they can be easily added to new or existing Droplets and can be detached and reattached to other Droplets at any time. Volumes provide low latency, high IOPS, and high throughput for demanding workloads. Use cases for Volumes include websites and web apps, distributed web applications, backups, log files, AI/ML, and more. Volumes have a 99.99% uptime service level agreement (SLA).
A DigitalOcean Volume can be added to a new file path (e.g.,/mnt/volume1) and used as storage just like any other directory in the Droplet. While a Volume can’t be used to increase the capacity of the root volume of the Droplet, up to seven Volumes can be attached to a single Droplet.
Volumes can be created during the Droplet creation process or independently at any time. A Volume can be increased in capacity at any time and can be expanded up to 16TB. Volumes can be moved between Droplets at any time, though a Volume can only be attached to one Droplet at a time.
A snapshot can be taken of a Volume for backup purposes or to use as a template for new Volumes. With a third-party tool like Snapshooter, Volumes snapshots can serve as an automated backup system. Note that Volume snapshots are separate from Droplet snapshots, and taking a snapshot or backup of a Droplet does not also take a snapshot or backup of any Volumes attached to the Droplet.
While not as fast as Droplet-native storage, Volumes provide high performance to meet the needs of many use cases for virtual machine storage. Droplet-native storage will always be faster than Volumes block storage because while Droplet-native storage is in the same physical chassis as the Droplet, Volumes block storage resides in a separate chassis. The maximum input-output operations per second (IOPS) for Volumes block storage varies from 7,500 to 15,000 depending on the Droplet and the use case, and the maximum throughput varies from 300-525 MB/s. These values were recently increased by 50%.
DigitalOcean started rolling out NVMe drives, the fastest available storage medium, for Volumes block storage in Q3 of 2020. Since Q4 of 2021, any newly-created Volume is currently placed on NVMe storage, with the exception of our BLR and TOR regions, which should have new Volumes with NVMe drives by the end of 2022. As the graphs below show, for one typical Volumes block storage system, the median latency for NVMe Volumes is less than 1.5 milliseconds (ms) for write operations and less than 0.5 ms for read operations. And p99 latency – the latency for 99% of requests – is below 15 ms for write operations and below 1 ms for read operations. Note that these numbers are just one NVMe storage system and are reported at the storage level. Depending on workloads and caching, these numbers can be higher or lower at the Droplet level.
Use cases for Volumes are as limitless as the capacity that they provide. Some common use cases are storing files and other assets, file sharing, web applications, AI and machine learning, and more.
Storing files and other assets
The most popular use case for Volumes is for the storage of files/assets for websites and web applications. Popular content management systems like WordPress can easily be set up to use Volumes for the storage of their content. A Volume is also a great location for any set of files that are growing, including backups, logs, images, videos, and more. Some databases may be able to be run on Volumes, though testing should be done to ensure that the latency is acceptable.
Customers also use Volumes as a way to share files across Droplets. For example, some customers store application installer files on a Volume and then move the Volume from Droplet to Droplet as a means to transfer and run the installer files on each Droplet. Along with Volume snapshots, a Volume can also be used as a template or “golden image” for creating new Volumes. For example, a customer might set up a Volume with a common set of files for a web application, take a snapshot of that Volume, and then create new Volumes from that snapshot. This allows you to have a base template from which to create new Volumes.
Note that Volumes can only be attached to one Droplet at a time. If you need to share files across multiple Droplets simultaneously, you may want to set up an NFS server with Volumes or use our Spaces object storage.
Distributed web applications
We are also seeing customers using Volumes for some distributed web applications like blockchain and NFTs. Volumes provide high performance (see above) that is adequate for many distributed web applications, though some use cases will require faster storage that can only be provided by Droplet-native storage.
Artificial intelligence and machine learning workflows
Volumes is also a good location for the storage of files for artificial intelligence and machine learning (AI/ML) workflows. Volumes can be used as a storage location for both input files for training the model and generated output files.
DigitalOcean also provides another storage offering, Spaces object storage. Object Storage is different from block storage in several ways. Instead of breaking files down into blocks to store on disk using a filesystem, object storage deals with whole objects stored over the network. They are unstructured because there is no specific schema or format they need to follow.
A user might choose Volumes over Spaces for either or both of the following reasons:
- The use case requires the higher performance offered by Volumes. Volumes can process roughly 10x the number of files per second relative to Spaces (assuming small files).
- The use case requires traditional file-based access to the data. While Volumes data can be accessed via the normal file path of the server (e.g. mnt/volume1/file_a), the use of Spaces requires interfacing with the S3 protocol that is typically accessed via software development kits (SDKs).
What does your provider have in place for backup and recovery? Can they ensure continuous operation and resiliency in case of emergencies? They should clearly articulate their backup plans and provide clearly defined SLAs. DigitalOcean provides a 99.99% uptime service level agreement (SLA) for both Droplets and Volumes. Volumes data is also triple replicated in three different data center racks to ensure durability.
Look for a provider that clearly explains the pricing model and offers predictable pricing. At DigitalOcean, Volumes block storage is currently priced at $0.10/GiB/month of provisioned storage. Charges accrue hourly as long as the Volume exists. You can provision exactly the storage capacity you need and increase it at any time.
DigitalOcean provides a full set of documentation, including a reference for the Volumes API, which allows you to manage your Volumes programmatically. We also have a number of community tutorials and answered questions about using Volumes in specific workflows.
DigitalOcean supports all types of applications, from basic websites to complex Software as a Service solutions. From Droplet virtual machines to App Platform, our Platform as a Service offering, and Managed Kubernetes, we provide the tools you need to build and grow your applications. To sign up for a DigitalOcean account, click here. Ready to try out Volumes? Get started today!