Добрый день коллеги, пишу первый раз, поэтому прошу не судить строго. Решил поделиться с вами проблемой, с которой столкнулся совсем недавно и потратил на то, чтобы разобраться целый день. А в итоге оказалось, что косяк то не мой.
Все началось, что бы у меня тестовый кластер из трех мониторов, который был установлен без их новомодного инструмента 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.
Знаю, что на форуме есть крутые инженеры, может у них будут какие‑то комментарии по этому делу. И опять же, может мой опыт кому‑то поможет, кто так же столкнется с этой проблемой.

