2020-10-02 17:12:57 +03:00
Storage
=======
2020-11-10 12:15:44 +03:00
.. _storage_disk_management:
2020-10-02 17:12:57 +03:00
Disk Management
---------------
.. image :: images/screenshots/pbs-gui-disks.png
:align: right
:alt: List of disks
Proxmox Backup Server comes with a set of disk utilities, which are
accessed using the `` disk `` subcommand. This subcommand allows you to initialize
disks, create various filesystems, and get information about the disks.
To view the disks connected to the system, navigate to **Administration ->
Disks** in the web interface or use the `` list `` subcommand of
`` disk `` :
.. code-block :: console
# proxmox-backup-manager disk list
┌──────┬────────┬─────┬───────────┬─────────────┬───────────────┬─────────┬────────┐
│ name │ used │ gpt │ disk-type │ size │ model │ wearout │ status │
╞══════╪════════╪═════╪═══════════╪═════════════╪═══════════════╪═════════╪════════╡
│ sda │ lvm │ 1 │ hdd │ 34359738368 │ QEMU_HARDDISK │ - │ passed │
├──────┼────────┼─────┼───────────┼─────────────┼───────────────┼─────────┼────────┤
│ sdb │ unused │ 1 │ hdd │ 68719476736 │ QEMU_HARDDISK │ - │ passed │
├──────┼────────┼─────┼───────────┼─────────────┼───────────────┼─────────┼────────┤
│ sdc │ unused │ 1 │ hdd │ 68719476736 │ QEMU_HARDDISK │ - │ passed │
└──────┴────────┴─────┴───────────┴─────────────┴───────────────┴─────────┴────────┘
To initialize a disk with a new GPT, use the `` initialize `` subcommand:
.. code-block :: console
# proxmox-backup-manager disk initialize sdX
.. image :: images/screenshots/pbs-gui-disks-dir-create.png
:align: right
:alt: Create a directory
You can create an `` ext4 `` or `` xfs `` filesystem on a disk using `` fs
create`` , or by navigating to **Administration -> Disks -> Directory** in the
web interface and creating one from there. The following command creates an
`` ext4 `` filesystem and passes the `` --add-datastore `` parameter, in order to
automatically create a datastore on the disk (in this case `` sdd `` ). This will
create a datastore at the location `` /mnt/datastore/store1 `` :
.. code-block :: console
# proxmox-backup-manager disk fs create store1 --disk sdd --filesystem ext4 --add-datastore true
.. image :: images/screenshots/pbs-gui-disks-zfs-create.png
:align: right
:alt: Create ZFS
You can also create a `` zpool `` with various raid levels from **Administration
-> Disks -> Zpool** in the web interface, or by using `` zpool create `` . The command
below creates a mirrored `` zpool `` using two disks (`` sdb `` & `` sdc `` ) and
2020-11-05 16:36:28 +03:00
mounts it under `` /mnt/datastore/zpool1 `` :
2020-10-02 17:12:57 +03:00
.. code-block :: console
# proxmox-backup-manager disk zpool create zpool1 --devices sdb,sdc --raidlevel mirror
.. note :: You can also pass the `` --add-datastore `` parameter here, to automatically
create a datastore from the disk.
You can use `` disk fs list `` and `` disk zpool list `` to keep track of your
filesystems and zpools respectively.
Proxmox Backup Server uses the package smartmontools. This is a set of tools
used to monitor and control the S.M.A.R.T. system for local hard disks. If a
disk supports S.M.A.R.T. capability, and you have this enabled, you can
display S.M.A.R.T. attributes from the web interface or by using the command:
.. code-block :: console
# proxmox-backup-manager disk smart-attributes sdX
.. note :: This functionality may also be accessed directly through the use of
the `` smartctl `` command, which comes as part of the smartmontools package
(see `` man smartctl `` for more details).
.. _datastore_intro:
2020-11-10 11:24:06 +03:00
:term: `Datastore`
2020-10-02 17:12:57 +03:00
-----------------
A datastore refers to a location at which backups are stored. The current
2020-10-07 15:03:48 +03:00
implementation uses a directory inside a standard Unix file system (`` ext4 `` ,
2020-10-02 17:12:57 +03:00
`` xfs `` or `` zfs `` ) to store the backup data.
Datastores are identified by a simple *ID* . You can configure this
when setting up the datastore. The configuration information for datastores
is stored in the file `` /etc/proxmox-backup/datastore.cfg `` .
.. note :: The `File Layout`_ requires the file system to support at least *65538*
subdirectories per directory. That number comes from the 2\ :sup: `16`
pre-created chunk namespace directories, and the `` . `` and `` .. `` default
directory entries. This requirement excludes certain filesystems and
filesystem configuration from being supported for a datastore. For example,
`` ext3 `` as a whole or `` ext4 `` with the `` dir_nlink `` feature manually disabled.
Datastore Configuration
~~~~~~~~~~~~~~~~~~~~~~~
2020-11-06 17:46:26 +03:00
.. image :: images/screenshots/pbs-gui-datastore-content.png
2020-10-02 17:12:57 +03:00
:align: right
:alt: Datastore Overview
You can configure multiple datastores. Minimum one datastore needs to be
configured. The datastore is identified by a simple *name* and points to a
directory on the filesystem. Each datastore also has associated retention
settings of how many backup snapshots for each interval of `` hourly `` ,
`` daily `` , `` weekly `` , `` monthly `` , `` yearly `` as well as a time-independent
2020-10-05 18:01:29 +03:00
number of backups to keep in that store. :ref: `backup-pruning` and
2021-02-05 18:10:29 +03:00
:ref: `garbage collection <client_garbage-collection>` can also be configured to run
periodically based on a configured schedule (see :ref: `calendar-event-scheduling` ) per datastore.
2020-10-02 17:12:57 +03:00
2020-11-10 12:15:44 +03:00
.. _storage_datastore_create:
2020-10-02 17:12:57 +03:00
Creating a Datastore
^^^^^^^^^^^^^^^^^^^^
.. image :: images/screenshots/pbs-gui-datastore-create-general.png
:align: right
:alt: Create a datastore
2020-11-06 17:46:26 +03:00
You can create a new datastore from the web interface, by clicking **Add
Datastore** in the side menu, under the ** Datastore** section. In the setup
window:
2020-10-02 17:12:57 +03:00
* *Name* refers to the name of the datastore
* *Backing Path* is the path to the directory upon which you want to create the
datastore
* *GC Schedule* refers to the time and intervals at which garbage collection
runs
* *Prune Schedule* refers to the frequency at which pruning takes place
2020-11-06 17:46:26 +03:00
* *Prune Options* set the amount of backups which you would like to keep (see
:ref: `backup-pruning` ).
* *Comment* can be used to add some contextual information to the datastore.
2020-10-02 17:12:57 +03:00
Alternatively you can create a new datastore from the command line. The
following command creates a new datastore called `` store1 `` on :file: `/backup/disk1/store1`
.. code-block :: console
# proxmox-backup-manager datastore create store1 /backup/disk1/store1
Managing Datastores
^^^^^^^^^^^^^^^^^^^
To list existing datastores from the command line run:
.. code-block :: console
# proxmox-backup-manager datastore list
┌────────┬──────────────────────┬─────────────────────────────┐
│ name │ path │ comment │
╞════════╪══════════════════════╪═════════════════════════════╡
│ store1 │ /backup/disk1/store1 │ This is my default storage. │
└────────┴──────────────────────┴─────────────────────────────┘
You can change the garbage collection and prune settings of a datastore, by
editing the datastore from the GUI or by using the `` update `` subcommand. For
example, the below command changes the garbage collection schedule using the
`` update `` subcommand and prints the properties of the datastore with the
`` show `` subcommand:
.. code-block :: console
# proxmox-backup-manager datastore update store1 --gc-schedule 'Tue 04:27'
# proxmox-backup-manager datastore show store1
┌────────────────┬─────────────────────────────┐
│ Name │ Value │
╞════════════════╪═════════════════════════════╡
│ name │ store1 │
├────────────────┼─────────────────────────────┤
│ path │ /backup/disk1/store1 │
├────────────────┼─────────────────────────────┤
│ comment │ This is my default storage. │
├────────────────┼─────────────────────────────┤
│ gc-schedule │ Tue 04:27 │
├────────────────┼─────────────────────────────┤
│ keep-last │ 7 │
├────────────────┼─────────────────────────────┤
│ prune-schedule │ daily │
└────────────────┴─────────────────────────────┘
Finally, it is possible to remove the datastore configuration:
.. code-block :: console
# proxmox-backup-manager datastore remove store1
.. note :: The above command removes only the datastore configuration. It does
not delete any data from the underlying directory.
File Layout
^^^^^^^^^^^
After creating a datastore, the following default layout will appear:
.. code-block :: console
# ls -arilh /backup/disk1/store1
276493 -rw-r--r-- 1 backup backup 0 Jul 8 12:35 .lock
276490 drwxr-x--- 1 backup backup 1064960 Jul 8 12:35 .chunks
`.lock` is an empty file used for process locking.
The `.chunks` directory contains folders, starting from `0000` and taking hexadecimal values until `ffff` . These
directories will store the chunked data after a backup operation has been executed.
.. code-block :: console
# ls -arilh /backup/disk1/store1/.chunks
545824 drwxr-x--- 2 backup backup 4.0K Jul 8 12:35 ffff
545823 drwxr-x--- 2 backup backup 4.0K Jul 8 12:35 fffe
415621 drwxr-x--- 2 backup backup 4.0K Jul 8 12:35 fffd
415620 drwxr-x--- 2 backup backup 4.0K Jul 8 12:35 fffc
353187 drwxr-x--- 2 backup backup 4.0K Jul 8 12:35 fffb
344995 drwxr-x--- 2 backup backup 4.0K Jul 8 12:35 fffa
144079 drwxr-x--- 2 backup backup 4.0K Jul 8 12:35 fff9
144078 drwxr-x--- 2 backup backup 4.0K Jul 8 12:35 fff8
144077 drwxr-x--- 2 backup backup 4.0K Jul 8 12:35 fff7
...
403180 drwxr-x--- 2 backup backup 4.0K Jul 8 12:35 000c
403179 drwxr-x--- 2 backup backup 4.0K Jul 8 12:35 000b
403177 drwxr-x--- 2 backup backup 4.0K Jul 8 12:35 000a
402530 drwxr-x--- 2 backup backup 4.0K Jul 8 12:35 0009
402513 drwxr-x--- 2 backup backup 4.0K Jul 8 12:35 0008
402509 drwxr-x--- 2 backup backup 4.0K Jul 8 12:35 0007
276509 drwxr-x--- 2 backup backup 4.0K Jul 8 12:35 0006
276508 drwxr-x--- 2 backup backup 4.0K Jul 8 12:35 0005
276507 drwxr-x--- 2 backup backup 4.0K Jul 8 12:35 0004
276501 drwxr-x--- 2 backup backup 4.0K Jul 8 12:35 0003
276499 drwxr-x--- 2 backup backup 4.0K Jul 8 12:35 0002
276498 drwxr-x--- 2 backup backup 4.0K Jul 8 12:35 0001
276494 drwxr-x--- 2 backup backup 4.0K Jul 8 12:35 0000
276489 drwxr-xr-x 3 backup backup 4.0K Jul 8 12:35 ..
276490 drwxr-x--- 1 backup backup 1.1M Jul 8 12:35 .