Manual · Chapter 1

Introduction

Go to the contents

AegisGrid backs up files and block devices (images, LVM volumes, partitions, whole disks) and restores them. Every backup goes into a deduplicating store as a run: the agent cuts the source into pieces (chunks) whose boundaries follow the content, and stores only the chunks the store does not have yet. Every run is complete on its own and can be restored by itself. The data is compressed with zstd or lz4, encrypted on the client if wanted and sent to a backup server (bkp_target) over TLS.

This manual is written for administrators: they set up and run backups, the backup server and restores.

Readers who know version 1 with FULL, DIFF and INC backups find a comparison and a checklist for the update in Chapter 27 (“Switching from FULL/DIFF/INC”).

All examples work as printed; the output shown comes from real test runs. Where an example only works on a real LVM system, under Windows or with a hypervisor, it says so.

1.1 What AegisGrid can do#

  • Deduplicated snapshots. Every backup is a complete point in time, but only what the store does not have yet is stored. There are no chains, no DIFF and no merging. Deduplication covers everything in the store, so also machines that share a store.
  • Content-defined chunks (FastCDC). If something is inserted near the start of a source, the boundaries after it do not move; the following chunks stay the same and are recognized.
  • A familiar view: the first run of a backup name is called Full, all later ones Incremental. This is only for orientation: every run can be restored on its own.
  • Free space is skipped. On ext2/3/4 and NTFS the agent reads only the used space. Zero areas are recorded as holes, not stored.
  • Consistent backups of running systems: LVM snapshots (Linux), VSS shadow copies (Windows) and freely configurable hooks.
  • Files and folders: instead of whole disks, single paths can be backed up too, with permissions, ACLs and exclusions; single files, whole folders, earlier versions or a ZIP archive come back, and a run can be viewed as a folder. A ransomware warning protects the older states (Chapter 9).
  • Network backup: the agent streams straight to bkp_target, fully TLS-encrypted (the server certificate is pinned), with sign-in by API keys that are bound to directories. Only what the store on the server is missing is sent.
  • Encryption on the client (AES-256-GCM or ChaCha20-Poly1305, per store): the server sees neither content nor keys.
  • Several destinations in one run (sinks): up to 8 stores, local and on servers; the source is read only once.
  • Parallel and fast: reader, chunker and several workers (hash and compression) work as a pipeline; SHA-256 uses SHA-NI/AVX2 where available; with --hash blake3 the CPU load of hashing drops markedly.
  • Protecting the data: retention per run, scrub (checking all data), repair from a second copy, partial restore of damaged backups, mirroring whole stores, also into S3 object storage, export of single runs as an archive (tape, USB) and WORM locks.
  • Signed updates: bkp_updater installs updates atomically, tests them first and rolls back by itself if something goes wrong.

1.2 The programs#

ProgramTaskPlatform
bkp_agentBacks up a block device, an image file or files and folders into one or more stores: local (--out), onto a server (--target) or through named sinksLinux, Windows
bkp_restoreRestores a run to a file or a block device: from a local store, straight from the server, from the sinks of a profile or from an archive; from file backups single files and folders, also as a ZIP or as a folder to look atLinux, Windows
bkp_targetBackup server: receives backups over TLS into its stores, API key ACL, optionally its own schedulerLinux
bkp_maintenanceRetention (prune, set-retention), deleting runs, scrub, repair, mirroring, export/import, store-info; creating API keys, certificates and keysLinux
bkp_monitorLive view of the progress of running agents and restores (ncurses)Linux
bkp_dumpShows a store, its runs and the manifest of a run (segments, chunks, holes)Linux, Windows
bkp_restore_legacyReads backups in the old FULL/DIFF/INC format of version 1 (list, restore, prune, delete)Linux, Windows
bkp_schedJob scheduler: starts jobs on a schedule, once or after other jobs; mail notification, HTTPS API for conf clients. On Windows as the service aegisgrid-sched, only backups with bkp_agent and Hyper-VLinux, Windows
bkp_consoleManagement console: shows and controls the job schedulers (bkp_sched) of one or more machines through their HTTPS API, with a windowWindows
bkp_target_consoleTarget console: manages and watches one or more backup servers (bkp_target) through the Target API, with a windowWindows
bkp_updaterChecks an HTTPS server for signed updates and installs themLinux, Windows
bkp_sitesrvSite server: keeps the own targets and the schedulers released for consoles of an account in step, hosted by AegisGrid, in your own network or at a partner (chapter “Site server”)Linux, Windows
bkp_licenseActivation of the installation with an activation code or by file, license status, renewal, freeing a seat (Chapter 23)Linux, Windows
bkp_setupInstaller: downloads the chosen components from the update server, installs and sets them up (text wizard on Linux, window on Windows, --silent)Linux, Windows
bkp_m365Backs up Microsoft 365 (mail, calendars, contacts, tasks, OneDrive, SharePoint) of an account or tenantLinux
bkp_m365_restoreLists, searches and exports M365 backups and writes them back into Microsoft 365Linux
bkp_hyperVBacks up a Hyper-V VM through a recovery checkpoint as one VM run, after the first backup only the changes (RCT)Windows
bkp_hyperV_restoreRestores a VM run of bkp_hyperV as a new VM or single disks as VHDX filesWindows

Every program has --help.

1.3 Basic terms#

TermMeaning
StoreDirectory <store>.cbs (name with --store, default default) that holds the backups: below the --out directory or on the server below <storage>/<directory>/. Deduplication covers everything in the store.
RunOne backup: backup name, point in time, sizes, retention and the reference to its data. A run only comes into being once all data is safely in the store, and it can be restored on its own.
NameFree name of the backup (--name), for example per machine or volume. All runs of a name form its timeline.
ChunkA piece of the source (256 KiB on average) whose boundaries FastCDC sets by the content. Every chunk is recognized by its content hash (the ID) and stored only once.
Full / IncrementalShown in lists and mails: the first run of a name in a generation is called Full, every later one Incremental. Both are equally complete.
GenerationA new, independent store <store>.g<YYYYMMDD>.cbs next to the old one that shares no data with it (physically independent base). Starts with --type full or automatically after --store-generation.
SinkA destination of a run: a store, local or on a server. A run can write into several sinks at once; each one gets its own run.
ArchiveA single run as one file (.cba, bkp_maintenance export), readable without a store; for tape, a USB disk or auditors.
SnapshotA frozen point in time of a volume (LVM) or a shadow copy (VSS), so that the image matches one point in time.
API keySecret key with which an agent signs in to bkp_target. In the ACL a key is bound to one or more directories.
ManifestSigned list of the updates available on the update server.

1.4 Overview of the flows#

Data flow

  Source (volume/file)                                     Destination
  ┌──────────────┐  snapshot   ┌───────────┐  local  ─────────►  directory (--out)
  │ /dev/vg0/data├────────────►│ bkp_agent │
  └──────────────┘  (LVM/VSS)  └─────┬─────┘  TLS    ┌────────────┐   ┌─────────────┐
                                     └───────────────►│ bkp_target ├──►│ /srv/backups│
                                                      └─────▲──────┘   └──────┬──────┘
                                                            │ TLS             │ local
                                                     ┌──────┴──────┐   ┌──────▼──────┐
  target volume  ◄─────────────────────────────────  │ bkp_restore │◄──┤ store (.cbs)│
                                                     └─────────────┘   └─────────────┘