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

# Storage and persistence

> Choose what survives instance lifecycle changes and understand exactly what continues billing.

Every instance has an ephemeral root disk. Use a persistent volume for anything
you cannot recreate: checkpoints, model weights, datasets, and outputs.

## Choose the storage lifecycle

| Storage | Survives stop | Survives terminate | Billing |
| - | - | - | - |
| Root disk | No | No | Included in the instance's running price |
| Persistent volume | Yes | Yes | From volume creation until explicit deletion, even while detached |

Files outside the persistent mount path live on the root disk and disappear when
the instance stops or terminates.

## Create storage with the instance

This is the recommended path because placement considers GPU stock and storage
support together:

```bash theme={"dark"}
aireserve gpu instances quote \
  --accelerator H100_80GB \
  --persistent-gb 500 \
  --mount-path /workspace
```

The quote includes:

* `instanceUsdPerHour`: GPU plus root disk;
* `persistentStorageUsdPerHour`: the volume rate;
* `totalRunningUsdPerHour`: everything billed while running;
* `storageOnlyUsdPerHour`: what continues after stop or termination.

Launch from the quote:

```bash theme={"dark"}
aireserve gpu instances launch --quote-id <quote-id> --wait
```

The volume is created before the instance in the same accepted transaction. A
retry with the same idempotency key cannot create a second volume.

## Reuse an existing volume

```bash theme={"dark"}
aireserve gpu instances quote \
  --accelerator H100_80GB \
  --volume-id <volume-id>
```

An existing volume pins placement to its provider account and location. If you
also pass `--region`, that region must include the volume's location. AI Reserve
returns `no_capacity` with `reason: volume_location` when no eligible GPU can
mount it within the request.

A volume supports one attached instance at a time. To move it elsewhere,
terminate the current instance and wait for termination to complete before
launching the replacement. Stopping alone does not currently make it attachable
to another instance.

## Create a standalone volume

Create storage before the GPU when you need to stage data:

```bash theme={"dark"}
aireserve gpu volumes create \
  --name weights \
  --size-gb 500 \
  --region europe \
  --accelerator H100_80GB \
  --storage-billing-acknowledged \
  --wait
```

The normalized request chooses a broad region rather than a provider data
center. `--accelerator` is a placement hint: AI Reserve places the volume in a
storage-capable location with current stock for that accelerator, so a later
launch of that accelerator can mount it. If no location in the region both sells
persistent storage and has that accelerator in stock, the request is refused with
`409 no_capacity` (`reason: no_persistent_storage`) listing the regions where it
would work, and no volume is created — a volume nothing you asked for could
mount would only bill. Omit the hint to place storage on the first
storage-capable location in the region regardless of GPU stock. The hint is not
a capacity reservation or guarantee. Storage billing begins when the volume is
created.

> [!NOTE]
>
> Volume list and get responses still include legacy data-center fields for compatibility. New integrations should use
> `region` and should not persist or make decisions from those provider-shaped fields.

## Inspect and delete volumes

```bash theme={"dark"}
aireserve gpu volumes list
aireserve gpu volumes get <volume-id>
```

The response includes normalized region, size, status, attachment, and hourly
storage rate.

Terminate the instance before deleting its attached volume:

```bash theme={"dark"}
aireserve gpu instances terminate <instance-id> --yes --wait
aireserve gpu volumes delete <volume-id> --yes --wait
```

> [!WARNING]
>
> Deleting a volume is irreversible. Terminating an instance never deletes its volume, so storage charges continue until
> the separate volume deletion succeeds.

## Grow a volume

Volumes can grow but cannot shrink. The current grow flow remains on the legacy
quote path: request a volume quote for the volume's existing data center, then
pass that quote ID to `gpu volumes grow`.

```bash theme={"dark"}
aireserve gpu quote \
  --datacenter <legacy-data-center-id> \
  --volume-size-gb 750

aireserve gpu volumes grow <volume-id> \
  --size-gb 750 \
  --quote-id <quote-id> \
  --wait
```

This provider-shaped grow quote is a transitional compatibility surface. Do not
use it as a pattern for new instance placement.

The REST counterparts live under `/v1/gpu/volumes`. Use the generated
[API Reference](/api-reference) for exact create, inspect, grow, and delete
schemas.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.