4.5. Секция devices

4.5. Секция devices

Таблица 4.3, «Атрибуты устройств» демонстрирует атрибуты, определяемые для каждого накопителя в секции devices файла multipath.conf. Эти атрибуты переопределяют значения в секции defaults, но переопределяются значениями из multipaths.
Многие устройства, поддерживающие многопутевые функции, включены по умолчанию в конфигурацию и перечислены в файле multipath.conf.defaults. Обычно нет необходимости в изменении стандартных определений, но если все-таки необходимо это сделать, просто добавьте соответствующую запись для конкретного устройства в файл конфигурации. Можно скопировать исходные настройки из multipath.conf.defaults и откорректировать значения.
Чтобы добавить в эту секцию новое устройство, сначала нужно установить параметры vendor и product. Их значения можно найти в /sys/block/имя_устройства/device/vendor и /sys/block/имя_устройства/device/model. Пример:
[root@cypher-06 ~]# cat /sys/block/sda/device/vendor
WINSYS  
[root@cypher-06 ~]# cat /sys/block/sda/device/model
SF2372
Дополнительные параметры зависят от конкретного устройства и обычно не требуются для активных устройств. По желанию можно присвоить параметру path_grouping_policy значение multibus или настроить no_path_retry и rr_min_io (см. Таблица 4.3, «Атрибуты устройств»).
В случае устройств с активными и пассивными путями, автоматически переключающихся на пассивный путь, надо изменить функцию проверки на функцию, которая не будет отправлять тестовые запросы пути с целью проверки его работоспособности (это может привести к повторным попыткам переключения пути). Для этого обычно достаточно присвоить параметру path_checker значение tur.
Если для переключения путей устройство требует указания специальной команды, для настройки его многопутевых возможностей понадобится дополнительный модуль обработчика. В настоящее время используется аппаратный обработчик emc. Если этого недостаточно, вероятно, не удастся настроить многопутевые возможности для устройства.
Таблица 4.3. Атрибуты устройств
Атрибут Описание
vendor Производитель устройства, например COMPAQ.
product Имя модели устройства, например HSV110 (C)COMPAQ.
revision Идентификатор версии устройства хранения.
product_blacklist Регулярное выражение для исключения устройств по названию продукта.
hardware_handler
Определяет модуль, который будет использоваться для выполнения действий при переключении между группами маршрутов и обработки ошибок ввода-вывода. Допустимые значения:
1 emc: аппаратный обработчик для массивов EMC.
1 alua: аппаратный обработчик для массивов SCSI-3 ALUA.
1 hp_sw: аппаратный обработчик для контроллеров Compaq/HP.
1 rdac: аппаратный обработчик для контроллеров RDAC LSI/Engenio.
path_grouping_policy
Определяет правила агрегации маршрутов. Возможные значения:
failover: один путь на группу.
multibus: все допустимые маршруты в одну группу.
group_by_serial: по серийному номеру.
group_by_prio: по значению приоритета пути.
group_by_node_name: по имени узла.
getuid_callout Задает программу и аргументы, используемые для получения уникального идентификатора пути. Необходимо указать абсолютный путь.
path_selector
Определяет алгоритм выбора пути для обработки следующего запроса ввода-вывода. Возможные значения:
round-robin 0: последовательный перебор путей в группе для обработки одинаковых объемов запросов.
queue-length 0: передача группы запросов пути с наименьшим числом ожидающих обработки запросов.
service-time 0: передача следующей группы запросов пути с кратчайшим временем обслуживания, что определяется посредством деления суммарного размера ожидающих обслуживания запросов на пропускаемость пути.
Значение по умолчанию — round-robin 0.
path_checker
Задает метод проверки пути. Возможные значения:
readsector0: чтение первого сектора устройства.
tur: вызов команды TEST UNIT READY для устройства.
emc_clariion: запрос определения пути к странице 0xC0 EPVD систем EMC Clariion.
hp_sw: проверка состояния пути для дисковых массивов HP с драйверами в активном или спящем режиме.
rdac: проверка состояния пути для контроллера RDAC LSI/Engenio.
directio: чтение первого сектора посредством прямого ввода-вывода.
По умолчанию используется значение readsector0.
features Дополнительные функции. Единственное допустимое на данный момент значение — queue_if_no_path, что аналогично присвоению no_path_retry значения queue. Раздел 5.4, «Проблемы с «queue_if_no_path»» содержит информацию о потенциальных проблемах, связанных с использованием этой возможности.
prio
Задает функцию, которая по умолчанию вызывается для получения приоритета пути. Так, например, биты ALUA в SPC-3 предоставляют значение prio. Возможные значения:
const: приоритет всех путей равен 1.
emc: генерация приоритета пути для массивов EMC.
alua: генерация приоритета пути исходя из настроек SCSI-3 ALUA.
tpg_pref: генерация приоритета пути исходя из настроек SCSI-3 ALUA с учетом разряда предпочитаемого порта.
ontap: генерация приоритета пути для массивов NetApp.
rdac: генерация приоритета пути для RDAC-контроллера LSI/Engenio.
hp_sw: генерация пути для контроллера Compaq/HP в активном и спящем режиме.
hds: генерация приоритета пути для дисковых массивов Hitachi HDS.
По умолчанию используется значение const.
failback
Разрешает переключать группы путей в случае сбоя.
Значение immediate вызывает немедленное переключение на группу путей с наиболее высоким приоритетом.
Значение manual обозначает, что переключение должно быть выполнено вручную.
Значение followover вызывает автоматическое переключение в момент активации первого пути в группе. Это предотвращает автоматическое изменение пути.
Положительное число задаст время (в секундах), по истечении которого будет выполнено переключение.
По умолчанию используется значение manual.
rr_weight Если имеет значение priorities, то число отправляемых одному пути запросов будет определяться значением rr_min_io, умноженным на приоритет маршрута (который определяется функцией prio). Следующий путь будет выбран с помощью path_selector. По умолчанию используется значение uniform (т.е. все пути равноправны).
no_path_retry
Числовое значение задает число попыток использования проблемного маршрута, прежде чем запросы прекратят поступление в его очередь.
Значение fail подразумевает немедленный отказ пути без ожидания.
Значение queue обозначает, что поступление запросов не должно прекращаться, до тех пора пока путь не будет восстановлен.
По умолчанию используется значение 0.
rr_min_io Задает число передаваемых одному пути запросов ввода-вывода, прежде чем начнет использоваться следующий путь в группе. По умолчанию будет обработано 1000 запросов.
fast_io_fail_tmo Время ожидания (в секундах) после обнаружения проблемы удаленного порта, по истечении которого для него будет зарегистрирован сбой обработки запросов ввода-вывода. Значение не должно превышать dev_loss_tmo. Значение off отключит эту функциональность.
dev_loss_tmo Время ожидания (в секундах) после обнаружения проблемы удаленного порта, по истечении которого он будет исключен из системы.
flush_on_last_del Если установлен в yes, multipathd отключит возможность добавления в очередь, если удален последний путь к устройству. По умолчанию используется значение no.

Пример записи device в файле конфигурации:
#	}
#	device {
#		vendor			"COMPAQ  "
#		product			"MSA1000         "
#		path_grouping_policy	multibus
#		path_checker		tur
#		rr_weight		priorities
#	}
#}