Что нужно знать о стирающем коде (erasure code) для выбора системы хранения данных

Что нужно знать о стирающем коде (erasure code) для выбора системы хранения данных

В эпоху больших данных компании используют больше информации, чем когда-либо. Однако просто хранить данные недостаточно — нужно хранить эффективно, надежно и экономично. В этом случае стирающих год или помехоустойчивое кодирование (Erasure Coding) может решить задачу. Используемое распределенными системами хранения данных такими как Ceph, стирающее кодирование предлагает более рациональный способ защиты данных при оптимизации использования хранилища. Далее мы подробно рассмотрим, что это такое, как работает и когда следует использовать вместо erasure coding вместо традиционной репликации.

Репликация против стирающего кодирования: в чем разница?

По умолчанию многие системы хранения данных, включая Ceph, используют репликацию для защиты данных. Репликация проста: каждый фрагмент данных дублируется на нескольких дисках (часто 3 копии). Этот метод быстр и надежен, особенно для небольших файлов или высокопроизводительных сред — но он потребляет много места для хранения.

Erasure coding (EC), с другой стороны, использует более эффективный подход. Вместо копирования целых наборов данных оно разбивает их на меньшие фрагменты — комбинацию фрагментов данных и фрагментов четности (используемых для восстановления). Эти фрагменты распределяются по разным дискам. Если несколько дисков выходят из строя, отсутствующие данные могут быть восстановлены с использованием информации о четности.
В таблице ниже сравниваются репликация и кодирование с точки зрения эффективности хранения, метода восстановления и идеальных случаев использования:

Сравнение хранения при репликации и помехоустойчивом кодировании


Как работает помехоустойчивое кодирование в Ceph

Стирающее кодирование в Ceph настраивается через профили, которые определяют, как данные разделяются и защищаются. Каждый профиль EC определяется двумя параметрами:
• k – Количество фрагментов данных
• m – Количество фрагментов кодирования (четности)

Система создает в общей сложности k + m фрагментов, которые распределяются по кластеру хранения. Ceph может выдержать до m отказов без потери данных.
В таблице ниже представлены наиболее часто используемые профили помехоустойчивого кодирования и сравниваются с точки зрения отказоустойчивости и накладных расходов на хранение:

Наиболее распространенные профили помехоустойчивого кодирования для хранения

Пример: Профиль 3+2 разбивает данные на 3 фрагмента и добавляет 2 фрагмента четности. Любые 3 из 5 фрагментов могут восстановить исходные данные, даже если 2 фрагмента утеряны.

Выбор правильного профиля EC

Выбор зависит от вашей среды и целей:
• Меньшее k, большее m (например, 3+2): Большая избыточность, идеально подходит для небольших кластеров или там, где устойчивость является главным приоритетом.
• Большее k, меньшее m (например, 10+4): Лучшая эффективность хранения, отлично подходит для крупномасштабных развертываний, где приоритетом является экономия средств.

Помехоустойчивое кодирование предлагает несколько преимуществ, которые делают его мощным выбором для современных систем хранения, включая:
• Эффективное хранение: Меньшие накладные расходы, чем при репликации — хранение большего объема данных при том же дисковом пространстве.
• Высокая отказоустойчивость: Способность справляться с множественными отказами дисков без потери данных.
• Масштабируемость: Подходит для больших кластеров и облачных развертываний.
• Настраиваемая избыточность: Возможность настройки соотношения k+m в соответствии с вашими требованиями к долговечности и бюджетом.

Когда имеет смысл использовать помехоустойчивое кодирование

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

Сравнение репликации и помехоустойчивого кодирования в хранении


Сценарии, наиболее подходящие для репликации

Помехоустойчивое кодирование требует больше CPU и операций ввода-вывода во время записи и восстановления, поэтому оно может не быть лучшим выбором для:
• Баз данных или виртуальных машин (например, Ceph RBD)
• Интерактивных файловых систем с небольшими файлами (например, CephFS)
• Рабочих нагрузок с низкой задержкой и высокой пропускной способностью ввода-вывода
В этих случаях репликация обеспечивает лучшую производительность, несмотря на более высокую стоимость хранения.

Кодирование с удалением является эффективной стратегией для организаций, стремящихся оптимизировать эффективность хранения, долговечность и масштабируемость. В системе Ceph оно снижает накладные расходы на хранение путем разбиения данных на фрагменты с контролем четности, что позволяет восстанавливаться после сбоев без полного дублирования данных. Конфигурация типа 6+3 может выдержать до трех сбоев, что делает ее хорошо подходящей для холодного хранения и масштабных объектных данных.
Хотя кодирование с удалением обеспечивает значительную экономию средств и устойчивость, оно влечет за собой компромиссы в производительности, особенно для небольших или частых записей, и менее идеально подходит для чувствительных к задержкам приложений, таких как базы данных.

2560 1440 Egine Nalbandian
Start Typing