Схема ротации резервных копий — это система резервного копирования данных на компьютерные носители (например, ленты ), которая минимизирует, за счет повторного использования, количество используемых носителей. Схема определяет, как и когда каждая часть съемного хранилища используется для задания резервного копирования и как долго она сохраняется после того, как на ней сохранены данные резервной копии. Со временем появились различные методы, позволяющие сбалансировать потребности в хранении и восстановлении данных со стоимостью дополнительных носителей данных. Такая схема может быть довольно сложной, если она учитывает инкрементные резервные копии, несколько периодов хранения и хранение вне площадки.
Схема резервного копирования «первым пришел — первым вышел » (FIFO) сохраняет новые или измененные файлы на «самом старом» носителе в наборе, т. е. на носителе, который содержит самые старые и, следовательно, наименее полезные ранее сохраненные данные. [1] При ежедневном резервном копировании на набор из 14 носителей глубина резервного копирования составит 14 дней. Каждый день при выполнении резервного копирования будет вставляться самый старый носитель. Это самая простая схема ротации, и обычно она приходит на ум первой.
Эта схема имеет преимущество в том, что она сохраняет максимально возможный хвост ежедневных резервных копий. Ее можно использовать, когда архивные данные не важны (или хранятся отдельно от краткосрочных резервных данных), а данные до периода ротации неактуальны.
Однако эта схема страдает от возможности потери данных: предположим, что в данные внесена ошибка, но проблема не выявлена, пока не будет сделано несколько поколений резервных копий и ревизий. Таким образом, когда ошибка обнаружена, все файлы резервных копий содержат ошибку. Тогда было бы полезно иметь по крайней мере одну более старую версию данных, так как в ней не будет ошибки.
Резервное копирование «дедушка-отец-сын» (GFS) — это распространенная схема ротации для резервных носителей, [1] в которой существует три или более циклов резервного копирования, например, ежедневное, еженедельное и ежемесячное. Ежедневные резервные копии ротируются на трехмесячной основе с использованием системы FIFO, как указано выше. Еженедельные резервные копии аналогичным образом ротируются на двухгодичной основе, а ежемесячные резервные копии — на ежегодной основе. Кроме того, квартальные, полугодовые и/или ежегодные резервные копии также могут храниться отдельно. Часто некоторые из этих резервных копий удаляются с сайта для обеспечения сохранности и восстановления после сбоев.
Метод вращения Ханойской башни более сложен. Он основан на математике головоломки Ханойской башни , использующей рекурсивный метод для оптимизации цикла резервного копирования. Каждая лента соответствует диску в головоломке, и каждое перемещение диска на другой штифт соответствует резервному копированию на эту ленту. Таким образом, первая лента используется через день (1, 3, 5, 7, 9, ...), вторая лента используется каждый четвертый день (2, 6, 10, ...), третья лента используется каждый восьмой день (4, 12, 20, ...). [2]
Набор из n лент (или других носителей) позволит делать резервные копии в течение 2 n −1 дней, прежде чем последний набор будет переработан. Таким образом, 3 ленты дадут 4 дня резервных копий, и на 4-й день набор C будет перезаписан; 4 ленты дадут 8 дней, и набор D будет перезаписан на 9-й день; 5 лент дадут 16 дней и т. д. Файлы могут быть восстановлены 1, 2, 4, 8, 16, ..., 2 n −1 дней назад. [3]
В следующих таблицах показано, какие ленты используются в какие дни различных циклов. Недостатком метода является то, что половина резервных копий перезаписывается всего через два дня.
Возможны многие варианты, и концепции легко распространяются на каталоги на дисках, содержащие резервные копии. Вот некоторые варианты:
Покрытие автоматически становится тем меньше, чем дальше в прошлое, что приблизительно соответствует вероятности необходимости восстановления из прошлых резервных копий.
А Tower of Hanoi имеет огромное преимущество, поскольку освобождает разработчиков от необходимости управлять почасовыми, ежедневными, еженедельными, ежемесячными, ежеквартальными или ежегодными стратегиями управления.
В общем случае номер резервного набора set используется при seq = 2 set −1 + j × 2 set , j = 0, 1, 2, 3, 4, ..., где seq — порядковый или серийный номер резервной копии (также номер хода Ханойской башни).
Ниже приведен пример, показывающий покрытие, включая набор 0, хранение не менее 4 последних дней и переработку:
Альтернативный вариант — сохранять поколения распределенными по всем точкам времени, удаляя (или перезаписывая) прошлые поколения (кроме самых старых и самых последних n поколений) при необходимости взвешенно-случайным образом. Для каждого удаления вес, назначенный каждому удаляемому поколению, соответствует вероятности его удаления.
Один приемлемый вес — это постоянная экспонента (возможно, квадрат ) мультипликативной обратной величины продолжительности (возможно, выраженной в количестве дней) между датами поколения и поколения, предшествующего ему. Использование большей экспоненты приводит к более равномерному распределению поколений, тогда как меньшая экспонента приводит к распределению с более поздними и меньшим количеством старых поколений. Этот метод вероятностно гарантирует, что прошлые поколения всегда распределены по всем точкам времени, как и требуется.
Метод взвешенной случайной выборки имеет преимущество перед более систематическим подходом только в том случае, если резервные копии создаются нерегулярно или отсутствуют.
Этот метод имеет много вариаций и названий. Набор пронумерованных носителей используется до конца цикла. Затем цикл повторяется с использованием носителей, пронумерованных так же, как и в предыдущем цикле, но с увеличением на единицу. Лента с наименьшим номером из предыдущего цикла изымается и сохраняется навсегда. Таким образом, у вас есть доступ к каждой резервной копии для одного цикла и к одной резервной копии за цикл до этого. Этот метод имеет преимущество в обеспечении равномерного износа носителя, но требует предварительного расчета графика.