Перейти к содержанию

Резервное копирование с помощью Proxmox Backup Server (PBS). Делаем правильные бэкапы


Deniom

Рекомендуемые сообщения

  • Эксперты

Вступление, или от простых бэкапов к отдельной системе

Proxmox VE имеет встроенную поддержку создания резервных копий и снимков виртуальных машин, однако базовая реализация подвержена определенным ограничениям. Одной из таких проблем, с которой я столкнулся, является следующая:

В моей схеме домашней инфраструктуры резервные копии виртуальных машин создавались каждую ночь в 4 часа утра. Полученные архивы сохранялись на жестком диске, подключенном к тому же мини-ПК. Это позволяло хранить до 7 копий виртуальных машин на диске, что было приемлемо, пока я не развернул отдельный контейнер с Nextcloud.

Для меня важным стало резервное копирование жесткого диска, на котором хранятся пользовательские файлы Nextcloud. Это привело к увеличению суммарного размера ежедневной резервной копии с 5 ГБ до 30 ГБ и более.

Такая ситуация оказалась неприятной и требовала поиска решения. Кроме того, я передавал полученные резервные копии из Nextcloud на основной компьютер для дополнительного резервного копирования, так как я не хотел рисковать потерей данных в случае отказа жесткого диска. Однако передача такого объема данных ежедневно по сети вызывала определенные неудобства, особенно учитывая тенденцию к увеличению объема данных.

Попытка обсудить эту проблему в профильных чатах привела меня к изучению нового инструмента - Proxmox Backup Server (PBS).

Зачем это все и что нам это дает?

Основное отличие PBS заключается в том, что он не хранит полные копии бэкапов, а осуществляет запись только изменений в файлах. Этот процесс часто описывается термином 'инкрементальное резервное копирование' или 'дифференциальное резервное копирование'.

Также имеется возможность настройки синхронизации с удаленным хранилищем, используя NFS. PBS автоматически проверяет целостность бэкапов, предоставляя также ряд других полезных функций.

В моем случае, я хранил бэкапы за 3 дня (после добавления Nextcloud пришлось сократить историю с 7 до 3 дней), что в сумме занимало около 90-110 Гб на жестких дисках сервера и основного компьютера. Размер каждой виртуальной машины в архиве составлял от 5 до 10 Гб, а Nextcloud занимал около 20 Гб.

После перехода на использование PBS, я теперь храню 30 резервных копий каждой виртуальной машины, занимающих примерно 65 Гб. Стоит отметить, что эти значения ситуативны и зависят от степени изменений данных. Если в вашем случае много изменений в больших файлах, то и объемы будут увеличиваться соответственно. Например, если вы решите создавать резервные копии фильмов (хотя зачем это нужно - другой вопрос).

1110486283_.png.e135cc15cd8d54babfb3ef13db8aa20e.png

908986988_.png.dc390bdf52a85960ba5d5f3780cf1224.png

Фактически, PBS создает полную копию на первом этапе, а затем сохраняет только изменения по сравнению с предыдущей версией, что позволяет создавать некую 'машина времени' для данных.

Особенности использования, или не все так радужно как хотелось бы...

В отличие от бэкапов, создаваемых в виде архива, в данном случае мы получаем служебные файлы, которые кроме Proxmox никто прочитать не сможет. Это может быть серьезной проблемой, если надо вручную что-то вытащить, но всегда можно открыть и скачать архив через веб-интерфейс сервиса. Также для душевного спокойствия я оставил формирование классических бэкапов Proxmox в архив, но только раз в неделю, которые Nextcloud перекладывает на основной компьютер, а я уже руками забираю на внешний жесткий диск.

806478502_.png.17dbe5074dd65b5239c427ead9741064.png

Еще одной проблемой является то, что PBS не может делать синхронизацию через Samba для переноса бэкапов на тот же компьютер под Windows. Сам PBS поддерживает только NFS, который Microsoft не предоставляет на не серверных версиях Windows. Перенести файлы в ручном режиме или через WebDAV тоже не особо поможет, так как они являются скрытыми и частично зашифрованными. Для решения этой проблемы я испробовал много разных способов: от создания NFS сторонним софтом и в WSL до запуска отдельной виртуальной машины. Но самым оптимальным у меня получилось решение по запуску через Docker, о котором я расскажу отдельно.

