]>
Commit | Line | Data |
---|---|---|
7e688b71 DM |
1 | Introduction |
2 | ============ | |
3 | ||
d9f365d7 | 4 | What is Proxmox Backup Server? |
d2c7ef09 | 5 | ----------------------------- |
7e688b71 | 6 | |
65418a07 DW |
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. | |
6a1cb691 | 12 | |
d9f365d7 | 13 | It supports deduplication, compression, and authenticated |
65418a07 DW |
14 | encryption (AE_). Using :term:`Rust` as the implementation language guarantees high |
15 | performance, low resource usage, and a safe, high-quality codebase. | |
6a1cb691 | 16 | |
d9f365d7 DW |
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. | |
6a1cb691 | 21 | |
0c56b0e6 | 22 | |
d2a8d597 DM |
23 | Architecture |
24 | ------------ | |
25 | ||
d2c7ef09 | 26 | Proxmox Backup Server uses a `client-server model`_. The server stores the |
092378ba | 27 | backup data and provides an API to create and manage datastores. With the |
32dc4c46 | 28 | API, it's also possible to manage disks and other server-side resources. |
d2a8d597 | 29 | |
d2c7ef09 TL |
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. | |
d2a8d597 | 33 | |
d2c7ef09 TL |
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. | |
32dc4c46 | 37 | This way, it's easy to access and restore only important parts of the backup, |
d2c7ef09 | 38 | without the need to scan the whole backup. |
7ee2198e | 39 | |
0c56b0e6 | 40 | |
4f3db187 | 41 | Main Features |
6253aa50 | 42 | ------------- |
3147e56a | 43 | |
d2c7ef09 TL |
44 | :Support for Proxmox VE: The `Proxmox Virtual Environment`_ is fully |
45 | supported and you can easily backup :term:`virtual machine`\ s and | |
3147e56a DM |
46 | :term:`container`\ s. |
47 | ||
d2c7ef09 | 48 | :Performance: The whole software stack is written in :term:`Rust`, |
32dc4c46 | 49 | in order to provide high speed and memory efficiency. |
3147e56a | 50 | |
d2c7ef09 | 51 | :Deduplication: Periodic backups produce large amounts of duplicate |
32dc4c46 DW |
52 | data. The deduplication layer avoids redundancy and minimizes the storage |
53 | space used. | |
d2c7ef09 TL |
54 | |
55 | :Incremental backups: Changes between backups are typically low. Reading and | |
32dc4c46 | 56 | sending only the delta reduces the storage and network impact of backups. |
3147e56a | 57 | |
32dc4c46 DW |
58 | :Data Integrity: The built-in `SHA-256`_ checksum algorithm ensures accuracy and |
59 | consistency in your backups. | |
efd3e76b | 60 | |
4f3db187 AL |
61 | :Remote Sync: It is possible to efficiently synchronize data to remote |
62 | sites. Only deltas containing new data are transferred. | |
3147e56a | 63 | |
32dc4c46 | 64 | :Compression: The ultra-fast Zstandard_ compression is able to compress |
efd3e76b | 65 | several gigabytes of data per second. |
3147e56a | 66 | |
32dc4c46 | 67 | :Encryption: Backups can be encrypted on the client-side, using AES-256 in |
65418a07 | 68 | Galois/Counter Mode (GCM_) mode. This authenticated encryption (AE_) mode |
0c136efe | 69 | provides very high performance on modern hardware. |
2501c57c | 70 | |
32dc4c46 | 71 | :Web interface: Manage the Proxmox Backup Server with the integrated, web-based |
0c136efe | 72 | user interface. |
d2c7ef09 TL |
73 | |
74 | :Open Source: No secrets. Proxmox Backup Server is free and open-source | |
0c136efe | 75 | software. The source code is licensed under AGPL, v3. |
59b9c7ef | 76 | |
0c136efe TL |
77 | :Support: Enterprise support will be available from `Proxmox`_ once the beta |
78 | phase is over. | |
59b9c7ef | 79 | |
2501c57c | 80 | |
d2c7ef09 TL |
81 | Reasons for Data Backup? |
82 | ------------------------ | |
6253aa50 | 83 | |
d2c7ef09 | 84 | The main purpose of a backup is to protect against data loss. Data loss can be |
32dc4c46 | 85 | caused by both faulty hardware and human error. |
6253aa50 | 86 | |
d2c7ef09 | 87 | A common mistake is to accidentally delete a file or folder which is still |
32dc4c46 DW |
88 | required. Virtualization can even amplify this problem, as deleting a whole |
89 | virtual machine can be as easy as pressing a single button. | |
6253aa50 | 90 | |
d2c7ef09 TL |
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. | |
6253aa50 | 95 | |
d2c7ef09 TL |
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. | |
6253aa50 | 99 | |
d2c7ef09 TL |
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. | |
6253aa50 DM |
102 | |
103 | ||
2501c57c DM |
104 | Software Stack |
105 | -------------- | |
106 | ||
7ba2c1c3 TL |
107 | Proxmox Backup Server consists of multiple components: |
108 | ||
3bbb70b3 | 109 | * A server-daemon providing, among other things, a RESTful API, super-fast |
7ba2c1c3 TL |
110 | asynchronous tasks, lightweight usage statistic collection, scheduling |
111 | events, strict separation of privileged and unprivileged execution | |
32dc4c46 DW |
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 | |
7ba2c1c3 | 117 | |
32dc4c46 | 118 | Aside from the web interface, everything is written in the Rust programming |
7ba2c1c3 TL |
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 | |
2501c57c | 131 | |
e1dfcddc | 132 | |
56b814e3 TL |
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: | |
4cda7603 | 149 | |
56b814e3 TL |
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 | ||
2501c57c DM |
160 | License |
161 | ------- | |
162 | ||
8a258095 | 163 | Copyright (C) 2019-2020 Proxmox Server Solutions GmbH |
fdd471d5 DM |
164 | |
165 | This software is written by Proxmox Server Solutions GmbH <support@proxmox.com> | |
166 | ||
d2c7ef09 TL |
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. | |
fdd471d5 DM |
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 | ||
6253aa50 | 180 | |
7e688b71 DM |
181 | History |
182 | ------- | |
183 | ||
6cd84960 DW |
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 | |
e1dfcddc DM |
186 | virtualization. |
187 | ||
6cd84960 DW |
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 | |
e1dfcddc DM |
190 | consistent snapshots of running LXC containers and KVM virtual |
191 | machines. | |
192 | ||
6cd84960 | 193 | However, ``vzdump`` only allows for full backups. While this is fine |
e1dfcddc | 194 | for small backups, it becomes a burden for users with large VMs. Both |
6cd84960 DW |
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. | |
e1dfcddc | 198 | |
6cd84960 | 199 | Back in October 2018, development started. We investigated |
e1dfcddc | 200 | several technologies and frameworks and finally decided to use |
6cd84960 DW |
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. |