diff --git a/docs/config/common.en.md b/docs/config/common.en.md index eaba93b3..a441f258 100644 --- a/docs/config/common.en.md +++ b/docs/config/common.en.md @@ -25,11 +25,16 @@ running if required parameters are specified. ## etcd_address - Type: string or array of strings +- Can be changed online: yes etcd connection endpoint(s). Multiple endpoints may be delimited by "," or specified in a JSON array `["10.0.115.10:2379/v3","10.0.115.11:2379/v3"]`. Note that https is not supported for etcd connections yet. +etcd connection endpoints can be changed online by updating global +configuration in etcd itself - this allows to switch the cluster to new +etcd addresses without downtime. + ## etcd_prefix - Type: string @@ -42,5 +47,6 @@ example, use a single etcd cluster for multiple Vitastor clusters. - Type: integer - Default: 0 +- Can be changed online: yes Log level. Raise if you want more verbose output. diff --git a/docs/config/common.ru.md b/docs/config/common.ru.md index 15aff53e..2c82aac9 100644 --- a/docs/config/common.ru.md +++ b/docs/config/common.ru.md @@ -24,10 +24,14 @@ ## etcd_address - Тип: строка или массив строк +- Можно менять на лету: да Адрес(а) подключения к etcd. Несколько адресов могут разделяться запятой или указываться в виде JSON-массива `["10.0.115.10:2379/v3","10.0.115.11:2379/v3"]`. +Адреса подключения к etcd можно поменять на лету, обновив конфигурацию в +самом etcd - это позволяет переключить кластер на новые etcd без остановки. + ## etcd_prefix - Тип: строка @@ -41,5 +45,6 @@ - Тип: целое число - Значение по умолчанию: 0 +- Можно менять на лету: да Уровень логгирования. Повысьте, если хотите более подробный вывод. diff --git a/docs/config/network.en.md b/docs/config/network.en.md index bc85ed37..b4d152bb 100644 --- a/docs/config/network.en.md +++ b/docs/config/network.en.md @@ -153,6 +153,7 @@ operations. - Type: seconds - Default: 5 - Minimum: 1 +- Can be changed online: yes Interval before attempting to reconnect to an unavailable OSD. @@ -161,6 +162,7 @@ Interval before attempting to reconnect to an unavailable OSD. - Type: seconds - Default: 5 - Minimum: 1 +- Can be changed online: yes Timeout for OSD connection attempts. @@ -169,6 +171,7 @@ Timeout for OSD connection attempts. - Type: seconds - Default: 5 - Minimum: 1 +- Can be changed online: yes OSD connection inactivity time after which clients and other OSDs send keepalive requests to check state of the connection. @@ -178,6 +181,7 @@ keepalive requests to check state of the connection. - Type: seconds - Default: 5 - Minimum: 1 +- Can be changed online: yes Maximum time to wait for OSD keepalive responses. If an OSD doesn't respond within this time, the connection to it is dropped and a reconnection attempt @@ -188,6 +192,7 @@ is scheduled. - Type: milliseconds - Default: 500 - Minimum: 50 +- Can be changed online: yes OSDs respond to clients with a special error code when they receive I/O requests for a PG that's not synchronized and started. This parameter sets @@ -197,6 +202,7 @@ the time for the clients to wait before re-attempting such I/O requests. - Type: integer - Default: 5 +- Can be changed online: yes Maximum number of attempts for etcd requests which can't be retried indefinitely. @@ -205,6 +211,7 @@ indefinitely. - Type: milliseconds - Default: 1000 +- Can be changed online: yes Timeout for etcd requests which should complete quickly, like lease refresh. @@ -212,6 +219,7 @@ Timeout for etcd requests which should complete quickly, like lease refresh. - Type: milliseconds - Default: 5000 +- Can be changed online: yes Timeout for etcd requests which are allowed to wait for some time. @@ -219,6 +227,7 @@ Timeout for etcd requests which are allowed to wait for some time. - Type: seconds - Default: max(30, etcd_report_interval*2) +- Can be changed online: yes Timeout for etcd connection HTTP Keep-Alive. Should be higher than etcd_report_interval to guarantee that keepalive actually works. @@ -227,6 +236,7 @@ etcd_report_interval to guarantee that keepalive actually works. - Type: seconds - Default: 30 +- Can be changed online: yes etcd websocket ping interval required to keep the connection alive and detect disconnections quickly. @@ -235,6 +245,7 @@ detect disconnections quickly. - Type: integer - Default: 33554432 +- Can be changed online: yes Without immediate_commit=all this parameter sets the limit of "dirty" (not committed by fsync) data allowed by the client before forcing an diff --git a/docs/config/network.ru.md b/docs/config/network.ru.md index 4779fcf5..f82c5d4c 100644 --- a/docs/config/network.ru.md +++ b/docs/config/network.ru.md @@ -161,6 +161,7 @@ OSD в любом случае согласовывают реальное зн - Тип: секунды - Значение по умолчанию: 5 - Минимальное значение: 1 +- Можно менять на лету: да Время ожидания перед повторной попыткой соединиться с недоступным OSD. @@ -169,6 +170,7 @@ OSD в любом случае согласовывают реальное зн - Тип: секунды - Значение по умолчанию: 5 - Минимальное значение: 1 +- Можно менять на лету: да Максимальное время ожидания попытки соединения с OSD. @@ -177,6 +179,7 @@ OSD в любом случае согласовывают реальное зн - Тип: секунды - Значение по умолчанию: 5 - Минимальное значение: 1 +- Можно менять на лету: да Время неактивности соединения с OSD, после которого клиенты или другие OSD посылают запрос проверки состояния соединения. @@ -186,6 +189,7 @@ OSD в любом случае согласовывают реальное зн - Тип: секунды - Значение по умолчанию: 5 - Минимальное значение: 1 +- Можно менять на лету: да Максимальное время ожидания ответа на запрос проверки состояния соединения. Если OSD не отвечает за это время, соединение отключается и производится @@ -196,6 +200,7 @@ OSD в любом случае согласовывают реальное зн - Тип: миллисекунды - Значение по умолчанию: 500 - Минимальное значение: 50 +- Можно менять на лету: да Когда OSD получают от клиентов запросы ввода-вывода, относящиеся к не поднятым на данный момент на них PG, либо к PG в процессе синхронизации, @@ -207,6 +212,7 @@ OSD в любом случае согласовывают реальное зн - Тип: целое число - Значение по умолчанию: 5 +- Можно менять на лету: да Максимальное число попыток выполнения запросов к etcd для тех запросов, которые нельзя повторять бесконечно. @@ -215,6 +221,7 @@ OSD в любом случае согласовывают реальное зн - Тип: миллисекунды - Значение по умолчанию: 1000 +- Можно менять на лету: да Максимальное время выполнения запросов к etcd, которые должны завершаться быстро, таких, как обновление резервации (lease). @@ -223,6 +230,7 @@ OSD в любом случае согласовывают реальное зн - Тип: миллисекунды - Значение по умолчанию: 5000 +- Можно менять на лету: да Максимальное время выполнения запросов к etcd, для которых не обязательно гарантировать быстрое выполнение. @@ -231,6 +239,7 @@ OSD в любом случае согласовывают реальное зн - Тип: секунды - Значение по умолчанию: max(30, etcd_report_interval*2) +- Можно менять на лету: да Таймаут для HTTP Keep-Alive в соединениях к etcd. Должен быть больше, чем etcd_report_interval, чтобы keepalive гарантированно работал. @@ -239,6 +248,7 @@ etcd_report_interval, чтобы keepalive гарантированно рабо - Тип: секунды - Значение по умолчанию: 30 +- Можно менять на лету: да Интервал проверки живости вебсокет-подключений к etcd. @@ -246,6 +256,7 @@ etcd_report_interval, чтобы keepalive гарантированно рабо - Тип: целое число - Значение по умолчанию: 33554432 +- Можно менять на лету: да При работе без immediate_commit=all - это лимит объёма "грязных" (не зафиксированных fsync-ом) данных, при достижении которого клиент будет diff --git a/docs/config/osd.en.md b/docs/config/osd.en.md index 6f7d2dbd..0624eb48 100644 --- a/docs/config/osd.en.md +++ b/docs/config/osd.en.md @@ -7,7 +7,8 @@ # Runtime OSD Parameters These parameters only apply to OSDs, are not fixed at the moment of OSD drive -initialization and can be changed with an OSD restart. +initialization and can be changed - either with an OSD restart or, for some of +them, even without restarting by updating configuration in etcd. - [etcd_report_interval](#etcd_report_interval) - [run_primary](#run_primary) @@ -91,6 +92,7 @@ OSD by hand. - Type: seconds - Default: 5 +- Can be changed online: yes Time interval at which automatic fsyncs/flushes are issued by each OSD when the immediate_commit mode if disabled. fsyncs are required because without @@ -103,6 +105,7 @@ issue fsyncs at all. - Type: integer - Default: 128 +- Can be changed online: yes Same as autosync_interval, but sets the maximum number of uncommitted write operations before issuing an fsync operation internally. @@ -111,6 +114,7 @@ operations before issuing an fsync operation internally. - Type: integer - Default: 4 +- Can be changed online: yes Maximum recovery operations per one primary OSD at any given moment of time. Currently it's the only parameter available to tune the speed or recovery @@ -120,6 +124,7 @@ and rebalancing, but it's planned to implement more. - Type: integer - Default: 128 +- Can be changed online: yes Number of recovery operations before switching to recovery of the next PG. The idea is to mix all PGs during recovery for more even space and load @@ -130,6 +135,7 @@ Degraded PGs are anyway scanned first. - Type: integer - Default: 16 +- Can be changed online: yes Maximum number of recovery operations before issuing an additional fsync. @@ -145,6 +151,7 @@ the underlying device. This may be useful for recovery purposes. - Type: boolean - Default: false +- Can be changed online: yes Disable automatic background recovery of objects. Note that it doesn't affect implicit recovery of objects happening during writes - a write is @@ -154,6 +161,7 @@ always made to a full set of at least pg_minsize OSDs. - Type: boolean - Default: false +- Can be changed online: yes Disable background movement of data between different OSDs. Disabling it means that PGs in the `has_misplaced` state will be left in it indefinitely. @@ -162,6 +170,7 @@ means that PGs in the `has_misplaced` state will be left in it indefinitely. - Type: seconds - Default: 3 +- Can be changed online: yes Time interval at which OSDs print simple human-readable operation statistics on stdout. @@ -170,6 +179,7 @@ statistics on stdout. - Type: seconds - Default: 10 +- Can be changed online: yes Time interval at which OSDs dump slow or stuck operations on stdout, if they're any. Also it's the time after which an operation is considered @@ -179,6 +189,7 @@ they're any. Also it's the time after which an operation is considered - Type: seconds - Default: 60 +- Can be changed online: yes Number of seconds after which a deleted inode is removed from OSD statistics. @@ -186,6 +197,7 @@ Number of seconds after which a deleted inode is removed from OSD statistics. - Type: integer - Default: 128 +- Can be changed online: yes Parallel client write operation limit per one OSD. Operations that exceed this limit are pushed to a temporary queue instead of being executed @@ -195,6 +207,7 @@ immediately. - Type: integer - Default: 1 +- Can be changed online: yes Flusher is a micro-thread that moves data from the journal to the data area of the device. Their number is auto-tuned between minimum and maximum. @@ -204,6 +217,7 @@ Minimum number is set by this parameter. - Type: integer - Default: 256 +- Can be changed online: yes Maximum number of journal flushers (see above min_flusher_count). @@ -260,6 +274,7 @@ Most (99%) other SSDs don't need this option. - Type: boolean - Default: false +- Can be changed online: yes Enable soft throttling of small journaled writes. Useful for hybrid OSDs with fast journal/metadata devices and slow data devices. The idea is that @@ -277,6 +292,7 @@ fills up. - Type: integer - Default: 100 +- Can be changed online: yes Target maximum number of throttled operations per second under the condition of full journal. Set it to approximate random write iops of your data devices @@ -286,6 +302,7 @@ of full journal. Set it to approximate random write iops of your data devices - Type: integer - Default: 100 +- Can be changed online: yes Target maximum bandwidth in MB/s of throttled operations per second under the condition of full journal. Set it to approximate linear write @@ -295,6 +312,7 @@ performance of your data devices (HDDs). - Type: integer - Default: 1 +- Can be changed online: yes Target maximum parallelism of throttled operations under the condition of full journal. Set it to approximate internal parallelism of your data @@ -304,6 +322,7 @@ devices (1 for HDDs, 4-8 for SSDs). - Type: microseconds - Default: 50 +- Can be changed online: yes Minimal computed delay to be applied to throttled operations. Usually doesn't need to be changed. diff --git a/docs/config/osd.ru.md b/docs/config/osd.ru.md index f52ef7fb..8e193931 100644 --- a/docs/config/osd.ru.md +++ b/docs/config/osd.ru.md @@ -8,7 +8,8 @@ Данные параметры используются только OSD, но, в отличие от дисковых параметров, не фиксируются в момент инициализации дисков OSD и могут быть изменены в любой -момент с перезапуском OSD. +момент с помощью перезапуска OSD, а некоторые и без перезапуска, с помощью +изменения конфигурации в etcd. - [etcd_report_interval](#etcd_report_interval) - [run_primary](#run_primary) @@ -93,6 +94,7 @@ RUNNING), подходящий под заданную маску. Также н - Тип: секунды - Значение по умолчанию: 5 +- Можно менять на лету: да Временной интервал отправки автоматических fsync-ов (операций очистки кэша) каждым OSD для случая, когда режим immediate_commit отключён. fsync-и нужны @@ -105,6 +107,7 @@ OSD, чтобы успевать очищать журнал - без них OSD - Тип: целое число - Значение по умолчанию: 128 +- Можно менять на лету: да Аналогично autosync_interval, но задаёт не временной интервал, а максимальное количество незафиксированных операций записи перед @@ -114,6 +117,7 @@ OSD, чтобы успевать очищать журнал - без них OSD - Тип: целое число - Значение по умолчанию: 4 +- Можно менять на лету: да Максимальное число операций восстановления на одном первичном OSD в любой момент времени. На данный момент единственный параметр, который можно менять @@ -124,6 +128,7 @@ OSD, чтобы успевать очищать журнал - без них OSD - Тип: целое число - Значение по умолчанию: 128 +- Можно менять на лету: да Число операций восстановления перед переключением на восстановление другой PG. Идея заключается в том, чтобы восстанавливать все PG одновременно для более @@ -135,6 +140,7 @@ OSD, чтобы успевать очищать журнал - без них OSD - Тип: целое число - Значение по умолчанию: 16 +- Можно менять на лету: да Максимальное число операций восстановления перед дополнительным fsync. @@ -150,6 +156,7 @@ OSD, чтобы успевать очищать журнал - без них OSD - Тип: булево (да/нет) - Значение по умолчанию: false +- Можно менять на лету: да Отключить автоматическое фоновое восстановление объектов. Обратите внимание, что эта опция не отключает восстановление объектов, происходящее при @@ -160,6 +167,7 @@ OSD. - Тип: булево (да/нет) - Значение по умолчанию: false +- Можно менять на лету: да Отключить фоновое перемещение объектов между разными OSD. Отключение означает, что PG, находящиеся в состоянии `has_misplaced`, будут оставлены @@ -169,6 +177,7 @@ OSD. - Тип: секунды - Значение по умолчанию: 3 +- Можно менять на лету: да Временной интервал, с которым OSD печатают простую человекочитаемую статистику выполнения операций в стандартный вывод. @@ -177,6 +186,7 @@ OSD. - Тип: секунды - Значение по умолчанию: 10 +- Можно менять на лету: да Временной интервал, с которым OSD выводят в стандартный вывод список медленных или зависших операций, если таковые имеются. Также время, при @@ -186,6 +196,7 @@ OSD. - Тип: секунды - Значение по умолчанию: 60 +- Можно менять на лету: да Число секунд, через которое удалённые инод удаляется и из статистики OSD. @@ -193,6 +204,7 @@ OSD. - Тип: целое число - Значение по умолчанию: 128 +- Можно менять на лету: да Максимальное число одновременных клиентских операций записи на один OSD. Операции, превышающие этот лимит, не исполняются сразу, а сохраняются во @@ -202,6 +214,7 @@ OSD. - Тип: целое число - Значение по умолчанию: 1 +- Можно менять на лету: да Flusher - это микро-поток (корутина), которая копирует данные из журнала в основную область устройства данных. Их число настраивается динамически между @@ -211,6 +224,7 @@ Flusher - это микро-поток (корутина), которая коп - Тип: целое число - Значение по умолчанию: 256 +- Можно менять на лету: да Максимальное число микро-потоков очистки журнала (см. выше min_flusher_count). @@ -270,6 +284,7 @@ Flusher - это микро-поток (корутина), которая коп - Тип: булево (да/нет) - Значение по умолчанию: false +- Можно менять на лету: да Разрешить мягкое ограничение скорости журналируемой записи. Полезно для гибридных OSD с быстрыми устройствами метаданных и медленными устройствами @@ -288,6 +303,7 @@ Flusher - это микро-поток (корутина), которая коп - Тип: целое число - Значение по умолчанию: 100 +- Можно менять на лету: да Расчётное максимальное число ограничиваемых операций в секунду при условии отсутствия свободного места в журнале. Устанавливайте приблизительно равным @@ -298,6 +314,7 @@ Flusher - это микро-поток (корутина), которая коп - Тип: целое число - Значение по умолчанию: 100 +- Можно менять на лету: да Расчётный максимальный размер в МБ/с ограничиваемых операций в секунду при условии отсутствия свободного места в журнале. Устанавливайте приблизительно @@ -308,6 +325,7 @@ Flusher - это микро-поток (корутина), которая коп - Тип: целое число - Значение по умолчанию: 1 +- Можно менять на лету: да Расчётный максимальный параллелизм ограничиваемых операций в секунду при условии отсутствия свободного места в журнале. Устанавливайте приблизительно @@ -318,6 +336,7 @@ Flusher - это микро-поток (корутина), которая коп - Тип: микросекунды - Значение по умолчанию: 50 +- Можно менять на лету: да Минимальная применимая к ограничиваемым операциям задержка. Обычно не требует изменений. diff --git a/docs/config/src/common.yml b/docs/config/src/common.yml index 46a004d8..abfe5f55 100644 --- a/docs/config/src/common.yml +++ b/docs/config/src/common.yml @@ -11,13 +11,21 @@ - name: etcd_address type: string or array of strings type_ru: строка или массив строк + online: true info: | etcd connection endpoint(s). Multiple endpoints may be delimited by "," or specified in a JSON array `["10.0.115.10:2379/v3","10.0.115.11:2379/v3"]`. Note that https is not supported for etcd connections yet. + + etcd connection endpoints can be changed online by updating global + configuration in etcd itself - this allows to switch the cluster to new + etcd addresses without downtime. info_ru: | Адрес(а) подключения к etcd. Несколько адресов могут разделяться запятой или указываться в виде JSON-массива `["10.0.115.10:2379/v3","10.0.115.11:2379/v3"]`. + + Адреса подключения к etcd можно поменять на лету, обновив конфигурацию в + самом etcd - это позволяет переключить кластер на новые etcd без остановки. - name: etcd_prefix type: string default: "/vitastor" @@ -31,5 +39,6 @@ - name: log_level type: int default: 0 + online: true info: Log level. Raise if you want more verbose output. info_ru: Уровень логгирования. Повысьте, если хотите более подробный вывод. diff --git a/docs/config/src/make.js b/docs/config/src/make.js index d0db1104..37a94022 100755 --- a/docs/config/src/make.js +++ b/docs/config/src/make.js @@ -14,6 +14,7 @@ const L = { toc_config: '[Configuration](../config.en.md)', toc_usage: 'Usage', toc_performance: 'Performance', + online: 'Can be changed online: yes', }, ru: { Documentation: 'Документация', @@ -28,6 +29,7 @@ const L = { toc_config: '[Конфигурация](../config.ru.md)', toc_usage: 'Использование', toc_performance: 'Производительность', + online: 'Можно менять на лету: да', }, }; const types = { @@ -70,6 +72,8 @@ for (const file of params_files) out += `- ${L[lang]['Default'] || 'Default'}: ${c.default}\n`; if (c.min !== undefined) out += `- ${L[lang]['Minimum'] || 'Minimum'}: ${c.min}\n`; + if (c.online) + out += `- ${L[lang]['online'] || 'Can be changed online: yes'}\n`; out += `\n`+(c["info_"+lang] || c["info"]).replace(/\s+$/, ''); } const head = fs.readFileSync(__dirname+'/'+file+'.'+lang+'.md', { encoding: 'utf-8' }); diff --git a/docs/config/src/network.yml b/docs/config/src/network.yml index 8032ef44..b3d92a21 100644 --- a/docs/config/src/network.yml +++ b/docs/config/src/network.yml @@ -164,18 +164,21 @@ type: sec min: 1 default: 5 + online: true info: Interval before attempting to reconnect to an unavailable OSD. info_ru: Время ожидания перед повторной попыткой соединиться с недоступным OSD. - name: peer_connect_timeout type: sec min: 1 default: 5 + online: true info: Timeout for OSD connection attempts. info_ru: Максимальное время ожидания попытки соединения с OSD. - name: osd_idle_timeout type: sec min: 1 default: 5 + online: true info: | OSD connection inactivity time after which clients and other OSDs send keepalive requests to check state of the connection. @@ -186,6 +189,7 @@ type: sec min: 1 default: 5 + online: true info: | Maximum time to wait for OSD keepalive responses. If an OSD doesn't respond within this time, the connection to it is dropped and a reconnection attempt @@ -198,6 +202,7 @@ type: ms min: 50 default: 500 + online: true info: | OSDs respond to clients with a special error code when they receive I/O requests for a PG that's not synchronized and started. This parameter sets @@ -211,6 +216,7 @@ - name: max_etcd_attempts type: int default: 5 + online: true info: | Maximum number of attempts for etcd requests which can't be retried indefinitely. @@ -220,6 +226,7 @@ - name: etcd_quick_timeout type: ms default: 1000 + online: true info: | Timeout for etcd requests which should complete quickly, like lease refresh. info_ru: | @@ -228,6 +235,7 @@ - name: etcd_slow_timeout type: ms default: 5000 + online: true info: Timeout for etcd requests which are allowed to wait for some time. info_ru: | Максимальное время выполнения запросов к etcd, для которых не обязательно @@ -235,6 +243,7 @@ - name: etcd_keepalive_timeout type: sec default: max(30, etcd_report_interval*2) + online: true info: | Timeout for etcd connection HTTP Keep-Alive. Should be higher than etcd_report_interval to guarantee that keepalive actually works. @@ -244,6 +253,7 @@ - name: etcd_ws_keepalive_timeout type: sec default: 30 + online: true info: | etcd websocket ping interval required to keep the connection alive and detect disconnections quickly. @@ -252,6 +262,7 @@ - name: client_dirty_limit type: int default: 33554432 + online: true info: | Without immediate_commit=all this parameter sets the limit of "dirty" (not committed by fsync) data allowed by the client before forcing an diff --git a/docs/config/src/osd.en.md b/docs/config/src/osd.en.md index a5c12355..dfc2caf0 100644 --- a/docs/config/src/osd.en.md +++ b/docs/config/src/osd.en.md @@ -1,4 +1,5 @@ # Runtime OSD Parameters These parameters only apply to OSDs, are not fixed at the moment of OSD drive -initialization and can be changed with an OSD restart. +initialization and can be changed - either with an OSD restart or, for some of +them, even without restarting by updating configuration in etcd. diff --git a/docs/config/src/osd.ru.md b/docs/config/src/osd.ru.md index 4ca2ca04..41a68af6 100644 --- a/docs/config/src/osd.ru.md +++ b/docs/config/src/osd.ru.md @@ -2,4 +2,5 @@ Данные параметры используются только OSD, но, в отличие от дисковых параметров, не фиксируются в момент инициализации дисков OSD и могут быть изменены в любой -момент с перезапуском OSD. +момент с помощью перезапуска OSD, а некоторые и без перезапуска, с помощью +изменения конфигурации в etcd. diff --git a/docs/config/src/osd.yml b/docs/config/src/osd.yml index c5ee2489..33994718 100644 --- a/docs/config/src/osd.yml +++ b/docs/config/src/osd.yml @@ -66,6 +66,7 @@ - name: autosync_interval type: sec default: 5 + online: true info: | Time interval at which automatic fsyncs/flushes are issued by each OSD when the immediate_commit mode if disabled. fsyncs are required because without @@ -83,6 +84,7 @@ - name: autosync_writes type: int default: 128 + online: true info: | Same as autosync_interval, but sets the maximum number of uncommitted write operations before issuing an fsync operation internally. @@ -93,6 +95,7 @@ - name: recovery_queue_depth type: int default: 4 + online: true info: | Maximum recovery operations per one primary OSD at any given moment of time. Currently it's the only parameter available to tune the speed or recovery @@ -105,6 +108,7 @@ - name: recovery_pg_switch type: int default: 128 + online: true info: | Number of recovery operations before switching to recovery of the next PG. The idea is to mix all PGs during recovery for more even space and load @@ -119,6 +123,7 @@ - name: recovery_sync_batch type: int default: 16 + online: true info: Maximum number of recovery operations before issuing an additional fsync. info_ru: Максимальное число операций восстановления перед дополнительным fsync. - name: readonly @@ -133,6 +138,7 @@ - name: no_recovery type: bool default: false + online: true info: | Disable automatic background recovery of objects. Note that it doesn't affect implicit recovery of objects happening during writes - a write is @@ -145,6 +151,7 @@ - name: no_rebalance type: bool default: false + online: true info: | Disable background movement of data between different OSDs. Disabling it means that PGs in the `has_misplaced` state will be left in it indefinitely. @@ -155,6 +162,7 @@ - name: print_stats_interval type: sec default: 3 + online: true info: | Time interval at which OSDs print simple human-readable operation statistics on stdout. @@ -164,6 +172,7 @@ - name: slow_log_interval type: sec default: 10 + online: true info: | Time interval at which OSDs dump slow or stuck operations on stdout, if they're any. Also it's the time after which an operation is considered @@ -175,6 +184,7 @@ - name: inode_vanish_time type: sec default: 60 + online: true info: | Number of seconds after which a deleted inode is removed from OSD statistics. info_ru: | @@ -182,6 +192,7 @@ - name: max_write_iodepth type: int default: 128 + online: true info: | Parallel client write operation limit per one OSD. Operations that exceed this limit are pushed to a temporary queue instead of being executed @@ -193,6 +204,7 @@ - name: min_flusher_count type: int default: 1 + online: true info: | Flusher is a micro-thread that moves data from the journal to the data area of the device. Their number is auto-tuned between minimum and maximum. @@ -204,6 +216,7 @@ - name: max_flusher_count type: int default: 256 + online: true info: | Maximum number of journal flushers (see above min_flusher_count). info_ru: | @@ -284,6 +297,7 @@ - name: throttle_small_writes type: bool default: false + online: true info: | Enable soft throttling of small journaled writes. Useful for hybrid OSDs with fast journal/metadata devices and slow data devices. The idea is that @@ -312,6 +326,7 @@ - name: throttle_target_iops type: int default: 100 + online: true info: | Target maximum number of throttled operations per second under the condition of full journal. Set it to approximate random write iops of your data devices @@ -324,6 +339,7 @@ - name: throttle_target_mbs type: int default: 100 + online: true info: | Target maximum bandwidth in MB/s of throttled operations per second under the condition of full journal. Set it to approximate linear write @@ -336,6 +352,7 @@ - name: throttle_target_parallelism type: int default: 1 + online: true info: | Target maximum parallelism of throttled operations under the condition of full journal. Set it to approximate internal parallelism of your data @@ -348,6 +365,7 @@ - name: throttle_threshold_us type: us default: 50 + online: true info: | Minimal computed delay to be applied to throttled operations. Usually doesn't need to be changed. diff --git a/mon/mon.js b/mon/mon.js index 76bbd959..9e4e2e46 100644 --- a/mon/mon.js +++ b/mon/mon.js @@ -104,6 +104,7 @@ const etcd_tree = { autosync_writes: 128, client_queue_depth: 128, // unused recovery_queue_depth: 4, + recovery_pg_switch: 128, recovery_sync_batch: 16, no_recovery: false, no_rebalance: false,