Change > to | to preserve newlines

non-odp-rdma
Vitaliy Filippov 2022-01-29 11:01:33 +03:00
parent f712967079
commit 63de79d1b2
6 changed files with 131 additions and 131 deletions

View File

@ -1,30 +1,30 @@
- name: config_path - name: config_path
type: string type: string
default: "/etc/vitastor/vitastor.conf" default: "/etc/vitastor/vitastor.conf"
info: > info: |
Path to the JSON configuration file. Configuration file is optional, Path to the JSON configuration file. Configuration file is optional,
a non-existing configuration file does not prevent Vitastor from a non-existing configuration file does not prevent Vitastor from
running if required parameters are specified. running if required parameters are specified.
info_ru: > info_ru: |
Путь к файлу конфигурации в формате JSON. Файл конфигурации необязателен, Путь к файлу конфигурации в формате JSON. Файл конфигурации необязателен,
без него Vitastor тоже будет работать, если переданы необходимые параметры. без него Vitastor тоже будет работать, если переданы необходимые параметры.
- name: etcd_address - name: etcd_address
type: string or array of strings type: string or array of strings
type_ru: строка или массив строк type_ru: строка или массив строк
info: > info: |
etcd connection endpoint(s). Multiple endpoints may be delimited by "," or 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"]`. 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. Note that https is not supported for etcd connections yet.
info_ru: > info_ru: |
Адрес(а) подключения к etcd. Несколько адресов могут разделяться запятой Адрес(а) подключения к etcd. Несколько адресов могут разделяться запятой
или указываться в виде JSON-массива `["10.0.115.10:2379/v3","10.0.115.11:2379/v3"]`. или указываться в виде JSON-массива `["10.0.115.10:2379/v3","10.0.115.11:2379/v3"]`.
- name: etcd_prefix - name: etcd_prefix
type: string type: string
default: "/vitastor" default: "/vitastor"
info: > info: |
Prefix for all keys in etcd Vitastor uses. You can change prefix and, for Prefix for all keys in etcd Vitastor uses. You can change prefix and, for
example, use a single etcd cluster for multiple Vitastor clusters. example, use a single etcd cluster for multiple Vitastor clusters.
info_ru: > info_ru: |
Префикс для ключей etcd, которые использует Vitastor. Вы можете задать другой Префикс для ключей etcd, которые использует Vitastor. Вы можете задать другой
префикс, например, чтобы запустить несколько кластеров Vitastor с одним префикс, например, чтобы запустить несколько кластеров Vitastor с одним
кластером etcd. кластером etcd.

View File

