Storage

Uncloud provides two types of storage: Block Storage (volumes) for attaching disks to Droplets and Object Storage (buckets) for S3-compatible file storage.

Block Storage (Volumes)

Volumes are high-performance block devices that attach to Droplets. Each volume is backed by a Kubernetes PersistentVolumeClaim using Rook/Ceph RBD or Longhorn.

Volume Lifecycle

StatusDescription
creatingVolume is being provisioned
availableReady to attach to a Droplet
attachedMounted to a Droplet
deletingBeing removed

Features

  • Attach/Detach — Mount a volume to any Droplet in the same project
  • Resize — Increase volume size (no shrinking)
  • Snapshots — Create point-in-time copies
  • Multiple sizes — From 1 GB to multiple TB

Example

# Create a 50GB volume
POST /api/v1/volumes
{
  "name": "data-volume",
  "size_gb": 50,
  "region": "nyc1"
}

Object Storage (Buckets)

S3-compatible object storage for files, backups, media, and static assets. Powered by Rook/Ceph RGW or MinIO.

Features

  • S3-Compatible API — Works with any S3 client or SDK
  • Buckets — Create isolated containers for objects
  • Pre-signed URLs — Generate temporary access links for uploads/downloads
  • File Browser — Browse and manage objects from the dashboard

Example

# Create a bucket
POST /api/v1/storage/buckets
{ "name": "my-assets" }

# Upload an object
POST /api/v1/storage/buckets/my-assets/objects
# (multipart form upload)

# Generate pre-signed URL
POST /api/v1/storage/buckets/my-assets/objects/presign
{ "key": "images/photo.jpg", "expires_in": 3600 }

Storage Classes

Uncloud uses Kubernetes StorageClasses to provision volumes. The default class is configured during the admin setup:
Storage ClassBackendUse Case
ceph-rbdRook/CephHigh-performance block storage
longhornLonghornSimple, replicated storage
local-pathLocalDevelopment/testing only

Kubernetes Mapping

Storage ConceptKubernetes Resource
VolumePersistentVolumeClaim
Volume snapshotVolumeSnapshot
BucketS3 API (Ceph RGW/MinIO)
Storage classStorageClass