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

## Обслуживание кластера

Утилита [ydbops](https://ydb.tech/docs/ru/reference/ydbops/index.md?version=v25.3) использует CMS для проведения обслуживания кластера без потери доступности. Также CMS можно использовать напрямую через [gRPC API](https://github.com/ydb-platform/ydb/blob/main/ydb/public/api/grpc/draft/ydb_maintenance_v1.proto).

### Rolling restart {#rolling-restart}

Чтобы выполнить rolling restart всего кластера можно воспользоваться командой:

```bash
$ ydbops restart
```

По умолчанию, будет использован режим доступности `strong`, минимизирующий риск потери доступности. Его можно переопределить с помощью параметра `--availability-mode`.

Утилита `ydbops` автоматически создаст задачу обслуживания на рестарт всего кластера, используя указанный режим доступности. По ходу продвижения `ydbops` будет обновлять задачу обслуживания и получать эксклюзивные блокировки на узлы в CMS, пока все узлы не будут перезапущены.

### Вывести хост для обслуживания {#host-maintenance}

Чтобы вывести хост для обслуживания, выполните следующие шаги:

1. Cоздать задачу обслуживания с помощью команды:

    ```bash
    $ ydbops maintenance create --hosts=<fqdn> --duration=<seconds>
    ```

    Эта команда создаст задачу обслуживания, в рамках которой на хост с полным доменным именем `<fqdn>` будет взята эксклюзивная блокировка на `<seconds>` секунд.
2. После создания задачи необходимо обновлять ее состояние, пока блокировка не будет взята, с помощью команды:

    ```bash
    $ ydbops maintenance refresh --task-id=<id>
    ```

    Эта команда обновит задачу с идентификатором `<id>` и попытается взять требуемую блокировку. При получении ответа `PERFORMED` можно переходить к следующему пункту.
3. Провести обслуживание хоста пока взята блокировка.
4. После завершения работ необходимо отпустить блокировку на хост с помощью команды:

    ```bash
    $ ydbops maintenance complete --task-id=<id> --hosts=<fqdn>
    ```
