diff options
author | Ilia Shakhov <pixcc@ydb.tech> | 2024-11-25 14:17:36 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-11-25 14:17:36 +0300 |
commit | c7c0c65fc1d4cd11ad69f666e1cb560e6173c485 (patch) | |
tree | 600d8e9f58981781e5fc1ccf27c952e8e41375bd | |
parent | 346aedca9e388acf1b1de44416081aabea462026 (diff) | |
download | ydb-c7c0c65fc1d4cd11ad69f666e1cb560e6173c485.tar.gz |
Update ydbops examples for CMS docs (#11793)
-rw-r--r-- | ydb/docs/en/core/devops/manual/maintenance-without-downtime.md | 31 | ||||
-rw-r--r-- | ydb/docs/ru/core/devops/manual/maintenance-without-downtime.md | 31 |
2 files changed, 46 insertions, 16 deletions
diff --git a/ydb/docs/en/core/devops/manual/maintenance-without-downtime.md b/ydb/docs/en/core/devops/manual/maintenance-without-downtime.md index 69d9a33a89..a903c41b25 100644 --- a/ydb/docs/en/core/devops/manual/maintenance-without-downtime.md +++ b/ydb/docs/en/core/devops/manual/maintenance-without-downtime.md @@ -80,26 +80,41 @@ The action can be performed if the checks are successful, and temporary locks ar ## Examples {#examples} -The [ydbops](https://github.com/ydb-platform/ydbops) utility tool uses CMS for cluster maintenance without downtime. You can also use the CMS directly through the [gRPC API](https://github.com/ydb-platform/ydb/blob/main/ydb/public/api/grpc/draft/ydb_maintenance_v1.proto). +The [ydbops](../../reference/ydbops/index.md) utility tool uses CMS for cluster maintenance without downtime. You can also use the CMS directly through the [gRPC API](https://github.com/ydb-platform/ydb/blob/main/ydb/public/api/grpc/draft/ydb_maintenance_v1.proto). ### Rolling restart {##rolling-restart} To perform a rolling restart of the entire cluster, you can use the command: ```bash -$ ydbops restart --endpoint grpc://<cluster-fqdn> --availability-mode strong +$ ydbops restart ``` -If your systemd unit name is different from the default one, you may need to override it with `--systemd-unit` flag. +The default availability mode is `strong`. This mode minimizes the risk of availability loss. Use the `--availability-mode` parameter to override the default availability mode. The `ydbops` utility will automatically create a maintenance task to restart the entire cluster using the given availability mode. As it progresses, the `ydbops` will refresh the maintenance task and acquire exclusive locks on the nodes in the CMS until all nodes are restarted. -### Take out a node for maintenance {#node-maintenance} +### Take out a host for maintenance {#host-maintenance} -{% note info "Functionality in development" %} +To take out a host for maintenance, follow these steps: -Functionality is expected in upcoming versions of the `ydbops`. +1. Create a maintenance task using the command: -{% endnote %} + ```bash + $ ydbops maintenance create --hosts=<fqdn> --duration=<seconds> + ``` + + This command creates a maintenance task that will acquire an exclusive lock for `<seconds>` seconds on the host with the fully qualified domain name `<fqdn>`. +2. After creating a task, refresh its state until the lock is taken, using the command: + + ```bash + $ ydbops maintenance refresh --task-id=<id> + ``` + + This command refreshes the task with identifier `<id>` and attempts to acquire the required lock. When a `PERFORMED` response is received, proceed to the next step. +3. Perform host maintenance while the lock is acquired. +4. After the maintenance is complete, release the lock using the command: -To take out a node for maintenance, you can use the `ydbops` utility. When taking a node out, the `ydbops` will acquire an exclusive lock on this node in CMS. + ```bash + $ ydbops maintenance complete --task-id=<id> --hosts=<fqdn> + ``` diff --git a/ydb/docs/ru/core/devops/manual/maintenance-without-downtime.md b/ydb/docs/ru/core/devops/manual/maintenance-without-downtime.md index e81c1add5d..ff753e5e03 100644 --- a/ydb/docs/ru/core/devops/manual/maintenance-without-downtime.md +++ b/ydb/docs/ru/core/devops/manual/maintenance-without-downtime.md @@ -80,26 +80,41 @@ ## Примеры {#examples} -Утилита [ydbops](https://github.com/ydb-platform/ydbops) использует CMS для проведения обслуживания кластера без потери доступности. Также CMS можно использовать напрямую через [gRPC API](https://github.com/ydb-platform/ydb/blob/main/ydb/public/api/grpc/draft/ydb_maintenance_v1.proto). +Утилита [ydbops](../../reference/ydbops/index.md) использует 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 --endpoint grpc://<cluster-fqdn> --availability-mode strong +$ ydbops restart ``` -Если используемое имя systemd unit отличается от стандартного, его можно переопределить с помощью флага `--systemd-unit`. +По умолчанию, будет использован режим доступности `strong`, минимизирующий риск потери доступности. Его можно переопределить с помощью параметра `--availability-mode`. Утилита `ydbops` автоматически создаст задачу обслуживания на рестарт всего кластера, используя указанный режим доступности. По ходу продвижения `ydbops` будет обновлять задачу обслуживания и получать эксклюзивные блокировки на узлы в CMS, пока все узлы не будут перезапущены. -### Вывести узел для обслуживания {#node-maintenance} +### Вывести хост для обслуживания {#host-maintenance} -{% note info "Функциональность в разработке" %} +Чтобы вывести хост для обслуживания, выполните следующие шаги: -Функциональность ожидается в ближайших версиях `ydbops`. +1. Cоздать задачу обслуживания с помощью команды: -{% endnote %} + ```bash + $ ydbops maintenance create --hosts=<fqdn> --duration=<seconds> + ``` + + Эта команда создаст задачу обслуживания, в рамках которой на хост с полным доменным именем `<fqdn>` будет взята эксклюзивная блокировка на `<seconds>` секунд. +2. После создания задачи необходимо обновлять ее состояние, пока блокировка не будет взята, с помощью команды: + + ```bash + $ ydbops maintenance refresh --task-id=<id> + ``` + + Эта команда обновит задачу с идентификатором `<id>` и попытается взять требуемую блокировку. При получении ответа `PERFORMED` можно переходить к следующему пункту. +3. Провести обслуживание хоста пока взята блокировка. +4. После завершения работ необходимо отпустить блокировку на хост с помощью команды: -Чтобы вывести узел для обслуживания можно воспользоваться утилитой `ydbops`. При выведении узла `ydbops` возьмет эксклюзивную блокировку на этот узел в CMS. + ```bash + $ ydbops maintenance complete --task-id=<id> --hosts=<fqdn> + ``` |