Может ли резервное копирование на основе образа потенциально повреждать данные?

Я рассматриваю возможность создания резервных копий на основе образов (Acronis) в производственных системах Windows в непиковые часы. Мне просто интересно, могут ли они потенциально привести к повреждению данных приложения. Допустим, у меня есть база данных, которая сильно пострадала. Могли бы я потенциально иметь начальные блоки базы данных, прикрепленные к изображению, данные, вставленные в БД (которая изменяет начальные блоки БД на сервере, но не изображение), затем блоки данных, переданные в изображение (приводя к противоречивому состоянию).

Вот пример того, что я пытаюсь проиллюстрировать. Представьте себе простую структуру данных, в которой спереди находится число, представляющее число "а" в файле. Номер и данные отделяются "-". Например:

 4-ajjjjjjjajuuuuuuuaoffffa

Если "а" изменяется, структура данных сбрасывает число в начале файла, например:

 3-ajjjjjjjajuuuuuuuboffffa

Я предполагаю, что acronis пишет блок за блоком как прямое изображение, так что вот что я собираюсь сделать с моей базой данных

 t0: 4-ajjjjjjjajuuuuuuuaoffffa
     ^pointer is here
 t1: 4-ajjjjjjjajuuuuuuuaoffffa
               ^pointer is here (all data before this is comitted to the image)
 t2: 4-ajjjjjjjajuuuuuuuboffffa
                 ^pointer is here (all data before this is comitted to the image)
     Also notice how one of the "a"s change to a b.  There are only 3 "a"s now
 t3: 4-ajjjjjjjajuuuuuuuboffffa
                               ^pointer is here (all data before this is comitted to the image)

Окончательное изображение теперь выглядит как "4-ajjjjjjajuuuuuuuboffffa", в то время как истинные данные "3-ajjjjjjjajuuuuuuuboffffa" приводят к повреждению "базы данных".

В основном, изменения в блок-цепочке могут быть отражены на изображении, в то время как важные заголовок и синхронизация уже могут быть зафиксированы. Информация об устаревшем заголовке не совсем точно отражает структуру блоков, которые должны появиться.

1 ответ

То, что происходит здесь, для acronis, и почти все программное обеспечение для резервного копирования использует службу томов теней. Различные приложения, такие как SQL и Exchange Server, также имеют свои собственные средства записи VSS.

http://blog.macrium.com/2012/11/backup-internals-what-is-vss-how-does-it-work-and-why-do-we-use-it/ имеет довольно хороший обзор как это устроено.

По сути, acronis скажет, что окна создают снимок. С тех пор, когда программа изменяет файл, исходные данные сохраняются в теневом хранилище. Когда acronis попадает в эту часть файла, vss дает оригинальную версию из теневого хранилища вместо обновленной, которую видят все обычные программы.

Когда все работает должным образом, вы получаете копию именно того, что получили бы, если бы отключили сервер и сделали резервное копирование в автономном режиме. Приложения с поддержкой VSS, такие как SQL, перед созданием моментального снимка получают шанс сохранить все, что нужно, чтобы избежать противоречивых данных. Другие программы могут иметь поврежденные данные в резервной копии, если они были в середине записи файла, но поскольку моментальный снимок происходит быстро, это происходит редко и не хуже, чем при отключении питания и перезагрузке сервера.

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