Открыть сервис

Дифференциальная резервная копия

Дифференциальная резервная копия — это тип резервного копирования данных, при котором создаётся копия всех файлов, изменившихся с момента последней полной (эталонной) резервной копии. В отличие от инкрементального копирования, дифференциальная копия не зависит от предыдущих дифференциальных или инкрементальных копий: она всегда содержит все изменения, накопившиеся относительно последней полной копии, независимо от того, сколько раз выполнялось дифференциальное копирование.

Принцип работы

Алгоритм дифференциального резервного копирования базируется на сравнении текущего состояния данных с состоянием, зафиксированным в последней полной копии. Для этого используется механизм отслеживания изменений: либо атрибут архивации (в файловых системах Windows), либо журнал изменений (в современных файловых системах и системах управления базами данных), либо контрольные суммы и временные метки.

Процесс включает следующие этапы:

  1. Создание полной резервной копии (базового набора данных).
  2. При каждом последующем запуске резервного копирования программа определяет файлы или блоки данных, которые были изменены, добавлены или удалены с момента создания полной копии.
  3. Все эти изменённые данные копируются в единый набор, который и называется дифференциальной резервной копией.
  4. При восстановлении данных сначала развёртывается полная копия, а затем на неё накладывается последняя дифференциальная копия.

Отличия от других типов резервного копирования

Полное резервное копирование

Создаёт копию всех выбранных данных целиком. Обеспечивает максимальную скорость восстановления (требуется только одна копия), но требует наибольшего объёма хранилища и времени на создание. Дифференциальная копия всегда меньше полной (если только не изменились все данные), но для восстановления требует обе копии.

Инкрементальное резервное копирование

Копирует только те данные, которые изменились с момента предыдущего резервного копирования любого типа (полного, инкрементального или дифференциального). Восстановление требует последовательного применения всех инкрементальных копий от последней полной до текущей. Дифференциальная копия, напротив, накапливает все изменения с момента полной копии, поэтому каждая последующая дифференциальная копия обычно больше предыдущей, но цепочка восстановления короче (полная + одна дифференциальная).

Сравнительная таблица

ХарактеристикаПолнаяДифференциальнаяИнкрементальная
Объём данных при первом копированииМаксимальныйСреднийМинимальный
Объём данных при последующих копированияхМаксимальныйРастёт от копии к копииОстаётся малым
Скорость созданияНизкаяСредняяВысокая
Скорость восстановленияВысокаяСредняяНизкая
Количество копий для восстановления12 (полная + последняя дифференциальная)N (полная + все инкрементальные)
Зависимость между копиямиНетЗависит от полнойЗависит от предыдущей копии

Преимущества и недостатки

Преимущества

  • Более быстрое восстановление по сравнению с инкрементальным копированием. Для восстановления данных требуется только последняя полная копия и последняя дифференциальная копия, что сокращает время и снижает риск ошибок при последовательном применении множества копий.
  • Меньший объём хранилища по сравнению с ежедневным полным копированием. Дифференциальные копии обычно занимают меньше места, чем полные, особенно если изменения незначительны.
  • Простота управления. Не требуется хранить длинную цепочку зависимых копий, как при инкрементальном подходе. Удаление старой полной копии автоматически делает неактуальными все связанные с ней дифференциальные копии.

Недостатки

  • Растущий объём дифференциальных копий. Каждая новая дифференциальная копия включает все изменения, накопившиеся с момента последней полной копии. Если полная копия создаётся редко (например, раз в месяц), последние дифференциальные копии могут быть почти такими же большими, как полная.
  • Зависимость от полной копии. При повреждении или утрате полной копии все дифференциальные копии становятся бесполезными.
  • Более длительное время создания по сравнению с инкрементальным копированием. Программа должна каждый раз сканировать все данные на предмет изменений относительно полной копии, что может быть ресурсоёмко.

Применение

Дифференциальное резервное копирование широко используется в корпоративных и домашних системах как компромисс между скоростью восстановления и экономией дискового пространства. Типичные сценарии применения:

  • Еженедельное полное + ежедневное дифференциальное копирование. Полная копия создаётся, например, по воскресеньям, а в остальные дни — дифференциальные. Это позволяет восстановить данные на любой день недели, используя всего две копии.
  • Резервное копирование баз данных. В системах управления базами данных (СУБД) дифференциальное копирование часто применяется для резервирования журналов транзакций или файлов данных, изменившихся с момента последней полной копии.
  • Системы с ограниченным временем на восстановление (RTO). Если требуется восстановить данные за минимальное время, но полное копирование каждый день невозможно из-за объёмов, дифференциальный подход является предпочтительным.
  • Виртуальные среды. В гипервизорах (например, VMware vSphere, Microsoft Hyper-V) дифференциальное копирование используется для создания снапшотов виртуальных машин, фиксирующих изменения с момента последнего полного снимка.

Реализации в программном обеспечении

Дифференциальное резервное копирование поддерживается большинством современных систем резервного копирования:

  • Встроенные средства ОС: Windows Backup (в Windows 7, 8, 10, 11) использует комбинацию полного и дифференциального копирования для создания образов системы и файловых архивов. В Unix-подобных системах утилита rsync с опцией --link-dest позволяет создавать дифференциальные копии, используя жёсткие ссылки.
  • Специализированное ПО: Acronis True Image, Veeam Backup & Replication, Bacula, Amanda, Duplicati, Borg Backup. В этих программах можно настроить расписание, при котором полные копии создаются с заданной периодичностью, а между ними — дифференциальные.
  • Облачные сервисы: Backblaze B2, Amazon S3 (с поддержкой версионирования и политик жизненного цикла), Google Cloud Storage. Многие облачные провайдеры предлагают механизмы инкрементального и дифференциального копирования на уровне блоков или объектов.

Стратегии ротации

Для эффективного использования дифференциального копирования применяются стратегии ротации, определяющие, как долго хранятся полные и дифференциальные копии. Наиболее распространённые схемы:

  • Схема «дед — отец — сын» (Grandfather-Father-Son). Полные копии создаются ежемесячно (дед), еженедельные дифференциальные копии (отец) и ежедневные дифференциальные копии (сын). Хранятся несколько поколений.
  • Схема Толстяка (Tower of Hanoi). Использует несколько уровней полных и дифференциальных копий с разными интервалами, минимизируя количество хранимых копий при сохранении возможности восстановления на любую дату.
  • Простая схема с перезаписью. Полная копия обновляется, например, раз в неделю, а дифференциальные копии за предыдущие дни удаляются после создания новой полной копии.

Восстановление данных

Процесс восстановления из дифференциальной резервной копии включает два этапа:

  1. Восстановление данных из последней полной копии.
  2. Применение к восстановленным данным последней дифференциальной копии (все изменения, произошедшие с момента создания полной копии).

Если полная копия повреждена или отсутствует, восстановление из дифференциальной копии невозможно. В такой ситуации требуется либо найти другую полную копию, либо использовать альтернативные методы восстановления (например, из инкрементальных копий, если они есть).

Критика и ограничения

Основной недостаток дифференциального подхода — нелинейный рост объёма дифференциальных копий. При длительном интервале между полными копиями (например, месяц) последние дифференциальные копии могут быть сопоставимы по размеру с полной копией, что сводит на нет экономию места. В таких случаях более эффективным может быть инкрементальное копирование с периодическим созданием новых полных копий (например, раз в неделю).

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

Источники

  • Книга: «Резервное копирование и восстановление данных» (автор: В. Л. Бройдо, 2015).
  • Документация Microsoft: «Обзор резервного копирования Windows Server» (Windows Server 2019, 2022).
  • Статья: «Understanding Backup Types: Full, Incremental, and Differential» (Veeam Software, 2020).
  • Спецификация: «Borg Backup Documentation» (Borgbase, 2023).
  • Учебное пособие: «Администрирование систем резервного копирования» (НИУ ВШЭ, 2021).

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →