Opendedup - файловая система с автоматическим объединением дубликатов данных

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

Максимальный размер общей файловой системы на базе SDFS ограничен 8 Петабайтами, максимальный размер одного файла - 250 Гб, предусмотрена возможность подключения в единый пул до 256 разных хранилищ, по 32 Терабайта в каждом. Исходные тексты SDFS написаны на языке Java и доступны в рамках лицензии GPLv2. Файловая система реализована через FUSE-модуль и не привязана к конкретной программной платформе (в настоящее время доступен модуль для Linux, но планируется поддержка других операционных систем).

Для хранения данных в SDFS используется любая стандартная файловая система или cloud-хранилище Amazon S3, при этом SDFS выступает в роли прослойки, выполняющей функции выявления и объединения дубликатов. Данные о позиционировании дубликатов могут храниться локально или могут быть распределены на несколько узлов в сети, объединенных в рамках общего распределенного хранилища. Производительность выполнения операции поиска и объединения дубликатов составляет около 150 Мб/сек. Кроме выявления дубликатов налету предусмотрен режим периодического фонового выявления дубликатов, который запускается в промежутки наименьшей активности и не сказывается на производительности online-операций. Имеется поддержка снапшотов на уровне файлов и директорий. Вычисление дубликатов производится путем использования единой глобальной хэш-таблицы для всех присутствующих в ФС блоков данных.

Базовые компоненты SDFS:

  • SDFS-раздел (SDFS Volume) - доступная для монтирования конечным пользователем дедуплицированная файловая система, которая может быть экспортирована на другие машины посредством NFS или CIFS;
  • SDFS-сервис (SDFS file-system service) - управляющий работой файловой системы сервис, организующий хранение мета-данных (размер, путь и другая информация за исключением непосредственно данных) и карты имеющихся дубликатов, связанных с находящимися внутри SDFS-раздела файлами и директориями. Каждый SDFS-раздел обслуживается своим SDFS-сервисом;
  • Движок дедупликации (Deduplication Storage Engine, DSE) - механизм для сохранения, извлечения и удаления повторяющихся блоков данных (размер блока 4 Кб). Блоки данных сохраняются на диске и индексируются с помощью хранимой в памяти хэш-таблицы. DSE может быть как привязан к SDFS-разделу, так и выступать в роли отдельного сетевого сервиса, обслуживающего несколько SDFS-разделов.

©  OpenNet