Pull to refresh

Comments 3

Расскажите, а зачем вообще делать бэкапы из Stdin?

Например если делаешь бэкап с другого сервера по SSH (если нет возможности развернуть restic на целевом сервере). Да, безусловно можно сначала выкачать бэкап и положить в локальный файл, а уже потом на него натравить restic - но это дополнительное время.

А вот про то, что restic не оптимально восстанавливает на stdout - это полезное замечание, я не знал. Я правда restic вообще не использовал с stdin/stdout - у меня нет проблем положить один бинарник на все сервера, где нужно делать бэкап, но замечание интересное...

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

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

Sign up to leave a comment.