Обслуживание кластера
Утилита ydbops использует CMS для проведения обслуживания кластера без потери доступности. Также CMS можно использовать напрямую через gRPC API.
Rolling restart
Чтобы выполнить rolling restart всего кластера можно воспользоваться командой:
$ ydbops restart
По умолчанию, будет использован режим доступности strong
, минимизирующий риск потери доступности. Его можно переопределить с помощью параметра --availability-mode
.
Утилита ydbops
автоматически создаст задачу обслуживания на рестарт всего кластера, используя указанный режим доступности. По ходу продвижения ydbops
будет обновлять задачу обслуживания и получать эксклюзивные блокировки на узлы в CMS, пока все узлы не будут перезапущены.
Вывести хост для обслуживания
Чтобы вывести хост для обслуживания, выполните следующие шаги:
-
Cоздать задачу обслуживания с помощью команды:
$ ydbops maintenance create --hosts=<fqdn> --duration=<seconds>
Эта команда создаст задачу обслуживания, в рамках которой на хост с полным доменным именем
<fqdn>
будет взята эксклюзивная блокировка на<seconds>
секунд. -
После создания задачи необходимо обновлять ее состояние, пока блокировка не будет взята, с помощью команды:
$ ydbops maintenance refresh --task-id=<id>
Эта команда обновит задачу с идентификатором
<id>
и попытается взять требуемую блокировку. При получении ответаPERFORMED
можно переходить к следующему пункту. -
Провести обслуживание хоста пока взята блокировка.
-
После завершения работ необходимо отпустить блокировку на хост с помощью команды:
$ ydbops maintenance complete --task-id=<id> --hosts=<fqdn>