lsm-qnet.so

Модуль прозрачной защищенной распределенной сети (собственная сеть Нейтрино)

Синтаксис:

io-pkt ... -p qnet [опция[,опция]...]

Опции:

auto_add=X
При запуске qnet встроенный в io-pkt-* преобразователь Ethernet (en) рассылает собственные отображения во все интерфейсы. Эта опция определяет интервал времени в тактах (см. описание опции periodic_ticks), после которого встроенный в io-pkt-* преобразователь Ethernet (en) выполняет передачу собственных отображений во все интерфейсы повторно. Это действие аналогично автоматическому заполнению каталога /net всеми связанными узлами.
Значение по умолчанию – 150 тактов, что соответствует 30 секундам. Значение 0 является специальным; если указано это значение, то процессы передачи останавливаются, и незатребованные передачи отклоняются. При этом в каталог /net вносятся только те узлы, которые специально открываются приложениями на локальном узле.
bind=enX
Указывает используемый интерфейс (например, bind=en0). По умолчанию используются все интерфейсы /dev/io-net/enX. Если указаны несколько опций bind, то в Qnet используются все указанные интерфейсы. Это наиболее быстрый способ переноса пакетов.

Caution: Сочетание bind=en и resolve=dns является недопустимым.

bind=ip
Вместо использования неформатированных ("голубая книга" DIX) пакетов Ethernet включить в пакеты Qnet IP-заголовок по зарегистрированному номеру протокола. Рекомендуется в больших сетях, где невозможна коммутация второго уровня, но требуется маршрутизировать все пакеты.
При использовании опции bind=ip также необходимо указать опцию resolve=dns (указать преобразователь). Преобразователь используется для отображения имени узла в IP-адресе. Преобразователь по умолчанию опцию bind=ip не использует.
conn_est_retries=X
Число повторных попыток установления соединения QoS перед отказом. Значение по умолчанию – 1.
conn_est_timeout=X
Число периодических тактов перед повторной передачей запроса на установление соединения QoS. Значение по умолчанию – 1.
conn_up_idle=X
Число периодических тактов до того, как QoS заключает, что соединение неактивно (без трафика), и требуется его опрос посредством тактового сообщения. Значение по умолчанию – 50 тактов (10 секунд).
conn_up_retries=X
Число оставшихся без ответа тактовых сообщений, после которого QoS заключает, что соединение не функционирует. Значение по умолчанию – 6.
do_crc=X
Активировать (1) или деактивировать (0) проверку пакетов до четвертого уровня (L4) циклическим избыточным кодом (CRC) на программном уровне. Значением по умолчанию является 0. Оптимальная производительность на надежном оборудовании обеспечивается при деактивации проверки циклическим избыточным кодом.
enforce_crc=число
При использовании этой опции вместе с do_crc принимаются только пакеты с действительным циклическим избыточным кодом. Применение этой опции целесообразно только в том случае, если для do_crc установлено значение 1. При определении для опции enforce_crc значения 1 пакеты без действительного циклического избыточного кода программного уровня, сгенерированного удаленным узлом (т.е. на котором выполняется do_crc=0), отклоняются, поскольку отсутствует информация о целостности содержимого пакета. Значение по умолчанию – 0, что позволяет обрабатывать пакеты, принятые без сгенерированного циклического избыточного кода программного уровня.
host=имя_хоста
Изменить имя хоста компьютера.
mapany=map_uid
Отобразить входящий идентификатор любого пользователя в map_uid, а идентификатор его группы в идентификатор группы map_uid.
maproot=map_uid
Если входящий идентификатор пользователя 0, отобразить его в map_uid, а идентификатор группы в идентификатор группы map_uid.
max_num_l4s=число
Указать число интерфейсов. Значение по умолчанию – 2, максимальное значение – 4.
max_tx_bufs=число
Число буферов передачи, зарезервированных Qnet перед дальнейшим выделением. Значение по умолчанию – 500. Если приложение отправляет большие сообщения, в целях повышения производительности это значение может быть увеличено. Если приложение, как правило, отправляет небольшие сообщения (небольшие сообщения составляют большую часть системного трафика), это значение может быть уменьшено в целях экономии памяти.
mount=каталог[:[.]домен]]*
Указать сетевой каталог. По умолчанию используется каталог /net. По умолчанию аргумент домен принимает значение домена имени хоста (при наличии) или каталога с заменой косых черт на точки и расположением элементов в обратном порядке. Например, для /net/outside/canada определен домен canada.outside.net. Первым смонтированным элементом является каталог по умолчанию и домен, через который разрешается локальное имя хоста.
mtu_en=число
Указать максимальный размер передаваемого блока данных (Maximum Transmission Unit; MTU) в пакете Qnet. Значение аргумента число должно быть больше 100, и все узлы в сети должны использовать одно значение. Значение по умолчанию – 1500.
no_ack=X
Создавать и ожидать (или не создавать и не ожидать) пакеты ACK. Эти пакеты обеспечивают доставку данных в сетях, в которых возможна потеря пакетов, например Ethernet. Возможные значения X:
0 (по умолчанию)
Создавать и ожидать пакеты ACK.
1
Не создавать и не ожидать пакеты ACK. Это значение следует указывать только в случаях, когда возможность потери пакетов полностью исключается.

