пятница, 28 августа 2020 г.

Proxmox BS. Управление хранением резервных копий.

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

Клиентская сторона

Безусловное удаление конкретного бэкапа можно осуществить, выполнив:

proxmox-backup-client forget <snapshot>

Выполнение команды приведет к необратимому удалению архивов бэкапа.

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

proxmox-backup-client prune <group> <option1>..<optionN>

Где <group> - название группы бэкапов (в моем случае из предыдущей заметки host/debian-test)
а <options> принимает следующие значения:

--keep-last <N>
Оставит последние <N> резервных копий.
--keep-hourly <N>
Оставит резервные копии за последние <N> часов. Если за один час создается более одной резервной копии, сохраняется только последняя.
--keep-daily <N>
Оставит резервные копии за последние <N> дней. Если за один день создается более одной резервной копии, сохраняется только последняя.
--keep-weekly <N>
Оставит резервные копии за последние <N> недель. Если за одну неделю создается более одной резервной копии, сохраняется только последняя.
--keep-monthly <N>
Оставит резервные копии за последние <N> месяцев. Если за один месяц создается более одной резервной копии, сохраняется только последняя.
--keep-yearly <N>
Оставит резервные копии за последние <N> лет. Если за один год создается более одной резервной копии, сохраняется только самая последняя.

Пример работы:

# proxmox-backup-client snapshots
┌───────────────────────────────────────┬─────────────┬──────────────────────────────────────────────┐
│ snapshot                              │        size │ files                                        │
╞═══════════════════════════════════════╪═════════════╪══════════════════════════════════════════════╡
│ host/debian-test/2020-08-25T14:18:30Z │  3621381929 │ catalog.pcat1 home.pxar index.json root.pxar │
├───────────────────────────────────────┼─────────────┼──────────────────────────────────────────────┤
│ host/debian-test/2020-08-26T07:32:07Z │ 20991443265 │ home.img index.json                          │
├───────────────────────────────────────┼─────────────┼──────────────────────────────────────────────┤
│ host/debian-test/2020-08-26T10:02:00Z │  3617924115 │ catalog.pcat1 home.pxar index.json root.pxar │
└───────────────────────────────────────┴─────────────┴──────────────────────────────────────────────┘
# proxmox-backup-client prune host/debian-test --keep-daily 7 --keep-weekly 4 --keep-monthly 3
┌───────────────────────────────────────┬──────────────────────────┬────────┐
│ snapshot                              │                     date │ action │
╞═══════════════════════════════════════╪══════════════════════════╪════════╡
│ host/debian-test/2020-08-25T14:18:30Z │ Tue Aug 25 17:18:30 2020 │   keep │
├───────────────────────────────────────┼──────────────────────────┼────────┤
│ host/debian-test/2020-08-26T07:32:07Z │ Wed Aug 26 10:32:07 2020 │ remove │
├───────────────────────────────────────┼──────────────────────────┼────────┤
│ host/debian-test/2020-08-26T10:02:00Z │ Wed Aug 26 13:02:00 2020 │   keep │
└───────────────────────────────────────┴──────────────────────────┴────────┘

Данная команда не привела к физическому удалению данных, а только очистила индексы, для полного удаления необходимо выполнить сборку мусора:

# proxmox-backup-client garbage-collect
Error: no permissions on '/system/tasks'

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

Серверная сторона

Для настройки параметров хранения хранилища, которые могут быть заданы при его создании, нам необходимо отредактировать параметры хранилища

Жмем <Edit>

Нам необходимо настроить планировщики для prune и сборщика мусора

После чего переходим к настройке параметров хранения Prune Options

Опции аналогичны опциям клиента

Кроме этого, можно выполнить удаление ненужных резервных копий, нажав на значок ножниц в строке хранилища

и указав параметры в диалоге

Ручную очистку мусора можно выполнить, выделив хранилище и нажав кнопку <Start GC> в меню управления хранилищами

На сегодня все!

5 комментариев:

  1. Александр, приветствую!
    Заметил описку: ...стороне сервета, причем...
    И вопрос после прочтения: так всё-таки, удалить созданный бэкап используя для входа компьютер клиента возможно только если есть права для этого? А без них можно только смотреть на список созданных бэкапов и всё?

    ОтветитьУдалить
    Ответы
    1. Если вы с клиента работаете с правами продвинутого юзера для хранилища вы можете выполнить purne и тогда бэкап исчезнет из списка но сам архив останется сделать сборку мусора с такими правами не дает. forget делать с клиента не пробовал. Я бы давал юзеру, от которого работает клиент, минимальные права - только на создание бэкапа, а управление хранением осуществлял средствами сервера.
      В понедельник будет финальная часть, а во вторник резюме.
      Так что я обещанный обзор закончил.

      Удалить
  2. А итоговое резюме можно заранее узнать? Стоящая вещь, можно будет дождаться релиза и уже на нём строить свою систему бэкапов? Или альтернативные варианты всё же будут получше?

    ОтветитьУдалить
  3. Для бекапов виртуальных машин нормально, для бэкапов хостов пока вопрос - я жду релиза - по нынешнему функционалу судить рано.
    Bacula, которую использую я - достаточно заумная при освоении, правда у меня 7 версия, а уже есть 9, но думаю понятнее для новичка она не стала.

    ОтветитьУдалить
  4. При удалении мусора на стороне сервера бэкапов столкнулся с такой проблемой: TASK ERROR: update atime failed for chunk/file "/mnt/datastore/backup/.chunks/b437/b437fad9798de9468714887b7c914814c020354021afdc7fd5dfe5b497b5e4c8" - ENOSPC: No space left on device
    Что это может быть и как поправить? Не могу освободить место в хранилище от переполнения.

    ОтветитьУдалить