New B200 spot capacity is live in US East from $1.69 per GPU-hour. See availability
Documentation

Two disks. Knowing which is which saves the job.

Local NVMe is fast and disappears with the instance. A persistent volume is cheap, survives everything, and is the reason a spot reclaim costs you minutes instead of hours.

Last reviewed 15 September 2026 · something wrong or missing?

Two disks, two jobs#

 Local NVMe scratchPersistent volume
Mounted at/mnt/scratch/mnt/vol
SizeFixed by the node (2 TB on a 1× H100)10–4,000 GB, your choice
PriceIncluded$0.08 per GB-month
Survives a stop or a reclaimNoYes
Moves to another instanceNoYes, one at a time
Put hereDatasets being read at speed, shard files, temporary output, the model cacheCheckpoints, final weights, results, anything a resume depends on

Mount points#

inside the instance
$ df -h /mnt/vol /mnt/scratch
Filesystem      Size  Used Avail Mounted on
/dev/vdb        500G   12G  488G /mnt/vol        # persistent volume
/dev/nvme0n1    2 TB    0G  2 TB  /mnt/scratch    # wiped with the instance

# Point the tool caches at scratch, the outputs at the volume.
$ export HF_HOME=/mnt/scratch/hf
$ export TORCH_HOME=/mnt/scratch/torch
$ export OUTPUT_DIR=/mnt/vol/run-42

The volume is mounted before your entrypoint runs, so a container that writes to /mnt/vol on the first line works with no ordering tricks. If no volume is attached, /mnt/vol does not exist — check for it rather than assuming.

What survives what#

EventScratchVolumeInstance config
You stop the instanceLostKeptKept
Spot reclaimLostKeptKept
Auto-relaunch on new capacityEmpty againReattachedReused
You terminate the instanceLostKept, detachedGone
Balance reaches zeroLost with the stopKept and still billedKept
You delete the volumeGone, billing stops

Getting data in#

There are no egress or ingress fees, and instances have full outbound access at node bandwidth. Pull from wherever your data lives:

a few common sources
# From your machine
$ rsync -avP ./dataset/ root@<instance>:/mnt/scratch/dataset/

# From a model hub (cache on scratch, weights that matter on the volume)
$ HF_HOME=/mnt/scratch/hf huggingface-cli download meta-llama/Llama-3.1-8B

# From your own object storage
$ rclone copy s3:my-bucket/corpus /mnt/scratch/corpus --transfers 16

# From a private registry, as part of your own image
$ docker login ghcr.io && docker pull ghcr.io/acme/trainer:2026-09

Getting results out#

Same road, opposite direction — and still not metered. A useful habit on spot: push final artefacts off the platform as part of the job, so a finished run does not depend on a volume you might delete later.

Sizing a volume#

A rough rule for training: weights × 4 for a full-precision optimiser state, plus two or three checkpoints, plus room for the final export. Fine-tuning with LoRA needs a fraction of that — adapters are megabytes, not gigabytes.

JobVolume that fits comfortablyPer month
LoRA on a 7B model100 GB$8.00
Full fine-tune of a 7B model250 GB$20.00
Serving a 70B model from local weights500 GB$40.00
A team corpus plus several model versions2,000 GB$160.00

Volumes cannot be resized in place today. Create a larger one, copy across while both are attached to the same instance, then delete the old one — or keep the dataset outside the platform and pull it again.

What it costs#

$0.08 per GB-month, prorated by the minute, from creation to deletion — attached or not, running or not. Nothing else about storage is billed: no I/O charges, no snapshot fees, no transfer fees.

Storage is the only line that keeps running when nothing does.

A 1 TB volume left behind costs $80.00 a month. The console lists every volume with its size and monthly cost — delete the ones whose job finished.