Также сам PBS можно поставить несколькими способами. Рекомендуемым вариантом является развертывание отдельной машины с образом ISO PBS, альтернативой может быть установка в Debian как пакет. Не рекомендуемым, но допустимым является установка в PVE, не рекомендуется из-за того, что данные могут быть потеряны, если возникнут проблемы с хостом. Еще один не очевидный, не заявленный и точно не рекомендуемый (но кого это остановит 😊) способ - это установка как Docker-контейнер.

Основная часть, или хватит лирики

В моем случае у меня был мини-ПК с жестким диском, на котором хранились бэкапы, так что вариант с установкой в PVE мне показался достаточно оптимальным, так как не требовал отдельной железки и вообще это домашний тестовый стенд (ака подопытный кролик). С этим делом все достаточно просто, можем обратиться к официальной инструкции: [https://pbs.proxmox.com/docs/installation.html#install-proxmox-backup-server-on-proxmox-ve] Но я вынес сюда основные шаги, на самом деле их будет всего 2. Подключаемся по SSH к хосту Proxmox и приступаем.

1. Добавляем репозиторий с PBS в источники для PVE

nano /etc/apt/sources.list

И добавляем запись

deb http://download.proxmox.com/debian/pbs bookworm pbs-no-subscription

Внимание!!! Я предполагаю, что лишние репозитории у вас были заранее выключены и используется бесплатная версия. Для этого можно воспользоваться скриптом для настройки Proxmox (применять после чистой установки, иначе на свой страх может ломать источники и бог знает что еще)

bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/misc/post-pve-install.sh)"

Все скрипты: [https://tteck.github.io/Proxmox/]

2. Обновляем список пакетов и устанавливаем PBS

apt update apt install proxmox-backup-server

Собственно на этом все, у нас есть PBS на нашем основном хосте, заходим на него по адресу:

[https://<ip-or-dns-name>:8007]

2146726328_.png.805181ef0902d3ffd0222a1711021155.png

Нас встречает стандартный интерфейс proxmox и полное непонимание что с этим всем делать, но где наши не пропадали велики методом тыка идем в раздел хранилище данных, и создаем новое хранилище данных.

433470554_.png.db4a28d661b887dd4c6e7fdc00b44b7f.png

1114639589_.png.8ede8a69bc464ecef660a03c3a8ba552.png

Фактически мы указываем путь, где будут лежать наши файлы бэкапов в разбиении на служебные файлы proxmox.

После инициализации получаем обзорную информацию о нашем диске, тут можно оценить и прогноз по заполнению и фактор дедукции (то на сколько наши бэкапы повторяют себя) а также посмотреть статусы по регламентным заданиям.

2097875446_.png.f5eaeefa005871152891ffb95643ea86.png

Тут же настроим задание проверки резервных копий на целостность.

303196071_.png.814ae302d8e57d6ab298cbc067a292b9.png

60068757_.png.4248c1fb1101f8ec49261650128cfbc2.png

Следующим шагом необходимо настроить права для работы с полученным хранилищем. Идем в радел управление доступом и создаем нового пользователя:

959605876_.png.3beacd9fd1b5cd462483eae7d2f8bf8e.png

На вкладке разрешения настраиваем доступ к самому хранилищу, я в общем виде выдаю права администратора так как не вижу угрозы для своей системы, но данный вопрос можно подробно почитать в справке.

Добавляем примерно так:

1592270559_.png.6168ab820233f3beb86ee32ca58bf2c0.png

В итоге должно получиться

2078474704_.png.5d57743271c7f647758b17ac7d09d93a.png

В интерфейсе хранилища данных так же должны быть такие записи

!!! Внимание !!! Дополнительный раздел и не обязательные действия.

Если у вас есть свой домен и отдельный пунктик на предупреждения браузера о само подписанных сертификатах можно выпустить новый сертификат с помощью dns chelenge если или закинуть свой сертификат. Это надо если не используете прокси сервер или для обеспечения стабильности когда npm лежит. Данная инструкция так же актуальна для Proxmox VE. Переходим в раздел сертификаты, вкладка учетные записи:

1881577886_.png.5daf51e5b7927371b286a650720cc3fd.png

Создаем новую учетную запись, и новую запись модуля.

1396588423_.png.9162c35cf56cdb56bb0f6deebc58bb12.png

На вкладке сертификаты добавляем новую запись ACME и выполняем запрос сертификата

1197108709_.png.bffd8f251ee7ddcb6b786d9105d1c2e4.png

Данные действия обязательно делать до подключения так как получение сертификата изменяет подпись вашего сервера PBS.

Подключение PBS к proxmox VE, или когда это уже закончиться…

Заходим в веб интерфейс proxmox VE, идем в раздел хранилаща и добавляем наш PBS

685356865_.png.c9afeb894858280dbcd9cc181fc0d52c.png

199802642_.png.5f10382e408cc9665bcdd711c4a5a222.png

В моем случае настройки выглядят так:

19229110_.png.3b219066d9725fcea1ec74a9ab7360f4.png

Сервер указываем IP вашего хоста, отдельно обращаю внимание что соединение происходит по 8007 порту, отдельностоит обратить внимание при настройки прокси сервера.

Настройки по хранению резервных копий делать не надо за это будет отвечать сам PBS.

Отдельно надо отметить поле отпечаток, он нужен для установки ssl соединения между нашими системами. Что бы его получить возвращаемся в интерфейс PBS и на вкладке понель мониторинга нажимаем показать отпечаток.

979010931_.png.6572bec753774764538abe328b7222ae.png

После завершения настройки у вас появиться новое хранилище в вашем интерфейсе Proxmox VE

1974196836_.png.98674f0ce04d30a5cec6e703fa0864b7.png

102632663_.png.4496f32f6a7e903c5db902cdc6acb10c.png

Настроим резервное копирование. Переходим в раздел корня – «Резервное копирование» и создаем новую запись.

727124521_.png.9703c78e850bf4a4bd39fb266a26cc4c.png

Дополнительных настроек не надо. Отдельно надо отметить, что вариант сжатия мы не выбираем за это, отвечает сам PBS.

Так же не маловажная особенность по режимам, которая, может быть, и при обычном создании бэкапов, но при использовании PBS она возникает гарантировано.

Если выбирать режим «Снимок», которые делает бэкапы без остановки виртуальных машин, в процессе бэкапа создается копия виртуальной машины со всеми подключенными (и указанными для бэкапа) дисками. Эта копия создается в директории /var основного хоста, и если в процессе не хватит места, то возникнет ошибка типа такой:

ERROR: Backup of VM 101 failed - command 'rsync --stats -h -X -A --numeric-ids -aH --delete --no-whole-file --sparse --one-file-system --relative '--exclude=/tmp/?*' '--exclude=/var/tmp/?*' '--exclude=/var/run/?*.pid' /proc/1632/root//./ /proc/1632/root//./mnt/nextcloud /var/tmp/vzdumptmp128654_101' failed: exit code 11

Для исправления ее есть несколько способов я использовал два:

1.       Та виртуалка которая не помещается во временные файлы бэкапиться в режиме «Остановка»

2.       Увеличение пространства lvm root для того что бы поместились данные. При этом не надо что бы туда влазил весь выделенный диск, достаточно что бы в свободное пространство помещались все сохраняемые данные.

Так же есть способы с переопределением директории /var но данные методы мне показались запутанными и пока для моей ситуации не востребованы.

Так же у меня осталось регламентное копирование в архивы раз в неделю для переноса на внешний диск как я и писал в начале статьи.

1819156836_.png.072ee41c3f4e4abf52c032c3ebe43ca4.png

Фактически на этом настройка PBS закончена, вы можете создавать более правильные и оптимальные бэкапы.

В отдельном материале я расскажу как настроить синхронизацию PBS с компьютером для создание дополнительного хранилища бэкапов.

Всем спасибо за внимание, желаю вам удачных бэкапов которы не когда вам не понадобяться.

изображение.png

Изменено пользователем Deniom
Ссылка на комментарий
Поделиться на другие сайты

  • Deniom изменил название на Резервное копирование с помощью Proxmox Backup Server (PBS). Делаем правильные бэкапы

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...

Важная информация

Вы принимаете наши Условия использования, Политика конфиденциальности, Правила. А также использование Мы разместили cookie-файлы на ваше устройство, чтобы помочь сделать этот сайт лучше. Вы можете изменить свои настройки cookie-файлов, или продолжить без изменения настроек.

Яндекс.Метрика