Оказание услуг технической поддержки систем резервного копирования Подробнее>>
Информационное сообщение!
Товар в корзину добавлен. Перейти к оформлению заказа?
Нет
Да
Информационное сообщение!
Ваш заказ успешно создан. На указанный E-mail был отправлен счет для оплаты
Ок
Информационное сообщение!
Ошибка ввода капчи. Попробуйте ввести заново.
Продолжить

Дедупликация данных

Дата публикации: 3 апреля 2018 г.

* * *

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

ЧТО ТАКОЕ ДЕДУПЛИКАЦИЯ ДАННЫХ


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

* * *

СПОСОБЫ ДЕДУПЛИКАЦИИ


Дедупликация на уровне файлов

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

Дедупликация на уровне блоков

Дедупликация на уровне блоков является самым распространенным способом дедупликации. Этот тип дедупликации сравнивает фрагменты (chunks) разных файлов и сохраняет на диске блоки только уникальных данных. Блок это логическая единица, поэтому он может иметь разный размер (длину). Все фрагменты данных обрабатываются с использованием хеш-алгоритма, такого как MD5 или SHA-1. Этот алгоритм создает и записывает в базу дедупликации идентификатор (хэш) для каждого уникального блока. Разные файлы могут содержать одинаковые блоки.

<Блочная дедупликация данных

Таким образом, если в течении жизненного цикла с файлом работали и он был изменен, в хранилище будут записаны не весь файл, а только его изменённые блоки.

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

Дедупликация на уровне байта

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

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

* * *

ДЕДУПЛИКАЦИЯ В РЕЗЕРВНОМ КОПИРОВАНИИ


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

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

Дедупликация резервных копий на стороне клиента

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

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

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

Недостатки:

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

Дедупликация резервных копий в хранилище

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

  • возможность передать всю нагрузку по выполнению дедупликации с клиента на отдельное устройство
  • сделать саму дедупликацию полностью независимым процессом от резервного копирования

Программная дедупликации использует специализированный софт установленный на сервер, который берет всю нагрузку по дедупликации на себя.

Клиент-серверная дедупликация

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

* * *

ПЛЮСЫ ДЕДУПЛИКАЦИИ


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

МИНУСЫ ДЕДУПЛИКАЦИИ


Основной проблемой дедупликации является конфликт данных, который может возникнуть, если для двух различных блоков был сгенерирован один и тот же хэш-ключ. В этом случае возникает повреждение базы данных дедупликации, что влечет сбой при восстановлении резервной копии. Чем больше база данных и выше частота изменений, тем вероятней возникновение конфликтных ситуаций. Решением данной проблемы может быть увеличение адресного пространства хэш ключей, так как, чем больше хэш ключей, тем меньше вероятность конфликта. На данный момент используют 160-битный ключ, генерируемый алгоритмом SHA-1. Это 2160=1.5 х 1048 уникальных хэш-ключей.

* * *

BACKUP EXEC DEDUPLICATION


Backup Exec deduplication выполняет тремя выше описанными методами: на стороне сервера управления (программная); на стороне клиента (для этого должен быть установлен агент Backup Exec на клиенте) и третий метод - дедупликация на стороне устройства OpenStorage (аппаратная). Для каждого способа у Backup Execесть определенные требования к оборудованию, с ними можно познакомится в руководстве администратора Backup Exec.

Рассмотрим более подробно настройку дедупликации на сервере Backup Execдля локального диска или диска презентованного дисковым массивом (без дедупликации на уровне массива). Для этого нам необходимо создать Storage c функцией дедупликации.

  1. Вкладка Storage > Configure Storage > Disk-based storage
    Настройка дедупликации на сервере Backup Exec
  2. Выбираем нужный нам параметр Deduplication disk storage
    Backup Exec Deduplication disk storage
  3. Далее идет еще несколько незначительных вопросов и на этом всё: мы создали диск с дедупликацией.

На этом настройку можно считать выполненной, остается только создать задания для бэкапа. Важно помнить, что на сервере BackupExec может быть только один deduplication disk storage, это необходимо помнить при планировании резервного копирования.

В случае, когда используется устройство OpenStorage (с поддержкой дедупликации на стороне клиента) система позволяет выполнить дедупликацию на стороне клиента в обход сервера BackupExec. Для этого необходимо открыть бэкап-задание нужного устройства и в свойствах на вкладке Storage указать «Enable the remote computer to directly access the storage device and to perform client-side deduplication, if it is supported».

Backup Exec OpenStorage

Не забываем после этого перезапустить службы Backup ExecServices, а так же установить агента Backup Exec на стороне клиента. И у нас остается второй вариант, когда к серверу подключено устройство OpenStorage - это выполнения дедупликации на стороне сервера Backup Exeс. Для этого необходимо выбрать в настройках задания, как показано на рисунке выше вариант «Enable the remote computer to access the storage device through the Backup Execserver and to perfom Backup Exec server-side deduplication if it is supported».

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

Используемая в статье информация взята из официальных источников:
Backup Exec 20.3 Best Practices
https://www.emc.com/corporate/glossary/data-deduplication.htm
https://www.netapp.com/us/info/what-is-data-deduplication.aspx