Практикум по расчёту хранилища

Ceph после потери узла: ёмкость, копии и запас

Рассчитайте место для данных после восстановления копий, сравните три и четыре узла и проверьте пределы каждого OSD. Числа — условия учебного примера.

База → расчёт и приёмка40 минут5 модулей8 вопросов
После курса

Что вы сможете сделать

  1. Считать ёмкость после заданного отказа, а не только сумму дисков.
  2. Разделять место для копий, число подходящих узлов и пороги OSD.
  3. Задавать проверку восстановления вместе с нагрузкой приложения.
Модуль 1 из 5

Сначала задайте объём и единицы

Отделите объём данных от места для копий и прочих расходов.

  • Рассмотрим один реплицируемый пул без сжатия. D включает текущие данные, ожидаемый рост и уникальные данные снимков. H учитывает прочие расходы на оставшихся узлах. Другие пулы в примере отсутствуют; при их появлении нужен общий бюджет.

  • Состав примера — четыре узла, в каждом шесть OSD по 4 ТБ. Всего 24 OSD и 96 ТБ сырой ёмкости. ТБ здесь означает 10¹² байт; это не ТиБ. Загрузочные диски в эти числа не входят.

  • SIZE и RAW USED показывают разные стороны сырой ёмкости Ceph. Число купленных терабайтов нельзя сразу записать как место для данных приложения.

Модуль 2 из 5

Посчитайте состояние после восстановления

Из бюджета уходит весь отказавший узел, а не один его диск.

  • Для проверки любого одиночного отказа вычтите из общей ёмкости самый ёмкий узел. На оставшемся месте должны поместиться r полных копий D и расходы H. Неравенство rD + H ≤ p(ΣCᵢ − max Cᵢ) проверяет общую сумму, но не гарантирует размещение по каждому OSD.

  • В нашем примере остаток — 3×24=72 ТБ. Проект разрешает занять до 75% остатка, то есть 54 ТБ. Из них 6 ТБ отведено под H; под три копии данных остаётся 48 ТБ. Значит, D не больше 16 ТБ.

  • Если сейчас данных 12 ТБ, рост до 16 ТБ уже использует весь рассчитанный бюджет D. При D=18 ТБ три копии и H занимают 60 ТБ, что превышает предел 54 ТБ. Эти значения относятся к восстановленным копиям, а не к мгновенному расходу в момент аварии.

Модуль 3 из 5

Проверьте, куда попадут копии

Достаточная сумма места не создаёт недостающий сервер.

  • При size=3 и размещении по разным host три узла после потери одного превращаются в два. Восстановить три копии на разных серверах уже некуда, даже если на оставшихся дисках много свободного места. Это не равнозначно немедленной потере всех данных.

  • В четырёхузловом примере после отказа остаются три подходящих сервера. Это снимает препятствие по числу мест, но ещё не подтверждает распределение по конкретным OSD. Диски вне нужного root или класса не добавляют ёмкость выбранному правилу.

  • Size описывает целевое число копий, min_size — нижний порог для операций. Сохранение доступа в деградированном состоянии не означает, что трёхкопийная защита уже восстановилась.

Модуль 4 из 5

Смотрите на OSD, а не только на среднее

Порог отдельного устройства может остановить перераспределение.

  • MAX AVAIL оценивает место для пула при текущей защите и размещении. Это не обещание сохранить тот же объём после отказа: доступные устройства и их заполнение изменятся.

  • OSD_BACKFILLFULL относится к конкретным OSD и учитывает также намеченный перенос. Среднее заполнение 60% не опровергает эту тревогу на одном из получателей. Проверьте целевые устройства и их фактические пороги.

Модуль 5 из 5

Свяжите расчёт с оборудованием и проверкой

Место для копий и время их восстановления — разные условия.

  • Кроме ведомости OSD нужны CPU, RAM, контроллеры, сетевая часть, загрузка и питание узлов. Ресурсы оценивают для рабочей нагрузки одновременно с восстановлением; спокойный расход RAM не является пиковым.

  • На согласованном стенде сохраните исходную карту, объёмы, заполнение OSD, пороги и показатели приложения. Проверьте заданный отказ, продвижение восстановления, задержки и ошибки. После возврата подтвердите нужное число копий и повторите операции приложения. Это план опыта, не выполненное испытание.

