Пул Ceph с кодированием стираний
Определение
Пул Ceph с кодированием стираний — логический раздел для объектов, которые хранятся в виде фрагментов данных и защитных фрагментов, а не полных копий.
Также ищут: Ceph erasure-coded pool · EC-пул Ceph · erasure coding
Зачем это знать
Экономия места не подтверждает задержку приложения или доступность записи при отказе. Разделяйте расчёт фрагментов, доступ к данным и запас на эксплуатацию.
Карта понятия
Что подтверждено
При кодировании стираний k обозначает число фрагментов данных, m — число защитных фрагментов. В рассматриваемом профиле Reed–Solomon объект размещается как k+m фрагментов.
Граница применимости: Ceph Squid: Erasure code, Glossary; Jerasure, k/m и reed_sol_van. Примеры не обобщаются на все плагины.
Номинальный множитель расхода — (k+m)/k. Для k=4, m=2 объём 12 ТБ данных даёт 18 ТБ фрагментов. Здесь не учтены метаданные, прочие расходы, запас свободного места и состояние после отказа.
Граница применимости: Ceph Squid: Erasure-coded pool overhead. Учебная арифметика без сжатия: 12×6/4=18; ТБ=10¹² байт. Это не обещание полезной ёмкости или SLA.
В Octopus и более новых версиях Ceph восстановление EC возможно при наличии как минимум k фрагментов. Доступность операций чтения и записи определяется отдельно: min_size задаёт нижний порог активных фрагментов. Документация рекомендует min_size не меньше k+1.
Граница применимости: Ceph Squid: Erasure-coded pool recovery и Pools: min_size. Рекомендация не гарантирует сохранность данных; число фрагментов не заменяет проверку состояния PG.
Документация предупреждает о снижении производительности EC, особенно на HDD, при восстановлении и перераспределении данных. Номинальная экономия ёмкости не подтверждает скорость восстановления или задержки приложения.
Граница применимости: Ceph Squid: Erasure-coded pool overhead. Последнее предложение — практическая граница вывода из формулы, не результат измерения кластера.
Что проверить
- Зафиксируйте k, m, плагин и используемую редакцию Ceph.
- Разделите номинальный расход, прочие расходы и запас после заданного отказа.
- Проверьте min_size, состояние PG и работу приложения при отказе накопителя.
- Измерьте задержки и восстановление данных под рабочей нагрузкой.
Первоисточники
- Ceph Squid — Erasure code
Проверены разделы о перезаписи, расходе ёмкости и восстановлении EC-пулов. Порог восстановления отличён от min_size и доступности операций чтения и записи.
- Ceph Squid — Jerasure erasure code plugin
Проверены k, m, способ кодирования и crush-failure-domain. Примеры ограничены Reed–Solomon и одним фрагментом на выбранный домен.
Утверждения: 01
- Ceph Squid — Pools
Проверены разделы о правилах CRUSH, min_size и allow_ec_overwrites. Они описывают размещение фрагментов, порог операций и условие перезаписи объектов EC-пула.
Утверждения: 03