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

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

В отличие от применения традиционных алгоритмов сжатия, например LZ77 или LZO, позволяющих провести поиск дубликатов в пределах определённого буфера отдельного файла (так называемое «скользящее окно»), алгоритмы дедупликации позволяют осуществлять поиск копий по большому массиву данных, в отдельных случаях — по всему пространству хранения (глобальная дедупликация).

Области применения

править

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

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

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

Ссылки

править