LinuxCommandLibrary

exo-compute-block-storage

Manage Exoscale block storage volumes

TLDR

Create a 20GB Block Storage Volume

$ exo compute block-storage create [volume_name] --size 20 [[-z|--zone]] [zone]
copy

List Block Storage Volumes
$ exo compute block-storage list
copy

Attach a Block Storage Volume to a Compute instance
$ exo compute block-storage attach [volume_name|id] [instance_name|id] [[-z|--zone]] [zone]
copy

Forcefully detach a Block Storage Volume (does not require confirmation)
$ exo compute block-storage detach [volume_name|id] [[-z|--zone]] [zone] [[-f|--force]]
copy

Create a snapshot of a Block Storage Volume
$ exo compute block-storage snapshot create [volume_name|id] --name [snapshot_name] [[-z|--zone]] [zone]
copy

Create a Block Storage Volume from a snapshot
$ exo compute block-storage create [volume_name] --snapshot [snapshot_name|id] [[-z|--zone]] [zone]
copy

Update an existing Block Storage Volume with a new name and a new volume size of 30GB
$ exo compute block-storage update [volume_name|id] --size 30 --name [new_name]
copy

SYNOPSIS

exo compute block-storage <COMMAND> [--debug] [--output FORMAT] [--verbose] [--zone ZONE] [-h | --help]

PARAMETERS

-h, --help
    Show context-sensitive help

--debug
    Enable debug output

--output string
    Output format: json|yaml|table (default table)

--timeout duration
    Request timeout (default 15m)

--trace
    Dump HTTP(S) requests and responses

--verbose
    Enable verbose output

--zone string
    Target zone name or ID (overrides config)

COMMAND
    Subcommand: attach|create|delete|detach|get|list|resize|snapshot-create

DESCRIPTION

The exo compute block-storage command is a key component of the Exoscale CLI, enabling users to manage persistent block storage volumes for compute instances in the Exoscale cloud.

Block storage provides high-performance, scalable disks that persist independently of instance lifecycles, perfect for databases, logs, or any data requiring durability and low-latency access. Operations include creating volumes with custom sizes (1-16,000 GB), attaching/detaching to instances by service name or ID, listing with filters by zone/instance/size, resizing online/offline, snapshotting for backups/clones, retrieving details, and deletion.

Supports zone-specific targeting (e.g., de-1, ch-dk-2), multiple output formats for automation (JSON/YAML/table), and integrates with Exoscale IAM for secure access. Requires API key setup via exo account login.

Volumes support encryption and are billed per GB-month. Snapshots are incremental and zone-transferable. Ideal for DevOps workflows, CI/CD, and production storage orchestration.

Always detach volumes before instance termination to avoid data loss.

CAVEATS

Volumes must be detached from instances before resizing or deleting. API rate limits apply. Encrypted volumes require key management.

SUBCOMMANDS OVERVIEW

create --name <name> --size <GB>
attach --instance-service-name <name>
detach --instance-service-name <name>
list [--instance-service-name <name>]
resize --size <new GB>
snapshot-create --name <name>

EXAMPLES

exo compute block-storage create --name myvol --size 50 --zone ch-dk-2
exo compute block-storage attach myvol --instance-service-name myvm
exo compute block-storage list --output json

HISTORY

Part of Exoscale CLI (exo) released in 2018 (v0.1.0). Block storage commands added early 2019 with API v2; evolved with features like snapshots (2020) and online resize (2022). Tracks Exoscale Compute API updates.

SEE ALSO

exo(1), losetup(8), fdisk(8), mount(8)

Copied to clipboard