Практикум по выбору хранилища кластера
Хранилище Ceph: копии, области отказа и доступ к диску
Разберите путь от RBD-образа до мест хранения копий. Проверьте size, min_size, карту CRUSH и передачу права записи. Примеры опираются на документацию Ceph Squid и не заменяют испытание конкретного кластера.
Что вы сможете сделать
- Разделять блочный доступ, число копий и их физическое размещение.
- Проверять доступность и возможность восстановления после отказа сервера или стойки.
- Отличать блокировку RBD от согласованности данных приложения.
Что получает приложение
Способ доступа и размещение данных отвечают на разные вопросы.
RBD предоставляет блочное устройство, а его данные распределяются между OSD — службами хранения Ceph. Клиент использует модуль ядра или librbd. Блочный доступ и распределённое хранение совместимы: одно описывает интерфейс, другое — размещение данных.
Пул объединяет объекты логически. Для реплицируемого пула size=3 означает три копии каждого объекта вместе с первичной, а не исходник и три дополнительные копии.
Когда данные сохраняются, но ввод-вывод недоступен
Порог обслуживания запросов не равен желаемому числу копий.
При size=3 и min_size=2 штатная цель — три копии. С двумя копиями порог min_size выполнен, с одной — нет. Даже выполненный порог не подтверждает готовность PG и отсутствие других препятствий для доступа.
PG — группа размещения объектов. Active означает, что её данные в общем случае доступны для чтения и записи; clean — что требуемое число копий восстановлено. Active+degraded может допускать операции, но это ещё не восстановленная избыточность.
Снижение min_size до 1 не создаёт новую копию. Документация предупреждает о риске потери данных и рассматривает такой режим лишь как временную меру для отдельных аварий. В учебной проверке настройки защиты не меняем.
Сколько подходящих серверов осталось
Считайте не все диски вообще, а устройства, которые допускает правило.
Карта CRUSH задаёт иерархию оборудования. Уровень host разделяет копии по серверам, rack — по стойкам. Три сервера в одной стойке не переживут её полную потерю только благодаря разделению host.
Правило может ограничить размещение частью иерархии root и классом ssd. Если SSD есть лишь на двух подходящих серверах, другие серверы с HDD не дают третьего места для копии в этом правиле.
В учебной схеме три допустимых сервера, size=3 и разделение по host. После отказа одного остаются два. Порог min_size=2 может выполняться, но три копии на разных host здесь не восстановить. Нужен возврат сервера или другой допустимый сервер с достаточным ресурсом.
Кто имеет право писать после отказа
Проверка доступа должна доходить до работающего приложения.
Exclusive-lock по умолчанию автоматически передаётся между клиентами RBD. Поэтому несколько клиентов могут по очереди писать в один образ. Нельзя принимать этот флаг за доказательство, что второй клиент не откроет диск на запись.
При нештатной потере владельца новый клиент согласует его блокировку на уровне хранения. После обновления карты OSD он получает возможность снять прежнюю блокировку и взять свою. Потеря связи не оправдывает несогласованное возобновление записи.
В плане приёмки разделите три результата: клиент снова выполняет согласованную операцию, порог числа копий соблюдён, все копии восстановлены. Состояние active+clean описывает PG; проверку чтения и записи самим приложением проводят отдельно.
Проверьте инженерное мышление
Вопросы проверяют не память на аббревиатуры, а умение не делать лишних выводов.
Следующий шаг
Сформулируйте задачу и уточните требования к своей системе.
Подготовить состав проектаОткроется черновик вопроса. Отправьте его, когда будете готовы.
Источники курса
Ссылки приведены один раз для всего курса, чтобы не мешать чтению каждого тезиса.
- Официальная документация
Ceph Block Device
Ceph Foundation · Ceph Squid documentation, branch squid
Повторная сверка 20.09.2026. Проверены вводное описание RBD и способы доступа. Ветка squid, не фиксация отдельного patch-релиза; совместимость с Proxmox этим не установлена.
Открыть первоисточник - Официальная документация
Pools
Ceph Foundation · Ceph Squid documentation, branch squid
Повторная сверка 20.09.2026. Проверены определения пула, size/min_size и Setting the Number of RADOS Object Replicas. Общая фраза введения про число переживаемых отказов не использована как универсальное правило.
Открыть первоисточник - Официальная документация
Monitoring OSDs and PGs
Ceph Foundation · Ceph Squid documentation, branch squid
Повторная сверка 20.09.2026. Проверены Peering, Active, Clean, Degraded и условия восстановления. Не переносим состояние одной PG на готовность всего приложения.
Открыть первоисточник - Официальная документация
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. Отказоустойчивость проверяется по реальной топологии.
Открыть первоисточник - Официальная документация
RBD Exclusive Locks
Ceph Foundation · Ceph Squid documentation, branch squid
Повторная сверка 20.09.2026. Проверены Warning об автоматической передаче exclusive-lock и раздел Blocklisting. Блокировка образа не приравнена к координации файловой системы.
Открыть первоисточник