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

Конспект вебинара HonorCup E=DC2 для сдачи HCNA Storage.

UKSM – пример технологии, использующей дедупликацию для ускорения работы.

Связанные по вебинару посты:

Определение из wiki:

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

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

Таблица сравнения сжатия и дедупликации. По факту не знаю, как это можно сравнивать (разве что только в контексте экономии места) – можно же на дедуплицированные данные спокойно запускать еще и алгоритмы сжатия (автор в последующем подтвердил, обозначив что на СХД Huawei такая возможность есть в последовательности дедупликация -> сжатие).

Операция Функция Реализация Содержимое Условие
Дедупликация Сохранение пространства Сравнение блоков данных и сохранение только уникальных Сохранение только уникальных данных Нужно сравнение блоков между собой
Сжатие Сохранение пространства Сжатие на основе алгоритма Не модифицирует оригинальные данные (если сжатие без потерь) Софт для компрессии

Категории дедупликации

  • По месту исполнения (location)
    • на источнике (at source end) – сравнение производится на самой системе (напр. ноутбуке) и в результате на сервер хранения передается только одна копия из множества, падает нагрузка на сеть
    • на сервере (at target end) – получаем все копии от источника, сравниваем и сохраняем только нужные
  • По моменту времени (time)
    • пост-дедупликация (post-processing) – записываем данные на диск, затем делаем резервную копию от этих данных, а уже потом делаем дедупликацию (ускорение backup, но требуется больший объем для хранения)
    • онлайн-дедупликация (inline) – при получении новых файлов сравниваем файл (а точнее его hash, а при совпадении hash еще и блоков для защиты от коллизии) в оперативной памяти с существующими файлами (а точнее их hash/блоков) на жестких дисках и не записываем на жесткие диски, если такие файлы уже есть (медленный backup, но объема хранения требуется меньше)
  • По объекту дедупликации (granularity)
    • на уровне файлов (file-level)
    • на уровне блоков (block-level)
    • на уровне байт (byte-level)
  • По масштабу (scope)
    • локальная дедупликация (local) – при наличии нескольких серверов дедупликации на каждом своя независимая таблица хешей с которой происходит сравнение хешей
    • глобальная дедупликация (global) – при наличии нескольких серверов дедупликации есть еще один сервер, на котором находится единая таблица хешей с которой происходит сравнение (усложнение архитектуры, но меньше дублированных данных)

Показатели технологии дедупликации (key indexes):

  • Коэффициент дедупликации (ratio) – отношение между исходными данными и данными после дедупликации. Напрямую влияет на стоимость т.к. чем лучше дедуплицируем, тем меньше денег требуется на покупку устройств хранения.
  • Скорость дедупликации (deduplication perfomance) – время, необходимое для дедупликации. Чем меньше времени, тем лучше т.к. может влиять на скорость backup.
  • Надежность дедупликации (data reliability) – дедупликация не должна ломать файлы и backup’ы (кто бы подумал).
  • Скорость репликации после дедупликации (replication perfomance)  – сколько времени будет происходить передача дедуплицированного backup в другой дата центр для защиты от disaster (disaster recovery).
  • Скорость восстановления после дедупликации (recovery perfomance)  – сколько времени будет происходить восстановление данных из дедуплицированного backup.

дедупликация в btrfs

Существует два основных типа дедупликации:

    • In-band (онлайн) — когда данные перед записью проверяются на существование дубликатов. Такой метод требует значительных вычислительных ресурсов и памяти.
    • Out-of-band (офлайн) — дедупликация происходит после записи и является менее затратной по ресурсам.

Btrfs, в отличие от ZFS, реализует только офлайн-дедупликацию.

Сам Btrfs (обычно пакет btrfs-progs) не имеет встроенных утилит для дедупликации, но предоставляет все необходимые средства для ее реализации сторонними утилитами.

Дедупликация бывает на уровне файлов и на уровне блоков. Чтобы найти и удалить одинаковые файлы, вы, конечно, можете использовать duperemove. Но у него применение довольно специфическое, что делает его практически бесполезным для наших целей, тем более cp в Btrfs не приводит к реальному копированию данных (копии файлов ничего не весят). Строго говоря, Btrfs работает не с файлами, а с блоками данных (экстентами), поэтому и дедупликацию в ней нужно проводить на этом уровне. Для этих целей и существует bees — блочный дедупликатор.

Вопросы

все вопросы/ответы по теме тут

Leave a Reply