Block Storage
Overview
Block Storage provides persistent, high-performance storage volumes that exist independently of instances. Volumes can be created, attached to instances, detached, resized, and reattached to different instances -- all without data loss.
Key characteristics:
- Persistent -- Volumes survive instance reboots, stops, and even instance deletion. Data persists until the volume is explicitly deleted.
- Portable -- Detach a volume from one instance and attach it to another in the same location.
- Performance tiers -- Choose from multiple storage classes (HDD, SSD, NVMe, SAS) with configurable I/O limits per plan.
- Resizable -- Upgrade or change volume plans on the fly.
- Hourly billing -- Charged per hour based on the selected plan.
Admin Setup
Enabling Block Storage
- Create volume plans -- Navigate to Block Storage > Plans and create plans defining size, storage class, I/O limits, and pricing
- Create plan groups -- Navigate to Block Storage > Plan Groups and organize plans into groups
- Enable on hypervisor groups -- On each hypervisor group settings page, enable Block Storage and link a plan group
Creating Volume Plans
Each plan defines:
| Field | Description |
|---|---|
| Name | Descriptive name (e.g., "SSD 100GB High Performance") |
| Size | Storage capacity in GB |
| Storage Class | HDD, SSD, NVMe, or SAS |
| Datastore Type | Ceph or NFS |
| Credit Value | Monthly cost in credits |
| Read Bytes/sec | Maximum read bandwidth (0 = unlimited) |
| Write Bytes/sec | Maximum write bandwidth (0 = unlimited) |
| Read IOPS/sec | Maximum read operations per second (0 = unlimited) |
| Write IOPS/sec | Maximum write operations per second (0 = unlimited) |
| Enabled | Whether the plan is available for selection |
Use I/O limits to create distinct performance tiers. For example, offer a "Standard SSD" plan with moderate IOPS and a "High Performance NVMe" plan with higher limits, both at 100GB but different pricing.
Plan Groups
Plan groups organize plans for assignment to locations. A plan group can contain multiple plans of varying sizes and performance tiers. Each hypervisor group (location) links to one plan group, determining which volumes are available in that region.
User Limits
The maximum number of volumes per user is configured on the user profile:
- Navigate to Users > [User] > Edit
- Set Max Volumes (default: 5, set to 0 for unlimited)
Managing Volumes (Admin)
Admins can view all volumes at Block Storage > Volumes. The admin page provides:
- Search across volume name, user, and instance
- Volume detail page showing full configuration, I/O limits, storage path, and billing info
- Create volumes on behalf of users
- Detach and delete volumes
User Guide
Creating a Volume
- Navigate to Storage > Block Storage in the sidebar
- Click Create Volume
- Follow the guided creation flow:
Step 1: Select Region Choose the location where the volume will be created. Only locations with block storage enabled are shown. The volume can only be attached to instances in the same region.
Step 2: Select Plan Choose a volume plan. Each plan card shows:
- Plan name and storage class (HDD/SSD/NVMe/SAS)
- Storage size
- Read and write speeds (if limited)
- Read and write IOPS (if limited)
- Monthly and hourly cost
Step 3: Name Enter a descriptive name for the volume (e.g., "postgres-data" or "media-storage").
A summary sidebar shows your selections and pricing as you configure. Click Create Volume to provision.
Volume creation typically completes within a few seconds. The volume status changes from Creating to Available once ready.
Volume Statuses
| Status | Description |
|---|---|
| Available | Ready to attach to an instance |
| Attached | Currently attached to an instance |
| Creating | Provisioning in progress |
| Resizing | Resize operation in progress |
| Detaching | Being detached from an instance |
| Error | An operation failed |
Attaching a Volume to an Instance
A volume must be in Available status and in the same region as the target instance.
From the Volumes page:
- Click Attach on the volume
- Select an instance from the dropdown (only instances in the same region are listed)
- Click Attach
From the Instance manage page:
- Navigate to the instance's manage page
- Go to the Volumes tab
- Select an available volume from the dropdown
- Click Attach
Once attached, the volume appears as a block device in the instance (e.g., /dev/xvdb). The device name is displayed in the volumes table.
After attaching a new volume, you may need to format and mount it within the instance's operating system before use. The volume is presented as a raw block device.
Detaching a Volume
Click Detach on the volume from either the volumes page or the instance's volumes tab.
Ensure no processes are actively writing to the volume before detaching. Unmount the filesystem inside the instance first to prevent data corruption.
Resizing a Volume
- Click Resize on the volume
- Select a new plan from the available options
- Click Resize
If the new plan is smaller than the current volume size, a warning is displayed:
"The selected plan (X GB) is smaller than the current size (Y GB). This may result in data loss."
You must confirm with Resize Anyway to proceed with a downsize.
Resizing a volume to a larger plan does not automatically extend the filesystem inside the instance. After resizing, use the operating system's tools to extend the partition and filesystem (e.g., resize2fs for ext4).
Deleting a Volume
A volume must be in Available status (not attached) to be deleted.
- Click Delete on the volume
- Confirm the action
Deleting a volume permanently destroys all data on it. This action cannot be undone.
Instance Integration
The instance manage page includes a Volumes tab showing:
| Column | Description |
|---|---|
| Name | Volume name |
| Plan | Volume plan name |
| Size | Capacity in GB |
| Device | Block device name (e.g., xvdb) |
| Status | Current volume status |
| Actions | Detach button |
Each instance supports up to 23 attached volumes (devices xvdb through xvdw).
Billing
How Billing Works
- Volumes are billed hourly through the Cloud Service billing system
- Billing begins when the volume is created and continues until it is deleted
- The hourly rate is the plan's credit value divided by hours per month
- Billing applies regardless of whether the volume is attached to an instance
Cost Display
Volume creation shows both monthly and hourly costs for each plan, converted to your account's currency.
Usage Reports
Volume charges appear in the Cloud Service > Usage Report under a dedicated Block Storage section, showing per-volume hours and charges for the billing period.
Troubleshooting
Volume stuck in "Creating"
If the volume doesn't become available within a few minutes:
- Check the tasks page for deployment errors
- The storage backend may be temporarily unavailable -- retry by deleting and recreating
- Contact your administrator if the issue persists
Cannot attach volume to instance
- Verify the volume is in Available status
- Ensure the volume and instance are in the same region (hypervisor group)
- Check that the instance has fewer than 23 volumes attached
Volume not visible inside the instance
After attaching, the volume appears as a raw block device. Use lsblk or fdisk -l inside the instance to find it. The device name shown in the panel (e.g., xvdb) corresponds to /dev/xvdb inside the instance.
Cannot delete an attached volume
Detach the volume from its instance first, then delete it. Only volumes in Available status can be deleted.
Performance is lower than expected
Verify the plan's I/O limits on the volume detail page. If limits show "Unlimited" but performance is still poor, the bottleneck may be the instance's disk I/O or network throughput rather than the volume itself.