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