- 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.