В комментариях предложили способ, который обходит это ограничение. Я им уже активно пользуюсь, очень удобно. Комментарии читают не все, поэтому решил вынести в отдельную публикацию.
Итак, чтобы моментально освободить место, занимаемое ненужными бэкапами, сделайте следующее:
1️⃣ Удалите лишние бэкапы в разделе Datastore ⇨ Content
2️⃣ Перейдите в консоль PBS и выполните там команду:
find /path2pbs-datastore/.chunks -type f -print0 | xargs -0 touch -d "-2 days"3️⃣ Идём опять в веб интерфейс, выбираем наш Datastore и запускаем Garbage Collect.
Все удалённые бэкапы удалятся окончательно, освободив свободное место.
Поясню, что мы тут сделали. Я уже когда-то описывал возможности утилиты
touch. С её помощью можно изменять параметры файла, меняя временные метки. Об этом рассказано тут и тут. Покажу на примере. Создадим файл и изменим дату его изменения на 2 дня назад:# touch testfile# stat testfile# touch -d "-2 days" testfile# stat testfileПосле работы
touch с ключом -d метка Modify уехала на 2 дня назад.Если я всё правильно понимаю, то штатный процесс Garbage Collect удаляет все помеченные на удаление блоки со временем последнего изменения больше суток назад. Соответственно, меняя дату блоков на 2 суток назад, мы гарантированно провоцируем их удаление. Не совсем понимаю, почему нельзя было сделать отдельным пунктом GC удаление помеченных на удаление блоков здесь и сейчас, но как есть, так есть.
❗️Используйте это на свой страх и риск, когда отступать уже некуда. Я не знаю точно, к каким последствиям это может привести, но у меня сработало несколько раз ожидаемо. Я специально проверял по результатам работы GC. Если удалить некоторые бэкапы и сдвинуть дату всех блоков на 2 дня назад, то очередная работа GC удаляет только помеченные на удаление бэкапы. Верификация оставшихся бэкапов проходит нормально.
#proxmox