diff options
author | bazeltsev <bazeltsev@ydb.tech> | 2023-02-07 14:32:36 +0300 |
---|---|---|
committer | bazeltsev <bazeltsev@ydb.tech> | 2023-02-07 14:32:36 +0300 |
commit | bb37a8b74e61bb96576eca047448e51db75669ca (patch) | |
tree | 774eac929dae59970522da8ca413068d83e37ed1 | |
parent | 5321c3bf793a61c1644a392c9e697e55143cef2f (diff) | |
download | ydb-bb37a8b74e61bb96576eca047448e51db75669ca.tar.gz |
Hided ydb dstool 2
hided
-rw-r--r-- | ydb/docs/presets.yaml | 1 | ||||
-rw-r--r-- | ydb/docs/ru/core/administration/decommissioning.md | 6 | ||||
-rw-r--r-- | ydb/docs/ru/core/maintenance/manual/adding_storage_groups.md | 38 | ||||
-rw-r--r-- | ydb/docs/ru/core/maintenance/manual/balancing_load.md | 8 | ||||
-rw-r--r-- | ydb/docs/ru/core/maintenance/manual/index.md | 4 | ||||
-rw-r--r-- | ydb/docs/ru/core/maintenance/manual/moving_vdisks.md | 46 | ||||
-rw-r--r-- | ydb/docs/ru/core/maintenance/manual/scrubbing.md | 11 | ||||
-rw-r--r-- | ydb/docs/ru/core/maintenance/manual/selfheal.md | 102 | ||||
-rw-r--r-- | ydb/docs/ru/core/maintenance/manual/toc_i.yaml | 4 |
9 files changed, 217 insertions, 3 deletions
diff --git a/ydb/docs/presets.yaml b/ydb/docs/presets.yaml index 6c160cd8d0..d282d8ff37 100644 --- a/ydb/docs/presets.yaml +++ b/ydb/docs/presets.yaml @@ -13,6 +13,7 @@ default: feature_group_by_rollup_cube: true feature_window_functions: true feature_user_and_group: true + feature_ydb-tool: false # feature_logbroker: true ydb-full-name: YDB ydb-short-name: YDB diff --git a/ydb/docs/ru/core/administration/decommissioning.md b/ydb/docs/ru/core/administration/decommissioning.md index c3d5ada99f..09fe99c41d 100644 --- a/ydb/docs/ru/core/administration/decommissioning.md +++ b/ydb/docs/ru/core/administration/decommissioning.md @@ -37,10 +37,14 @@ > >Описанные шаги повторяются для следующего набора оборудования в ЦОД-1 до тех пор, пока все оборудование не будет перемещено. +{% if feature_ydb-tool %} + Чтобы задать нужное состояние декомиссии диска, можно воспользоваться командой ```ydb-dstool``. Например, следующая команда ``` ydb-dstool.py -e ydb.endpoint pdisk set --decommit-status DECOMMIT_IMMINENT --pdisk-ids "[1:1000]" ``` -задает декомит статутс ```DECOMMIT_IMMINENT``` диску с айди ```1000``` на ноде с айди ```1```.
\ No newline at end of file +задает декомит статутс ```DECOMMIT_IMMINENT``` диску с айди ```1000``` на ноде с айди ```1```. + +{% endif %} diff --git a/ydb/docs/ru/core/maintenance/manual/adding_storage_groups.md b/ydb/docs/ru/core/maintenance/manual/adding_storage_groups.md index 204c7c5e5f..514e39c1c2 100644 --- a/ydb/docs/ru/core/maintenance/manual/adding_storage_groups.md +++ b/ydb/docs/ru/core/maintenance/manual/adding_storage_groups.md @@ -1,5 +1,7 @@ # Добавление групп хранения +{% if feature_ydb-tool %} + Добавить новые группы можно с помощью команды ```dstool group add```. Количество новых групп задается с помощью опции ```--groups```. Например, чтобы добавить 10 групп в пул ```/ydb_pool```, нужно ввести команду: @@ -20,3 +22,39 @@ ydb-dstool.py --dry-run -e ydb.endpoint group add --pool-name /ydb_pool --groups ``` Опция ```dry-run``` позволяет, например, оценить какое максимальное число групп можно добавить в пул. + +{% else %} + +Для добавления групп хранения требуется переопределить конфиг пула в котором требуется расширить. + +Перед этим требуется получить конфиг интересуемого пула, это можно сделать следующей командой: + +```proto +Command { + ReadStoragePool{ + BoxId: <box-id> + // StoragePoolId: <storage-pool-id> + Name: <имя пула> + } +} +``` + +``` +kikimr -s <endpoint> admin bs config invoke --proto-file ReadStoragePool.txt +``` + +Требуется вставить полученный конфиг пула в protobuf ниже и поменять в нем поле **NumGroups**. + +```proto +Command { + DefineStoragePool { + <конфиг пула> + } +} +``` + +``` +kikimr -s <endpoint> admin bs config invoke --proto-file DefineStoragePool.txt +``` + +{% endif %} diff --git a/ydb/docs/ru/core/maintenance/manual/balancing_load.md b/ydb/docs/ru/core/maintenance/manual/balancing_load.md index ccf57bd58b..2995c4538e 100644 --- a/ydb/docs/ru/core/maintenance/manual/balancing_load.md +++ b/ydb/docs/ru/core/maintenance/manual/balancing_load.md @@ -8,6 +8,8 @@ ## Разложить VDisk'и равномерно по устройствам +{% if feature_ydb-tool %} + Когда VDisk'и расположены на блочных устройствах неравномерно, можно улучшить равноменость двумя способами: ручным и полуавтоматическим. В ручном случае можно [перевезти VDisk'и](moving_vdisks.md#moving_vdisk) по одному с перегруженных устройств. В полуавтоматическом случае @@ -19,6 +21,12 @@ ydb-dstool.py -e ydb.endpoint cluster balance Команда перевозит не более одного VDisk'а за запуск. +{% else %} + +В случае, если VDisk'и расположены на блочных устройствах не равномерно, можно [перевезти их](moving_vdisks.md#moving_vdisk) по одному с перегруженных устройств. + +{% endif %} + ## Изменение количествa слотов для VDisk'ов на PDisk'ах Для добавления групп хранения требуется переопределить конфиг хоста, увеличив для него количество слотов на PDisk'ах. diff --git a/ydb/docs/ru/core/maintenance/manual/index.md b/ydb/docs/ru/core/maintenance/manual/index.md index 09ac03c6e9..129d152189 100644 --- a/ydb/docs/ru/core/maintenance/manual/index.md +++ b/ydb/docs/ru/core/maintenance/manual/index.md @@ -1,7 +1,11 @@ # Обслуживание дисковой подсистемы кластера +{% if feature_ydb-tool %} + Управлять дисковой подсистемой кластера помогает утилита [ydb-dstool.py](ydb-dstool.md). +{% endif %} + ## Решение проблем неработоспособности кластера Кластер может быть неработоспособен по ряду причин: diff --git a/ydb/docs/ru/core/maintenance/manual/moving_vdisks.md b/ydb/docs/ru/core/maintenance/manual/moving_vdisks.md index 5e388b3515..a55c3fccec 100644 --- a/ydb/docs/ru/core/maintenance/manual/moving_vdisks.md +++ b/ydb/docs/ru/core/maintenance/manual/moving_vdisks.md @@ -1,5 +1,7 @@ # Перевоз VDisk'ов +{% if feature_ydb-tool %} + ## Увезти один из VDisk'ов с блочного устройства {#moving_vdisk} Для того чтобы перевезти VDisk'и с блочного устройства, надо зайти на узел по ssh и выполнить следующую команду. @@ -55,3 +57,47 @@ ydb-dstool.py -e ydb.endpoint vdisk list --format tsv --columns VDiskId --no-hea ```bash ydb-dstool.py -e ydb.endpoint pdisk set --status ACTIVE --pdisk-ids "[NodeId:PDiskId]" ``` + +{% else %} + +## Увезти один из VDisk'ов с блочного устройства {#moving_vdisk} + +Для того чтобы перевезти VDisk'и с блочного устройства, надо зайти на узел по ssh и выполнить следующую команду. + +```bash +kikimr admin bs config invoke --proto 'Command { ReassignGroupDisk { GroupId: <ID группы хранения> GroupGeneration: <Поколение группы хранения> FailRealmIdx: <FailRealm> FailDomainIdx: <FailDomain> VDiskIdx: <Номер слота> } }' +``` + +Нужную информацию для выполнения команды можно посмотреть во вьювере (ссылка). + +## Перевезти VDisk'и со сломанного/отсутствующего устройства {#removal_from_a_broken_device} + +В случае если SelfHeal выключен или не перевозит VDisk'и, данную операцию придется выполнить вручную. + +1. Убедиться в мониторинге, что VDisk действительно в нерабочем состоянии. + + Записать fqdn узла, ic-port, путь до VDisk'а, pdisk-id + +2. Зайти на любой узел кластера + +3. Выполнить перевоз VDisk'а + + ```bash + kikimr admin bs config invoke --proto 'Command { UpdateDriveStatus { HostKey: { Fqdn: "<host>" IcPort: <ic-port>} Path: "<Путь до партлейбла устройства>" PDiskId: <pdisk-id> Status: BROKEN } }' + ``` + +## Вернуть PDisk после развоза {#return_a_device_to_work} + +1. Убедиться в мониторинге, что PDisk в рабочем состоянии + + Записать fqdn узла, ic-port, путь до устройства, pdisk-id + +2. Зайти на любой узел кластера + +3. Вернуть PDisk + + ```bash + kikimr admin bs config invoke --proto 'Command { UpdateDriveStatus { HostKey: { Fqdn: "<host>" IcPort: <ic-port>} Path: "<Путь до партлейбла устройства>" PDiskId: <pdisk-id> Status: ACTIVE } }' + ``` + +{% endif %} diff --git a/ydb/docs/ru/core/maintenance/manual/scrubbing.md b/ydb/docs/ru/core/maintenance/manual/scrubbing.md index bc42548a11..f34223e6eb 100644 --- a/ydb/docs/ru/core/maintenance/manual/scrubbing.md +++ b/ydb/docs/ru/core/maintenance/manual/scrubbing.md @@ -1,5 +1,7 @@ # Включение/выключение Scrubbing +{% if feature_ydb-tool %} + Scrubbing процесс работает на кластере в бэкграунде. Он читает данные, проверяет их на целостность и, если нужно, востанавливает их целостность. Scrubbing работает циклами. У пользователя есть возможность регулировать интервал времени, который проходит от начала предыдущего цикла диска до начала следующего. Например, чтобы задать интервал равный 48 часам, введите команду: ``` @@ -17,3 +19,12 @@ ydb-dstool.py -e ydb.endpoint cluster set --scrub-periodicity disable ``` ydb-dstool.py -e ydb.endpoint cluster set --max-scrubbed-disks-at-once ``` + +{% else %} + +Настройки Scrub позволяют регулировать интервал времени, который проходит от начала предыдущего цикла скраббинга диска до начала следующего, а также максимальное число дисков, которые могут скрабиться одновременно. Значение по умолчанию — 1 месяц. +`$ kikimr admin bs config invoke --proto 'Command { UpdateSettings { ScrubPeriodicitySeconds: 86400 MaxScrubbedDisksAtOnce: 1 } }'` + +В случае, если ScrubPeriodicitySeconds равен 0, то Scrubbing выключен. + +{% endif %} diff --git a/ydb/docs/ru/core/maintenance/manual/selfheal.md b/ydb/docs/ru/core/maintenance/manual/selfheal.md index 236d0911bb..19b21b663d 100644 --- a/ydb/docs/ru/core/maintenance/manual/selfheal.md +++ b/ydb/docs/ru/core/maintenance/manual/selfheal.md @@ -12,6 +12,8 @@ SelfHeal позволяет: ## Включение и выключение SelfHeal {#on-off} +{% if feature_ydb-tool %} + {% list tabs %} - Включить SelfHeal @@ -32,6 +34,86 @@ SelfHeal позволяет: {% endlist %} +{% else %} + +{% list tabs %} + +- Включить SelfHeal + + 1. Чтобы включить обнаружение неисправных элементов, откройте страницу `http://localhost:8765/cms#show=config-items-25`. + 1. Зайдите на любой узел. + 1. Составьте файл обновленной конфигурации с включенным параметром `SentinelConfig { Enable: true }`. + + Пример файла `config.txt`: + + ```text + Actions { + AddConfigItem { + ConfigItem { + Config { + CmsConfig { + SentinelConfig { + Enable: true + } + } + } + } + } + } + ``` + + 1. Выполните команду: + + ```bash + kikimr admin console configs update config.txt + ``` + + 1. Чтобы включить перенос данных, выполните команду: + + ```bash + kikimr -s <endpoint> admin bs config invoke --proto 'Command{EnableSelfHeal{Enable: true}}' + ``` + +- Выключить SelfHeal + + 1. Чтобы выключить обнаружение неисправных элементов, откройте страницу `http://localhost:8765/cms#show=config-items-25`. + 1. Зайдите на любой узел. + 1. Составьте файл обновленной конфигурации с выключенным параметром `SentinelConfig { Enable: false }`. + + Пример файла `config.txt`: + + ```text + Actions { + AddConfigItem { + ConfigItem { + Config { + CmsConfig { + SentinelConfig { + Enable: false + } + } + } + } + } + } + ``` + + 1. Выполните команду: + + ```bash + kikimr admin console configs update config.txt + ``` + + 1. Чтобы выключить перенос данных, выполните команду: + + ```bash + kikimr -s <endpoint> admin bs config invoke --proto 'Command{EnableSelfHeal{Enable: false}}' + ``` + +{% endlist %} + +{% endif %} + ## Настройки SelfHeal {#settings} Вы можете настроить SelfHeal в **Viewer** → **Cluster Management System** → **CmsConfigItems**. @@ -70,6 +152,8 @@ SelfHeal позволяет: ## Работа с дисками-донорами {#disks} +{% if feature_ydb-tool %} + Диск-донор — это предыдущий VDisk после переноса данных, который продолжает хранить свои данные и отвечает только на запросы чтения от нового VDisk'а. При переносе с включенными дисками-донорами предыдущие VDisk'и продолжают функционировать до тех пор, пока данные не будут полностью перенесены на новые диски. Чтобы предотвратить потерю данных при переносе VDisk'а, включите возможность использования дисков-доноров: ```bash @@ -81,3 +165,21 @@ ydb-dstool.py -e ydb.endpoint cluster set --enable-donor-mode ```bash ydb-dstool.py -e ydb.endpoint cluster set --disable-donor-mode ``` + +{% else %} + +Чтобы предотвратить потерю данных при переносе VDisk'а, включите возможность использования дисков-доноров: + +```bash +kikimr admin bs config invoke --proto 'Command { UpdateSettings { EnableDonorMode: true } }' +``` + +Чтобы выключить диски-доноры, укажите `false` в параметре `EnableDonorMode` той же команды: + +```bash +kikimr admin bs config invoke --proto 'Command { UpdateSettings { EnableDonorMode: false } }' +``` + +Диск-донор — это предыдущий VDisk после переноса данных, который продолжает хранить свои данные и отвечает только на запросы чтения от нового VDisk'а. При переносе с включенными дисками-донорами предыдущие VDisk'и продолжают функционировать до тех пор, пока данные не будут полностью перенесены на новые диски. + +{% endif %} diff --git a/ydb/docs/ru/core/maintenance/manual/toc_i.yaml b/ydb/docs/ru/core/maintenance/manual/toc_i.yaml index d368bd817b..859c6e8d1d 100644 --- a/ydb/docs/ru/core/maintenance/manual/toc_i.yaml +++ b/ydb/docs/ru/core/maintenance/manual/toc_i.yaml @@ -1,6 +1,6 @@ items: -- name: Установка ydb-dstool - href: ydb-dstool.md +# - name: Установка ydb-dstool +# href: ydb-dstool.md - name: Способы предотвращения выхода за модель отказа href: failure_model.md - name: Балансировка нагрузки на диски |