> ## Documentation Index
> Fetch the complete documentation index at: https://docs.compute-desk.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Storage

> Attach persistent or ephemeral storage to GPU instances

## Overview

The Compute Clear API supports provisioning storage volumes alongside GPU instances. Storage is configured in the `storage:` section of the YAML spec.

## Three dimensions of storage

Every storage volume is defined by three properties:

### 1. Type

The underlying storage technology:

| Type         | Description                                                                                          |
| ------------ | ---------------------------------------------------------------------------------------------------- |
| `block_disk` | Block storage attached to a single VM. Like an SSD/HDD connected to one machine.                     |
| `filesystem` | Shared filesystem mountable by multiple VMs simultaneously. Ideal for training data and checkpoints. |

### 2. Class

The performance tier. Maps to vendor-specific storage products:

| Class         | Description                                                                                                                                            |
| ------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `standard`    | Default. General-purpose network SSD. Replicated for durability. Typical: 10,000-30,000 IOPS.                                                          |
| `performance` | High-IOPS SSD optimized for latency-sensitive workloads. Typical: 50,000-100,000+ IOPS.                                                                |
| `economy`     | Cost-optimized storage for large datasets where throughput matters more than latency. May use non-replicated SSD or HDD.                               |
| `premium`     | Highest-performance distributed filesystems (e.g., parallel file systems). Optimized for large-scale ML training with many concurrent readers/writers. |

<Note>
  Not all vendors support all classes. Use `GET /available_storage` to check what's available per vendor and region, including pricing.
</Note>

### 3. Persistent

Controls whether the storage survives VM deletion:

| Value             | Behavior                                                                                                                                       |
| ----------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- |
| `false` (default) | **Ephemeral** — storage is bundled with the VM and deleted when the VM is destroyed.                                                           |
| `true`            | **Persistent** — storage gets its own `resource_id` and independent lifecycle. It survives VM deletion and can be reattached to new VMs later. |

## YAML spec examples

### VM with ephemeral block storage

```yaml theme={null}
compute:
  gpu_type: H100
  gpu_count: 1
storage:
  - type: block_disk
    class: standard
    size: 500GB
```

### VM with persistent shared filesystem

```yaml theme={null}
compute:
  gpu_type: H100
  gpu_count: 8
storage:
  - type: filesystem
    class: standard
    size: 2TB
    persistent: true
```

### Multiple volumes

```yaml theme={null}
compute:
  gpu_type: H100
  gpu_count: 1
storage:
  - type: filesystem
    class: premium
    size: 5TB
    persistent: true
  - type: block_disk
    class: standard
    size: 200GB
```

## Storage discovery

Check available storage options and pricing before writing your spec:

```bash theme={null}
curl https://supply-api.compute-desk.com/available_storage \
  -H "Authorization: Bearer $TOKEN"
```

This returns available types, classes, size limits, and per-GB pricing across all vendors and regions.

## How storage affects offers

When you include `storage:` in your spec, the API automatically:

1. **Filters vendors** — only vendors supporting your requested storage type and class are included
2. **Includes pricing** — offer responses show a cost breakdown (compute + storage + total)
3. **Handles ordering** — some vendors require storage to be created before VMs; the API handles this transparently