Note: Все хосты в сети должны быть сконфигурированы с одинаковым значением опции no_ack.

no_slog=X
При установке для этой опции ненулевого значения Qnet не записывает ошибки и события в журнал slogger. Эта опция используется для удаления событий, вызванных сетью с помехами, при поиске несетевых событий в выводе журнала sloginfo. По умолчанию Qnet записывает события в журнал slogger, что соответствует определению нулевого значения для опции no_slog.
periodic_ticks=X
Число активаций QoS/L4 в секундах для выполнения периодических задач по обслуживанию. Значение должно находиться в диапазоне от 1 до 1000; значение по умолчанию – 5, что соответствует 200 тактам в мсек.

Note: Изменение значения periodic_ticks влияет на временные параметры всех других опций, действие которых зависит от тактового таймера.

probe_no_l4_time=X
Число периодических тактов по истечении которых QoS осуществляет проверку подключения к интерфейсу, для которого отсутствует отображение для удаленного узла передачей широковещательного пакета. Значение по умолчанию совпадает со значением опции conn_up_idle.
qos_per_pri=число
qos_tx_pri=число
Приоритет импульсов для потока периодической передачи QoS и потока передачи QoS.

Note: Изменять эти значения не рекомендуется. Опции qos_per_pri и qos_tx_pri предусмотрены для редких случаев, когда требуется изменить приоритет подсистем io-pkt-*.

qos_verbose=X
Уровень вывода расширенной информации по управлению подключениями посредством QoS. Значение по умолчанию – 0. Чем выше значение, тем выше уровень подробности выводимой информации. Эта опция используется в целях диагностики.
res_retries=X
Число повторных попыток, выполняемых преобразователем Ethernet во время предпринятого разрешения узла перед отказом. Значение по умолчанию – 2.
res_ticks=X
Число периодических тактов перед повторной передачей преобразователем запроса на разрешение узла. Значение по умолчанию – 1.
resolve=преобразователь[:параметр_преобразователя]
Добавить в список преобразователей для точек монтирования дополнительный преобразователь. В менеджер сети встроены следующие значения аргумента преобразователь:
en_ionet
запросы на трансляцию для разрешения имен в LAN (аналогично протоколу TCP/IP ARP). Используется по умолчанию.
dns
использовать имя узла, добавить точку (.), затем имя домена узла и передать результат функции TCP/IP gethostbyname().
file
параметр_преобразователя соответствует имени используемого файла; значение по умолчанию – /etc/qnet_hosts. Применяется следующий формат файла:
#Это строка комментария хост.домен адрес1[,адрес2] ...
Аргумент хост.домен обозначает полное доменное имя Qnet (fully qualified domain name; FQDN). Аргумент адрес1 и дополнительный аргумент адрес2 определяют адреса интерфейсов для FQDN. Для bind=en используется формат адреса xx:xx:xx:xx:xx:xx (MAC-адрес).

В случае ввода других данных Qnet выполняет попытку загрузки nr-resolver.so. По умолчанию используется преобразователь имен en_ionet. По вопросам создания nr-resolver.so обращайтесь в службу поддержки.

Note: Следующие сочетания не поддерживаются:
  • bind=en и resolve=dns
  • bind=ip и resolve=file

ret_drvr_rx_buf=X
Способ обработки полученных пакетов (rxd) четвертым уровнем (L4):
0
удержание нескольких пакетов rxd в течение объединения (по умолчанию). При этом обеспечивается оптимальная производительность.
1
создание копии данных в пакетах с немедленным возвратом буферов пакетов драйверу. Рекомендуется в случае предоставления драйвером ограниченного числа буферов пакетов.
slow_mode=X
Число тактов, после которого не учитывается режим медленной передачи (т.е. с "узкими окнами") для узла. Значение по умолчанию – 1200, что соответствует 240 секундам или четырем минутам. Значение 0 является специальным. При выборе этого значения режим медленной передачи полностью деактивируется.
tx_retries=X
Число повторных попыток передачи Qnet перед отказом. Значение по умолчанию – 25.
tx_ticks=X
Число периодических тактов перед повторной передачей четвертым уровнем запроса на передачу. Значение по умолчанию – 1.


