PVE/Backup Server
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, можно создавать резервные копии ВМ и контейнеров в это хранилище, так же как и в любые другие хранилища (см. Резервное копирование и восстановление).
Резервная копия ВМ:
Ссылки: