Перейти к содержимому

Ceph

TL;DR

Программно-определяемое распределенное хранилище. Дает block (RBD), object (S3/Swift) и file (CephFS) storage из одного кластера.

  • OSD (Object Storage Daemon) - хранит данные на дисках
  • MON (Monitor) - следит за состоянием кластера, хранит карту
  • MGR (Manager) - метрики, дашборд, балансировка
  • MDS (Metadata Server) - только для CephFS

Пакеты и пути

  • Пакеты: ceph, ceph-radosgw
  • Сервис: ceph.service
  • Конфиг: /etc/ceph/ceph.conf
  • Логи: /var/log/ceph/*
  • Keyring: /etc/ceph/ceph.client.admin.keyring

Команды

Статус кластера

1
2
ceph status
ceph health detail

Общее состояние. HEALTH_OK / HEALTH_WARN / HEALTH_ERR.

1
ceph osd tree

Дерево OSD - какие диски на каких хостах, статус up/down.

1
ceph df

Использование места в кластере и по пулам.

Пулы

1
ceph osd pool ls

Список пулов.

1
ceph osd pool create mypool 128

Создать пул с 128 PG (placement groups).

1
ceph osd pool set mypool size 3

Установить репликацию x3.

RBD (block storage)

1
rbd create mypool/myimage --size 10G

Создать блочный образ 10 ГБ.

1
rbd map mypool/myimage

Подключить как /dev/rbdX.

1
2
rbd ls mypool
rbd info mypool/myimage

Список образов / информация.

Сервисы

1
2
ceph orch ls
ceph orch ps

Список сервисов и процессов (cephadm).

1
ceph orch daemon restart osd.0

Перезапустить конкретный демон.

Проверка

1
ceph health

Быстрая проверка - HEALTH_OK значит все ок.

1
ceph osd stat

Сколько OSD всего / up / in.

1
ceph pg stat

Состояние placement groups.

Подводные камни

  • Минимум 3 MON для кворума
  • PG count влияет на производительность - слишком мало или много = проблемы
  • При падении OSD данные ребалансируются - нагрузка на сеть
  • ceph osd pool delete требует подтверждения дважды (защита от случайного удаления)