Skip to main content

Overview

Xloud Block Storage delivers persistent block volumes to compute instances through a distributed service architecture. The service separates its API layer, scheduling logic, and backend drivers — enabling flexible backend configurations, horizontal scaling, and multi-backend deployments where different hardware tiers serve distinct workload categories.
Administrator Access Required — This operation requires the admin role. Contact your Xloud administrator if you do not have sufficient permissions.

Architecture Diagram


Principal Components

ComponentDefault PortRole
Block Storage API8776RESTful endpoint for all volume operations; sits behind the load balancer on the VIP
Scheduler—Selects the appropriate backend for each volume create/migrate request using filter and weight algorithms
Volume Service—Runs on each storage node; communicates with the backend driver to create, attach, snapshot, and delete volumes
Backup Service—Manages backup creation, restoration, and deletion to the configured backup target
Database3306Stores volume, snapshot, backup, and attachment metadata (MariaDB/Galera cluster)

Request Flow

Volume Create

Volume Attach


Backend Driver Model

The backend driver is the component that communicates with the physical or virtual storage system. Xloud Block Storage supports multiple drivers that can be active simultaneously:
Backend DriverTypeHAProduction Ready
RBD (Distributed Storage)DistributedYesYes — recommended for production
LVMLocal blockNoDevelopment / single-node only
NFSNetwork filesystemDepends on NFS serverLegacy integration
Production deployments should use the distributed storage (RBD) driver. LVM is acceptable for single-node development environments and should not be used where data durability is required.

Multi-Backend Deployment

Xloud Block Storage supports multiple concurrent backends. The scheduler filters backends using configurable filters and selects the optimal backend using a weighting algorithm:
FilterPurpose
AvailabilityZoneFilterOnly selects backends in the requested availability zone
CapacityFilterEliminates backends without sufficient free capacity
CapabilitiesFilterMatches backend capabilities to volume type extra specs
DriverFilterCustom filter expressions in backend configuration
The CapacityWeigher (default) prioritizes backends with more free capacity to spread load across the cluster.

High Availability

In a high-availability deployment:
  • The Block Storage API runs on all control plane nodes, load-balanced via the VIP
  • The Scheduler runs on all control plane nodes (active-active)
  • The Volume Service runs on each storage node (active-active per backend)
  • The Database uses Galera multi-master replication across control plane nodes
  • The Backup Service runs on one or more dedicated nodes
XDeploy automatically configures high-availability service placement based on your cluster topology. Manual service placement is not required for standard deployments.

Next Steps

Storage Backends

Configure distributed storage, LVM, and NFS backend drivers

Volume Types & QoS

Create volume types and enforce I/O quality-of-service limits

Storage Tiers

Configure NVMe, SSD, and HDD tier mappings for multi-tier deployments

Admin Guide

Return to the Block Storage administration overview