Caution:
  • В DLL-библиотеке lsm-qnet.so представлен большой выбор опций для изменения режима функционирования Qnet (например, таймауты, повторные попытки и время простоя), но оптимальная работа Qnet обеспечивается при установке настроек по умолчанию. Дополнительные опции следует использовать только в том случае, если требуется решить проблему, возникшую в конкретной среде. Некорректное применение опций может привести к отрицательным последствиям.
  • Для разделения опций используется запятая (но не пробелы).

Платформы:

ЗОСРВ «Нейтрино»

Целевые архитектуры:

aarch64, arm, armv7, e2k, mips, ppc, x86

Описание:

Менеджер lsm-qnet.so является упрощенной версией менеджера ЗОСРВ «Нейтрино», реализующего собственные функции организации сетей «Нейтрино», Transparent Distributed Processing (TDP; прозрачная распределенная обработка).

На уровне программного обеспечения QoS реализован протокол сессий "узел-узел" с обработкой выбора среды передачи.

Четвертый уровень представляет собой программный уровень, следующий за уровнем QoS, на котором реализуется четвертый транспортный уровень ISO для обеспечения надежной доставки данных без дублирования с использованием нижестоящего уровня драйвера.


Note: Выполнить утилиту umount в отношении Qnet невозможно, но можно создать модуль записи в буфер io-pkt-* с поддержкой демонтирования.

Если последовательно указаны две или более опций resolve, то преобразователи вносятся в список вариантов поиска для каталога, указанного в последующих опциях mount.

Список преобразователей завершается опцией mount. Все опции resolve после опции mount переносятся в новый список, а не добавляются в предыдущий.

Следующая строка

resolve=a,resolve=b,mount=x,mount=y,resolve=c,mount=z

указывает, что:

Примеры:

Существует два способа запуска Qnet: одновременно с утилитами io-pkt-* или после этого с помощью утилиты mount.

Одновременный запуск сетевого драйвера, Qnet и TCP/IP. Для Qnet при этом используется тип пакетов Ethernet по умолчанию ("голубая книга" DIX) без проверки циклическим избыточным кодом и 1024 дескриптора для обеспечения максимальной производительности:

io-pkt -d speedo transmit=1024,receive=1024 -p qnet -p tcpip

Запуск io-pkt-*, затем с помощью команды mount последовательный запуск драйвера и Qnet с применением актуальных имен файлов разделяемых библиотек:

io-pkt mount -T io-pkt -o transmit=1024,receive=1024 devn-speedo.so mount -T io-pkt lsm-qnet.so

Эти разделяемые библиотеки (с расширением .so) находятся в каталоге /lib/dll. Утилита mount автоматически осуществляет поиск этих библиотек в указанном каталоге. Утилите mount можно присвоить полное путевое имя.

В следующем примере представлен одновременный запуск всех компонентов с использованием инкапсуляции IP-пакетов вместо "голубой книги" DIX:

io-pkt -d speedo transmit=1024,receive=1024 -p qnet bind=ip,resolve=dns -p tcpip

Для получения дополнительной информации см. описание mount и io-pkt-*.

Файлы:

/dev/io-net
Каталог, в который модули протоколов и старые драйверы io-net размещают свои имена. Для получения дополнительной информации см. документацию по io-pkt-*.
/etc/system/config/useqnet
Если этот файл существует, в системе используются файлы запуска по умолчанию. При запуске системы выполняется команда io-pkt-*. Также выполняется автоматическая загрузка lsm-qnet.so. Для получения дополнительной информации см. главу «Запуск ЗОСРВ «Нейтрино» документа «Руководство системного программиста (администратора)» КПДА.10964-01 32.
/proc/qnetstats
Запись, помещаемая Qnet в файловую систему /proc. При открытии и чтении этого файла код менеджера ресурсов Qnet отвечает путем передачи текущей статистики для Qnet.

Предостережения:

В Qnet не реализована полная поддержка обмена информацией между компьютерами с прямым и обратным порядком байтов. Однако, доступен обмен данными между машинами с разными типами процессоров (например, ARMLE и x86), для которых определен одинаковый порядок байтов.

Классификация:

Базовые подсистемы ЗОСРВ «Нейтрино», Драйверы

Тематические ссылки:

io-pkt-*, devn-*, devnp-*




Предыдущий раздел: Драйверы