Почему ceph меняет статус на Err, когда еще есть свободное место на диске - PullRequest
0 голосов
/ 27 сентября 2019

Я недавно построил 3 узла Ceph кластеров.На каждом узле было семь жестких дисков по 1 ТБ для OSD, поэтому у меня есть максимум 21 ТБ дискового пространства для Ceph.

Однако, когда я запустил рабочую нагрузку для записи данных в Ceph, она переходит в состояние Err, и в него больше нельзя записывать данные.

Вывод ceph -s:

 cluster:
    id:     06ed9d57-c68e-4899-91a6-d72125614a94
    health: HEALTH_ERR
            1 full osd(s)
            4 nearfull osd(s)
            7 pool(s) full

  services:
    mon: 1 daemons, quorum host3
    mgr: admin(active), standbys: 06ed9d57-c68e-4899-91a6-d72125614a94
    osd: 21 osds: 21 up, 21 in
    rgw: 4 daemons active

  data:
    pools:   7 pools, 1748 pgs
    objects: 2.03M objects, 7.34TiB
    usage:   14.7TiB used, 4.37TiB / 19.1TiB avail
    pgs:     1748 active+clean

Исходя из моего понимания, поскольку осталось еще 4,37 ТБ свободного места, Ceph сама должна позаботиться о том, как сбалансировать рабочую нагрузку.и сделайте так, чтобы каждое экранное меню не находилось в состоянии full или nearfull.Но результат не работает, как я ожидал, 1 full osd и 4 nearfull osd обнаруживается, здоровье составляет HEALTH_ERR.

Я не могу посетить Ceph с hdfs или s3cmdбольше, поэтому здесь возникает вопрос:
1, Любое объяснение о текущей проблеме?
2, Как я могу восстановить ее?Удалить данные на узле Ceph напрямую с помощью ceph-admin и перезапустить Ceph?

1 Ответ

0 голосов
/ 30 сентября 2019

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

1, Это нормально для разных OSD, чтобы иметь разрыв в размере.Если вы перечислите OSD с ceph osd df, вы обнаружите, что разные OSD имеют разный коэффициент использования.

2, Чтобы устранить эту проблему, проблема здесь означает разрушение кластера из-за переполнения экранного меню.Следуйте инструкциям ниже, это в основном из redhat .

  • Получите информацию о здоровье кластера ceph по ceph health detail.В этом нет необходимости, но вы можете получить идентификатор неисправного экранного меню.
  • Используйте ceph osd dump | grep full_ratio для получения текущего full_ratio.Не используйте заявление, указанное выше, ссылка устарела.Выходной сигнал может быть примерно таким:

full_ratio 0.95 backfillfull_ratio 0.9 nearfull_ratio 0.85

  • Установите коэффициент заполнения экранного меню чуть выше на ceph osd set-full-ratio <ratio>.Обычно мы устанавливаем соотношение в 0,97
  • . Теперь состояние кластера изменится с HEALTH_ERR на HEALTH_WARN или HEALTH_OK.Удалите некоторые данные, которые могут быть освобождены.
  • Изменить полное соотношение экранного меню обратно на предыдущее.Это не может быть 0,97 всегда, потому что это немного рискованно.

Надеюсь, эта ветка полезна для кого-то, кто столкнулся с той же проблемой.Подробнее о настройке экранного меню см. ceph .

...