Volumes service¶
Service description¶
Volumes service (block storage) is a core component of Rumble Cloud and provides the storage foundation for cloud applications and services. Volume service provides block storage for instances (virtual machines), and enables you to create, attach, detach, and manage persistent block storage volumes, enabling data to be stored independently of the lifecycle of any particular instance.
Volumes are often formatted with a file system and can be created with an virtual machine instance. Volumes can be based on an existing image, an existing volume snapshot, or blank volume.
- Volumes are owned by the users who create them within projects
- Volumes can be accessed to users within a project
- Owners can take action on owned volumes
- Owners can also transfer ownership between projects and users
Volumes service uses the OpenStack Cinder service.
Features¶
- Premium flash storage based on NVMe solid state drives for all volumes. Volume sizes can range from 1GiB-29800GiB.
- Persistent storage, meaning that the data on the volumes is retained even if the associated VM is deleted (this is useful for storing important data that needs to be preserved across VM lifecycles)
- Snapshots of volumes, capturing the state of the volume at a specific point in time (these snapshots can be used for backup purposes or to create new volumes with the same data)
- Clone existing volumes or snapshots for quickly deploying multiple instances with identical data
- Encryption, providing an additional layer of security for sensitive data stored on the volumes
- Multi-tenancy, allowing different projects or tenants to have their own isolated volumes and snapshots
- API and CLI access includin g a RESTful API and command line tools for managing volumes, snapshots, and backups, enabling automation and integration with other tools and systems
Key concepts¶
How it works¶
Block storage is a type of data storage typically used in storage-area network (SAN) environments where data is stored in fixed-size blocks, each with a unique address. In block storage, data is organized as an array of blocks, and each block can be individually accessed and managed. This makes block storage suitable for scenarios that require high performance and low latency, such as databases, virtual machine file systems, and other applications that need to perform frequent read/write operations. Block storage is commonly used in enterprise storage systems, cloud computing environments, and as the underlying storage for databases, virtual machines, and other applications that require fast and direct access to data.
- Create volumes of a specified size through the cloud console API, or CLI.
- Define volume types, which can specify different storage back-ends or quality-of-service characteristics. This enables you to choose the appropriate storage for their volumes based on performance, cost, or other requirements.
- Once a volume is created, it can be attached to an instance. This process involves Volumes service communicating with the Compute service to connect the volume to the instance. The volume appears as a block device on the instance, and the operating system can format and mount the device for use.
- Volumes can be detached from instances when they are no longer needed. This process involves Volumes service communicating with Compute service to safely disconnect the volume from the instance.
- Snapshotting enable you to create snapshots of volumes, capturing their state at a specific point in time. These snapshots can be used for backup purposes or to create new volumes with identical data.
- Volume cloning enables the creation of new volumes by cloning existing volumes or snapshots. This is useful for quickly deploying new instances with pre-configured data or for scaling out applications.
- Multi-tenancy, allowing different projects or tenants to have their own isolated volumes and snapshots.