Добрый день коллеги, пишу первый раз, поэтому прошу не судить строго. Решил поделиться с вами проблемой, с которой столкнулся совсем недавно и потратил на то, чтобы разобраться целый день. А в итоге оказалось, что косяк то не мой.

Все началось, что бы у меня тестовый кластер из трех мониторов, который был установлен без их новомодного инструмента cephadm, ручками, как говорится по старинке. На то он и тестовый кластер, что бы помучиться. Ладно вернемся к нашему ceph. Изначально мониторы были установлены на Ubuntu 22.04 версия squid и AlmaLinux 9 squid. Потом, позже. Ceph был обновлен на версию tentacle 20.2.0 из репозиториев, которые предоставляет сам ceph:

deb https://download.ceph.com/debian-tentacle/ jammy main

И соответствующий репозиторий для AlmaLinux, все взято из официальной документации Ceph.

Все работало, я тестировал всякие штуки и радовался жизни. Но как то раз пришлось сменить одну из ВМ на Ubuntu. И как раз для версии Ubuntu 24.04 в репозитории Ceph появилась сборка. Раньше сборки tentacle для 24.04 noble не было в репозитории Ceph и не было в родном репозитории Ubuntu. Скажем, что сборка tentacle появилась в родном репозитории уже Ubuntu 26.04, но об этом позже.

Раз уже появилась актуальная версия Ceph еще и для актуальной версии Ubuntu, то я решил сразу пробовать ее и заодно посмотреть как будет работать. И вот тут то начались мои пляски с бубном.

Как обычно я ставлю ВМ, добавляю в нее репозиторий, опять же с официальной документации Ceph.

Далее, как обычно, переносим конфигурационный файл ceph.conf и keyring на новую Ноду:

scp /etc/ceph/ceph.conf /etc/ceph/ceph.client.admin.keyring user@10.10.10.13@/tmp/

И закидываем конфиг и keyring на целевой машине в директорию Ceph:

sudo cp /tmp/ceph* /etc/ceph/

Не забываем про права:

sudo chwon ceph:ceph -R /etc/ceph

Все теперь можем посмотреть статус нашего кластера уже с новой ноды:

sudo ceph -s

Пока все хорошо, как обычно

Далее получаем keyring для монитора:

sudo ceph auth get mon. -o /tmp/mon-keyring

Получаем актуальную карту кластера:

sudo ceph mon getmap -o /tmp/monmap

Создаем директорию, где будут храниться данные монитора:

sudo mkdir -p /var/lib/ceph/mon/ceph-ceph-test-c
  • •, где ceph‑test‑c это имя ноды

И наконец, подготавливаем нашу Ноду для добавления в качестве монитора:

sudo ceph-mon -i ceph-test-c --mkfs --monmap /tmp/monmap --keyring /tmp/mon-keyring

Не забываем выставить правильные права для директории:

sudo chown ceph:ceph -R /var/lib/ceph/mon

Все готово к добавлению нового монитора, запускаем его и после старта он должен быть добавлен в кластер:

sudo systemctl start ceph-mon@ceph-test-c

Барабанная дробь =)

И ничего не происходит, точнее происходит ужасное, через пару секунд мы теряем кластер. Точнее наши мониторы потеряли кворум. Причина, у нас был кластер из двух Нод, но теперь одна нода, которая на Ubuntu ушла в аут. Она загружена по ЦПУ и памяти в потолок, потом приходит наш любимый OOM‑killer и так продолжается пока мы не остановим монитор на новой Ноде, и не пройдет минут 5–10, видимо зависает намертво, подключиться к ней не реально, даже по консоли.

Что же, мы получили проблему, пойдем разбираться, как так получилось.

Сначала идем на Ноду, которая зависает намертво. Там в логах нет ничего интересного, просто он общался с вторым монитором кластера, а потом внезапно лог закончился. Что же идем на другую Ноду, тем более она не зависала намертво. Там в логах мы видим одно и тоже бесконечно повторяющееся сообщение:

2026-09-03T08:27:11.074+0000 7f93531ce640  1 mon.ceph-test-d@1(peon) e36  adding peer [v2:10.10.10.13:3300/0,v1:10.10.10.13:6789/0] to list of hints

Причем, пока мы не остановили проблемную Ноду, это сообщение приходило постоянно и в огромном количестве. Видимо в этом и была проблема, почему зависала другая нода. Получается, AlmaLinux хотя бы смогла это переварить.

Легче особо не стало, так как при этом всем, третий монитор даже не появляется в составе кластера, значит его не могут добавить.

Дальше начались чтение документации и разных источников, включая ИИ. Были перепробованы разные предположения по расхождению времени на Нодах, так как Ceph требователен к этому. Была настроена синхронизация всех Нод с одним NTP‑сервером. Увеличен максимально допустимый расход по времени. И так далее

При этом, я удалял одну из действующих Нод, делал кластер из одной. И потом заново добавлял. Проблем тоже не было, все работало как положено.

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

Running command: /usr/bin/ceph‑authtool ‑gen‑print‑key Running command: /usr/bin/ceph‑authtool ‑gen‑print‑key Running command: /usr/bin/ceph ‑cluster ceph ‑name client.bootstrap‑osd ‑keyring /var/lib/ceph/bootstrap‑osd/ceph.keyring ‑i — osd new 6458a6f9-3e21-4de8-984c-303d6aed6101 stderr: Error EINVAL: invalid cephx secret. ‑> RuntimeError: Unable to create a new OSD id

Вот порядок добавления OSD

sudo ceph auth get client.bootstrap-osd -o /var/lib/ceph/bootstrap-osd/ceph.keyring

sudo ceph-volume lvm prepare --data /dev/vdb

Я решил, а не попробовать ли мне добавить OSD с Ceph более старой версии, с которой проблем не было никогда — squid.

Развернул новую ВМ Ubuntu 24.04 и установил Ceph из родных репозиториев Ubuntu — squid 19.2. И о чудо OSD было добавлено без проблем. Теми же самыми командами, что и раньше. К сожалению, я не смог проверить монитор, так как в кластере указана минимальная версия для мониторов — min_mon_release 20 (tentacle). Скорее всего это можно изменить, но я как то не подумал тогда об этом.

У меня появилась мысль, что может это проблема сборки конкретной версии, для конкретной ОС. Тогда надо проверить так ли это. Как я говорил ранее, для Ubuntu 26.04 есть собранные пакеты Ceph Tentacle 20.2.0 в родном репозитории.

Развертываем новую ВМ с Ubuntu 26.04. Ставим на нее Ceph версии 20.2.0 и о чудо, все идет как по маслу. Монитор добавлен в кластер без каких либо проблем, OSD так же добавляются без проблем, есть правда некоторые нюансы по расположению keyring, но возможно это чисто фишка Ubuntu.

Итого, я получил целый день мучений и скитаний по интернету в поисках проблем, а оказалось, что искал то и не там. Не знаю, может кто‑то еще сталкивался с подобными вещами или просто мне не хватило опыта и знаний в Ceph. Но получилось, что получилось. Кстати скажем, что если смотреть репозиторий Ceph Tentacle для Ubuntu, то пакеты в нем были обновлены 01.09.2026. Тест проводился 03.09.26.

Знаю, что на форуме есть крутые инженеры, может у них будут какие‑то комментарии по этому делу. И опять же, может мой опыт кому‑то поможет, кто так же столкнется с этой проблемой.