Proxmox Backup

repository·master·Indexed 42 days ago

https://github.com/proxmox/proxmox-backup

A high-performance backup solution written in Rust, featuring optimized chunking and deduplication. Includes the proxmox-backup-client for creating encrypted backups of files (.pxar) and block device images (.img), managing snapshots, and restoring data via a recovery shell or FUSE mounts.

Tokens
142.7K
Snippets
463
Records
744
Agent score
49%

What's inside Proxmox Backup

  1. Overview of ZFS on Linux for Proxmox Backup Server

    master

    ZFS is a combined file system and logical volume manager used to provide enterprise-grade storage features on budget hardware. It is highly recommended for Proxmox Backup Server environments due to its data protection and performance capabilities.

    Key Features:

    • Data Integrity: Protection against data corruption, self-healing, and continuous integrity checking.
    • Storage Efficiency: Data compression at the file system level, snapshots, and copy-on-write clones.
    • Redundancy: Supports various RAID levels including RAID0, RAID1, RAID10, RAIDZ-1, RAIDZ-2, and RAIDZ-3.
    • Performance: Support for SSD caching and asynchronous network replication.
    • Security: Built-in encryption.

    Note: ZFS modules are included in the packages; manual compilation is not required.

  2. Overview of proxmox-backup-client

    master

    The proxmox-backup-client is a command-line tool that acts as a client for Proxmox Backup Server. It allows users to connect to backup servers to perform two primary categories of tasks:

    1. Management Commands: Issuing commands to manage the server and its resources.
    2. Backup and Restore Operations: Creating new backups of data and restoring existing backups from the server.
  3. Key features of Proxmox Backup Server

    master

    Proxmox Backup Server provides several enterprise-grade features for data protection:

    • Deduplication & Incremental Backups: Minimizes storage usage and network impact by only storing and transferring unique data deltas.
    • Data Integrity: Uses SHA-256 checksums to ensure backup accuracy.
    • Compression: Utilizes ultra-fast Zstandard compression.
    • Encryption: Supports client-side encryption using AES-256 GCM (Authenticated Encryption). All client-server communication is secured via TLS.
    • Remote Sync: Efficiently synchronizes data to remote sites by transferring only new data deltas.
    • Tape Backup: Provides support for long-term archiving to tape and tape library management.
    • Ransomware Protection: Achieved through fine-grained access control, integrity verification, and off-site synchronization/tape backups.
  4. Use proxmox-file-restore for file and directory restoration

    master
    The proxmox-file-restore command-line tool allows you to restore specific files and directories from Proxmox Backup Server archives. Unlike the standard proxmox-backup-client, this tool provides support for both container/host backups and Virtual Machine (VM) backups, making it more versatile for granular file recovery across different backup types.
  5. Configure Proxmox Backup Server components

    master

    Proxmox Backup Server uses several specific configuration files to manage different aspects of the service. The following files are used for configuration:

    • acl.cfg: Access Control Lists and roles.
    • datastore.cfg: Datastore definitions and options.
    • domains.cfg: Domain configurations.
    • media-pool.cfg: Media pool settings.
    • notifications.cfg: Notification settings.
    • notifications-priv.cfg: Private notification settings.
    • tape.cfg: Tape drive configurations.
    • tape-job.cfg: Tape job definitions.
    • user.cfg: User management and options.
    • remote.cfg: Remote endpoint configurations.
    • sync.cfg: Synchronization job settings.
    • verification.cfg: Data verification settings.
  6. Identify the Proxmox Backup Server software components

    master

    The Proxmox Backup Server ecosystem consists of the following core components:

    • Server-daemon: Provides a RESTful API, manages asynchronous tasks, collects usage statistics, and handles scheduling.
    • JavaScript management web interface: A web-based UI for managing the server.
    • proxmox-backup-manager: A CLI tool used for managing the server itself.
    • proxmox-backup-client: A CLI tool used by clients (in any Linux amd64 environment) to interact with the server and perform backups/restores.
  7. What is a Datastore?

    master

    A Datastore is a location where backups are stored. In the current implementation, a datastore is a directory within a standard Unix filesystem (such as ext4, xfs, or zfs).

    Key Characteristics

    • Identification: Datastores are identified by a unique ID (or name).
    • Configuration: Datastore configuration is stored in /etc/proxmox-backup/datastore.cfg.
    • Filesystem Requirements: The underlying filesystem must support at least 65,538 subdirectories per directory. This is required to accommodate the 2^16 pre-created chunk namespace directories plus the . and .. entries. Filesystems like ext3 or ext4 with dir_nlink disabled may not be supported.
    • Retention & Maintenance: Each datastore can have its own retention settings (hourly, daily, weekly, monthly, yearly), pruning schedules, and garbage collection (GC) schedules.
  8. Overview of the Proxmox Backup Server GUI Layout

    master

    The web interface is organized into three main functional areas:

    1. Header: Located at the top. It displays version information and provides access to documentation, running task monitoring, language settings, display configurations, and the logout button.
    2. Sidebar: Located on the left. This is the primary navigation menu containing administration options and management categories.
    3. Configuration Panel: Located in the center. This area displays the specific control interfaces and settings corresponding to the item selected in the Sidebar.
  9. Configure authentication realms in Proxmox Backup Server

    master

    Authentication realms are configured using a specific header format: <realm-type>: <name>. Each realm is followed by its specific configuration options.

    Common realm types include openid and ldap.

    Note for LDAP: The LDAP bind password is not stored directly in the realm configuration file; it is stored in ldap_passwords.json.

    openid: master
      client-id pbs
      comment
      issuer-url http://192.168.0.10:8080/realms/master
      username-claim username
    
    ldap: ldap-server
      base-dn OU=People,DC=ldap-server,DC=example,DC=com
      mode ldaps
      server1 192.168.0.10
      sync-attributes email=mail
      sync-defaults-options enable-new=0,remove-vanished=acl;entry
      user-attr uid
      user-classes inetorgperson,posixaccount,person,user
  10. How Media Pools and Media Sets work

    master

    Proxmox Backup Server uses a hierarchical model for tape management:

    Media Pool

    A logical container for tapes. Backup jobs target a specific media pool, ensuring they only use tapes from that pool.

    Media Set

    A group of continuously written tapes that form a single restorable unit.

    • Restoration: You must have every tape in a media set to restore its contents.
    • Deduplication: Data is fully deduplicated inside a media set. This means data is randomly distributed across all tapes in the set; restoring a single VM might require reading all tapes in that set.

    Media Set Allocation Policies

    When creating a pool, you define how new media sets are allocated:

    • continue: Appends data to the current media set. Highly space-efficient due to deduplication but results in very large sets that are slow to restore and more error-prone (one bad tape fails the whole set).
    • always: Creates a new media set for every backup job. Produces smaller, more manageable, and faster-to-restore sets, but is less space-efficient.
    • Calendar Event: Uses systemd-style calendar events (e.g., weekly) to trigger a new media set at specific intervals, balancing efficiency and manageability.