Финишная прямая

Проверьте инженерное мышление

Вопросы проверяют не память на аббревиатуры, а умение не делать лишних выводов.

01В учебном составе четыре узла, по шесть OSD ёмкостью 4 ТБ на каждом. Какова суммарная сырая ёмкость этих OSD до расхода на защиту?
02После отказа осталось 72 ТБ. По условию занять можно 75%, прочие расходы H — 6 ТБ, нужны три копии. Каков предел данных D с учётом роста?
03При прежних 72 ТБ, p=0,75, H=6 ТБ и трёх копиях объём D вырос до 18 ТБ. Как оценить расход после восстановления копий?
04В системе из трёх подходящих host потерян один. Size=3, копии должны быть на разных host. Что ограничивает восстановление трёх копий?
05Что означает MAX AVAIL в выводе ceph df для конкретного пула?
06Среднее заполнение кластера — 60%, но получатель данных отмечен OSD_BACKFILLFULL. Какой вывод верен?
07К 24 OSD из примера добавили отдельные загрузочные SSD, не включённые в пул. Как изменился исходный бюджет ёмкости OSD?
08Как проверить ёмкость, размещение и задержку приложения для заданного отказа, а не только подтвердить наличие дисков?

Следующий шаг

Сформулируйте задачу и уточните требования к своей системе.

Подготовить состав проекта

Откроется черновик вопроса. Отправьте его, когда будете готовы.

Проверяемая база

Источники курса

Ссылки приведены один раз для всего курса, чтобы не мешать чтению каждого тезиса.

  • Официальная документация

    Pools

    Ceph Foundation · Ceph Squid documentation, branch squid

    Повторная сверка 20.09.2026. Проверены определения пула, size/min_size и Setting the Number of RADOS Object Replicas. Общая фраза введения про число переживаемых отказов не использована как универсальное правило.

    Открыть первоисточник
  • Официальная документация

    CRUSH Maps

    Ceph Foundation · Ceph Squid documentation, branch squid

    Повторная сверка 20.09.2026. Проверены CRUSH structure, Devices и Creating a rule for a replicated pool: root, host/rack, device class. Отказоустойчивость проверяется по реальной топологии.

    Открыть первоисточник
  • Официальная документация

    Ceph Squid — Monitoring a Cluster: usage statistics

    Ceph Foundation / Ceph contributors · Ceph Squid; версия документации в пути URL

    Проверены определения SIZE, RAW USED и MAX AVAIL. Обобщающие примечания о USED противоречат описанию столбца; это отмечено отдельно, универсальный пересказ не принят.

    Открыть первоисточник
  • Официальная документация

    Monitoring OSDs and PGs

    Ceph Foundation · Ceph Squid documentation, branch squid

    Повторная сверка 20.09.2026. Проверены Peering, Active, Clean, Degraded и условия восстановления. Не переносим состояние одной PG на готовность всего приложения.

    Открыть первоисточник
  • Официальная документация

    Ceph Squid — Health checks: fullness and recovery

    Ceph Foundation / Ceph contributors · Ceph Squid; версия документации в пути URL

    Проверены OSD_BACKFILLFULL, OSD_FULL, PG_BACKFILL_FULL и PG_RECOVERY_FULL. Численные пороги конкретного кластера не предполагаются.

    Открыть первоисточник
  • Официальная документация

    Ceph Squid — Hardware recommendations

    Ceph Foundation / Ceph contributors · Ceph Squid; версия документации в пути URL

    Прочитаны CPU, RAM, Additional Considerations и Failure Domains. В этом пакете нет универсального числа ядер, процента памяти или обещания времени восстановления.

    Открыть первоисточник
Сообщить об ошибке

Опишите проблему — постараемся исправить как можно скорее.

Спасибо!

Получили ваше сообщение.
Подтвердите действие