PVE/Backup Server: различия между версиями
(Новая страница: «{{Stub}} Proxmox Backup Server (PBS) — клиент-серверное решение для резервного копирования и восстановления виртуальных машин, контейнеров и физических узлов. Решение оптимизировано для проекта PVE и позволяет безопасно создавать резервные копии. Поддерживается и...») |
|||
(не показаны 24 промежуточные версии этого же участника) | |||
Строка 1: | Строка 1: | ||
Proxmox Backup Server (PBS) — клиент-серверное решение для резервного копирования и восстановления виртуальных машин, контейнеров и физических узлов. Решение оптимизировано для проекта [[PVE]] и позволяет безопасно создавать резервные копии. Поддерживается инкрементное резервное копирование с полной дедупликацией, что значительно снижает нагрузку на сеть и экономит пространство для хранения. | Proxmox Backup Server (PBS) — клиент-серверное решение для резервного копирования и восстановления виртуальных машин, контейнеров и физических узлов. Решение оптимизировано для проекта [[PVE]] и позволяет безопасно создавать резервные копии. Поддерживается инкрементное резервное копирование с полной дедупликацией, что значительно снижает нагрузку на сеть и экономит пространство для хранения. | ||
Строка 7: | Строка 6: | ||
== Установка == | == Установка == | ||
=== Установка сервера === | |||
Минимальные требования к серверу (предназначены только для тестирования): | Минимальные требования к серверу (предназначены только для тестирования): | ||
Строка 22: | Строка 23: | ||
{{Note| Не рекомендуется устанавливать сервер резервного копирования непосредственно на гипервизор. Безопаснее использовать отдельный физический сервер для хранения резервных копий. }} | {{Note| Не рекомендуется устанавливать сервер резервного копирования непосредственно на гипервизор. Безопаснее использовать отдельный физический сервер для хранения резервных копий. }} | ||
Установить сервер | Установить сервер PBS (пакет {{pkgL|proxmox-backup-server}}) можно следующей командой: | ||
< | <syntaxhighlight lang="bash"># apt-get install proxmox-backup-server</syntaxhighlight> | ||
Запустить и добавить в автозагрузку Proxmox Backup API Proxy Server: | Запустить и добавить в автозагрузку Proxmox Backup API Proxy Server: | ||
< | <syntaxhighlight lang="bash"># systemctl enable --now proxmox-backup-proxy.service</syntaxhighlight> | ||
Служба proxmox-backup-proxy предоставляет API Proxmox Backup Server через TCP-порт 8007 с использованием HTTPS. Она имеет весьма ограниченные разрешения. Операции, требующие дополнительных разрешений, перенаправляются в локальную службу proxmox-backup. | |||
Служба proxmox-backup предоставляет API управления Proxmox Backup Server по адресу 127.0.0.1:82. Она имеет разрешение на выполнение всех привилегированных операций. | |||
{{Note|Для работы с локальным ZFS хранилищем должен быть установлен модуль ядра с поддержкой ZFS (например, kernel-modules-zfs-std-def). | {{Note|Для работы с локальным ZFS хранилищем должен быть установлен модуль ядра с поддержкой ZFS (например, {{pkgL|kernel-modules-zfs-std-def}}). | ||
Включить модуль можно следующей командой: | Включить модуль можно следующей командой: | ||
< | <syntaxhighlight lang="bash"># modprobe zfs</syntaxhighlight> | ||
Чтобы не вводить эту команду после перезагрузки, следует раскомментировать строку: | Чтобы не вводить эту команду после перезагрузки, следует раскомментировать строку: | ||
#zfs | #zfs | ||
в файле {{path|/etc/modules-load.d/zfs.conf}}. }} | в файле {{path|/etc/modules-load.d/zfs.conf}}. }} | ||
=== Установка клиента === | |||
Установить клиент PBS (пакет {{pkgL|proxmox-backup-client}}): | |||
<syntaxhighlight lang="bash"># apt-get install proxmox-backup-client</syntaxhighlight> | |||
== Веб-интерфейс == | == Веб-интерфейс == | ||
PBS предлагает интегрированный веб-интерфейс для управления сервером. Все административные задачи можно выполнять в веб-браузере. Веб-интерфейс также предоставляет встроенную консоль. | PBS предлагает интегрированный веб-интерфейс для управления сервером. Все административные задачи можно выполнять в веб-браузере. Веб-интерфейс также предоставляет встроенную консоль. | ||
Веб-интерфейс PBS доступен по адресу https://< | Веб-интерфейс PBS доступен по адресу https://<IP-адрес|имя>:8007. Потребуется пройти аутентификацию (логин по умолчанию: root, пароль указывается в процессе установки). | ||
[[Изображение:Pbs-auth.png|Аутентификация в веб-интерфейсе PBS]] | [[Изображение:Pbs-auth.png|Аутентификация в веб-интерфейсе PBS]] | ||
Строка 50: | Строка 61: | ||
=== Управление дисками === | === Управление дисками === | ||
Увидеть диски, подключенные к системе, можно в веб-интерфейсе «Управление» → | Увидеть диски, подключенные к системе, можно в веб-интерфейсе «Управление» → «Хранилище/Диски»: | ||
[[Изображение:Pbs-backup-disks.png|Диски, подключенные к системе]] | [[Изображение:Pbs-backup-disks.png|PBS. Диски, подключенные к системе]] | ||
Просмотр списка дисков в командной строке: | |||
< | <syntaxhighlight lang="bash"># proxmox-backup-manager disk list | ||
┌─────────┬─────────┬─────┬───────────┬──────────────┬──────────────────────┬─────────┬─────────┐ | |||
│ name │ used | │ name │ used │ gpt │ disk-type │ size │ model │ wearout │ status │ | ||
╞═════════╪═════════╪═════╪═══════════╪══════════════╪══════════════════════╪═════════╪═════════╡ | |||
│ nvme0n1 │ zfs | │ nvme0n1 │ zfs │ 1 │ ssd │ 161061273600 │ ORCL-VBOX-NVME-VER12 │ 0.00 % │ passed │ | ||
├─────────┼─────────┼─────┼───────────┼──────────────┼──────────────────────┼─────────┼─────────┤ | |||
│ nvme0n2 │ zfs | │ nvme0n2 │ zfs │ 1 │ ssd │ 161061273600 │ ORCL-VBOX-NVME-VER12 │ 0.00 % │ passed │ | ||
├─────────┼─────────┼─────┼───────────┼──────────────┼──────────────────────┼─────────┼─────────┤ | |||
│ | │ nvme0n3 │ mounted │ 1 │ ssd │ 53687091200 │ ORCL-VBOX-NVME-VER12 │ 0.00 % │ passed │ | ||
├─────────┼─────────┼─────┼───────────┼──────────────┼──────────────────────┼─────────┼─────────┤ | |||
│ | │ sda │ mounted │ 1 │ hdd │ 62277025792 │ VBOX_HARDDISK │ - │ unknown │ | ||
└─────────┴─────────┴─────┴───────────┴──────────────┴──────────────────────┴─────────┴─────────┘ | |||
</ | </syntaxhighlight> | ||
Создание файловой системы ext4 или xfs на диске в веб-интерфейсе: | Создание файловой системы ext4 или xfs на диске в веб-интерфейсе: | ||
Строка 73: | Строка 84: | ||
[[Изображение:Pbs-disks-add.png|Proxmox Backup Server. Создать файловую систему на диске]] | [[Изображение:Pbs-disks-add.png|Proxmox Backup Server. Создать файловую систему на диске]] | ||
Пример создания файловой системы в командной строке (будет создана файловая система ext4 и хранилище данных на диске nvme0n3, хранилище данных будет создано по адресу {{path|/mnt/datastore/store1}}): | |||
< | <syntaxhighlight lang="bash"># proxmox-backup-manager disk fs create store1 --disk nvme0n3 --filesystem ext4 --add-datastore true | ||
create datastore ' | create datastore 'store1' on disk nvme0n3 | ||
Chunkstore create: 1% | Chunkstore create: 1% | ||
Chunkstore create: 2% | Chunkstore create: 2% | ||
Строка 82: | Строка 93: | ||
Chunkstore create: 99% | Chunkstore create: 99% | ||
TASK OK | TASK OK | ||
</ | </syntaxhighlight> | ||
Для создания | Для создания zpool в веб-интерфейсе, следует в разделе «Хранилище/Диски» перейти на вкладку «ZFS» и нажать кнопку «Создать: ZFS». В открывшемся окне следует задать параметры zpool: имя хранилища, выбрать диски, уровень RAID и нажать кнопку «OK»: | ||
[[Изображение:Pbs-disks-zfs.png|Proxmox Backup Server. Создание хранилища ZFS]] | [[Изображение:Pbs-disks-zfs.png|Proxmox Backup Server. Создание хранилища ZFS]] | ||
Команда для создания зеркального zpool с использованием двух дисков и монтированием в | Команда для создания зеркального zpool с использованием двух дисков и монтированием в {{path|/mnt/datastore/zfs_st}}: | ||
<syntaxhighlight lang="bash"># proxmox-backup-manager disk zpool create zfs_st --devices nvme0n1,nvme0n2 --raidlevel mirror</syntaxhighlight> | |||
Для мониторинга состояния локальных дисков используется пакет {{pkgL|smartmontools}}. Он содержит набор инструментов для мониторинга и управления S.M.A.R.T. системой для локальных жестких дисков. Если диск поддерживает S.M.A.R.T. и поддержка SMART для диска включена, просмотреть данные S.M.A.R.T. можно в веб-интерфейсе или с помощью команды: | |||
< | <syntaxhighlight lang="bash"># proxmox-backup-manager disk smart-attributes sdX</syntaxhighlight> | ||
=== Хранилище данных === | === Хранилище данных === | ||
Хранилище данных — это место, где хранятся резервные копии. Текущая реализация использует каталог внутри стандартной файловой системы (ext4, xfs или zfs) для хранения данных резервного копирования. | Хранилище данных — это место, где хранятся резервные копии. Текущая реализация PBS использует каталог внутри стандартной файловой системы (ext4, xfs или zfs) для хранения данных резервного копирования. | ||
Информация о конфигурации для хранилищ данных хранится в файле {{path|/etc/proxmox-backup/datastore.cfg}}. | Информация о конфигурации для хранилищ данных хранится в файле {{path|/etc/proxmox-backup/datastore.cfg}}. | ||
Необходимо настроить как минимум одно хранилище данных. Хранилище данных идентифицируется именем и указывает на каталог в файловой системе. | Необходимо настроить как минимум одно хранилище данных. Хранилище данных идентифицируется именем и указывает на каталог в файловой системе. С каждым хранилищем связаны настройки хранения, определяющие, сколько снимков резервных копий для каждого интервала времени (ежечасно, ежедневно, еженедельно, ежемесячно, ежегодно) хранить в этом хранилище. | ||
==== Создание хранилища данных ==== | ==== Создание хранилища данных ==== | ||
Для создания хранилища в веб-интерфейсе, необходимо нажать кнопку | Для создания хранилища в веб-интерфейсе, необходимо нажать кнопку «Добавить хранилище данных» в боковом меню в разделе «Хранилище данных». В открывшемся окне необходимо указать: | ||
* «Имя» — название хранилища данных; | * «Имя» — название хранилища данных; | ||
* | * «Путь к каталогу хранилища» — путь к каталогу, в котором будет создано хранилище данных; | ||
* | * «Расписание сборщика мусора» — частота, с которой запускается сборка мусора; | ||
* | * «Расписание удаления» — частота, с которой происходит удаление ранее созданных резервных копий; | ||
* | * «Параметры удаления» — количество резервных копий, которые необходимо хранить. | ||
[[Изображение:Pbs-datastore-add.png|Proxmox Backup Server. Создание хранилища данных]] | [[Изображение:Pbs-datastore-add.png|Proxmox Backup Server. Создание хранилища данных]] | ||
Создание хранилища данных в консоли: | Создание хранилища данных в консоли: | ||
< | <syntaxhighlight lang="bash"># proxmox-backup-manager datastore create store2 /mnt/backup/disk1</syntaxhighlight> | ||
После создания хранилища данных по умолчанию появляется следующий макет: | После создания хранилища данных по умолчанию появляется следующий макет: | ||
< | <syntaxhighlight lang="bash"># ls -arilh /mnt/backup/disk1/ | ||
итого 1,1M | итого 1,1M | ||
665243 -rw-r--r-- 1 backup backup 0 мар 31 14:05 .lock | 665243 -rw-r--r-- 1 backup backup 0 мар 31 14:05 .lock | ||
665242 drwxr-x--- 1 backup backup 1,1M мар 31 14:05 .chunks | 665242 drwxr-x--- 1 backup backup 1,1M мар 31 14:05 .chunks | ||
665240 drwxr-xr-x 3 root root 4,0K мар 31 13:56 .. | 665240 drwxr-xr-x 3 root root 4,0K мар 31 13:56 .. | ||
665241 drwxr-xr-x 3 backup backup 4,0K мар 31 14:05</ | 665241 drwxr-xr-x 3 backup backup 4,0K мар 31 14:05</syntaxhighlight> | ||
* .lock — | * .lock — пустой файл, используемый для блокировки процесса; | ||
* каталог .chunks содержит | * каталог .chunks — содержит подкаталоги, с именами от 0000 до ffff. В этих каталогах будут храниться фрагментированные данные, после выполнения операции резервного копирования. | ||
==== Управление хранилищами данных ==== | ==== Управление хранилищами данных ==== | ||
Вывести список существующих хранилищ данных: | Вывести список существующих хранилищ данных: | ||
< | <syntaxhighlight lang="bash"># proxmox-backup-manager datastore list</syntaxhighlight> | ||
Изменить расписание сборки мусора и вывести свойства хранилища данных: | Изменить расписание сборки мусора и вывести свойства хранилища данных: | ||
< | <syntaxhighlight lang="bash"># proxmox-backup-manager datastore update store2 --gc-schedule 'Tue 04:27'</syntaxhighlight> | ||
< | <syntaxhighlight lang="bash"># proxmox-backup-manager datastore show store2</syntaxhighlight> | ||
Удалить хранилище данных: | Удалить хранилище данных: | ||
< | <syntaxhighlight lang="bash"># proxmox-backup-manager datastore remove store2</syntaxhighlight> | ||
Данная команда удалит только конфигурацию хранилища данных, данные из базового каталога удалены не будут. | Данная команда удалит только конфигурацию хранилища данных, данные из базового каталога удалены не будут. | ||
Строка 140: | Строка 154: | ||
== Пользователи == | == Пользователи == | ||
=== Управление пользователями === | === Управление пользователями === | ||
PBS хранит данные пользователей в файле {{path|/etc/proxmox-backup/user.cfg}}. | |||
Пользователя часто внутренне идентифицируют по его имени и области аутентификации в форме <user>@<realm>. | |||
После установки PBS существует один пользователь root@pam, который соответствует суперпользователю ОС. Этого пользователя нельзя удалить, все системные письма будут отправляться на адрес электронной почты, назначенный этому пользователю. Суперпользователь имеет неограниченные права, поэтому рекомендуется добавить других пользователей с меньшими правами. | |||
[[Изображение:Pbs-auth2.png|Proxmox Backup Server. Выбор типа аутентификации в веб-интерфейсе]] | |||
=== Области аутентификации === | |||
PBS поддерживает следующие области (методы) аутентификации: | PBS поддерживает следующие области (методы) аутентификации: | ||
* | * Стандартная аутентификация Linux PAM (Linux PAM standart authentication) — пользователь аутентифицируется с помощью своего обычного системного пароля; | ||
* | * Сервер аутентификации Proxmox Backup (Proxmox Backup authentication server) — аутентификация Proxmox Backup Server. Хэшированные пароли хранятся в файле {{path|/etc/proxmox-backup/shadow.json}}; | ||
* | * Сервер LDAP — позволяет использовать внешний LDAP-сервер для аутентификации пользователей (например, OpenLDAP); | ||
* Сервер OpenID Connect — уровень идентификации поверх протокола OATH 2.0. Позволяет аутентифицировать пользователей на основе аутентификации, выполняемой внешним сервером авторизации. | |||
==== Стандартная аутентификация Linux PAM ==== | |||
При использовании аутентификации Linux PAM системный пользователь должен существовать (должен быть создан, например, с помощью команды {{cmd|adduser}}). | |||
Область Linux PAM создается по умолчанию и не может быть удалена. | |||
Для добавления пользователя в веб-интерфейсе, следует в веб-интерфейсе перейти в раздел «Конфигурация» → | ==== Сервер аутентификации Proxmox Backup ==== | ||
Область аутентификации PBS представляет собой хранилище паролей в стиле Unix ({path|/etc/proxmox-backup/shadow.json}}). Пароль шифруется с использованием метода хеширования SHA-256. | |||
Область создается по умолчанию. | |||
Для добавления пользователя в веб-интерфейсе, следует в веб-интерфейсе перейти в раздел «Конфигурация» → «Управление доступом» и на вкладке «Управление пользователями» нажать кнопку «Добавить»: | |||
[[Изображение:Pbs-useradd.png|Proxmox Backup Server. Создание нового пользователя]] | [[Изображение:Pbs-useradd.png|Proxmox Backup Server. Создание нового пользователя]] | ||
Управление пользователями в консоли: | Управление пользователями в консоли: | ||
* просмотреть список пользователей: | * просмотреть список пользователей: | ||
*:< | *:<syntaxhighlight lang="bash"># proxmox-backup-manager user list | ||
┌──────────────┬────────┬────────┬───────────┬──────────┬───────┬───────────┐ | ┌──────────────┬────────┬────────┬───────────┬──────────┬───────┬───────────┐ | ||
│ userid │ enable │ expire │ firstname │ lastname │ email │ comment │ | │ userid │ enable │ expire │ firstname │ lastname │ email │ comment │ | ||
Строка 162: | Строка 194: | ||
├──────────────┼────────┼────────┼───────────┼──────────┼───────┼───────────┤ | ├──────────────┼────────┼────────┼───────────┼──────────┼───────┼───────────┤ | ||
│ root@pam │ 1 │ never │ │ │ │ Superuser │ | │ root@pam │ 1 │ never │ │ │ │ Superuser │ | ||
└──────────────┴────────┴────────┴───────────┴──────────┴───────┴───────────┘</ | └──────────────┴────────┴────────┴───────────┴──────────┴───────┴───────────┘</syntaxhighlight> | ||
*создать пользователя: | *создать пользователя: | ||
*:< | *:<syntaxhighlight lang="bash"># proxmox-backup-manager user create backup_u@pbs --email backup_u@test.alt</syntaxhighlight> | ||
*обновить или изменить любые свойства пользователя: | *обновить или изменить любые свойства пользователя: | ||
*:< | *:<syntaxhighlight lang="bash"># proxmox-backup-manager user update backup_u@pbs --firstname Дмитрий --lastname Иванов</syntaxhighlight> | ||
*отключить учетную запись пользователя: | *отключить учетную запись пользователя: | ||
*:< | *:<syntaxhighlight lang="bash"># proxmox-backup-manager user update backup_u@pbs --enable 0</syntaxhighlight> | ||
*удалить учетную запись пользователя: | *удалить учетную запись пользователя: | ||
*:< | *:<syntaxhighlight lang="bash"># proxmox-backup-manager user remove backup_u@pbs</syntaxhighlight> | ||
==== LDAP аутентификация (FreeIPA) ==== | |||
В данном разделе приведён пример настройки аутентификации LDAP для аутентификации на сервере FreeIPA. В примере используются следующие исходные данные: | |||
*ipa.example.test, 192.168.0.113 — сервер FreeIPA; | |||
*admin@example.test — учётная запись с правами чтения LDAP; | |||
*pve — группа, пользователи которой имеют право аутентифицироваться в PBS. | |||
Для настройки LDAP аутентификации необходимо выполнить следующие шаги: | |||
# Создать область аутентификации LDAP. Для этого в разделе «Конфигурация» → «Управление доступом» → «Сферы» нажать кнопку «Добавить» → «Сервер LDAP». | |||
# В открывшемся окне на вкладке «Общее» указать следующие данные: | |||
#* «Сфера» — идентификатор области; | |||
#* «Имя основного домена» (base_dn) — каталог, в котором выполняется поиск пользователей (cn=accounts,dc=example,dc=test); | |||
#* «Имя пользовательского атрибута» (user_attr) — атрибут LDAP, содержащий имя пользователя, с которым пользователи будут входить в систему (uid); | |||
#* «Bind Domain Name» — имя пользователя (uid=admin,cn=users,cn=accounts,dc=example,dc=test); | |||
#* «Пароль (bind») — пароль пользователя; | |||
#* «Сервер» — IP-адрес или имя FreeIPA-сервера (ipa.example.test или 192.168.0.113); | |||
#* «Резервный сервер» (опционально) — адрес резервного сервера на случай, если основной сервер недоступен; | |||
#* «Порт» — порт, который прослушивает сервер LDAP (обычно 389 без ssl, 636 с ssl). | |||
#:[[Изображение:Pbs-auth-ldap-freeipa01.png|Proxmox Backup Server. Настройка аутентификации FreeIPA (вкладка «Общее»)]] | |||
# На вкладке «Параметры синхронизации» заполнить следующие поля (в скобках указаны значения, используемые в данном примере): | |||
#* «Атрибут имени пользователя» (First Name attribute) (опционально) — атрибут LDAP, содержащий имя пользователя (givenname); | |||
#* «Атрибут фамилии пользователя» (Last Name attribute) (опционально) — атрибут LDAP, содержащий фамилию пользователя (sn); | |||
#* «Атрибут электронной почты» (опционально) — атрибут LDAP, содержащий электронную почту пользователя (mail); | |||
#* «Классы пользователей» — класс пользователей LDAP (inetOrgPerson); | |||
#* «Фильтр пользователей» — фильтр пользователей (memberOf=cn=pve,cn=groups,cn=accounts,dc=example,dc=test). | |||
#:[[Изображение:Pbs-auth-ldap-freeipa02.png|Proxmox Backup Server. Настройка аутентификации FreeIPA (вкладка «Параметры синхронизации»)]] | |||
#Нажать кнопку «OK». | |||
#Выбрать добавленную область и нажать кнопку «Синхронизировать»: | |||
#:[[Изображение:Pbs-auth-ldap-freeipa03.png|Proxmox Backup Server. Кнопка «Синхронизировать»]] | |||
# Указать, если необходимо, параметры синхронизации и нажать кнопку «Синхронизировать». В результате синхронизации пользователи PBS будут синхронизированы с сервером FreeIPA LDAP. Сведения о пользователях можно просмотреть на вкладке «Управление пользователями». | |||
# Настроить разрешения для пользователя на вкладке «Разрешения». | |||
{{Note|Команда синхронизации пользователей: | |||
<syntaxhighlight lang="bash"># proxmox-backup-manager ldap sync example.test</syntaxhighlight> | |||
Для автоматической синхронизации пользователей и групп можно добавить команду синхронизации в планировщик задач.}} | |||
==== LDAP аутентификация (AD) ==== | |||
В данном разделе приведён пример настройки аутентификации LDAP для аутентификации на сервере AD. В примере используются следующие исходные данные: | |||
*dc1.test.alt, 192.168.0.122 — сервер AD; | |||
*administrator@test.alt — учётная запись администратора (для большей безопасности рекомендуется создать отдельную учетную запись с доступом только для чтения к объектам домена и не использовать учётную запись администратора); | |||
*office — группа, пользователи которой имеют право аутентифицироваться в PBS. | |||
Для настройки LDAP аутентификации необходимо выполнить следующие шаги: | |||
# Создать область аутентификации LDAP. Для этого в разделе «Конфигурация» → «Управление доступом» → «Сферы» нажать кнопку «Добавить» → «Сервер LDAP». | |||
# В открывшемся окне на вкладке «Общее» указать следующие данные: | |||
#* «Сфера» — идентификатор области; | |||
#* «Имя основного домена» (base_dn) — каталог, в котором выполняется поиск пользователей (dc=test,dc=alt); | |||
#* «Имя пользовательского атрибута» (user_attr) — атрибут LDAP, содержащий имя пользователя, с которым пользователи будут входить в систему (sAMAccountName); | |||
#* «Bind Domain Name» — имя пользователя (cn=Administrator,cn=Users,dc=test,dc=alt); | |||
#* «Пароль (bind») — пароль пользователя; | |||
#* «Сервер» — IP-адрес или имя FreeIPA-сервера (dc1.test.alt или 192.168.0.122); | |||
#* «Резервный сервер» (опционально) — адрес резервного сервера на случай, если основной сервер недоступен; | |||
#* «Порт» — порт, который прослушивает сервер LDAP (обычно 389 без ssl, 636 с ssl). | |||
#:[[Изображение:Pbs-auth-ldap-ad01.png|Proxmox Backup Server. Настройка аутентификации AD (вкладка «Общее»)]] | |||
# На вкладке «Параметры синхронизации» заполнить следующие поля (в скобках указаны значения, используемые в данном примере): | |||
#* «Атрибут имени пользователя» (First Name attribute) (опционально) — атрибут LDAP, содержащий имя пользователя (givenname); | |||
#* «Атрибут фамилии пользователя» (Last Name attribute) (опционально) — атрибут LDAP, содержащий фамилию пользователя (sn); | |||
#* «Атрибут электронной почты» (опционально) — атрибут LDAP, содержащий электронную почту пользователя (mail); | |||
#* «Классы пользователей» — класс пользователей LDAP (user); | |||
#* «Фильтр пользователей» — фильтр пользователей (''(&(objectclass=user)(samaccountname=*)(MemberOf=CN=office,cn=Users,dc=TEST,dc=ALT))''). | |||
#:[[Изображение:Pbs-auth-ldap-ad02.png|Proxmox Backup Server. Настройка аутентификации AD (вкладка «Параметры синхронизации»)]] | |||
#Нажать кнопку «OK». | |||
#Выбрать добавленную область и нажать кнопку «Синхронизировать». | |||
# Указать, если необходимо, параметры синхронизации и нажать кнопку «Синхронизировать». В результате синхронизации пользователи PBS будут синхронизированы с сервером AD. Сведения о пользователях можно просмотреть на вкладке «Управление пользователями». | |||
# Настроить разрешения для пользователя на вкладке «Разрешения». | |||
{{note|Если возникает ошибка: | |||
"BindSimple: Transport encryption required." | |||
Следует отключить обязательный ldaps для [[SambaDC]] в {{path|/etc/samba/smb.conf}} в секции [global]: | |||
<syntaxhighlight lang="ini">ldap server require strong auth = no</syntaxhighlight>}} | |||
{{Note|Команда синхронизации пользователей: | |||
<syntaxhighlight lang="bash"># proxmox-backup-manager ldap sync test.alt</syntaxhighlight> | |||
Для автоматической синхронизации пользователей и групп можно добавить команду синхронизации в планировщик задач.}} | |||
=== API-токены === | === API-токены === | ||
Строка 189: | Строка 297: | ||
Генерация API-токена в консоли: | Генерация API-токена в консоли: | ||
< | <syntaxhighlight lang="bash"># proxmox-backup-manager user generate-token backup_u@pbs client1 | ||
Result: { | Result: { | ||
"tokenid": "backup_u@pbs!client1", | "tokenid": "backup_u@pbs!client1", | ||
"value": "ff13e5e0-30df-4a70-99f1-c62b13803769" | "value": "ff13e5e0-30df-4a70-99f1-c62b13803769" | ||
}</ | }</syntaxhighlight> | ||
{{Note|Отображаемое секретное значение необходимо сохранить, так как его нельзя отобразить снова | {{Note|Отображаемое секретное значение необходимо сохранить, так как после создания токена его нельзя будет отобразить снова. }} | ||
=== Контроль доступа === | === Контроль доступа === | ||
Строка 205: | Строка 313: | ||
Информация о правах доступа хранится в файле {{path|/etc/proxmox-backup/acl.cfg}}. Файл содержит 5 полей, разделенных двоеточием (':'): | Информация о правах доступа хранится в файле {{path|/etc/proxmox-backup/acl.cfg}}. Файл содержит 5 полей, разделенных двоеточием (':'): | ||
acl:1:/datastore:backup_u@pbs!client1:DatastoreAdmin | acl:1:/datastore:backup_u@pbs!client1:DatastoreAdmin | ||
В каждом поле представлены следующие данные: | |||
* идентификатор acl; | |||
* 1 или 0 – включено или отключено; | |||
* объект, на который установлено разрешение; | |||
* пользователи/токены, для которых установлено разрешение; | |||
* устанавливаемая роль. | |||
Добавление разрешения в веб-интерфейсе: | Добавление разрешения в веб-интерфейсе («Конфигурация» → «Управление доступом» вкладка «Разрешения»): | ||
[[Изображение:Pbs-permissions.png|Proxmox Backup Server. Добавление разрешений]] | [[Изображение:Pbs-permissions.png|Proxmox Backup Server. Добавление разрешений]] | ||
Добавление разрешения в консоли (добавить пользователя backup_u@pbs в качестве администратора хранилища данных для хранилища данных | Добавление разрешения в консоли (добавить пользователя backup_u@pbs в качестве администратора хранилища данных для хранилища данных store2, расположенного в {{path|/mnt/backup/disk1/store2}}): | ||
< | <syntaxhighlight lang="bash"># proxmox-backup-manager acl update /datastore/store2 DatastoreAdmin --auth-id backup_u@pbs</syntaxhighlight> | ||
Вывести список разрешений: | Вывести список разрешений: | ||
< | <syntaxhighlight lang="bash"># proxmox-backup-manager acl list</syntaxhighlight> | ||
Отобразить действующий набор разрешений пользователя или API-токена: | Отобразить действующий набор разрешений пользователя или API-токена: | ||
< | <syntaxhighlight lang="bash"># proxmox-backup-manager user permissions backup_u@pbs --path /datastore/store2 | ||
Privileges with (*) have the propagate flag set | Privileges with (*) have the propagate flag set | ||
Path: /datastore/ | Path: /datastore/store2 | ||
- Datastore.Audit (*) | - Datastore.Audit (*) | ||
- Datastore.Backup (*) | - Datastore.Backup (*) | ||
Строка 226: | Строка 340: | ||
- Datastore.Prune (*) | - Datastore.Prune (*) | ||
- Datastore.Read (*) | - Datastore.Read (*) | ||
- Datastore.Verify (*)</ | - Datastore.Verify (*)</syntaxhighlight> | ||
=== Двухфакторная аутентификация === | |||
Двухфакторная аутентификация реализована только для веб-интерфейса. | |||
[[Изображение:Pbs-two-factor-auth.png|Proxmox Backup Server. Двухфакторная аутентификация]] | |||
Proxmox Backup Server поддерживает три метода двухфакторной аутентификации: | |||
* TOTP (одноразовый пароль на основе времени) — для создания этого кода используется алгоритм одноразового пароля с учетом времени входа в систему (код меняется каждые 30 секунд). Настройка аутентификации TOTP: | |||
*:[[Изображение:Pbs-auth-totp1.png|Proxmox Backup Server. Настройка аутентификации TOTP]] | |||
*:Использование TOTP при аутентификации пользователя: | |||
*:[[Изображение:Pbs-auth-totp2.png|Proxmox Backup Server. Запрос второго фактора (TOTP) при аутентификации пользователя в веб-интерфейсе]] | |||
* WebAuthn (веб-аутентификация) — реализуется с помощью различных устройств безопасности, таких как аппаратные ключи или доверенные платформенные модули (TPM). Для работы веб-аутентификации необходим сертификат HTTPS; | |||
* Ключи восстановления — список ключей, каждый из которых можно использовать только один раз. В каждый момент времени у пользователя может быть только один набор одноразовых ключей. Создание набора ключей: | |||
*:[[Изображение:Pbs-auth-keys1.png|Proxmox Backup Server. Настройка аутентификации Recovery Keys]] | |||
*:Использование Recovery Key при аутентификации пользователя: | |||
*:[[Изображение:Pbs-auth-keys2.png|Proxmox Backup Server. Запрос второго фактора (Recovery Key) при аутентификации пользователя в веб-интерфейсе]] | |||
{{Note|8 неудачных попыток ввода кода TOTP отключат факторы TOTP пользователя. Они разблокируются при входе в систему с ключом восстановления. Если TOTP был единственным доступным фактором, потребуется вмешательство администратора, и настоятельно рекомендуется потребовать от пользователя немедленно изменить свой пароль. | |||
Администратор может разблокировать двухфакторную аутентификацию пользователя в веб-интерфейсе: | |||
[[Изображение:Pbs-unlock-tfa.png|PBS. Разблокировка двухфакторной аутентификации]] | |||
или в командной строке: | |||
<syntaxhighlight lang="bash"># proxmox-backup-manager user tfa unlock backup_u@pbs</syntaxhighlight>}} | |||
== Управление удалёнными PBS == | |||
Хранилища данных с удалённого сервера можно синхронизировать с локальным хранилищем с помощью задачи синхронизации. | |||
Информация о конфигурации удалённых PBS хранится в файле {{path|/etc/proxmox-backup/remote.cfg}}. | |||
Для добавления удалённого PBS в веб-интерфейсе следует перейти в раздел «Конфигурация» → «Удалённые хранилища» и нажать кнопку «Добавить»: | |||
[[Изображение:Pbs-remote-add.png|Proxmox Backup Server. Добавление удалённого PBS]] | |||
{{Note|Отпечаток TLS-сертификата можно получить на удалённом PBS в веб-интерфейсе: | |||
[[Изображение:Pbs-fingerprint.png|Proxmox Backup Server. Отпечаток TLS-сертификата]] | |||
Или в командной строке: | |||
<syntaxhighlight lang="bash"># proxmox-backup-manager cert info | grep Fingerprint</syntaxhighlight>}} | |||
Управление удалёнными PBS в консоли: | |||
*добавить удалённый PBS: | |||
*:<syntaxhighlight lang="bash"># proxmox-backup-manager remote create pbs2 --host pbs2.test.alt --userid root@pam --password 'SECRET' --fingerprint 42:5d:ff:3a:50:38:53:5a:9b:f7:50:...:ab:1b</syntaxhighlight> | |||
*вывести список удалённых PBS: | |||
*:<syntaxhighlight lang="bash"># proxmox-backup-manager remote list</syntaxhighlight> | |||
*удалить удалённый PBS: | |||
*:<syntaxhighlight lang="bash"># proxmox-backup-manager remote remove pbs2</syntaxhighlight> | |||
Для настройки задачи синхронизации необходимо в разделе «Хранилище данных» перейти на вкладку «Задания синхронизации» и нажать кнопку «Добавить»: | |||
[[Изображение:Pbs-syncjob-add.png|Proxmox Backup Server. Добавление задачи синхронизации]] | |||
Управление задачами синхронизации в консоли: | |||
*добавить задачу синхронизации: | |||
*:<syntaxhighlight lang="bash"># proxmox-backup-manager sync-job create test_job --remote pbs2 --remote-store remotestore --store zfs_st --schedule 'Sat 18:15'</syntaxhighlight> | |||
*вывести список задач синхронизации: | |||
*:<syntaxhighlight lang="bash"># proxmox-backup-manager sync-job list</syntaxhighlight> | |||
*изменить задачу синхронизации: | |||
*:<syntaxhighlight lang="bash"># proxmox-backup-manager sync-job update test_job --comment 'offsite'</syntaxhighlight> | |||
*удалить задачу синхронизации: | |||
*:<syntaxhighlight lang="bash"># proxmox-backup-manager sync-job remove test_job</syntaxhighlight> | |||
После создания задания синхронизации оно будет запускаться по заданному расписанию, также его можно запустить вручную из веб-интерфейса (кнопка «Запустить сейчас»). | |||
== Клиент резервного копирования == | == Клиент резервного копирования == | ||
Строка 236: | Строка 417: | ||
Указать репозиторий можно, передав его в параметре --repository, или установив переменную среды PBS_REPOSITORY, например: | Указать репозиторий можно, передав его в параметре --repository, или установив переменную среды PBS_REPOSITORY, например: | ||
< | <syntaxhighlight lang="bash"># export PBS_REPOSITORY=pbs.test.alt:store1</syntaxhighlight> | ||
{| class="wikitable" | {| class="wikitable" | ||
Строка 274: | Строка 455: | ||
В этом разделе рассмотрено, как создать резервную копию внутри машины (физического хоста, ВМ или контейнера). Такие резервные копии могут содержать архивы файлов и изображений. Предполагается что сервер резерного копирования уже настроен. | В этом разделе рассмотрено, как создать резервную копию внутри машины (физического хоста, ВМ или контейнера). Такие резервные копии могут содержать архивы файлов и изображений. Предполагается что сервер резерного копирования уже настроен. | ||
Создать | Создать резервную копию домашнего каталога пользователя user (будет создан архив user.pxar): | ||
< | <syntaxhighlight lang="bash">$ proxmox-backup-client backup user.pxar:/home/user/ --repository store1 | ||
Starting backup: host/host-197/2023-09-17T13:12:05Z | |||
Starting backup: host/ | Client name: host-01 | ||
Client name: | Starting backup protocol: Sun Sep 17 15:12:05 2023 | ||
Starting backup protocol: | |||
No previous manifest available. | No previous manifest available. | ||
Upload directory '/home/user/' to 'store1' as user.pxar.didx | Upload directory '/home/user/' to 'pbs.test.alt:store1' as user.pxar.didx | ||
user.pxar: had to backup | user.pxar: had to backup 667.04 MiB of 667.04 MiB (compressed 190.182 MiB) in 26.22s | ||
user.pxar: average backup speed: | user.pxar: average backup speed: 25.436 MiB/s | ||
Uploaded backup catalog ( | Uploaded backup catalog (109.948 KiB) | ||
Duration: | Duration: 26.36s | ||
End Time: | End Time: Sun Sep 17 15:12:12 2023</syntaxhighlight> | ||
Распространенными типами архивов являются .pxar для файловых архивов и .img для образов блочных устройств. | Распространенными типами архивов являются .pxar для файловых архивов и .img для образов блочных устройств. | ||
Команда создания резервной копии блочного устройства: | Команда создания резервной копии блочного устройства: | ||
< | <syntaxhighlight lang="bash">$ proxmox-backup-client backup mydata.img:/dev/mylvm/mydata</syntaxhighlight> | ||
==== Шифрование ==== | ==== Шифрование ==== | ||
PBS поддерживает шифрование на стороне клиента с помощью AES-256 в режиме GCM. | PBS поддерживает шифрование на стороне клиента с помощью AES-256 в режиме GCM. | ||
Создать ключ шифрования: | |||
< | <syntaxhighlight lang="bash">$ proxmox-backup-client key create my-backup.key | ||
Encryption Key Password: ****** | Encryption Key Password: ****** | ||
Verify Password: ****** | Verify Password: ****** | ||
</ | </syntaxhighlight> | ||
Создание зашифрованной резервной копии: | Создание зашифрованной резервной копии: | ||
< | <syntaxhighlight lang="bash">$ proxmox-backup-client backup user_s.pxar:/home/user/ --repository pbs.test.alt:store1 --keyfile ./my-backup.key | ||
Password for "root@pam": *** | Password for "root@pam": *** | ||
Starting backup: host/ | Starting backup: host/host-197/2023-09-17T12:17:16Z | ||
Client name: | Client name: host-01 | ||
Starting backup protocol: | Starting backup protocol: Sun Sep 17 14:17:19 2023 | ||
Using encryption key from './my-backup.key'.. | Using encryption key from './my-backup.key'.. | ||
Encryption Key Password: ****** | Encryption Key Password: ****** | ||
Encryption key fingerprint: | Encryption key fingerprint: 0d:aa:4f:9b:ef:63:31:47 | ||
Downloading previous manifest ( | fingerprint: cf:24:11:66:bd:84:ca:7b:52:7c:5c:66:72:7b:c1:4e:4a:b7:ca:10:07:d5:c7:ca:fc:6b:f9:e8:49:89:43:e9 | ||
Upload directory '/home/user/' to 'store1' as user_s.pxar.didx | Are you sure you want to continue connecting? (y/n): y | ||
user_s.pxar: had to backup | Downloading previous manifest (Sun Sep 17 14:14:27 2023) | ||
user_s.pxar: average backup speed: | Upload directory '/home/user/' to '192.168.0.123:store1' as user_s.pxar.didx | ||
Uploaded backup catalog ( | user_s.pxar: had to backup 667.04 MiB of 667.04 MiB (compressed 190.028 MiB) in 21.16s | ||
Duration: | user_s.pxar: average backup speed: 31.518 MiB/s | ||
End Time: | Uploaded backup catalog (109.971 KiB) | ||
Duration: 31.17s | |||
End Time: Sun Sep 17 14:17:31 2023</syntaxhighlight> | |||
Содержимое хранилища store1: | Содержимое хранилища store1: | ||
Строка 326: | Строка 506: | ||
[[Изображение:Pbs-backup.png|Proxmox Backup Server. Содержимое хранилища store1]] | [[Изображение:Pbs-backup.png|Proxmox Backup Server. Содержимое хранилища store1]] | ||
=== Восстановление данных === | |||
Список всех снимков на сервере: | Список всех снимков на сервере: | ||
< | <syntaxhighlight lang="bash">$ proxmox-backup-client snapshot list --repository pbs.test.alt:store1 | ||
Password for "root@pam": *** | Password for "root@pam": *** | ||
┌───────────────────────────────────┬─────────────┬──────────────────────────────────────┐ | |||
│ snapshot | │ snapshot │ size │ files │ | ||
╞═══════════════════════════════════╪═════════════╪══════════════════════════════════════╡ | |||
│ host/pbs/ | │ host/host-01/2023-09-17T14:17:16Z │ 667.147 MiB │ catalog.pcat1 index.json user.pxar │ | ||
├───────────────────────────────────┼─────────────┼──────────────────────────────────────┤ | |||
│ host/pbs/ | │ host/host-01/2023-09-17T14:14:27Z │ 667.148 MiB │ catalog.pcat1 index.json user_s.pxar │ | ||
├───────────────────────────────────┼─────────────┼──────────────────────────────────────┤ | |||
│ host/pbs/2023-09-15T15:00:37Z │ 98.494 MiB │ catalog.pcat1 index.json user.pxar │ | |||
├───────────────────────────────────┼─────────────┼──────────────────────────────────────┤ | |||
│ host/pbs/2023-09-15T14:25:29Z │ 98.494 MiB │ catalog.pcat1 index.json user_s.pxar │ | |||
└───────────────────────────────────┴─────────────┴──────────────────────────────────────┘</syntaxhighlight> | |||
Просмотреть содержимое снимка: | Просмотреть содержимое снимка: | ||
< | <syntaxhighlight lang="bash">$ proxmox-backup-client catalog dump host/pbs/2023-09-15T15:00:37Z --repository pbs.test.alt:store1</syntaxhighlight> | ||
Команда восстановления позволяет восстановить один архив из резервной копии: | Команда восстановления позволяет восстановить один архив из резервной копии: | ||
< | <syntaxhighlight lang="bash">$ proxmox-backup-client restore host/pbs/2023-09-15T15:00:37Z user.pxar /target/path/ --repository pbs.test.alt:store1</syntaxhighlight> | ||
Получить содержимое любого архива можно, восстановив файл index.json в репозитории по целевому пути «-». Это выведет содержимое архива на стандартный вывод: | |||
<syntaxhighlight lang="bash">$ proxmox-backup-client restore host/pbs/2023-09-15T15:00:37Z index.json - --repository pbs.test.alt:store1</syntaxhighlight> | |||
Если необходимо восстановить несколько отдельных файлов, можно использовать интерактивную оболочку восстановления: | |||
<syntaxhighlight lang="bash">$ proxmox-backup-client catalog shell host/host-01/2023-09-17T14:17:16Z user.pxar --repository pbs.test.alt:store1 | |||
Starting interactive shell | |||
pxar:/ > ls | |||
…</syntaxhighlight> | |||
Пример поиска в содержимом архива и восстановление данных: | |||
<syntaxhighlight lang="bash">pxar:/ > find *.txt --select | |||
/test/connection_trace.txt | |||
/Рабочий стол/1.txt | |||
pxar:/ > list-selected | |||
/test/connection_trace.txt | |||
/Рабочий стол/1.txt | |||
pxar:/ > restore-selected /home/user/restore/ | |||
pxar:/ > restore /home/user/conf/ --pattern *.conf | |||
pxar:/ > exit</syntaxhighlight> | |||
=== Интеграция с PVE | где: | ||
*'''find *.txt --select''' — найти все файлы с расширением .txt и добавить соответствующие шаблоны в список для последующего восстановления; | |||
*'''list-selected''' — вывести шаблоны на экран; | |||
*'''restore-selected /home/user/restore/''' — восстановить все файлы в архиве, соответствующие шаблонам в /home/user/restore/ на локальном хосте; | |||
*'''restore /home/user/conf/ --pattern *.conf''' — восстановить все файлы с расширением .conf в /home/user/conf/ на локальном хосте. | |||
=== Вход и выход === | |||
При первой попытке получить доступ к серверу с использованием команды <code>proxmox-backup-client</code>, потребуется ввести пароль пользователя. | |||
Сервер проверяет учётные данные и отправляет билет, действительный в течение двух часов. Клиент использует этот билет для последующих запросов к этому серверу. | |||
Можно вручную инициировать вход/выход. Команда входа: | |||
<syntaxhighlight lang="bash">$ proxmox-backup-client login --repository pbs.test.alt:store1 | |||
Password for "root@pam": ******</syntaxhighlight> | |||
Удалить билет: | |||
<syntaxhighlight lang="bash">$ proxmox-backup-client logout --repository pbs.test.alt:store1</syntaxhighlight> | |||
== Интеграция с PVE == | |||
Proxmox Backup Server можно интегрировать в автономную или кластерную установку PVE, добавив его в качестве хранилища в PVE. | Proxmox Backup Server можно интегрировать в автономную или кластерную установку PVE, добавив его в качестве хранилища в PVE. | ||
Для создания нового хранилища типа «Proxmox Backup Server» необходимо выбрать | Для создания нового хранилища типа «Proxmox Backup Server» необходимо выбрать «Центр обработки данных» → «Хранилище», нажать кнопку «Добавить» и в выпадающем меню выбрать пункт «Proxmox Backup Server»: | ||
[[Изображение:Pve-backup-storageadd1.png|PVE. Добавление хранилища Proxmox Backup Server]] | [[Изображение:Pve-backup-storageadd1.png|PVE. Добавление хранилища Proxmox Backup Server]] | ||
Диалог создания хранилища pbs_backup типа «Proxmox Backup Server» для хранения резервных копий: | Диалог создания хранилища pbs_backup типа «Proxmox Backup Server» для хранения резервных копий: | ||
[[Изображение:Pve-backup-storageadd2.png|PVE. Диалог создания хранилища Proxmox Backup Server]] | [[Изображение:Pve-backup-storageadd2.png|PVE. Диалог создания хранилища Proxmox Backup Server]] | ||
{{Note|Отпечаток TLS-сертификата можно получить в веб-интерфейсе сервера резервного копирования: | |||
[[Изображение:Pbs-fingerprint.png|Proxmox Backup Server. Отпечаток TLS-сертификата]] | |||
Или, выполнив следующую команду на сервере резервного копирования: | |||
< | <syntaxhighlight lang="bash"># proxmox-backup-manager cert info | grep Fingerprint | ||
Fingerprint (sha256): c8:26:af:4a:c3:dc:60:72:4a:0b:4d:c1:e6:58:02:62:90:39:cb:fc:75:5d:00:9a:57:ca:3d:28:a0:2c:99:a5</ | Fingerprint (sha256): c8:26:af:4a:c3:dc:60:72:4a:0b:4d:c1:e6:58:02:62:90:39:cb:fc:75:5d:00:9a:57:ca:3d:28:a0:2c:99:a5</syntaxhighlight>}} | ||
Добавление хранилища в командной строке: | |||
< | <syntaxhighlight lang="bash"># pvesm add pbs pbs_backup --server pbs.test.alt --datastore store2 --fingerprint c8:26:af:4a:c3:dc:60:72:...:99:a5 --username root@pam --password</syntaxhighlight> | ||
Просмотреть состояние хранилища: | Просмотреть состояние хранилища: | ||
< | <syntaxhighlight lang="bash"># pvesm status --storage pbs_backup | ||
Name Type Status Total Used Available % | Name Type Status Total Used Available % | ||
pbs_backup pbs active 30786448 3097752 26099504 10.06%</ | pbs_backup pbs active 30786448 3097752 26099504 10.06%</syntaxhighlight> | ||
Добавив хранилище данных типа «Proxmox Backup Server» в PVE, можно создавать резервные копии ВМ и контейнеров в это хранилище так же | Добавив хранилище данных типа «Proxmox Backup Server» в PVE, можно создавать резервные копии ВМ и контейнеров в это хранилище, так же как и в любые другие хранилища (см. [[PVE#Резервное_копирование |Резервное копирование и восстановление]]). | ||
Резервная копия ВМ: | Резервная копия ВМ: |
Текущая версия от 09:52, 5 октября 2024
Proxmox Backup Server (PBS) — клиент-серверное решение для резервного копирования и восстановления виртуальных машин, контейнеров и физических узлов. Решение оптимизировано для проекта PVE и позволяет безопасно создавать резервные копии. Поддерживается инкрементное резервное копирование с полной дедупликацией, что значительно снижает нагрузку на сеть и экономит пространство для хранения.
Сервер резервного копирования хранит данные резервного копирования и предоставляет API для создания хранилищ данных и управления ими. С помощью API также можно управлять дисками и другими ресурсами на стороне сервера. Клиент резервного копирования использует этот API для доступа к резервным данным.
Одна резервная копия может содержать несколько архивов. Например, при резервном копировании ВМ каждый диск сохраняется как отдельный архив внутри этой резервной копии. Сама конфигурация ВМ хранится в виде дополнительного файла.
Установка
Установка сервера
Минимальные требования к серверу (предназначены только для тестирования):
- CPU: 64bit (x86-64 или AMD64), 2+ Ядра
- ОЗУ: 2 ГБ
- Диск: от 8 ГБ
- Сеть: 1 интерфейс
Рекомендуемые требования к серверу:
- CPU: 64bit, 4 Ядра
- ОЗУ: 4 ГБ (+1 ГБ на каждый ТБ дискового пространства)
- Диск: от 32 ГБ + резервное хранилище
- Сеть: 1 интерфейс + резервирование
Установить сервер PBS (пакет proxmox-backup-server) можно следующей командой:
# apt-get install proxmox-backup-server
Запустить и добавить в автозагрузку Proxmox Backup API Proxy Server:
# systemctl enable --now proxmox-backup-proxy.service
Служба proxmox-backup-proxy предоставляет API Proxmox Backup Server через TCP-порт 8007 с использованием HTTPS. Она имеет весьма ограниченные разрешения. Операции, требующие дополнительных разрешений, перенаправляются в локальную службу proxmox-backup.
Служба proxmox-backup предоставляет API управления Proxmox Backup Server по адресу 127.0.0.1:82. Она имеет разрешение на выполнение всех привилегированных операций.
Включить модуль можно следующей командой:
# modprobe zfs
Чтобы не вводить эту команду после перезагрузки, следует раскомментировать строку:
#zfsв файле /etc/modules-load.d/zfs.conf.
Установка клиента
Установить клиент PBS (пакет proxmox-backup-client):
# apt-get install proxmox-backup-client
Веб-интерфейс
PBS предлагает интегрированный веб-интерфейс для управления сервером. Все административные задачи можно выполнять в веб-браузере. Веб-интерфейс также предоставляет встроенную консоль.
Веб-интерфейс PBS доступен по адресу https://<IP-адрес|имя>:8007. Потребуется пройти аутентификацию (логин по умолчанию: root, пароль указывается в процессе установки).
Хранилище данных
Управление дисками
Увидеть диски, подключенные к системе, можно в веб-интерфейсе «Управление» → «Хранилище/Диски»:
Просмотр списка дисков в командной строке:
# proxmox-backup-manager disk list
┌─────────┬─────────┬─────┬───────────┬──────────────┬──────────────────────┬─────────┬─────────┐
│ name │ used │ gpt │ disk-type │ size │ model │ wearout │ status │
╞═════════╪═════════╪═════╪═══════════╪══════════════╪══════════════════════╪═════════╪═════════╡
│ nvme0n1 │ zfs │ 1 │ ssd │ 161061273600 │ ORCL-VBOX-NVME-VER12 │ 0.00 % │ passed │
├─────────┼─────────┼─────┼───────────┼──────────────┼──────────────────────┼─────────┼─────────┤
│ nvme0n2 │ zfs │ 1 │ ssd │ 161061273600 │ ORCL-VBOX-NVME-VER12 │ 0.00 % │ passed │
├─────────┼─────────┼─────┼───────────┼──────────────┼──────────────────────┼─────────┼─────────┤
│ nvme0n3 │ mounted │ 1 │ ssd │ 53687091200 │ ORCL-VBOX-NVME-VER12 │ 0.00 % │ passed │
├─────────┼─────────┼─────┼───────────┼──────────────┼──────────────────────┼─────────┼─────────┤
│ sda │ mounted │ 1 │ hdd │ 62277025792 │ VBOX_HARDDISK │ - │ unknown │
└─────────┴─────────┴─────┴───────────┴──────────────┴──────────────────────┴─────────┴─────────┘
Создание файловой системы ext4 или xfs на диске в веб-интерфейсе:
Пример создания файловой системы в командной строке (будет создана файловая система ext4 и хранилище данных на диске nvme0n3, хранилище данных будет создано по адресу /mnt/datastore/store1):
# proxmox-backup-manager disk fs create store1 --disk nvme0n3 --filesystem ext4 --add-datastore true
create datastore 'store1' on disk nvme0n3
Chunkstore create: 1%
Chunkstore create: 2%
…
Chunkstore create: 99%
TASK OK
Для создания zpool в веб-интерфейсе, следует в разделе «Хранилище/Диски» перейти на вкладку «ZFS» и нажать кнопку «Создать: ZFS». В открывшемся окне следует задать параметры zpool: имя хранилища, выбрать диски, уровень RAID и нажать кнопку «OK»:
Команда для создания зеркального zpool с использованием двух дисков и монтированием в /mnt/datastore/zfs_st:
# proxmox-backup-manager disk zpool create zfs_st --devices nvme0n1,nvme0n2 --raidlevel mirror
Для мониторинга состояния локальных дисков используется пакет smartmontools. Он содержит набор инструментов для мониторинга и управления S.M.A.R.T. системой для локальных жестких дисков. Если диск поддерживает S.M.A.R.T. и поддержка SMART для диска включена, просмотреть данные S.M.A.R.T. можно в веб-интерфейсе или с помощью команды:
# proxmox-backup-manager disk smart-attributes sdX
Хранилище данных
Хранилище данных — это место, где хранятся резервные копии. Текущая реализация PBS использует каталог внутри стандартной файловой системы (ext4, xfs или zfs) для хранения данных резервного копирования. Информация о конфигурации для хранилищ данных хранится в файле /etc/proxmox-backup/datastore.cfg.
Необходимо настроить как минимум одно хранилище данных. Хранилище данных идентифицируется именем и указывает на каталог в файловой системе. С каждым хранилищем связаны настройки хранения, определяющие, сколько снимков резервных копий для каждого интервала времени (ежечасно, ежедневно, еженедельно, ежемесячно, ежегодно) хранить в этом хранилище.
Создание хранилища данных
Для создания хранилища в веб-интерфейсе, необходимо нажать кнопку «Добавить хранилище данных» в боковом меню в разделе «Хранилище данных». В открывшемся окне необходимо указать:
- «Имя» — название хранилища данных;
- «Путь к каталогу хранилища» — путь к каталогу, в котором будет создано хранилище данных;
- «Расписание сборщика мусора» — частота, с которой запускается сборка мусора;
- «Расписание удаления» — частота, с которой происходит удаление ранее созданных резервных копий;
- «Параметры удаления» — количество резервных копий, которые необходимо хранить.
Создание хранилища данных в консоли:
# proxmox-backup-manager datastore create store2 /mnt/backup/disk1
После создания хранилища данных по умолчанию появляется следующий макет:
# ls -arilh /mnt/backup/disk1/
итого 1,1M
665243 -rw-r--r-- 1 backup backup 0 мар 31 14:05 .lock
665242 drwxr-x--- 1 backup backup 1,1M мар 31 14:05 .chunks
665240 drwxr-xr-x 3 root root 4,0K мар 31 13:56 ..
665241 drwxr-xr-x 3 backup backup 4,0K мар 31 14:05
- .lock — пустой файл, используемый для блокировки процесса;
- каталог .chunks — содержит подкаталоги, с именами от 0000 до ffff. В этих каталогах будут храниться фрагментированные данные, после выполнения операции резервного копирования.
Управление хранилищами данных
Вывести список существующих хранилищ данных:
# proxmox-backup-manager datastore list
Изменить расписание сборки мусора и вывести свойства хранилища данных:
# proxmox-backup-manager datastore update store2 --gc-schedule 'Tue 04:27'
# proxmox-backup-manager datastore show store2
Удалить хранилище данных:
# proxmox-backup-manager datastore remove store2
Данная команда удалит только конфигурацию хранилища данных, данные из базового каталога удалены не будут.
Пользователи
Управление пользователями
PBS хранит данные пользователей в файле /etc/proxmox-backup/user.cfg.
Пользователя часто внутренне идентифицируют по его имени и области аутентификации в форме <user>@<realm>.
После установки PBS существует один пользователь root@pam, который соответствует суперпользователю ОС. Этого пользователя нельзя удалить, все системные письма будут отправляться на адрес электронной почты, назначенный этому пользователю. Суперпользователь имеет неограниченные права, поэтому рекомендуется добавить других пользователей с меньшими правами.
Области аутентификации
PBS поддерживает следующие области (методы) аутентификации:
- Стандартная аутентификация Linux PAM (Linux PAM standart authentication) — пользователь аутентифицируется с помощью своего обычного системного пароля;
- Сервер аутентификации Proxmox Backup (Proxmox Backup authentication server) — аутентификация Proxmox Backup Server. Хэшированные пароли хранятся в файле /etc/proxmox-backup/shadow.json;
- Сервер LDAP — позволяет использовать внешний LDAP-сервер для аутентификации пользователей (например, OpenLDAP);
- Сервер OpenID Connect — уровень идентификации поверх протокола OATH 2.0. Позволяет аутентифицировать пользователей на основе аутентификации, выполняемой внешним сервером авторизации.
Стандартная аутентификация Linux PAM
При использовании аутентификации Linux PAM системный пользователь должен существовать (должен быть создан, например, с помощью команды adduser).
Область Linux PAM создается по умолчанию и не может быть удалена.
Сервер аутентификации Proxmox Backup
Область аутентификации PBS представляет собой хранилище паролей в стиле Unix ({path|/etc/proxmox-backup/shadow.json}}). Пароль шифруется с использованием метода хеширования SHA-256.
Область создается по умолчанию.
Для добавления пользователя в веб-интерфейсе, следует в веб-интерфейсе перейти в раздел «Конфигурация» → «Управление доступом» и на вкладке «Управление пользователями» нажать кнопку «Добавить»:
Управление пользователями в консоли:
- просмотреть список пользователей:
# proxmox-backup-manager user list ┌──────────────┬────────┬────────┬───────────┬──────────┬───────┬───────────┐ │ userid │ enable │ expire │ firstname │ lastname │ email │ comment │ ╞══════════════╪════════╪════════╪═══════════╪══════════╪═══════╪═══════════╡ │ backup_u@pbs │ 1 │ never │ │ │ │ │ ├──────────────┼────────┼────────┼───────────┼──────────┼───────┼───────────┤ │ root@pam │ 1 │ never │ │ │ │ Superuser │ └──────────────┴────────┴────────┴───────────┴──────────┴───────┴───────────┘
- создать пользователя:
# proxmox-backup-manager user create backup_u@pbs --email backup_u@test.alt
- обновить или изменить любые свойства пользователя:
# proxmox-backup-manager user update backup_u@pbs --firstname Дмитрий --lastname Иванов
- отключить учетную запись пользователя:
# proxmox-backup-manager user update backup_u@pbs --enable 0
- удалить учетную запись пользователя:
# proxmox-backup-manager user remove backup_u@pbs
LDAP аутентификация (FreeIPA)
В данном разделе приведён пример настройки аутентификации LDAP для аутентификации на сервере FreeIPA. В примере используются следующие исходные данные:
- ipa.example.test, 192.168.0.113 — сервер FreeIPA;
- admin@example.test — учётная запись с правами чтения LDAP;
- pve — группа, пользователи которой имеют право аутентифицироваться в PBS.
Для настройки LDAP аутентификации необходимо выполнить следующие шаги:
- Создать область аутентификации LDAP. Для этого в разделе «Конфигурация» → «Управление доступом» → «Сферы» нажать кнопку «Добавить» → «Сервер LDAP».
- В открывшемся окне на вкладке «Общее» указать следующие данные:
- «Сфера» — идентификатор области;
- «Имя основного домена» (base_dn) — каталог, в котором выполняется поиск пользователей (cn=accounts,dc=example,dc=test);
- «Имя пользовательского атрибута» (user_attr) — атрибут LDAP, содержащий имя пользователя, с которым пользователи будут входить в систему (uid);
- «Bind Domain Name» — имя пользователя (uid=admin,cn=users,cn=accounts,dc=example,dc=test);
- «Пароль (bind») — пароль пользователя;
- «Сервер» — IP-адрес или имя FreeIPA-сервера (ipa.example.test или 192.168.0.113);
- «Резервный сервер» (опционально) — адрес резервного сервера на случай, если основной сервер недоступен;
- «Порт» — порт, который прослушивает сервер LDAP (обычно 389 без ssl, 636 с ssl).
- На вкладке «Параметры синхронизации» заполнить следующие поля (в скобках указаны значения, используемые в данном примере):
- «Атрибут имени пользователя» (First Name attribute) (опционально) — атрибут LDAP, содержащий имя пользователя (givenname);
- «Атрибут фамилии пользователя» (Last Name attribute) (опционально) — атрибут LDAP, содержащий фамилию пользователя (sn);
- «Атрибут электронной почты» (опционально) — атрибут LDAP, содержащий электронную почту пользователя (mail);
- «Классы пользователей» — класс пользователей LDAP (inetOrgPerson);
- «Фильтр пользователей» — фильтр пользователей (memberOf=cn=pve,cn=groups,cn=accounts,dc=example,dc=test).
- Нажать кнопку «OK».
- Выбрать добавленную область и нажать кнопку «Синхронизировать»:
- Указать, если необходимо, параметры синхронизации и нажать кнопку «Синхронизировать». В результате синхронизации пользователи PBS будут синхронизированы с сервером FreeIPA LDAP. Сведения о пользователях можно просмотреть на вкладке «Управление пользователями».
- Настроить разрешения для пользователя на вкладке «Разрешения».
# proxmox-backup-manager ldap sync example.test
LDAP аутентификация (AD)
В данном разделе приведён пример настройки аутентификации LDAP для аутентификации на сервере AD. В примере используются следующие исходные данные:
- dc1.test.alt, 192.168.0.122 — сервер AD;
- administrator@test.alt — учётная запись администратора (для большей безопасности рекомендуется создать отдельную учетную запись с доступом только для чтения к объектам домена и не использовать учётную запись администратора);
- office — группа, пользователи которой имеют право аутентифицироваться в PBS.
Для настройки LDAP аутентификации необходимо выполнить следующие шаги:
- Создать область аутентификации LDAP. Для этого в разделе «Конфигурация» → «Управление доступом» → «Сферы» нажать кнопку «Добавить» → «Сервер LDAP».
- В открывшемся окне на вкладке «Общее» указать следующие данные:
- «Сфера» — идентификатор области;
- «Имя основного домена» (base_dn) — каталог, в котором выполняется поиск пользователей (dc=test,dc=alt);
- «Имя пользовательского атрибута» (user_attr) — атрибут LDAP, содержащий имя пользователя, с которым пользователи будут входить в систему (sAMAccountName);
- «Bind Domain Name» — имя пользователя (cn=Administrator,cn=Users,dc=test,dc=alt);
- «Пароль (bind») — пароль пользователя;
- «Сервер» — IP-адрес или имя FreeIPA-сервера (dc1.test.alt или 192.168.0.122);
- «Резервный сервер» (опционально) — адрес резервного сервера на случай, если основной сервер недоступен;
- «Порт» — порт, который прослушивает сервер LDAP (обычно 389 без ssl, 636 с ssl).
- На вкладке «Параметры синхронизации» заполнить следующие поля (в скобках указаны значения, используемые в данном примере):
- «Атрибут имени пользователя» (First Name attribute) (опционально) — атрибут LDAP, содержащий имя пользователя (givenname);
- «Атрибут фамилии пользователя» (Last Name attribute) (опционально) — атрибут LDAP, содержащий фамилию пользователя (sn);
- «Атрибут электронной почты» (опционально) — атрибут LDAP, содержащий электронную почту пользователя (mail);
- «Классы пользователей» — класс пользователей LDAP (user);
- «Фильтр пользователей» — фильтр пользователей ((&(objectclass=user)(samaccountname=*)(MemberOf=CN=office,cn=Users,dc=TEST,dc=ALT))).
- Нажать кнопку «OK».
- Выбрать добавленную область и нажать кнопку «Синхронизировать».
- Указать, если необходимо, параметры синхронизации и нажать кнопку «Синхронизировать». В результате синхронизации пользователи PBS будут синхронизированы с сервером AD. Сведения о пользователях можно просмотреть на вкладке «Управление пользователями».
- Настроить разрешения для пользователя на вкладке «Разрешения».
"BindSimple: Transport encryption required."
Следует отключить обязательный ldaps для SambaDC в /etc/samba/smb.conf в секции [global]:
ldap server require strong auth = no
# proxmox-backup-manager ldap sync test.alt
API-токены
Любой аутентифицированный пользователь может генерировать API-токены, которые, в свою очередь, можно использовать для настройки клиентов вместо прямого ввода имени пользователя и пароля.
API-токены служат двум целям:
- простой отзыв в случае компрометации клиента;
- возможность ограничить разрешения для каждого клиента/токена в рамках разрешений пользователей.
API-токен состоит из двух частей: идентификатора, состоящего из имени пользователя, области и имени токена (user@realm!имя токена), и секретного значения.
Генерация API-токена в веб-интерфейсе:
Генерация API-токена в консоли:
# proxmox-backup-manager user generate-token backup_u@pbs client1
Result: {
"tokenid": "backup_u@pbs!client1",
"value": "ff13e5e0-30df-4a70-99f1-c62b13803769"
}
Контроль доступа
По умолчанию новые пользователи и API-токены не имеют никаких разрешений. Добавить разрешения можно, назначив роли пользователям/токенам на определенных объектах, таких как хранилища данных или удаленные устройства.
PBS использует систему управления разрешениями на основе ролей и путей. Запись в таблице разрешений позволяет пользователю играть определенную роль при доступе к объекту или пути. Это означает, что такое правило доступа может быть представлено как тройка (путь, пользователь, роль) или (путь, API-токен, роль), причем роль содержит набор разрешенных действий, а путь представляет цель этих действий.
Информация о правах доступа хранится в файле /etc/proxmox-backup/acl.cfg. Файл содержит 5 полей, разделенных двоеточием (':'):
acl:1:/datastore:backup_u@pbs!client1:DatastoreAdmin
В каждом поле представлены следующие данные:
- идентификатор acl;
- 1 или 0 – включено или отключено;
- объект, на который установлено разрешение;
- пользователи/токены, для которых установлено разрешение;
- устанавливаемая роль.
Добавление разрешения в веб-интерфейсе («Конфигурация» → «Управление доступом» вкладка «Разрешения»):
Добавление разрешения в консоли (добавить пользователя backup_u@pbs в качестве администратора хранилища данных для хранилища данных store2, расположенного в /mnt/backup/disk1/store2):
# proxmox-backup-manager acl update /datastore/store2 DatastoreAdmin --auth-id backup_u@pbs
Вывести список разрешений:
# proxmox-backup-manager acl list
Отобразить действующий набор разрешений пользователя или API-токена:
# proxmox-backup-manager user permissions backup_u@pbs --path /datastore/store2
Privileges with (*) have the propagate flag set
Path: /datastore/store2
- Datastore.Audit (*)
- Datastore.Backup (*)
- Datastore.Modify (*)
- Datastore.Prune (*)
- Datastore.Read (*)
- Datastore.Verify (*)
Двухфакторная аутентификация
Двухфакторная аутентификация реализована только для веб-интерфейса.
Proxmox Backup Server поддерживает три метода двухфакторной аутентификации:
- TOTP (одноразовый пароль на основе времени) — для создания этого кода используется алгоритм одноразового пароля с учетом времени входа в систему (код меняется каждые 30 секунд). Настройка аутентификации TOTP:
- WebAuthn (веб-аутентификация) — реализуется с помощью различных устройств безопасности, таких как аппаратные ключи или доверенные платформенные модули (TPM). Для работы веб-аутентификации необходим сертификат HTTPS;
- Ключи восстановления — список ключей, каждый из которых можно использовать только один раз. В каждый момент времени у пользователя может быть только один набор одноразовых ключей. Создание набора ключей:
Администратор может разблокировать двухфакторную аутентификацию пользователя в веб-интерфейсе:
или в командной строке:
# proxmox-backup-manager user tfa unlock backup_u@pbs
Управление удалёнными PBS
Хранилища данных с удалённого сервера можно синхронизировать с локальным хранилищем с помощью задачи синхронизации.
Информация о конфигурации удалённых PBS хранится в файле /etc/proxmox-backup/remote.cfg.
Для добавления удалённого PBS в веб-интерфейсе следует перейти в раздел «Конфигурация» → «Удалённые хранилища» и нажать кнопку «Добавить»:
Или в командной строке:
# proxmox-backup-manager cert info | grep Fingerprint
Управление удалёнными PBS в консоли:
- добавить удалённый PBS:
# proxmox-backup-manager remote create pbs2 --host pbs2.test.alt --userid root@pam --password 'SECRET' --fingerprint 42:5d:ff:3a:50:38:53:5a:9b:f7:50:...:ab:1b
- вывести список удалённых PBS:
# proxmox-backup-manager remote list
- удалить удалённый PBS:
# proxmox-backup-manager remote remove pbs2
Для настройки задачи синхронизации необходимо в разделе «Хранилище данных» перейти на вкладку «Задания синхронизации» и нажать кнопку «Добавить»:
Управление задачами синхронизации в консоли:
- добавить задачу синхронизации:
# proxmox-backup-manager sync-job create test_job --remote pbs2 --remote-store remotestore --store zfs_st --schedule 'Sat 18:15'
- вывести список задач синхронизации:
# proxmox-backup-manager sync-job list
- изменить задачу синхронизации:
# proxmox-backup-manager sync-job update test_job --comment 'offsite'
- удалить задачу синхронизации:
# proxmox-backup-manager sync-job remove test_job
После создания задания синхронизации оно будет запускаться по заданному расписанию, также его можно запустить вручную из веб-интерфейса (кнопка «Запустить сейчас»).
Клиент резервного копирования
Клиент резервного копирования использует следующий формат для указания репозитория хранилища данных на сервере резервного копирования (где имя пользователя указывается в виде user@realm):
[[username@]server[:port]:]datastore
Значение по умолчанию для имени пользователя — root@pam. Если сервер не указан, используется локальный хост — localhost.
Указать репозиторий можно, передав его в параметре --repository, или установив переменную среды PBS_REPOSITORY, например:
# export PBS_REPOSITORY=pbs.test.alt:store1
Пример | Пользователь | Хост:Порт | Хранилище |
---|---|---|---|
store1 | root@pam | localhost:8007 | store1 |
pbs.test.alt:store1 | root@pam | pbs.test.alt:8007 | store1 |
backup_u@pbs@pbs.test.alt:store1 | backup_u@pbs | pbs.test.alt:8007 | store1 |
backup_u@pbs!client1@pbs.test.alt:store1 | backup_u@pbs!client1 | pbs.test.alt:8007 | store1 |
192.168.0.123:1234:store1 | root@pam | 192.168.0.123:1234 | store1 |
Создание резервной копии
В этом разделе рассмотрено, как создать резервную копию внутри машины (физического хоста, ВМ или контейнера). Такие резервные копии могут содержать архивы файлов и изображений. Предполагается что сервер резерного копирования уже настроен.
Создать резервную копию домашнего каталога пользователя user (будет создан архив user.pxar):
$ proxmox-backup-client backup user.pxar:/home/user/ --repository store1
Starting backup: host/host-197/2023-09-17T13:12:05Z
Client name: host-01
Starting backup protocol: Sun Sep 17 15:12:05 2023
No previous manifest available.
Upload directory '/home/user/' to 'pbs.test.alt:store1' as user.pxar.didx
user.pxar: had to backup 667.04 MiB of 667.04 MiB (compressed 190.182 MiB) in 26.22s
user.pxar: average backup speed: 25.436 MiB/s
Uploaded backup catalog (109.948 KiB)
Duration: 26.36s
End Time: Sun Sep 17 15:12:12 2023
Распространенными типами архивов являются .pxar для файловых архивов и .img для образов блочных устройств.
Команда создания резервной копии блочного устройства:
$ proxmox-backup-client backup mydata.img:/dev/mylvm/mydata
Шифрование
PBS поддерживает шифрование на стороне клиента с помощью AES-256 в режиме GCM.
Создать ключ шифрования:
$ proxmox-backup-client key create my-backup.key
Encryption Key Password: ******
Verify Password: ******
Создание зашифрованной резервной копии:
$ proxmox-backup-client backup user_s.pxar:/home/user/ --repository pbs.test.alt:store1 --keyfile ./my-backup.key
Password for "root@pam": ***
Starting backup: host/host-197/2023-09-17T12:17:16Z
Client name: host-01
Starting backup protocol: Sun Sep 17 14:17:19 2023
Using encryption key from './my-backup.key'..
Encryption Key Password: ******
Encryption key fingerprint: 0d:aa:4f:9b:ef:63:31:47
fingerprint: cf:24:11:66:bd:84:ca:7b:52:7c:5c:66:72:7b:c1:4e:4a:b7:ca:10:07:d5:c7:ca:fc:6b:f9:e8:49:89:43:e9
Are you sure you want to continue connecting? (y/n): y
Downloading previous manifest (Sun Sep 17 14:14:27 2023)
Upload directory '/home/user/' to '192.168.0.123:store1' as user_s.pxar.didx
user_s.pxar: had to backup 667.04 MiB of 667.04 MiB (compressed 190.028 MiB) in 21.16s
user_s.pxar: average backup speed: 31.518 MiB/s
Uploaded backup catalog (109.971 KiB)
Duration: 31.17s
End Time: Sun Sep 17 14:17:31 2023
Содержимое хранилища store1:
Восстановление данных
Список всех снимков на сервере:
$ proxmox-backup-client snapshot list --repository pbs.test.alt:store1
Password for "root@pam": ***
┌───────────────────────────────────┬─────────────┬──────────────────────────────────────┐
│ snapshot │ size │ files │
╞═══════════════════════════════════╪═════════════╪══════════════════════════════════════╡
│ host/host-01/2023-09-17T14:17:16Z │ 667.147 MiB │ catalog.pcat1 index.json user.pxar │
├───────────────────────────────────┼─────────────┼──────────────────────────────────────┤
│ host/host-01/2023-09-17T14:14:27Z │ 667.148 MiB │ catalog.pcat1 index.json user_s.pxar │
├───────────────────────────────────┼─────────────┼──────────────────────────────────────┤
│ host/pbs/2023-09-15T15:00:37Z │ 98.494 MiB │ catalog.pcat1 index.json user.pxar │
├───────────────────────────────────┼─────────────┼──────────────────────────────────────┤
│ host/pbs/2023-09-15T14:25:29Z │ 98.494 MiB │ catalog.pcat1 index.json user_s.pxar │
└───────────────────────────────────┴─────────────┴──────────────────────────────────────┘
Просмотреть содержимое снимка:
$ proxmox-backup-client catalog dump host/pbs/2023-09-15T15:00:37Z --repository pbs.test.alt:store1
Команда восстановления позволяет восстановить один архив из резервной копии:
$ proxmox-backup-client restore host/pbs/2023-09-15T15:00:37Z user.pxar /target/path/ --repository pbs.test.alt:store1
Получить содержимое любого архива можно, восстановив файл index.json в репозитории по целевому пути «-». Это выведет содержимое архива на стандартный вывод:
$ proxmox-backup-client restore host/pbs/2023-09-15T15:00:37Z index.json - --repository pbs.test.alt:store1
Если необходимо восстановить несколько отдельных файлов, можно использовать интерактивную оболочку восстановления:
$ proxmox-backup-client catalog shell host/host-01/2023-09-17T14:17:16Z user.pxar --repository pbs.test.alt:store1
Starting interactive shell
pxar:/ > ls
…
Пример поиска в содержимом архива и восстановление данных:
pxar:/ > find *.txt --select
/test/connection_trace.txt
/Рабочий стол/1.txt
pxar:/ > list-selected
/test/connection_trace.txt
/Рабочий стол/1.txt
pxar:/ > restore-selected /home/user/restore/
pxar:/ > restore /home/user/conf/ --pattern *.conf
pxar:/ > exit
где:
- find *.txt --select — найти все файлы с расширением .txt и добавить соответствующие шаблоны в список для последующего восстановления;
- list-selected — вывести шаблоны на экран;
- restore-selected /home/user/restore/ — восстановить все файлы в архиве, соответствующие шаблонам в /home/user/restore/ на локальном хосте;
- restore /home/user/conf/ --pattern *.conf — восстановить все файлы с расширением .conf в /home/user/conf/ на локальном хосте.
Вход и выход
При первой попытке получить доступ к серверу с использованием команды proxmox-backup-client
, потребуется ввести пароль пользователя.
Сервер проверяет учётные данные и отправляет билет, действительный в течение двух часов. Клиент использует этот билет для последующих запросов к этому серверу.
Можно вручную инициировать вход/выход. Команда входа:
$ proxmox-backup-client login --repository pbs.test.alt:store1
Password for "root@pam": ******
Удалить билет:
$ proxmox-backup-client logout --repository pbs.test.alt:store1
Интеграция с PVE
Proxmox Backup Server можно интегрировать в автономную или кластерную установку PVE, добавив его в качестве хранилища в PVE.
Для создания нового хранилища типа «Proxmox Backup Server» необходимо выбрать «Центр обработки данных» → «Хранилище», нажать кнопку «Добавить» и в выпадающем меню выбрать пункт «Proxmox Backup Server»:
Диалог создания хранилища pbs_backup типа «Proxmox Backup Server» для хранения резервных копий:
Или, выполнив следующую команду на сервере резервного копирования:
# proxmox-backup-manager cert info | grep Fingerprint
Fingerprint (sha256): c8:26:af:4a:c3:dc:60:72:4a:0b:4d:c1:e6:58:02:62:90:39:cb:fc:75:5d:00:9a:57:ca:3d:28:a0:2c:99:a5
Добавление хранилища в командной строке:
# pvesm add pbs pbs_backup --server pbs.test.alt --datastore store2 --fingerprint c8:26:af:4a:c3:dc:60:72:...:99:a5 --username root@pam --password
Просмотреть состояние хранилища:
# pvesm status --storage pbs_backup
Name Type Status Total Used Available %
pbs_backup pbs active 30786448 3097752 26099504 10.06%
Добавив хранилище данных типа «Proxmox Backup Server» в PVE, можно создавать резервные копии ВМ и контейнеров в это хранилище, так же как и в любые другие хранилища (см. Резервное копирование и восстановление).
Резервная копия ВМ:
Ссылки: