PVE/Backup Server: различия между версиями
Нет описания правки |
|||
Строка 24: | Строка 24: | ||
Установить сервер PBS можно следующей командой: | Установить сервер PBS можно следующей командой: | ||
< | <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-proxy предоставляет API Proxmox Backup Server через TCP-порт 8007 с использованием HTTPS. Она имеет весьма ограниченные разрешения. Операции, требующие дополнительных разрешений, перенаправляются в локальную службу proxmox-backup. | ||
Строка 36: | Строка 36: | ||
Включить модуль можно следующей командой: | Включить модуль можно следующей командой: | ||
< | <syntaxhighlight lang="bash"># modprobe zfs</syntaxhighlight> | ||
Чтобы не вводить эту команду после перезагрузки, следует раскомментировать строку: | Чтобы не вводить эту команду после перезагрузки, следует раскомментировать строку: | ||
Строка 46: | Строка 46: | ||
Установить клиент PBS: | Установить клиент PBS: | ||
< | <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]] | ||
Строка 61: | Строка 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 на диске в веб-интерфейсе: | ||
Строка 84: | Строка 84: | ||
[[Изображение:Pbs-disks-add.png|Proxmox Backup Server. Создать файловую систему на диске]] | [[Изображение:Pbs-disks-add.png|Proxmox Backup Server. Создать файловую систему на диске]] | ||
Пример создания файловой системы в командной строке (будет создана файловая система ext4 и хранилище данных на диске nvme0n3, хранилище данных будет создано по адресу {{path|/mnt/datastore/ | Пример создания файловой системы в командной строке (будет создана файловая система 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% | ||
Строка 93: | Строка 93: | ||
Chunkstore create: 99% | Chunkstore create: 99% | ||
TASK OK | TASK OK | ||
</ | </syntaxhighlight> | ||
Для создания zpool в веб-интерфейсе, следует в разделе | Для создания zpool в веб-интерфейсе, следует в разделе «Хранилище/Диски» перейти на вкладку «ZFS» и нажать кнопку «Создать: ZFS». В открывшемся окне следует задать параметры zpool: имя хранилища, выбрать диски, уровень RAID и нажать кнопку «OK»: | ||
[[Изображение:Pbs-disks-zfs.png|Proxmox Backup Server. Создание хранилища ZFS]] | [[Изображение:Pbs-disks-zfs.png|Proxmox Backup Server. Создание хранилища ZFS]] | ||
Строка 101: | Строка 101: | ||
Команда для создания зеркального zpool с использованием двух дисков и монтированием в {{path|/mnt/datastore/zfs_st}}: | Команда для создания зеркального 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> | ||
=== Хранилище данных === | === Хранилище данных === | ||
Строка 112: | Строка 112: | ||
Информация о конфигурации для хранилищ данных хранится в файле {{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 — пустой файл, используемый для блокировки процесса; | ||
Строка 141: | Строка 141: | ||
Вывести список существующих хранилищ данных: | Вывести список существующих хранилищ данных: | ||
< | <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> | ||
Данная команда удалит только конфигурацию хранилища данных, данные из базового каталога удалены не будут. | Данная команда удалит только конфигурацию хранилища данных, данные из базового каталога удалены не будут. | ||
Строка 154: | Строка 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) — при использовании этой аутентификации системный пользователь должен существовать (должен быть создан, например, с помощью команды {{cmd|adduser}}). Пользователь аутентифицируется с помощью своего обычного системного пароля; | ||
* | * Сервер аутентификации Proxmox Backup (Proxmox Backup authentication server) — аутентификация Proxmox Backup Server. Хэшированные пароли хранятся в файле {{path|/etc/proxmox-backup/shadow.json}}; | ||
* Сервер LDAP — позволяет использовать внешний LDAP-сервер для аутентификации пользователей (например, OpenLDAP); | |||
* Сервер OpenID Connect — уровень идентификации поверх протокола OATH 2.0. Позволяет аутентифицировать пользователей на основе аутентификации, выполняемой внешним сервером авторизации. | |||
Для добавления пользователя в веб-интерфейсе, следует в веб-интерфейсе перейти в раздел «Конфигурация» → «Access Control» («Контроль доступа») и на вкладке «Управление пользователями» нажать кнопку «Добавить»: | Для добавления пользователя в веб-интерфейсе, следует в веб-интерфейсе перейти в раздел «Конфигурация» → «Access Control» («Контроль доступа») и на вкладке «Управление пользователями» нажать кнопку «Добавить»: | ||
Строка 168: | Строка 177: | ||
Управление пользователями в консоли: | Управление пользователями в консоли: | ||
* просмотреть список пользователей: | * просмотреть список пользователей: | ||
*:< | *:<syntaxhighlight lang="bash"># proxmox-backup-manager user list | ||
┌──────────────┬────────┬────────┬───────────┬──────────┬───────┬───────────┐ | ┌──────────────┬────────┬────────┬───────────┬──────────┬───────┬───────────┐ | ||
│ userid │ enable │ expire │ firstname │ lastname │ email │ comment │ | │ userid │ enable │ expire │ firstname │ lastname │ email │ comment │ | ||
Строка 175: | Строка 184: | ||
├──────────────┼────────┼────────┼───────────┼──────────┼───────┼───────────┤ | ├──────────────┼────────┼────────┼───────────┼──────────┼───────┼───────────┤ | ||
│ 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> | ||
=== API-токены === | === API-токены === | ||
Строка 202: | Строка 211: | ||
Генерация 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|Отображаемое секретное значение необходимо сохранить, так как после создания токена его нельзя будет отобразить снова. }} | ||
=== Контроль доступа === | === Контроль доступа === | ||
Строка 218: | Строка 227: | ||
Информация о правах доступа хранится в файле {{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 (*) | ||
Строка 239: | Строка 254: | ||
- Datastore.Prune (*) | - Datastore.Prune (*) | ||
- Datastore.Read (*) | - Datastore.Read (*) | ||
- Datastore.Verify (*)</ | - Datastore.Verify (*)</syntaxhighlight> | ||
=== Двухфакторная аутентификация === | === Двухфакторная аутентификация === | ||
Строка 248: | Строка 263: | ||
Proxmox Backup Server поддерживает три метода двухфакторной аутентификации: | Proxmox Backup Server поддерживает три метода двухфакторной аутентификации: | ||
* TOTP ( | * TOTP (одноразовый пароль на основе времени) — для создания этого кода используется алгоритм одноразового пароля с учетом времени входа в систему (код меняется каждые 30 секунд). Настройка аутентификации TOTP: | ||
*:[[Изображение:Pbs-auth-totp1.png|Proxmox Backup Server. Настройка аутентификации TOTP]] | *:[[Изображение:Pbs-auth-totp1.png|Proxmox Backup Server. Настройка аутентификации TOTP]] | ||
*:Использование TOTP при аутентификации пользователя: | *:Использование TOTP при аутентификации пользователя: | ||
*:[[Изображение:Pbs-auth-totp2.png|Proxmox Backup Server. Запрос второго фактора (TOTP) при аутентификации пользователя в веб-интерфейсе]] | *:[[Изображение:Pbs-auth-totp2.png|Proxmox Backup Server. Запрос второго фактора (TOTP) при аутентификации пользователя в веб-интерфейсе]] | ||
* WebAuthn (веб-аутентификация) — реализуется с помощью различных устройств безопасности, таких как аппаратные ключи или доверенные платформенные модули (TPM). Для работы веб-аутентификации необходим сертификат HTTPS; | * WebAuthn (веб-аутентификация) — реализуется с помощью различных устройств безопасности, таких как аппаратные ключи или доверенные платформенные модули (TPM). Для работы веб-аутентификации необходим сертификат HTTPS; | ||
* | * Ключи восстановления — список ключей, каждый из которых можно использовать только один раз. В каждый момент времени у пользователя может быть только один набор одноразовых ключей. Создание набора ключей: | ||
*:[[Изображение:Pbs-auth-keys1.png|Proxmox Backup Server. Настройка аутентификации Recovery Keys]] | *:[[Изображение:Pbs-auth-keys1.png|Proxmox Backup Server. Настройка аутентификации Recovery Keys]] | ||
*:Использование Recovery Key при аутентификации пользователя: | *:Использование Recovery Key при аутентификации пользователя: | ||
Строка 264: | Строка 279: | ||
Информация о конфигурации удалённых PBS хранится в файле {{path|/etc/proxmox-backup/remote.cfg}}. | Информация о конфигурации удалённых PBS хранится в файле {{path|/etc/proxmox-backup/remote.cfg}}. | ||
Для добавления удалённого PBS в веб-интерфейсе следует перейти в раздел «Конфигурация» → | Для добавления удалённого PBS в веб-интерфейсе следует перейти в раздел «Конфигурация» → «Удалённые хранилища» и нажать кнопку «Добавить»: | ||
[[Изображение:Pbs-remote-add.png|Proxmox Backup Server. Добавление удалённого PBS]] | [[Изображение:Pbs-remote-add.png|Proxmox Backup Server. Добавление удалённого PBS]] | ||
{{Note|Отпечаток TLS-сертификата можно получить в веб-интерфейсе | {{Note|Отпечаток TLS-сертификата можно получить на удалённом PBS в веб-интерфейсе: | ||
[[Изображение:Pbs-fingerprint.png|Proxmox Backup Server. Отпечаток TLS-сертификата]] | [[Изображение:Pbs-fingerprint.png|Proxmox Backup Server. Отпечаток TLS-сертификата]] | ||
Или в командной строке: | Или в командной строке: | ||
< | <syntaxhighlight lang="bash"># proxmox-backup-manager cert info | grep Fingerprint</syntaxhighlight>}} | ||
Управление удалёнными PBS в консоли: | Управление удалёнными PBS в консоли: | ||
*добавить удалённый 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: | *список удалённых PBS: | ||
*:< | *:<syntaxhighlight lang="bash"># proxmox-backup-manager remote list</syntaxhighlight> | ||
*удалить удалённый PBS: | *удалить удалённый PBS: | ||
*:< | *:<syntaxhighlight lang="bash"># proxmox-backup-manager remote remove pbs2</syntaxhighlight> | ||
Для настройки задачи синхронизации необходимо | Для настройки задачи синхронизации необходимо в разделе «Хранилище данных» перейти на вкладку «Задания синхронизации» и нажать кнопку «Добавить»: | ||
[[Изображение:Pbs-syncjob-add.png|Proxmox Backup Server. Добавление задачи синхронизации]] | [[Изображение:Pbs-syncjob-add.png|Proxmox Backup Server. Добавление задачи синхронизации]] | ||
Строка 290: | Строка 304: | ||
Управление задачами синхронизации в консоли: | Управление задачами синхронизации в консоли: | ||
*добавить удалённый PBS: | *добавить удалённый PBS: | ||
*:< | *:<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> | ||
*изменить удалённый PBS: | *изменить удалённый PBS: | ||
*:< | *:<syntaxhighlight lang="bash"># proxmox-backup-manager sync-job update test_job --comment 'offsite'</syntaxhighlight> | ||
*удалить удалённый PBS: | *удалить удалённый PBS: | ||
*:< | *:<syntaxhighlight lang="bash"># proxmox-backup-manager sync-job remove test_job</syntaxhighlight> | ||
После создания задания синхронизации оно будет запускаться по заданному расписанию, также его можно запустить вручную из веб-интерфейса (кнопка | После создания задания синхронизации оно будет запускаться по заданному расписанию, также его можно запустить вручную из веб-интерфейса (кнопка «Запустить сейчас»). | ||
== Клиент резервного копирования == | == Клиент резервного копирования == | ||
Строка 308: | Строка 322: | ||
Указать репозиторий можно, передав его в параметре --repository, или установив переменную среды PBS_REPOSITORY, например: | Указать репозиторий можно, передав его в параметре --repository, или установив переменную среды PBS_REPOSITORY, например: | ||
< | <syntaxhighlight lang="bash"># export PBS_REPOSITORY=pbs.test.alt:store1</syntaxhighlight> | ||
{| class="wikitable" | {| class="wikitable" | ||
Строка 346: | Строка 360: | ||
В этом разделе рассмотрено, как создать резервную копию внутри машины (физического хоста, ВМ или контейнера). Такие резервные копии могут содержать архивы файлов и изображений. Предполагается что сервер резерного копирования уже настроен. | В этом разделе рассмотрено, как создать резервную копию внутри машины (физического хоста, ВМ или контейнера). Такие резервные копии могут содержать архивы файлов и изображений. Предполагается что сервер резерного копирования уже настроен. | ||
Создать | Создать резервную копию домашнего каталога пользователя 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> | ||
==== Шифрование ==== | ==== Шифрование ==== | ||
Строка 372: | Строка 383: | ||
Создать ключ шифрования: | Создать ключ шифрования: | ||
< | <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: | ||
Строка 401: | Строка 414: | ||
Список всех снимков на сервере: | Список всех снимков на сервере: | ||
< | <syntaxhighlight lang="bash">$ proxmox-backup-client snapshot list --repository pbs.test.alt:store1 | ||
Password for "root@pam": *** | Password for "root@pam": *** | ||
┌───────────────────────────────────┬─────────────┬──────────────────────────────────────┐ | ┌───────────────────────────────────┬─────────────┬──────────────────────────────────────┐ | ||
│ snapshot │ size │ files │ | │ snapshot │ size │ files │ | ||
╞═══════════════════════════════════╪═════════════╪══════════════════════════════════════╡ | ╞═══════════════════════════════════╪═════════════╪══════════════════════════════════════╡ | ||
│ host/host-01/ | │ host/host-01/2023-09-17T14:17:16Z │ 667.147 MiB │ catalog.pcat1 index.json user.pxar │ | ||
├───────────────────────────────────┼─────────────┼──────────────────────────────────────┤ | ├───────────────────────────────────┼─────────────┼──────────────────────────────────────┤ | ||
│ host/host-01/ | │ host/host-01/2023-09-17T14:14:27Z │ 667.148 MiB │ catalog.pcat1 index.json user_s.pxar │ | ||
├───────────────────────────────────┼─────────────┼──────────────────────────────────────┤ | ├───────────────────────────────────┼─────────────┼──────────────────────────────────────┤ | ||
│ host/pbs/ | │ host/pbs/2023-09-15T15:00:37Z │ 98.494 MiB │ catalog.pcat1 index.json user.pxar │ | ||
├───────────────────────────────────┼─────────────┼──────────────────────────────────────┤ | ├───────────────────────────────────┼─────────────┼──────────────────────────────────────┤ | ||
│ host/pbs/ | │ 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 | Starting interactive shell | ||
pxar:/ > ls | pxar:/ > ls | ||
…</ | …</syntaxhighlight> | ||
Пример поиска в содержимом архива и восстановление данных: | Пример поиска в содержимом архива и восстановление данных: | ||
< | <syntaxhighlight lang="bash">pxar:/ > find *.txt --select | ||
/test/connection_trace.txt | /test/connection_trace.txt | ||
/Рабочий стол/1.txt | /Рабочий стол/1.txt | ||
Строка 439: | Строка 452: | ||
pxar:/ > restore-selected /home/user/restore/ | pxar:/ > restore-selected /home/user/restore/ | ||
pxar:/ > restore /home/user/conf/ --pattern *.conf | pxar:/ > restore /home/user/conf/ --pattern *.conf | ||
pxar:/ > exit</ | pxar:/ > exit</syntaxhighlight> | ||
где: | где: | ||
Строка 453: | Строка 466: | ||
Можно вручную инициировать вход/выход. Команда входа: | Можно вручную инициировать вход/выход. Команда входа: | ||
< | <syntaxhighlight lang="bash">$ proxmox-backup-client login --repository pbs.test.alt:store1 | ||
Password for "root@pam": ******</ | Password for "root@pam": ******</syntaxhighlight> | ||
Удалить билет: | Удалить билет: | ||
< | <syntaxhighlight lang="bash">$ proxmox-backup-client logout --repository pbs.test.alt:store1</syntaxhighlight> | ||
== Интеграция с PVE == | == Интеграция с PVE == | ||
Строка 463: | Строка 476: | ||
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]] | ||
Строка 477: | Строка 490: | ||
Или, выполнив следующую команду на сервере резервного копирования: | Или, выполнив следующую команду на сервере резервного копирования: | ||
< | <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#Резервное_копирование |Резервное копирование и восстановление]]). | ||
Резервная копия ВМ: | Резервная копия ВМ: |
Версия от 19:02, 2 февраля 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 можно следующей командой:
# 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:
# 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) — при использовании этой аутентификации системный пользователь должен существовать (должен быть создан, например, с помощью команды adduser). Пользователь аутентифицируется с помощью своего обычного системного пароля;
- Сервер аутентификации Proxmox Backup (Proxmox Backup authentication server) — аутентификация Proxmox Backup Server. Хэшированные пароли хранятся в файле /etc/proxmox-backup/shadow.json;
- Сервер LDAP — позволяет использовать внешний LDAP-сервер для аутентификации пользователей (например, OpenLDAP);
- Сервер OpenID Connect — уровень идентификации поверх протокола OATH 2.0. Позволяет аутентифицировать пользователей на основе аутентификации, выполняемой внешним сервером авторизации.
Для добавления пользователя в веб-интерфейсе, следует в веб-интерфейсе перейти в раздел «Конфигурация» → «Access Control» («Контроль доступа») и на вкладке «Управление пользователями» нажать кнопку «Добавить»:
Управление пользователями в консоли:
- просмотреть список пользователей:
# 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
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;
- Ключи восстановления — список ключей, каждый из которых можно использовать только один раз. В каждый момент времени у пользователя может быть только один набор одноразовых ключей. Создание набора ключей:
Управление удалёнными 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
Для настройки задачи синхронизации необходимо в разделе «Хранилище данных» перейти на вкладку «Задания синхронизации» и нажать кнопку «Добавить»:
Управление задачами синхронизации в консоли:
- добавить удалённый PBS:
# 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
- изменить удалённый PBS:
# proxmox-backup-manager sync-job update test_job --comment 'offsite'
- удалить удалённый PBS:
# 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, можно создавать резервные копии ВМ и контейнеров в это хранилище, так же как и в любые другие хранилища (см. Резервное копирование и восстановление).
Резервная копия ВМ:
Ссылки: