EUR
european

EUR

usa

USD

Russian Ru
Ex. VAT Ex. VAT 0%

Proxmox Backup Server: garbage collection и prune

Введение

В этом руководстве объясняется, как настроить обслуживание Proxmox Backup Server для долгосрочного хранения резервных копий с помощью заданий prune и сборки мусора. Вы настроите конфигурацию Proxmox Prune, расписание Proxmox Garbage Collection и оцените использование хранилища, чтобы ваше хранилище данных не росло до тех пор, пока не займет все доступное дисковое пространство.

К концу этого руководства у вас будет настроенная политика prune по расписанию и расписание сборки мусора для хранилища данных Proxmox Backup Server, а также практические примеры retention для ежедневных, еженедельных и ежемесячных резервных копий.

Предварительные требования

Перед началом убедитесь, что у вас есть:

  • Proxmox Backup Server 4.2.x или новее;
  • Настроенное хранилище данных PBS с существующими или запланированными резервными копиями;
  • Административный доступ к веб-интерфейсу Proxmox Backup Server;
  • Доступ к shell от имени root или другого пользователя с достаточными административными правами PBS;
  • Базовое понимание заданий резервного копирования Proxmox VE и namespaces PBS;
  • Примерно 30 минут на выполнение настройки.

Это руководство предназначено для системных администраторов среднего уровня.

Шаг 1: Разберитесь, как Prune и Garbage Collection работают вместе

В Proxmox Backup Server pruning и garbage collection являются отдельными операциями обслуживания. Понимание того, как они взаимодействуют, необходимо для эффективного управления хранилищем данных Proxmox.

Задание prune определяет, какие snapshots резервных копий нужно сохранить, а какие snapshots нужно удалить из видимой истории резервных копий. Когда PBS выполняет prune snapshot, он удаляет метаданные snapshot, индексы, журналы и заметки. Он не удаляет немедленно неиспользуемые chunks резервной копии. Chunks, на которые ссылались удаленные prune snapshots, удаляются позже с помощью сборки мусора.

Garbage collection (GC) освобождает пространство хранилища данных, удаляя неиспользуемые chunks из хранилища chunks. PBS использует дедуплицированные chunks, поэтому один chunk может использоваться несколькими snapshots резервных копий. Из-за этого PBS не может безопасно удалить chunks ровно в тот момент, когда snapshot удаляется prune. Сначала он должен подтвердить, что на них больше не ссылается ни один оставшийся snapshot и ни одно выполняющееся резервное копирование.

Info

Prune удаляет старые записи snapshots резервных копий. GC освобождает фактическое дисковое пространство.

PBS также использует grace period для удаления chunks. Во время GC chunks помечаются и удаляются на этапе sweep, но chunks внутри grace period отображаются как ожидающие удаления и не удаляются немедленно. Это защищает выполняющиеся резервные копирования и учитывает поведение времени доступа файловой системы, особенно при распространенном поведении монтирования relatime.

Шаг 2: Проверьте текущую конфигурацию хранилища данных

Это можно сделать через CLI или через веб-интерфейс.

Выведите список доступных хранилищ данных:

proxmox-backup-manager datastore list

Ожидаемый вывод: таблица datastore.

Выберите хранилище данных, в котором находятся ваши резервные копии Proxmox VE. В следующих примерах замените <DATASTORE_NAME> на имя вашего хранилища данных.

Проверьте текущий статус сборки мусора:

proxmox-backup-manager garbage-collection status <DATASTORE_NAME>

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

Выведите список существующих заданий prune:

proxmox-backup-manager prune-job list

Вы должны увидеть существующие задания prune или пустой список, если задание prune еще не настроено.

Для проверки через веб-интерфейс перейдите в Datastore - <DATASTORE_NAME> - Prune & GC Jobs:

Шаг 3: Спланируйте политику долгосрочного retention

Политика retention должна соответствовать требованиям восстановления и емкости хранилища. Для многих планов Proxmox backup retention практичная долгосрочная политика использует схему grandfather-father-son:

Параметр retention Пример значения Результат
keep-daily 14 Хранить одну резервную копию в день
за 14 backup days
keep-weekly 8 Хранить одну резервную копию в неделю
за 8 backup weeks
keep-monthly 12 Хранить одну резервную копию в месяц
за 12 backup months
keep-yearly 2 Хранить одну резервную копию в год
за 2 backup years

Параметры retention в PBS обрабатываются по временным корзинам. Например, keep-daily сохраняет последнюю резервную копию для каждого сохраняемого дня, а дни без резервных копий не учитываются. keep-weekly сохраняет последнюю резервную копию для каждой сохраняемой ISO-недели, а недели без резервных копий не учитываются.

Warning

Не рассчитывайте retention как простое сложение без учета пересечений. Одна резервная копия может одновременно удовлетворять daily, weekly, monthly и yearly правилам, поэтому точное количество сохраненных snapshots зависит от временных меток резервных копий.

Для ежедневного расписания резервного копирования начните с одной из этих политик:

Политика Настройки retention Сценарий использования
Консервативная keep-daily 7
keep-weekly 4
keep-monthly 6
Небольшое хранилище данных
или короткая история восстановления
Сбалансированная keep-daily 14
keep-weekly 8
keep-monthly 12
Типичные резервные копии VM и контейнеров
Долгосрочная keep-daily 30
keep-weekly 12
keep-monthly 24
keep-yearly 3
Более крупное хранилище данных
или история, требуемая compliance

Tip

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

Шаг 4: Оцените объем хранилища резервных копий перед применением retention

Планирование хранилища для долгосрочного хранения резервных копий не равно умножению полного размера VM на количество snapshots. Proxmox Backup Server использует дедупликацию, поэтому каждая новая резервная копия обычно хранит только измененные chunks плюс метаданные. Тем не менее вам все равно следует рассчитать консервативную оценку.

Используйте эту формулу:

Оценочный объем хранилища = начальный объем защищенных данных + ежедневный объем измененных данных * эквивалент сохраненных дней + запас

Пример 1: сбалансированный retention для группы VM:

Значение Пример
Защищенные данные VM 2 TB
Средний ежедневный объем измененных данных 80 GB
Политика retention 14 daily · 8 weekly · 12 monthly
Запас 25 percent

Приблизительное количество сохраненных точек изменений:

14 daily + 8 weekly + 12 monthly = 34 restore points

Приблизительный объем измененных данных:

80 GB * 34 = 2720 GB

Приблизительный итог до добавления запаса:

2000 GB + 2720 GB = 4720 GB

Добавьте запас 25 percent:

4720 GB * 1.25 = 5900 GB

Для этой нагрузки запланируйте около 6 TB полезной емкости хранилища данных.

Пример 2: политика для меньшего хранилища данных:

Значение Пример
Защищенные данные VM 1 TB
Средний ежедневный объем измененных данных 30 GB
Политика retention 7 daily · 4 weekly · 6 monthly
Запас 25 percent

Приблизительное количество restore points:

7 + 4 + 6 = 17 restore points

Приблизительный объем хранилища:

1000 GB + (30 GB * 17) = 1510 GB 1510 GB * 1.25 = 1887.5 GB

Для этой нагрузки запланируйте около 2 TB полезной емкости хранилища данных.

Info

Эти примеры намеренно консервативны. Реальное использование PBS может быть ниже, потому что дедупликация может повторно использовать chunks между несколькими snapshots и между похожими системами.

Шаг 5: Создайте задание Prune в веб-интерфейсе

  1. Откройте веб-интерфейс Proxmox Backup Server.
  2. Выберите Datastore.
  3. Выберите <DATASTORE_NAME>.
  4. Откройте вкладку Prune & GC.
  5. Нажмите Add Prune Job.
  6. Установите Datastore в <DATASTORE_NAME>.
  7. Установите Namespace, если вы хотите выполнять prune только для одного namespace.
  8. Настройте значения retention, например keep-daily как 14, keep-weekly как 8 и keep-monthly как 12.
  9. Установите расписание, например 03:00.
  10. Сохраните задание prune.

Ожидаемый результат: PBS создаст запланированное задание prune для хранилища данных или namespace. Это задание периодически удаляет snapshots резервных копий, которые больше не выбраны вашей политикой retention.

Шаг 6: Создайте задание Prune из командной строки

Вы также можете создать такое же задание prune из shell PBS.

Для задания prune на уровне всего хранилища данных:

proxmox-backup-manager prune-job create pve-longterm \ --store <DATASTORE_NAME> \ --schedule "03:00" \ --keep-daily 14 \ --keep-weekly 8 \ --keep-monthly 12 \ --comment "Long-term Proxmox backup retention"

Ожидаемый результат: PBS создаст задание prune с именем pve-longterm.

Для задания prune, привязанного к namespace:

proxmox-backup-manager prune-job create pve-namespace-longterm \ --store <DATASTORE_NAME> \ --ns <NAMESPACE> \ --schedule "03:00" \ --keep-daily 14 \ --keep-weekly 8 \ --keep-monthly 12 \ --comment "Long-term retention for namespace"

Ожидаемый результат: PBS выполнит prune только для выбранного namespace. Это полезно, когда разным кластерам, tenant-ам или окружениям требуются разные политики retention.

Выведите список заданий prune:

proxmox-backup-manager prune-job list

Ожидаемый вывод: таблица заданий очистки proxmox backup.

Шаг 7: Настройте расписание Garbage Collection

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

