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

Все началось, что бы у меня тестовый кластер из трех мониторов, который был установлен без их новомодного инструмента 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.

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

Комментарии (5)


  1. MrBotikkk
    09.09.2026 14:21

    Давать тех. советы не буду. Как вариант: В Proxmox VE(Debian 13) Ceph уже встроен и готов к работе “из коробки” Пакеты пилят и обновляют активно. http://download.proxmox.com/debian/ceph-squid/dists/trixie/no-subscription/binary-amd64/

    И вариант развертывания: Ceph 3-node cluster on Debian 13 (cephadm) с Proxmox VE

    Proxmox VE можно запустить в vm c (nested virtualization) - потестировать


    1. xitriy87 Автор
      09.09.2026 14:21

      Ну встроенный в pve ceph, это хорошо, когда конвергентная среда. Отдельно да, в сторону cephadm, смотрю, думаю переехать, есть плюсы, что там сам ceph в контейнере и ты не привязан никак к ОС и ее зависимостями. Но иногда хочется без лишних уровней абстракции.


  1. Xelld
    09.09.2026 14:21

    Вы при обновлении учитывали cephx upgrade?


    1. xitriy87 Автор
      09.09.2026 14:21

      Спасибо за подсказку, посмотрел, возможно в этом и дело. Проблема, что новый алгоритм появился недавно, и доступен только в последних версиях ceph. Я обновлял кластер, когда его еще не было. Попробую поставить самую актуальную версию текущего релиза tentacle и попробую обновить ключи.


    1. xitriy87 Автор
      09.09.2026 14:21

      Вообщем, оказалось дело в cephx обновлениях. Они совсем недавно закрыли уязвимость и обновили тип ключа для cephx. Важно отметить, что поддержка aes256k появилась только в самых последних версиях ceph, как раз обновления от конца августа 2026 года. Итого, что бы добавить свежий монитор в кластер, все мониторы в кластере должны быть так же обновлены до нее, в моем случау 20.2.0 до 20.2.4. Интересно получилось у них минорные версии стали не совместимы. В Ubuntu 26.04 в репозитории версия только 20.2.0, поэтому она нормально добавлялась в старый кластер, но после обновления остальных до 20.2.4 отвалилась и перестала добавляться. Ротацию ключей можно проводить только для сервисов самого ceph согласно документации, которую вы приложили. Но обновлять клиентские ключи опасно, так как они практически не поддерживаются ни кем. Проверил на ceph-csi-operator, последняя версия 1.0.4 не поддерживает новые ключи. Так что как-то так получается.