SelfHeal статической группы

Важно

Эта статья посвящена кластерам YDB, в которых используется конфигурация V2. Данный способ конфигурирования пока является экспериментальным и доступен только для версий YDB начиная с v25.1. Для использования в продакшене мы рекомендуем выбирать конфигурацию V1 — она является основной и официально поддерживаемой для всех кластеров YDB.

При использовании конфигурации V2 механизм SelfHeal может автоматически переносить VDisk статической группы с неисправных PDisk и восстанавливать отказоустойчивость группы.

Важно

На кластерах с конфигурацией V1 SelfHeal статической группы включить нельзя.

Общий механизм SelfHeal обнаруживает неисправный PDisk и инициирует перенос VDisk. Для динамических групп конфигурацию изменяет Blob Storage Controller, а конфигурацию статической группы изменяет распределённая конфигурация.

Чтобы разрешить распределённой конфигурации автоматически изменять статическую группу, включите параметр self_management_config.automatic_static_group_management. По умолчанию этот параметр выключен.

Включение и выключение SelfHeal статической группы

Для работы SelfHeal статической группы должны быть включены:

Параметр self_management_config.enabled включает саму распределённую конфигурацию. Параметр self_management_config.automatic_static_group_management отдельно разрешает автоматический перенос VDisk статической группы.

Чтобы включить или выключить автоматическое управление статической группой:

  1. Получите текущую конфигурацию кластера с помощью команды ydb admin cluster config fetch:

    ydb [global options...] admin cluster config fetch > config.yaml
    
  2. В конфигурационном файле config.yaml установите значения параметров self_management_config.enabled и self_management_config.automatic_static_group_management:

    config:
      self_management_config:
        enabled: true
        automatic_static_group_management: true
    

    Значение self_management_config.automatic_static_group_management: true включает автоматическое управление статической группой, а false — выключает.

  3. Примените новую конфигурацию с помощью команды ydb admin cluster config replace:

    ydb [global options...] admin cluster config replace -f config.yaml
    

Ограничение набора целевых узлов

По умолчанию SelfHeal может перенести VDisk статической группы на любой подходящий узел. Чтобы ограничить набор целевых узлов, укажите их идентификаторы в параметре static_group_self_heal_allowed_nodes:

config:
  self_management_config:
    enabled: true
    automatic_static_group_management: true
    static_group_self_heal_allowed_nodes:
    - 1
    - 2
    - 3

Пустой список означает отсутствие ограничений. Для каждого разрешённого узла выберите подходящий PDisk и проверьте, что его свободная ёмкость не меньше объёма, занятого VDisk на исходном PDisk, плюс эксплуатационный запас до порога предупреждения о заполнении. Единого числового значения запаса нет: ориентируйтесь на порог предупреждения, используемый в мониторинге вашего кластера. Размещение после переноса должно соответствовать модели отказа.