199 lines
12 KiB
YAML
199 lines
12 KiB
YAML
- name: use_antietcd
|
|
type: bool
|
|
default: false
|
|
info: |
|
|
Enable experimental built-in etcd replacement (clustered key-value database):
|
|
[antietcd](https://git.yourcmc.ru/vitalif/antietcd/).
|
|
|
|
When set to true, monitor runs internal antietcd automatically if it finds
|
|
a network interface with an IP address matching one of addresses in the
|
|
`etcd_address` configuration option (in `/etc/vitastor/vitastor.conf` or in
|
|
the monitor command line). If there are multiple matching addresses, it also
|
|
checks `antietcd_port` and antietcd is started for address with matching port.
|
|
By default, antietcd accepts connection on the selected IP address, but it
|
|
can also be overridden manually in the `antietcd_ip` option.
|
|
|
|
When antietcd is started, monitor stores cluster metadata itself and exposes
|
|
a etcd-compatible REST API. On disk, these metadata are stored in
|
|
`/var/lib/vitastor/mon_2379.json.gz` (can be overridden in antietcd_data_file
|
|
or antietcd_data_dir options). All other antietcd parameters
|
|
(see [here](https://git.yourcmc.ru/vitalif/antietcd/)) except node_id,
|
|
cluster, cluster_key, persist_filter, stale_read can also be set in
|
|
Vitastor configuration with `antietcd_` prefix.
|
|
|
|
You can dump/load data to or from antietcd using Antietcd `anticli` tool:
|
|
|
|
```
|
|
npm exec anticli -e http://etcd:2379/v3 get --prefix '' --no-temp > dump.json
|
|
npm exec anticli -e http://antietcd:2379/v3 load < dump.json
|
|
```
|
|
info_ru: |
|
|
Включить экспериментальный встроенный заменитель etcd (кластерную БД ключ-значение):
|
|
[antietcd](https://git.yourcmc.ru/vitalif/antietcd/).
|
|
|
|
Если параметр установлен в true, монитор запускает antietcd автоматически,
|
|
если обнаруживает сетевой интерфейс с одним из адресов, указанных в опции
|
|
конфигурации `etcd_address` (в `/etc/vitastor/vitastor.conf` или в опциях
|
|
командной строки монитора). Если таких адресов несколько, также проверяется
|
|
опция `antietcd_port` и antietcd запускается для адреса с соответствующим
|
|
портом. По умолчанию antietcd принимает подключения по выбранному совпадающему
|
|
IP, но его также можно определить вручную опцией `antietcd_ip`.
|
|
|
|
При запуске antietcd монитор сам хранит центральные метаданные кластера и
|
|
выставляет etcd-совместимое REST API. На диске эти метаданные хранятся в файле
|
|
`/var/lib/vitastor/mon_2379.json.gz` (можно переопределить параметрами
|
|
antietcd_data_file или antietcd_data_dir). Все остальные параметры antietcd
|
|
(смотрите [по ссылке](https://git.yourcmc.ru/vitalif/antietcd/)), за исключением
|
|
node_id, cluster, cluster_key, persist_filter, stale_read также можно задавать
|
|
в конфигурации Vitastor с префиксом `antietcd_`.
|
|
|
|
Вы можете выгружать/загружать данные в или из antietcd с помощью его инструмента
|
|
`anticli`:
|
|
|
|
```
|
|
npm exec anticli -e http://etcd:2379/v3 get --prefix '' --no-temp > dump.json
|
|
npm exec anticli -e http://antietcd:2379/v3 load < dump.json
|
|
```
|
|
- name: enable_prometheus
|
|
type: bool
|
|
default: true
|
|
info: |
|
|
Enable built-in Prometheus metrics exporter at mon_http_port (8060 by default).
|
|
|
|
Note that only the active (master) monitor exposes metrics, others return
|
|
HTTP 503. So you should add all monitor URLs to your Prometheus job configuration.
|
|
|
|
Grafana dashboard suitable for this exporter is here: [Vitastor-Grafana-6+.json](../../mon/scripts/Vitastor-Grafana-6+.json).
|
|
info_ru: |
|
|
Включить встроенный Prometheus-экспортер метрик на порту mon_http_port (по умолчанию 8060).
|
|
|
|
Обратите внимание, что метрики выставляет только активный (главный) монитор, остальные
|
|
возвращают статус HTTP 503, поэтому вам следует добавлять адреса всех мониторов
|
|
в задание по сбору метрик Prometheus.
|
|
|
|
Дашборд для Grafana, подходящий для этого экспортера: [Vitastor-Grafana-6+.json](../../mon/scripts/Vitastor-Grafana-6+.json).
|
|
- name: mon_http_port
|
|
type: int
|
|
default: 8060
|
|
info: HTTP port for monitors to listen to (including metrics exporter)
|
|
info_ru: Порт, на котором мониторы принимают HTTP-соединения (в том числе для отдачи метрик)
|
|
- name: mon_http_ip
|
|
type: string
|
|
info: IP address for monitors to listen to (all addresses by default)
|
|
info_ru: IP-адрес, на котором мониторы принимают HTTP-соединения (по умолчанию все адреса)
|
|
- name: mon_https_cert
|
|
type: string
|
|
info: Path to PEM SSL certificate file for monitor to listen using HTTPS
|
|
info_ru: Путь к PEM-файлу SSL-сертификата для монитора, чтобы принимать соединения через HTTPS
|
|
- name: mon_https_key
|
|
type: string
|
|
info: Path to PEM SSL private key file for monitor to listen using HTTPS
|
|
info_ru: Путь к PEM-файлу секретного SSL-ключа для монитора, чтобы принимать соединения через HTTPS
|
|
- name: mon_https_client_auth
|
|
type: bool
|
|
default: false
|
|
info: Enable HTTPS client certificate-based authorization for monitor connections
|
|
info_ru: Включить в HTTPS-сервере монитора авторизацию по клиентским сертификатам
|
|
- name: mon_https_ca
|
|
type: string
|
|
info: Path to CA certificate for client HTTPS authorization
|
|
info_ru: Путь к удостоверяющему сертификату для авторизации клиентских HTTPS соединений
|
|
- name: etcd_mon_ttl
|
|
type: sec
|
|
min: 5
|
|
default: 1
|
|
info: Monitor etcd lease refresh interval in seconds
|
|
info_ru: Интервал обновления etcd резервации (lease) монитором
|
|
- name: etcd_mon_timeout
|
|
type: ms
|
|
default: 1000
|
|
info: etcd request timeout used by monitor
|
|
info_ru: Таймаут выполнения запросов к etcd от монитора
|
|
- name: etcd_mon_retries
|
|
type: int
|
|
default: 5
|
|
info: Maximum number of attempts for one monitor etcd request
|
|
info_ru: Максимальное число попыток выполнения запросов к etcd монитором
|
|
- name: mon_change_timeout
|
|
type: ms
|
|
min: 100
|
|
default: 1000
|
|
info: Optimistic retry interval for monitor etcd modification requests
|
|
info_ru: Время повтора при коллизиях при запросах модификации в etcd, производимых монитором
|
|
- name: mon_stats_timeout
|
|
type: ms
|
|
min: 100
|
|
default: 1000
|
|
info: |
|
|
Interval for monitor to wait before updating aggregated statistics in
|
|
etcd after receiving OSD statistics updates
|
|
info_ru: |
|
|
Интервал, который монитор ожидает при изменении статистики по отдельным
|
|
OSD перед обновлением агрегированной статистики в etcd
|
|
- name: osd_out_time
|
|
type: sec
|
|
default: 600
|
|
info: |
|
|
Time after which a failed OSD is removed from the data distribution.
|
|
I.e. time which the monitor waits before attempting to restore data
|
|
redundancy using other OSDs.
|
|
info_ru: |
|
|
Время, через которое отключенный OSD исключается из распределения данных.
|
|
То есть, время, которое монитор ожидает перед попыткой переместить данные
|
|
на другие OSD и таким образом восстановить избыточность хранения.
|
|
- name: placement_levels
|
|
type: json
|
|
default: '`{"host":100,"osd":101}`'
|
|
info: |
|
|
Levels for the placement tree. You can define arbitrary tree levels by
|
|
defining them in this parameter. The configuration parameter value should
|
|
contain a JSON object with level names as keys and integer priorities as
|
|
values. Smaller priority means higher level in tree. For example,
|
|
"datacenter" should have smaller priority than "osd". "host" and "osd"
|
|
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
|
|
(100 for "host", 101 for "osd").
|
|
info_ru: |
|
|
Определения уровней для дерева размещения OSD. Вы можете определять
|
|
произвольные уровни, помещая их в данный параметр конфигурации. Значение
|
|
параметра должно содержать JSON-объект, ключи которого будут являться
|
|
названиями уровней, а значения - целочисленными приоритетами. Меньшие
|
|
приоритеты соответствуют верхним уровням дерева. Например, уровень
|
|
"датацентр" должен иметь меньший приоритет, чем "OSD". Уровни с названиями
|
|
"host" и "osd" являются предопределёнными и не могут быть удалены. Если
|
|
один из них отсутствует в конфигурации, он доопределяется с приоритетом по
|
|
умолчанию (100 для уровня "host", 101 для "osd").
|
|
- name: use_old_pg_combinator
|
|
type: bool
|
|
default: false
|
|
info: |
|
|
Use the old PG combination generator which doesn't support [level_placement](pool.en.md#level_placement)
|
|
and [raw_placement](pool.en.md#raw_placement) for pools which don't use this features.
|
|
info_ru: |
|
|
Использовать старый генератор комбинаций PG, не поддерживающий [level_placement](pool.ru.md#level_placement)
|
|
и [raw_placement](pool.ru.md#raw_placement) для пулов, которые не используют данные функции.
|
|
- name: osd_backfillfull_ratio
|
|
type: float
|
|
default: 0.99
|
|
info: |
|
|
Monitors try to prevent OSDs becoming 100% full during rebalance or recovery by
|
|
calculating how much space will be occupied on every OSD after all rebalance
|
|
and recovery operations finish, and pausing rebalance and recovery if that
|
|
amount of space exceeds OSD capacity multiplied by the value of this
|
|
configuration parameter.
|
|
|
|
Future used space is calculated by summing space used by all user data blocks
|
|
(objects) in all PGs placed on a specific OSD, even if some of these objects
|
|
currently reside on a different set of OSDs.
|
|
info_ru: |
|
|
Мониторы стараются предотвратить 100% заполнение OSD в процессе ребаланса
|
|
или восстановления, рассчитывая, сколько места будет занято на каждом OSD после
|
|
завершения всех операций ребаланса и восстановления, и приостанавливая
|
|
ребаланс и восстановление, если рассчитанный объём превышает ёмкость OSD,
|
|
умноженную на значение данного параметра.
|
|
|
|
Будущее занятое место рассчитывается сложением места, занятого всеми
|
|
пользовательскими блоками данных (объектами) во всех PG, расположенных
|
|
на конкретном OSD, даже если часть этих объектов в данный момент находится
|
|
на другом наборе OSD.
|