Задайте еженедельное расписание GC:

proxmox-backup-manager datastore update <DATASTORE_NAME> \ --gc-schedule "Sun 04:00"

Вы можете настроить это через веб-интерфейс, перейдя в Datastore - <DATASTORE_NAME> - Prune & GC Jobs → Garbage Collection Jobs → Edit:

Ожидаемый результат: PBS запланирует сборку мусора для хранилища данных каждое воскресенье в 04:00.

Проверьте статус GC:

proxmox-backup-manager garbage-collection status <DATASTORE_NAME>

Ожидаемый вывод включает имя хранилища данных и информацию о самом последнем или следующем запуске GC.

Вы также можете запустить GC вручную:

proxmox-backup-manager garbage-collection start <DATASTORE_NAME>

Ожидаемый результат: PBS запустит задачу GC для хранилища данных.

Warning

Не ожидайте, что GC удалит каждый неиспользуемый chunk сразу после pruning. PBS может отображать некоторые chunks как ожидающие удаления до завершения grace period.

Шаг 8: Выберите безопасное расписание Prune и GC

Практичное расписание выглядит так:

Задача Пример расписания Причина
Задание резервного копирования Proxmox VE

Ежедневно в 01:00

Сначала создает новые резервные копии
Задание prune PBS

Ежедневно в 03:00

Удаляет snapshots вне retention
Задание GC PBS

Еженедельно в воскресенье в 04:00

Освобождает неиспользуемые chunks после pruning

Такой порядок сохраняет новые резервные копии доступными до удаления старых snapshots. Он также дает PBS время завершить записи резервных копий до запуска задач prune и GC.

В загруженных окружениях избегайте одновременного запуска задач backup, verification, prune, sync и GC. Разносите задачи обслуживания по времени, чтобы снизить конкуренцию за I/O.

Tip

Если ваше хранилище данных получает много резервных копий каждый день, начните с еженедельной GC. Если хранилище данных быстро заполняется после pruning, рассмотрите более частый запуск GC, но следите за влиянием на I/O.

Шаг 9: Проверьте конфигурацию

Выведите список заданий prune:

proxmox-backup-manager prune-job list

Подтвердите, что у задания указаны ожидаемые хранилище данных, namespace, расписание и значения keep.

Покажите одно задание prune:

proxmox-backup-manager prune-job show pve-longterm

Ожидаемый результат: PBS отобразит настроенные параметры retention.

Проверьте конфигурацию GC:

proxmox-backup-manager garbage-collection list

Ожидаемый результат: PBS выведет статус сборки мусора для всех хранилищ данных, включая хранилища данных без заданий GC.

Проверьте использование хранилища данных из веб-интерфейса:

  • Откройте Datastore.
  • Выберите <DATASTORE_NAME>.
  • Проверьте использование хранилища данных и историю задач.
  • Откройте Tasks и подтвердите, что задания prune и GC завершаются успешно.

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

Шаг 10: Отслеживайте рост хранилища со временем

После настройки Prune jobs в PBS отслеживайте использование хранилища минимум в течение одного полного retention cycle. Например, если вы настраиваете keep-monthly 12, вам потребуется несколько месяцев данных, прежде чем станет понятен долгосрочный тренд.

Проверьте эти метрики:

Метрика Что проверять
Использованное пространство
хранилища данных
Подтверждает, работает ли оптимизация
хранилища резервных копий
Журналы задач prune Подтверждают, что snapshots удаляются
Журналы задач GC Подтверждают, что неиспользуемые
chunks удаляются
Pending removals Указывают на chunks, ожидающие
завершения grace period GC
Тренд размера заданий
резервного копирования
Показывает, увеличивается ли
объем измененных данных

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

Типичные корректировки:

Проблема Корректировка
Хранилище данных заполняется слишком быстро Уменьшите keep-daily, keep-weekly
или keep-monthly
Слишком мало
недавних restore points
Увеличьте keep-daily
Ежемесячная история
слишком короткая
Увеличьте keep-monthly
Резервные копии
пересекаются с обслуживанием
Перенесите prune или GC
на более позднее время
GC освобождает мало места Подтвердите, что задания prune действительно удаляют старые snapshots

Откат изменений

Чтобы удалить задание prune:

proxmox-backup-manager prune-job remove pve-longterm

Ожидаемый результат: PBS удалит конфигурацию задания prune.

Чтобы отключить расписание GC без удаления хранилища данных:

proxmox-backup-manager datastore update <DATASTORE_NAME> \ --delete gc-schedule

Ожидаемый результат: PBS очистит автоматическое расписание GC для хранилища данных.

Чтобы изменить retention вместо удаления задания prune:

