]> git.proxmox.com Git - proxmox-backup.git/blob - docs/introduction.rst
introduction: history: minor rewording and fixup
[proxmox-backup.git] / docs / introduction.rst
1 Introduction
2 ============
3
4 What is Proxmox Backup Server
5 -----------------------------
6
7 Proxmox Backup Server is an enterprise-class, client-server backup software
8 package that backs up :term:`virtual machine`\ s, :term:`container`\ s, and
9 physical hosts. It is specially optimized for the `Proxmox Virtual Environment`_
10 platform and allows you to back up your data securely, even between remote
11 sites, providing easy management with a web-based user interface.
12
13 Proxmox Backup Server supports deduplication, compression, and authenticated
14 encryption (AE_). Using :term:`Rust` as the implementation language guarantees high
15 performance, low resource usage, and a safe, high-quality codebase.
16
17 It features strong client-side encryption. Thus, it's possible to
18 backup data to targets that are not fully trusted.
19
20
21 Architecture
22 ------------
23
24 Proxmox Backup Server uses a `client-server model`_. The server stores the
25 backup data and provides an API to create and manage datastores. With the
26 API, it's also possible to manage disks and other server-side resources.
27
28 The backup client uses this API to access the backed up data. With the command
29 line tool ``proxmox-backup-client`` you can create backups and restore data.
30 For QEMU_ with `Proxmox Virtual Environment`_ we deliver an integrated client.
31
32 A single backup is allowed to contain several archives. For example, when you
33 backup a :term:`virtual machine`, each disk is stored as a separate archive
34 inside that backup. The VM configuration itself is stored as an extra file.
35 This way, it's easy to access and restore only important parts of the backup,
36 without the need to scan the whole backup.
37
38
39 Main Features
40 -------------
41
42 :Support for Proxmox VE: The `Proxmox Virtual Environment`_ is fully
43 supported and you can easily backup :term:`virtual machine`\ s and
44 :term:`container`\ s.
45
46 :Performance: The whole software stack is written in :term:`Rust`,
47 in order to provide high speed and memory efficiency.
48
49 :Deduplication: Periodic backups produce large amounts of duplicate
50 data. The deduplication layer avoids redundancy and minimizes the storage
51 space used.
52
53 :Incremental backups: Changes between backups are typically low. Reading and
54 sending only the delta reduces the storage and network impact of backups.
55
56 :Data Integrity: The built-in `SHA-256`_ checksum algorithm ensures accuracy and
57 consistency in your backups.
58
59 :Remote Sync: It is possible to efficiently synchronize data to remote
60 sites. Only deltas containing new data are transferred.
61
62 :Compression: The ultra-fast Zstandard_ compression is able to compress
63 several gigabytes of data per second.
64
65 :Encryption: Backups can be encrypted on the client-side, using AES-256 in
66 Galois/Counter Mode (GCM_) mode. This authenticated encryption (AE_) mode
67 provides very high performance on modern hardware.
68
69 :Web interface: Manage the Proxmox Backup Server with the integrated, web-based
70 user interface.
71
72 :Open Source: No secrets. Proxmox Backup Server is free and open-source
73 software. The source code is licensed under AGPL, v3.
74
75 :Support: Enterprise support will be available from `Proxmox`_ once the beta
76 phase is over.
77
78
79 Reasons for Data Backup?
80 ------------------------
81
82 The main purpose of a backup is to protect against data loss. Data loss can be
83 caused by both faulty hardware and human error.
84
85 A common mistake is to accidentally delete a file or folder which is still
86 required. Virtualization can even amplify this problem, as deleting a whole
87 virtual machine can be as easy as pressing a single button.
88
89 For administrators, backups can serve as a useful toolkit for temporarily
90 storing data. For example, it is common practice to perform full backups before
91 installing major software updates. If something goes wrong, you can easily
92 restore the previous state.
93
94 Another reason for backups are legal requirements. Some data, especially
95 business records, must be kept in a safe place for several years by law, so
96 that they can be accessed if required.
97
98 In general, data loss is very costly as it can severely damage your business.
99 Therefore, ensure that you perform regular backups and run restore tests.
100
101
102 Software Stack
103 --------------
104
105 Proxmox Backup Server consists of multiple components:
106
107 * A server-daemon providing, among other things, a RESTful API, super-fast
108 asynchronous tasks, lightweight usage statistic collection, scheduling
109 events, strict separation of privileged and unprivileged execution
110 environments
111 * A JavaScript management web interface
112 * A management CLI tool for the server (`proxmox-backup-manager`)
113 * A client CLI tool (`proxmox-backup-client`) to access the server easily from
114 any `Linux amd64` environment
115
116 Aside from the web interface, everything is written in the Rust programming
117 language.
118
119 "The Rust programming language helps you write faster, more reliable software.
120 High-level ergonomics and low-level control are often at odds in programming
121 language design; Rust challenges that conflict. Through balancing powerful
122 technical capacity and a great developer experience, Rust gives you the option
123 to control low-level details (such as memory usage) without all the hassle
124 traditionally associated with such control."
125
126 -- `The Rust Programming Language <https://doc.rust-lang.org/book/ch00-00-introduction.html>`_
127
128 .. todo:: further explain the software stack
129
130
131 Getting Help
132 ------------
133
134 Community Support Forum
135 ~~~~~~~~~~~~~~~~~~~~~~~
136
137 We always encourage our users to discuss and share their knowledge using the
138 `Proxmox Community Forum`_. The forum is moderated by the Proxmox support team.
139 The large user base is spread out all over the world. Needless to say that such
140 a large forum is a great place to get information.
141
142 Mailing Lists
143 ~~~~~~~~~~~~~
144
145 Proxmox Backup Server is fully open-source and contributions are welcome! Here
146 is the primary communication channel for developers:
147
148 :Mailing list for developers: `PBS Development List`_
149
150 Bug Tracker
151 ~~~~~~~~~~~
152
153 Proxmox runs a public bug tracker at `<https://bugzilla.proxmox.com>`_. If an
154 issue appears, file your report there. An issue can be a bug as well as a
155 request for a new feature or enhancement. The bug tracker helps to keep track
156 of the issue and will send a notification once it has been solved.
157
158 License
159 -------
160
161 Copyright (C) 2019-2020 Proxmox Server Solutions GmbH
162
163 This software is written by Proxmox Server Solutions GmbH <support@proxmox.com>
164
165 Proxmox Backup Server is free and open source software: you can use it,
166 redistribute it, and/or modify it under the terms of the GNU Affero General
167 Public License as published by the Free Software Foundation, either version 3
168 of the License, or (at your option) any later version.
169
170 This program is distributed in the hope that it will be useful, but
171 ``WITHOUT ANY WARRANTY``; without even the implied warranty of
172 ``MERCHANTABILITY`` or ``FITNESS FOR A PARTICULAR PURPOSE``. See the GNU
173 Affero General Public License for more details.
174
175 You should have received a copy of the GNU Affero General Public License
176 along with this program. If not, see AGPL3_.
177
178
179 History
180 -------
181
182 Backup is, and always has been, a central aspect of IT administration.
183 The need to recover from data loss is fundamental and only increases with
184 virtualization.
185
186 For this reason, we've been shipping a backup tool with Proxmox VE, from the
187 beginning. This tool is called ``vzdump`` and is able to make
188 consistent snapshots of running LXC containers and KVM virtual
189 machines.
190
191 However, ``vzdump`` only allows for full backups. While this is fine
192 for small backups, it becomes a burden for users with large VMs. Both
193 backup duration and storage usage are too high for this case, especially
194 for users who want to keep many backups of the same VMs. To solve these
195 problems, we needed to offer deduplication and incremental backups.
196
197 Back in October 2018, development started. We investigated
198 several technologies and frameworks and finally decided to use
199 :term:`Rust` as the implementation language, in order to provide high speed and
200 memory efficiency. The 2018-edition of Rust seemed promising for our
201 requirements.
202
203 In July 2020, we released the first beta version of Proxmox Backup
204 Server, followed by the first stable version in November 2020. With support for
205 incremental, fully deduplicated backups, Proxmox Backup significantly reduces
206 network load and saves valuable storage space.