Skip to content
Cloudj

GPU how-to

GPU instance backup before the machine availability date ends

Plan a GPU instance backup around the machine's available-until date: what gets removed, the host-offline case, where to copy data and an rsync script to run.

Updated · 4 min read

Every GPU machine on Cloudj shows an "available until" date. When that date arrives, the instance and its disk are removed, along with anything you left on it. Add the fact that each machine is an independent host with no hardware SLA, and the conclusion is simple: a GPU instance backup is your job, and it should be running long before the date gets close. This guide explains what exactly is at risk, where to copy data, and gives a script you can schedule.

The general principles of backups, such as the 3-2-1 rule and testing restores, are covered in the VPS backup strategy guide. Here we apply them to GPU instances.

Two ways an instance can end

The availability date. Each listing shows "available until" with a date, and a related max duration in days. You see it before you deploy. On that date the instance and its disk are removed, so plan your work and your final copy to finish before it.

The host goes offline. Every listing is an independent machine, and the console says it directly: "Machines are independent hosts with no hardware SLA. Keep backups of important data." If a host goes offline, billing pauses while it is offline, but the instance is not moved to another machine. Whether and when your data becomes reachable again depends on that host. Your backup is what lets you continue elsewhere.

The datacenter vs independent GPU hosts article explains what the Datacenter badge does and does not change here. In short: it describes where the host is; it is not an SLA.

What to back up

Not everything on the disk is worth copying. Sort it:

ItemBack up?Notes
Training checkpoints, LoRA adapters, final weightsYes, regularlyThe output you paid GPU time for
Logs, metrics, evaluation resultsYesSmall and hard to recreate
Your code and configsYes, but via gitPush to a repository rather than copying files
Generated outputs (images, audio, video, embeddings)YesDownload in batches
Datasets you uploadedOnly if no other copy existsUsually you already have the original
Base model weights from a public sourceNoDownload again on a new instance
Python environment, pip cache, container layersNoRebuild from a requirements file or a custom image

The less you need to copy, the faster your backup runs, and the lower your bandwidth charges, which are billed per GB downloaded and uploaded at the machine's listed price.

Where to copy it

Choose a target you control that outlives any single GPU:

  • A Cloudj VPS. Always on, fixed address, its own disk. A good place to pull checkpoints into and to serve them to the next GPU instance. Put it in or near the country where your GPUs usually run.
  • Your own storage. An office server, a NAS, or object storage you already use.
  • Your workstation, for small projects, as long as it is on when the backup runs.

Pulling from the target side is usually simpler than pushing from the GPU, because the target holds the schedule and the credentials.

A GPU instance backup script

Run this on your VPS or other target. It pulls the important folders from the GPU instance, keeps a dated log and fails loudly if something goes wrong. Fill in the host and port from the instance's Connection tab.

#!/usr/bin/env bash
set -euo pipefail
HOST="<host>"
PORT="<port>"
DEST="/backup/gpu-run"
SSH="ssh -p ${PORT} -o ConnectTimeout=15"

mkdir -p "$DEST"
for dir in checkpoints adapters outputs logs; do
  rsync -az --partial -e "$SSH" "root@${HOST}:/workspace/${dir}/" "${DEST}/${dir}/"
done
echo "$(date -Is) backup ok" >> "${DEST}/backup.log"

Schedule it with cron, for example every hour:

0 * * * * /usr/local/bin/gpu-backup.sh >> /var/log/gpu-backup.log 2>&1

Match the interval to how much work you could accept losing. For a multi-day training run, the AI training GPU USA checklist covers checkpoint cadence in more detail.

Verify, then trust

A backup you have never restored is a hope, not a backup. At least once per project:

  1. Compare sizes or checksums between source and copy (sha256sum on both sides for the key files).
  2. Load a backed-up checkpoint on a different machine and run a quick evaluation.
  3. Check that the backup log shows recent successful runs.

Before the date: a final checklist

A few days before "available until":

  1. Run the backup script by hand and confirm it succeeds.
  2. Copy anything else you need, such as notes in the home directory or local configuration.
  3. If the work continues, deploy the next instance now, while both are running, and copy data across. The guide to moving models and data between GPU regions covers instance-to-instance copies.
  4. Destroy the old instance once you are sure. Destroy deletes it permanently and stops charges; the deposit held at deploy returns afterwards.

Put the date in your calendar on the day you deploy. It is easy to forget during a long run.

FAQ

Can I extend a machine past its "available until" date?

Plan as if you cannot. The instance and its disk are removed on that date, so copy your data off and deploy a new instance if work continues.

What happens to my data if the host goes offline?

Billing pauses while it is offline, and the instance does not move. Your off-machine backup is what lets you continue on another machine.

Does stopping the instance protect my data?

Stopping keeps the disk until the machine's date, but it does not protect against the host going offline, and the disk is still removed on the date.

Do I need to back up base model weights?

Usually not. Download them again from their official source on the new instance.

Protect your next run

Pick your backup target, schedule the script on the day you deploy, and check each listing's available-until date on the GPU deploy page. Live prices for every model are on GPU cloud.

Deploy a server or order proxies

Pick a location in the console, see the live price, and pay from your balance.