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