Инкрементное резервное копирование
Инкрементное резервное копирование — это метод резервного копирования данных, при котором на каждом последующем сеансе сохраняются только те данные, которые были изменены или созданы с момента выполнения предыдущего резервного копирования (полного или инкрементного). Данный подход позволяет значительно сократить объём хранимых данных и время, необходимое для выполнения резервной копии, по сравнению с полным копированием, но требует более сложного процесса восстановления.
Принцип работы
Инкрементное резервное копирование основано на отслеживании изменений в файловой системе или базе данных. Для этого используются различные механизмы, такие как журнал изменений (change journal), флаги архивирования (archive bit) или контрольные суммы. Процесс обычно включает следующие этапы:
- Создание полной базовой копии (full backup): Первоначально выполняется полное резервное копирование всех выбранных данных. Эта копия служит отправной точкой для всех последующих инкрементных копий.
- Выполнение инкрементных копий: В последующие сеансы программа резервного копирования анализирует, какие файлы или блоки данных были изменены, добавлены или удалены с момента последнего резервного копирования (независимо от его типа — полного или инкрементного). Сохраняются только эти изменённые элементы.
- Цепочка копий: Инкрементные копии образуют последовательную цепочку, где каждая последующая копия зависит от предыдущей. Для восстановления данных до определённого момента времени требуется наличие полной базовой копии и всех инкрементных копий, созданных после неё, вплоть до нужной даты.
Отличия от других методов
Инкрементное копирование часто сравнивают с двумя другими основными методами: полным и дифференциальным.
Полное резервное копирование (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).
Восстановление данных
Процесс восстановления из инкрементных копий включает следующие шаги:
- Восстановление последней полной копии.
- Последовательное применение всех инкрементных копий в порядке их создания, начиная с самой первой после полной копии и заканчивая последней, соответствующей нужной дате.
- В случае необходимости восстановления до определённого момента времени, а не до последней копии, может потребоваться применение журналов транзакций (для баз данных) или других механизмов точечного восстановления.
Для упрощения и ускорения восстановления часто применяется стратегия синтеза полных копий (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 →