From aea567cfbd385dae180809df03103db06e853017 Mon Sep 17 00:00:00 2001 From: Vitaliy Filippov Date: Sun, 21 May 2023 12:52:30 +0300 Subject: [PATCH] Slightly improve scrub docs --- docs/config/osd.en.md | 29 +++++++++++++++------------ docs/config/osd.ru.md | 32 +++++++++++++++++------------- docs/config/src/osd.yml | 41 +++++++++++++++++++++++++-------------- docs/intro/features.en.md | 2 +- docs/intro/features.ru.md | 2 +- mon/mon.js | 2 +- 6 files changed, 65 insertions(+), 43 deletions(-) diff --git a/docs/config/osd.en.md b/docs/config/osd.en.md index 093fdbb99..1ec108d5f 100644 --- a/docs/config/osd.en.md +++ b/docs/config/osd.en.md @@ -39,8 +39,8 @@ them, even without restarting by updating configuration in etcd. - [throttle_target_parallelism](#throttle_target_parallelism) - [throttle_threshold_us](#throttle_threshold_us) - [osd_memlock](#osd_memlock) -- [no_scrub](#no_scrub) - [auto_scrub](#auto_scrub) +- [no_scrub](#no_scrub) - [scrub_interval](#scrub_interval) - [scrub_queue_depth](#scrub_queue_depth) - [scrub_sleep](#scrub_sleep) @@ -343,23 +343,28 @@ doesn't need to be changed. Lock all OSD memory to prevent it from being unloaded into swap with mlockall(). Requires sufficient ulimit -l (max locked memory). -## no_scrub - -- Type: boolean -- Default: false -- Can be changed online: yes - -Disable data scrubbing (background consistency check), even if it is scheduled. - ## auto_scrub - Type: boolean - Default: false - Can be changed online: yes -Schedule data scrubbing to run every `scrub_interval` automatically. You can -start/schedule scrubbing manually by updating `next_scrub` key in -`/pg/history/...` values in etcd if it is disabled. +Data scrubbing is the process of background verification of copies to find +and repair corrupted blocks. It's not run automatically by default since +it's a new feature. Set this parameter to true to enable automatic scrubs. + +This parameter makes OSDs automatically schedule data scrubbing of clean PGs +every `scrub_interval` (see below). You can also start/schedule scrubbing +manually by setting `next_scrub` JSON key to the desired UNIX time of the +next scrub in `/pg/history/...` values in etcd. + +## no_scrub + +- Type: boolean +- Default: false +- Can be changed online: yes + +Temporarily disable scrubbing and stop running scrubs. ## scrub_interval diff --git a/docs/config/osd.ru.md b/docs/config/osd.ru.md index 7dd8d4304..2e4e6ca28 100644 --- a/docs/config/osd.ru.md +++ b/docs/config/osd.ru.md @@ -40,8 +40,8 @@ - [throttle_target_parallelism](#throttle_target_parallelism) - [throttle_threshold_us](#throttle_threshold_us) - [osd_memlock](#osd_memlock) -- [no_scrub](#no_scrub) - [auto_scrub](#auto_scrub) +- [no_scrub](#no_scrub) - [scrub_interval](#scrub_interval) - [scrub_queue_depth](#scrub_queue_depth) - [scrub_sleep](#scrub_sleep) @@ -358,24 +358,30 @@ Flusher - это микро-поток (корутина), которая коп в пространство подкачки. Требует достаточного значения ulimit -l (лимита заблокированной памяти). -## no_scrub - -- Тип: булево (да/нет) -- Значение по умолчанию: false -- Можно менять на лету: да - -Отключить скрабы (фоновую проверку данных), даже если она запланирована. - ## auto_scrub - Тип: булево (да/нет) - Значение по умолчанию: false - Можно менять на лету: да -Автоматически планировать фоновую проверку данных раз в `scrub_interval`. Вы -можете запустить или запланировать проверку вручную, обновляя значение ключа -`next_scrub` внутри значений `/pg/history/...` в etcd, если автоматическое -планирование отключено. +Скраб - процесс фоновой проверки копий данных, предназначенный, чтобы +находить и исправлять повреждённые блоки. По умолчанию эти проверки ещё не +запускаются автоматически, так как являются новой функцией. Чтобы включить +автоматическое планирование скрабов, установите данный параметр в true. + +Включённый параметр заставляет OSD автоматически планировать фоновую +проверку чистых PG раз в `scrub_interval` (см. ниже). Вы также можете +запустить или запланировать проверку вручную, установив значение ключа JSON +`next_scrub` внутри ключей etcd `/pg/history/...` в UNIX-время следующей +желаемой проверки. + +## no_scrub + +- Тип: булево (да/нет) +- Значение по умолчанию: false +- Можно менять на лету: да + +Временно отключить и остановить запущенные скрабы. ## scrub_interval diff --git a/docs/config/src/osd.yml b/docs/config/src/osd.yml index e93ec0250..164daa4d9 100644 --- a/docs/config/src/osd.yml +++ b/docs/config/src/osd.yml @@ -382,27 +382,38 @@ Блокировать всю память OSD с помощью mlockall, чтобы запретить её выгрузку в пространство подкачки. Требует достаточного значения ulimit -l (лимита заблокированной памяти). -- name: no_scrub - type: bool - default: false - online: true - info: | - Disable data scrubbing (background consistency check), even if it is scheduled. - info_ru: | - Отключить скрабы (фоновую проверку данных), даже если она запланирована. - name: auto_scrub type: bool default: false online: true info: | - Schedule data scrubbing to run every `scrub_interval` automatically. You can - start/schedule scrubbing manually by updating `next_scrub` key in - `/pg/history/...` values in etcd if it is disabled. + Data scrubbing is the process of background verification of copies to find + and repair corrupted blocks. It's not run automatically by default since + it's a new feature. Set this parameter to true to enable automatic scrubs. + + This parameter makes OSDs automatically schedule data scrubbing of clean PGs + every `scrub_interval` (see below). You can also start/schedule scrubbing + manually by setting `next_scrub` JSON key to the desired UNIX time of the + next scrub in `/pg/history/...` values in etcd. info_ru: | - Автоматически планировать фоновую проверку данных раз в `scrub_interval`. Вы - можете запустить или запланировать проверку вручную, обновляя значение ключа - `next_scrub` внутри значений `/pg/history/...` в etcd, если автоматическое - планирование отключено. + Скраб - процесс фоновой проверки копий данных, предназначенный, чтобы + находить и исправлять повреждённые блоки. По умолчанию эти проверки ещё не + запускаются автоматически, так как являются новой функцией. Чтобы включить + автоматическое планирование скрабов, установите данный параметр в true. + + Включённый параметр заставляет OSD автоматически планировать фоновую + проверку чистых PG раз в `scrub_interval` (см. ниже). Вы также можете + запустить или запланировать проверку вручную, установив значение ключа JSON + `next_scrub` внутри ключей etcd `/pg/history/...` в UNIX-время следующей + желаемой проверки. +- name: no_scrub + type: bool + default: false + online: true + info: | + Temporarily disable scrubbing and stop running scrubs. + info_ru: | + Временно отключить и остановить запущенные скрабы. - name: scrub_interval type: string default: 30d diff --git a/docs/intro/features.en.md b/docs/intro/features.en.md index ef435c2b5..50c4b9a8d 100644 --- a/docs/intro/features.en.md +++ b/docs/intro/features.en.md @@ -29,7 +29,7 @@ - Snapshots and copy-on-write image clones - [Write throttling to smooth random write workloads in SSD+HDD configurations](../config/osd.en.md#throttle_small_writes) - [RDMA/RoCEv2 support via libibverbs](../config/network.en.md#rdma_device) -- [Scrubbing without checksums](../config/osd.en.md#no_scrub) (verification of copies) +- [Scrubbing without checksums](../config/osd.en.md#auto_scrub) (verification of copies) ## Plugins and tools diff --git a/docs/intro/features.ru.md b/docs/intro/features.ru.md index dc5fa6931..3296b9018 100644 --- a/docs/intro/features.ru.md +++ b/docs/intro/features.ru.md @@ -31,7 +31,7 @@ - Снапшоты и copy-on-write клоны - [Сглаживание производительности случайной записи в SSD+HDD конфигурациях](../config/osd.ru.md#throttle_small_writes) - [Поддержка RDMA/RoCEv2 через libibverbs](../config/network.ru.md#rdma_device) -- [Фоновая проверка целостности без контрольных сумм](../config/osd.ru.md#no_scrub) (сверка копий) +- [Фоновая проверка целостности без контрольных сумм](../config/osd.ru.md#auto_scrub) (сверка копий) ## Драйверы и инструменты diff --git a/mon/mon.js b/mon/mon.js index 7041b23a9..da0bb6a4f 100644 --- a/mon/mon.js +++ b/mon/mon.js @@ -111,8 +111,8 @@ const etcd_tree = { print_stats_interval: 3, slow_log_interval: 10, inode_vanish_time: 60, - no_scrub: false, auto_scrub: false, + no_scrub: false, scrub_interval: '30d', // 1s/1m/1h/1d scrub_queue_depth: 1, scrub_sleep: 0, // milliseconds