proxmox-backup-manager prune-job update pve-longterm \ --keep-daily 7 \ --keep-weekly 4 \ --keep-monthly 6

Ожидаемый результат: PBS сохранит задание prune, но применит новую политику retention во время будущих запусков prune.

Warning

Откат политики prune не восстанавливает snapshots, которые уже были удалены prune. После того как snapshot удален, а его chunks позже удалены с помощью GC, его нельзя восстановить из PBS.

Устранение неполадок

GC не освобождает пространство сразу

Причина: Prune удалил метаданные snapshot, но chunks все еще используются другими snapshots или находятся внутри grace period GC.
Исправление: дождитесь завершения grace period и запустите GC повторно позже. Проверьте журналы задач на наличие pending removals.

Prune сохраняет больше резервных копий, чем ожидалось

Причина: keep-daily, keep-weekly и keep-monthly используют временные корзины. Дни, недели или месяцы без резервных копий не учитываются. Правила retention также пересекаются.
Исправление: используйте PBS prune simulator перед изменением retention в production. Это поможет предварительно посмотреть поведение retention до применения изменений.

Хранилище данных продолжает расти после Prune и GC

Причина: ежедневный объем измененных данных может быть выше расчетного, резервные копии могут включать новые диски или retention может быть слишком большим для хранилища данных.
Исправление: пересчитайте оценку объема с использованием фактического объема измененных данных. Уменьшите retention или расширьте хранилище.

Задание Prune не влияет на Namespace

Причина: задание prune может быть настроено для неправильного namespace или неправильной глубины namespace.
Исправление: проверьте настройки задания prune и подтвердите значение --ns. Если вы хотите, чтобы задание применялось только к одному namespace, задайте namespace явно.

Backup clients все еще могут удалять резервные копии

Причина: учетные данные backup clients могут иметь права на удаление, или retention может быть настроен вне PBS.
Исправление: используйте least privilege для backup clients. Для устойчивости к ransomware предпочитайте prune jobs на стороне PBS вместо выдачи backup clients прав на удаление.

Заключение

Вы настроили обслуживание Proxmox Backup Server для долгосрочного retention, создав задание prune и запланировав сборку мусора. Вы также узнали, почему chunks не удаляются немедленно, как GC завершает очистку хранилища данных и как оценивать требования к хранилищу перед применением долгосрочного retention. Эти практики помогают оптимизировать Proxmox backup, повышая эффективность хранилища и делая политику хранения резервных копий предсказуемой и управляемой.

В качестве следующих шагов добавьте задания verification, настройте уведомления о неудачных задачах prune и GC и ежемесячно проверяйте рост хранилища данных. Это делает оптимизацию хранилища резервных копий предсказуемой и предотвращает ситуацию, когда настройки retention незаметно занимают всю доступную емкость.

Версия документа: 1.0
Последнее обновление: Июнь 2026
Владелец: Команда технической документации

VAT

  • Other

    Ex. VAT

    0%
  • austria

    Austria

    20%
  • Belgium

    Belgium

    21%
  • Bulgaria

    Bulgaria

    20%
  • Croatia

    Croatia

    25%
  • Cyprus

    Cyprus

    19%
  • Czech Republic

    Czech Republic

    21%
  • Denmark

    Denmark

    25%
  • Estonia

    Estonia

    22%
  • France

    France

    20%
  • Finland

    Finland

    24%
  • Germany

    Germany

    19%
  • Greece

    Greece

    24%
  • Hungary

    Hungary

    27%
  • Ireland

    Ireland

    23%
  • Italy

    Italy

    22%
  • Latvia

    Latvia

    21%
  • Lithuania

    Lithuania

    21%
  • Luxembourg

    Luxembourg

    17%
  • Malta

    Malta

    18%
  • Netherlands

    Netherlands

    21%
  • Poland

    Poland

    23%
  • Portugal

    Portugal

    23%
  • Romania

    Romania

    19%
  • Slovakia

    Slovakia

    20%
  • Slovenia

    Slovenia

    22%
  • Spain

    Spain

    21%
  • Sweden

    Sweden

    25%
  • USA

    USA

    0%
european
states
  • germany
  • Español
  • Italiano
  • Poland
  • Русский
  • Slovenski
  • Türkçe
  • ukraine
  • kingdom
  • French
  • Hrvatska
  • Other
  • Austria
  • Belgium
  • Bulgaria
  • Croatia
  • Cyprus
  • Czech Republic
  • Denmark
  • Estonia
  • Finland
  • France
  • Germany
  • Greece
  • Hungary
  • Ireland
  • Italy
  • Latvia
  • Lithuania
  • Luxembourg
  • Malta
  • Netherlands
  • Poland
  • Portugal
  • Romania
  • Slovakia
  • Slovenia
  • Spain
  • Sweden
  • USA