Docu: first proof reading
This is a first proof reading of the currently existing documentation. fixes (hopefully all): * spelling * grammar Tries to increase readabilty and ease of understanding by simplifying and restructing some sentences and paragraphs. Filler words which add to the cognitive load but don't add anything are removed (most notably `also`).
This commit is contained in:
parent
9a328319dd
commit
4f3db187cf
@ -3,6 +3,7 @@ Administration Guide
|
|||||||
|
|
||||||
The administration guide.
|
The administration guide.
|
||||||
|
|
||||||
|
.. todo:: either add a bit more explanation or remove the previous sentence
|
||||||
|
|
||||||
Terminology
|
Terminology
|
||||||
-----------
|
-----------
|
||||||
@ -12,7 +13,7 @@ Backup Content
|
|||||||
|
|
||||||
When doing deduplication, there are different strategies to get
|
When doing deduplication, there are different strategies to get
|
||||||
optimal results in terms of performance and/or deduplication rates.
|
optimal results in terms of performance and/or deduplication rates.
|
||||||
Depending on the type of data, one can split data into fixed or variable
|
Depending on the type of data, one can split data into *fixed* or *variable*
|
||||||
sized chunks.
|
sized chunks.
|
||||||
|
|
||||||
Fixed sized chunking needs almost no CPU performance, and is used to
|
Fixed sized chunking needs almost no CPU performance, and is used to
|
||||||
@ -21,7 +22,7 @@ backup virtual machine images.
|
|||||||
Variable sized chunking needs more CPU power, but is essential to get
|
Variable sized chunking needs more CPU power, but is essential to get
|
||||||
good deduplication rates for file archives.
|
good deduplication rates for file archives.
|
||||||
|
|
||||||
Therefore, the backup server supports both strategies.
|
The backup server supports both strategies.
|
||||||
|
|
||||||
|
|
||||||
File Archives: ``<name>.pxar``
|
File Archives: ``<name>.pxar``
|
||||||
@ -29,9 +30,9 @@ File Archives: ``<name>.pxar``
|
|||||||
|
|
||||||
.. see https://moinakg.wordpress.com/2013/06/22/high-performance-content-defined-chunking/
|
.. see https://moinakg.wordpress.com/2013/06/22/high-performance-content-defined-chunking/
|
||||||
|
|
||||||
A file archive stores a whole directory tree. Content is stored using
|
A file archive stores a full directory tree. Content is stored using
|
||||||
the :ref:`pxar-format`, split into variable sized chunks. The format
|
the :ref:`pxar-format`, split into variable sized chunks. The format
|
||||||
is specially optimized to achieve good deduplication rates.
|
is optimized to achieve good deduplication rates.
|
||||||
|
|
||||||
|
|
||||||
Image Archives: ``<name>.img``
|
Image Archives: ``<name>.img``
|
||||||
@ -44,8 +45,8 @@ data. Content is split into fixed sized chunks.
|
|||||||
Binary Data (BLOBs)
|
Binary Data (BLOBs)
|
||||||
^^^^^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
This type is used to store smaller (< 16MB) binaries like
|
This type is used to store smaller (< 16MB) binary data such as
|
||||||
configuration data. Larger files should be stored as image archive.
|
configuration files. Larger files should be stored as image archive.
|
||||||
|
|
||||||
.. caution:: Please do not store all files as BLOBs. Instead, use the
|
.. caution:: Please do not store all files as BLOBs. Instead, use the
|
||||||
file archive to store whole directory trees.
|
file archive to store whole directory trees.
|
||||||
@ -54,15 +55,15 @@ configuration data. Larger files should be stored as image archive.
|
|||||||
Catalog File: ``catalog.pcat1``
|
Catalog File: ``catalog.pcat1``
|
||||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
The catalog file is basically an index for file archive. It contains
|
The catalog file is an index for file archives. It contains
|
||||||
the list of files, and is used to speedup search operations.
|
the list of files and is used to speed-up search operations.
|
||||||
|
|
||||||
|
|
||||||
The Manifest: ``index.json``
|
The Manifest: ``index.json``
|
||||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
The manifest contains the list of all backup files, including
|
The manifest contains the list of all backup files, their
|
||||||
file sizes and checksums. It is used to verify the consistency of a
|
sizes and checksums. It is used to verify the consistency of a
|
||||||
backup.
|
backup.
|
||||||
|
|
||||||
|
|
||||||
@ -73,17 +74,17 @@ The backup server groups backups by *type*, where *type* is one of:
|
|||||||
|
|
||||||
``vm``
|
``vm``
|
||||||
This type is used for :term:`virtual machine`\ s. Typically
|
This type is used for :term:`virtual machine`\ s. Typically
|
||||||
contains the virtual machine configuration and an image archive
|
contains the virtual machine's configuration and an image archive
|
||||||
for each disk.
|
for each disk.
|
||||||
|
|
||||||
``ct``
|
``ct``
|
||||||
This type is used for :term:`container`\ s. Contains the container
|
This type is used for :term:`container`\ s. Contains the container's
|
||||||
configuration and a single file archive for the container content.
|
configuration and a single file archive for the container content.
|
||||||
|
|
||||||
``host``
|
``host``
|
||||||
This type is used for physical host, or if you want to run backups
|
This type is used for backups created from within the backed up machine.
|
||||||
manually from inside virtual machines or containers. Such backups
|
Typically this would be a physical host but could also be a virtual machine
|
||||||
may contain file and image archives (no restrictions here).
|
or container. Such backups may contain file and image archives, there are no restrictions in this regard.
|
||||||
|
|
||||||
|
|
||||||
Backup ID
|
Backup ID
|
||||||
@ -102,14 +103,14 @@ The time when the backup was made.
|
|||||||
Backup Group
|
Backup Group
|
||||||
~~~~~~~~~~~~
|
~~~~~~~~~~~~
|
||||||
|
|
||||||
We call the tuple ``<type>/<ID>`` a backup group. Such group
|
The tuple ``<type>/<ID>`` is called a backup group. Such a group
|
||||||
may contains one or more backup snapshots.
|
may contain one or more backup snapshots.
|
||||||
|
|
||||||
|
|
||||||
Backup Snapshot
|
Backup Snapshot
|
||||||
~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
We call the triplet ``<type>/<ID>/<time>`` a backup snapshot. It
|
The triplet ``<type>/<ID>/<time>`` is called a backup snapshot. It
|
||||||
uniquely identifies a specific backup within a datastore.
|
uniquely identifies a specific backup within a datastore.
|
||||||
|
|
||||||
.. code-block:: console
|
.. code-block:: console
|
||||||
@ -118,25 +119,25 @@ uniquely identifies a specific backup within a datastore.
|
|||||||
vm/104/2019-10-09T08:01:06Z
|
vm/104/2019-10-09T08:01:06Z
|
||||||
host/elsa/2019-11-08T09:48:14Z
|
host/elsa/2019-11-08T09:48:14Z
|
||||||
|
|
||||||
As you can see, the time is formatted as RFC3399_ using Coordinated
|
As you can see, the time format is RFC3399_ with Coordinated
|
||||||
Universal Time (UTC_, identified by the trailing *Z*).
|
Universal Time (UTC_, identified by the trailing *Z*).
|
||||||
|
|
||||||
|
|
||||||
:term:`DataStore`
|
:term:`DataStore`
|
||||||
~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
A datastore is a place to store backups. The current implementation
|
A datastore is a place where backups are stored. The current implementation
|
||||||
uses a directory inside a standard unix file system (``ext4``, ``xfs``
|
uses a directory inside a standard unix file system (``ext4``, ``xfs``
|
||||||
or ``zfs``) to store backup data.
|
or ``zfs``) to store the backup data.
|
||||||
|
|
||||||
Datastores are identified by a simple *ID*. You can configure that
|
Datastores are identified by a simple *ID*. You can configure it
|
||||||
when setting up the backup server.
|
when setting up the backup server.
|
||||||
|
|
||||||
|
|
||||||
Backup Server Management
|
Backup Server Management
|
||||||
------------------------
|
------------------------
|
||||||
|
|
||||||
The command line tool to configure and manage the server is called
|
The command line tool to configure and manage the backup server is called
|
||||||
:command:`proxmox-backup-manager`.
|
:command:`proxmox-backup-manager`.
|
||||||
|
|
||||||
|
|
||||||
@ -144,7 +145,7 @@ Datastore Configuration
|
|||||||
~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
A :term:`datastore` is a place to store backups. You can configure
|
A :term:`datastore` is a place to store backups. You can configure
|
||||||
several datastores, but you need at least one of them. The datastore is identified by a simple `name` and point to a directory.
|
multiple datastores. At least one datastore needs to be configured. The datastore is identified by a simple `name` and points to a directory.
|
||||||
|
|
||||||
The following command creates a new datastore called ``store1`` on :file:`/backup/disk1/store1`
|
The following command creates a new datastore called ``store1`` on :file:`/backup/disk1/store1`
|
||||||
|
|
||||||
@ -152,20 +153,20 @@ The following command creates a new datastore called ``store1`` on :file:`/backu
|
|||||||
|
|
||||||
# proxmox-backup-manager datastore create store1 /backup/disk1/store1
|
# proxmox-backup-manager datastore create store1 /backup/disk1/store1
|
||||||
|
|
||||||
To list existing datastores use:
|
To list existing datastores run:
|
||||||
|
|
||||||
.. code-block:: console
|
.. code-block:: console
|
||||||
|
|
||||||
# proxmox-backup-manager datastore list
|
# proxmox-backup-manager datastore list
|
||||||
store1 /backup/disk1/store1
|
store1 /backup/disk1/store1
|
||||||
|
|
||||||
Finally, it is also possible to remove the datastore configuration:
|
Finally, it is possible to remove the datastore configuration:
|
||||||
|
|
||||||
.. code-block:: console
|
.. code-block:: console
|
||||||
|
|
||||||
# proxmox-backup-manager datastore remove store1
|
# proxmox-backup-manager datastore remove store1
|
||||||
|
|
||||||
.. note:: Above command removes the datastore configuration. It does
|
.. note:: The above command removes only the datastore configuration. It does
|
||||||
not delete any data from the underlying directory.
|
not delete any data from the underlying directory.
|
||||||
|
|
||||||
|
|
||||||
@ -184,16 +185,16 @@ The command line client is called :command:`proxmox-backup-client`.
|
|||||||
Respository Locations
|
Respository Locations
|
||||||
~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
The client uses a special repository notation to specify a datastore
|
The client uses the following notation to specify a datastore repository
|
||||||
on the backup server.
|
on the backup server.
|
||||||
|
|
||||||
[[username@]server:]datastore
|
[[username@]server:]datastore
|
||||||
|
|
||||||
If you do not specify a ``username`` the default is ``root@pam``. The
|
The default value for ``username`` ist ``root``. If no server is specified, the
|
||||||
default for server is to use the local host (``localhost``).
|
default is the local host (``localhost``).
|
||||||
|
|
||||||
You can pass the repository by setting the ``--repository`` command
|
You can pass the repository with the ``--repository`` command
|
||||||
line options, or by setting the ``PBS_REPOSITORY`` environment
|
line option, or by setting the ``PBS_REPOSITORY`` environment
|
||||||
variable.
|
variable.
|
||||||
|
|
||||||
|
|
||||||
@ -219,8 +220,8 @@ Environment Variables
|
|||||||
Output Format
|
Output Format
|
||||||
~~~~~~~~~~~~~
|
~~~~~~~~~~~~~
|
||||||
|
|
||||||
Most commands support the ``--output-format`` parameter, which can be
|
Most commands support the ``--output-format`` parameter. It accepts
|
||||||
set to the following values:
|
the following values:
|
||||||
|
|
||||||
:``text``: Text format (default). Structured data is rendered as a table.
|
:``text``: Text format (default). Structured data is rendered as a table.
|
||||||
|
|
||||||
@ -240,9 +241,9 @@ Please use the following environment variables to modify output behavior:
|
|||||||
``PROXMOX_OUTPUT_NO_HEADER``
|
``PROXMOX_OUTPUT_NO_HEADER``
|
||||||
If set (to any value), do not render table headers.
|
If set (to any value), do not render table headers.
|
||||||
|
|
||||||
.. note:: The ``text`` format is designed to be human readable, but
|
.. note:: The ``text`` format is designed to be human readable, and
|
||||||
not meant to be parsed by automation tools. Please use the ``json``
|
not meant to be parsed by automation tools. Please use the ``json``
|
||||||
format for such purpose because it is machine readable.
|
format if you need to process the output.
|
||||||
|
|
||||||
|
|
||||||
.. _creating-backups:
|
.. _creating-backups:
|
||||||
@ -250,15 +251,15 @@ Please use the following environment variables to modify output behavior:
|
|||||||
Creating Backups
|
Creating Backups
|
||||||
~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
This section explains how to create backup on physical host, or from
|
This section explains how to create a backup from within the machine. This can
|
||||||
inside virtual machines or containers. Such backups may contain file
|
be a physical host, a virtual machine, or a container. Such backups may contain file
|
||||||
and image archives (no restrictions here).
|
and image archives. There are no restrictions in this case.
|
||||||
|
|
||||||
.. note:: If you want to backup virtual machines or containers see :ref:`pve-integration`.
|
.. note:: If you want to backup virtual machines or containers on Proxmov VE, see :ref:`pve-integration`.
|
||||||
|
|
||||||
The prerequisite is that you have already set up (or can access) a
|
For the following example you need to have a backup server set up, working
|
||||||
backup server. It is assumed that you know the repository name and
|
credentials and need to know the repository name.
|
||||||
credentials. In the following examples we simply use ``backup-server:store1``.
|
In the following examples we use ``backup-server:store1``.
|
||||||
|
|
||||||
.. code-block:: console
|
.. code-block:: console
|
||||||
|
|
||||||
@ -275,15 +276,15 @@ credentials. In the following examples we simply use ``backup-server:store1``.
|
|||||||
This will prompt you for a password and then uploads a file archive named
|
This will prompt you for a password and then uploads a file archive named
|
||||||
``root.pxar`` containing all the files in the ``/`` directory.
|
``root.pxar`` containing all the files in the ``/`` directory.
|
||||||
|
|
||||||
.. Caution:: Please note that proxmox-backup-client does not
|
.. Caution:: Please note that the proxmox-backup-client does not
|
||||||
automatically include mount points. Instead, you will see a short
|
automatically include mount points. Instead, you will see a short
|
||||||
``skip mount point`` notice for each of them. The idea is that you
|
``skip mount point`` notice for each of them. The idea is to
|
||||||
create a separate file archive for each mounted disk. You can also
|
create a separate file archive for each mounted disk. You can
|
||||||
explicitly include them using the ``--include-dev`` option
|
explicitly include them using the ``--include-dev`` option
|
||||||
(i.e. ``--include-dev /boot/efi``). You can use this option
|
(i.e. ``--include-dev /boot/efi``). You can use this option
|
||||||
multiple times, once for each mount point you want to include.
|
multiple times for each mount point that should be included.
|
||||||
|
|
||||||
The ``--repository`` option is sometimes quite long and is used by all
|
The ``--repository`` option can get quite long and is used by all
|
||||||
commands. You can avoid having to enter this value by setting the
|
commands. You can avoid having to enter this value by setting the
|
||||||
environment variable ``PBS_REPOSITORY``.
|
environment variable ``PBS_REPOSITORY``.
|
||||||
|
|
||||||
@ -291,26 +292,26 @@ environment variable ``PBS_REPOSITORY``.
|
|||||||
|
|
||||||
# export PBS_REPOSTORY=backup-server:store1
|
# export PBS_REPOSTORY=backup-server:store1
|
||||||
|
|
||||||
You can then execute all commands without specifying the ``--repository``
|
After this you can execute all commands without specifying the ``--repository``
|
||||||
option.
|
option.
|
||||||
|
|
||||||
One single backup is allowed to contain more than one archive. For example, assume you want to backup two disks mounted at ``/mmt/disk1`` and ``/mnt/disk2``:
|
One single backup is allowed to contain more than one archive. For example, if
|
||||||
|
you want to backup two disks mounted at ``/mmt/disk1`` and ``/mnt/disk2``:
|
||||||
|
|
||||||
.. code-block:: console
|
.. code-block:: console
|
||||||
|
|
||||||
# proxmox-backup-client backup disk1.pxar:/mnt/disk1 disk2.pxar:/mnt/disk2
|
# proxmox-backup-client backup disk1.pxar:/mnt/disk1 disk2.pxar:/mnt/disk2
|
||||||
|
|
||||||
This create a backup of both disks.
|
This creates a backup of both disks.
|
||||||
|
|
||||||
The backup command takes a list of backup specifications, which
|
The backup command takes a list of backup specifications, which
|
||||||
include archive name on the server, the type of the archive, and the
|
include the archive name on the server, the type of the archive, and the
|
||||||
archive source at the client. The format is quite simple to understand:
|
archive source at the client. The format is:
|
||||||
|
|
||||||
<archive-name>.<type>:<source-path>
|
<archive-name>.<type>:<source-path>
|
||||||
|
|
||||||
Common types are ``.pxar`` for file archives, and ``.img`` for block
|
Common types are ``.pxar`` for file archives, and ``.img`` for block
|
||||||
device images. Thus it is quite easy to create a backup for a block
|
device images. To create a backup of a block device run the following command:
|
||||||
device:
|
|
||||||
|
|
||||||
.. code-block:: console
|
.. code-block:: console
|
||||||
|
|
||||||
@ -320,42 +321,43 @@ Excluding files/folders from a backup
|
|||||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
Sometimes it is desired to exclude certain files or folders from a backup archive.
|
Sometimes it is desired to exclude certain files or folders from a backup archive.
|
||||||
Using the proxmox backup client this is possible via simple text based
|
To tell the Proxmox backup client when and how to ignore files and directories,
|
||||||
``.pxarexclude`` files placed in the filesystem hierarchy.
|
place a text file called ``.pxarexclude`` in the filesystem hierarchy.
|
||||||
|
Whenever the backup client encounters such a file in a directory, it interprets
|
||||||
|
each line as glob match patterns for files and directories that are to be excluded
|
||||||
|
from the backup.
|
||||||
|
|
||||||
Whenever such a file is encountered in a directory, the backup client reads its
|
The file must contain a single glob pattern per line. Empty lines are ignored.
|
||||||
content and lines are interpreted as glob match patterns for files/directories
|
The same is true for lines starting with ``#``, which indicates a comment.
|
||||||
to exclude from the archive.
|
A ``!`` at the beginning of a line reverses the glob match pattern from an exclusion
|
||||||
The file must contain a single glob pattern on each line. Empty lines are ignored.
|
to an explicit inclusion. This makes it possible to exclude all entries in a
|
||||||
The same is true for lines starting with ``#``, indicating a line containing comments.
|
directory except for a few single files/subdirectories.
|
||||||
Lines starting with ``!`` correspond to glob match patterns for explicit inclusion
|
Lines ending in ``/`` match only on directories.
|
||||||
of files previously excluded by a match. This allows for example to exclude
|
The directory containing the ``.pxarexclude`` file is considered to be the root of
|
||||||
all entries in a directory except for a few single files.
|
the given patterns. It is only possible to match files in this directory and its subdirectories.
|
||||||
Lines ending in ``/`` match directory entries only.
|
|
||||||
The folder containing the ``.pxarexclude`` file is considered to be the root of
|
|
||||||
the given patterns. It is only possible to match files in this or below this folder.
|
|
||||||
|
|
||||||
``\`` is used to escape glob characters. ``?`` matches any single character,
|
``\`` is used to escape special glob characters.
|
||||||
``*`` matches any character including the empty string.
|
``?`` matches any single character.
|
||||||
``**`` is used to match also subdirectories and can be used to exclude for example
|
``*`` matches any character, including an empty string.
|
||||||
all files ending in ``.tmp`` within the directory or a subdirectory by the
|
``**`` is used to match subdirectories. It can be used to, for example, exclude
|
||||||
|
all files ending in ``.tmp`` within the directory or subdirectories with the
|
||||||
following pattern ``**/*.tmp``.
|
following pattern ``**/*.tmp``.
|
||||||
``[...]`` matches a single character from any of the provided characters within
|
``[...]`` matches a single character from any of the provided characters within
|
||||||
the brackets. ``[!...]`` does the complementary and matches any singe character
|
the brackets. ``[!...]`` does the complementary and matches any singe character
|
||||||
not contained within the brackets. It is also possible to specify ranges by two
|
not contained within the brackets. It is also possible to specify ranges with two
|
||||||
characters separated by ``-``. For example ``[a-z]`` matches any lowercase
|
characters separated by ``-``. For example, ``[a-z]`` matches any lowercase
|
||||||
alphabetic character, ``[0-9]`` matches any one single digit.
|
alphabetic character and ``[0-9]`` matches any one single digit.
|
||||||
|
|
||||||
The order of the glob match patterns defines if the file is finally included or
|
The order of the glob match patterns defines if a file is included or
|
||||||
excluded, later entries win over previous ones.
|
excluded, later entries win over previous ones.
|
||||||
This is also true for match patterns encountered deeper down the directory tree,
|
This is also true for match patterns encountered deeper down the directory tree,
|
||||||
which may then override a previous exclusion.
|
which can override a previous exclusion.
|
||||||
Note however that folders marked for exclusion are not read by the client,
|
Be aware that excluded directories will **not** be read by the backup client.
|
||||||
so ``.pxarexclude`` files contained within have no effect.
|
A ``.pxarexclude`` file in a subdirectory will have no effect.
|
||||||
``.pxarexclude`` files are treated as regular files and are also included in the
|
``.pxarexclude`` files are treated as regular files and will be included in the
|
||||||
backup archive.
|
backup archive.
|
||||||
|
|
||||||
For example, consider the following folder structure:
|
For example, consider the following directory structure:
|
||||||
|
|
||||||
.. code-block:: console
|
.. code-block:: console
|
||||||
|
|
||||||
@ -369,7 +371,7 @@ For example, consider the following folder structure:
|
|||||||
folder/subfolder1:
|
folder/subfolder1:
|
||||||
. .. file0 file1 file2 file3
|
. .. file0 file1 file2 file3
|
||||||
|
|
||||||
The ``.pxarexclude`` files containing the following:
|
The different ``.pxarexclude`` files contain the following:
|
||||||
|
|
||||||
.. code-block:: console
|
.. code-block:: console
|
||||||
|
|
||||||
@ -386,7 +388,7 @@ The ``.pxarexclude`` files containing the following:
|
|||||||
This would exclude ``file1`` and ``file3`` in ``subfolder0`` and all of
|
This would exclude ``file1`` and ``file3`` in ``subfolder0`` and all of
|
||||||
``subfolder1`` except ``file2``.
|
``subfolder1`` except ``file2``.
|
||||||
|
|
||||||
Restoring this archive form backup results in:
|
Restoring this backup will result in:
|
||||||
|
|
||||||
.. code-block:: console
|
.. code-block:: console
|
||||||
|
|
||||||
@ -403,8 +405,8 @@ Restoring this archive form backup results in:
|
|||||||
Encryption
|
Encryption
|
||||||
^^^^^^^^^^
|
^^^^^^^^^^
|
||||||
|
|
||||||
Proxmox backup support client side encryption using AES-256 in GCM_
|
Proxmox backup supports client side encryption with AES-256 in GCM_
|
||||||
mode. You first need to create an encryption key in order to use that:
|
mode. First you need to create an encryption key:
|
||||||
|
|
||||||
.. code-block:: console
|
.. code-block:: console
|
||||||
|
|
||||||
@ -416,7 +418,7 @@ extra protection, you can also create it without a password:
|
|||||||
|
|
||||||
.. code-block:: console
|
.. code-block:: console
|
||||||
|
|
||||||
# proxmox-backup-client key create /path/to/my-backup.key --kdf none
|
# proxmox-backup-client key create /path/to/my-backup.key --kdf none
|
||||||
|
|
||||||
|
|
||||||
.. code-block:: console
|
.. code-block:: console
|
||||||
@ -427,7 +429,7 @@ extra protection, you can also create it without a password:
|
|||||||
...
|
...
|
||||||
|
|
||||||
|
|
||||||
You can avoid having to enter the passwords by setting the environment
|
You can avoid entering the passwords by setting the environment
|
||||||
variables ``PBS_PASSWORD`` and ``PBS_ENCRYPTION_PASSWORD``.
|
variables ``PBS_PASSWORD`` and ``PBS_ENCRYPTION_PASSWORD``.
|
||||||
|
|
||||||
.. todo:: Explain master-key
|
.. todo:: Explain master-key
|
||||||
@ -437,12 +439,12 @@ Restoring Data
|
|||||||
~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~
|
||||||
|
|
||||||
The regular creation of backups is a necessary step to avoid data
|
The regular creation of backups is a necessary step to avoid data
|
||||||
loss. More important, however, is the restoration. Be sure to perform
|
loss. More important, however, is the restoration. It is good practice to perform
|
||||||
periodic recovery tests to ensure that you can access your data in
|
periodic recovery tests to ensure that you can access the data in
|
||||||
case of problems.
|
case of problems.
|
||||||
|
|
||||||
First, you need to find the snapshot you want to restore. The snapshot
|
First, you need to find the snapshot which you want to restore. The snapshot
|
||||||
command gives you a list of all snapshots on the server:
|
command gives a list of all snapshots on the server:
|
||||||
|
|
||||||
.. code-block:: console
|
.. code-block:: console
|
||||||
|
|
||||||
@ -452,7 +454,7 @@ command gives you a list of all snapshots on the server:
|
|||||||
host/elsa/2019-12-03T09:35:01Z | 51790622048 | root.pxar catalog.pcat1 index.json
|
host/elsa/2019-12-03T09:35:01Z | 51790622048 | root.pxar catalog.pcat1 index.json
|
||||||
...
|
...
|
||||||
|
|
||||||
You can also inspect the catalog to find specific files.
|
You can inspect the catalog to find specific files.
|
||||||
|
|
||||||
.. code-block:: console
|
.. code-block:: console
|
||||||
|
|
||||||
@ -470,9 +472,8 @@ backup.
|
|||||||
|
|
||||||
# proxmox-backup-client restore host/elsa/2019-12-03T09:35:01Z root.pxar /target/path/
|
# proxmox-backup-client restore host/elsa/2019-12-03T09:35:01Z root.pxar /target/path/
|
||||||
|
|
||||||
You can instead simply download the contents of any archive using '-'
|
To get the contents of any archive you can restore the ``ìndex.json`` file in the
|
||||||
instead of ``/target/path``. This dumps the content to standard
|
repository and restore it to '-'. This will dump the content to the standard output.
|
||||||
output:
|
|
||||||
|
|
||||||
.. code-block:: console
|
.. code-block:: console
|
||||||
|
|
||||||
@ -494,20 +495,18 @@ to use the interactive recovery shell.
|
|||||||
...
|
...
|
||||||
|
|
||||||
The interactive recovery shell is a minimalistic command line interface that
|
The interactive recovery shell is a minimalistic command line interface that
|
||||||
utilizes the metadata stored in the catalog for you to quickly list, navigate and
|
utilizes the metadata stored in the catalog to quickly list, navigate and
|
||||||
search files contained within a file archive.
|
search files in a file archive.
|
||||||
You can select individual files as well as select files matched by a glob pattern
|
To restore files, you can select them individually or match them with a glob
|
||||||
for restore.
|
pattern.
|
||||||
|
|
||||||
The use of the catalog for navigation reduces the overhead otherwise caused by
|
Using the catalog for navigation reduces the overhead considerably because only
|
||||||
network traffic and decryption, as instead of downloading and decrypting
|
the catalog needs to be downloaded and, optionally, decrypted.
|
||||||
individual encrypted chunks from the chunk-store to access the metadata, we only
|
|
||||||
need to download and decrypt the catalog.
|
|
||||||
The actual chunks are only accessed if the metadata in the catalog is not enough
|
The actual chunks are only accessed if the metadata in the catalog is not enough
|
||||||
or for the actual restore.
|
or for the actual restore.
|
||||||
|
|
||||||
Similar to common UNIX shells ``cd`` and ``ls`` are the commands used to change
|
Similar to common UNIX shells ``cd`` and ``ls`` are the commands used to change
|
||||||
working directory and list directory contents of the archive.
|
working directory and list directory contents in the archive.
|
||||||
``pwd`` shows the full path of the current working directory with respect to the
|
``pwd`` shows the full path of the current working directory with respect to the
|
||||||
archive root.
|
archive root.
|
||||||
|
|
||||||
@ -567,7 +566,7 @@ This allows you to access the full content of the archive in a seamless manner.
|
|||||||
load on your host, depending on the operations you perform on the mounted
|
load on your host, depending on the operations you perform on the mounted
|
||||||
filesystem.
|
filesystem.
|
||||||
|
|
||||||
To unmount the filesystem simply use the ``umount`` command on the mountpoint:
|
To unmount the filesystem use the ``umount`` command on the mountpoint:
|
||||||
|
|
||||||
.. code-block:: console
|
.. code-block:: console
|
||||||
|
|
||||||
@ -579,7 +578,7 @@ Login and Logout
|
|||||||
The client tool prompts you to enter the logon password as soon as you
|
The client tool prompts you to enter the logon password as soon as you
|
||||||
want to access the backup server. The server checks your credentials
|
want to access the backup server. The server checks your credentials
|
||||||
and responds with a ticket that is valid for two hours. The client
|
and responds with a ticket that is valid for two hours. The client
|
||||||
tool automatically stores that ticket and use it for further requests
|
tool automatically stores that ticket and uses it for further requests
|
||||||
to this server.
|
to this server.
|
||||||
|
|
||||||
You can also manually trigger this login/logout using the login and
|
You can also manually trigger this login/logout using the login and
|
||||||
@ -590,7 +589,7 @@ logout commands:
|
|||||||
# proxmox-backup-client login
|
# proxmox-backup-client login
|
||||||
Password: **********
|
Password: **********
|
||||||
|
|
||||||
To remove the ticket, simply issue a logout:
|
To remove the ticket, issue a logout:
|
||||||
|
|
||||||
.. code-block:: console
|
.. code-block:: console
|
||||||
|
|
||||||
@ -608,60 +607,62 @@ command:
|
|||||||
# proxmox-backup-client forget <snapshot>
|
# proxmox-backup-client forget <snapshot>
|
||||||
|
|
||||||
|
|
||||||
.. caution:: This command removes all the archives in this backup
|
.. caution:: This command removes all archives in this backup
|
||||||
snapshot so that they are inaccessible and unrecoverable.
|
snapshot. They will be inaccessible and unrecoverable.
|
||||||
|
|
||||||
|
|
||||||
Such manual removal is sometimes required, but normally the prune
|
The manual removal is sometimes required, but normally the prune
|
||||||
command is used to systematically delete older backups. Prune lets
|
command is used to systematically delete older backups. Prune lets
|
||||||
you specify which backup snapshots you want to keep. There are the
|
you specify which backup snapshots you want to keep. The
|
||||||
following retention options:
|
following retention options are available:
|
||||||
|
|
||||||
``--keep-last <N>``
|
``--keep-last <N>``
|
||||||
Keep the last ``<N>`` backup snapshots.
|
Keep the last ``<N>`` backup snapshots.
|
||||||
|
|
||||||
``--keep-hourly <N>``
|
``--keep-hourly <N>``
|
||||||
Keep backups for the last ``<N>`` different hours. If there is more than one
|
Keep backups for the last ``<N>`` hours. If there is more than one
|
||||||
backup for a single hour, only the latest one is kept.
|
backup for a single hour, only the latest is kept.
|
||||||
|
|
||||||
``--keep-daily <N>``
|
``--keep-daily <N>``
|
||||||
Keep backups for the last ``<N>`` different days. If there is more than one
|
Keep backups for the last ``<N>`` days. If there is more than one
|
||||||
backup for a single day, only the latest one is kept.
|
backup for a single day, only the latest is kept.
|
||||||
|
|
||||||
``--keep-weekly <N>``
|
``--keep-weekly <N>``
|
||||||
Keep backups for the last ``<N>`` different weeks. If there is more than one
|
Keep backups for the last ``<N>`` weeks. If there is more than one
|
||||||
backup for a single week, only the latest one is kept.
|
backup for a single week, only the latest is kept.
|
||||||
|
|
||||||
.. note:: The weeks start on Monday and end on Sunday. The software
|
.. note:: Weeks start on Monday and end on Sunday. The software
|
||||||
uses the `ISO week date`_ system and correctly handles weeks at
|
uses the `ISO week date`_ system and handles weeks at
|
||||||
the end of the year.
|
the end of the year correctly.
|
||||||
|
|
||||||
``--keep-monthly <N>``
|
``--keep-monthly <N>``
|
||||||
Keep backups for the last ``<N>`` different months. If there is more than one
|
Keep backups for the last ``<N>`` months. If there is more than one
|
||||||
backup for a single month, only the latest one is kept.
|
backup for a single month, only the latest is kept.
|
||||||
|
|
||||||
``--keep-yearly <N>``
|
``--keep-yearly <N>``
|
||||||
Keep backups for the last ``<N>`` different years. If there is more than one
|
Keep backups for the last ``<N>`` years. If there is more than one
|
||||||
backup for a single year, only the latest one is kept.
|
backup for a single year, only the latest is kept.
|
||||||
|
|
||||||
|
The retention options are processed in the order given above. Each option
|
||||||
|
only covers backups within its time period. The next option does not take care
|
||||||
|
of already covered backups. It will only consider older backups.
|
||||||
|
|
||||||
Those retention options are processed in the order given above. Each
|
For example, the ``--keep-monthly`` option does not consider any backup that is
|
||||||
option covers a specific period of time. We say that backups within
|
younger than one month.
|
||||||
this period are covered by this option. The next option does not take
|
|
||||||
care of already covered backups and only considers older backups.
|
|
||||||
|
|
||||||
The prune command also looks for unfinished and incomplete backups and
|
.. todo:: check if the previous statement is correct
|
||||||
removes them unless they are newer than the last successful backup. In
|
|
||||||
this case, the last failed backup is retained.
|
Unfinished and incomplete backups will be removed by the prune command unless
|
||||||
|
they are newer than the last successful backup. In this case, the last failed
|
||||||
|
backup is retained.
|
||||||
|
|
||||||
.. code-block:: console
|
.. code-block:: console
|
||||||
|
|
||||||
# proxmox-backup-client prune <group> --keep-daily 7 --keep-weekly 4 --keep-monthly 3
|
# proxmox-backup-client prune <group> --keep-daily 7 --keep-weekly 4 --keep-monthly 3
|
||||||
|
|
||||||
|
|
||||||
You can use the ``--dry-run`` option to test your settings. This just
|
You can use the ``--dry-run`` option to test your settings. This only
|
||||||
shows the list of existing snapshots and what action prune would take
|
shows the list of existing snapshots and which action prune would take.
|
||||||
on that.
|
|
||||||
|
|
||||||
.. code-block:: console
|
.. code-block:: console
|
||||||
|
|
||||||
@ -676,8 +677,8 @@ on that.
|
|||||||
|
|
||||||
|
|
||||||
.. note:: Neither the ``prune`` command nor the ``forget`` command free space
|
.. note:: Neither the ``prune`` command nor the ``forget`` command free space
|
||||||
in the chunk-store. The chunk-store still contains the data blocks
|
in the chunk-store. The chunk-store still contains the data blocks. To free
|
||||||
unless you are performing :ref:`garbage-collection`.
|
space you need to perform :ref:`garbage-collection`.
|
||||||
|
|
||||||
|
|
||||||
.. _garbage-collection:
|
.. _garbage-collection:
|
||||||
@ -687,8 +688,7 @@ Garbage Collection
|
|||||||
|
|
||||||
The ``prune`` command removes only the backup index files, not the data
|
The ``prune`` command removes only the backup index files, not the data
|
||||||
from the data store. This task is left to the garbage collection
|
from the data store. This task is left to the garbage collection
|
||||||
command. It is therefore recommended to carry out garbage collection
|
command. It is recommended to carry out garbage collection on a regular basis.
|
||||||
regularly.
|
|
||||||
|
|
||||||
The garbage collection works in two phases. In the first phase, all
|
The garbage collection works in two phases. In the first phase, all
|
||||||
data blocks that are still in use are marked. In the second phase,
|
data blocks that are still in use are marked. In the second phase,
|
||||||
|
@ -5,24 +5,23 @@ Glossary
|
|||||||
|
|
||||||
`Virtual machine`_
|
`Virtual machine`_
|
||||||
|
|
||||||
A Virtual machine is a program that can execute an entire
|
A virtual machine is a program that can execute an entire
|
||||||
operatin system inside an emulated hardware environment.
|
operating system inside an emulated hardware environment.
|
||||||
|
|
||||||
`Container`_
|
`Container`_
|
||||||
|
|
||||||
A Container is an isolated user space. Programs runs directly on
|
A container is an isolated user space. Programs run directly on
|
||||||
the hosts kernel, but with limited access to the host resources.
|
the host's kernel, but with limited access to the host resources.
|
||||||
|
|
||||||
Datastore
|
Datastore
|
||||||
|
|
||||||
A place to store backups. The current implemenation is
|
A place to store backups. A directory which contains the backup data.
|
||||||
file-system based, so this refers to a directory containing the
|
The current implemenation is file-system based.
|
||||||
backup data.
|
|
||||||
|
|
||||||
`Rust`_
|
`Rust`_
|
||||||
|
|
||||||
Rust is a new, fast and memory-efficient system programming
|
Rust is a new, fast and memory-efficient system programming
|
||||||
language, with no runtime or garbage collector. Rust’s rich type
|
language. It has no runtime or garbage collector. Rust’s rich type
|
||||||
system and ownership model guarantee memory-safety and
|
system and ownership model guarantee memory-safety and
|
||||||
thread-safety. I can eliminate many classes of bugs
|
thread-safety. I can eliminate many classes of bugs
|
||||||
at compile-time.
|
at compile-time.
|
||||||
@ -31,11 +30,9 @@ Glossary
|
|||||||
|
|
||||||
Is a tool that makes it easy to create intelligent and
|
Is a tool that makes it easy to create intelligent and
|
||||||
beautiful documentation. It was originally created for the
|
beautiful documentation. It was originally created for the
|
||||||
Python documentation, and it has excellent facilities for the
|
documentation of the Python programming language. It has excellent facilities for the
|
||||||
documentation of software projects in a range of languages.
|
documentation of software projects in a range of languages.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
`reStructuredText`_
|
`reStructuredText`_
|
||||||
|
|
||||||
Is an easy-to-read, what-you-see-is-what-you-get plaintext
|
Is an easy-to-read, what-you-see-is-what-you-get plaintext
|
||||||
@ -44,8 +41,8 @@ Glossary
|
|||||||
`FUSE`
|
`FUSE`
|
||||||
|
|
||||||
Filesystem in Userspace (`FUSE <https://en.wikipedia.org/wiki/Filesystem_in_Userspace>`_)
|
Filesystem in Userspace (`FUSE <https://en.wikipedia.org/wiki/Filesystem_in_Userspace>`_)
|
||||||
defines an interface which allows to implement a filesystem in
|
defines an interface which makes it possible to implement a filesystem in
|
||||||
userspace as opposed to implementing it in the kernel. The fuse
|
userspace as opposed to implementing it in the kernel. The fuse
|
||||||
kernel driver handles filesystem requests and sends them to an
|
kernel driver handles filesystem requests and sends them to a
|
||||||
userspace application for reply.
|
userspace application.
|
||||||
|
|
||||||
|
@ -1,55 +1,50 @@
|
|||||||
Installation
|
Installation
|
||||||
============
|
============
|
||||||
|
|
||||||
`Proxmox Backup`_ is split into a server part and a client part. The
|
`Proxmox Backup`_ is split into a server and client part. The server part
|
||||||
server part comes with it's own graphical installer, but we also
|
can either be installed with a graphical installer or on top of
|
||||||
ship Debian_ package repositories, so you can easily install those
|
Debian_ from the provided package repository.
|
||||||
packages on any Debian_ based system.
|
|
||||||
|
|
||||||
.. include:: package-repositories.rst
|
.. include:: package-repositories.rst
|
||||||
|
|
||||||
|
|
||||||
Server installation
|
Server installation
|
||||||
-------------------
|
-------------------
|
||||||
|
|
||||||
The backup server stores the actual backup data, but also provides a
|
The backup server stores the actual backed up data and provides a web based GUI
|
||||||
web based GUI for various management tasks, for example disk
|
for various management tasks such as disk management.
|
||||||
management.
|
|
||||||
|
|
||||||
.. note:: You always need a backup server. It is not possible to use
|
.. note:: You always need a backup server. It is not possible to use
|
||||||
`Proxmox Backup`_ without the server part.
|
`Proxmox Backup`_ without the server part.
|
||||||
|
|
||||||
The server is based on Debian, therefore the disk image (ISO file) provided
|
The disk image (ISO file) provided by Proxmox includes a complete Debian system
|
||||||
by us includes a complete Debian system ("buster" for version 1.x) as
|
("buster" for version 1.x) as well as all necessary packages for the `Proxmox Backup`_ server.
|
||||||
well as all necessary backup packages.
|
|
||||||
|
|
||||||
Using the installer will guide you through the setup, allowing
|
The installer will guide you through the setup process and allows
|
||||||
you to partition the local disk(s), apply basic system configurations
|
you to partition the local disk(s), apply basic system configurations
|
||||||
(e.g. timezone, language, network) and install all required packages.
|
(e.g. timezone, language, network), and installs all required packages.
|
||||||
Using the provided ISO will get you started in just a few minutes,
|
The provided ISO will get you started in just a few minutes, and is the
|
||||||
that's why we recommend this method for new and existing users.
|
recommended method for new and existing users.
|
||||||
|
|
||||||
Alternatively, `Proxmox Backup`_ server can be installed on top of an
|
Alternatively, `Proxmox Backup`_ server can be installed on top of an
|
||||||
existing Debian system.
|
existing Debian system.
|
||||||
|
|
||||||
Using the `Proxmox Backup`_ Installer
|
Install `Proxmox Backup`_ with the Installer
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
You can download the ISO from |DOWNLOADS|.
|
Download the ISO from |DOWNLOADS|.
|
||||||
It includes the following:
|
It includes the following:
|
||||||
|
|
||||||
|
* The `Proxmox Backup`_ server installer, which partitions the local
|
||||||
|
disk(s) with ext4, ext3, xfs or ZFS, and installs the operating
|
||||||
|
system.
|
||||||
|
|
||||||
* Complete operating system (Debian Linux, 64-bit)
|
* Complete operating system (Debian Linux, 64-bit)
|
||||||
|
|
||||||
* The `Proxmox Backup`_ server installer, which partitions the local
|
|
||||||
disk(s) with ext4, ext3, xfs or ZFS and installs the operating
|
|
||||||
system.
|
|
||||||
|
|
||||||
* Our Linux kernel with ZFS support.
|
* Our Linux kernel with ZFS support.
|
||||||
|
|
||||||
* Complete toolset for administering backups and all necessary
|
* Complete tool-set to administer backups and all necessary resources
|
||||||
resources
|
|
||||||
|
|
||||||
* Web based management interface for using the toolset
|
* Web based GUI management interface
|
||||||
|
|
||||||
.. note:: During the installation process, the complete server
|
.. note:: During the installation process, the complete server
|
||||||
is used by default and all existing data is removed.
|
is used by default and all existing data is removed.
|
||||||
@ -58,8 +53,8 @@ It includes the following:
|
|||||||
Install `Proxmox Backup`_ server on Debian
|
Install `Proxmox Backup`_ server on Debian
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
Proxmox ships as a set of Debian packages, so you can install it on
|
Proxmox ships as a set of Debian packages which can be installed on top of a
|
||||||
top of a standard Debian installation. After configuring the
|
standard Debian installation. After configuring the
|
||||||
:ref:`sysadmin_package_repositories`, you need to run:
|
:ref:`sysadmin_package_repositories`, you need to run:
|
||||||
|
|
||||||
.. code-block:: console
|
.. code-block:: console
|
||||||
@ -67,7 +62,7 @@ top of a standard Debian installation. After configuring the
|
|||||||
# apt-get update
|
# apt-get update
|
||||||
# apt-get install proxmox-backup-server
|
# apt-get install proxmox-backup-server
|
||||||
|
|
||||||
Above code keeps the current (Debian) kernel and installs a minimal
|
The commands above keep the current (Debian) kernel and install a minimal
|
||||||
set of required packages.
|
set of required packages.
|
||||||
|
|
||||||
If you want to install the same set of packages as the installer
|
If you want to install the same set of packages as the installer
|
||||||
@ -78,16 +73,15 @@ does, please use the following:
|
|||||||
# apt-get update
|
# apt-get update
|
||||||
# apt-get install proxmox-backup
|
# apt-get install proxmox-backup
|
||||||
|
|
||||||
This installs all required packages, the Proxmox kernel with ZFS_
|
This will install all required packages, the Proxmox kernel with ZFS_
|
||||||
support, and a set of commonly useful packages.
|
support, and a set of common and useful packages.
|
||||||
|
|
||||||
Installing on top of an existing Debian_ installation looks easy, but
|
Installing `Proxmox Backup`_ on top of an existing Debian_ installation looks easy, but
|
||||||
it presumes that you have correctly installed the base system, and you
|
it presumes that the base system and local storage has been set up correctly.
|
||||||
know how you want to configure and use the local storage. Network
|
|
||||||
configuration is also completely up to you.
|
|
||||||
|
|
||||||
In general, this is not trivial, especially when you use LVM_ or
|
In general this is not trivial, especially when LVM_ or ZFS_ is used.
|
||||||
ZFS_.
|
|
||||||
|
The network configuration is completely up to you as well.
|
||||||
|
|
||||||
Install Proxmox Backup server on `Proxmox VE`_
|
Install Proxmox Backup server on `Proxmox VE`_
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
@ -101,9 +95,9 @@ After configuring the
|
|||||||
# apt-get install proxmox-backup-server
|
# apt-get install proxmox-backup-server
|
||||||
|
|
||||||
.. caution:: Installing the backup server directly on the hypervisor
|
.. caution:: Installing the backup server directly on the hypervisor
|
||||||
is not recommended. It is more secure to use a separate physical
|
is not recommended. It is safer to use a separate physical
|
||||||
server to store backups. If the hypervisor server fails, you can
|
server to store backups. Should the hypervisor server fail, you can
|
||||||
still access your backups.
|
still access the backups.
|
||||||
|
|
||||||
Client installation
|
Client installation
|
||||||
-------------------
|
-------------------
|
||||||
@ -111,8 +105,8 @@ Client installation
|
|||||||
Install `Proxmox Backup`_ client on Debian
|
Install `Proxmox Backup`_ client on Debian
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
Proxmox ships as a set of Debian packages, so you can install it on
|
Proxmox ships as a set of Debian packages to be installed on
|
||||||
top of a standard Debian installation. After configuring the
|
top of a standard Debian installation. After configuring the
|
||||||
:ref:`sysadmin_package_repositories`, you need to run:
|
:ref:`sysadmin_package_repositories`, you need to run:
|
||||||
|
|
||||||
.. code-block:: console
|
.. code-block:: console
|
||||||
|
@ -1,14 +1,14 @@
|
|||||||
Introduction
|
Introduction
|
||||||
============
|
============
|
||||||
|
|
||||||
This documentationm is written in :term:`reStructuredText` and formatted with :term:`Sphinx`.
|
This documentation is written in :term:`reStructuredText` and formatted with :term:`Sphinx`.
|
||||||
|
|
||||||
|
|
||||||
What is Proxmox Backup
|
What is Proxmox Backup
|
||||||
----------------------
|
----------------------
|
||||||
|
|
||||||
Proxmox Backup is an enterprise class client-server backup software,
|
Proxmox Backup is an enterprise class client-server backup software,
|
||||||
specially optimized for `Proxmox Virtual Environment`_ to backup
|
specially optimized for the `Proxmox Virtual Environment`_ to backup
|
||||||
:term:`virtual machine`\ s and :term:`container`\ s. It is also
|
:term:`virtual machine`\ s and :term:`container`\ s. It is also
|
||||||
possible to backup physical hosts.
|
possible to backup physical hosts.
|
||||||
|
|
||||||
@ -24,23 +24,23 @@ Architecture
|
|||||||
------------
|
------------
|
||||||
|
|
||||||
Proxmox Backup uses a `Client-server model`_. The server is
|
Proxmox Backup uses a `Client-server model`_. The server is
|
||||||
responsible to store the backup data, and provides an API to create
|
responsible to store the backup data and provides an API to create
|
||||||
backups and restore data. It is also possible to manage disks and
|
backups and restore data. It is possible to manage disks and
|
||||||
other server side resources using this API.
|
other server side resources using this API.
|
||||||
|
|
||||||
A backup client uses this API to access the backed up data,
|
A backup client uses this API to access the backed up data,
|
||||||
i.e. ``proxmox-backup-client`` is a command line tool to create
|
i.e. ``proxmox-backup-client`` is a command line tool to create
|
||||||
backups and restore data. We also deliver an integrated client for
|
backups and restore data. We deliver an integrated client for
|
||||||
QEMU_ with `Proxmox Virtual Environment`_.
|
QEMU_ with `Proxmox Virtual Environment`_.
|
||||||
|
|
||||||
A single backup is allowed to contain several archives. For example,
|
A single backup is allowed to contain several archives. For example,
|
||||||
when you backup a :term:`virtual machine`, each disk is stored as a
|
when you backup a :term:`virtual machine`, each disk is stored as a
|
||||||
separate archive inside that backup. The VM configuration also gets an
|
separate archive inside that backup. The VM configuration also gets an
|
||||||
extra file. This way, it is easy to access and restore important parts
|
extra file. This way, it is easy to access and restore important parts
|
||||||
of the backup, without having to scan the whole backup.
|
of the backup without having to scan the whole backup.
|
||||||
|
|
||||||
|
|
||||||
Main features
|
Main Features
|
||||||
-------------
|
-------------
|
||||||
|
|
||||||
:Proxmox VE: The `Proxmox Virtual Environment`_ is fully
|
:Proxmox VE: The `Proxmox Virtual Environment`_ is fully
|
||||||
@ -49,52 +49,52 @@ Main features
|
|||||||
|
|
||||||
:GUI: We provide a graphical, web based user interface.
|
:GUI: We provide a graphical, web based user interface.
|
||||||
|
|
||||||
:Deduplication: Incremental backup produces large amounts of duplicate
|
:Deduplication: Incremental backups produce large amounts of duplicate
|
||||||
data. The deduplication layer removes that redundancy and makes
|
data. The deduplication layer removes that redundancy and makes
|
||||||
inkremental backup small and space efficient.
|
incremental backups small and space efficient.
|
||||||
|
|
||||||
:Data Integrity: The built in `SHA-256`_ checksum algorithm assures the
|
:Data Integrity: The built in `SHA-256`_ checksum algorithm assures the
|
||||||
accuracy and consistency of your backups.
|
accuracy and consistency of your backups.
|
||||||
|
|
||||||
:Remote Sync: It is possible to efficently synchronize data to remote
|
:Remote Sync: It is possible to efficiently synchronize data to remote
|
||||||
sites. Only deltas containing new data are transfered.
|
sites. Only deltas containing new data are transferred.
|
||||||
|
|
||||||
:Performance: The whole software stack is written in :term:`Rust`,
|
:Performance: The whole software stack is written in :term:`Rust`,
|
||||||
which provides high speed and memory efficiency.
|
to provide high speed and memory efficiency.
|
||||||
|
|
||||||
:Compression: Ultra fast Zstandard_ compression is able to compress
|
:Compression: Ultra fast Zstandard_ compression is able to compress
|
||||||
several gigabytes of data per second.
|
several gigabytes of data per second.
|
||||||
|
|
||||||
:Encryption: Backups can be encrypted at client side using AES-256 in
|
:Encryption: Backups can be encrypted client-side using AES-256 in
|
||||||
GCM_ mode. This authenticated encryption mode (AE_) provides very
|
GCM_ mode. This authenticated encryption mode (AE_) provides very
|
||||||
high performance on modern hardware.
|
high performance on modern hardware.
|
||||||
|
|
||||||
:Open Source: No secrets. You have access to the whole source tree.
|
:Open Source: No secrets. You have access to all the source code.
|
||||||
|
|
||||||
:Support: Commercial support options available from `Proxmox`_.
|
:Support: Commercial support options are available from `Proxmox`_.
|
||||||
|
|
||||||
|
|
||||||
Why Backup?
|
Why Backup?
|
||||||
-----------
|
-----------
|
||||||
|
|
||||||
The primary purpose of backup is to protect against data loss. Data
|
The primary purpose of a backup is to protect against data loss. Data
|
||||||
loss can happen because of faulty hardware, but also by human errors.
|
loss can be caused by faulty hardware, but also by human error.
|
||||||
|
|
||||||
A common mistake is to delete a file or folder which is still
|
A common mistake is to delete a file or folder which is still
|
||||||
required. Virtualization can amplify this problem, because it is now
|
required. Virtualization can amplify this problem. It is now
|
||||||
easy to delete a whole virtual machine by a single button press.
|
easy to delete a whole virtual machine by pressing a single button.
|
||||||
|
|
||||||
Backups can also serve as a toolkit for administrators to temporarily
|
Backups can serve as a toolkit for administrators to temporarily
|
||||||
store data. For example, it is common practice to perform full backups
|
store data. For example, it is common practice to perform full backups
|
||||||
before installing major software updates. If something goes wrong, you
|
before installing major software updates. If something goes wrong, you
|
||||||
can just restore the previous state.
|
can restore the previous state.
|
||||||
|
|
||||||
Another reason for backups are legal requirements. Some data must be
|
Another reason for backups are legal requirements. Some data must be
|
||||||
kept in a safe place for several years so that you can access it if
|
kept in a safe place for several years by law, so that it can be accessed if
|
||||||
required by law.
|
required.
|
||||||
|
|
||||||
Data loss can be very costly as it can severely restrict your
|
Data loss can be very costly as it can severely restrict your
|
||||||
business. Therefore, make sure that you regularly perform a backup
|
business. Therefore, make sure that you perform a backup regularly
|
||||||
and run restore tests.
|
and run restore tests.
|
||||||
|
|
||||||
|
|
||||||
|
@ -5,12 +5,12 @@ Debian Package Repositories
|
|||||||
|
|
||||||
All Debian based systems use APT_ as package
|
All Debian based systems use APT_ as package
|
||||||
management tool. The list of repositories is defined in
|
management tool. The list of repositories is defined in
|
||||||
``/etc/apt/sources.list`` and ``.list`` files found inside
|
``/etc/apt/sources.list`` and ``.list`` files found in the
|
||||||
``/etc/apt/sources.d/``. Updates can be installed directly using
|
``/etc/apt/sources.d/`` directory. Updates can be installed directly with
|
||||||
the ``apt`` command line tool, or via the GUI.
|
the ``apt`` command line tool, or via the GUI.
|
||||||
|
|
||||||
APT_ ``sources.list`` files list one package repository per line, with
|
APT_ ``sources.list`` files list one package repository per line, with
|
||||||
the most preferred source listed first. Empty lines are ignored, and a
|
the most preferred source listed first. Empty lines are ignored and a
|
||||||
``#`` character anywhere on a line marks the remainder of that line as a
|
``#`` character anywhere on a line marks the remainder of that line as a
|
||||||
comment. The information available from the configured sources is
|
comment. The information available from the configured sources is
|
||||||
acquired by ``apt update``.
|
acquired by ``apt update``.
|
||||||
@ -33,7 +33,7 @@ the backup server binaries.
|
|||||||
`Proxmox Backup`_ Enterprise Repository
|
`Proxmox Backup`_ Enterprise Repository
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
This is the default, stable and recommended repository, available for
|
This is the default, stable, and recommended repository. It is available for
|
||||||
all `Proxmox Backup`_ subscription users. It contains the most stable packages,
|
all `Proxmox Backup`_ subscription users. It contains the most stable packages,
|
||||||
and is suitable for production use. The ``pbs-enterprise`` repository is
|
and is suitable for production use. The ``pbs-enterprise`` repository is
|
||||||
enabled by default:
|
enabled by default:
|
||||||
@ -44,15 +44,13 @@ enabled by default:
|
|||||||
deb https://enterprise.proxmox.com/debian/pbs buster pbs-enterprise
|
deb https://enterprise.proxmox.com/debian/pbs buster pbs-enterprise
|
||||||
|
|
||||||
|
|
||||||
As soon as updates are available, the superuser (``root@pam`` user) is
|
To never miss important security fixes, the superuser (``root@pam`` user) is
|
||||||
notified via email about the available new packages. On the GUI, the
|
notified via email about new packages as soon as they are available. The
|
||||||
change-log of each package can be viewed (if available), showing all
|
change-log and details of each package can be viewed in the GUI (if available).
|
||||||
details of the update. So you will never miss important security
|
|
||||||
fixes.
|
|
||||||
|
|
||||||
Please note that you need a valid subscription key to access this
|
Please note that you need a valid subscription key to access this
|
||||||
repository. We offer different support levels, and you can find further
|
repository. More information regarding subscription levels and pricing can be
|
||||||
details at https://www.proxmox.com/en/proxmox-backup/pricing.
|
found at https://www.proxmox.com/en/proxmox-backup/pricing.
|
||||||
|
|
||||||
.. note:: You can disable this repository by commenting out the above
|
.. note:: You can disable this repository by commenting out the above
|
||||||
line using a `#` (at the start of the line). This prevents error
|
line using a `#` (at the start of the line). This prevents error
|
||||||
@ -65,7 +63,7 @@ details at https://www.proxmox.com/en/proxmox-backup/pricing.
|
|||||||
|
|
||||||
As the name suggests, you do not need a subscription key to access
|
As the name suggests, you do not need a subscription key to access
|
||||||
this repository. It can be used for testing and non-production
|
this repository. It can be used for testing and non-production
|
||||||
use. Its not recommended to run on production servers, as these
|
use. It is not recommended to use it on production servers, because these
|
||||||
packages are not always heavily tested and validated.
|
packages are not always heavily tested and validated.
|
||||||
|
|
||||||
We recommend to configure this repository in ``/etc/apt/sources.list``.
|
We recommend to configure this repository in ``/etc/apt/sources.list``.
|
||||||
@ -92,9 +90,9 @@ latest packages and is heavily used by developers to test new
|
|||||||
features.
|
features.
|
||||||
|
|
||||||
.. warning:: the ``pbstest`` repository should (as the name implies)
|
.. warning:: the ``pbstest`` repository should (as the name implies)
|
||||||
only be used for testing new features or bug fixes.
|
only be used to test new features or bug fixes.
|
||||||
|
|
||||||
As usual, you can configure this using ``/etc/apt/sources.list`` by
|
You can configure this using ``/etc/apt/sources.list`` by
|
||||||
adding the following line:
|
adding the following line:
|
||||||
|
|
||||||
.. code-block:: sources.list
|
.. code-block:: sources.list
|
||||||
|
@ -1,15 +1,15 @@
|
|||||||
Description
|
Description
|
||||||
^^^^^^^^^^^
|
^^^^^^^^^^^
|
||||||
|
|
||||||
``pxar`` is a command line utility used to create and manipulate archives in the
|
``pxar`` is a command line utility to create and manipulate archives in the
|
||||||
:ref:`pxar-format`.
|
:ref:`pxar-format`.
|
||||||
It is inspired by `casync file archive format
|
It is inspired by `casync file archive format
|
||||||
<http://0pointer.net/blog/casync-a-tool-for-distributing-file-system-images.html>`_,
|
<http://0pointer.net/blog/casync-a-tool-for-distributing-file-system-images.html>`_,
|
||||||
which has a similar use-case.
|
which caters to a similar use-case.
|
||||||
The ``.pxar`` format is adapted to fulfill the specific needs of the proxmox
|
The ``.pxar`` format is adapted to fulfill the specific needs of the Proxmox
|
||||||
backup server, for example efficient storage of hardlinks.
|
Backup Server, for example, efficient storage of hardlinks.
|
||||||
The format is designed to reduce storage space needed on the server by achieving
|
The format is designed to reduce storage space needed on the server by achieving
|
||||||
high de-duplication.
|
a high level of de-duplication.
|
||||||
|
|
||||||
Creating an Archive
|
Creating an Archive
|
||||||
^^^^^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^^^^^
|
||||||
@ -20,23 +20,23 @@ Run the following command to create an archive of a folder named ``source``:
|
|||||||
|
|
||||||
# pxar create archive.pxar source
|
# pxar create archive.pxar source
|
||||||
|
|
||||||
This will create a new archive called ``archive.pxar`` from the contents of the
|
This will create a new archive called ``archive.pxar`` with the contents of the
|
||||||
``source`` folder.
|
``source`` folder.
|
||||||
|
|
||||||
.. NOTE:: ``pxar`` will not overwrite any existing archives. If an archive with
|
.. NOTE:: ``pxar`` will not overwrite any existing archives. If an archive with
|
||||||
the same name is already present in the target folder, the creation will
|
the same name is already present in the target folder, the creation will
|
||||||
fail.
|
fail.
|
||||||
|
|
||||||
By default, ``pxar`` will skip certain mountpoints and not follow device
|
By default, ``pxar`` will skip certain mountpoints and will not follow device
|
||||||
boundaries. This design decision is based on the primary use case of creating
|
boundaries. This design decision is based on the primary use case of creating
|
||||||
archives for backups, where it makes no sense to store the content of certain
|
archives for backups. It is sensible to not back up the contents of certain
|
||||||
temporary or system specific files.
|
temporary or system specific files.
|
||||||
In order to alter this behavior and follow device boundaries, use the
|
To alter this behavior and follow device boundaries, use the
|
||||||
``--all-file-systems`` flag.
|
``--all-file-systems`` flag.
|
||||||
|
|
||||||
It is possible to exclude certain files and/or folders from the archive by
|
It is possible to exclude certain files and/or folders from the archive by
|
||||||
passing glob match patterns as additional parameters. Whenever a file is matched
|
passing glob match patterns as additional parameters. Whenever a file is matched
|
||||||
by one of the patterns, you will get a warning saying that this file is skipped
|
by one of the patterns, you will get a warning stating that this file is skipped
|
||||||
and therefore not included in the archive.
|
and therefore not included in the archive.
|
||||||
|
|
||||||
For example, you can exclude all files ending in ``.txt`` from the archive
|
For example, you can exclude all files ending in ``.txt`` from the archive
|
||||||
@ -50,7 +50,7 @@ Be aware that the shell itself will try to expand all of the glob patterns befor
|
|||||||
invoking ``pxar``.
|
invoking ``pxar``.
|
||||||
In order to avoid this, all globs have to be quoted correctly.
|
In order to avoid this, all globs have to be quoted correctly.
|
||||||
|
|
||||||
It is also possible to pass a list of match pattern to fulfill more complex
|
It is possible to pass a list of match patterns to fulfill more complex
|
||||||
file exclusion/inclusion behavior, although it is recommended to use the
|
file exclusion/inclusion behavior, although it is recommended to use the
|
||||||
``.pxarexclude`` files instead for such cases.
|
``.pxarexclude`` files instead for such cases.
|
||||||
|
|
||||||
@ -67,7 +67,7 @@ All the glob pattern are relative to the ``source`` directory.
|
|||||||
previous ones. Permutations of the same patterns lead to different results.
|
previous ones. Permutations of the same patterns lead to different results.
|
||||||
|
|
||||||
``pxar`` will store the list of glob match patterns passed as parameters via the
|
``pxar`` will store the list of glob match patterns passed as parameters via the
|
||||||
command line in a file called ``.pxarexclude-cli`` and store it at the root of
|
command line in a file called ``.pxarexclude-cli`` and stores it at the root of
|
||||||
the archive.
|
the archive.
|
||||||
If a file with this name is already present in the source folder during archive
|
If a file with this name is already present in the source folder during archive
|
||||||
creation, this file is not included in the archive and the file containing the
|
creation, this file is not included in the archive and the file containing the
|
||||||
@ -79,9 +79,9 @@ It is possible to create and place these files in any directory of the filesyste
|
|||||||
tree.
|
tree.
|
||||||
These files must contain one pattern per line, again later patterns win over
|
These files must contain one pattern per line, again later patterns win over
|
||||||
previous ones.
|
previous ones.
|
||||||
The patterns control file exclusion of files present within the given directory
|
The patterns control file exclusions of files present within the given directory
|
||||||
or further below it in the tree.
|
or further below it in the tree.
|
||||||
The behaviour is the same as described in :ref:`creating-backups`.
|
The behavior is the same as described in :ref:`creating-backups`.
|
||||||
|
|
||||||
Extracting an Archive
|
Extracting an Archive
|
||||||
^^^^^^^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^^^^^^^
|
||||||
@ -96,7 +96,7 @@ with the following command:
|
|||||||
If no target is provided, the content of the archive is extracted to the current
|
If no target is provided, the content of the archive is extracted to the current
|
||||||
working directory.
|
working directory.
|
||||||
|
|
||||||
In order to restore only part of an archive or single files and/or folders,
|
In order to restore only parts of an archive, single files and/or folders,
|
||||||
it is possible to pass the corresponding glob match patterns as additional
|
it is possible to pass the corresponding glob match patterns as additional
|
||||||
parameters or use the patterns stored in a file:
|
parameters or use the patterns stored in a file:
|
||||||
|
|
||||||
@ -109,8 +109,8 @@ sub-folders in the archive ``etc.pxar`` to the target ``/restore/target/etc``.
|
|||||||
A path to the file containing match patterns can be specified using the
|
A path to the file containing match patterns can be specified using the
|
||||||
``--files-from`` parameter.
|
``--files-from`` parameter.
|
||||||
|
|
||||||
List the Content of an Archive
|
List the Contents of an Archive
|
||||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
To display the files and directories contained in an archive ``archive.pxar``,
|
To display the files and directories contained in an archive ``archive.pxar``,
|
||||||
run the following command:
|
run the following command:
|
||||||
@ -126,7 +126,7 @@ Mounting an Archive
|
|||||||
^^^^^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
``pxar`` allows you to mount and inspect the contents of an archive via _`FUSE`.
|
``pxar`` allows you to mount and inspect the contents of an archive via _`FUSE`.
|
||||||
In order to mount an archive named ``archive.pxar`` to the mountpoint ``mnt``,
|
In order to mount an archive named ``archive.pxar`` to the mountpoint ``/mnt``,
|
||||||
run the command:
|
run the command:
|
||||||
|
|
||||||
.. code-block:: console
|
.. code-block:: console
|
||||||
|
Loading…
Reference in New Issue
Block a user