---
metadata:
  - name: generator
    content: Diplodoc Platform v5.52.0
alternate:
  - https://ydb.tech/docs/en/maintenance/manual/balancing_load.md
  - https://ydb.tech/docs/ru/maintenance/manual/balancing_load.md
  - href: en/maintenance/manual/balancing_load.md
    type: text/markdown
    title: Markdown version
  - href: ../../llms.txt
    type: text/markdown
    title: llms.txt
sourcePath: en/core/maintenance/manual/balancing_load.md
---
> **Documentation Index:** Fetch the complete configuration index at https://ydb.tech/docs/en/llms.txt

# Disk load balancing

YDB supports two methods for disk load balancing:

* [Distribute the load evenly across groups](#reassign-groups).
* [Distribute VDisks evenly across block store volumes](#cluster-balance).

## Distribute the load evenly across groups {#reassign-groups}

At the bottom of the [Hive web-viewer](https://ydb.tech/docs/en/reference/embedded-ui/hive.md#reassign_groups) page, there is a button named "Reassign Groups".

## Distribute VDisks evenly across block store volumes {#cluster-balance}

As a result of some operations, such as [decommissioning](https://ydb.tech/docs/en/devops/deployment-options/manual/decommissioning.md), VDisks can be distributed across block store volumes unevenly. You can distribute them more evenly in one of the following ways:

* [Move VDisks](https://ydb.tech/docs/en/maintenance/manual/moving_vdisks.md#moving_vdisk) one by one from overloaded block store volumes.
* Use [YDB DSTool](https://ydb.tech/docs/en/reference/ydb-dstool/index.md). The command below moves a VDisk from an overloaded block store volume to a less loaded one:

   ```bash
   ydb-dstool -e <bs_endpoint> cluster balance
   ```

   The command moves a single VDisk per run.

## Changing the number of slots for VDisks on PDisks

To add storage groups, redefine the host config by increasing the number of slots on PDisks.

Before that, you need to get the config to be changed. You can do this with the following command:

```proto
Command {
  TReadHostConfig{
    HostConfigId: <host-config-id>
  }
}
```

```bash
ydbd -s <endpoint> admin bs config invoke --proto-file ReadHostConfig.txt
```

Insert the obtained config into the protobuf below and edit the `PDiskConfig/ExpectedSlotCount` field value in it.

```proto
Command {
  TDefineHostConfig {
    <host config>
  }
}
```

```bash
ydbd -s <endpoint> admin bs config invoke --proto-file DefineHostConfig.txt
```
