Restore from a snapshot
CapyArk keeps daily and weekly ZFS snapshots of your data. Restore individual files, directories, or your entire dataset from any point in time.
What snapshots exist
CapyArk automatically creates:
- Daily snapshots — taken every day, retained per your plan (Starter: 30 days; Pro/Business: 30 days)
- Weekly snapshots — taken every week, retained per your plan (Pro/Business: 12 weeks)
- Manual snapshots — taken on demand from the portal (Pro: up to 5; Business: up to 45)
All snapshots are listed in the portal under Backups.
Option 1 — Browse and download from the portal (no CLI needed)
The easiest way to restore individual files.
- Go to Backups in the portal
- Find the snapshot you want and click ⋯ → Mount as read-only clone
- The snapshot is mounted at a temporary path on your storage node (shown in the portal)
- Connect via SFTP (see SFTP & SSH access) and browse to that path
- Copy the files you need back to your machine
- Return to the portal and click Unmount when done
Mounted clones count against your quota while active. Unmount when you’re finished.
Option 2 — Restore with rsync from a mounted clone
After mounting a snapshot clone in the portal (step 1–3 above), use rsync to pull back what you need:
# Pull a single directory from the snapshot clone
rsync -avz storage-baas_xxxxx:/snapshots/daily-2026-01-15/important-dir/ /local/restore/
# Pull everything from the snapshot clone
rsync -avz storage-baas_xxxxx:/snapshots/daily-2026-01-15/ /local/restore/
Replace /snapshots/daily-2026-01-15/ with the mount path shown in the portal.
Option 3 — ZFS rollback (replaces current data)
Destructive. This replaces your current dataset state with the snapshot. All data written after the snapshot is lost. Use this only when you want to fully rewind the dataset.
From the portal:
- Go to Backups
- Click ⋯ → Rollback to this snapshot next to the snapshot you want
- Confirm the prompt — the rollback is queued as a task and runs within 60 seconds
Or via SSH (if you have ZFS access):
ssh storage-baas_xxxxx \
zfs rollback tank/clients/baas_xxxxx@daily-2026-01-15
You can only roll back to the most recent snapshot directly. To roll back further, intermediate snapshots must be deleted first — use the portal to manage this.
Option 4 — ZFS send to restore at the source (for ZFS send/receive users)
If you back up using zfs send, you can restore by reversing the stream:
# Restore snapshot from CapyArk back to your local ZFS pool
ssh storage-baas_xxxxx \
zfs send tank/clients/baas_xxxxx/zfs_streams/mydata@backup-2026-01-15 \
| zfs receive -F tank/mydata-restored
This creates a new local dataset tank/mydata-restored with the exact state at that snapshot. Rename it once you’ve verified the restore.
Finding the right snapshot
Snapshots are named by type and date. In the portal they show:
| Name pattern | Type | Example |
|---|---|---|
daily-YYYY-MM-DD | Automatic daily | daily-2026-01-15 |
weekly-YYYY-MM-DD | Automatic weekly | weekly-2026-01-13 |
manual-* | Portal/user-triggered | manual-pre-migration |
You can also list snapshots over SSH:
ssh storage-baas_xxxxx zfs list -t snapshot -s creation tank/clients/baas_xxxxx
Testing your backups
A backup is only real after a tested restore. We recommend testing regularly:
- Pick a recent daily snapshot
- Mount it as a clone from the portal
- Verify you can access and open critical files
- Unmount the clone
Do this monthly, or before any major change to the system you’re backing up. The worst time to discover a restore problem is during a real incident.
Troubleshooting
I can’t find a snapshot for the date I need Check your plan’s retention policy: Starter keeps 30 daily snapshots (~1 month). If the date is older than your retention window, the snapshot has been cleaned up. Consider upgrading to a plan with longer retention or enabling weekly snapshots.
The mounted clone path doesn’t appear in SFTP Clone mount is a background task — wait 30 seconds and refresh. If it still doesn’t appear, check the Tasks tab in the portal for error details.
Rollback failed with “dataset is busy” Another process has an open file handle on the dataset. Unmount any mounted clones first, then retry.
I need to restore more data than my quota allows Contact support — we can temporarily raise your quota for a restore operation.