РоссияСтатьяИсследования
СПОСОБ И УСТРОЙСТВО ДЛЯ ДИНАМИЧЕСКОГО ОПРЕДЕЛЕНИЯ ОПТИМАЛЬНЫХ ПАРАМЕТРОВ ДЕДУПЛИКАЦИИ ДАННЫХ
[390] Изобретение относится к области обработки и хранения данных, в частности к дедупликации данных. Техническим результатом является оптимизация ресурсов СХД в процессе динамического определения оптимальных параметров дедупликации данных. Заявленный технический результат достигается за счет выполнения способа динамического определения оптимальных параметров дедупликации данных, выполняемого по меньшей мере одним процессором и содержащего этапы, на которых: собирают параметры системы хранения данных (СХД), определяют минимальный размер блока СХД на основе собранных параметров СХД, задают гранулярность блока дедупликации на основе минимального размера блока СХД, преобразуют данные для всего кластера СХД путем вычисления цифрового отпечатка для каждого блока дедупликации заданной гранулярности, осуществляют передачу цифровых отпечатков в среду анализа, изолированную от указанной СХД, получают пользовательский запрос, содержащий по меньшей мере одно из: желаемый коэффициент дедупликации, время дедупликации и количество затраченных ресурсов на дедупликацию, осуществляют симуляцию дедупликации в указанной среде анализа путем применения к полученным цифровым отпечаткам различных сценариев дедупликации, определяют оптимальные параметры дедупликации. 2 н. и 8 з.п. ф-лы, 3 ил., 5 табл.
СПОСОБ И УСТРОЙСТВО ДЛЯ ДИНАМИЧЕСКОГО ОПРЕДЕЛЕНИЯ ОПТИМАЛЬНЫХ ПАРАМЕТРОВ ДЕДУПЛИКАЦИИ ДАННЫХ
Выданный патент: RU2870874C1 Дата публикации: 2026-09-28 Заявитель / патентообладатель: Общество с ограниченной ответственностью "Облачные технологии" (ООО "Облачные технологии") (RU) Классификация: G06F11/08 G06F16/174 G06F16/22 G06F11/08 G06F16/174 G06F16/22
Реферат [390] Изобретение относится к области обработки и хранения данных, в частности к дедупликации данных. Техническим результатом является оптимизация ресурсов СХД в процессе динамического определения оптимальных параметров дедупликации данных. Заявленный технический результат достигается за счет выполнения способа динамического определения оптимальных параметров дедупликации данных, выполняемого по меньшей мере одним процессором и содержащего этапы, на которых: собирают параметры системы хранения данных (СХД), определяют минимальный размер блока СХД на основе собранных параметров СХД, задают гранулярность блока дедупликации на основе минимального размера блока СХД, преобразуют данные для всего кластера СХД путем вычисления цифрового отпечатка для каждого блока дедупликации заданной гранулярности, осуществляют передачу цифровых отпечатков в среду анализа, изолированную от указанной СХД, получают пользовательский запрос, содержащий по меньшей мере одно из: желаемый коэффициент дедупликации, время дедупликации и количество затраченных ресурсов на дедупликацию, осуществляют симуляцию дедупликации в указанной среде анализа путем применения к полученным цифровым отпечаткам различных сценариев дедупликации, определяют оптимальные параметры дедупликации. 2 н. и 8 з.п. ф-лы, 3 ил., 5 табл.
Описание [1] ОБЛАСТЬ ТЕХНИКИ [2] [0001] Заявленное решение относится к дедупликации данных в системах хранения данных (СХД), в частности, к подходу по динамическому определению оптимальных параметров дедупликации данных. [3] УРОВЕНЬ ТЕХНИКИ [4] [0002] Современные системы хранения данных сталкиваются с постоянно возрастающими объемами информации, что ставит перед индустрией новые вызовы в области эффективного управления ресурсами и оптимизации инфраструктуры. Одной из ключевых технологий, направленных на сокращение занимаемого пространства и уменьшение издержек на обслуживание, является дедупликация данных. Эта технология основана на обнаружении и устранении избыточных копий данных, позволяя значительно экономить пространство хранения и повышать общую эффективность работы СХД. [5] [0003] Тем не менее, внедрение дедупликации сопряжено с рядом серьезных трудностей. Выбор оптимального сочетания параметров дедупликации (таких как размер чанка, уровень дедупликации, режим дедупликации и ограничения по ресурсам) оказывает значительное влияние на производительность всей СХД. Неправильный выбор параметров может привести к увеличению потребления ресурсов без значительного выигрыша в коэффициенте дедупликации или, наоборот, к упущенным возможностям оптимизации. [6] [0004] Традиционно настройка параметров дедупликации основывалась на обобщенном опыте, публикациях о других системах хранения данных, экспертных оценках и предварительных знаниях о характере хранимой информации. Такие подходы часто оказываются недостаточно точными и приводят к неоптимальному использованию ресурсов или неполному раскрытию потенциала дедупликации. [7] [0005] Из предыдущего уровня техники известен патент US 10977216 В2 (EMC IP Holding Company LLC, 13.04.2021), раскрывающий технологию ускоренной оценки потенциальной эффективности дедупликации путем выборочного сканирования данных на основе префиксных подписей. Основное внимание уделяется быстрому принятию решений о целесообразности включения дедупликации для определенного набора данных. Основным недостатком является использование выборки данных вместо полного анализа, что может приводить к искажениям и ошибкам в оценке. Кроме того, решение ограничено быстрым предварительным анализом и не подходит для комплексного динамического определения оптимальных параметров схемы дедупликации. [8] [0006] Решение, известное из патента US 8639669 B1 (EMC Corporation, 28.01.2014) направлено на динамическое изменение размера чанков в процессе работы системы дедупликации. Решение эффективно справляется с изменением характера данных, но ограничивается исключительно вопросом размера чанка и не охватывает остальные параметры дедупликации. Отсутствуют инструменты для комплексной настройки параметров дедупликации. [9] [0007] Из уровня техники известен проект DedupBench [1], [2], [3], представляющий собой мощный инструмент для сравнительного анализа различных алгоритмов чанкинга и хеширования. Однако DedupBench ограничен работой с файловыми системами и объектами, не поддерживает блочные системы хранения данных и не решает задачу динамического подбора параметров дедупликации под конкретную рабочую нагрузку. [0008] Из уровня техники известен патент US 9424285 B1 (NETAPP, INC., 23.08.2016), решающий задачу предварительной оценки количества уникальных блоков данных и эффективности дедупликации с помощью выборочного анализа хешей. Несмотря на высокую эффективность в быстром прогнозировании, данный подход страдает от недостатка детализации и не способен учесть особенности конкретной СХД. Таким образом, к недостаткам данного подхода можно отнести недостаточную точность оценки в связи работой с выборкой данных. [10] [0009] Из уровня техники известен патент US 11593313 В2 (EMC IP Holding Company LLC, 28.02.2023), ориентированный на прогнозирование выгоды от совместного использования дедупликации для нескольких наборов данных. Хотя это полезно для консолидации данных, решение не касается внутренней оптимизации параметров дедупликации и не помогает подобрать оптимальную схему для конкретной СХД. [11] [0010] Решение SmartDedup [4] описывает систему оптимизации дедупликации для устройств с ограниченными ресурсами. Однако эта разработка предназначена преимущественно для небольших устройств вроде смартфонов и IoT-гаджетов, и не рассчитана на корпоративные системы хранения данных с высокими требованиями к производительности и надежности. [12] [0011] Из уровня техники известна патентная заявка US 20220027250 A1 (EMC IP Holding Company LLC, 27.01.2022), предлагающая инструмент для генерации тестовых нагрузок с заданным коэффициентом попадания дубликатов для тестирования производительности систем хранения. Однако этот патент ориентирован исключительно на лабораторное тестирование и не решает задачу динамического подбора параметров дедупликации для производственных систем. [13] [0012] Несмотря на многообразие существующих решений, ни одно из них не способно полноценно решить задачу динамического определения оптимальных параметров дедупликации данных с учетом индивидуальных характеристик конкретной СХД и условий ее эксплуатации. [14] [0013] Основные недостатки существующих решений заключаются в следующем: [15] • большинство решений ограничиваются отдельными аспектами проблемы (размер чанка, выборочный анализ данных, работа только с файловыми системами), [16] • многие подходы основаны на выборке данных, что снижает точность оценки и не позволяет учесть полную картину распределения данных, [17] • практически все решения интегрируются непосредственно в активную систему хранения данных, создавая риск негативного влияния на производительность и стабильность сервиса хранения данных, [18] • отсутствуют инструменты для комплексного моделирования различных параметров дедупликации и выбора оптимальной конфигурации. [19] [0014] Таким образом, актуальной проблемой является отсутствие универсального инструмента, способного динамически определять оптимальные параметры дедупликации данных с учетом индивидуальных характеристик конкретной СХД и условий ее эксплуатации. [20] СУЩНОСТЬ ИЗОБРЕТЕНИЯ [21] [0015] Заявленное изобретение направлено на устранение недостатков, присущих существующим решениям, известным из уровня техники, а также позволяет решить техническую проблему в части динамического определения оптимальных параметров дедупликации данных для конкретных условий эксплуатации. [22] [0016] Техническим результатом является оптимизация ресурсов СХД в процессе динамического определения оптимальных параметров дедупликации данных. Благодаря использованию цифровых отпечатков (хешей) вместо полных блоков данных, обеспечивается существенное снижение вычислительной нагрузки и временных затрат на проведение анализа и симуляцию. Это позволяет многократно ускорить процесс определения оптимальной конфигурации дедупликации и снизить требования к ресурсам СХД. [23] [0017] Дополнительным техническим результатом является повышение точности динамического определения оптимальных параметров дедупликации данных. Заявленное решение основывается на полном наборе цифровых отпечатков (хешей) реальных данных, что обеспечивает максимальную точность симуляции дедупликации. [24] [0018] Кроме того, предлагаемое изобретение обладает следующими преимуществами. [25] [0019] Универсальность - подходит как для блочных, так и для файловых систем хранения данных. [26] [0020] Безопасность - все операции, связанные с аналитикой, проводятся в изолированной среде анализа, исключая влияние на производственную СХД, при этом дополнительно реализована возможность шифрования цифровых отпечатков с временным одноразовым ключом. [27] [0021] Гибкость - позволяет осуществлять симуляцию дедупликации с различными параметрами дедупликации (размер блока дедупликации, уровень дедупликации, режим дедупликации и др.) и находить оптимальные конфигурации. [28] [0022] Интегрируемость результатов - результаты работы заявленного изобретения (оптимальные параметры дедупликации) легко внедряются и используются в существующих СХД, обеспечивая удобство и простоту интеграции без рисков снижения производительности или нарушения SLA. [29] [0023] Заявленный технический результат достигается за счет выполнения способа динамического определения оптимальных параметров дедупликации данных, выполняемого по меньшей мере одним процессором, и содержащего этапы, на которых: [30] a) собирают параметры системы хранения данных (СХД), включающие по меньшей мере статистику динамической работоспособности СХД, с заданной периодичностью, при этом нагрузка на СХД в процессе сбора параметров не превышает порогового значения, [31] b) определяют минимальный размер блока СХД на основе собранных параметров СХД, [32] c) задают гранулярность блока дедупликации на основе минимального размера блока СХД, [33] d) преобразуют данные для всего кластера СХД путем вычисления цифрового отпечатка для каждого блока дедупликации заданной гранулярности, при этом размер цифрового отпечатка определяется исходя из объема данных и гранулярности блока дедупликации с учетом вероятности коллизий, [34] e) осуществляют передачу цифровых отпечатков в среду анализа, изолированную от указанной СХД, [35] f) получают пользовательский запрос, содержащий по меньшей мере одно из: желаемый коэффициент дедупликации, время дедупликации и количество затраченных ресурсов на дедупликацию, [36] g) осуществляют симуляцию дедупликации в указанной среде анализа путем применения к полученным цифровым отпечаткам различных сценариев дедупликации, при этом каждый сценарий дедупликации содержит уникальную комбинацию параметров дедупликации, [37] h) определяют оптимальные параметры дедупликации путем анализа полученных результатов симуляции с учетом статистики динамической работоспособности СХД и пользовательского запроса. [38] [0024] В одном из частных примеров реализации заданная периодичность сбора параметров СХД определяется по меньшей мере одним из: [39] • техническими характеристиками СХД, [40] • интенсивность обновления данных в СХД, [41] • допустимой нагрузкой на СХД. [42] [0025] В другом частном примере реализации пороговое значение нагрузки на СХД определяется соглашением об уровне обслуживания (SLA) сервисов. [43] [0026] В другом частном примере реализации на этапе преобразования данных (этапе d) дополнительно генерируют метаданные, указывающие на местоположение цифровых отпечатков. [44] [0027] В другом частном примере реализации этап преобразования данных дополнительно включает шифрование цифровых отпечатков с одноразовым ключом, который удаляется после завершения шифрования цифровых отпечатков. [45] [0028] В другом частном примере реализации параметры дедупликации включают по меньшей мере размер блока дедупликации, уровень дедупликации, режим дедупликации, ограничения по ресурсам. [46] [0029] В другом частном примере реализации для каждого результата симуляции дедупликации, полученного в ходе применения к цифровым отпечаткам различных сценариев дедупликации, вычисляют прогнозный коэффициент дедупликации и прогнозную оценку потребления вычислительных ресурсов. [47] [0030] В другом частном примере реализации этап определения оптимальных параметров дедупликации дополнительно содержит ранжирование результатов симуляции дедупликации по соответствию установленным критериям эффективности, включающим по меньшей мере коэффициент дедупликации, потребление ресурсов, время выполнения. [48] [0031] В другом частном примере реализации способ дополнительно содержит этап, на котором осуществляют дедупликацию данных на основании полученных оптимальных параметров дедупликации. [49] [0032] Заявленный технический результат достигается также за счет реализации устройства для динамического определения оптимальных параметров дедупликации данных, содержащего [50] по меньшей мере один процессор, [51] по меньшей мере одну память, связанную с процессором и содержащую машиночитаемые инструкции, которые при их выполнении по меньшей мере одним процессором обеспечивают выполнение способа динамического определения оптимальных параметров дедупликации данных. [52] КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ [53] [0033] На Фиг. 1 представлена блок-схема способа динамического определения оптимальных параметров дедупликации данных. [54] [0034] На Фиг. 2 представлена компонентная схема системы, реализующей способ динамического определения оптимальных параметров дедупликации данных. [55] [0035] На Фиг. 3 представлена общая схема вычислительного устройства. [56] ОСУЩЕСТВЛЕНИЕ ИЗОБРЕТЕНИЯ [57] [0036] Ниже будут описаны понятия и термины, необходимые для понимания настоящего изобретения. [58] [0037] Дедупликация данных (Data Deduplication, Deduplication) - это технология сжатия данных, при которой повторяющиеся копии одних и тех же данных (файлов, блоков, объектов) устраняются и заменяются ссылками на единственную сохраненную копию. [59] [0038] Коэффициент дедупликации (Deduplication Ratio, Dedup Ratio) - это измеримый показатель эффективности дедупликации, рассчитываемый как отношение исходного объема данных к объему после дедупликации (или, другими словами, отношение объема логических данных к объему физически занимаемого ими места в хранилище). Более высокий коэффициент означает большую степень сжатия. В технической литературе и практике также используются понятия «эффективность дедупликации» и «степень сжатия». [60] [0039] Уровень дедупликации (Deduplication Level, Scope) - это область (границы) применения алгоритма дедупликации: на уровне всего кластера, отдельного хоста, пользователя, диска и т.д. Более высокий уровень увеличивает потенциал сжатия, но и увеличивает сложность реализации, и нагрузку на хранилище. [61] [0040] Блок дедупликации - это фрагмент данных, на который разбивается информация для процесса дедупликации. Блок дедупликации является единицей работы алгоритма дедупликации и представляет собой блок данных, размер которого кратен размеру блока используемой системы хранения данных (обычно 4 Кбайта). [62] [0041] Размер блока дедупликации - это величина (например, 4 КБ, 8 КБ, переменный), определяющая границы блоков данных при дедупликации. Является ключевым параметром, влияющим на эффективность и нагрузку. [63] [0042] Гранулярность (блока) дедупликации - это минимальный адресуемый размер блока данных, на котором осуществляется обнаружение и устранение дубликатов в системе хранения данных (СХД). Гранулярность определяет дискретность, с которой система оперирует при сравнении блоков данных, вычислении хешей и принятии решений о дедупликации. Ключевые характеристики, определяющие размер гранулярности: [64] • нижняя (базовая) граница - не может быть меньше минимального адресуемого блока низлежащего хранилища, [65] • кратность размеру блока данных СХД, [66] • вариативность - обеспечения возможности "склейки" блоков при сравнительном анализе сбор хешей выполняется с шагом, равным наибольшему общему делителю (НОД) исследуемых вариантов, что позволяет в дальнейшем симулировать любую из рассматриваемых гранулярностей без повторного сбора данных, [67] • влияние на вычислительную нагрузку (потребление вычислительных ресурсов), [68] • уровень коллизий при дедупликации. [69] [0043] Цифровой отпечаток блока данных (Data block fingerprint) - это уникальный идентификатор блока данных фиксированной длины, полученный путем применения специализированного алгоритма (обычно хеш-функции) к произвольному объему данных. Цифровой отпечаток обладает свойствами детерминированности (многократное вычисление цифрового отпечатка для одного и того же блока данных дает один и тот же отпечаток) и высокой степени уникальности (теоретическая вероятность коллизий есть, но остается очень маленькой), которые позволяют использовать сравнение значений цифровых отпечатков вместо сравнения значений самих блоков данных в различных прикладных задачах, в том числе в системах дедупликации данных [5], [6]. [70] [0044] Хеш (криптографический, некриптографический) - это строка фиксированной длины, генерируемая из содержимого блока данных с помощью хеш-функции (напр., ХХН128). Используется для быстрого сравнения блоков без анализа их полного содержимого. Редко, но теоретически может иметь коллизии: когда два разных блока данных имеют одинаковый отпечаток. В профессиональной среде для обозначения хеша также могут применятся такие термины, как «контрольная сумма», «Fingerprint», «Signature» и «Digest». [71] [0045] Метаданные дедупликации (Dedup Metadata, Service Data) - это служебная информация, которая создается и управляется системой дедупликации, например, таблицы хешей, счетчики ссылок, карты размещения блоков. [72] [0046] Оценка эффективности дедупликации (Deduplication Estimate) - это процесс предварительного расчета потенциально возможного коэффициента дедупликации для набора данных без фактического выполнения самой дедупликации. [73] [0047] Коллизия хешей (Hash Collision) - это редкое событие, когда два разных блока данных дают одинаковое хеш-значение. Вероятность коллизий минимизируется выбором алгоритма и сочетания длины хеша с длиной хешируемого блока данных и общим количеством блоков данных. [74] [0048] Симуляция дедупликации (Deduplication Simulation) - это вычислительный процесс, приближенно имитирующий работу дедупликации на упрощенной модели данных (например, на хешах). Может использоваться для разных целей: оценки целесообразности использования дедупликации в конкретном хранилище, изучения поведения дедупликации при разных параметрах, оптимизации самого алгоритма дедупликации. В уровне техники также используется понятие «моделирование дедупликации». [75] [0049] Онлайн-дедупликация (Online Deduplication, Inline Deduplication, Real-time Dedup) - это режим дедупликации, предполагающий выполнение дедупликации в реальном времени, в момент записи данных в систему. Онлайн-дедупликация требовательна к ресурсам, зачастую имеет меньший коэффициент дедупликации, чем офлайн дедупликация, но приводит к немедленной экономии емкости хранилища. [76] [0050] Офлайн-дедупликация (Offline Deduplication, Post-process Deduplication) - это режим дедупликации, при котором устранение дубликатов данных выполняется в фоновом режиме, т.е. после их первоначальной записи в хранилище. Данный подход характеризуется пониженными требованиями к пиковым вычислительным ресурсам, однако приводит к временному нерациональному использованию дискового пространства. Минимизируя нагрузку на систему в моменты записи, офлайн-дедупликация позволяет использовать алгоритмы глубокого анализа для достижения максимальной эффективности сжатия. В уровне техники также используется понятие «Фоновая дедупликация». [77] [0051] Динамическая работоспособность системы хранения данных (СХД) - это способность системы сохранять работоспособность в условиях изменений, сбоев и нагрузок, обеспечивая доступность данных и непрерывность работы сервисов. Динамическая работоспособность включает: [78] • отказоустойчивость - способность системы продолжать работу при сбоях отдельных компонентов (дисков, контроллеров, сети), [79] • надежность - данные, записанные клиентом, не должны меняться самопроизвольно или в результате отказов системы, [80] • способность к самовосстановлению - после отказа компонента (например, диска) система должна автоматически провести необходимые процедуры восстановления целостности данных, [81] • масштабируемость - емкость хранилища должна легко наращиваться путем добавления в систему новых дисков и серверов, при этом не должно происходить ухудшения параметров производительности и надежности при увеличении размеров системы (до определенного предела). [82] [0052] Выборка или семплирование (Sampling) - это метод приближенной оценки, при котором анализ производится не на полном объеме данных, а на его статистически репрезентативной части для экономии ресурсов и времени. [83] [0053] Полный набор хешей (Full Hash Set) - это совокупность хешей, сгенерированная для всех блоков данных минимально возможного исследуемого размера в анализируемом хранилище. Обеспечивает точное, а не статистическое, моделирование. В зависимости от контекста эта совокупность хешей может называться также цифровой тенью данных или полной репликой. [84] [0054] Программно-определяемое хранилище (Software-Defined Storage, SDS) - это архитектура системы хранения данных, в которой логика управления (включая дедупликацию) отделена от физического оборудования и реализована в программном слое. [85] [0055] Сервер симуляции дедупликации или Сервер аналитики (Analytics Server, Simulation Environment) - это изолированная вычислительная среда (отдельный сервер или кластер), предназначенная для проведения экспериментов по симуляции / моделированию на основе цифровых отпечатков (хешей), без доступа к реальным данным. [86] [0056] Параметрическое проектирование (Parameter Tuning) - это процесс определения оптимальных внутренних параметров системы (размера блока дедупликации, уровня дедупликации) путем проведения множества экспериментов с их различными значениями. [87] [0057] Прогнозная нагрузка на ресурсы (Estimated Resource Consumption, Resource Overhead) - это оценка потребления вычислительных ресурсов (ЦПУ, ОЗУ, ввода-вывода), которая будет возникать при работе системы дедупликации с определенной конфигурацией. [88] [0058] Нативные (реальные) данные (Production Data, Real-world Data) - это фактические производственные данные, хранящиеся в целевой системе, в противоположность синтетически сгенерированным тестовым наборам. [89] [0059] Консолидация датасетов (Dataset Merging) - это операция объединения нескольких независимых наборов данных в общее пространство хранения с целью увеличения общего коэффициента дедупликации между ними. [90] [0060] Заявленные способ и система для динамического определения оптимальных параметров дедупликации данных реализованы посредством симуляции различных конфигураций сжатия данных не на исходных данных, а на их компактных цифровых отпечатках (хешах), собранных с конкретного хранилища данных. Это позволяет, за счет существенного сокращения объема обрабатываемой информации, быстрее и с меньшими затратами ресурсов, при сохранении точности по сравнению с исходными данными, определить оптимальную конфигурацию дедупликации на конкретном хранилище данных, обеспечивающую максимальный коэффициент сжатия и/или допустимый уровень вычислительной нагрузки дедупликации для конкретного набора данных. [91] [0061] На Фиг. 1 представлено пошаговое исполнение компьютерно-реализуемого способа (100) динамического определения оптимальных параметров дедупликации данных в виде блок-схемы. Выполнение способа (100) осуществляется с помощью по меньшей мере одного процессора. В частном примере реализации выполнение способа (100) осуществляется с помощью устройства для динамического определения оптимальных параметров дедупликации данных, которое может быть реализовано на базе вычислительного устройства, модифицированного в программно-аппаратной части таким образом, чтобы выполнять функции устройства для динамического определения оптимальных параметров дедупликации данных. Более подробное описание вычислительного устройства раскрыто далее со ссылкой на Фиг. 3. [92] [0062] В предпочтительном варианте воплощения способ (100) динамического определения оптимальных параметров дедупликации данных применяется в облачных хранилищах данных (cloud storage), однако область применения способа (100) не ограничена конкретным исполнением системы хранения данных. В частном примере реализации заявленный способ (100) применим и для локальных дисковых хранилищ с сохранением всей функциональности способа (100). [93] [0063] На первом этапе (101) собирают параметры системы хранения данных (СХД), включающие по меньшей мере статистику динамической работоспособности СХД, с заданной периодичностью. При этом заданная периодичность сбора параметров СХД определяется по меньшей мере одним из: [94] • техническими характеристиками СХД (объем кэш-памяти, производительность контроллеров), [95] • интенсивность обновления данных в СХД, [96] • допустимой нагрузкой на СХД (обычно не чаще 1 раза в 5-15 минут для пассивных метрик, до 1 раза в минуту для активных метрик при наличии выделенного канала мониторинга). [97] [0064] Нагрузка на СХД в процессе сбора параметров (101) не должна превышать порогового значения, при этом пороговое значение нагрузки на СХД определяется соглашением об уровне обслуживания (SLA) сервисов. Другими словами, сбор параметров (101) выполняют таким образом, чтобы минимизировать влияние на операционную деятельность СХД и не нарушать соглашения об уровне обслуживания (SLA) сервисов, обеспечиваемых данной СХД. [98] [0065] Этап (101) сбора параметров СХД, включающих по меньшей мере статистику динамической работоспособности СХД, может осуществляться с использованием: [99] • встроенных средств мониторинга СХД (API, системных логов, SNMP, SMI-S); [100] • агентного программного обеспечения, устанавливаемого на узлах управления СХД; [101] • средств виртуализации (hypervisor-level telemetry) при работе с виртуализированными СХД. [102] [0066] К показателям, характеризующим динамическую работоспособность СХД, можно отнести по меньшей мере: [103] • производительность, которая определяется количеством операций ввода-вывода в секунду (IOPS) и пропускной способностью, причем IOPS критичен для транзакционных систем с множеством мелких операций; [104] • количество вычислительных ресурсов (CPU/ОЗУ), которое определяется количеством процессорного времени, степенью утилизации процессора и количеством памяти; [105] • латентность и время отклика, которые, например, для OLTP-баз составляют менее 5 мс, для файловых операций - 10-20 мс, а для накопителей NVMe - менее 1 мс; [106] • пропускная способность сети хранения, которая определяет объем передаваемых данных; [107] • показатель фрагментации диска (Split IO/sec), который возникает, когда операционной системе приходится разделять одну операцию ввода/вывода на несколько операций, при этом указанный показатель также может говорить о том, что приложение запрашивает слишком большие блоки данных, которые не могут быть переданы за одну операцию; [108] • глубину очереди (IO depth), которая характеризует количество транзакций, ожидающих обработку, и связана с IOPS и задержкой (latency) через закон Литтла: IO depth=IOPS * Latency; [109] • скорость восстановления данных, которая характеризует надежность в пределах заданной наработки на отказ, и отражает, насколько быстро система способна перейти из деградированного (degrade) состояния в работоспособное (healthy); [110] • среднее время наработки до отказа, которое используют в качестве количественной метрики надежности СХД. [111] [0067] В частном примере реализации собираемые параметры СХД содержат исторические данные работоспособности СХД в процессе прошлых итераций дедупликации. [112] [0068] Собранные на этапе (101) параметры СХД передаются в среду анализа для последующего использования при определении оптимальных параметров дедупликации. Например, если нагрузка на процессор (CPU utilization) стабильно превышает 75% в часы пиковой нагрузки, система при осуществлении симуляции будет ограничивать параметры, требующие интенсивных вычислений вплоть до остановки. Пример собранных параметров СХД представлен в Таблице 1. [113] [114] [0069] На этапе (102) определяют минимальный размер блока СХД на основе собранных параметров СХД. На основе данных, собираемых на этапе (101), можно определить минимальный размер блока данных. Например, в файловой системе ЕХТ4, широко используемой в SDS-решениях, минимальный блок хранения (block size) обычно составляет 4 КБ. Система сбора определяет этот параметр путем опроса файловой системы (например, командой stat -f %s /mount/point) или чтения конфигурации томов. В ином случае система может определять минимальный размер блока физического диска, если работа с ним производится напрямую без участия файловой системы. [115] [0070] Определение минимального размера блока связано с особенностями конкретной реализации системы хранения данных и может зависеть от множества факторов: типа носителя (например, SSD или HDD), структуры файловой системы, настроек контроллера и даже специфики самого приложения. [116] [0071] На этапе (103) задают гранулярность блока дедупликации на основе минимального размера блока СХД. Одним из ключевых моментов успешного функционирования системы дедупликации данных является правильная установка гранулярности блока дедупликации. Грамотный выбор этого параметра позволяет производить сканирование всех данных хранилища и сбор их цифровых отпечатков всего один раз, но при этом использовать собранные отпечатки многократно, чтобы симулировать все анализируемые конфигурации дедупликации. Это существенно экономит ресурсы и время, затрачиваемое на сбор отпечатков. [117] [0072] Гранулярность блока дедупликации должна быть выбрана таким образом, чтобы быть не меньше минимального размера блока СХД. Это обусловлено несколькими важными причинами, одна из них - адресуемость данных. Дело в том, что блоки меньшего размера, чем минимальный размер блока СХД, не могут быть индивидуально адресованы системой, что делает невозможным их эффективное выделение и обработку. Чрезмерно мелкая гранулярность также увеличивает число операций ввода-вывода (IOPS), что отрицательно сказывается на производительности системы. Кроме того, мелкая гранулярность требует большего объема метаданных и вычислительных ресурсов для обработки и хранения информации о блоках. [118] [0073] Для определения минимальной гранулярности блока дедупликации на этапе (103) необходимо идентифицировать минимальный адресуемый блок хранения в целевой SDS. Чаще всего размеры блока файловой системы, блока дедупликации и других блоков выбираются кратными минимальному адресуемому размеру блока СХД, с целью повышения быстродействия, например, 4 КБ. [119] [0074] Кратность минимальному размеру блока СХД является основным фактором при выборе гранулярности блока дедупликации. Например, если минимальный размер блока составляет 4 КБ, то гранулярность может быть установлена равной 4 КБ, 8 КБ, 16 КБ и т.д. Это обеспечивает правильное выравнивание данных и предотвращает фрагментацию. [120] [0075] В некоторых ситуациях возникает потребность в сравнении эффективности дедупликации данных при различных размерах блоков. Например, необходимо оценить показатели дедупликации для блоков размером 8К, 12К и 16К. Вместо того чтобы собирать хеши отдельно для каждого из указанных размеров, что привело бы к многократному увеличению объема хранимых данных и вычислительных затрат, предлагается эффективный алгоритм объединения хешей, предусматривающий использование наибольшего общего делителя (НОД) выбранных размеров, чтобы собрать хеши и симулировать различные сценарии дедупликации. [121] [0076] Для определения гранулярности блока дедупликации вычисляется наибольший общий делитель (НОД) предложенных размеров блоков. В рассматриваемом случае имеем: [122] [123] [0077] Следовательно, базовым размером блока становится 4К. [124] [0078] Далее система собирает хеши для всех блоков данных размером 4К. Этот этап выполняется единожды и служит основой для дальнейшей симуляции. Используя собранные ранее хеши 4К-блоков, система формирует хеши для блоков большего размера путем объединения смежных базовых блоков: [125] • для блока 8К объединяются два последовательных блока по 4К, [126] • для блока 12К объединяются три последовательных блока по 4К, [127] • для блока 16К объединяются четыре последовательных блока по 4К. [128] [0079] Комбинированный хеш для каждого крупного блока рассчитывается на основании хешей составляющих его базовых блоков. Это позволяет избежать повторного обращения к самим данным и значительно сокращает вычислительные затраты. [129] [0080] Таким образом, предложенная реализация позволяет эффективно использовать ресурсы, т.е. позволяет хранить единственный набор хешей (для 4К-блоков), что минимизирует расход памяти и вычислительных мощностей. Кроме того, обеспечивается возможность легкого расширения списка поддерживаемых размеров блоков без необходимости дополнительного сбора хешей, при условии их кратности базовому размеру. И наконец, данных подход позволяет оперативно оценивать эффективность дедупликации для различных размеров блоков без перезапуска процедуры сбора хешей. [130] [0081] На этапе (104) преобразуют данные для всего кластера СХД путем вычисления цифрового отпечатка для каждого блока дедупликации заданной гранулярности, при этом размер цифрового отпечатка определяется исходя из объема данных и гранулярности блока дедупликации с учетом вероятности коллизий. [131] [0082] Ключевой особенностью данного решения является использование полного набора цифровых отпечатков (хешей) реальных данных, что обеспечивается за счет преобразования данных для всего кластера СХД. Это позволяет достичь максимальной точности симуляции дедупликации. [132] [0083] В рамках заявленного изобретения под цифровым отпечатком блока данных понимается уникальный идентификатор блока данных фиксированной длины, полученный путем применения специализированного алгоритма (обычно хеш-функции) к произвольному объему данных. [133] [0084] В предпочтительном варианте воплощения заявленного решения в качестве цифрового отпечатка выступает хеш, а операция преобразования данных для всего кластера СХД является операцией хеширования данных для всего кластера СХД. [134] [0085] Несмотря на это, заявленное изобретение не ограничивается только применением хеша в качестве цифрового отпечатка. Различные варианты цифровых отпечатков и их использование в рамках заявленного решения будут раскрыты в соответствующих фрагментах описания. [135] [0086] Процесс вычисления цифрового отпечатка для каждого блока дедупликации заданной гранулярности включает определение минимально необходимого размера цифрового отпечатка (хеша), которое состоит из следующих шагов. [136] [0087] 1. Определяют количество блоков данных, которые будут преобразованы (хешированы), по формуле: [137] Количество блоков данных = Общий объем данных / Гранулярность блока дедупликации. [138] [0088] Пример 1: [139] Если СХД содержит 1ПБ данных, а гранулярность блока дедупликации 4К, то Количество блоков данных = 274,877,906,944 [140] [0089] Пример 2: [141] Если СХД содержит 10 ЭБ, а гранулярность блока дедупликации 16К, то количество блоков данных = 703,687,441,776,640 [142] [0090] 2. Вычисляют теоретически возможную вероятность коллизий для хешей всех длин от 64 до 256 бит с шагом 8 бит (1 байт) по приближенной формуле [7]: [143] [144] где k - количество блоков данных, которые будут хешированы, [145] N - количество всех возможных значений хеша. [146] [0091] Полученные данные записывают в таблицу. [147] [0092] Пример 1: [148] Для случая с 274,877,906,944 блоками данных получаем Таблицу 2: [149] [150] [0093] Пример 2: [151] Для случая с 703,687,441,776,640 блоками данных получаем Таблицу 3: [152] [153] [154] [0094] 3. Выбирают минимальный размер хеша, который обеспечит вероятность менее заданной, например, 0.00000000000001 (коллизии почти невероятны). Учет вероятности коллизий в процессе определения размера цифрового отпечатка (хеша) позволяет уменьшить количество ложных дедупликаций в связи с отсутствием одинаковых хешей для разных блоков данных, что улучшает качество процесса определения оптимальных параметров дедупликации. [155] [0095] Пример 1: [156] Для случая с 274,877,906,944 блоками данных такой хеш будет размером 128 бит. [157] [0096] Пример 2: [158] Для случая с 703,687,441,776,640 блоками данных такой хеш будет размером 152 бит. [159] [0097] Предлагаемый метод исходит из предположения об идеальности хеш-функции: у такого хеша распределение любой его части также совершенно. Это означает, что с идеальными хешами можно производить любые операции - резать, склеивать, брать произвольные фрагменты в любом порядке - и метод определения длины останется корректным. Реальные хеш-функции, разумеется, далеки от идеала. Однако данное допущение грубо компенсируют, задавая предельно низкую целевую вероятность коллизии - не более 10 -14 . [160] [0098] Таким образом, если требуемая разрядность цифрового отпечатка составляет, скажем, 120 бит, ее можно получить композитным способом - например, объединив CRC64 (64 бита) и xxHash56 (56 бит). Избыточные 8 бит при этом просто отбрасываются (могут вычисляться, но не использоваться и не храниться). [161] [0099] В частном варианте воплощения заявленного изобретения на этапе (104) дополнительно генерируют метаданные, указывающие на местоположение цифровых отпечатков. [162] [0100] Рассмотрим вариант реализации этапа (104) на конкретном примере. [163] [0101] Для каждого такого блока дедупликации заданной гранулярности (например, 4К) в анализируемом хранилище (например, объемом 1 ПБ) вычисляется хеш (контрольная сумма). Используется быстрый и достаточно уникальный алгоритм, например ХХН128, который создает 128-битный (16-байтный) цифровой отпечаток блока. Дополнительно собираются метаданные, указывающие на местоположение блока (идентификатор диска, Logical Block Address (LBA), inode, путь к файлу). Таким образом, для 1 ПБ данных при размере блока 4 КБ расчет будет следующим: [164] • Объем анализируемого хранилища: 1 ПБ (10 15 байт). [165] • Размер минимального блока: 4 КБ (4 × 10 3 байт). [166] • Количество блоков: 10 15 / (4 × 10 3 )=2.5×10 11 (250 миллиардов блоков). [167] • Размер одного хеша (ХХН128): 16 байт. [168] • Общий объем хешей: 2.5×10 11 × 16=4 ТБ. [169] [0102] Для каждого физического расположения блока (блока дедупликации заданной гранулярности) сохраняют его хеш, например, по: [170] • OSD ID (в Ceph) или номеру диска; [171] • LBA (логическому адресу блока); [172] • inode номеру и смещению в файле (при файловой гранулярности). [173] [0103] Пример структуры записи представлен в Таблице 4: [174] [175] [0104] В частном варианте реализации этап (104) преобразования данных дополнительно включает шифрование цифровых отпечатков с одноразовым ключом (например, НМАС), который безвозвратно удаляется после завершения шифрования цифровых отпечатков, предотвращая таким образом возможность анализа и восстановления исходных данных по цифровым отпечаткам. [176] [0105] Хеш для каждого блока дедупликации вычисляется с помощью широко известных алгоритмов хеширования (но не ограничиваясь указанными примерами), таких как: [177] • Алгоритм SHA-256, являющийся одним из самых распространенных методов хеш-функций, используемых для дедупликации. Эта криптографическая хеш-функция генерирует 256-битный дайджест (хеш). SHA-256 устойчив к коллизиям (случаям, когда разные входные данные приводят к одинаковому значению хеша), что делает его надежным выбором для проверки уникальности блоков данных; [178] • MD5 - еще одна широко используемая хеш-функция, хотя она уже считается устаревшей для криптографической защиты из-за выявленных уязвимостей. Однако благодаря своей скорости, MD5 все еще актуальна для применения в системах дедупликации; [179] • Отпечаток Рабина (Rabin Fingerprinting) также известный, как полиномиальное хеширование - метод, используемый для быстрого обнаружения дубликатов путем расчета полиномиальных сверток над блоками данных. Хеш-функция Рабина имеет высокую производительность и может использоваться для поиска дублированных блоков данных без полного пересчета всего файла; [180] • XXHash - это быстрый, но небезопасный хеш-алгоритм, который обеспечивает хорошую производительность и стабильность при поиске дубликатов. Он менее подвержен коллизиям, чем MD5, но уступает SHA-256 по безопасности; [181] • Фильтр Блума (Bloom filter) сам по себе не является хеш-алгоритмом, но часто используется совместно с ними для предварительной фильтрации дубликатов перед проверкой. Bloom filter позволяет эффективно проверять наличие элементов в множестве с минимальной вероятностью ложноположительных результатов. [182] [0106] Выбор конкретного алгоритма зависит от требований системы: нужно ли обеспечить максимальную защиту от коллизий (SHA-256), оптимизировать быстродействие (XXHash) или использовать комбинацию нескольких подходов для повышения эффективности (например, Rabin + Bloom filter). [183] [0107] Рассмотрим варианты, при которых цифровой отпечаток представляет собой более сложную структуру, чем просто идентификатор блока данных фиксированной длины, полученный путем применения криптографических (MD5, SHA-1, SHA-256, SHA-512) или некриптографических (XXHash, MurmurHash, CityHash) хеш-функции. В частных случаях реализации, цифровой отпечаток может представлять из себя композицию хешей либо комбинацию хеша и контрольной суммы (например, CRC). [184] [0108] В большинстве существующих СХД, независимо от наличия дедупликации, в метаданных уже хранятся контрольные суммы для блоков данных, например, CRC64. Это необходимо для отказоустойчивости и выявления фактов сбоя хранения информации на аппаратном уровне. В таких системах, для включения дедупликации, чтобы не раздувать объем метаданных, можно этот CRC64 дополнить хешом минимальной необходимой длины для получения цифрового отпечатка заданной длины. Тогда для получения цифрового отпечатка длинной 128-бит, алгоритм преобразования данных может включать следующие шаги: [185] 1. Вычисление 64-битной контрольной суммы CRC64, [186] 2. Вычисление 64-битного хеша XXHash64, [187] 3. Объединение этих двух значений в 128-битный цифровой отпечаток (XXHash64, CRC64). [188] [0109] Рассмотрим другой пример реализации цифрового отпечатка, состоящего из комбинации хеша и контрольной суммы, в котором акцент сделан на снижение вероятности возникновения коллизий при дедупликации данных различной длины. [189] [0110] Предположим, что в процессе дедупликации встречаются два блока данных разной длины, которые по чистой случайности обладают одинаковым хешем. Такое явление известно, как коллизия и может привести к некорректной идентификации данных и неправильной дедупликации. Для предотвращения подобных ситуаций предлагается дополнить стандартный хеш контрольной суммой, зависящей от длины блока данных. [190] [0111] Пусть имеются два блока данных: [191] • Первый блок данных длиной 8 КБ с содержанием DATA_BLOCK_A. [192] • Второй блок данных длиной 12 КБ с содержанием DIFF_DATA_BLOCK_B. [193] [0112] Эти блоки теоретически могут обладать одинаковыми хешами (например, SHA-256), что создаст ситуацию коллизии. [194] [0113] Допустим, что в процессе формирования цифрового отпечатка, вычисление хеша путем применения к обоим блокам хеш-функции SHA-256, привело к тому, что оба хеша оказались одинаковыми: [195] SHA256(DATA_BLOCK_A)=SHA256(DIFF_DATA_BLOCK_B) [196] [0114] Для устранения возникшей коллизии рассчитывают контрольную сумму (Checksum) для каждого блока отдельно, учитывая его длину: [197] • Checksum первого блока: $Checksum(DATA_BLOCK_A) (учитывая длину 8 КБ). [198] • Checksum второго блока: $Checksum(DIFF_DATA_BLOCK_B) (учитывая длину 12 КБ). [199] [0115] Поскольку длины блоков различаются, значения Checksum гарантированно будут разными. [200] [0116] Далее формируют цифровой отпечаток, объединяя хеш и Checksum: [201] • Отпечаток первого блока: $SHA256(DATA_BLOCK_A) + $Checksum(DATA_BLOCK_A) [202] • Отпечаток второго блока: $SHA256(DIFF_DATA_BLOCK_B) + $Checksum(DIFF_DATA_BLOCK_B) [203] [0117] Поскольку значения Checksum различны, итоговые цифровые отпечатки также будут различаться, предотвращая возникновение коллизии. [204] [0118] Еще один вариант - это расширение хеша дополнительной информацией о самом блоке, например, типом данных или служебными битами. Такая схема полезна, если структура данных заранее известна и можно использовать дополнительные сведения для увеличения уникальности цифрового отпечатка. [205] [0119] В рамках создания цифровых отпечатков возможно каскадное применение нескольких хеш-функций разного типа. Сначала считаем основной хеш, а затем применяем вторую функцию к результату первой вместе с длиной блока или другой характеристикой. Это сильно снижает вероятность коллизий, хотя и немного замедляет работу системы. [206] [0120] Приведенные примеры реализации цифровых отпечатков охватывают широкий спектр подходов, каждый из которых может быть использован в зависимости от конкретных требований и условий эксплуатации системы хранения данных. Правильный выбор типа цифрового отпечатка позволяет достичь баланса между производительностью, надежностью и эффективностью дедупликации, что соответствует ключевым целям заявленного изобретения. [207] [0121] В альтернативном варианте воплощения заявленного решения предусмотрена возможность выборочного сбора хешей, при котором анализируется не весь массив данных, а лишь его репрезентативная часть. Механизмы формирования выборки могут включать: [208] • вероятностное прореживание потока блоков (например, исключение каждого блока с заданной вероятностью), [209] • пропуск отдельных физических дисков или хостов согласно заданному шагу (например, каждый десятый диск), либо [210] • стратифицированную выборку виртуальных блочных устройств пропорционально их распределению по размерным категориям (до 20 ГБ, 20-100 ГБ, свыше 100 ГБ). [211] • выборку блоков данных на базе значений хеша (по преффиксу/суффиксу). [212] [0122] Указанные подходы могут применяться как по отдельности, так и в комбинации, обеспечивая снижение объема собираемых данных и минимизацию влияния на операционную деятельность СХД при сохранении статистической значимости выборки для целей последующей симуляции и оптимизации параметров дедупликации. [213] [0123] На этапе (105) осуществляют передачу цифровых отпечатков в среду анализа, изолированную от указанной СХД. Собранные цифровые отпечатки (хеши) и метаданные передаются в среду анализа, которая изолирована от проверяемой СХД (отдельный сервер, кластер или облачная инфраструктура). Передача может осуществляться по защищенному каналу (TLS/SSL, SSH-туннелирование или VPN-каналы) или с использованием внешних носителей. [214] [0124] В частном варианте реализации для предотвращения возможности восстановления исходных данных по цифровым отпечаткам (хешам) на этапе (105) передачи цифровых отпечатков может применяться дополнительное шифрование с одноразовым ключом, например, с использованием HMAC-SHA256 с временным ключом шифрования. После завершения передачи ключ безвозвратно удаляется. Это гарантирует, что даже при компрометации среды анализа восстановить исходные данные по цифровым отпечаткам (хешам) будет невозможно. [215] [0125] Коллекция цифровых отпечатков (хешей) занимает ничтожный объем по сравнению с исходными данными (в рассмотренном ранее примере, 250 млрд * 16 байт ≈ 4 ТБ против 1 ПБ исходных данных - экономия >99.5%). [216] [0126] Помимо шифрования, в альтернативном воплощении заявленного решения может применяться механизм проверки подлинности сторон, участвующих в передаче данных. Для этого используются сертификаты открытых ключей, пароли и одноразовые коды подтверждения. Дополнительно применяется контроль целостности данных с помощью контрольных сумм (например, MD5, SHA-256), что позволяет убедиться в неизменности цифровых отпечатков при транспортировке. [217] [0127] Весь процесс передачи подвергается постоянному аудиту и контролю. Ведется подробная регистрация всех попыток доступа к среде анализа, фиксируется каждое соединение и операция с цифровыми отпечатками. Это позволяет своевременно выявлять любые подозрительные активности и реагировать на инциденты информационной безопасности. [218] [0128] Самостоятельная среда анализа проектируется с соблюдением принципов сетевой сегментации и физического разделения. Она размещается в отдельной виртуальной сети (VPC) или физически обособленной серверной зоне. Доступ к ней предоставляется строго по принципу минимально необходимых привилегий, что дополнительно усиливает безопасность и управляемость процесса. [219] [0129] Благодаря такому комплексному подходу достигается не только безопасность передачи и анализа цифровых отпечатков, но и значительная экономия ресурсов производственной СХД. Экспериментальные расчеты и симуляция выполняются в изолированном пространстве, не нагружая основную инфраструктуру и не влияя на ее доступность и быстродействие. Это позволяет быстро и безопасно настраивать параметры дедупликации, добиваясь максимального эффекта без риска для конечного пользователя. [220] [0130] Таким образом, этап передачи цифровых отпечатков в изолированную среду анализа является фундаментальным элементом заявленного изобретения, обеспечивающим одновременно и безопасность, и эффективность процесса оптимизации параметров дедупликации данных. [221] [0131] На этапе (106) получают пользовательский запрос. Запрос пользователя может содержать один или несколько ключевых параметров, среди которых выделяются: [222] [0132] Желаемый коэффициент дедупликации - количественный показатель, отражающий отношение объема данных после удаления дубликатов к объему исходных данных. Высокий коэффициент означает большее сокращение объема хранилища, однако его достижение может потребовать значительных вычислительных ресурсов и времени. [223] [0133] Время дедупликации - временной интервал, в течение которого ожидается завершение процесса дедупликации. Этот параметр особенно важен в условиях ограниченного окна доступности системы или при необходимости быстрой реакции на изменения в объеме данных. [224] [0134] Количество затраченных ресурсов на дедупликацию - ограничение по использованию вычислительных мощностей, оперативной памяти, каналов ввода-вывода и других ресурсов системы. Оптимизация по этому критерию направлена на минимизацию воздействия дедупликации на работу основной системы хранения данных. [225] [0135] Важно понимать, что указанные параметры тесно взаимосвязаны. Например, стремление достигнуть высокого коэффициента дедупликации неизбежно ведет к росту продолжительности процесса и увеличению расхода ресурсов. Аналогичным образом, жесткое ограничение по времени дедупликации может ограничить достижимый коэффициент или потребовать увеличения выделенных ресурсов. Таким образом, система должна обеспечивать баланс между этими показателями, предлагая компромиссные решения, соответствующие поставленным условиям. [226] [0136] В частном воплощении изобретение способно поддерживать интерактивное взаимодействие с пользователем, предлагая рекомендации по изменению параметров на основе текущего состояния системы и накопленных статистических данных. Пользователь получает возможность поэтапно уточнять запрос, достигая наилучших компромиссов между желаемыми характеристиками дедупликации. [227] [0137] В случае отсутствия явных предпочтений пользователя заявленное решение может самостоятельно выбирать оптимальные параметры дедупликации, руководствуясь внутренними эвристиками и историческими данными о предыдущих успешных операциях. Такой подход особенно удобен в условиях регулярного запуска однотипных задач дедупликации. [228] [0138] Пример пользовательского запроса в формате Json, получаемый средой анализа: [229] [230] [0139] В частном варианте реализации этап (106) дополнительно содержит сопоставление пользовательских ограничений с данными статистики работоспособности СХД. Целью данного подэтапа является определение области допустимых параметров симуляции, т.е. установление границ, в пределах которых система способна эффективно функционировать, не превышая установленных пользователем ограничений и сохраняя стабильность работы СХД. В рамках данного подэтапа создается набор допустимых комбинаций параметров дедупликации (размер блока дедупликации, уровень дедупликации, режим дедупликации и др.), которые соответствуют как требованиям пользователя, так и техническим возможностям СХД, а затем исключаются заведомо невыполнимые или неэффективные сценарии. [231] [0140] Например, если пользователь в запросе просил нагрузку на ресурсы СХД самим процессом дедупликации не более 30%, то симуляция дедупликации не будет осуществляться для сценариев, где нагрузка на ресурсы превышает указанное значение. Или если пользователь просил варианты блока дедупликации 8К и 16К, тогда из сценариев дедупликации будут исключены варианты для блока дедупликации 4К. [232] [0141] На этапе (107) осуществляют симуляцию дедупликации в указанной среде анализа путем применения к полученным цифровым отпечаткам различных сценариев дедупликации, при этом каждый сценарий дедупликации содержит уникальную комбинацию параметров дедупликации. [233] [0142] В частном варианте реализации к параметрам дедупликации относят, но не ограничиваются указанными примерами, по меньшей мере: [234] • размер блока дедупликации (фиксированный), [235] • порог идентификации дубликатов (минимальное количество совпадений для признания блока дубликатом), [236] • уровень дедупликации (локально (диск, хост) или глобально (весь кластер)), [237] • режим дедупликации (синхронная (inline) или асинхронная (post-process) дедупликация), [238] • ограничения на память (максимальный объем под хеш-таблицу). [239] [0143] Относительно параметра дедупликации «порог идентификации дубликатов» необходимо отметить следующее. Факт наличия совпадений цифровых отпечатков у блоков данных еще не означает мгновенно признание этих блоков дубликатами с их дальнейшей дедупликацией. [240] [0144] Например, если выявлено всего два дубликата одного блока - система можем счесть такую дедупликацию неэффективной, потому что накладные расходы на индексацию и поддержку могут превышать выгоду, полученную от дедупликации. Т.е. нужен некий порог числа повторений, когда система принимает решение - дедуплицировать. Например, по всем блокам данных, которые повторяются 5 и более раз система принимает решение о дедупликации. Что касается тех блоков данных, которые повторяются только 2, 3 или 4 раза, то по ним ведется статистика, но сами данные не дедуплицируются. [241] [0145] Важно подчеркнуть, что в указанной среде анализа выполняют множество итераций симуляций процесса дедупликации. Сервер симуляции дедупликации осуществляет серию вычислительных экспериментов с одной и той же базой цифровых отпечатков (хешей). Каждый эксперимент - это симуляция работы дедупликатора с уникальным набором параметров дедупликации, упомянутых ранее. [242] [0146] Количество таких экспериментов зависит от количества параметров дедупликации и количества значений, которые могут принимать эти параметры. [243] [0147] Допустим, у нас имеется k различных параметров дедупликации, причем каждый i-й параметр может принимать ровно m i различных значений. Тогда общее количество возможных комбинаций экспериментов выражается формулой: [244] [245] [0148] Либо количество возможных комбинаций экспериментов можно представить в виде произведения: [246] [247] где k - общее количество виртуальных параметров, [248] m i - количество возможных значений i-го параметра дедупликации. [249] [0149] Рассмотрим случай с четырьмя виртуальными параметрами: [250] 1) размер блока дедупликации (n=1) принимает пять значений: (4 KB, 8 KB, 16 KB, 32 KB, 64 KB), следовательно, m l =5, [251] 2) уровень дедупликации (n=2) принимает два значения: (кластер, диск), значит, m 2 =2, [252] 3) режим дедупликации (n=3) тоже принимает два значения: (in-line,post-process), т.е. m 3 =2, [253] 4) ограничения по ресурсам (n=4) принимают три значения: (low,medium,high), m 4 =3. [254] [0150] Тогда общее количество возможных комбинаций экспериментов составит: [255] N=m 1 ×m 2 ×m 3 ×m 4 =5×2×2×3=60. [256] [0151] В результате осуществления этапа (107) симуляции дедупликации получают данные, например, в виде таблицы с десятками прогнозов: для каждой комбинации параметров известна ожидаемая экономия емкости хранилища (физический размер высвобождаемого места на СХД) и требуемые для этого ресурсы. Кроме того, для каждого результата симуляции дедупликации, полученного в ходе применения к цифровым отпечаткам различных сценариев дедупликации, вычисляют прогнозный коэффициент дедупликации и прогнозную оценку потребления вычислительных ресурсов. Пример результата симуляции представлен в Таблице 5. [257] [258] [0152] В частном варианте реализации для ускорения симуляции дедупликации система предварительно группирует идентичные цифровые отпечатки (хеши), что позволяет оценить количество дубликатов без многократного перебора: [259] • сортировка массива цифровых отпечатков (хешей) (O(n log n)), [260] • сканирование с подсчетом повторений. [261] [0153] При симуляции дедупликации основной задачей является выявление и обработка дублирующих данных. Группировка идентичных цифровых отпечатков (хешей) позволяет заменить многократную обработку большого количества одинаковых объектов обработкой единственного представителя группы с соответствующим счетчиком частоты. Это радикально сокращает количество операций, необходимых для обработки данных. [262] [0154] Группировка цифровых отпечатков (хешей) облегчает быстрый поиск уникальных элементов. Вместо перебора всех имеющихся цифровых отпечатков (хешей) достаточно проверить наличие нового элемента в предварительно созданных группах. Это значительно ускоряет процессы сортировки и сравнения данных. [263] [0155] Объединяя идентичные цифровые отпечатки (хеши) в группы, происходит уменьшение объема промежуточных данных, используемых в процессе симуляции. Хранится не каждая копия цифрового отпечатка (хеша) отдельно, а лишь представитель группы вместе с информацией о количестве экземпляров. Это снижает требования к объему оперативной памяти и другим вычислительным ресурсам. [264] [0156] На этапе (108) определяют оптимальные параметры дедупликации путем анализа полученных результатов симуляции с учетом статистики динамической работоспособности СХД и пользовательского запроса. [265] [0157] На основании результатов множества итераций симуляции (этап 107), данных статистики работоспособности (этап 101) и пользовательского запроса (этап 106) система определяет оптимальный набор параметров дедупликации, обеспечивающий целевое соотношение между прогнозным коэффициентом дедупликации и прогнозной оценкой потребления ресурсов. [266] [0158] В предпочтительном примере реализации для поиска оптимальных параметров дедупликации используют алгоритмы машинного обучения и искусственного интеллекта. Поиск оптимальных параметров дедупликации традиционно являлся сложной задачей, требующей большого количества итерационных тестов и ручной настройки. Машинное обучение позволяет автоматизировать этот процесс, значительно сократив время и усилия, необходимые для нахождения лучших настроек. Моделирование поведения СХД и предсказание последствий тех или иных конфигураций стало возможным благодаря применению специализированных алгоритмов. [267] [0159] В заявленном решении среда анализа, отвечающая за сопоставление пользовательских ограничений и статистики работоспособности СХД, дополняется компонентами машинного обучения. Эти компоненты включают предиктивные модели, способные спрогнозировать поведение системы при различных наборах параметров дедупликации. [268] [0160] Среди алгоритмов, применяемых в заявленном решении, можно выделить: [269] • Деревья решений и ансамблевые методы (Random Forest, Gradient Boosting), отлично справляющиеся с классификацией и регрессией, помогая выявить корреляции между параметрами дедупликации и результатами их применения; [270] • Нейронные сети глубокого обучения, использующиеся для сложных нелинейных зависимостей, особенно полезны при обработке больших массивов исторических данных и построении высокоточных прогностических моделей; [271] • Алгоритмы кластеризации (K-means, DBSCAN), которые помогают группировать схожие наборы данных и предлагать аналогичные стратегии оптимизации для каждой группы. [272] [0161] Работа алгоритмов машинного обучения организована следующим образом: [273] 1. Сбор и подготовка данных: исторические сведения о прошлых процессах дедупликации, статистика производительности СХД и пользовательские предпочтения формируют обучающую выборку. [274] 2. Предварительная обработка: нормализация признаков, удаление шумов и заполнение пропущенных значений. [275] 3. Обучение моделей: на подготовленных данных тренируются различные модели, выбирается та, которая показывает лучшие результаты по критериям точности и интерпретируемости. [276] 4. Прогнозирование: готовые модели применяются для предсказания эффективности новых конфигураций параметров дедупликации. [277] 5. Оптимизация: на основе прогнозов определяется набор параметров, максимально соответствующий установленным пользователем ограничениям и целям. [278] [0162] Таким образом, применение алгоритмов машинного обучения и искусственного интеллекта в заявленном решении обеспечивает принципиально новый уровень автоматизации и интеллектуализации процесса поиска оптимальных параметров дедупликации. Это позволяет достигать высочайшей степени соответствия между техническими возможностями СХД и индивидуальными требованиями пользователей, открывая путь к созданию интеллектуальных и самооптимизирующихся систем хранения следующего поколения. [279] [0163] Рассмотрим конкретные примеры определения оптимальных параметров дедупликации путем анализа результатов симуляции, представленные в Таблице 5. [280] [0164] Конфигурация оптимальных параметров №1 (Максимальная экономия, ресурсы не ограничены). [281] Пользователь требует максимального сжатия данных. Система выбирает сценарий итерации С (4 КБ, уровень «Кластер») с коэффициентом 15:1. В отчете указывается прогноз: требуется 32 ГБ оперативной памяти и увеличение нагрузка на процессор (CPU load) на 25%. [282] [0165] Конфигурация оптимальных параметров №2 (Баланс, ресурсы ограничены). [283] Статистика СХД (этап 101) показывает, что доступно не более 8 ГБ свободной RAM и запас CPU 15%. Система исключает сценарий итерации С и В как ресурсоемкие, сравнивает А (3:1, низкая нагрузка) и D (7:1, средняя нагрузка). С учетом наличия 8 ГБ RAM выбирается сценарий итерации D (CDC, avg 16 КБ, уровень «Хост»), как обеспечивающий коэффициент 7:1 в рамках доступных ресурсов. [284] [0166] Конфигурация оптимальных параметров №3 (Избегание сложности). [285] Симуляция показывает, что переход от фиксированного размера блока 16 КБ к переменному чанкингу дает прирост коэффициента с 6:1 до 7:1, но требует изменения архитектуры дедупликации. Система формирует рекомендацию с двумя вариантами, позволяя пользователю выбрать между простотой и дополнительной экономией. [286] [0167] Сценарий 4 (Автоматическая оптимизация). [287] Система применяет алгоритм многокритериальной оптимизации (например, на основе метода Парето) для поиска параметров, максимизирующих коэффициент дедупликации при соблюдении ограничений на потребление ресурсов. Результат представляется в виде ранжированного списка конфигураций. [288] [0168] В частном варианте осуществления этап (108) определения оптимальных параметров дедупликации дополнительно содержит ранжирование результатов симуляции дедупликации по соответствию установленным критериям эффективности, включающим по меньшей мере коэффициент дедупликации, потребление ресурсов, время выполнения. [289] [0169] В процессе динамического определения оптимальных параметров дедупликации данных возможна ситуация, когда система оказывается неспособной удовлетворить пользовательский запрос вследствие невозможности одновременного соблюдения всех предъявленных требований. Такая невозможность обусловлена физическими или техническими ограничениями СХД, недостаточностью доступных ресурсов или конфликтующими условиями пользовательского запроса. [290] [0170] Примером подобной ситуации служит случай, когда пользователь устанавливает высокие требования к одному или нескольким параметрам дедупликации (например, высокий коэффициент дедупликации, минимальные временные задержки, низкие затраты ресурсов), однако физическая структура СХД, текущие рабочие нагрузки или специфика хранимых данных делают выполнение этих требований невозможным. [291] [0171] В подобных ситуациях система работает следующим образом. [292] [0172] На этапе (108) анализа полученных результатов симуляции с учетом статистики динамической работоспособности СХД и пользовательского запроса дополнительно: [293] • проводится оценка текущих возможностей СХД и ресурсов, доступных для выполнения запроса, [294] • проверяется совместимость пользовательских требований с возможностями системы, [295] • осуществляют идентификацию достижимых компромиссов: [296] определяют ближайшие возможные параметры дедупликации, которые хотя и не полностью соответствуют пользовательскому запросу, но максимально приближены к нему, [297] формулируют альтернативные варианты, отражающие баланс между качеством результата и реализуемостью. [298] [0173] Таким образом, система предлагает пользователю один или несколько вариантов, среди которых: [299] • конфигурация, обеспечивающая максимально возможный параметр дедупликации (например, коэффициент дедупликации), достижимый при текущих возможностях СХД. [300] • конфигурация, максимально соответствующая ресурсам, указанным в пользовательском запросе, даже если это приведет к некоторому ухудшению параметра дедупликации. [301] [0174] Рассмотрим конкретный пример, иллюстрирующий случай, когда не существует оптимальных параметров дедупликации, удовлетворяющих пользовательскому запросу. [302] [0175] Пользователь запрашивает коэффициент дедупликации 10:1, ограничивая при этом использование ресурсов: [303] • не более 4 ГБ RAM, [304] • не более 15% загрузки CPU. [305] [0176] Однако проведенная симуляция показала, что СХД физически не способна обеспечить коэффициент дедупликации выше 8:1. Кроме того, указанного объема ресурсов (4 ГБ RAM и 15% CPU) недостаточно для достижения даже коэффициента 8:1. [306] [0177] В этом случае система предлагает пользователю следующие рекомендации: [307] [0178] Вариант 1: Использовать максимально возможный коэффициент дедупликации 8:1, увеличив при этом ресурсы (например, до 8 ГБ RAM и 25% CPU). [308] [0179] Вариант 2: Согласиться с коэффициентом дедупликации 6:1, оставаясь в рамках первоначально установленных ограничений по ресурсам. [309] [0180] Таким образом, система проявляет гибкость и адаптивность, предлагая пользователю реалистичные и практические решения, несмотря на отсутствие идеальной конфигурации, полностью соответствующей первоначальному запросу. [310] [0181] Данный подход обеспечивает прозрачность взаимодействия с пользователем и гарантирует достижение максимального эффекта в рамках физических и технических ограничений СХД. Заявленное решение демонстрирует свою адаптируемость и ориентированность на удовлетворение запросов пользователя в любых обстоятельствах. [311] [0182] В альтернативном исполнении изобретения заявленный способ (100) дополнительно содержит этап, на котором осуществляют дедупликацию данных на основании полученных оптимальных параметров дедупликации. [312] [0183] На Фиг. 2 представлена компонентная схема системы, реализующей заявляемый способ динамического определения оптимальных параметров дедупликации данных в распределенной системе хранения. [313] [0184] Система включает в себя, с одной стороны, продуктивный кластер СХД, состоящий из множества хостов (узлов), а с другой стороны - изолированный сервер симуляции (аналитический сервер), предназначенный для проведения симуляции дедупликации на основе собранных цифровых отпечатков (хешей) и метаданных. [314] [0185] Кластер СХД содержит по меньшей мере один хост (узел), при этом каждый хост включает: [315] • одно или несколько хранилищ данных (например, дисков или логических томов), [316] • набор блоков данных фиксированного минимального размера (например, 4 КБ), [317] • агент сбора данных для анализа дедупликации. [318] [0186] Указанный агент реализован в виде программного модуля, функционирующего на каждом хосте кластера, и предназначен для выполнения следующих операций: [319] 1. Разбиение данных на блоки минимальной гранулярности (определенной на этапе 102); [320] 2. Вычисление цифровых отпечатков (хешей) для каждого блока данных; [321] 3. Формирование метаданных, содержащих, по меньшей мере: [322] • идентификатор хоста, [323] • идентификатор хранилища, [324] • логическое или физическое расположение блока, [325] • дополнительные атрибуты (временные метки, частота доступа и др.); [326] 4. Передача сформированного набора цифровых отпечатков (хешей) и метаданных в изолированную среду анализа. [327] [0187] Передача осуществляется по защищенному каналу связи с минимальным влиянием на производственную нагрузку СХД, что обеспечивает соблюдение SLA. [328] [0188] Таким образом, на стороне кластера формируется полное множество цифровых отпечатков (хешей), соответствующее всем блокам данных минимальной гранулярности. [329] [0189] Сформированные на узлах кластера цифровые отпечатки (хеши) и метаданные передаются на сервер симуляции дедупликации, где размещается специализированное хранилище данных и метаданных. [330] [0190] Указанное хранилище представляет собой логически изолированную систему, не содержащую исходных пользовательских данных, а оперирующую исключительно их производными (цифровыми отпечатками или хешами), что: [331] • снижает требования к безопасности; [332] • уменьшает объем хранимых данных; [333] • позволяет проводить многократные вычислительные эксперименты без нагрузки на продуктивную СХД. [334] [0191] Сервер симуляции дедупликации включает следующие функциональные модули: [335] 1. Модуль хранения данных и метаданных, обеспечивающий: [336] • прием и агрегацию данных со всех хостов; [337] • логическую консолидацию на уровне кластера; [338] • возможность выборки по различным признакам (хост, диск, временной интервал и т.д.). [339] 2. Анализатор (модуль симуляции дедупликации), реализующий ключевую функциональность изобретения. [340] [0192] Анализатор выполняет симуляцию различных конфигураций дедупликации без доступа к исходным данным, используя исключительно цифровые отпечатки (хеши). В рамках симуляции варьируются следующие параметры: [341] • размер блока дедупликации, [342] • уровень дедупликации (например, диск, хост, кластер), [343] • политика дедупликации (полная или частичная, например, по частоте встречаемости блоков), [344] • ограничения по вычислительным ресурсам (CPU, RAM, I/O), [345] • режим дедупликации (онлайн или офлайн дедупликация). [346] [0193] Симуляция выполняется путем логических операций над цифровыми отпечатками (хешами), включая: [347] • агрегацию хешей в блоки большего размера (путем "склейки"), [348] • определение уникальных и повторяющихся блоков, [349] • расчет коэффициента дедупликации, [350] • оценку количества операций и объема метаданных, [351] • прогноз потребления ресурсов. [352] [0194] На вход анализатора дополнительно поступает пользовательский запрос, задающий целевые критерии оптимизации, например: [353] • максимизация коэффициента дедупликации, [354] • ограничение по CPU или latency, [355] • баланс между скоростью и эффективностью. [356] [0195] На основании данного запроса анализатор формирует множество сценариев дедупликации и выполняет их последовательный или параллельный расчет. [357] [0196] По результатам симуляции формируется выходной набор данных, включающий: [358] • оптимальную конфигурацию дедупликации (размер блока, уровень, режим), [359] • прогнозируемый коэффициент дедупликации, [360] • оценку потребления ресурсов, [361] • дополнительные аналитические показатели (распределение блоков, частота дубликатов и т.д.). [362] [0197] Указанный результат может быть представлен, например, в виде статистического распределения (гистограммы) и передан: [363] • оператору системы для принятия решения, [364] • либо автоматически применен в конфигурации СХД (в частных вариантах реализации). [365] [0198] Реализация описанной архитектуры обеспечивает достижение следующих результатов: [366] • определение оптимальных параметров дедупликации для конкретного набора данных и конкретной СХД, [367] • отсутствие влияния на продуктивную систему при проведении анализа, [368] • высокая точность симуляции за счет использования полного множества цифровых отпечатков (хешей), [369] • снижение вычислительных затрат за счет работы с компактным представлением данных; [370] • возможность многократного тестирования различных конфигураций без повторного сбора данных. [371] [0199] Таким образом, предложенная система реализует изолированную среду симуляции дедупликации, позволяющую выполнять параметрическое проектирование механизма дедупликации для конкретной СХД на основе ее реальных данных и эксплуатационных характеристик. [372] [0200] На Фиг. 3 представлен общий вид вычислительного устройства (200), на базе которого может быть реализовано устройство для динамического определения оптимальных параметров дедупликации данных, обеспечивающее реализацию способа динамического определения оптимальных параметров дедупликации данных. [373] [0201] В общем случае вычислительное устройство (200) содержит объединенные общей шиной информационного обмена один или несколько процессоров (201), средства памяти, такие как ОЗУ (202) и ПЗУ (203), интерфейсы ввода/вывода (204), устройства ввода/вывода (205), и средство для сетевого взаимодействия (206). [374] [0202] Процессор (201) (или несколько процессоров, многоядерный процессор) могут выбираться из ассортимента устройств, широко применяемых в текущее время, например, компаний Intel™, AMD™, Apple™, Samsung Exynos™, MediaTEK™, Qualcomm Snapdragon™ и т.п. В качестве процессора (201) может также применяться графический процессор, например, Nvidia, AMD, Graphcore и пр. Процессор (201) имеет иерархию из нескольких уровней кэша (LI, L2, L3). [375] [0203] ОЗУ (202) представляет собой оперативную память и предназначено для хранения исполняемых процессором (201) машиночитаемых инструкций для выполнения необходимых операций по логической обработке данных. ОЗУ (202), как правило, содержит исполняемые инструкции операционной системы и соответствующих программных компонент (приложения, программные модули и т.п.). [376] [0204] ПЗУ (203) представляет собой одно или более устройств постоянного хранения данных, например, жесткий диск (HDD), твердотельный накопитель данных (SSD), флэш-память (EEPROM, NAND и т.п.), оптические носители информации (CD-R/RW, DVD-R/RW, Blu-Ray Disc, MD) и др. [377] [0205] Для организации работы компонентов устройства (200) и организации работы внешних подключаемых устройств применяются различные виды интерфейсов В/В (204). Выбор соответствующих интерфейсов зависит от конкретного исполнения вычислительного устройства, которые могут представлять собой, не ограничиваясь: PCI, AGP, PS/2, IrDa, Fire Wire, LPT, COM, SATA, IDE, Lightning, USB (2.0, 3.0, 3.1, micro, mini, type C), TRS/Audio jack (2.5, 3.5, 6.35), HDMI, DVI, VGA, Display Port, RJ45, RS232 и т.п. [378] [0206] Для обеспечения взаимодействия пользователя с вычислительным устройством (200) применяются различные устройства (205) В/В информации, например, клавиатура, дисплей (монитор), сенсорный дисплей, тач-пад, джойстик, манипулятор мышь, световое перо, стилус, сенсорная панель, трекбол, динамики, микрофон, средства дополненной реальности, оптические сенсоры, планшет, световые индикаторы, проектор, камера, средства биометрической идентификации (сканер сетчатки глаза, сканер отпечатков пальцев, модуль распознавания голоса) и т.п. [379] [0207] Средство сетевого взаимодействия (206) обеспечивает передачу данных устройством (200) посредством внутренней или внешней вычислительной сети, например, Интранет, Интернет, ЛВС и т.п. В качестве одного или более средств (206) может использоваться, но не ограничиваться: Ethernet карта, GSM модем, GPRS модем, LTE модем, 5G модем, модуль спутниковой связи, NFC модуль, Bluetooth и/или BLE модуль, Wi-Fi модуль и др. [380] [0208] Дополнительно в составе устройства (200) могут также применяться средства спутниковой навигации, например, GPS, ГЛОНАСС, BeiDou, Galileo. [381] [0209] Представленные материалы заявки раскрывают предпочтительные примеры реализации технического решения и не должны трактоваться как ограничивающие иные, частные примеры его воплощения, не выходящие за пределы испрашиваемой правовой охраны, которые являются очевидными для специалистов соответствующей области техники. [382] [0210] Источники информации: [383] [1] DedupBench. Benchmarking Chunking Techniques for Data Deduplication / GitHub. https://github.com/UWASL/dedup-bench/blob/main/README.md [384] [2] Liu A., Baba A., Udayashankar S., Al-Kiswany S. «Dedupbench: A benchmarking tool for data chunking techniques». In 2023 IEEE Canadian Conference on Electrical and Computer Engineering (CCECE) (pp.469-474). (2023, September). https://sreeharshau.github.io/papers/DedupBench_CCECE23.pdf [385] [3] S. Udayashankar, A. Baba, S. Al-Kiswany ((Accelerating Data Chunking in Deduplication Systems using Vector Instructions», 26 Jan 2026, https://arxiv.org/html/2508.05797v2 [386] [4] Qirui Yang, Runyu Jin, Ming Zhao «SmartDedup: Optimizing Deduplication for Resource-constrained Devices», USENIX АТС 19, https://www.usenix.org/system/files/atcl9-yang-qirui.pdf [387] [5] Fingerprint (computing) - Wikipedia. https://en.wikipedia.org/wiki/Fingerprint_(computing) [388] [6] Quinlan, S., Dorward, S. Venti: A New Approach to Archival Storage. FAST, 2002. https://doc.cat-v.org/plan_9/4th_edition/papers/venti/ [389] [7] Hash Collision Probabilities / Preshing on Programming, https://preshing.com/20110504/hash-collision-probabilities
Формула 1. Способ динамического определения оптимальных параметров дедупликации данных, выполняемый по меньшей мере одним процессором, содержащий этапы, на которых: a) собирают параметры системы хранения данных (СХД), включающие по меньшей мере статистику динамической работоспособности СХД, с заданной периодичностью, при этом нагрузка на СХД в процессе сбора параметров не превышает порогового значения, b) определяют минимальный размер блока СХД на основе собранных параметров СХД, c) задают гранулярность блока дедупликации на основе минимального размера блока СХД, d) преобразуют данные для всего кластера СХД путем вычисления цифрового отпечатка для каждого блока дедупликации заданной гранулярности, при этом размер цифрового отпечатка определяется исходя из объема данных и гранулярности блока дедупликации с учетом вероятности коллизий, e) осуществляют передачу цифровых отпечатков в среду анализа, изолированную от указанной СХД, f) получают пользовательский запрос, содержащий по меньшей мере одно из: желаемый коэффициент дедупликации, время дедупликации и количество затраченных ресурсов на дедупликацию, g) осуществляют симуляцию дедупликации в указанной среде анализа путем применения к полученным цифровым отпечаткам различных сценариев дедупликации, при этом каждый сценарий дедупликации содержит уникальную комбинацию параметров дедупликации, h) определяют оптимальные параметры дедупликации путем анализа полученных результатов симуляции с учетом статистики динамической работоспособности СХД и пользовательского запроса. 2. Способ по п. 1, характеризующийся тем, что заданная периодичность сбора параметров СХД определяется по меньшей мере одним из: • техническими характеристиками СХД, • интенсивностью обновления данных в СХД, • допустимой нагрузкой на СХД. 3. Способ по п. 1, характеризующийся тем, что пороговое значение нагрузки на СХД определяется соглашением об уровне обслуживания (SLA) сервисов. 4. Способ по п. 1, характеризующийся тем, что на этапе d) дополнительно генерируют метаданные, указывающие на местоположение цифровых отпечатков. 5. Способ по п. 1, характеризующийся тем, что этап преобразования данных дополнительно включает шифрование цифровых отпечатков с одноразовым ключом, который удаляется после завершения шифрования цифровых отпечатков. 6. Способ по п. 1, характеризующийся тем, что параметры дедупликации включают по меньшей мере размер блока дедупликации, уровень дедупликации, режим дедупликации, ограничения по ресурсам. 7. Способ по п. 1, характеризующийся тем, что для каждого результата симуляции дедупликации, полученного в ходе применения к цифровым отпечаткам различных сценариев дедупликации, вычисляют прогнозный коэффициент дедупликации и прогнозную оценку потребления вычислительных ресурсов. 8. Способ по п. 1, характеризующийся тем, что этап определения оптимальных параметров дедупликации дополнительно содержит ранжирование результатов симуляции дедупликации по соответствию установленным критериям эффективности, включающим, по меньшей мере, коэффициент дедупликации, потребление ресурсов, время выполнения. 9. Способ по п. 1, характеризующийся тем, что дополнительно содержит этап, на котором осуществляют дедупликацию данных на основании полученных оптимальных параметров дедупликации. 10. Устройство для динамического определения оптимальных параметров дедупликации данных, содержащее по меньшей мере один процессор, по меньшей мере одну память, связанную с процессором и содержащую машиночитаемые инструкции, которые при их выполнении по меньшей мере одним процессором обеспечивают выполнение способа по любому из пп. 1-9.
Комментарии
Обсуждайте статью, отвечайте и оценивайте комментарии. Вход — через ваш Яндекс ID.
Загружаем обсуждение…