Как я могу сократить свои резервные копии BTRFS?

У меня есть система резервного копирования BTRFS, где я делаю ежедневные моментальные снимки (btrfs subvolume snapshot) и сериализую их в файлы инкрементных изменений на основе резервной копии предыдущих дней (btrfs send -f backup.date volume -p backup.date-1).

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

Я попытался десериализовать (btrfs receive) эти инкрементные снимки и удалить промежуточные тома, но последующим томам назначаются новые идентификаторы. Добавочные тома ссылаются на свои родительские тома по идентификатору, поэтому это разрывает цепочку.

Таким образом, у меня есть backup.Jun01.daily и backup.Jun01.monthly, где последний обрезается и имеет другой идентификатор. Эти два файла фактически содержат все те же данные.

Есть ли способ изменить идентификатор на backup.Jun01.monthly, чтобы backup.Jun02.daily мог ссылаться на него, тогда как он ссылался на backup.Jun01.daily?

3
задан 10 July 2014 в 22:24

2 ответа

Я взял несколько другое и возможно несовместимый подход к Вашему. Вместо того, чтобы сохранять btrfs send поток с -f, я всегда btrfs receive для репродуцирования снимка на резервных носителях (также btrfs файловая система).

Кроме того, все снимки неразличимы друг от друга - нет никакого различия между ежемесячными журналами, ежедневными газетами, hourlies и т.д. - их просто называют согласно изодате формы YYYY-MM-DDTHHMMSS+hhmm. Сокращение снимков на исходном узле и сокращение снимков на резервных носителях отдельно до сих пор не вызвали меня проблемы с incrementals, но это - все еще первые годы.

, Что началось, поскольку суть GitHub превратилась во что-то большее, таким образом, я назвал это, snazzer - видят https://github.com/csirac2/snazzer

, я записал то, что я надеялся, был в общем полезный сценарий сокращения, или скорее сценарий, который испускает пути снимков, которые должны быть кандидатами на сокращение. См. https://, github.com/csirac2/snazzer/blob/master/doc/snazzer-prune-candidates.md - видит резюме с этим примером:

find /some/.snapshotz -maxdepth 1 -mindepth 1 -type d | \
    snazzer-prune-candidates | xargs btrfs subvolume delete

Печально это не будет работать на Вас, потому что это полагается на наличие имен снимка даты ISO. Если Вы получаете шанс взглянуть на snazzer, snazzer-receive или какие-либо другие биты, дайте мне обратную связь - я не совсем готов выпустить к миру (я только что добавил способность сегодня для получения снимков из локальной файловой системы, а не ssh), но любая обратная связь вообще будет приветствоваться.

P.S., Если Вы первоначально отражены в факте, я выбрал оболочку POSIX и жемчуг для этой первой версии, это - потому что я нахожусь в ярости нулевых зависимостей - я буду добавлять реализации Python в ближайшие месяцы :D

0
ответ дан 10 July 2014 в 22:24

очень простое решение было бы

cd /whever/.shapshots
btrfs subvolume delete *
0
ответ дан 10 July 2014 в 22:24

Другие вопросы по тегам:

Похожие вопросы: