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

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

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

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

Инкрементное резервное копирование основано на отслеживании изменений в файловой системе или базе данных. Для этого используются различные механизмы, такие как журнал изменений (change journal), флаги архивирования (archive bit) или контрольные суммы. Процесс обычно включает следующие этапы:

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

Отличия от других методов

Инкрементное копирование часто сравнивают с двумя другими основными методами: полным и дифференциальным.

Полное резервное копирование (Full backup)

При полном копировании все выбранные данные копируются целиком каждый раз. Это самый надёжный и простой для восстановления метод, но он требует наибольшего объёма дискового пространства и времени на выполнение. Инкрементное копирование, напротив, минимизирует время выполнения и занимаемое место, но усложняет восстановление.

Дифференциальное резервное копирование (Differential backup)

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

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

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

  • Экономия дискового пространства: Объём каждой инкрементной копии, как правило, значительно меньше, чем полной или дифференциальной, особенно при редких изменениях данных.
  • Высокая скорость выполнения: Процесс резервного копирования занимает минимальное время, так как копируется только небольшой объём изменённых данных. Это особенно важно для систем с высокими требованиями к доступности (24/7).
  • Снижение нагрузки на сеть: При удалённом резервном копировании (например, в облачное хранилище) передаётся меньше данных, что снижает использование пропускной способности канала связи.

Недостатки

  • Сложность и длительность восстановления: Для восстановления данных до последнего состояния необходимо последовательно применить полную копию и все инкрементные копии, созданные после неё. Если какая-либо копия в цепочке повреждена или утеряна, восстановление до более поздних точек может быть невозможным.
  • Зависимость от целостности цепочки: Надёжность восстановления напрямую зависит от сохранности всех инкрементных копий. Повреждение одного звена может сделать неработоспособными все последующие.
  • Риск потери данных при сбое: Если полная копия повреждена, восстановление данных невозможно, даже если все инкрементные копии целы.

Применение

Инкрементное резервное копирование широко используется в различных сценариях:

  • Корпоративные системы: Для ежедневного резервного копирования серверов баз данных, файловых серверов и виртуальных машин, где критически важна скорость выполнения и экономия места.
  • Домашние компьютеры и ноутбуки: В составе программ резервного копирования для операционных систем (например, Time Machine в macOS, История файлов в Windows) для автоматического сохранения изменений пользовательских файлов.
  • Облачные сервисы: Многие облачные провайдеры (например, Amazon S3, Google Cloud Storage) используют инкрементное копирование для создания резервных копий данных клиентов и собственной инфраструктуры.
  • Резервное копирование баз данных: В системах управления базами данных (СУБД), таких как PostgreSQL, MySQL, Oracle, инкрементное копирование часто реализуется на уровне журналов транзакций (WAL-архивирование), что позволяет восстанавливать базу данных до любого момента времени.

Алгоритмы и реализации

Для реализации инкрементного копирования используются различные алгоритмы:

  • Блочное инкрементное копирование: Данные разбиваются на блоки фиксированного размера, и копируются только те блоки, которые были изменены. Это эффективно для больших файлов, где изменяется лишь небольшая часть (например, в базах данных или образах виртуальных машин).
  • Файловое инкрементное копирование: Копируются только изменённые или новые файлы целиком. Проще в реализации, но менее эффективно для больших файлов, где изменяется небольшая часть.
  • Инкрементное копирование на основе снимков (snapshots): Используются возможности файловой системы или гипервизора для создания моментального снимка состояния данных, после чего копируются только изменённые блоки. Этот метод широко применяется в системах виртуализации (например, VMware, Hyper-V) и в некоторых файловых системах (ZFS, Btrfs).

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

Процесс восстановления из инкрементных копий включает следующие шаги:

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

Для упрощения и ускорения восстановления часто применяется стратегия синтеза полных копий (synthetic full backup), при которой система периодически объединяет полную копию и все последующие инкрементные в новую полную копию, не создавая нагрузку на исходную систему.

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

Для управления цепочками инкрементных копий используются различные схемы ротации носителей, такие как:

  • Схема «Дед — Отец — Сын» (Grandfather-Father-Son, GFS): Предполагает создание ежедневных (сын), еженедельных (отец) и ежемесячных (дед) полных копий, между которыми выполняются инкрементные копии.
  • Схема «Башня Ханоя» (Tower of Hanoi): Более сложная схема, основанная на математической головоломке, которая позволяет эффективно распределять инкрементные копии по носителям с разной периодичностью.

Источники

  • Книга: «Backup & Recovery: Inexpensive Backup Solutions for Open Systems» by W. Curtis Preston.
  • Документация к программному обеспечению для резервного копирования (Veeam Backup & Replication, Acronis Backup, Bacula).
  • Стандарты и рекомендации по резервному копированию (например, NIST SP 800-34).
  • Материалы курсов по администрированию систем (Linux, Windows Server).

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

На главную BFOmetr →