Move osd_network to config/network docs

This commit is contained in:
Vitaliy Filippov
2025-03-31 21:12:09 +03:00
parent 8508e78288
commit dbf9ecd171
8 changed files with 158 additions and 152 deletions
+40 -18
View File
@@ -9,8 +9,8 @@
These parameters apply to clients and OSDs and affect network connection logic These parameters apply to clients and OSDs and affect network connection logic
between clients, OSDs and etcd. between clients, OSDs and etcd.
- [tcp_header_buffer_size](#tcp_header_buffer_size) - [osd_network](#osd_network)
- [use_sync_send_recv](#use_sync_send_recv) - [osd_cluster_network](#osd_cluster_network)
- [use_rdma](#use_rdma) - [use_rdma](#use_rdma)
- [use_rdmacm](#use_rdmacm) - [use_rdmacm](#use_rdmacm)
- [disable_tcp](#disable_tcp) - [disable_tcp](#disable_tcp)
@@ -33,28 +33,28 @@ between clients, OSDs and etcd.
- [etcd_keepalive_timeout](#etcd_keepalive_timeout) - [etcd_keepalive_timeout](#etcd_keepalive_timeout)
- [etcd_ws_keepalive_interval](#etcd_ws_keepalive_interval) - [etcd_ws_keepalive_interval](#etcd_ws_keepalive_interval)
- [etcd_min_reload_interval](#etcd_min_reload_interval) - [etcd_min_reload_interval](#etcd_min_reload_interval)
- [tcp_header_buffer_size](#tcp_header_buffer_size)
- [use_sync_send_recv](#use_sync_send_recv)
## tcp_header_buffer_size ## osd_network
- Type: integer - Type: string or array of strings
- Default: 65536
Size of the buffer used to read data using an additional copy. Vitastor Network mask of public OSD network(s) (IPv4 or IPv6). Each OSD listens on all
packet headers are 128 bytes, payload is always at least 4 KB, so it is addresses of UP + RUNNING interfaces matching one of these networks, on the
usually beneficial to try to read multiple packets at once even though same port. Port is auto-selected except if [bind_port](osd.en.md#bind_port) is
it requires to copy the data an additional time. The rest of each packet explicitly specified. Bind address(es) may also be overridden manually by
is received without an additional copy. You can try to play with this specifying [bind_address](osd.en.md#bind_address). If OSD networks are not specified
parameter and see how it affects random iops and linear bandwidth if you at all, OSD just listens on a wildcard address (0.0.0.0).
want.
## use_sync_send_recv ## osd_cluster_network
- Type: boolean - Type: string or array of strings
- Default: false
If true, synchronous send/recv syscalls are used instead of io_uring for Network mask of separate network(s) (IPv4 or IPv6) to use for OSD
socket communication. Useless for OSDs because they require io_uring anyway, cluster connections. I.e. OSDs will always attempt to use these networks
but may be required for clients with old kernel versions. to connect to other OSDs, while clients will attempt to use networks from
[osd_network](#osd_network).
## use_rdma ## use_rdma
@@ -299,3 +299,25 @@ detect disconnections quickly.
Minimum interval for full etcd state reload. Introduced to prevent Minimum interval for full etcd state reload. Introduced to prevent
excessive load on etcd during outages when etcd can't keep up with event excessive load on etcd during outages when etcd can't keep up with event
streams and cancels them. streams and cancels them.
## tcp_header_buffer_size
- Type: integer
- Default: 65536
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
usually beneficial to try to read multiple packets at once even though
it requires to copy the data an additional time. The rest of each packet
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
want.
## use_sync_send_recv
- Type: boolean
- Default: false
If true, synchronous send/recv syscalls are used instead of io_uring for
socket communication. Useless for OSDs because they require io_uring anyway,
but may be required for clients with old kernel versions.
+41 -20
View File
@@ -9,8 +9,8 @@
Данные параметры используются клиентами и OSD и влияют на логику сетевого Данные параметры используются клиентами и OSD и влияют на логику сетевого
взаимодействия между клиентами, OSD, а также etcd. взаимодействия между клиентами, OSD, а также etcd.
- [tcp_header_buffer_size](#tcp_header_buffer_size) - [osd_network](#osd_network)
- [use_sync_send_recv](#use_sync_send_recv) - [osd_cluster_network](#osd_cluster_network)
- [use_rdma](#use_rdma) - [use_rdma](#use_rdma)
- [use_rdmacm](#use_rdmacm) - [use_rdmacm](#use_rdmacm)
- [disable_tcp](#disable_tcp) - [disable_tcp](#disable_tcp)
@@ -33,30 +33,27 @@
- [etcd_keepalive_timeout](#etcd_keepalive_timeout) - [etcd_keepalive_timeout](#etcd_keepalive_timeout)
- [etcd_ws_keepalive_interval](#etcd_ws_keepalive_interval) - [etcd_ws_keepalive_interval](#etcd_ws_keepalive_interval)
- [etcd_min_reload_interval](#etcd_min_reload_interval) - [etcd_min_reload_interval](#etcd_min_reload_interval)
- [tcp_header_buffer_size](#tcp_header_buffer_size)
- [use_sync_send_recv](#use_sync_send_recv)
## tcp_header_buffer_size ## osd_network
- Тип: целое число - Тип: строка или массив строк
- Значение по умолчанию: 65536
Размер буфера для чтения данных с дополнительным копированием. Пакеты Маски подсетей (IPv4 или IPv6) публичной сети или сетей OSD. Каждый OSD слушает
Vitastor содержат 128-байтные заголовки, за которыми следуют данные размером один и тот же порт на всех адресах поднятых (UP + RUNNING) сетевых интерфейсов,
от 4 КБ и для мелких операций ввода-вывода обычно выгодно за 1 вызов читать соответствующих одной из указанных сетей. Порт выбирается автоматически, если
сразу несколько пакетов, даже не смотря на то, что это требует лишний раз только [bind_port](osd.ru.md#bind_port) не задан явно. Адреса для подключений можно
скопировать данные. Часть каждого пакета за пределами значения данного также переопределить явно, задав [bind_address](osd.ru.md#bind_address). Если сети OSD
параметра читается без дополнительного копирования. Вы можете попробовать не заданы вообще, OSD слушает все адреса (0.0.0.0).
поменять этот параметр и посмотреть, как он влияет на производительность
случайного и линейного доступа.
## use_sync_send_recv ## osd_cluster_network
- Тип: булево (да/нет) - Тип: строка или массив строк
- Значение по умолчанию: false
Если установлено в истину, то вместо io_uring для передачи данных по сети Маски подсетей (IPv4 или IPv6) отдельной кластерной сети или сетей OSD.
будут использоваться обычные синхронные системные вызовы send/recv. Для OSD То есть, OSD будут всегда стараться использовать эти сети для соединений
это бессмысленно, так как OSD в любом случае нуждается в io_uring, но, в с другими OSD, а клиенты будут стараться использовать сети из [osd_network](#osd_network).
принципе, это может применяться для клиентов со старыми версиями ядра.
## use_rdma ## use_rdma
@@ -309,3 +306,27 @@ etcd_report_interval, чтобы keepalive гарантированно рабо
Минимальный интервал полной перезагрузки состояния из etcd. Добавлено для Минимальный интервал полной перезагрузки состояния из etcd. Добавлено для
предотвращения избыточной нагрузки на etcd во время отказов, когда etcd не предотвращения избыточной нагрузки на etcd во время отказов, когда etcd не
успевает рассылать потоки событий и отменяет их. успевает рассылать потоки событий и отменяет их.
## tcp_header_buffer_size
- Тип: целое число
- Значение по умолчанию: 65536
Размер буфера для чтения данных с дополнительным копированием. Пакеты
Vitastor содержат 128-байтные заголовки, за которыми следуют данные размером
от 4 КБ и для мелких операций ввода-вывода обычно выгодно за 1 вызов читать
сразу несколько пакетов, даже не смотря на то, что это требует лишний раз
скопировать данные. Часть каждого пакета за пределами значения данного
параметра читается без дополнительного копирования. Вы можете попробовать
поменять этот параметр и посмотреть, как он влияет на производительность
случайного и линейного доступа.
## use_sync_send_recv
- Тип: булево (да/нет)
- Значение по умолчанию: false
Если установлено в истину, то вместо io_uring для передачи данных по сети
будут использоваться обычные синхронные системные вызовы send/recv. Для OSD
это бессмысленно, так как OSD в любом случае нуждается в io_uring, но, в
принципе, это может применяться для клиентов со старыми версиями ядра.
+4 -25
View File
@@ -10,8 +10,6 @@ These parameters only apply to OSDs, are not fixed at the moment of OSD drive
initialization and can be changed - in /etc/vitastor/vitastor.conf or [vitastor-disk update-sb](../usage/disk.en.md#update-sb) initialization and can be changed - in /etc/vitastor/vitastor.conf or [vitastor-disk update-sb](../usage/disk.en.md#update-sb)
with an OSD restart or, for some of them, even without restarting by updating configuration in etcd. with an OSD restart or, for some of them, even without restarting by updating configuration in etcd.
- [osd_network](#osd_network)
- [osd_cluster_network](#osd_cluster_network)
- [bind_address](#bind_address) - [bind_address](#bind_address)
- [bind_port](#bind_port) - [bind_port](#bind_port)
- [osd_iothread_count](#osd_iothread_count) - [osd_iothread_count](#osd_iothread_count)
@@ -66,33 +64,14 @@ with an OSD restart or, for some of them, even without restarting by updating co
- [min_discard_size](#min_discard_size) - [min_discard_size](#min_discard_size)
- [allow_net_split](#allow_net_split) - [allow_net_split](#allow_net_split)
## osd_network
- Type: string or array of strings
Network mask of public OSD network(s) (IPv4 or IPv6). Each OSD listens on all
addresses of UP + RUNNING interfaces matching one of these networks, on the
same port. Port is auto-selected except if [bind_port](#bind_port) is
explicitly specified. Bind address(es) may also be overridden manually by
specifying [bind_address](#bind_address). If OSD networks are not specified
at all, OSD just listens on a wildcard address (0.0.0.0).
## osd_cluster_network
- Type: string or array of strings
Network mask of separate network(s) (IPv4 or IPv6) to use for OSD
cluster connections. I.e. OSDs will always attempt to use these networks
to connect to other OSDs, while clients will attempt to use networks from
[osd_network](#osd_network).
## bind_address ## bind_address
- Type: string or array of strings - Type: string or array of strings
Instead of the network mask, you can also set OSD listen addresses explicitly Instead of the network masks ([osd_network](network.en.md#osd_network) and
using this parameter. May be useful if you want to start OSDs on interfaces [osd_cluster_network](network.en.md#osd_cluster_network)), you can also set
that are not UP + RUNNING. OSD listen addresses explicitly using this parameter. May be useful if you
want to start OSDs on interfaces that are not UP + RUNNING.
## bind_port ## bind_port
+5 -24
View File
@@ -11,8 +11,6 @@
момент с перезапуском OSD в /etc/vitastor/vitastor.conf или [vitastor-disk update-sb](../usage/disk.ru.md#update-sb), момент с перезапуском OSD в /etc/vitastor/vitastor.conf или [vitastor-disk update-sb](../usage/disk.ru.md#update-sb),
а некоторые и без перезапуска, с помощью изменения конфигурации в etcd. а некоторые и без перезапуска, с помощью изменения конфигурации в etcd.
- [osd_network](#osd_network)
- [osd_cluster_network](#osd_cluster_network)
- [bind_address](#bind_address) - [bind_address](#bind_address)
- [bind_port](#bind_port) - [bind_port](#bind_port)
- [osd_iothread_count](#osd_iothread_count) - [osd_iothread_count](#osd_iothread_count)
@@ -67,32 +65,15 @@
- [min_discard_size](#min_discard_size) - [min_discard_size](#min_discard_size)
- [allow_net_split](#allow_net_split) - [allow_net_split](#allow_net_split)
## osd_network
- Тип: строка или массив строк
Маски подсетей (IPv4 или IPv6) публичной сети или сетей OSD. Каждый OSD слушает
один и тот же порт на всех адресах поднятых (UP + RUNNING) сетевых интерфейсов,
соответствующих одной из указанных сетей. Порт выбирается автоматически, если
только [bind_port](#bind_port) не задан явно. Адреса для подключений можно
также переопределить явно, задав [bind_address](#bind_address). Если сети OSD
не заданы вообще, OSD слушает все адреса (0.0.0.0).
## osd_cluster_network
- Тип: строка или массив строк
Маски подсетей (IPv4 или IPv6) отдельной кластерной сети или сетей OSD.
То есть, OSD будут всегда стараться использовать эти сети для соединений
с другими OSD, а клиенты будут стараться использовать сети из [osd_network](#osd_network).
## bind_address ## bind_address
- Тип: строка или массив строк - Тип: строка или массив строк
Этим параметром можно явным образом задать адрес(а), на котором будет ожидать Вместо использования масок подсети ([osd_network](network.ru.md#osd_network) и
соединений OSD (вместо использования маски подсети). Может быть полезно, [osd_cluster_network](network.ru.md#osd_cluster_network)), вы также можете явно
например, чтобы запускать OSD на неподнятых интерфейсах (не UP + RUNNING). задать адрес(а), на которых будут ожидать соединений OSD, с помощью данного
параметра. Это может быть полезно, например, чтобы запускать OSD на неподнятых
интерфейсах (не UP + RUNNING).
## bind_port ## bind_port
+57 -28
View File
@@ -1,35 +1,32 @@
- name: tcp_header_buffer_size - name: osd_network
type: int type: string or array of strings
default: 65536 type_ru: строка или массив строк
info: | info: |
Size of the buffer used to read data using an additional copy. Vitastor Network mask of public OSD network(s) (IPv4 or IPv6). Each OSD listens on all
packet headers are 128 bytes, payload is always at least 4 KB, so it is addresses of UP + RUNNING interfaces matching one of these networks, on the
usually beneficial to try to read multiple packets at once even though same port. Port is auto-selected except if [bind_port](osd.en.md#bind_port) is
it requires to copy the data an additional time. The rest of each packet explicitly specified. Bind address(es) may also be overridden manually by
is received without an additional copy. You can try to play with this specifying [bind_address](osd.en.md#bind_address). If OSD networks are not specified
parameter and see how it affects random iops and linear bandwidth if you at all, OSD just listens on a wildcard address (0.0.0.0).
want.
info_ru: | info_ru: |
Размер буфера для чтения данных с дополнительным копированием. Пакеты Маски подсетей (IPv4 или IPv6) публичной сети или сетей OSD. Каждый OSD слушает
Vitastor содержат 128-байтные заголовки, за которыми следуют данные размером один и тот же порт на всех адресах поднятых (UP + RUNNING) сетевых интерфейсов,
от 4 КБ и для мелких операций ввода-вывода обычно выгодно за 1 вызов читать соответствующих одной из указанных сетей. Порт выбирается автоматически, если
сразу несколько пакетов, даже не смотря на то, что это требует лишний раз только [bind_port](osd.ru.md#bind_port) не задан явно. Адреса для подключений можно
скопировать данные. Часть каждого пакета за пределами значения данного также переопределить явно, задав [bind_address](osd.ru.md#bind_address). Если сети OSD
параметра читается без дополнительного копирования. Вы можете попробовать не заданы вообще, OSD слушает все адреса (0.0.0.0).
поменять этот параметр и посмотреть, как он влияет на производительность - name: osd_cluster_network
случайного и линейного доступа. type: string or array of strings
- name: use_sync_send_recv type_ru: строка или массив строк
type: bool
default: false
info: | info: |
If true, synchronous send/recv syscalls are used instead of io_uring for Network mask of separate network(s) (IPv4 or IPv6) to use for OSD
socket communication. Useless for OSDs because they require io_uring anyway, cluster connections. I.e. OSDs will always attempt to use these networks
but may be required for clients with old kernel versions. to connect to other OSDs, while clients will attempt to use networks from
[osd_network](#osd_network).
info_ru: | info_ru: |
Если установлено в истину, то вместо io_uring для передачи данных по сети Маски подсетей (IPv4 или IPv6) отдельной кластерной сети или сетей OSD.
будут использоваться обычные синхронные системные вызовы send/recv. Для OSD То есть, OSD будут всегда стараться использовать эти сети для соединений
это бессмысленно, так как OSD в любом случае нуждается в io_uring, но, в с другими OSD, а клиенты будут стараться использовать сети из [osd_network](#osd_network).
принципе, это может применяться для клиентов со старыми версиями ядра.
- name: use_rdma - name: use_rdma
type: bool type: bool
default: true default: true
@@ -356,3 +353,35 @@
Минимальный интервал полной перезагрузки состояния из etcd. Добавлено для Минимальный интервал полной перезагрузки состояния из etcd. Добавлено для
предотвращения избыточной нагрузки на etcd во время отказов, когда etcd не предотвращения избыточной нагрузки на etcd во время отказов, когда etcd не
успевает рассылать потоки событий и отменяет их. успевает рассылать потоки событий и отменяет их.
- name: tcp_header_buffer_size
type: int
default: 65536
info: |
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
usually beneficial to try to read multiple packets at once even though
it requires to copy the data an additional time. The rest of each packet
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
want.
info_ru: |
Размер буфера для чтения данных с дополнительным копированием. Пакеты
Vitastor содержат 128-байтные заголовки, за которыми следуют данные размером
от 4 КБ и для мелких операций ввода-вывода обычно выгодно за 1 вызов читать
сразу несколько пакетов, даже не смотря на то, что это требует лишний раз
скопировать данные. Часть каждого пакета за пределами значения данного
параметра читается без дополнительного копирования. Вы можете попробовать
поменять этот параметр и посмотреть, как он влияет на производительность
случайного и линейного доступа.
- name: use_sync_send_recv
type: bool
default: false
info: |
If true, synchronous send/recv syscalls are used instead of io_uring for
socket communication. Useless for OSDs because they require io_uring anyway,
but may be required for clients with old kernel versions.
info_ru: |
Если установлено в истину, то вместо io_uring для передачи данных по сети
будут использоваться обычные синхронные системные вызовы send/recv. Для OSD
это бессмысленно, так как OSD в любом случае нуждается в io_uring, но, в
принципе, это может применяться для клиентов со старыми версиями ядра.
+9 -35
View File
@@ -1,43 +1,17 @@
- name: osd_network
type: string or array of strings
type_ru: строка или массив строк
info: |
Network mask of public OSD network(s) (IPv4 or IPv6). Each OSD listens on all
addresses of UP + RUNNING interfaces matching one of these networks, on the
same port. Port is auto-selected except if [bind_port](#bind_port) is
explicitly specified. Bind address(es) may also be overridden manually by
specifying [bind_address](#bind_address). If OSD networks are not specified
at all, OSD just listens on a wildcard address (0.0.0.0).
info_ru: |
Маски подсетей (IPv4 или IPv6) публичной сети или сетей OSD. Каждый OSD слушает
один и тот же порт на всех адресах поднятых (UP + RUNNING) сетевых интерфейсов,
соответствующих одной из указанных сетей. Порт выбирается автоматически, если
только [bind_port](#bind_port) не задан явно. Адреса для подключений можно
также переопределить явно, задав [bind_address](#bind_address). Если сети OSD
не заданы вообще, OSD слушает все адреса (0.0.0.0).
- name: osd_cluster_network
type: string or array of strings
type_ru: строка или массив строк
info: |
Network mask of separate network(s) (IPv4 or IPv6) to use for OSD
cluster connections. I.e. OSDs will always attempt to use these networks
to connect to other OSDs, while clients will attempt to use networks from
[osd_network](#osd_network).
info_ru: |
Маски подсетей (IPv4 или IPv6) отдельной кластерной сети или сетей OSD.
То есть, OSD будут всегда стараться использовать эти сети для соединений
с другими OSD, а клиенты будут стараться использовать сети из [osd_network](#osd_network).
- name: bind_address - name: bind_address
type: string or array of strings type: string or array of strings
type_ru: строка или массив строк type_ru: строка или массив строк
info: | info: |
Instead of the network mask, you can also set OSD listen addresses explicitly Instead of the network masks ([osd_network](network.en.md#osd_network) and
using this parameter. May be useful if you want to start OSDs on interfaces [osd_cluster_network](network.en.md#osd_cluster_network)), you can also set
that are not UP + RUNNING. OSD listen addresses explicitly using this parameter. May be useful if you
want to start OSDs on interfaces that are not UP + RUNNING.
info_ru: | info_ru: |
Этим параметром можно явным образом задать адрес(а), на котором будет ожидать Вместо использования масок подсети ([osd_network](network.ru.md#osd_network) и
соединений OSD (вместо использования маски подсети). Может быть полезно, [osd_cluster_network](network.ru.md#osd_cluster_network)), вы также можете явно
например, чтобы запускать OSD на неподнятых интерфейсах (не UP + RUNNING). задать адрес(а), на которых будут ожидать соединений OSD, с помощью данного
параметра. Это может быть полезно, например, чтобы запускать OSD на неподнятых
интерфейсах (не UP + RUNNING).
- name: bind_port - name: bind_port
type: int type: int
info: | info: |
+1 -1
View File
@@ -50,7 +50,7 @@ On the monitor hosts:
## Configure OSDs ## Configure OSDs
- Put etcd_address and osd_network into `/etc/vitastor/vitastor.conf`. Example: - Put etcd_address and [osd_network](../config/network.en.md#osd_network) into `/etc/vitastor/vitastor.conf`. Example:
``` ```
{ {
"etcd_address": ["10.200.1.10:2379","10.200.1.11:2379","10.200.1.12:2379"], "etcd_address": ["10.200.1.10:2379","10.200.1.11:2379","10.200.1.12:2379"],
+1 -1
View File
@@ -50,7 +50,7 @@
## Настройте OSD ## Настройте OSD
- Пропишите etcd_address и osd_network в `/etc/vitastor/vitastor.conf`. Например: - Пропишите etcd_address и [osd_network](../config/network.ru.md#osd_network) в `/etc/vitastor/vitastor.conf`. Например:
``` ```
{ {
"etcd_address": ["10.200.1.10:2379","10.200.1.11:2379","10.200.1.12:2379"], "etcd_address": ["10.200.1.10:2379","10.200.1.11:2379","10.200.1.12:2379"],