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

Защищать данные необходимо, однако желательно за счет минимальных средств. Нам нужны решения, с помощью которых можно перемещать данные из точки A в точку B с максимальной скоростью, допустимой законами физики. Мы изобретаем технологии, чтобы работать удобнее, быстрее и хранить больше данных, постоянно сокращая затраты. Серьезная задача!

Существует немало развивающихся технологий, которые помогают упростить оптимизацию вторичного хранилища данных в целях снижения нагрузки на ресурсы при резервном копировании и восстановлении данных. Одна из таких технологий — дедупликация. Продукты для дедупликации выпускаются уже давно, но предлагаемые решения неравноценны, и полезно уметь точно оценивать возможное влияние каждого из них на имеющиеся ресурсы и бюджет.

Термин «дедупликация» широко применяется для обозначения процесса сокращения объема данных; однако использование единственного слова для различных методологий порой приводит к неправильному пониманию. Рассмотрим несколько известных технологий сокращения данных.

Сжатие

Хороший пример — сжатие данных без потерь. Этот метод основан на использовании статистической избыточности без потери данных, чтобы можно было «отменить» сжатие и восстановить данные. Он использовался в течение многих лет, и теперь стандартно применяется в различных технологиях. Например, при создании изображения в формате GIF используют алгоритм LZW (Lempel-Ziv-Welch), чтобы уменьшить размер файла без потери информации.

Недублирующее хранение

Фраза «недублирующее хранение» точно описывает методику хранения данных. Если один файл сохранен дважды, то один экземпляр хранится целиком, а для другого остается лишь ссылка. Но этот метод работает лишь в тех случаях, когда данные идентичны. Внесите в файл небольшое изменение, и он будет сохранен целиком. Это очень удобно для систем, заполненных одинаковым контентом, возможно, для рабочего хранилища, но мало подходит для общей защиты данных.

Дедупликация по блокам фиксированного размера

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

Дедупликация по блокам фиксированного размера
Рисунок 1. Дедупликация по блокам фиксированного размера 

Затем эти блоки аккуратно сравниваются с помощью нескольких методов, и если они признаются одинаковыми, то сохраняется только один блок и ссылка на каждую последующую копию. Данный подход можно рассматривать как недублирующее хранение, но на субфайловом уровне, с анализом блоков, составляющих данный файл.

Эта методология выглядит лучше, но имеет свои ограничения. Она хорошо работает с отдельными типами данных, которые сохраняются напрямую в файловой системе, поскольку они выравнены по байтам и запись ведется блоками по 4, 8 и 32 Кбайт, как например в виртуальных машинах.

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

Дедупликация по блокам переменного размера

Необходима технология, с помощью которой можно устранить проблемы, связанные с технологией дедупликации по блокам фиксированного размера, и обрабатывать данные различных типов, при этом получая необходимое сокращение данных (рисунок 2). Здесь есть работа для математиков!

Дедупликация по блокам переменного размера обеспечивает экономию затрат и пространства на диске
Риcунок 2. Дедупликация по блокам переменного размера обеспечивает экономию затрат и пространства на диске

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

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

Неважно, добавляются данные в поток до или после. После того как блок идентифицирован, формируется хеш SHA1, который затем сохраняется в словаре дедупликации. Любые вхождения этих данных будут обнаружены, так как будет найден тот же блок. Хеши SHA1 совпадут и данные будут дедуплицированы.

Затем хеши проверяются в фильтре Блума, чтобы быстро определить, известен ли уже этот хеш и нужно ли сохранить блок или дать ссылку на него. Фильтр Блума — вероятностная структура данных, эффективно использующая пространство памяти. Идея была выдвинута Бертоном Ховардом Блумом в 1970 году. Фильтр используется для проверки, является ли данный элемент членом набора. Непрерывное сопоставление хешей позволяет создавать блоки, когда совпадений не обнаружено, а когда они есть, формируются ссылки.

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

Дедупликация по блокам переменного размера на основе содержимого

Следующее действие, позволяющее получить дальнейшую экономию, — учитывать содержимое самого потока. Например, продукт QoreStor компании Quest добавляет алгоритм на основе содержимого к реализации метода фрагментации переменного размера. Алгоритм обнаруживает закономерности в данных, несмотря на смещения, которые возникают из-за добавлений и удалений в потоке данных, а затем выравнивает начальные и конечные точки блока с фрагментами-дубликатами, идентифицируя только измененные фрагменты в качестве уникальных.

Как уже было показано, существуют различные виды технологии дедупликации. Еще один важный этап: рассмотреть, где происходит дедупликация и как это влияет на результат. Пока мы изучали только технологии, обычно ориентированные на целевое хранилище. Теперь обратимся к задаче параллельного резервного копирования многих систем, приложений и данных (рисунок 3).

Технологии прямой пересылки в целевое хранилище обеспечивают лучшую дедупликацию на стороне источника
Рисунок 3. Технологии прямой пересылки в целевое хранилище обеспечивают лучшую дедупликацию на стороне источника

Мы всегда стараемся перемещать как можно больше данных с наименьшими осложнениями для пользователей. С этой целью мы определяем временное окно, известное как окно резервного копирования. Нередко оно приходится на нерабочие часы, чтобы уменьшить негативные последствия перемещения огромных объемов данных по сетям, через которые пользователи обращаются к приложениям.

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

Время ограничено, поэтому наступает момент, когда возможности назначенного окна резервного копирования оказываются исчерпанными.

Ситуацию можно облегчить, используя часть ресурсов на каждом исходном сервере приложений, подлежащем резервному копированию. В отношении первой проблемы, если сопоставлять хеши данных в потоке резервного копирования на исходном сервере, потребуется пересылать по сети только уникальные данные. Это создает небольшую дополнительную нагрузку на исходный сервер приложений, которая, однако, несопоставима с последствиями переполнения сетевого соединения.

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

Цена ошибки

Последствия неверного выбора технологии дедупликации проще всего проиллюстрировать на примере объемов и сопутствующих затрат. Рассмотрим набор данных размером 100 Тбайт. Для простоты предположим, что выполняется еженедельное резервное копирование и копии хранятся в течение 12 недель. Каждую неделю в целевое хранилище будет добавляться 100 Тбайт данных. Без технологии сокращения данных через три месяца в хранилище будет занято пространство 1,2 Пбайт, прежде чем истечет срок хранения первых резервных копий.

Рассмотрим технологию дедупликации по блокам фиксированного размера, которая обеспечит сокращение данных на 30%. Для хранения данных потребуется пространство 840 Тбайт. Это значительное сокращение, но размер по-прежнему велик, а решение, вероятно, будет дорогостоящим.

Теперь применим технологию дедупликации по блокам переменного размера с учетом содержимого. Если добиться сокращения данных на величину до 93%, нам потребуется хранилище всего для 84 Тбайт данных. Таким образом, очевидно, что благодаря верному выбору метода дедупликации можно добиться десятикратной экономии пространства для хранения данных.

Теперь рассмотрим разницу в стоимости между 840 Тбайт и 84 Тбайт. Учитывая стоимость электроэнергии и пространства в стойке, если используется центр обработки данных cовместного размещения, потенциальная экономия очевидна. У неверного выбора технологии много последствий и помимо увеличения занимаемого пространства на диске. Стоимость — всегда актуальный вопрос, и ее необходимо тщательно рассчитывать. Правильный выбор технологии поможет вам снизить как расходы, так и объем данных.