Разворачиваю систему бэкапов, за основу взято замечательное ПО Bacula, вот что дано:
1. Сервер с подключенным СХД, на котором крутится bacula-dir и bacula-sd.
2. Сервер + ленточная библиотека, на котором так же bacula-sd.
Не могу разобраться как лучше организовать такую схему: бэкапим ряд серверов на первый bacula-sd, и храним там пачку фул+инкрементальных бэкапов n дней, по истечении этого срока не удаляем бэкапы, а перемещаем их на второй bacula-sd и храним на ленте k месяцев.
Конечно, есть банальный вариант вовремя копировать содержимое пула с первого сервера на второй сервер в режиме «как есть», но что то мне подсказывает что это плохая затея.
Просто хотелось обойтись без самописных костылей, эту систему в будущем поддерживать не мне одному и чем стандартней она будет тем проще придется коллегам.
Ну и если говорить о изобретении велосипеда, можно сделать скрипт, который будет проверять состояние текущих джобов бакулы, смотреть что пул свободен и ничего туда в данный момент не пишется, затем копировать содержимое пула (самостоятельно или средствами бакулы) в удаленное хранилище, и т.д.
На первый взгляд выглядит работоспособно, но явно не обойдется без нюансов, что если данные не успеют скопироваться, а бакула возьмется их ротировать и лить в этот пул новый бэкап? Что если «залипнет» какой то из джобов, на пример бэкап будет очень долго идти и скрипт не сможет вовремя забрать бэкапы на ленту? Вариантов факапа масса.