Использование aufs для создания бэкапов
aufs — «наследник» unionfs. Позволяет на лету обьединять несколько файловых систем в одну. Я уже достаточно давно подумываю применить это к созданию инкрементальных бэкапов.
Идея заключается в том, что можно создать первый (полный) бэкап всего раздела. Затем можно тем же LVM-ом заблокировать раздел от дальнейших изменений. Дальше монтируется aufs с двумя бранчами:
- read-only — содержит уже забэкапленные данные;
- read-write — сюда будут сохраняться новые данные
Таким образом для создания первого инкрементального бэкапа достаточно забэкапить «read-write» бранч. Дальше нужно как-то обьеденить эти два бранча.. Все изменения нужно как-то перенести в «read-only» бранч, чтобы не бэкапить их еще раз. Вот как это сделать простым методом я пока что не совсем себе представляю..
Для созданных/измененных файлов достаточно просто передвинуть эти файлы с заменой. А вот удаленные файлы нужно обрабатывать как-то сложней. В read-write бранче уделение файла «somefile.txt» сохраняется в виде создания файла «.wh.somefile.txt». По идее можно поискать все файлы, которые начинаются с префикса «.wh.» и удалить соответствующие им файлы в read-only бранче… Но не хотелось бы пользоваться такими вот грязными хаками. Плюс не факт, что такой способ хранения останется в следующих версиях aufs.
Спросил в рассылке aufs-users@. Может что посоветуют.
Сам aufs должен быть достаточно ровным. Куча всяких LiveCD его используют. Я попробовал положить в read-only бранч исходник linux-2.6.26 и собрать его на read-write бранче. Ядр собралось (make -j 4) и даже загружается…
Comments
Comment form for «Использование aufs для создания бэкапов»