Архитектуры хранения

Пул Ceph с кодированием стираний

Определение

Пул Ceph с кодированием стираний — логический раздел для объектов, которые хранятся в виде фрагментов данных и защитных фрагментов, а не полных копий.

Также ищут: Ceph erasure-coded pool · EC-пул Ceph · erasure coding

Зачем это знать

Экономия места не подтверждает задержку приложения или доступность записи при отказе. Разделяйте расчёт фрагментов, доступ к данным и запас на эксплуатацию.

Доказательная часть

Что подтверждено

  1. При кодировании стираний k обозначает число фрагментов данных, m — число защитных фрагментов. В рассматриваемом профиле Reed–Solomon объект размещается как k+m фрагментов.

    Граница применимости: Ceph Squid: Erasure code, Glossary; Jerasure, k/m и reed_sol_van. Примеры не обобщаются на все плагины.

  2. Номинальный множитель расхода — (k+m)/k. Для k=4, m=2 объём 12 ТБ данных даёт 18 ТБ фрагментов. Здесь не учтены метаданные, прочие расходы, запас свободного места и состояние после отказа.

    Граница применимости: Ceph Squid: Erasure-coded pool overhead. Учебная арифметика без сжатия: 12×6/4=18; ТБ=10¹² байт. Это не обещание полезной ёмкости или SLA.

  3. В Octopus и более новых версиях Ceph восстановление EC возможно при наличии как минимум k фрагментов. Доступность операций чтения и записи определяется отдельно: min_size задаёт нижний порог активных фрагментов. Документация рекомендует min_size не меньше k+1.

    Граница применимости: Ceph Squid: Erasure-coded pool recovery и Pools: min_size. Рекомендация не гарантирует сохранность данных; число фрагментов не заменяет проверку состояния PG.

  4. Документация предупреждает о снижении производительности EC, особенно на HDD, при восстановлении и перераспределении данных. Номинальная экономия ёмкости не подтверждает скорость восстановления или задержки приложения.

    Граница применимости: Ceph Squid: Erasure-coded pool overhead. Последнее предложение — практическая граница вывода из формулы, не результат измерения кластера.

Перед спецификацией

Что проверить

  1. Зафиксируйте k, m, плагин и используемую редакцию Ceph.
  2. Разделите номинальный расход, прочие расходы и запас после заданного отказа.
  3. Проверьте min_size, состояние PG и работу приложения при отказе накопителя.
  4. Измерьте задержки и восстановление данных под рабочей нагрузкой.
Открытые основания

Первоисточники

  • Документация3
  • Официальная документация
    Ceph Squid — Erasure code Ceph Foundation / Ceph contributors · Документация Ceph ветки Squid; номер исправительного выпуска не закреплён. · проверено

    Проверены разделы о перезаписи, расходе ёмкости и восстановлении EC-пулов. Порог восстановления отличён от min_size и доступности операций чтения и записи.

    Утверждения: 01 · 02 · 03 · 04

  • Официальная документация
    Ceph Squid — Jerasure erasure code plugin Ceph Foundation / Ceph contributors · Документация Ceph ветки Squid; номер исправительного выпуска не закреплён. · проверено

    Проверены k, m, способ кодирования и crush-failure-domain. Примеры ограничены Reed–Solomon и одним фрагментом на выбранный домен.

    Утверждения: 01

  • Официальная документация
    Ceph Squid — Pools Ceph Foundation / Ceph contributors · Документация Ceph ветки Squid; номер исправительного выпуска не закреплён. · проверено

    Проверены разделы о правилах CRUSH, min_size и allow_ec_overwrites. Они описывают размещение фрагментов, порог операций и условие перезаписи объектов EC-пула.

    Утверждения: 03

Карта знаний

Связанные понятия

Из знания — в навык

Курсы по теме

Подтвердите действие