Ceph — программно-определяемое хранилище, которое собирает диски нескольких серверов в один кластер с репликацией и самовосстановлением. Один и тот же кластер отдаёт место блочными устройствами для виртуальных машин, общей файловой системой и S3-совместимым объектным шлюзом. Дома Ceph обычно поднимают как учебный стенд, в небольшом офисе — чтобы не покупать отдельный SAN. Ниже — планирование, cephadm, пулы, CephFS, RBD и диагностика.

Когда Ceph оправдан

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

Ceph плохо подходит для одного домашнего сервера, дешёвых USB-дисков и случаев, когда нет времени сопровождать систему. Для папки с файлами на одном хосте проще ZFS или mdadm с NFS, для одного объектного доступа хватит MinIO.

Из чего состоит кластер

  • MON — мониторы кворума, хранят карту кластера. Их число нечётное, обычно три.
  • MGR — менеджеры с модулями дашборда, метрик и балансировки. Работают активный и резервный.
  • OSD — по одному процессу на диск, именно они хранят данные и выполняют репликацию.
  • MDS — серверы метаданных CephFS, нужны только для файловой системы.
  • RGW — объектный шлюз с S3- и Swift-совместимым API.

Раскладкой данных управляет CRUSH: он вычисляет, на каких OSD лежать копиям, поэтому нет единой таблицы размещения и нет узкого места. Размещение задаётся через пулы, а класс устройств (ssd, hdd, nvme) позволяет развести быстрые и медленные диски по разным правилам.

Железо и сеть

Ceph должен видеть диски напрямую. RAID-контроллер с кэшем и батареей мешает: нужны отдельные блочные устройства, поэтому используется HBA или JBOD. Заложите не меньше 4 ГБ ОЗУ на каждый OSD плюс запас на сервисы.

Сеть на 1 GbE работает, но восстановление после отказа диска будет медленным. Для офиса желательно 10 GbE, а трафик репликации лучше вынести в cluster network. Имена узлов должны резолвиться, время — синхронизироваться, иначе мониторы начнут ругаться на расхождение часов.

sudo apt install cephadm ceph-common
sudo hostnamectl set-hostname node1
getent hosts node1 node2 node3
timedatectl status

Установка через cephadm

cephadm ставит демоны в контейнерах и не требует пакетов Ceph на каждом узле. Bootstrap выполняется на первом сервере, остальные добавляются по SSH; если root-логин запрещён, задайте пользователя через ceph cephadm set-user.

sudo cephadm bootstrap --mon-ip 10.0.0.11 --dashboard --initial-dashboard-password 'ChangeMe-2026'
sudo cephadm shell
ceph -s
ceph orch host add node2 10.0.0.12
ceph orch host add node3 10.0.0.13

Проверьте, какие диски свободны: orch device ls показывает модели, размер и доступность; занятый разметкой диск cephadm не тронет. Не применяйте OSD вслепую — на узле может оказаться системный диск без метки.

OSD и пулы

Диски надёжнее добавлять по одному, контролируя результат; массовый вариант удобен на чистых стендах.

ceph orch daemon add osd node1:/dev/sdb
ceph orch apply osd --all-available-devices
ceph osd tree
ceph osd df tree

Дерево OSD показывает вес, класс и заполнение. Если быстрые и медленные диски смешаны, задайте класс и правило размещения, иначе данные лягут на медленный носитель. Стартовое число PG задайте явно, дальше автоскейлер подстроит его сам.

ceph osd pool create data 128
ceph osd pool application enable data rbd
ceph osd pool set data size 3
ceph osd pool set data min_size 2
rbd pool init data

min_size 2 означает: при одной оставшейся копии пул перестанет принимать запись. Это защита от расхождения данных, но она блокирует ввод-вывод при потере двух OSD.

CephFS для общих файлов

Файловая система CephFS создаётся одной командой: cephadm сам поднимает MDS и служебные пулы. Для дома достаточно активного и резервного MDS.

ceph fs volume create home
ceph fs status
ceph fs authorize home client.backup / rw
mount -t ceph 10.0.0.11:/ /mnt/ceph -o name=backup,secret=AQ...

Ключ выдаётся один раз. Для постоянного монтирования используйте запись в fstab с файлом ключа и опцией noatime либо systemd-юнит. Клиент ядра быстрее, ceph-fuse полезен на старых ядрах и контейнерах.

RBD для виртуальных машин

Блочный образ RBD подключается как обычный диск. В Proxmox VE Ceph встроен в интерфейс: достаточно добавить кластер и создать хранилище типа RBD.

rbd create --size 50G data/vm-disk1
rbd map data/vm-disk1
rbd device list
rbd snap create data/vm-disk1@before-update

Снимки дешёвые и мгновенные, но проверяйте восстановление. Для тонких образов включайте discard в гостевой системе, иначе место не возвращается в пул.

Диагностика

Первое, что смотрят при проблеме, — health detail: там перечислены конкретные PG и OSD, а не общее «кластер нездоров».

ceph health detail
ceph -w
ceph osd perf
ceph pg dump_stuck inactive

Если PG застряли, проверьте, все ли OSD в сети и не переполнен ли пул. При nearfull кластер предупреждает, а при полном заполнении отказывает в записи; спасает добавление диска. Перед перезагрузкой узла выставьте noout, чтобы кластер не начал восстановление зря.

ceph osd set noout
ceph osd unset noout
ceph mgr module enable prometheus
ceph orch ps

Модуль prometheus отдаёт метрики на порту 9283. Команда ceph orch ps показывает состояние контейнеров: если демон перезапускается, смотрите журнал ceph-<daemon>@<id>.

Чек-лист

  • Три узла, отдельные диски, HBA вместо RAID-кэша.
  • Синхронизация времени и резолвинг имён проверены.
  • Репликация 3, min_size 2, автоскейлер PG включён.
  • Ключи cephx выданы по клиентам, а не один admin на всех.
  • Настроены снимки RBD и проверено восстановление.
  • Метрики и health detail доступны без входа на узлы.
  • Есть план на случай потери узла и заполнения пула.

Итог

Ceph оправдывает себя там, где нужна отказоустойчивость на уровне серверов и единое хранилище для разных типов нагрузки. Начните с трёх узлов, явного добавления OSD и репликации 3, затем подключите CephFS и RBD. Ceph не прощает небрежности: без контроля заполнения, времени и сети он превращается в источник инцидентов. Зато собранный кластер годами работает без перерывов и расширяется добавлением диска, а не заменой хранилища.

Насколько публикация полезна?

Нажмите на звезду, чтобы оценить!

Средняя оценка 0 / 5. Количество оценок: 0

Оценок пока нет. Поставьте оценку первым.

Поделиться: Telegram ВКонтакте