HA protects against dead nodes, but not against human error. This episode covers your data safety net: instance snapshots with lxc snapshot, storage pool snapshots, RBD snapshots in Ceph, then backups with lxc export/import plus restic and Proxmox Backup Server (PBS) integrations inside a VM.

In episode 9 your cloud proved resilient against dead nodes. But HA doesn't protect against human error: deleted files, failed updates, or broken configurations. In episode 10 we build a data safety net — snapshots for fast recovery, and backups for recovery from larger disasters.
An analogy: a snapshot is an instant photo of a room — quick to take, quick to restore, but it's in the same building. A backup is an archive elsewhere — slower, but it survives even if the building burns down. A responsible cloud needs both.
A snapshot captures an instance's state (disk + config) at a point in time:
lxc snapshot c1 snap1lxc info c1
lxc list c1To return an instance to the state when the snapshot was taken:
lxc restore c1 snap1lxc delete c1/snap1Note
Restore overwrites the instance's current state with the snapshot's contents. Since the instance volume lives on Ceph, the snapshot and restore also happen at the RBD layer — LXD is just the interface. For VMs, make sure the instance is stopped before restoring if you want a deterministic result.
A good practice: automatic snapshots with snapshots.schedule on an instance or profile:
lxc config set c1 snapshots.schedule "0 2 * * *"
lxc config set c1 snapshots.expiry 7dThe instance is now snapshotted every day at 02:00, and snapshots older than 7 days are cleaned up automatically.
LXD also supports snapshots at the storage volume and pool level — useful before big operations:
lxc storage volume snapshot remote c1 pre-updateBehind the scenes, an LXD volume snapshot on the Ceph pool is an RBD snapshot. You can view and manage them directly from the Ceph side:
rbd snap ls lxc/c1The LXD + Ceph combination means snapshots are created efficiently at the block layer, without copying the whole dataset (copy-on-write) — fast and space-efficient. This is the power of snapshots on distributed storage.
Snapshots live in the same cluster. To protect against losing the entire cluster, export instances to a portable file:
lxc export c1 /backup/c1-backup.tar.gzThis file contains the config, disk, and (optionally) snapshots. To back up along with all snapshots:
lxc export c1 /backup/c1-full.tar.gz --instance-only=falseTo restore an instance from a backup file:
lxc import /backup/c1-backup.tar.gzlxc import /backup/c1-backup.tar.gz --name c1-restoredTip
Store export files outside the cluster — object storage, NFS, or a separate machine. Files stored on the cluster's own disks will be lost along with the cluster. lxc export is your gateway to off-site backups.
For application backups (files, database dumps), run a backup agent inside the instance. restic is a popular choice: deduplicating, encrypted, and supporting many repositories:
lxc exec c1 -- apt install -y resticlxc exec c1 -- restic -r s3:https://... init
lxc exec c1 -- restic -r s3:https://... backup /var/wwwrestic backs up from within, at the application level — complementary to LXD snapshots that capture the entire instance.
For efficient block-level backups (dedup, incremental forever), you can run Proxmox Backup Server as a VM inside MicroCloud itself, then back up other instances to PBS:
lxc launch ubuntu:24.04 pbs --vm --profile default --profile bigOn the client side, other instances (or hosts) can back up with proxmox-backup-client. This "cloud inside a cloud" combination is popular for homelabs: MicroCloud data is backed up to PBS, which also runs on MicroCloud — but ideally PBS still lives on a separate machine/network for a real disaster recovery scenario.
Consider these layers:
snapshots.schedule): fast recovery from small mistakes, 7-day retention.lxc export to off-cluster storage: instance recovery on a new cluster.--instance-only=false: snapshots aren't included — check the flag as needed.snapshots.expiry.Key takeaways:
lxc snapshot gives fast recovery; schedule it with snapshots.schedule and bound it with snapshots.expiry.lxc export/import moves instances to a portable file; store it outside the cluster.In the next episode, we'll cover scaling: adding nodes & disks — adding new members with microcloud join, automatic Ceph rebalancing, adding OSDs with microceph disk add, and expanding storage pools. Your cloud is starting to grow!