@ -1,7 +1,7 @@
- name: block_size - name: block_size
type: int type: int
default: 131072 default: 131072
info: > info: |
Size of objects (data blocks) into which all physical and virtual drives are Size of objects (data blocks) into which all physical and virtual drives are
subdivided in Vitastor. One of current main settings in Vitastor, affects subdivided in Vitastor. One of current main settings in Vitastor, affects
memory usage, write amplification and I/O load distribution effectiveness. memory usage, write amplification and I/O load distribution effectiveness.
@ -22,7 +22,7 @@
OSD memory usage is roughly (SIZE / BLOCK * 68 bytes) which is roughly OSD memory usage is roughly (SIZE / BLOCK * 68 bytes) which is roughly
544 MB per 1 TB of used disk space with default 128 KB block size. 544 MB per 1 TB of used disk space with default 128 KB block size.
info_ru: > info_ru: |
Размер объектов (блоков данных), на которые делятся физические и виртуальные Размер объектов (блоков данных), на которые делятся физические и виртуальные
диски в Vitastor. Одна из ключевых на данный момент настроек, влияет на диски в Vitastor. Одна из ключевых на данный момент настроек, влияет на
потребление памяти, объём избыточной записи (write amplification) и потребление памяти, объём избыточной записи (write amplification) и
@ -49,7 +49,7 @@
- name: disk_alignment - name: disk_alignment
type: int type: int
default: 4096 default: 4096
info: > info: |
Required physical disk write alignment. Most current SSD and HDD drives Required physical disk write alignment. Most current SSD and HDD drives
use 4 KB physical sectors even if they report 512 byte logical sector use 4 KB physical sectors even if they report 512 byte logical sector
size, so 4 KB is a good default setting. size, so 4 KB is a good default setting.
@ -63,7 +63,7 @@
with 512 byte sectors and use 512 byte disk_alignment, journal_block_size with 512 byte sectors and use 512 byte disk_alignment, journal_block_size
and meta_block_size. But the only SSD that may fit into this category is and meta_block_size. But the only SSD that may fit into this category is
Intel Optane (probably, not tested yet). Intel Optane (probably, not tested yet).
info_ru: > info_ru: |
Требуемое выравнивание записи на физические диски. Почти все современные Требуемое выравнивание записи на физические диски. Почти все современные
SSD и HDD диски используют 4 КБ физические секторы, даже если показывают SSD и HDD диски используют 4 КБ физические секторы, даже если показывают
логический размер сектора 512 байт, поэтому 4 КБ - хорошее значение по логический размер сектора 512 байт, поэтому 4 КБ - хорошее значение по
@ -83,12 +83,12 @@
- name: bitmap_granularity - name: bitmap_granularity
type: int type: int
default: 4096 default: 4096
info: > info: |
Required virtual disk write alignment ("sector size"). Must be a multiple Required virtual disk write alignment ("sector size"). Must be a multiple
of disk_alignment. It's called bitmap granularity because Vitastor tracks of disk_alignment. It's called bitmap granularity because Vitastor tracks
an allocation bitmap for each object containing 2 bits per each an allocation bitmap for each object containing 2 bits per each
(bitmap_granularity) bytes. (bitmap_granularity) bytes.
info_ru: > info_ru: |
Требуемое выравнивание записи на виртуальные диски (размер их "сектора"). Требуемое выравнивание записи на виртуальные диски (размер их "сектора").
Должен быть кратен disk_alignment. Называется гранулярностью битовой карты Должен быть кратен disk_alignment. Называется гранулярностью битовой карты
потому, что Vitastor хранит битовую карту для каждого объекта, содержащую потому, что Vitastor хранит битовую карту для каждого объекта, содержащую
@ -96,7 +96,7 @@
- name: immediate_commit - name: immediate_commit
type: string type: string
default: false default: false
info: > info: |
Another parameter which is really important for performance. Another parameter which is really important for performance.
Desktop SSDs are very fast (100000+ iops) for simple random writes Desktop SSDs are very fast (100000+ iops) for simple random writes
@ -139,7 +139,7 @@
write-through cache) for both data and journals in the whole Vitastor write-through cache) for both data and journals in the whole Vitastor
cluster. Set it to "small" if you only use such SSDs for journals. Leave cluster. Set it to "small" if you only use such SSDs for journals. Leave
empty if your drives have write-back cache. empty if your drives have write-back cache.
info_ru: > info_ru: |
Ещё один важный для производительности параметр. Ещё один важный для производительности параметр.
Модели SSD для настольных компьютеров очень быстрые (100000+ операций в Модели SSD для настольных компьютеров очень быстрые (100000+ операций в
@ -192,13 +192,13 @@
- name: client_dirty_limit - name: client_dirty_limit
type: int type: int
default: 33554432 default: 33554432
info: > info: |
Without immediate_commit=all this parameter sets the limit of "dirty" Without immediate_commit=all this parameter sets the limit of "dirty"
(not committed by fsync) data allowed by the client before forcing an (not committed by fsync) data allowed by the client before forcing an
additional fsync and committing the data. Also note that the client always additional fsync and committing the data. Also note that the client always
holds a copy of uncommitted data in memory so this setting also affects holds a copy of uncommitted data in memory so this setting also affects
RAM usage of clients. RAM usage of clients.
info_ru: > info_ru: |
При работе без immediate_commit=all - это лимит объёма "грязных" (не При работе без immediate_commit=all - это лимит объёма "грязных" (не
зафиксированных fsync-ом) данных, при достижении которого клиент будет зафиксированных fsync-ом) данных, при достижении которого клиент будет
принудительно вызывать fsync и фиксировать данные. Также стоит иметь в виду, принудительно вызывать fsync и фиксировать данные. Также стоит иметь в виду,

View File

@ -1,12 +1,12 @@
- name: data_device - name: data_device
type: string type: string
info: > info: |
Path to the block device to use for data. It's highly recommendded to use Path to the block device to use for data. It's highly recommendded to use
stable paths for all device names: `/dev/disk/by-partuuid/xxx...` instead stable paths for all device names: `/dev/disk/by-partuuid/xxx...` instead
of just `/dev/sda` or `/dev/nvme0n1` to not mess up after server restart. of just `/dev/sda` or `/dev/nvme0n1` to not mess up after server restart.
For testing purposes, files can also be used instead of block devices, but For testing purposes, files can also be used instead of block devices, but
that's not for a production environment, of course. that's not for a production environment, of course.
info_ru: > info_ru: |
Путь к диску (блочному устройству) для хранения данных. Крайне рекомендуется Путь к диску (блочному устройству) для хранения данных. Крайне рекомендуется
использовать стабильные пути: `/dev/disk/by-partuuid/xxx...` вместо простых использовать стабильные пути: `/dev/disk/by-partuuid/xxx...` вместо простых
`/dev/sda` или `/dev/nvme0n1`, чтобы пути не могли спутаться после `/dev/sda` или `/dev/nvme0n1`, чтобы пути не могли спутаться после
@ -14,23 +14,23 @@
использовать и простые файлы, но делать так в боевой среде не следует. использовать и простые файлы, но делать так в боевой среде не следует.
- name: meta_device - name: meta_device
type: string type: string
info: > info: |
Path to the block device to use for the metadata. Metadata must be on a fast Path to the block device to use for the metadata. Metadata must be on a fast
SSD or performance will suffer. If this option is skipped, `data_device` is SSD or performance will suffer. If this option is skipped, `data_device` is
used for the metadata. used for the metadata.
info_ru: > info_ru: |
Путь к диску метаданных. Метаданные должны располагаться на быстром Путь к диску метаданных. Метаданные должны располагаться на быстром
SSD-диске, иначе производительность пострадает. Если эта опция не указана, SSD-диске, иначе производительность пострадает. Если эта опция не указана,
для метаданных используется `data_device`. для метаданных используется `data_device`.
- name: journal_device - name: journal_device
type: string type: string
info: > info: |
Path to the block device to use for the journal. Journal must be on a fast Path to the block device to use for the journal. Journal must be on a fast
SSD or performance will suffer. If this option is skipped, `meta_device` is SSD or performance will suffer. If this option is skipped, `meta_device` is
used for the journal, and if it's also empty, journal is put on used for the journal, and if it's also empty, journal is put on
`data_device`. It's almost always fine to put metadata and journal on the `data_device`. It's almost always fine to put metadata and journal on the
same device, in this case you only need to set `meta_device`. same device, in this case you only need to set `meta_device`.
info_ru: > info_ru: |
Путь к диску журнала. Журнал должен располагаться на быстром SSD-диске, Путь к диску журнала. Журнал должен располагаться на быстром SSD-диске,
иначе производительность пострадает. Если эта опция не указана, иначе производительность пострадает. Если эта опция не указана,
для журнала используется `meta_device`, если же пуста и она, журнал для журнала используется `meta_device`, если же пуста и она, журнал
@ -43,12 +43,12 @@
info_ru: Смещение на устройстве в байтах, по которому располагается журнал. info_ru: Смещение на устройстве в байтах, по которому располагается журнал.
- name: journal_size - name: journal_size
type: int type: int
info: > info: |
Journal size in bytes. Doesn't have to be large, 16-32 MB is usually fine. Journal size in bytes. Doesn't have to be large, 16-32 MB is usually fine.
By default, the whole journal device will be used for the journal. You must By default, the whole journal device will be used for the journal. You must
set it to some value manually (or use make-osd.sh) if you colocate the set it to some value manually (or use make-osd.sh) if you colocate the
journal with data or metadata. journal with data or metadata.
info_ru: > info_ru: |
Размер журнала в байтах. Большим быть не обязан, 16-32 МБ обычно достаточно. Размер журнала в байтах. Большим быть не обязан, 16-32 МБ обычно достаточно.
По умолчанию для журнала используется всё устройство журнала. Если же вы По умолчанию для журнала используется всё устройство журнала. Если же вы
размещаете журнал на устройстве данных или метаданных, то вы должны размещаете журнал на устройстве данных или метаданных, то вы должны
@ -57,31 +57,31 @@
- name: meta_offset - name: meta_offset
type: int type: int
default: 0 default: 0
info: > info: |
Offset on the device in bytes where the metadata area is stored. Offset on the device in bytes where the metadata area is stored.
Again, set it to something if you colocate metadata with journal or data. Again, set it to something if you colocate metadata with journal or data.
info_ru: > info_ru: |
Смещение на устройстве в байтах, по которому располагаются метаданные. Смещение на устройстве в байтах, по которому располагаются метаданные.
Эту опцию нужно задать, если метаданные у вас хранятся на том же Эту опцию нужно задать, если метаданные у вас хранятся на том же
устройстве, что данные или журнал. устройстве, что данные или журнал.
- name: data_offset - name: data_offset
type: int type: int
default: 0 default: 0
info: > info: |
Offset on the device in bytes where the data area is stored. Offset on the device in bytes where the data area is stored.
Again, set it to something if you colocate data with journal or metadata. Again, set it to something if you colocate data with journal or metadata.
info_ru: > info_ru: |
Смещение на устройстве в байтах, по которому располагаются данные. Смещение на устройстве в байтах, по которому располагаются данные.
Эту опцию нужно задать, если данные у вас хранятся на том же Эту опцию нужно задать, если данные у вас хранятся на том же
устройстве, что метаданные или журнал. устройстве, что метаданные или журнал.
- name: data_size - name: data_size
type: int type: int
info: > info: |
Data area size in bytes. By default, the whole data device up to the end Data area size in bytes. By default, the whole data device up to the end
will be used for the data area, but you can restrict it if you want to use will be used for the data area, but you can restrict it if you want to use
a smaller part. Note that there is no option to set metadata area size - a smaller part. Note that there is no option to set metadata area size -
it's derived from the data area size. it's derived from the data area size.
info_ru: > info_ru: |
Размер области данных в байтах. По умолчанию под данные будет использована Размер области данных в байтах. По умолчанию под данные будет использована
вся доступная область устройства данных до конца устройства, но вы можете вся доступная область устройства данных до конца устройства, но вы можете
использовать эту опцию, чтобы ограничить её меньшим размером. Заметьте, что использовать эту опцию, чтобы ограничить её меньшим размером. Заметьте, что
@ -90,32 +90,32 @@
- name: meta_block_size - name: meta_block_size
type: int type: int
default: 4096 default: 4096
info: > info: |
Physical block size of the metadata device. 4096 for most current Physical block size of the metadata device. 4096 for most current
HDDs and SSDs. HDDs and SSDs.
info_ru: > info_ru: |
Размер физического блока устройства метаданных. 4096 для большинства Размер физического блока устройства метаданных. 4096 для большинства
современных SSD и HDD. современных SSD и HDD.
- name: journal_block_size - name: journal_block_size
type: int type: int
default: 4096 default: 4096
info: > info: |
Physical block size of the journal device. Must be a multiple of Physical block size of the journal device. Must be a multiple of
`disk_alignment`. 4096 for most current HDDs and SSDs. `disk_alignment`. 4096 for most current HDDs and SSDs.
info_ru: > info_ru: |
Размер физического блока устройства журнала. Должен быть кратен Размер физического блока устройства журнала. Должен быть кратен
`disk_alignment`. 4096 для большинства современных SSD и HDD. `disk_alignment`. 4096 для большинства современных SSD и HDD.
- name: disable_data_fsync - name: disable_data_fsync
type: bool type: bool
default: false default: false
info: > info: |
Do not issue fsyncs to the data device, i.e. do not flush its cache. Do not issue fsyncs to the data device, i.e. do not flush its cache.
Safe ONLY if your data device has write-through cache. If you disable Safe ONLY if your data device has write-through cache. If you disable
the cache yourself using `hdparm` or `scsi_disk/cache_type` then make sure the cache yourself using `hdparm` or `scsi_disk/cache_type` then make sure
that the cache disable command is run every time before starting Vitastor that the cache disable command is run every time before starting Vitastor
OSD, for example, in the systemd unit. See also `immediate_commit` option OSD, for example, in the systemd unit. See also `immediate_commit` option
for the instructions to disable cache and how to benefit from it. for the instructions to disable cache and how to benefit from it.
info_ru: > info_ru: |
Не отправлять fsync-и устройству данных, т.е. не сбрасывать его кэш. Не отправлять fsync-и устройству данных, т.е. не сбрасывать его кэш.
Безопасно, ТОЛЬКО если ваше устройство данных имеет кэш со сквозной Безопасно, ТОЛЬКО если ваше устройство данных имеет кэш со сквозной
записью (write-through). Если вы отключаете кэш через `hdparm` или записью (write-through). Если вы отключаете кэш через `hdparm` или
@ -126,24 +126,24 @@
- name: disable_meta_fsync - name: disable_meta_fsync
type: bool type: bool
default: false default: false
info: > info: |
Same as disable_data_fsync, but for the metadata device. If the metadata Same as disable_data_fsync, but for the metadata device. If the metadata
device is not set or if the data device is used for the metadata the option device is not set or if the data device is used for the metadata the option
is ignored and disable_data_fsync value is used instead of it. is ignored and disable_data_fsync value is used instead of it.
info: > info: |
То же, что disable_data_fsync, но для устройства метаданных. Если устройство То же, что disable_data_fsync, но для устройства метаданных. Если устройство
метаданных не задано или если оно равно устройству данных, значение опции метаданных не задано или если оно равно устройству данных, значение опции
игнорируется и вместо него используется значение опции disable_data_fsync. игнорируется и вместо него используется значение опции disable_data_fsync.
- name: disable_journal_fsync - name: disable_journal_fsync
type: bool type: bool
default: false default: false
info: > info: |
Same as disable_data_fsync, but for the journal device. If the journal Same as disable_data_fsync, but for the journal device. If the journal
device is not set or if the metadata device is used for the journal the device is not set or if the metadata device is used for the journal the
option is ignored and disable_meta_fsync value is used instead of it. If option is ignored and disable_meta_fsync value is used instead of it. If
the same device is used for data, metadata and journal the option is also the same device is used for data, metadata and journal the option is also
ignored and disable_data_fsync value is used instead of it. ignored and disable_data_fsync value is used instead of it.
info: > info: |
То же, что disable_data_fsync, но для устройства журнала. Если устройство То же, что disable_data_fsync, но для устройства журнала. Если устройство
журнала не задано или если оно равно устройству метаданных, значение опции журнала не задано или если оно равно устройству метаданных, значение опции
игнорируется и вместо него используется значение опции disable_meta_fsync. игнорируется и вместо него используется значение опции disable_meta_fsync.
@ -153,12 +153,12 @@
- name: disable_device_lock - name: disable_device_lock
type: bool type: bool
default: false default: false
info: > info: |
Do not lock data, metadata and journal block devices exclusively with Do not lock data, metadata and journal block devices exclusively with
flock(). Though it's not recommended, but you can use it you want to run flock(). Though it's not recommended, but you can use it you want to run
multiple OSD with a single device and different offsets, without using multiple OSD with a single device and different offsets, without using
partitions. partitions.
info_ru: > info_ru: |
Не блокировать устройства данных, метаданных и журнала от открытия их Не блокировать устройства данных, метаданных и журнала от открытия их
другими OSD с помощью flock(). Так делать не рекомендуется, но теоретически другими OSD с помощью flock(). Так делать не рекомендуется, но теоретически
вы можете это использовать, чтобы запускать несколько OSD на одном вы можете это использовать, чтобы запускать несколько OSD на одном

View File

@ -24,27 +24,27 @@
type: ms type: ms
min: 100 min: 100
default: 1000 default: 1000
info: > info: |
Interval for monitor to wait before updating aggregated statistics in Interval for monitor to wait before updating aggregated statistics in
etcd after receiving OSD statistics updates etcd after receiving OSD statistics updates
info_ru: > info_ru: |
Интервал, который монитор ожидает при изменении статистики по отдельным Интервал, который монитор ожидает при изменении статистики по отдельным
OSD перед обновлением агрегированной статистики в etcd OSD перед обновлением агрегированной статистики в etcd
- name: osd_out_time - name: osd_out_time
type: sec type: sec
default: 600 default: 600
info: > info: |
Time after which a failed OSD is removed from the data distribution. Time after which a failed OSD is removed from the data distribution.
I.e. time which the monitor waits before attempting to restore data I.e. time which the monitor waits before attempting to restore data
redundancy using other OSDs. redundancy using other OSDs.
info_ru: > info_ru: |
Время, через которое отключенный OSD исключается из распределения данных. Время, через которое отключенный OSD исключается из распределения данных.
То есть, время, которое монитор ожидает перед попыткой переместить данные То есть, время, которое монитор ожидает перед попыткой переместить данные
на другие OSD и таким образом восстановить избыточность хранения. на другие OSD и таким образом восстановить избыточность хранения.
- name: placement_levels - name: placement_levels
type: json type: json
default: '{"host":100,"osd":101}' default: '{"host":100,"osd":101}'
info: > info: |
Levels for the placement tree. You can define arbitrary tree levels by Levels for the placement tree. You can define arbitrary tree levels by
defining them in this parameter. The configuration parameter value should defining them in this parameter. The configuration parameter value should
contain a JSON object with level names as keys and integer priorities as contain a JSON object with level names as keys and integer priorities as
@ -53,7 +53,7 @@
levels are always predefined and can't be removed. If one of them is not levels are always predefined and can't be removed. If one of them is not
present in the configuration, then it is defined with the default priority present in the configuration, then it is defined with the default priority
(100 for "host", 101 for "osd"). (100 for "host", 101 for "osd").
info_ru: > info_ru: |
Определения уровней для дерева размещения OSD. Вы можете определять Определения уровней для дерева размещения OSD. Вы можете определять
произвольные уровни, помещая их в данный параметр конфигурации. Значение произвольные уровни, помещая их в данный параметр конфигурации. Значение
параметра должно содержать JSON-объект, ключи которого будут являться параметра должно содержать JSON-объект, ключи которого будут являться

View File

@ -1,7 +1,7 @@
- name: tcp_header_buffer_size - name: tcp_header_buffer_size
type: int type: int
default: 65536 default: 65536
info: > info: |
Size of the buffer used to read data using an additional copy. Vitastor Size of the buffer used to read data using an additional copy. Vitastor
packet headers are 128 bytes, payload is always at least 4 KB, so it is packet headers are 128 bytes, payload is always at least 4 KB, so it is
usually beneficial to try to read multiple packets at once even though usually beneficial to try to read multiple packets at once even though
@ -9,7 +9,7 @@
is received without an additional copy. You can try to play with this is received without an additional copy. You can try to play with this
parameter and see how it affects random iops and linear bandwidth if you parameter and see how it affects random iops and linear bandwidth if you
want. want.
info_ru: > info_ru: |
Размер буфера для чтения данных с дополнительным копированием. Пакеты Размер буфера для чтения данных с дополнительным копированием. Пакеты
Vitastor содержат 128-байтные заголовки, за которыми следуют данные размером Vitastor содержат 128-байтные заголовки, за которыми следуют данные размером
от 4 КБ и для мелких операций ввода-вывода обычно выгодно за 1 вызов читать от 4 КБ и для мелких операций ввода-вывода обычно выгодно за 1 вызов читать
@ -21,11 +21,11 @@
- name: use_sync_send_recv - name: use_sync_send_recv
type: bool type: bool
default: false default: false
info: > info: |
If true, synchronous send/recv syscalls are used instead of io_uring for If true, synchronous send/recv syscalls are used instead of io_uring for
socket communication. Useless for OSDs because they require io_uring anyway, socket communication. Useless for OSDs because they require io_uring anyway,
but may be required for clients with old kernel versions. but may be required for clients with old kernel versions.
info_ru: > info_ru: |
Если установлено в истину, то вместо io_uring для передачи данных по сети Если установлено в истину, то вместо io_uring для передачи данных по сети
будут использоваться обычные синхронные системные вызовы send/recv. Для OSD будут использоваться обычные синхронные системные вызовы send/recv. Для OSD
это бессмысленно, так как OSD в любом случае нуждается в io_uring, но, в это бессмысленно, так как OSD в любом случае нуждается в io_uring, но, в
@ -33,29 +33,29 @@
- name: use_rdma - name: use_rdma
type: bool type: bool
default: true default: true
info: > info: |
Try to use RDMA for communication if it's available. Try to use RDMA for communication if it's available.
Disable if you don't want Vitastor to use RDMA. Disable if you don't want Vitastor to use RDMA.
info_ru: > info_ru: |
Пытаться использовать RDMA для связи при наличии доступных устройств. Пытаться использовать RDMA для связи при наличии доступных устройств.
Отключите, если вы не хотите, чтобы Vitastor использовал RDMA. Отключите, если вы не хотите, чтобы Vitastor использовал RDMA.
- name: rdma_device - name: rdma_device
type: string type: string
info: > info: |
RDMA device name to use for Vitastor OSD communications (for example, RDMA device name to use for Vitastor OSD communications (for example,
"rocep5s0f0"). Run `ibv_devinfo -v` as root to list available RDMA devices. "rocep5s0f0"). Run `ibv_devinfo -v` as root to list available RDMA devices.
info_ru: > info_ru: |
Название RDMA-устройства для связи с Vitastor OSD (например, "rocep5s0f0"). Название RDMA-устройства для связи с Vitastor OSD (например, "rocep5s0f0").
Запустите `ibv_devinfo -v` под суперпользователем, чтобы посмотреть список Запустите `ibv_devinfo -v` под суперпользователем, чтобы посмотреть список
доступных RDMA-устройств и их параметры. доступных RDMA-устройств и их параметры.
- name: rdma_port_num - name: rdma_port_num
type: int type: int
default: 1 default: 1
info: > info: |
RDMA device port number to use. Only for devices that have more than 1 port. RDMA device port number to use. Only for devices that have more than 1 port.
See `phys_port_cnt` in `ibv_devinfo -v` output to determine how many ports See `phys_port_cnt` in `ibv_devinfo -v` output to determine how many ports
your device has. your device has.
info_ru: > info_ru: |
Номер порта RDMA-устройства, который следует использовать. Имеет смысл Номер порта RDMA-устройства, который следует использовать. Имеет смысл
только для устройств, у которых более 1 порта. Чтобы узнать, сколько портов только для устройств, у которых более 1 порта. Чтобы узнать, сколько портов
у вашего адаптера, посмотрите `phys_port_cnt` в выводе команды у вашего адаптера, посмотрите `phys_port_cnt` в выводе команды
@ -63,7 +63,7 @@
- name: rdma_gid_index - name: rdma_gid_index
type: int type: int
default: 0 default: 0
info: > info: |
Global address identifier index of the RDMA device to use. Different GID Global address identifier index of the RDMA device to use. Different GID
indexes may correspond to different protocols like RoCEv1, RoCEv2 and iWARP. indexes may correspond to different protocols like RoCEv1, RoCEv2 and iWARP.
Search for "GID" in `ibv_devinfo -v` output to determine which GID index Search for "GID" in `ibv_devinfo -v` output to determine which GID index
@ -71,7 +71,7 @@
**IMPORTANT:** If you want to use RoCEv2 (as recommended) then the correct **IMPORTANT:** If you want to use RoCEv2 (as recommended) then the correct
rdma_gid_index is usually 1 (IPv6) or 3 (IPv4). rdma_gid_index is usually 1 (IPv6) or 3 (IPv4).
info_ru: > info_ru: |
Номер глобального идентификатора адреса RDMA-устройства, который следует Номер глобального идентификатора адреса RDMA-устройства, который следует
использовать. Разным gid_index могут соответствовать разные протоколы связи: использовать. Разным gid_index могут соответствовать разные протоколы связи:
RoCEv1, RoCEv2, iWARP. Чтобы понять, какой нужен вам - смотрите строчки со RoCEv1, RoCEv2, iWARP. Чтобы понять, какой нужен вам - смотрите строчки со
@ -82,20 +82,20 @@
- name: rdma_mtu - name: rdma_mtu
type: int type: int
default: 4096 default: 4096
info: > info: |
RDMA Path MTU to use. Must be 1024, 2048 or 4096. There is usually no RDMA Path MTU to use. Must be 1024, 2048 or 4096. There is usually no
sense to change it from the default 4096. sense to change it from the default 4096.
info_ru: > info_ru: |
Максимальная единица передачи (Path MTU) для RDMA. Должно быть равно 1024, Максимальная единица передачи (Path MTU) для RDMA. Должно быть равно 1024,
2048 или 4096. Обычно нет смысла менять значение по умолчанию, равное 4096. 2048 или 4096. Обычно нет смысла менять значение по умолчанию, равное 4096.
- name: rdma_max_sge - name: rdma_max_sge
type: int type: int
default: 128 default: 128
info: > info: |
Maximum number of scatter/gather entries to use for RDMA. OSDs negotiate Maximum number of scatter/gather entries to use for RDMA. OSDs negotiate
the actual value when establishing connection anyway, so it's usually not the actual value when establishing connection anyway, so it's usually not
required to change this parameter. required to change this parameter.
info_ru: > info_ru: |
Максимальное число записей разделения/сборки (scatter/gather) для RDMA. Максимальное число записей разделения/сборки (scatter/gather) для RDMA.
OSD в любом случае согласовывают реальное значение при установке соединения, OSD в любом случае согласовывают реальное значение при установке соединения,
так что менять этот параметр обычно не нужно. так что менять этот параметр обычно не нужно.
@ -107,13 +107,13 @@
- name: rdma_max_recv - name: rdma_max_recv
type: int type: int
default: 8 default: 8
info: > info: |
Maximum number of parallel RDMA receive operations. Note that this number Maximum number of parallel RDMA receive operations. Note that this number
of receive buffers `rdma_max_msg` in size are allocated for each client, of receive buffers `rdma_max_msg` in size are allocated for each client,
so this setting actually affects memory usage. This is because RDMA receive so this setting actually affects memory usage. This is because RDMA receive
operations are (sadly) still not zero-copy in Vitastor. It may be fixed in operations are (sadly) still not zero-copy in Vitastor. It may be fixed in
later versions. later versions.
info_ru: > info_ru: |
Максимальное число параллельных RDMA-операций получения данных. Следует Максимальное число параллельных RDMA-операций получения данных. Следует
иметь в виду, что данное число буферов размером `rdma_max_msg` выделяется иметь в виду, что данное число буферов размером `rdma_max_msg` выделяется
для каждого подключённого клиентского соединения, так что данная настройка для каждого подключённого клиентского соединения, так что данная настройка
@ -137,21 +137,21 @@
type: sec type: sec
min: 1 min: 1
default: 5 default: 5
info: > info: |
OSD connection inactivity time after which clients and other OSDs send OSD connection inactivity time after which clients and other OSDs send
keepalive requests to check state of the connection. keepalive requests to check state of the connection.
info_ru: > info_ru: |
Время неактивности соединения с OSD, после которого клиенты или другие OSD Время неактивности соединения с OSD, после которого клиенты или другие OSD
посылают запрос проверки состояния соединения. посылают запрос проверки состояния соединения.
- name: osd_ping_timeout - name: osd_ping_timeout
type: sec type: sec
min: 1 min: 1
default: 5 default: 5
info: > info: |
Maximum time to wait for OSD keepalive responses. If an OSD doesn't respond 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 within this time, the connection to it is dropped and a reconnection attempt
is scheduled. is scheduled.
info_ru: > info_ru: |
Максимальное время ожидания ответа на запрос проверки состояния соединения. Максимальное время ожидания ответа на запрос проверки состояния соединения.
Если OSD не отвечает за это время, соединение отключается и производится Если OSD не отвечает за это время, соединение отключается и производится
повторная попытка соединения. повторная попытка соединения.
@ -159,11 +159,11 @@
type: ms type: ms
min: 50 min: 50
default: 500 default: 500
info: > info: |
OSDs respond to clients with a special error code when they receive I/O 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 requests for a PG that's not synchronized and started. This parameter sets
the time for the clients to wait before re-attempting such I/O requests. the time for the clients to wait before re-attempting such I/O requests.
info_ru: > info_ru: |
Когда OSD получают от клиентов запросы ввода-вывода, относящиеся к не Когда OSD получают от клиентов запросы ввода-вывода, относящиеся к не
поднятым на данный момент на них PG, либо к PG в процессе синхронизации, поднятым на данный момент на них PG, либо к PG в процессе синхронизации,
они отвечают клиентам специальным кодом ошибки, означающим, что клиент они отвечают клиентам специальным кодом ошибки, означающим, что клиент
@ -172,41 +172,41 @@
- name: max_etcd_attempts - name: max_etcd_attempts
type: int type: int
default: 5 default: 5
info: > info: |
Maximum number of attempts for etcd requests which can't be retried Maximum number of attempts for etcd requests which can't be retried
indefinitely. indefinitely.
info_ru: > info_ru: |
Максимальное число попыток выполнения запросов к etcd для тех запросов, Максимальное число попыток выполнения запросов к etcd для тех запросов,
которые нельзя повторять бесконечно. которые нельзя повторять бесконечно.
- name: etcd_quick_timeout - name: etcd_quick_timeout
type: ms type: ms
default: 1000 default: 1000
info: > info: |
Timeout for etcd requests which should complete quickly, like lease refresh. Timeout for etcd requests which should complete quickly, like lease refresh.
info_ru: > info_ru: |
Максимальное время выполнения запросов к etcd, которые должны завершаться Максимальное время выполнения запросов к etcd, которые должны завершаться
быстро, таких, как обновление резервации (lease). быстро, таких, как обновление резервации (lease).
- name: etcd_slow_timeout - name: etcd_slow_timeout
type: ms type: ms
default: 5000 default: 5000
info: Timeout for etcd requests which are allowed to wait for some time. info: Timeout for etcd requests which are allowed to wait for some time.
info_ru: > info_ru: |
Максимальное время выполнения запросов к etcd, для которых не обязательно Максимальное время выполнения запросов к etcd, для которых не обязательно
гарантировать быстрое выполнение. гарантировать быстрое выполнение.
- name: etcd_keepalive_timeout - name: etcd_keepalive_timeout
type: sec type: sec
default: max(30, etcd_report_interval*2) default: max(30, etcd_report_interval*2)
info: > info: |
Timeout for etcd connection HTTP Keep-Alive. Should be higher than Timeout for etcd connection HTTP Keep-Alive. Should be higher than
etcd_report_interval to guarantee that keepalive actually works. etcd_report_interval to guarantee that keepalive actually works.
info_ru: > info_ru: |
Таймаут для HTTP Keep-Alive в соединениях к etcd. Должен быть больше, чем Таймаут для HTTP Keep-Alive в соединениях к etcd. Должен быть больше, чем
etcd_report_interval, чтобы keepalive гарантированно работал. etcd_report_interval, чтобы keepalive гарантированно работал.
- name: etcd_ws_keepalive_timeout - name: etcd_ws_keepalive_timeout
type: sec type: sec
default: 30 default: 30
info: > info: |
etcd websocket ping interval required to keep the connection alive and etcd websocket ping interval required to keep the connection alive and
detect disconnections quickly. detect disconnections quickly.
info_ru: > info_ru: |
Интервал проверки живости вебсокет-подключений к etcd. Интервал проверки живости вебсокет-подключений к etcd.

View File

@ -1,12 +1,12 @@
- name: etcd_report_interval - name: etcd_report_interval
type: sec type: sec
default: 5 default: 5
info: > info: |
Interval at which OSDs report their state to etcd. Affects OSD lease time Interval at which OSDs report their state to etcd. Affects OSD lease time
and thus the failover speed. Lease time is equal to this parameter value and thus the failover speed. Lease time is equal to this parameter value
plus max_etcd_attempts*etcd_quick_timeout because it should be guaranteed plus max_etcd_attempts*etcd_quick_timeout because it should be guaranteed
that every OSD always refreshes its lease in time. that every OSD always refreshes its lease in time.
info_ru: > info_ru: |
Интервал, с которым OSD обновляет своё состояние в etcd. Значение параметра Интервал, с которым OSD обновляет своё состояние в etcd. Значение параметра
влияет на время резервации (lease) OSD и поэтому на скорость переключения влияет на время резервации (lease) OSD и поэтому на скорость переключения
при падении OSD. Время lease равняется значению этого параметра плюс при падении OSD. Время lease равняется значению этого параметра плюс
@ -14,12 +14,12 @@
- name: run_primary - name: run_primary
type: bool type: bool
default: true default: true
info: > info: |
Start primary OSD logic on this OSD. As of now, can be turned off only for Start primary OSD logic on this OSD. As of now, can be turned off only for
debugging purposes. It's possible to implement additional feature for the debugging purposes. It's possible to implement additional feature for the
monitor which may allow to separate primary and secondary OSDs, but it's monitor which may allow to separate primary and secondary OSDs, but it's
unclear why anyone could need it, so it's not implemented. unclear why anyone could need it, so it's not implemented.
info_ru: > info_ru: |
Запускать логику первичного OSD на данном OSD. На данный момент отключать Запускать логику первичного OSD на данном OSD. На данный момент отключать
эту опцию может иметь смысл только в целях отладки. В теории, можно эту опцию может иметь смысл только в целях отладки. В теории, можно
реализовать дополнительный режим для монитора, который позволит отделять реализовать дополнительный режим для монитора, который позволит отделять
@ -28,14 +28,14 @@
- name: osd_network - name: osd_network
type: string or array of strings type: string or array of strings
type_ru: строка или массив строк type_ru: строка или массив строк
info: > info: |
Network mask of the network (IPv4 or IPv6) to use for OSDs. Note that Network mask of the network (IPv4 or IPv6) to use for OSDs. Note that
although it's possible to specify multiple networks here, this does not although it's possible to specify multiple networks here, this does not
mean that OSDs will create multiple listening sockets - they'll only mean that OSDs will create multiple listening sockets - they'll only
pick the first matching address of an UP + RUNNING interface. Separate pick the first matching address of an UP + RUNNING interface. Separate
networks for cluster and client connections are also not implemented, but networks for cluster and client connections are also not implemented, but
they are mostly useless anyway, so it's not a big deal. they are mostly useless anyway, so it's not a big deal.
info_ru: > info_ru: |
Маска подсети (IPv4 или IPv6) для использования для соединений с OSD. Маска подсети (IPv4 или IPv6) для использования для соединений с OSD.
Имейте в виду, что хотя сейчас и можно передать в этот параметр несколько Имейте в виду, что хотя сейчас и можно передать в этот параметр несколько
подсетей, это не означает, что OSD будут создавать несколько слушающих подсетей, это не означает, что OSD будут создавать несколько слушающих
@ -46,34 +46,34 @@
- name: bind_address - name: bind_address
type: string type: string
default: "0.0.0.0" default: "0.0.0.0"
info: > info: |
Instead of the network mask, you can also set OSD listen address explicitly Instead of the network mask, you can also set OSD listen address explicitly
using this parameter. May be useful if you want to start OSDs on interfaces using this parameter. May be useful if you want to start OSDs on interfaces
that are not UP + RUNNING. that are not UP + RUNNING.
info_ru: > info_ru: |
Этим параметром можно явным образом задать адрес, на котором будет ожидать Этим параметром можно явным образом задать адрес, на котором будет ожидать
соединений OSD (вместо использования маски подсети). Может быть полезно, соединений OSD (вместо использования маски подсети). Может быть полезно,
например, чтобы запускать OSD на неподнятых интерфейсах (не UP + RUNNING). например, чтобы запускать OSD на неподнятых интерфейсах (не UP + RUNNING).
- name: bind_port - name: bind_port
type: int type: int
info: > info: |
By default, OSDs pick random ports to use for incoming connections By default, OSDs pick random ports to use for incoming connections
automatically. With this option you can set a specific port for a specific automatically. With this option you can set a specific port for a specific
OSD by hand. OSD by hand.
info_ru: > info_ru: |
По умолчанию OSD сами выбирают случайные порты для входящих подключений. По умолчанию OSD сами выбирают случайные порты для входящих подключений.
С помощью данной опции вы можете задать порт для отдельного OSD вручную. С помощью данной опции вы можете задать порт для отдельного OSD вручную.
- name: autosync_interval - name: autosync_interval
type: sec type: sec
default: 5 default: 5
info: > info: |
Time interval at which automatic fsyncs/flushes are issued by each OSD when Time interval at which automatic fsyncs/flushes are issued by each OSD when
the immediate_commit mode if disabled. fsyncs are required because without the immediate_commit mode if disabled. fsyncs are required because without
them OSDs quickly fill their journals, become unable to clear them and them OSDs quickly fill their journals, become unable to clear them and
stall. Also this option limits the amount of recent uncommitted changes stall. Also this option limits the amount of recent uncommitted changes
which OSDs may lose in case of a power outage in case when clients don't which OSDs may lose in case of a power outage in case when clients don't
issue fsyncs at all. issue fsyncs at all.
info_ru: > info_ru: |
Временной интервал отправки автоматических fsync-ов (операций очистки кэша) Временной интервал отправки автоматических fsync-ов (операций очистки кэша)
каждым OSD для случая, когда режим immediate_commit отключён. fsync-и нужны каждым OSD для случая, когда режим immediate_commit отключён. fsync-и нужны
OSD, чтобы успевать очищать журнал - без них OSD быстро заполняют журналы и OSD, чтобы успевать очищать журнал - без них OSD быстро заполняют журналы и
@ -83,21 +83,21 @@
- name: autosync_writes - name: autosync_writes
type: int type: int
default: 128 default: 128
info: > info: |
Same as autosync_interval, but sets the maximum number of uncommitted write Same as autosync_interval, but sets the maximum number of uncommitted write
operations before issuing an fsync operation internally. operations before issuing an fsync operation internally.
info_ru: > info_ru: |
Аналогично autosync_interval, но задаёт не временной интервал, а Аналогично autosync_interval, но задаёт не временной интервал, а
максимальное количество незафиксированных операций записи перед максимальное количество незафиксированных операций записи перед
принудительной отправкой fsync-а. принудительной отправкой fsync-а.
- name: recovery_queue_depth - name: recovery_queue_depth
type: int type: int
default: 4 default: 4
info: > info: |
Maximum recovery operations per one primary OSD at any given moment of time. 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 Currently it's the only parameter available to tune the speed or recovery
and rebalancing, but it's planned to implement more. and rebalancing, but it's planned to implement more.
info_ru: > info_ru: |
Максимальное число операций восстановления на одном первичном OSD в любой Максимальное число операций восстановления на одном первичном OSD в любой
момент времени. На данный момент единственный параметр, который можно менять момент времени. На данный момент единственный параметр, который можно менять
для ускорения или замедления восстановления и перебалансировки данных, но для ускорения или замедления восстановления и перебалансировки данных, но
@ -110,20 +110,20 @@
- name: readonly - name: readonly
type: bool type: bool
default: false default: false
info: > info: |
Read-only mode. If this is enabled, an OSD will never issue any writes to Read-only mode. If this is enabled, an OSD will never issue any writes to
the underlying device. This may be useful for recovery purposes. the underlying device. This may be useful for recovery purposes.
info_ru: > info_ru: |
Режим "только чтение". Если включить этот режим, OSD не будет писать ничего Режим "только чтение". Если включить этот режим, OSD не будет писать ничего
на диск. Может быть полезно в целях восстановления. на диск. Может быть полезно в целях восстановления.
- name: no_recovery - name: no_recovery
type: bool type: bool
default: false default: false
info: > info: |
Disable automatic background recovery of objects. Note that it doesn't Disable automatic background recovery of objects. Note that it doesn't
affect implicit recovery of objects happening during writes - a write is affect implicit recovery of objects happening during writes - a write is
always made to a full set of at least pg_minsize OSDs. always made to a full set of at least pg_minsize OSDs.
info_ru: > info_ru: |
Отключить автоматическое фоновое восстановление объектов. Обратите внимание, Отключить автоматическое фоновое восстановление объектов. Обратите внимание,
что эта опция не отключает восстановление объектов, происходящее при что эта опция не отключает восстановление объектов, происходящее при
записи - запись всегда производится в полный набор из как минимум pg_minsize записи - запись всегда производится в полный набор из как минимум pg_minsize
@ -131,66 +131,66 @@
- name: no_rebalance - name: no_rebalance
type: bool type: bool
default: false default: false
info: > info: |
Disable background movement of data between different OSDs. Disabling it Disable background movement of data between different OSDs. Disabling it
means that PGs in the `has_misplaced` state will be left in it indefinitely. means that PGs in the `has_misplaced` state will be left in it indefinitely.
info_ru: > info_ru: |
Отключить фоновое перемещение объектов между разными OSD. Отключение Отключить фоновое перемещение объектов между разными OSD. Отключение
означает, что PG, находящиеся в состоянии `has_misplaced`, будут оставлены означает, что PG, находящиеся в состоянии `has_misplaced`, будут оставлены
в нём на неопределённый срок. в нём на неопределённый срок.
- name: print_stats_interval - name: print_stats_interval
type: sec type: sec
default: 3 default: 3
info: > info: |
Time interval at which OSDs print simple human-readable operation Time interval at which OSDs print simple human-readable operation
statistics on stdout. statistics on stdout.
info_ru: > info_ru: |
Временной интервал, с которым OSD печатают простую человекочитаемую Временной интервал, с которым OSD печатают простую человекочитаемую
статистику выполнения операций в стандартный вывод. статистику выполнения операций в стандартный вывод.
- name: slow_log_interval - name: slow_log_interval
type: sec type: sec
default: 10 default: 10
info: > info: |
Time interval at which OSDs dump slow or stuck operations on stdout, if 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 they're any. Also it's the time after which an operation is considered
"slow". "slow".
info_ru: > info_ru: |
Временной интервал, с которым OSD выводят в стандартный вывод список Временной интервал, с которым OSD выводят в стандартный вывод список
медленных или зависших операций, если таковые имеются. Также время, при медленных или зависших операций, если таковые имеются. Также время, при
превышении которого операция считается "медленной". превышении которого операция считается "медленной".
- name: max_write_iodepth - name: max_write_iodepth
type: int type: int
default: 128 default: 128
info: > info: |
Parallel client write operation limit per one OSD. Operations that exceed Parallel client write operation limit per one OSD. Operations that exceed
this limit are pushed to a temporary queue instead of being executed this limit are pushed to a temporary queue instead of being executed
immediately. immediately.
info_ru: > info_ru: |
Максимальное число одновременных клиентских операций записи на один OSD. Максимальное число одновременных клиентских операций записи на один OSD.
Операции, превышающие этот лимит, не исполняются сразу, а сохраняются во Операции, превышающие этот лимит, не исполняются сразу, а сохраняются во
временной очереди. временной очереди.
- name: min_flusher_count - name: min_flusher_count
type: int type: int
default: 1 default: 1
info: > info: |
Flusher is a micro-thread that moves data from the journal to the data 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. area of the device. Their number is auto-tuned between minimum and maximum.
Minimum number is set by this parameter. Minimum number is set by this parameter.
info_ru: > info_ru: |
Flusher - это микро-поток (корутина), которая копирует данные из журнала в Flusher - это микро-поток (корутина), которая копирует данные из журнала в
основную область устройства данных. Их число настраивается динамически между основную область устройства данных. Их число настраивается динамически между
минимальным и максимальным значением. Этот параметр задаёт минимальное число. минимальным и максимальным значением. Этот параметр задаёт минимальное число.
- name: max_flusher_count - name: max_flusher_count
type: int type: int
default: 256 default: 256
info: > info: |
Maximum number of journal flushers (see above min_flusher_count). Maximum number of journal flushers (see above min_flusher_count).
info_ru: > info_ru: |
Максимальное число микро-потоков очистки журнала (см. выше min_flusher_count). Максимальное число микро-потоков очистки журнала (см. выше min_flusher_count).
- name: inmemory_metadata - name: inmemory_metadata
type: bool type: bool
default: true default: true
info: > info: |
This parameter makes Vitastor always keep metadata area of the block device This parameter makes Vitastor always keep metadata area of the block device
in memory. It's required for good performance because it allows to avoid in memory. It's required for good performance because it allows to avoid
additional read-modify-write cycles during metadata modifications. Metadata additional read-modify-write cycles during metadata modifications. Metadata
@ -198,7 +198,7 @@
to reduce memory usage by this value, but it will hurt performance. This to reduce memory usage by this value, but it will hurt performance. This
restriction is likely to be removed in the future along with the upgrade restriction is likely to be removed in the future along with the upgrade
of the metadata storage scheme. of the metadata storage scheme.
info_ru: > info_ru: |
Данный параметр заставляет Vitastor всегда держать область метаданных диска Данный параметр заставляет Vitastor всегда держать область метаданных диска
в памяти. Это нужно, чтобы избегать дополнительных операций чтения с диска в памяти. Это нужно, чтобы избегать дополнительных операций чтения с диска
при записи. Размер области метаданных на данный момент составляет примерно при записи. Размер области метаданных на данный момент составляет примерно
@ -209,7 +209,7 @@
- name: inmemory_journal - name: inmemory_journal
type: bool type: bool
default: true default: true
info: > info: |
This parameter make Vitastor always keep journal area of the block This parameter make Vitastor always keep journal area of the block
device in memory. Turning it off will, again, reduce memory usage, but device in memory. Turning it off will, again, reduce memory usage, but
hurt performance because flusher coroutines will have to read data from hurt performance because flusher coroutines will have to read data from
@ -217,7 +217,7 @@
is typically very small because it's sufficient to have 16-32 MB journal is typically very small because it's sufficient to have 16-32 MB journal
for SSD OSDs. However, in theory it's possible that you'll want to turn it for SSD OSDs. However, in theory it's possible that you'll want to turn it
off for hybrid (HDD+SSD) OSDs with large journals on quick devices. off for hybrid (HDD+SSD) OSDs with large journals on quick devices.
info_ru: > info_ru: |
Данный параметр заставляет Vitastor всегда держать в памяти журналы OSD. Данный параметр заставляет Vitastor всегда держать в памяти журналы OSD.
Отключение параметра, опять же, снижает потребление памяти, но ухудшает Отключение параметра, опять же, снижает потребление памяти, но ухудшает
производительность, так как для копирования данных из журнала в основную производительность, так как для копирования данных из журнала в основную
@ -229,12 +229,12 @@
- name: journal_sector_buffer_count - name: journal_sector_buffer_count
type: int type: int
default: 32 default: 32
info: > info: |
Maximum number of buffers that can be used for writing journal metadata Maximum number of buffers that can be used for writing journal metadata
blocks. The only situation when you should increase it to a larger value blocks. The only situation when you should increase it to a larger value
is when you enable journal_no_same_sector_overwrites. In this case set is when you enable journal_no_same_sector_overwrites. In this case set
it to, for example, 1024. it to, for example, 1024.
info_ru: > info_ru: |
Максимальное число буферов, разрешённых для использования под записываемые Максимальное число буферов, разрешённых для использования под записываемые
в журнал блоки метаданных. Единственная ситуация, в которой этот параметр в журнал блоки метаданных. Единственная ситуация, в которой этот параметр
нужно менять - это если вы включаете journal_no_same_sector_overwrites. В нужно менять - это если вы включаете journal_no_same_sector_overwrites. В
@ -242,13 +242,13 @@
- name: journal_no_same_sector_overwrites - name: journal_no_same_sector_overwrites
type: bool type: bool
default: false default: false
info: > info: |
Enable this option for SSDs like Intel D3-S4510 and D3-S4610 which REALLY Enable this option for SSDs like Intel D3-S4510 and D3-S4610 which REALLY
don't like when a program overwrites the same sector multiple times in a don't like when a program overwrites the same sector multiple times in a
row and slow down significantly (from 20000+ iops to ~3000 iops). When row and slow down significantly (from 20000+ iops to ~3000 iops). When
this option is set, Vitastor will always move to the next sector of the this option is set, Vitastor will always move to the next sector of the
journal after writing it instead of possibly overwriting it the second time. journal after writing it instead of possibly overwriting it the second time.
info_ru: > info_ru: |
Включайте данную опцию для SSD вроде Intel D3-S4510 и D3-4610, которые ОЧЕНЬ Включайте данную опцию для SSD вроде Intel D3-S4510 и D3-4610, которые ОЧЕНЬ
не любят, когда ПО перезаписывает один и тот же сектор несколько раз подряд не любят, когда ПО перезаписывает один и тот же сектор несколько раз подряд
и сильно замедляются (с 20000 и более iops до 3000). Когда данная опция и сильно замедляются (с 20000 и более iops до 3000). Когда данная опция
@ -257,7 +257,7 @@
- name: throttle_small_writes - name: throttle_small_writes
type: bool type: bool
default: false default: false
info: > info: |
Enable soft throttling of small journaled writes. Useful for hybrid OSDs Enable soft throttling of small journaled writes. Useful for hybrid OSDs
with fast journal/metadata devices and slow data devices. The idea is that with fast journal/metadata devices and slow data devices. The idea is that
small writes complete very quickly because they're first written to the small writes complete very quickly because they're first written to the
@ -269,7 +269,7 @@
the journal. When throttling is used, the performance of small writes will the journal. When throttling is used, the performance of small writes will
decrease smoothly instead of abrupt drop at the moment when the journal decrease smoothly instead of abrupt drop at the moment when the journal
fills up. fills up.
info_ru: > info_ru: |
Разрешить мягкое ограничение скорости журналируемой записи. Полезно для Разрешить мягкое ограничение скорости журналируемой записи. Полезно для
гибридных OSD с быстрыми устройствами метаданных и медленными устройствами гибридных OSD с быстрыми устройствами метаданных и медленными устройствами
данных. Идея заключается в том, что мелкие записи в этой ситуации могут данных. Идея заключается в том, что мелкие записи в этой ситуации могут
@ -285,11 +285,11 @@
- name: throttle_target_iops - name: throttle_target_iops
type: int type: int
default: 100 default: 100
info: > info: |
Target maximum number of throttled operations per second under the condition 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 of full journal. Set it to approximate random write iops of your data devices
(HDDs). (HDDs).
info_ru: > info_ru: |
Расчётное максимальное число ограничиваемых операций в секунду при условии Расчётное максимальное число ограничиваемых операций в секунду при условии
отсутствия свободного места в журнале. Устанавливайте приблизительно равным отсутствия свободного места в журнале. Устанавливайте приблизительно равным
максимальной производительности случайной записи ваших устройств данных максимальной производительности случайной записи ваших устройств данных
@ -297,11 +297,11 @@
- name: throttle_target_mbs - name: throttle_target_mbs
type: int type: int
default: 100 default: 100
info: > info: |
Target maximum bandwidth in MB/s of throttled operations per second under Target maximum bandwidth in MB/s of throttled operations per second under
the condition of full journal. Set it to approximate linear write the condition of full journal. Set it to approximate linear write
performance of your data devices (HDDs). performance of your data devices (HDDs).
info_ru: > info_ru: |
Расчётный максимальный размер в МБ/с ограничиваемых операций в секунду при Расчётный максимальный размер в МБ/с ограничиваемых операций в секунду при
условии отсутствия свободного места в журнале. Устанавливайте приблизительно условии отсутствия свободного места в журнале. Устанавливайте приблизительно
равным максимальной производительности линейной записи ваших устройств равным максимальной производительности линейной записи ваших устройств
@ -309,11 +309,11 @@
- name: throttle_target_parallelism - name: throttle_target_parallelism
type: int type: int
default: 1 default: 1
info: > info: |
Target maximum parallelism of throttled operations under the condition of Target maximum parallelism of throttled operations under the condition of
full journal. Set it to approximate internal parallelism of your data full journal. Set it to approximate internal parallelism of your data
devices (1 for HDDs, 4-8 for SSDs). devices (1 for HDDs, 4-8 for SSDs).
info_ru: > info_ru: |
Расчётный максимальный параллелизм ограничиваемых операций в секунду при Расчётный максимальный параллелизм ограничиваемых операций в секунду при
условии отсутствия свободного места в журнале. Устанавливайте приблизительно условии отсутствия свободного места в журнале. Устанавливайте приблизительно
равным внутреннему параллелизму ваших устройств данных (1 для HDD, 4-8 равным внутреннему параллелизму ваших устройств данных (1 для HDD, 4-8
@ -321,9 +321,9 @@
- name: throttle_threshold_us - name: throttle_threshold_us
type: usec type: usec
default: 50 default: 50
info: > info: |
Minimal computed delay to be applied to throttled operations. Usually Minimal computed delay to be applied to throttled operations. Usually
doesn't need to be changed. doesn't need to be changed.
info_ru: > info_ru: |
Минимальная применимая к ограничиваемым операциям задержка. Обычно не Минимальная применимая к ограничиваемым операциям задержка. Обычно не
требует изменений. требует изменений.