]> git.proxmox.com Git - proxmox-backup.git/blame - docs/introduction.rst
implement subscription handling and api
[proxmox-backup.git] / docs / introduction.rst
CommitLineData
7e688b71
DM
1Introduction
2============
3
d9f365d7 4What is Proxmox Backup Server?
2357744b 5------------------------------
7e688b71 6
65418a07
DW
7Proxmox Backup Server is an enterprise-class, client-server backup software
8package that backs up :term:`virtual machine`\ s, :term:`container`\ s, and
9physical hosts. It is specially optimized for the `Proxmox Virtual Environment`_
10platform and allows you to back up your data securely, even between remote
11sites, providing easy management with a web-based user interface.
6a1cb691 12
d9f365d7 13It supports deduplication, compression, and authenticated
65418a07
DW
14encryption (AE_). Using :term:`Rust` as the implementation language guarantees high
15performance, low resource usage, and a safe, high-quality codebase.
6a1cb691 16
d9f365d7
DW
17Proxmox Backup uses state of the art cryptography for client communication and
18backup content :ref:`encryption <encryption>`. Encryption is done on the
19client side, making it safer to back up data to targets that are not fully
20trusted.
6a1cb691 21
0c56b0e6 22
d2a8d597
DM
23Architecture
24------------
25
d2c7ef09 26Proxmox Backup Server uses a `client-server model`_. The server stores the
092378ba 27backup data and provides an API to create and manage datastores. With the
32dc4c46 28API, it's also possible to manage disks and other server-side resources.
d2a8d597 29
d2c7ef09
TL
30The backup client uses this API to access the backed up data. With the command
31line tool ``proxmox-backup-client`` you can create backups and restore data.
32For QEMU_ with `Proxmox Virtual Environment`_ we deliver an integrated client.
d2a8d597 33
d2c7ef09
TL
34A single backup is allowed to contain several archives. For example, when you
35backup a :term:`virtual machine`, each disk is stored as a separate archive
36inside that backup. The VM configuration itself is stored as an extra file.
32dc4c46 37This way, it's easy to access and restore only important parts of the backup,
d2c7ef09 38without the need to scan the whole backup.
7ee2198e 39
0c56b0e6 40
4f3db187 41Main 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
81Reasons for Data Backup?
82------------------------
6253aa50 83
d2c7ef09 84The main purpose of a backup is to protect against data loss. Data loss can be
32dc4c46 85caused by both faulty hardware and human error.
6253aa50 86
d2c7ef09 87A common mistake is to accidentally delete a file or folder which is still
32dc4c46
DW
88required. Virtualization can even amplify this problem, as deleting a whole
89virtual machine can be as easy as pressing a single button.
6253aa50 90
d2c7ef09
TL
91For administrators, backups can serve as a useful toolkit for temporarily
92storing data. For example, it is common practice to perform full backups before
93installing major software updates. If something goes wrong, you can easily
94restore the previous state.
6253aa50 95
d2c7ef09
TL
96Another reason for backups are legal requirements. Some data, especially
97business records, must be kept in a safe place for several years by law, so
98that they can be accessed if required.
6253aa50 99
d2c7ef09
TL
100In general, data loss is very costly as it can severely damage your business.
101Therefore, ensure that you perform regular backups and run restore tests.
6253aa50
DM
102
103
2501c57c
DM
104Software Stack
105--------------
106
7ba2c1c3
TL
107Proxmox 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 118Aside from the web interface, everything is written in the Rust programming
7ba2c1c3
TL
119language.
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
133Getting Help
134------------
135
136Community Support Forum
137~~~~~~~~~~~~~~~~~~~~~~~
138
139We 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.
141The large user base is spread out all over the world. Needless to say that such
142a large forum is a great place to get information.
143
144Mailing Lists
145~~~~~~~~~~~~~
146
147Proxmox Backup Server is fully open-source and contributions are welcome! Here
148is the primary communication channel for developers:
4cda7603 149
56b814e3
TL
150:Mailing list for developers: `PBS Development List`_
151
152Bug Tracker
153~~~~~~~~~~~
154
155Proxmox runs a public bug tracker at `<https://bugzilla.proxmox.com>`_. If an
156issue appears, file your report there. An issue can be a bug as well as a
157request for a new feature or enhancement. The bug tracker helps to keep track
158of the issue and will send a notification once it has been solved.
159
2501c57c
DM
160License
161-------
162
8a258095 163Copyright (C) 2019-2020 Proxmox Server Solutions GmbH
fdd471d5
DM
164
165This software is written by Proxmox Server Solutions GmbH <support@proxmox.com>
166
d2c7ef09
TL
167Proxmox Backup Server is free and open source software: you can use it,
168redistribute it, and/or modify it under the terms of the GNU Affero General
169Public License as published by the Free Software Foundation, either version 3
170of the License, or (at your option) any later version.
fdd471d5
DM
171
172This 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
175Affero General Public License for more details.
176
177You should have received a copy of the GNU Affero General Public License
178along with this program. If not, see AGPL3_.
179
6253aa50 180
7e688b71
DM
181History
182-------
183
6cd84960
DW
184Backup is, and always has been, a central aspect of IT administration.
185The need to recover from data loss is fundamental and only increases with
e1dfcddc
DM
186virtualization.
187
6cd84960
DW
188For this reason, we've been shipping a backup tool with Proxmox VE, from the
189beginning. This tool is called ``vzdump`` and is able to make
e1dfcddc
DM
190consistent snapshots of running LXC containers and KVM virtual
191machines.
192
6cd84960 193However, ``vzdump`` only allows for full backups. While this is fine
e1dfcddc 194for small backups, it becomes a burden for users with large VMs. Both
6cd84960
DW
195backup duration and storage usage are too high for this case, especially
196for users who want to keep many backups of the same VMs. To solve these
197problems, we needed to offer deduplication and incremental backups.
e1dfcddc 198
6cd84960 199Back in October 2018, development started. We investigated
e1dfcddc 200several technologies and frameworks and finally decided to use
6cd84960
DW
201:term:`Rust` as the implementation language, in order to provide high speed and
202memory efficiency. The 2018-edition of Rust seemed promising for our
203requirements.
204
205In July 2020, we released the first beta version of Proxmox Backup
206Server, followed by the first stable version in November 2020. With support for
207incremental, fully deduplicated backups, Proxmox Backup significantly reduces
208network load and saves valuable storage space.