Static group SelfHeal

Warning

This article is dedicated to YDB clusters that use configuration V2. This configuration method is currently experimental and is only available for YDB versions starting from v25.1. For production use, we recommend choosing configuration V1 — it is the main method and is officially supported for all YDB clusters.

When using configuration V2, SelfHeal can automatically move a static group VDisk from faulty PDisks and restore the group's fault tolerance.

The general SelfHeal mechanism detects a faulty PDisk and initiates VDisk relocation. For dynamic groups, the Blob Storage Controller changes the configuration, while distributed configuration changes the static group configuration.

To allow distributed configuration to change the static group automatically, enable the automatic_static_group_management parameter. This parameter is disabled by default.

Enabling and disabling static group SelfHeal

Static group SelfHeal requires the following components to be enabled:

To enable or disable automatic static group management:

  1. Fetch the current cluster configuration using the ydb admin cluster config fetch command:

    ydb [global options...] admin cluster config fetch > config.yaml
    
  2. Set the automatic_static_group_management parameter in the config.yaml configuration file:

    config:
      self_management_config:
        enabled: true
        automatic_static_group_management: true
    

    true enables automatic static group management, while false disables it.

  3. Apply the updated configuration using the ydb admin cluster config replace command:

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

Restricting the set of target nodes

By default, SelfHeal can move a static group VDisk to any suitable node. To restrict the set of target nodes, specify their IDs in the static_group_self_heal_allowed_nodes parameter:

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

An empty list means that no restrictions apply. The allowed nodes must have suitable PDisks and enough free space to move the VDisk without violating the failure model.