LINUX.ORG.RU
ФорумAdmin

Differential backup с большими файлами?

 , , ,


1

3

Вот сделал я снапшот диска на госте KVM. Чем с минимумом затрат трафика сделать какой-нибудь дифф с предыдущим таким снапшотом, хранимым удалённо? Хочу делать регулярные бэкапы полного образа, а более часто — такие диффы. Потом мержить этот дифф через blockcommit и жить дальше.

я пользуюсь backy2, не совсем то, но работает

dyasny ★★★★★
()

Qemu-kvm? Если да, то... Разве снапшоты в qemu не инкрементальные? Тут или не понимание процесса, или используется какая-то тулза поверх qemu, с которым тоже не умеешь работать. Читай маны qemu-img и как строен qcow2.

anonymous
()
Ответ на: комментарий от anonymous

Отчего ж непонимание. Сделал снапшот, тем самым заморозил базовый образ, все изменения пишутся в снапшот. Тем временем хотелось бы вычислить изменения в этом замороженном базовом образе относительно такого же предыдущего и куда-то их сложить. А потом снапшот слить обратно в базовый. Не хочу цепочку снапшотов, хочется скорости.

olegkrutov ★★
() автор топика
Ответ на: комментарий от olegkrutov

Нет, именно непонимание. Ты не читал маны и не умеешь пользоваться инструментом. Разжевываю. Пишу по памяти, тк давно этим не занимался.
В qemu можно сделать цепочку снапшотов: base<-snapshot1<-snapshot2<-...<-snapshotN<-snapshotCurrent. qemu-img create -o backing_file=<snapshotN-1> snapshotN Ты можешь их все хранить начиная с базового, и при создании очередного снапшота сохранять только новый созданный. Ненужные снапшоты можешь слить поочередно c базой qemu-img commit, отдельно для боевой системы, отдельно для сохраненных снапшотов.

anonymous
()
Ответ на: комментарий от anonymous

Получается, имеем:

  • base->snap0, кладём в бэкап base
  • делаем base->snap0->snap1, кладём в бэкап snap0, делаем virsh blockcommit base+snap0, получаем base_0->snap1
  • делаем base_0->snap1->snap2,кладём в бэкап snap1, virsh blockcommit base_0+snap1, получаем base_1->snap2

и т.д., не допёр, что можно иметь одно и то ж в разных видах :)

olegkrutov ★★
() автор топика
Ответ на: комментарий от olegkrutov

Нет, оно тупо делает бинарный diff (точнее, самый последний файл хранит как есть и цепочку diff от ного в глубины прошлого)

legolegs ★★★★★
()

Насчет бинарных диффов. Насколько помню, у нормального алгоритма сложность O(n*m) по времени, O(n+m) по памяти, где n, m - длины сравниваемых файлов. Есть алгоритмы попроще с O(n* log m), но они строят совсем не минимальный дифф. Если тебе это о чем-то говорит, то ты должен хорошо задуматься о бинарных диффах больших файлов.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.