Skip to content

Add info about StateStorage, Board, SchemeBoard configuration and heal state in web UI #2804

@Evgenik2

Description

@Evgenik2

Это надо для новой фичи self-heal, ydb-platform/ydb#17401 которая попадет в следующий релиз. Теперь реплики state storage, board, scheme board могут автоматически переноситься с плохих нод, добавляться новые при росте кластера. А в случае 2дц там в каждом дц своя группа колец и также управляется автоматикой.
Если раньше это было просто прописано в конфиге и никак не изменялось. То теперь при автоматической генерации конфига дистконфом и возможностью переконфигурации - негде посмотреть текущую конфигурацию.
А это важно - т.к. напрямую влияет на отказоустойчивость.
Автоматика не всегда может переконфигурировать - там должна быть правильная раскладка реплик по стойкам и ДЦ, да и вообще кластер может быть маленький - и просто некуда переносить реплики.
Автоматику можно отключить и переконфигурировать вручную - и надо видеть результат.
Могут присутствовать плохие ноды - и важно видеть в каких группах и кольцах они присутствуют - и насколько это приближает к отказам.
Предлагаю сделать следующее:

  1. Визуализировать на каких нодах расположены реплики. По реплике выводить имя пайла, номер группы, номер кольца. На одной ноде в период реконфигурации могут присутствовать 2 реплики одного типа одновременно.
  2. Выводить текущую конфигурацию в табличном виде с возможностью группировки по пайлам, группам, кольцам. Показывать состояние пайлов (Primary/Synchronized/Disconnected etc). По кольцам выводить Enabled/Disabled. По группам выводить WriteOnly, NToSelect, majority. В таблицу добавить столбцы с состоянием нод по версии distconf, и Sentinel - поскольку оба компонента участвуют. Также агрегировать состояние на кольца и группы - если любая нода в кольце недоступна - все кольцо плохое.
  3. В места где выводится health-check кластера добавить следующее. По каждой группе считать разницу Majority, количество Disabled и плохих колец. Если эта разница < 1 то возможны отказы - надо выводить что кластер в плохом состоянии.
Image

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions