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. Пример:
# cat /sys/block/sda/device/vendor
WINSYS  
# 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: передача следующей группы запросов пути с кратчайшим временем обслуживания, что определяется посредством деления суммарного размера ожидающих обслуживания запросов на пропускаемость пути.
path_checker
Задает метод проверки пути. Возможные значения:
readsector0: чтение первого сектора устройства.
tur: вызов команды TEST UNIT READY для устройства.
emc_clariion: запрос определения пути к странице 0xC0 EPVD систем EMC Clariion.
hp_sw: проверка состояния пути для дисковых массивов HP с драйверами в активном или спящем режиме.
rdac: проверка состояния пути для контроллера RDAC LSI/Engenio.
directio: чтение первого сектора посредством прямого ввода-вывода.
features Дополнительные функции. Единственное допустимое на данный момент значение — queue_if_no_path, что аналогично присвоению no_path_retry значения queue. Раздел 5.6, «Ошибки «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.
failback
Разрешает переключать группы путей в случае сбоя.
Значение immediate вызывает немедленный выбор группы путей с наиболее высоким приоритетом.
Значение manual обозначает, что переключение должно быть выполнено вручную.
Значение followover вызывает автоматическое переключение в момент активации первого пути в группе.
Положительное число задаст время (в секундах), по истечении которого будет выполнено переключение.
rr_weight Если значение равно priorities, то вместо передачи конкретного числа запросов (заданного с помощью rr_min_io) одному пути до выбора следующего (с помощью path_selector) число отправляемых запросов будет определяться значением rr_min_io, умноженным на приоритет маршрута (который определяется функцией prio). По умолчанию равно uniform, то есть все пути равноправны.
no_path_retry
Числовое значение задает число попыток использования проблемного маршрута, прежде чем запросы прекратят поступление в его очередь.
Значение fail подразумевает немедленный отказ без ожидания.
Значение queue обозначает, что поступление запросов не должно прекращаться.
rr_min_io Число запросов ввода и вывода, которые будут переданы этому маршруту, прежде чем будет выбран следующий путь в текущей группе. Этот параметр может использоваться только для ядра 2.6.31 и более ранних версий; другие версии должны использовать rr_min_io_rq. По умолчанию будет обработано 1000 запросов.
rr_min_io_rq Число запросов ввода и вывода, которые будут переданы этому маршруту, прежде чем будет выбран следующий путь в текущей группе. Этот параметр должен использоваться для ядер, начиная с версии 2.6.31; другие версии должны использовать rr_min_io_io. По умолчанию его значение равно 1.
fast_io_fail_tmo Время ожидания (в секундах) после обнаружения конфликта удаленного порта, по истечении которого будет зарегистрирован сбой запросов ввода-вывода. Величина не должна превышать dev_loss_tmo. Значение off отключит эту функциональность.
dev_loss_tmo Время ожидания (в секундах) после обнаружения конфликта удаленного порта, по истечении которого он будет исключен из системы. Значение «infinity» снимет ограничения, присвоив значение 2147483647 секунд, что составляет 68 лет.
flush_on_last_del Значение yes отключит возможность добавления в очередь, если удален последний путь к устройству.
user_friendly_names Если имеет значение yes, система будет использовать файл /etc/multipath/bindings для присвоения уникального имени метаустройству в формате mpathn. Значение no обозначает, что вместо имени будет использоваться идентификатор WWID. Имена в секции multipaths файла конфигурации переопределят значение этого параметра. По умолчанию используется значение no.
retain_attached_hw_handler (Red Hat Enterprise Linux 6.4 и последующие версии) Если установлен в yes, и метаустройству уже сопоставлен аппаратный обработчик, устройство может не использовать hardware_handler, заданный в mutipath.conf. Если же аппаратный обработчик не был назначен, будет по-прежнему использоваться уже настроенный обработчик.
detect_prio (Red Hat Enterprise Linux 6.4 и последующие версии) Если установлен в yes, будет проверено наличие поддержки ALUA. Если устройство поддерживает ALUA, ему будет автоматически присвоен индикатор приоритета alua.
Пример записи device:
#	}
#	device {
#		vendor			"COMPAQ  "
#		product			"MSA1000         "
#		path_grouping_policy	multibus
#		path_checker		tur
#		rr_weight		priorities
#	}
#}