Небольшой ceph-кластер в работе

Кластерная система хранения это хорошо, но сначала надо уметь хорошо его готовить. Если падает кластер хранения – падает всё.

Решил сделать отказоустойчивый кластер для хостинга на основе ceph. Система хорошая, готовая к использованию и похоже что используется.
Собрал кластер из трех серверов. Из них два с дисками для хранения, один маломощный просто под монитор (чтобы 3 монитора было).
Погонял тесты, поронял кластер – всё отрабатывает замечательно. При ручных тестах, сбоях, перезагрузках, имитациях зависания диска, тормозов и т.п. кластер работает отлично. Сбои-зависания обнаруживаются в течение от 30 секунд до 2-3 минут, сами чистятся и дисковые операции продолжатся без сбоев.
Запустил на кластере рабочие сайты, запускал по очереди. Когда добавил 4-5 сайтов средней нагрузки пришлось обновиться для добавления еще одного сервера (обновление было небольшим и я решил что это проще, чем вручную ставить старые версии пакетов) и тут началось.

  1. Обновления прошли гладко, все узлы обновились без остановки кластера, договорились между собой.
  2. Через полчаса один из серверов завис намертво, починился хард-ресетом. Сам кластер жив, продолжает работать как и должен при потере одного сервера.
  3. Через несколько часов начались проблемы и замиранием операций ввода-вывода на полчаса (т.е. сайты висят и не открываются, ждут ответа из базы например или чтения php-файла). Прошло само, потом началось снова. Проблема похожа вот на эту и видимо пришла с обновлением, еще раз кувалдой по балде: если работает – не обновляйся.

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

Такие падения в работе неприемлимы, а плюшки ceph очень вкусны для того чтобы сразу от них отказываться – наличие актуальных данных на любом сервере (а не только на двух как при rdbd например).
Настроил программный массив raid1, один диск – rbd образ, второй – локальной блочное устройство из LVM на случай сбоев/падения кластера. Абсолютно не помогло – при зависаниях кластера (для имитации просто выключил все сервера хранения) операции ввода-вывода в md-raid останавливаются, сделать с ним ничего нельзя пока не включить кластер обратно + сервер стал вешаться чуть ли не по щелчку пальцами.

Сейчас ищу систему хранения с подобными функциями, либо вариант иметь актуальную копию данных в реальном времени, чтобы была возможность быстро на неё переключиться в случае сбоя кластера (актуальная на блочном или файловом уровне, учитывая что идет работа в том числе с незакрывающимися файлами баз данных и файлов много – десятки-сотни тысяч для просто файловой синхронизации).

6 комментариев на «“Небольшой ceph-кластер в работе”»

  1. Hadoop это вообще не про то. Мне нужны блочные устройства, чтобы можно было их как диск подмонтировать и работать обычным образом.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *