Red Hat Training
A Red Hat training course is available for Red Hat Enterprise Linux
DM Multipath
Red Hat Enterprise Linux 6
Администрирование DM Multipath
Редакция 1
Аннотация
В этом руководстве рассматриваются принципы работы Device-Mapper Multipath в Red Hat Enterprise Linux 6.
Введение
В этом документе рассматриваются возможности DM-Multipath (Device Mapper Multipath) в Red Hat Enterprise Linux 6.
1. Целевая аудитория
Документ предназначен для системных администраторов Linux, обладающих навыками работы с Red Hat Enterprise Linux.
2. Дополнительные ресурсы
Следующие ресурсы предоставляют информацию о Red Hat Enterprise Linux:
- Руководство по установке рассматривает аспекты установки Red Hat Enterprise Linux 6.
- Руководство по развертыванию предоставляет информацию по установке, настройке и администрированию Red Hat Enterprise Linux 6.
- Руководство по управлению накопителями содержит информацию об управлении устройствами хранения и файловыми системами в Red Hat Enterprise Linux 6.
Подробную информацию о комплектах распределения нагрузки и отказоустойчивого хранения данных можно найти в следующих документах:
- Обзор комплекта высокой готовности.
- Управление кластером содержит информацию об установке, настройке и управлении кластерными компонентами Red Hat.
- Администрирование LVM содержит информацию об управлении логическими томами (LVM, Logical Volume Manager), включая сведения о работе LVM в кластерном окружении.
- Администрирование GFS2 предоставляет информацию об установке, настройке и поддержке работы Red Hat GFS2 (Global File System 2).
- Распределение нагрузки предоставляет информацию о настройке высокопроизводительных систем и служб за счет виртуального сервера Linux (LVS, Linux Virtual Server), распределяющего нагрузку между физическими серверами.
- Примечания к выпуску содержат краткий обзор последнего выпуска Red Hat.
Весь диапазон документов Red Hat доступен в виде HTML, PDF и RPM на диске документации Red Hat Enterprise Linux и на сайте http://docs.redhat.com/docs/en-US/index.html.
3. Отзывы и предложения
Если вы нашли опечатки, или у вас есть предложения по усовершенствованию руководства, создайте запрос в Bugzilla по адресу http://bugzilla.redhat.com/ , выбрав компонент doc-DM_Multipath. Дополнительно укажите идентификатор документа:
rh-DM_Multipath(EN)-6 (2013-2-15T15:15)
Если у вас есть предложения по улучшению руководства, постарайтесь подробно их описать. Для облегчения идентификации ошибок и опечаток укажите номер раздела и окружающий текст.
Глава 1. Объединение маршрутов
DM-Multipath позволяет объединить несколько маршрутов ввода-вывода между серверами и дисковыми массивами в единое целое. Маршруты в этом случае представляют собой физические SAN-соединения, которые могут включать отдельные кабели, переключатели и контроллеры. В результате агрегации будет создано новое устройство.
В этой главе приведено общее описание компонентов DM-Multipath, их настройка и особенности в Red Hat Enterprise Linux 6.
1.1. Новые и измененные возможности
Ниже перечислены новые и обновленные возможности DM-Multipath в Red Hat Enterprise Linux 6.
1.1.1. Red Hat Enterprise Linux 6.0
Далее перечислены особенности многоканальных решений в Red Hat Enterprise Linux 6.0.
- Изменился процесс исходной настройки DM-Multipath:
mpathconf
теперь позволяет создать файл конфигурации и активировать DM-Multipath. Эта утилита также может загрузить модульdevice-mapper-multipath
, запуститьmultipathd
и настроить автоматический запуск службы с помощьюchkconfig
.Раздел 3.1, «Настройка DM-Multipath» содержит дальнейшую информацию. Описание функцийmpathconf
можно найти на справочной страницеmpathconf
(5). - В Red Hat Enterprise Linux 6 появился новый способ настройки многоканальных устройств с помощью параметра
find_multipaths
. Раньше устройства создавались для всех путей, не внесенных в черный список. Теперь, если параметрfind_multipaths
имеет значениеyes
, метаустройство будет создано только в одном из следующих случаев:- Существует по крайней мере два пути с одним и тем же WWID, не указанных в списке исключений.
- Пользователь создает устройство вручную с помощью
multipath
. - Путь имеет тот же WWID что и созданное ранее метаустройство (даже если это устройство в настоящий момент уже не существует). Раздел 4.2, «Секция blacklist» объясняет, что делать, если многоканальные устройства были созданы, в то время как параметр
find_multipaths
не был определен.
Вышеперечисленное помогает автоматически выбрать пути для агрегации без необходимости редактирования списка исключений.Раздел 4.3, «Секцияdefaults
» содержит описаниеfind_multipaths
. - В Red Hat Enterprise Linux 6 доступно два новых алгоритма выбора пути для обработки следующей операции ввода-вывода —
queue-length
иservice-time
. Алгоритмqueue-length
выбирает путь исходя из числа ожидающих запросов, в то время какservice-time
учитывает не только число ожидающих запросов, но и пропускную способность пути. Глава 4, Файл конфигурации DM-Multipath содержит подробную информацию. - Функции приоритета теперь представляют собой не вызывающие программы, а общие динамические объекты (аналогично функциям проверки путей). Параметр
prio_callout
заменен наprio
(см. Глава 4, Файл конфигурации DM-Multipath). - Изменился формат вывода
multipath
(см. Раздел 5.7, «Вывод команды multipath»). - Файл
bindings
теперь расположен в/etc/multipath/bindings
. - В секции
defaults
теперь доступны три новых параметра —checker_timeout
,fast_io_fail_tmo
иdev_loss_tmo
(см. Глава 4, Файл конфигурации DM-Multipath). - Если
user_friendly_names
в файле конфигурации присвоено значениеyes
, имя метаустройства будет определено в форматеmpath
n, где n — буква латинского алфавита. Примеры:mpatha
,mpathb
. В предыдущих выпусках n заменяли целые числа.
1.1.2. Red Hat Enterprise Linux 6.1
Далее перечислены особенности многоканальных решений в Red Hat Enterprise Linux 6.1.
1.1.3. Red Hat Enterprise Linux 6.2
Ниже перечислены основные изменения в Red Hat Enterprise Linux 6.2.
- В секциях
defaults
,devices
иmultipaths
доступен параметрrr_min_io_rq
, заменившийrr_min_io
(см. Глава 4, Файл конфигурации DM-Multipath). - Параметру
dev_loss_tmo
можно назначить значение «infinity», что снимет ограничения, присвоив переменнойsysfs
значение 2147483647 секунд, что составляет 68 лет (см. Глава 4, Файл конфигурации DM-Multipath).
1.1.4. Red Hat Enterprise Linux 6.3
Ниже перечислены основные изменения в Red Hat Enterprise Linux 6.3.
- Значение параметра
queue_without_daemon
по умолчанию равноno
. - Значение параметра
max_fds
по умолчанию равноmax
. - Параметр
user_friendly_names
может быть определен в секцияхdefaults
,multipaths
,devices
файлаmultipath.conf
. - Секция
defaults
может содержать параметрhwtable_regex_match
.
Глава 4, Файл конфигурации DM-Multipath содержит информацию о параметрах в файле конфигурации.
1.1.5. Red Hat Enterprise Linux 6.4
Ниже перечислены основные изменения в Red Hat Enterprise Linux 6.4.
- Добавлены параметры
retain_attached_hardware_handler
иdetect_prio
в секцииdefaults
иdevices
(см. Глава 4, Файл конфигурации DM-Multipath).
1.2. Обзор DM-Multipath
DM-Multipath позволяет достичь следующего:
- Избыточность.DM-Multipath обеспечивает необходимый уровень отказоустойчивости в активно-пассивной конфигурации, в которой только половина путей используется для обработки ввода-вывода. В случае сбоя компонента пути (кабеля, переключателя, контроллера) DM-Multipath начнет использовать альтернативный путь.
- Улучшение производительности.DM-Multipath можно настроить в активном режиме, то есть запросы ввода и вывода будут поочередно распределяться между маршрутами. В некоторых конфигурациях DM-Multipath может автоматически перераспределять нагрузку.
Рисунок 1.1, «Активно-пассивная конфигурация с одним устройством RAID» демонстрирует активно-пассивную структуру двух путей ввода-вывода между сервером и устройством RAID. Сервер оборудован двумя HBA-адаптерами, двумя переключателями SAN и двумя контроллерами RAID.
Рисунок 1.1. Активно-пассивная конфигурация с одним устройством RAID
В этом примере один путь проходит через hba1, SAN1 и контроллер 1, а второй — через hba2, SAN2 и контроллер 2. Потенциальные риски такой организации:
- сбой HBA;
- сбой кабеля FC;
- сбой переключателя SAN;
- сбой порта контроллера массива.
В этом случае сбой одного из перечисленных компонентов вызовет переключение на альтернативный маршрут.
Рисунок 1.2, «Активно-пассивная конфигурация с двумя устройствами RAID» демонстрирует более сложную схему с двумя адаптерами HBA на сервере, двумя переключателями SAN и двумя устройствами RAID, каждое из которых обладает двумя RAID-контроллерами.
Рисунок 1.2. Активно-пассивная конфигурация с двумя устройствами RAID
Рисунок 1.2, «Активно-пассивная конфигурация с двумя устройствами RAID» демонстрирует два пути ввода-вывода для каждого RAID-устройства (также см. Рисунок 1.1, «Активно-пассивная конфигурация с одним устройством RAID»). В этом случае сбой компонента вызовет переключение на другой путь.
Рисунок 1.3, «Активная конфигурация с одним устройством RAID» демонстрирует активную конфигурацию с двумя HBA-адаптерами на сервере, одним переключателем SAN и двумя RAID-контроллерами. Всего доступно четыре маршрута от сервера к накопителю:
- от hba1 к контроллеру 1;
- от hba2 к контроллеру 2;
- от hba2 к контроллеру 1;
- от hba2 к контроллеру 2.
Запросы могут распределяться между этими четырьмя путями.
Рисунок 1.3. Активная конфигурация с одним устройством RAID
1.3. Поддержка дисковых массивов
DM-Multipath по умолчанию включает поддержку наиболее распространенных массивов накопителей. Их список можно найти в файле
multipath.conf.defaults
. Если массив поддерживает DM-Multipath, но не указан в файле, его можно добавить в multipath.conf
(см. Глава 4, Файл конфигурации DM-Multipath).
Некоторые дисковые массивы требуют специальной обработки ошибок ввода-вывода и переключения маршрутов. Для этого необходимы отдельные модули ядра.
1.4. Компоненты DM-Multipath
Таблица 1.1, «Компоненты DM-Multipath» содержит описание компонентов DM-Multipath.
Таблица 1.1. Компоненты DM-Multipath
Компонент | Описание |
---|---|
модуль ядра dm_multipath | Перенаправляет ввод-вывод и обеспечивает отказоустойчивость маршрутов и их групп. |
программа mpathconf | Используется для настройки и активации многоканальных возможностей. |
команда multipath | Возвращает список многоканальных устройств и позволяет их настроить. Запускается с помощью /etc/rc.sysinit или во время добавления блочного устройства при помощи udev . |
служба multipathd | Следит за маршрутами, инициализирует переключение групп маршрутов и позволяет изменять устройства интерактивно. Чтобы изменения в /etc/multipath.conf вступили в силу, необходим перезапуск. |
команда kpartx | Создает многоканальные устройства для разделов DOS с DM-MP. kpartx предоставляется в виде отдельного пакета и требуется для установки device-mapper-multipath . |
1.5. Обзор настройки DM-Multipath
DM-Multipath предоставляет стандартные настройки, достаточные для большинства многоканальных структур.
Порядок базовой настройки системы с DM-Multipath:
- Установите пакет
device-mapper-multipath
. - Создайте файл конфигурации и с помощью
mpathconf
включите многоканальные возможности. Если нет необходимости в изменении файла конфигурации, с помощью этой команды можно сразу запустить службу multipathd. - Если требуется, измените исходные значения в
multipath.conf
. - Запустите multipathd.
Глава 3, Настройка DM-Multipath содержит подробные инструкции.
Глава 2. Многоканальные устройства
Если DM-Multipath не используется, каждый путь от сервера к контроллеру накопителя рассматривается как отдельное устройство, даже если путь соединяет тот же серверный узел с тем же контроллером. DM-Multipath позволяет логически их организовать, объединив их в одно многоканальное устройство (также называемое метаустройством).
2.1. Идентификаторы устройств
Каждому многоканальному устройству соответствует уникальный идентификатор WWID (World Wide Identifier). Изначально WWID используется в качестве имени устройства, что по желанию можно изменить и присвоить более понятное имя с помощью параметра
user_friendly_names
в файле конфигурации. Имена следуют формату mpath
n
.
Например, узлу с двумя HBA, подключенному к контроллеру накопителя с двумя портами через один переключатель FC, будет доступно четыре устройства:
/dev/sda
, /dev/sdb
, dev/sdc
, /dev/sdd
. Таким образом, можно создать единственное метаустройство с уникальным WWID, которое будет перенаправлять ввод-вывод этим четырем устройствам. Если параметру user_friendly_names
присвоено значение yes
, метаустройство будет иметь имя в формате mpath
n
.
Новые устройства будут располагаться в
/dev/mapper/mpath
n
и /dev/dm-
n
.
- Устройства в
/dev/mapper
создаются в начале процесса загрузки и используются для доступа к многоканальным устройствам, к примеру при создании логических томов. - Устройства
/dev/dm-
n
предназначены лишь для внутреннего использования.
Раздел 4.3, «Секция
defaults
» содержит подробную информацию.
Многоканальному устройству можно присвоить произвольное имя с помощью параметра
alias
в секции multipaths
(см. Раздел 4.4, «Секция multipaths»).
2.2. Постоянство имен устройств в кластере
Если параметр
user_friendly_names
установлен в yes
, имя устройства будет уникально в пределах своего узла, но не гарантируется, что оно будет уникальным для всех узлов, использующих это устройство. Аналогичным образом, при определении параметра alias
в секции multipaths
файла multipath.conf
заданное имя не будет являться уникальным в пределах кластера. При создании логических устройств на основе многоканальных устройств с помощью LVM это не имеет значения. Но если необходимо обеспечить постоянство имен устройств на всех узлах кластера, не следует устанавливать user_friendly_names
в yes
и присваивать псевдоним устройству, так как в качестве его имени должен выступать WWID.
Чтобы обеспечить постоянство определенных пользователем имен устройств между узлами в кластере, можно выполнить следующее:
- Настроить все метаустройства на одном компьютере.
- Остановить службы:
#
service multipathd stop
#multipath -F
- Скопировать файл
/etc/multipath/bindings
на все остальные компьютеры. - Заново запустить
multipathd
на узлах кластера:#
service mutipathd start
При добавлении нового устройства этот процесс надо повторить.
При определении уникального в пределах кластера имени рекомендуется убедиться, что на каждом узле расположен один и тот же файл
/etc/multipath.conf
. Для этого надо выполнить следующее:
- Настроить названия устройств в файле
multipath.conf
на одном компьютере. - Остановить службы:
#
service multipathd stop
#multipath -F
- Скопировать файл
/etc/multipath.conf
на все остальные компьютеры в кластере. - Заново запустить
multipathd
на узлах кластера:#
service mutipathd start
При добавлении нового устройства этот процесс надо повторить.
2.3. Атрибуты устройств
Помимо
user_friendly_names
и alias
доступны и другие параметры. Чтобы изменить параметры конкретного устройства, надо создать для него запись в секции multipaths
файла конфигурации (см. Раздел 4.4, «Секция multipaths»).
2.4. Многоканальные устройства в логических томах
К созданным метаустройствам можно обращаться по именам аналогично тому, как осуществляется обращение к физическим дискам при создании физического тома LVM. Например, команда создания физического тома на основе устройства
/dev/mapper/mpathа
будет выглядеть так:
pvcreate /dev/mapper/mpatha
Созданный том можно впоследствии добавить в группу томов LVM.
Примечание
Попытка создания физического тома LVM на основе целого устройства с настроенными разделами приведет к сбою
pvcreate
. Установка с помощью Anaconda или автоматизированная установка с использованием файла кикстарта по умолчанию создадут пустые таблицы разделов для всех блочных устройств. Чтобы использовать все устройство, необходимо удалить разделы с помощью kpartx -d
и fdisk
. Если размер дисков превышает 2 ТБ, для удаления разделов можно прибегнуть к помощи программы parted
.
При создании логического тома LVM на основе многоканальных массивов с активно-пассивной организацией следует исключить диски, лежащие в основе метаустройств, в
lvm.conf
с помощью фильтра. В противном случае при изменении активного маршрута на пассивный в процессе обработки ввода-вывода будет регистрироваться сбой и выполняться переключение пути каждый раз при попытке сканирования пассивного пути. LVM покажет предупреждение, если необходимо преобразовать пассивный путь в активный.
Чтобы отфильтровать все SCSI-устройства в секции
devices
файла lvm.conf
:
filter = [ "r/block/", "r/disk/", "r/sd.*/", "a/.*/" ]
Глава 3. Настройка DM-Multipath
Эта глава содержит пошаговые инструкции по настройке DM-Multipath. В том числе рассматривается следующее:
- простая настройка DM-Multipath;
- возможность игнорирования локальных дисков;
- добавление новых устройств в файл конфигурации.
- активация многоканальных функций в файловой системе
initramfs
.
3.1. Настройка DM-Multipath
Прежде чем приступить к настройке DM-Multipath, убедитесь, что система обновлена и включает пакет
device-mapper-multipath
.
mpathconf
создает и модифицирует файл /etc/multipath.conf
.
- Если
/etc/multipath.conf
существует,mpathconf
будет его редактировать. - Если
/etc/multipath.conf
не существует,mpathconf
создаст его, взяв за основу файл/usr/share/doc/device-mapper-multipath-0.4.9/multipath.conf
. - Если файл
/usr/share/doc/device-mapper-multipath-0.4.9/multipath.conf
не существует,mpathconf
создаст/etc/multipath.conf
с нуля.
Если нет необходимости в модификации файла
/etc/multipath.conf
, с помощью приведенной ниже команды можно подключить файл конфигурации и запустить multipathd
.
# mpathconf --enable --with_multipathd y
Если же необходимо внести изменения в
/etc/multipath.conf
, это надо сделать до запуска multipathd
. Далее описывается процесс простой настройки DM-Multipath.
- Выполните команду:
#
mpathconf --enable
Описание параметровmpathconf
можно найти на справочной страницеmpathconf
или выполнив:#
mpathconf --help
usage: /sbin/mpathconf <command> Commands: Enable: --enable Disable: --disable Set user_friendly_names (Default n): --user_friendly_names <y|n> Set find_multipaths (Default n): --find_multipaths <y|n> Load the dm-multipath modules on enable (Default y): --with_module <y|n> start/stop/reload multipathd (Default n): --with_multipathd <y|n> chkconfig on/off multipathd (Default y): --with_chkconfig <y|n> - Если необходимо, отредактируйте
/etc/multipath.conf
. Стандартные настройки DM-Multipath используются по умолчанию, поэтому не требуется их повторно определять в/etc/multipath.conf
.Изначальноpath_grouping_policy
имеет значениеfailover
, поэтому в нашем примере не придется его изменять. Глава 4, Файл конфигурации DM-Multipath содержит подробную информацию об изменении параметров.В секцииdefaults
имена устройств определены в видеmpath
n. Если имена не заданы, по умолчанию используются идентификаторы WWID. - Сохраните файл и закройте окно редактора.
- Выполните
#
service multipathd start
Так как параметр
user_friendly_name
установлен в yes
, создаваемым устройствам будут присвоены имена /dev/mapper/mpath
n (см. Глава 4, Файл конфигурации DM-Multipath).
Чтобы отключить присвоение понятных имен, выполните
# mpathconf --enable --user_friendly_names n
Примечание
Если требуется изменить файл конфигурации после запуска multipathd, после завершения редактирования выполните
service multipathd reload
.
3.2. Исключение локальных дисков при генерации метаустройств
Некоторые компьютеры используют SCSI-карты для внутренних дисков. Использование DM-Multipath для таких устройств не рекомендуется. Если параметру
find_multipaths
присвоено значение yes
, необходимости в добавлении этих дисков в черный список нет. Раздел 4.3, «Секция defaults
» содержит информацию о find_multipaths
.
Приведенная далее последовательность демонстрирует, как изменить файл конфигурации так, чтобы игнорировать локальные диски при настройке многопутевой схемы, если значение параметра
find_multipaths
не равно yes
.
- Определите диски, которые в дальнейшем будут добавлены в черный список.В этом примере диск
/dev/sda
является внутренним. В соответствии с исходными настройками в файле конфигурации командаmultipath -v2
покажет локальный диск в карте многоканальных устройств.Раздел 5.7, «Вывод команды multipath» содержит описание вывода командыmultipath
.#
multipath -v2
create: SIBM-ESXSST336732LC____F3ET0EP0Q000072428BX1 undef WINSYS,SF2372 size=33 GB features="0" hwhandler="0" wp=undef `-+- policy='round-robin 0' prio=1 status=undef |- 0:0:0:0 sda 8:0 [--------- device-mapper ioctl cmd 9 failed: Invalid argument device-mapper ioctl cmd 14 failed: No such device or address create: 3600a0b80001327d80000006d43621677 undef WINSYS,SF2372 size=12G features='0' hwhandler='0' wp=undef `-+- policy='round-robin 0' prio=1 status=undef |- 2:0:0:0 sdb 8:16 undef ready running `- 3:0:0:0 sdf 8:80 undef ready running create: 3600a0b80001327510000009a436215ec undef WINSYS,SF2372 size=12G features='0' hwhandler='0' wp=undef `-+- policy='round-robin 0' prio=1 status=undef |- 2:0:0:1 sdc 8:32 undef ready running `- 3:0:0:1 sdg 8:96 undef ready running create: 3600a0b80001327d800000070436216b3 undef WINSYS,SF2372 size=12G features='0' hwhandler='0' wp=undef `-+- policy='round-robin 0' prio=1 status=undef |- 2:0:0:2 sdd 8:48 undef ready running `- 3:0:0:2 sdg 8:112 undef ready running create: 3600a0b80001327510000009b4362163e undef WINSYS,SF2372 size=12G features='0' hwhandler='0' wp=undef `-+- policy='round-robin 0' prio=1 status=undef |- 2:0:0:3 sdd 8:64 undef ready running `- 3:0:0:3 sdg 8:128 undef ready running - Чтобы предотвратить добавление
/dev/sda
в карту многоканальных устройств, необходимо включить его в секциюblacklist
файла/etc/multipath.conf
. Его также можно исключить при помощиdevnode
, но при этом нет гарантии, что изменения не будут отменены при перезапуске. Для добавления отдельных устройств в список исключений используйте идентификаторы WWID.Обратите внимание, вывод командыmultipath -v2
содержит WWID устройства/dev/sda
: SIBM-ESXSST336732LC____F3ET0EP0Q000072428BX1. Чтобы добавить его в черный список, внесите изменения в файл/etc/multipath.conf
:blacklist { wwid SIBM-ESXSST336732LC____F3ET0EP0Q000072428BX1 }
- Чтобы изменения вступили в силу, выполните команду:
#
service multipathd reload
- Команда удаления многопутевого устройства:
#
multipath -f SIBM-ESXSST336732LC____F3ET0EP0Q000072428BX1
- Чтобы убедиться, что устройство действительно было удалено, выполните «
multipath -ll
» (см. Раздел 5.8, «Получение информации с помощью multipath»).Чтобы убедиться, что устройство не было добавлено повторно, можно выполнить командуmultipath
. Уровень детализации вывода можно изменить с помощью параметра-v
(по умолчанию используетсяv2
).#
multipath
create: 3600a0b80001327d80000006d43621677 undef WINSYS,SF2372 size=12G features='0' hwhandler='0' wp=undef `-+- policy='round-robin 0' prio=1 status=undef |- 2:0:0:0 sdb 8:16 undef ready running `- 3:0:0:0 sdf 8:80 undef ready running create: 3600a0b80001327510000009a436215ec undef WINSYS,SF2372 size=12G features='0' hwhandler='0' wp=undef `-+- policy='round-robin 0' prio=1 status=undef |- 2:0:0:1 sdc 8:32 undef ready running `- 3:0:0:1 sdg 8:96 undef ready running create: 3600a0b80001327d800000070436216b3 undef WINSYS,SF2372 size=12G features='0' hwhandler='0' wp=undef `-+- policy='round-robin 0' prio=1 status=undef |- 2:0:0:2 sdd 8:48 undef ready running `- 3:0:0:2 sdg 8:112 undef ready running create: 3600a0b80001327510000009b4362163e undef WINSYS,SF2372 size=12G features='0' hwhandler='0' wp=undef `-+- policy='round-robin 0' prio=1 status=undef |- 2:0:0:3 sdd 8:64 undef ready running `- 3:0:0:3 sdg 8:128 undef ready running
3.3. Конфигурация накопителей
DM-Multipath включает поддержку большинства распространенных дисковых массивов, которые работают с DM-Multipath. Исходные параметры можно найти в файле
multipath.conf.defaults
.
Если необходимо добавить неподдерживаемое устройство, введите соответствующую информацию в
/etc/multipath.conf
.
Пример записи для HP Open-V (где %n — имя устройства):
devices { device { vendor "HP" product "OPEN-V." getuid_callout "/lib/udev/scsi_id --whitelisted --device=/dev/%n" } }
Раздел 4.5, «Секция devices» содержит более подробную информацию.
3.4. Многоканальные функции в initramfs
Чтобы включить многоканальные возможности в файловой системе
initramfs
, необходимо будет заново ее собрать, включив файлы конфигурации multipath:
# dracut --force --add multipath --include /etc/multipath /etc/multipath
При изменении файлов конфигурации сборку надо будет повторить.
Глава 4. Файл конфигурации DM-Multipath
DM-Multipath предоставляет набор параметров для поддержки массивов накопителей, которые имеют возможность работы с DM-Multipath. Исходные настройки расположены в файле
/usr/share/doc/device-mapper-multipath-0.4.9/multipath.conf.defaults
.
Исходные значения можно переопределить в файле
/etc/multipath.conf
. Там же можно добавить и новый массив накопителей.
Примечание
Многоканальные возможности могут быть настроены в файловой системе
initramfs
. Для этого надо будет изменить файлы конфигурации и заново создать initramfs
(см. Раздел 3.4, «Многоканальные функции в initramfs»).
Эта глава содержит:
- обзор файла конфигурации;
- обзор секции blacklist;
- обзор секции defaults;
- обзор секции multipaths;
- обзор секции devices.
Файл должен содержать только необходимые секции, которые переопределят исходные значения из
multipath.conf.defaults
. Если секции не имеют отношения к вашему окружению, оставьте их отмеченными как комментарий.
В файле конфигурации допускается использование регулярных выражений.
/usr/share/doc/device-mapper-multipathd-0.4.9/multipath.conf.annotated
содержит подробные комментарии.
4.1. Обзор файла конфигурации
Файл конфигурации включает следующие секции:
- blacklist
- Список устройств, которые будут исключены при создании многоканальных устройств.
- blacklist_exceptions
- Список устройств, которые будут исключены из черного списка.
- defaults
- Общие настройки DM-Multipath.
- multipaths
- Настройки отдельных устройств, переопределяющие значения в секциях
defaults
иdevices
. - devices
- Настройки отдельных дисковых контроллеров, переопределяющие значения в секции
defaults
. Если используется неподдерживаемый по умолчанию дисковый массив, может потребоваться создать дополнительную подсекциюdevices
.
При определении атрибутов устройства сначала будут проверены настройки в секции
multipaths
, потом devices
и, наконец, стандартные настройки, используемые по умолчанию.
4.2. Секция blacklist
В секции
blacklist
перечислены устройства, которые будут исключены при настройке метаустройств.
В Red Hat Enterprise Linux 6 появился новый способ настройки многоканальных устройств с помощью параметра
find_multipaths
. Раньше устройства создавались для всех путей, не внесенных в черный список. Теперь, если параметр find_multipaths
имеет значение yes
, метаустройство будет создано только в одном из следующих случаев:
- Существует по крайней мере два пути с одним и тем же WWID, не указанные в списке исключений.
- Пользователь создает устройство вручную с помощью
multipath
. - Путь имеет тот же WWID что и созданное ранее метаустройство (даже если это устройство в настоящий момент не существует). Каждый раз при создании устройства
multipath
запоминает WWID с целью автоматического создания метаустройства при обнаружении пути с этим идентификатором. Это позволяет выбирать пути для объединения без необходимости редактирования списка исключений.Еслиfind_multipaths
было присвоено значениеyes
уже после создания метаустройства, возможно, из/etc/multipath/wwids
надо будет удалить WWID-идентификаторы устройств, которые должны быть пропущены. Ниже приведен пример/etc/multipath/wwids
.# Multipath wwids, Version : 1.0 # NOTE: This file is automatically maintained by multipath and multipathd. # You should not need to edit this file in normal circumstances. # # Valid WWIDs: /3600d0230000000000e13955cc3757802/ /3600d0230000000000e13955cc3757801/ /3600d0230000000000e13955cc3757800/ /3600d02300069c9ce09d41c31f29d4c00/ /SWINSYS SF2372 0E13955CC3757802/ /3600d0230000000000e13955cc3757803/
Если
find_multipaths
имеет значение yes
, в черный список надо будет добавить только те устройства, в агрегации путей которых нет необходимости. В дальнейшем добавление устройств в черный список не является обязательным требованием.
Если все же надо исключить устройства, их можно выбрать по следующим критериям:
- по WWID (см. Раздел 4.2.1, «Исключение по WWID»);
- по имени (см. Раздел 4.2.2, «Исключение по имени устройства»);
- по типу (см. Раздел 4.2.3, «Исключение по типу устройств»).
Даже если вы полностью выделите исходную секцию blacklist в комментарий, множество типов устройств все равно будет отфильтровано (см. Раздел 4.2.2, «Исключение по имени устройства»).
4.2.1. Исключение по WWID
Отдельные устройства можно включить в черный список, указав их идентификатор WWID.
В следующем примере указано устройство с идентификатором 26353900f02796769.
blacklist { wwid 26353900f02796769 }
4.2.2. Исключение по имени устройства
Устройства можно включить в черный список, указав их имя в строке
devnode
секции blacklist
.
В следующем примере при помощи шаблона sd* в черный список будут добавлены все SCSI-устройства.
blacklist { devnode "^sd[a-z]" }
devnode
можно использовать для указания не только типов, но и отдельных устройств. Но это не рекомендуется делать, так как нельзя гарантировать, что имена устройств не изменятся при перезагрузке (только если они статически не связаны правилами udev
). К примеру, имя устройства может поменяться с /dev/sda
на /dev/sdb
.
Изначально записи
devnode
в секции blacklist
содержат устройства, не поддерживающие DM-Multipath. Чтобы включить многоканальные возможности для этих устройств, необходимо их добавить в секцию blacklist_exceptions
(см. Раздел 4.2.4, «Исключение из черного списка»).
blacklist { devnode "^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*" devnode "^hd[a-z]" }
4.2.3. Исключение по типу устройств
Типы устройств можно определить в подсекции
device
внутри blacklist
. В следующем примере будут отфильтрованы все устройства HP и IBM DS4200.
blacklist { device { vendor "IBM" product "3S42" #DS4200 Product 10 } device { vendor "HP" product "*" } }
4.2.4. Исключение из черного списка
В секции
blacklist_exceptions
можно указать уже исключенные устройства, которым следует разрешить использовать многоканальные возможности.
Например, если при наличии большого числа устройств одному из них надо разрешить использовать многоканальные возможности (скажем, этому устройству соответствует WWID 3600d0230000000000e13955cc3757803), можно добавить все устройства в секцию
blacklist
, а затем добавить запись для интересующего устройства в blacklist_exceptions
.
blacklist { wwid "*" } blacklist_exceptions { wwid "3600d0230000000000e13955cc3757803" }
Правила построения шаблонов
blacklist_exceptions
аналогичны blacklist
. Например, индивидуальное исключение для конкретного WWID не будет применено к устройствам, перечисленным в записи devnode
. И в свою очередь, исключения devnode
будут применены только к записям devnode
, а device
будут применены только к записям отдельных устройств.
4.3. Секция defaults
Секция
defaults
файла /etc/multipath.conf
устанавливает исходные значения параметров.
defaults { user_friendly_names yes }
В этом примере исходное значение
user_friendly_names
будет переопределено.
Файл конфигурации включает шаблоны настроек, которые выглядят так:
#defaults { # udev_dir /dev # polling_interval 5 # path_selector "round-robin 0" # path_grouping_policy failover # getuid_callout "/lib/dev/scsi_id --whitelisted --device=/dev/%n" # prio const # path_checker directio # rr_min_io 1000 # rr_weight uniform # failback manual # no_path_retry fail # user_friendly_names no #}
Чтобы переопределить исходные значения, скопируйте соответствующую строку из шаблона в секцию
defaults
и снимите комментарий. Например, чтобы изменить значение параметра path_grouping_policy
с failover
на multibus
, скопируйте строку из шаблона в секцию defaults
и снимите комментарий.
defaults { user_friendly_names yes path_grouping_policy multibus }
Таблица 4.1, «Используемые по умолчанию параметры» перечисляет атрибуты, определяемые в секции
defaults
файла multipath.conf
. DM-Multipath будет использовать эти значения до тех пор, пока они не будут переопределены в секциях devices
и multipaths
.
Примечание
В Red Hat Enterprise Linux 6.0 параметры
mode
, uid
и gid
официально объявлены устаревшими. Теперь разрешения многоканальных устройств могут быть настроены при помощи udev
. Дополнительно в каталоге /usr/share/doc/device-mapper-версия
доступен шаблон — 12-dm-permissions.rules
— который можно использовать в качестве основы, разместив его в /etc/udev/rules.d
.
Таблица 4.1. Используемые по умолчанию параметры
Атрибут | Описание | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
polling_interval | Задает интервал между проверками пути (в секундах). Если путь работает нормально, интервал будет постепенно увеличиваться до четырехкратного значения polling_interval . По умолчанию: 5. | ||||||||||
udev_dir | Задает каталог, в котором будут создаваться устройства udev . По умолчанию используется /dev . | ||||||||||
multipath_dir | Каталог для хранения общих динамических объектов. По умолчанию используется /lib/multipath . | ||||||||||
find_multipaths |
| ||||||||||
verbosity | Исходная степень детализации вывода (от 0 до 6). Чем выше значение, тем подробнее вывод. По умолчанию: 2 . | ||||||||||
path_selector |
| ||||||||||
path_grouping_policy |
| ||||||||||
getuid_callout |
| ||||||||||
prio |
| ||||||||||
features | Дополнительные возможности. Единственное допустимое на данный момент значение — queue_if_no_path , что аналогично присвоению no_path_retry значения queue . Раздел 5.6, «Ошибки «queue_if_no_path»» содержит информацию о потенциальных проблемах использования этой возможности. | ||||||||||
path_checker |
| ||||||||||
failback |
| ||||||||||
rr_min_io | Число запросов ввода и вывода, которые будут переданы этому маршруту, прежде чем будет выбран следующий путь в текущей группе. Этот параметр может использоваться только для ядер версий 2.6.31 и более ранних; другие версии должны использовать rr_min_io_rq . По умолчанию будет обработано 1000 запросов. | ||||||||||
rr_min_io_rq | Число запросов ввода и вывода, которые будут переданы этому маршруту, прежде чем будет выбран следующий путь в текущей группе. Этот параметр должен использоваться для ядер, начиная с версии 2.6.31; другие версии должны использовать rr_min_io_io . По умолчанию его значение равно 1. | ||||||||||
rr_weight | Если имеет значение priorities , то число отправляемых одному пути запросов будет определяться значением rr_min_io , умноженным на приоритет маршрута (который определяется функцией prio ). Следующий путь будет выбран с помощью path_selector . По умолчанию используется значение uniform (т.е. все пути равноправны). | ||||||||||
no_path_retry |
| ||||||||||
user_friendly_names | Если имеет значение yes , система будет использовать файл /etc/multipath/bindings для присвоения уникального имени многоканальному устройству в формате mpath n . Значение no обозначает, что вместо имени будет использоваться идентификатор WWID. Имена в секции multipaths файла конфигурации переопределят значение этого параметра. По умолчанию используется значение no . | ||||||||||
queue_without_daemon | Значение no обозначает, что запросы перестанут добавляться в очередь при остановке процесса multipathd . По умолчанию используется значение no . | ||||||||||
flush_on_last_del | Если установлен в yes , multipathd отключит возможность добавления в очередь, если удален последний путь к устройству. По умолчанию используется значение no . | ||||||||||
max_fds | Максимальное число открытых файловых дескрипторов, что эквивалентно команде ulimit -n . По умолчанию равно max , что наследует системные настройки из /proc/sys/fs/nr_open . Для выпусков, предшествующих Red Hat Enterprise Linux 6.3, значение будет наследоваться из вызывающего процесса (обычно равно 1024). Если же число превышает 1024, рекомендуется использовать максимальное число путей плюс 32. | ||||||||||
checker_timeout | Время ожидания механизмов проверки путей, выполняющих команды scsi (в секундах). По умолчанию будет унаследовано значение из sys/block/sdx/device/timeout . | ||||||||||
fast_io_fail_tmo | Время ожидания (в секундах) после обнаружения конфликта удаленного порта, по истечении которого будет зарегистрирован сбой запросов ввода-вывода. Величина не должна превышать dev_loss_tmo . Значение off отключит эту функциональность. Исходное значение определяется операционной системой. | ||||||||||
dev_loss_tmo | Время ожидания (в секундах) после обнаружения конфликта удаленного порта, по истечении которого он будет исключен из системы. Значение «infinity» снимет ограничения, присвоив значение 2147483647 секунд, что составляет 68 лет. Исходное значение определяется операционной системой. | ||||||||||
hwtable_regex_match |
| ||||||||||
retain_attached_hw_handler | (Red Hat Enterprise Linux Release 6.4 и последующие версии) Если установлен в yes , и метаустройству уже сопоставлен аппаратный обработчик, устройство может не использовать hardware_handler , заданный в mutipath.conf . Если же аппаратный обработчик не был назначен, будет по-прежнему использоваться уже настроенный обработчик. По умолчанию используется значение no . | ||||||||||
detect_prio | Если установлен в yes , будет проверено наличие поддержки ALUA. Если устройство поддерживает ALUA, ему будет автоматически присвоен индикатор приоритета alua . По умолчанию используется значение no . |
4.4. Секция multipaths
Таблица 4.2, «Атрибуты» демонстрирует атрибуты, которые можно настроить в секции
multipaths
файла multipath.conf
для конкретных устройств. Они переопределяют параметры в секциях defaults
и devices
.
Таблица 4.2. Атрибуты
Атрибут | Описание | |||||||||
---|---|---|---|---|---|---|---|---|---|---|
wwid | WWID устройства. Обязательный параметр. | |||||||||
alias | Позволяет определить имя для многопутевого устройства, которому соответствуют атрибуты multipath . Если используется user_friendly_names , не следует присваивать этому параметру значение mpathn , так как это может привести к расхождению с автоматически присвоенным именем устройства. | |||||||||
path_grouping_policy |
| |||||||||
path_selector |
| |||||||||
failback |
| |||||||||
prio |
| |||||||||
no_path_retry |
| |||||||||
rr_min_io | Число запросов ввода и вывода, которые будут переданы этому маршруту, прежде чем будет выбран следующий путь в текущей группе. Этот параметр может использоваться только для ядра 2.6.31 и более ранних версий; другие версии должны использовать rr_min_io_rq . По умолчанию будет обработано 1000 запросов. | |||||||||
rr_min_io_rq | Число запросов ввода и вывода, которые будут переданы этому маршруту, прежде чем будет выбран следующий путь в текущей группе. Этот параметр должен использоваться для ядер, начиная с версии 2.6.31; другие версии должны использовать rr_min_io_io . По умолчанию его значение равно 1. | |||||||||
rr_weight | Если значение равно priorities , то вместо передачи конкретного числа запросов (заданного с помощью rr_min_io ) одному пути до выбора следующего (с помощью path_selector ) число отправляемых запросов будет определяться значением rr_min_io , умноженным на приоритет маршрута (который определяется функцией prio ). По умолчанию равно uniform , то есть все пути равноправны. | |||||||||
flush_on_last_del | yes отключит возможность добавления в очередь, если последний путь к устройству удален. | |||||||||
user_friendly_names | Если имеет значение yes , система будет использовать файл /etc/multipath/bindings для присвоения уникального имени многоканальному устройству в формате mpath n . Значение no обозначает, что вместо имени будет использоваться идентификатор WWID. Имена в секции multipaths файла конфигурации переопределят значение этого параметра. |
Следующий пример демонстрирует определение атрибутов для двух устройств. Первому устройству соответствует WWID
3600508b4000156d70001200000b0000
и имя yellow
.
Второму устройству соответствует WWID
1DEC_____321816758474
и имя red
. В этом примере rr_weight
имеет значение priorities
.
multipaths { multipath { wwid 3600508b4000156d70001200000b0000 alias yellow path_grouping_policy multibus path_selector "round-robin 0" failback manual rr_weight priorities no_path_retry 5 } multipath { wwid 1DEC_____321816758474 alias red rr_weight priorities } }
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 |
| |||||||||
path_grouping_policy |
| |||||||||
getuid_callout | Задает программу и аргументы, используемые для получения уникального идентификатора пути. Необходимо указать абсолютный путь. | |||||||||
path_selector |
| |||||||||
path_checker |
| |||||||||
features | Дополнительные функции. Единственное допустимое на данный момент значение — queue_if_no_path , что аналогично присвоению no_path_retry значения queue . Раздел 5.6, «Ошибки «queue_if_no_path»» содержит информацию о потенциальных проблемах, связанных с использованием этой возможности. | |||||||||
prio |
| |||||||||
failback |
| |||||||||
rr_weight | Если значение равно priorities , то вместо передачи конкретного числа запросов (заданного с помощью rr_min_io ) одному пути до выбора следующего (с помощью path_selector ) число отправляемых запросов будет определяться значением rr_min_io , умноженным на приоритет маршрута (который определяется функцией prio ). По умолчанию равно uniform , то есть все пути равноправны. | |||||||||
no_path_retry |
| |||||||||
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 для присвоения уникального имени метаустройству в формате mpath n . Значение 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 # } #}
Глава 5. правление и диагностика DM-Multipath
В этой главе обсуждаются принципы администрирования DM-Multipath. Будут рассмотрены следующие вопросы:
- Изменение размера работающего метаустройства
- Преобразование корневого устройства в многопутевое
- Преобразование устройства подкачки в многопутевое
- multipathd
- Проблемы с большим количеством LUN
- Ошибки «queue_if_no_path»
- Вывод команды
multipath
- Построение запросов с помощью
multipath
- Параметры команды
multipath
- Построение запросов с помощью
dmsetup
- Диагностика неполадок интерактивной консоли
multipathd
5.1. Изменение размера работающего многопутевого устройства
Процесс изменения размера многопутевого устройства описан ниже.
- Измените размер физического устройства.
- Следующая команда поможет найти пути к LUN:
#
multipath -l
- Откорректируйте пути. Так, для устройств SCSI запись значения 1 в файл
rescan
заставит драйвер SCSI выполнить повторную инициализацию:#
echo 1 > /sys/block/имя_устройства/device/rescan
- Теперь можно изменить размер многопутевого устройства:
#
multipathd -k'resize map mpatha'
- Измените размер файловой системы (подразумевается, что разделы LVM и DOS не используются):
#
resize2fs /dev/mapper/mpatha
5.2. Перенос корневых файловых систем на многоканальное устройство
Если изначально система была установлена на устройстве с единственным маршрутом, но в дальнейшем был добавлен новый маршрут к корневой файловой системе, потребуется ее переместить на многоканальное устройство.
Установите пакет
device-mapper-multipath
. Далее следует выполнить следующее:
- Для создания файла
/etc/multipath.conf
, загрузки модуля multipath и запускаmultipathd
с помощьюchkconfig
выполните#
mpathconf --enable
Раздел 3.1, «Настройка DM-Multipath» содержит описание процесса настройки многопутевого окружения с помощьюmpathconf
. - В
/etc/multipath.conf
отредактируйте секцииblacklist
иblacklist_exceptions
(см. Раздел 4.2, «Секция blacklist»). - Чтобы убедиться, что в файле конфигурации нет ошибок, можно выполнить
/sbin/multipath
с параметром-v3
. Эта команда проверит, выполнялась ли попытка создания многопутевого устройства на базе существующего корневого устройства. Так как корневое устройство в данный момент используется, команда завершится неудачей, но в то же время покажет его путь.В выводе команды найдите строку в форматеWWID H:B:T:L имя_устройства MAJOR:MINOR
Например, если корневая файловая система расположена наsda
, строка будет выглядеть так:===== paths list ===== ... 1ATA WDC WD800JD-75MSA3 WD-WMAM9F 1:0:0:0 sda 8:0 ...
Ниже можно будет увидеть сопоставление корневого устройства многопутевому:time | devname: ownership set to mpathdev
Например:Jun 14 06:48:21 | sda: ownership set to mpatha
В случае ошибки сообщение выглядеть так:time | mpathdev: domap (0) failure for create/reload map
Пример:Jun 14 06:48:21 | mpatha: domap (0) failure for create/reload map
- Чтобы включить многоканальные возможности в файловой системе
initramfs
, необходимо ее пересобрать, включив файлы конфигурацииmultipath
:#
dracut --force --add multipath --include /etc/multipath /etc/multipath
- Если корневое устройство не является томом LVМ и подключено по имени устройства, возможно, потребуется откорректировать его имя в файле
fstab
.- Для определения WWID корневого устройства повторите действия, описанные в шаге 3, выполнив команду
/sbin/multipath
с параметром-v3
. - Настройте имя устройства в файле
/etc/multipath.conf
:multipaths { multipath { wwid WWID_устройства alias rootdev } }
- В
/etc/fstab
замените путь к старому устройству новым значением.Так, например, если/etc/fstab
содержит строку/dev/sda1 / ext4 defaults 1 1
ее надо изменить:/dev/mapper/rootdev / ext4 defaults 1 1
После редактирования/etc/fstab
потребуется изменить параметрroot=/dev/sda1
наroot=/dev/mapper/rootdev
в файле/etc/grub/grub.conf
.Если изначально секция выглядела так:title Red Hat Enterprise Linux FoundationServer (2.6.32-71.24.1.el6.x86_64) root (hd0,0) kernel /vmlinuz-2.6.32-71.24.1.el6.x86_64 ro root=/dev/sda1 rd_NO_LUKS rd_NO_MD rd_NO_DM LANG=en_US.UTF-8 SYSFONT=latarcyrheb-sun16 KEYTABLE=us console=ttyS0,115200n8 crashkernel=auto initrd /initramfs-2.6.32-71.24.1.el6.x86_64.img
После изменения она будет выглядеть так:title Red Hat Enterprise Linux FoundationServer (2.6.32-71.24.1.el6.x86_64) root (hd0,0) kernel /vmlinuz-2.6.32-71.24.1.el6.x86_64 ro root=/dev/mapper/rootdev rd_NO_LUKS rd_NO_MD rd_NO_DM LANG=en_US.UTF-8 SYSFONT=latarcyrheb-sun16 KEYTABLE=us console=ttyS0,115200n8 crashkernel=auto initrd /initramfs-2.6.32-71.24.1.el6.x86_64.img
- Выключите компьютер.
- Настройте переключатель FC таким образом, чтобы другие маршруты были также доступны.
- Включите компьютер.
- Убедитесь, что корневая файловая система ('/') располагается на многопутевом устройстве.
5.3. Перенос файловых систем swap на многоканальное устройство
По умолчанию устройства подкачки (swap) настроены как логические тома. При создании многоканальных устройств не требуется специальная конфигурация при условии, что многоканальная структура организована на основе физических томов, входящих в состав заданной логической группы томов. Если устройство не является томом LVМ и подключено по имени устройства, может понадобиться изменить его имя в файле
fstab
.
- Для определения WWID устройства подкачки выполните команду
/sbin/multipath
с параметром-v3
. Вывод команды будет содержать интересующее нас устройство в списке путей.В выводе команды найдите строку в форматеWWID H:B:T:L имя_устройства MAJOR:MINOR
Например, если файловая система расположена наsda
, эта строка будет выглядеть так:===== paths list ===== ... 1ATA WDC WD800JD-75MSA3 WD-WMAM9F 1:0:0:0 sda 8:0 ...
- Настройте имя устройства в
multipath.conf
.multipaths { multipath { wwid WWID_устройства alias swapdev } }
- В
/etc/fstab
замените путь к старому устройству новым значением.Так, например, если/etc/fstab
содержит строку/dev/sda2 swap ext4 defaults 0 0
ее надо изменить:/dev/mapper/swapdev swap ext4 defaults 0 0
5.4. Служба multipath
Если по какой-либо причине не удается создать многопутевую конфигурацию, убедитесь, что процесс
multipathd
выполняется (см. Глава 3, Настройка DM-Multipath).
5.5. Большое число LUN
При наличии большого числа LUN-устройств использование многоканальных устройств может значительно увеличить время создания соответствующих им файлов менеджером
udev
. В таком случае попробуйте удалить следующую строку из файла /etc/udev/rules.d/40-multipath.rules
:
KERNEL!="dm-[0-9]*", ACTION=="add", PROGRAM=="/bin/bash -c '/sbin/lsmod | /bin/grep ^dm_multipath'", RUN+="/sbin/multipath -v0 %M:%m"
Эта строка заставляет
udev
вызывать multipath
каждый раз при добавлении устройства. Даже если строка удалена, multipathd
будет автоматически создавать устройства, а multipath
также будет вызываться в процессе загрузки. Отличие в том, что если multipathd
не выполняется, многоканальные устройства не будут автоматически создаваться.
5.6. Ошибки «queue_if_no_path»
Если
/etc/multipath.conf
содержит выражение features "1 queue_if_no_path"
, то любой процесс, отправляющий запросы ввода и вывода, просто зависнет до тех пор, пока не будет восстановлен по крайней мере один путь. Чтобы этого избежать, определите no_path_retry
N
в файле /etc/multipath.conf
(где N
— число попыток обращения к пути).
После добавления
no_path_retry
удалите features "1 queue_if_no_path"
. Если же это выражение определено по умолчанию (что довольно распространено для многих SAN-устройств), его можно переопределить с помощью features "0"
. Для этого надо скопировать секцию devices
из /usr/share/doc/device-mapper-multipath-0.4.9/multipath.conf.defaults
в /etc/multipath.conf
и откорректировать ее в соответствии со своими требованиями.
Если необходимо использовать
features "1 queue_if_no_path"
, и в то же время вы столкнулись с упомянутой выше проблемой, с помощью dmsetup
отредактируйте поведение конкретного LUN, для которого пути недоступны. Например, для изменения поведения "queue_if_no_path"
устройства mpath2
на "fail_if_no_path"
выполните:
dmsetup message mpathc 0 "fail_if_no_path"
Имя необходимо указать в формате
mpath
n
.
5.7. Вывод команды multipath
При выполнении операций создания, изменения и просмотра параметров устройств можно дополнительно вывести информацию об устройстве.
Для отдельного устройства:
действие: название (wwid_если_отличается_от_названия) устройство_dm производитель,продукт size=размер features='features' hwhandler='обработчик' wp=права_записи
Для группы путей:
-+- policy='режим_распределения' prio=приоритет status=статус_группы_маршрутов
Для каждого пути:
`- узел:канал:id:lun devnode major:minor статус_dm статус_маршрута статус_online
Пример вывода:
3600d0230000000000e13955cc3757800 dm-1 WINSYS,SF2372 size=269G features='0' hwhandler='0' wp=rw |-+- policy='round-robin 0' prio=1 status=active | `- 6:0:0:0 sdb 8:16 active ready running `-+- policy='round-robin 0' prio=1 status=enabled `- 7:0:0:0 sdf 8:80 active ready running
Статус
ready
или ghost
сообщает о готовности пути к обработке ввода-вывода. Если путь недоступен, его статус — faulty
или shaky
. Статус периодически обновляется процессом multipathd
. Интервал проверки задается в /etc/multipath.conf
.
Статус dm аналогичен статусу пути с точки зрения ядра и характеризуется двумя состояниями:
failed
(аналогично faulty
) и active
(все остальные состояния). Иногда, однако, не исключена возможность временного конфликта между состояниями пути и dm.
online_status
может принимать значения running
(работает) и offline
(отключено).
Примечание
При создании и изменении многопутевого устройства изначальные статусы группы путей и dm, имя устройства dm и разрешения записи неизвестны, а в некоторых случаях их настройки могут быть ошибочны.
5.8. Получение информации с помощью multipath
Параметры
-l
и -ll
команды multipath
позволяют просмотреть текущую конфигурацию. -l
покажет сведения о топологии путей, полученную при помощи sysfs
и Device Mapper, а -ll
дополнительно покажет список доступных компонентов системы.
Существует три степени детализации вывода данных конфигурации, для чего используется опция
-v
. Так, -v0
отключает вывод, -v1
отобразит только имена созданных или обновленных устройств (их можно передать другим командам, например, kpartx
), а -v2
покажет подробную информацию, включая все обнаруженные пути и карты устройств.
Пример вывода
multipath -l
:
# multipath -l
3600d0230000000000e13955cc3757800 dm-1 WINSYS,SF2372
size=269G features='0' hwhandler='0' wp=rw
|-+- policy='round-robin 0' prio=1 status=active
| `- 6:0:0:0 sdb 8:16 active ready running
`-+- policy='round-robin 0' prio=1 status=enabled
`- 7:0:0:0 sdf 8:80 active ready running
Пример вывода
multipath -ll
:
# multipath -ll
3600d0230000000000e13955cc3757801 dm-10 WINSYS,SF2372
size=269G features='0' hwhandler='0' wp=rw
|-+- policy='round-robin 0' prio=1 status=enabled
| `- 19:0:0:1 sdc 8:32 active ready running
`-+- policy='round-robin 0' prio=1 status=enabled
`- 18:0:0:1 sdh 8:112 active ready running
3600d0230000000000e13955cc3757803 dm-2 WINSYS,SF2372
size=125G features='0' hwhandler='0' wp=rw
`-+- policy='round-robin 0' prio=1 status=active
|- 19:0:0:3 sde 8:64 active ready running
`- 18:0:0:3 sdj 8:144 active ready running
5.9. Параметры multipath
Таблица 5.1, «Основные параметры команды
multipath
» содержит перечень параметров команды multipath
.
Таблица 5.1. Основные параметры команды multipath
Параметр | Описание |
---|---|
-l | Показывает текущие настройки sysfs и Device Mapper. |
-ll | Показывает текущие настройки sysfs и Device Mapper, а также сведения о других доступных в системе компонентах. |
-f устройство | Удаление заданного устройства. |
-F | Удаление всех незанятых метаустройств. |
5.10. Получение информации с помощью dmsetup
С помощью команды
dmsetup
можно определить, какие записи Device Mapper соответствуют многоканальным устройствам.
Следующая команда покажет все устройства Device Mapper и их основные и вспомогательные номера. Вспомогательные номера определяют имя устройства dm. Например, 3 соответствует устройству
/dev/dm-3
.
# dmsetup ls
mpathd (253:4)
mpathep1 (253:12)
mpathfp1 (253:11)
mpathb (253:3)
mpathgp1 (253:14)
mpathhp1 (253:13)
mpatha (253:2)
mpathh (253:9)
mpathg (253:8)
VolGroup00-LogVol01 (253:1)
mpathf (253:7)
VolGroup00-LogVol00 (253:0)
mpathe (253:6)
mpathbp1 (253:10)
mpathd (253:5)
5.11. Интерактивная консоль multipathd
multipathd -k
позволяет получить доступ к интерактивной консоли multipathd
. Для получения списка доступных команд выполните help
в консоли, а для выхода нажмите CTRL-D
.
Консоль
multipathd
может использоваться при анализе проблем. Например, следующие команды покажут многопутевые настройки, после чего консоль будет закрыта.
#multipathd -k
> >show config
> >CTRL-D
Следующая команда применяет изменения, внесенные в
multipath.conf
:
#multipathd -k
> >reconfigure
> >CTRL-D
Чтобы убедиться, что проверка путей работает корректно, выполните
#multipathd -k
> >show paths
> >CTRL-D
Приложение A. История переиздания
История переиздания | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Издание 5.0-9.2.400 | 2013-10-31 | Rüdiger Landmann | |||||||||
| |||||||||||
Издание 5.0-9.2 | Tue May 7 2013 | Yuliya Poyarkova | |||||||||
| |||||||||||
Издание 5.0-9.1 | Wed Apr 17 2013 | Chester Cheng | |||||||||
| |||||||||||
Издание 5.0-9 | Mon Feb 18 2013 | Steven Levine | |||||||||
| |||||||||||
Издание 5.0-7 | Mon Nov 26 2012 | Steven Levine | |||||||||
| |||||||||||
Издание 5.0-6 | Tue Nov 13 2012 | Steven Levine | |||||||||
| |||||||||||
Издание 4.0-3 | Fri Jun 15 2012 | Steven Levine | |||||||||
| |||||||||||
Издание 4.0-2 | Wed Apr 25 2012 | Steven Levine | |||||||||
| |||||||||||
Издание 4.0-1 | Wed Mar 28 2012 | Steven Levine | |||||||||
| |||||||||||
Издание 3.0-3 | Thu Dec 1 2011 | Steven Levine | |||||||||
| |||||||||||
Издание 3.0-2 | Fri Oct 7 2011 | Steven Levine | |||||||||
| |||||||||||
Издание 3.0-1 | Mon Sep 19 2011 | Steven Levine | |||||||||
| |||||||||||
Издание 2.0-1 | Thu May 19 2011 | Steven Levine | |||||||||
| |||||||||||
Издание 1.0-1 | Wed Nov 10 2010 | Steven Levine | |||||||||
|
Предметный указатель
Символы
- активная конфигурация
- иллюстрация, Обзор DM-Multipath
- определение, Обзор DM-Multipath
- активно-пассивная конфигурация
- иллюстрация, Обзор DM-Multipath
- определение, Обзор DM-Multipath
- возможности, новые и измененные, Новые и измененные возможности
- дисковые массивы
- добавление, Конфигурация накопителей, Секция devices
- изменение размера многопутевого устройства, Изменение размера работающего многопутевого устройства
- имя устройства, Идентификаторы устройств
- каталог dev/mapper, Идентификаторы устройств
- команда dmsetup, просмотр записей Device Mapper, Получение информации с помощью dmsetup
- команда kpartx, Компоненты DM-Multipath
- команда mpathconf, Компоненты DM-Multipath
- команда multipath, Компоненты DM-Multipath
- вывод, Вывод команды multipath
- запросы, Получение информации с помощью multipath
- параметры, Параметры multipath
- команда multipathd start, Настройка DM-Multipath
- конфигурация
- DM-Multipath, Настройка DM-Multipath
- корневая файловая система, Перенос корневых файловых систем на многоканальное устройство
- корневая файловая система на многопутевом устройстве, Перенос корневых файловых систем на многоканальное устройство
- локальные диски, исключение, Исключение локальных дисков при генерации метаустройств
- метаустройства, Многоканальные устройства
- многоканальные устройства
- логический том, Многоканальные устройства в логических томах
- физический том LVM, Многоканальные устройства в логических томах
- модуль ядра dm_multipath, Компоненты DM-Multipath
- настройка
- DM-Multipath, Настройка DM-Multipath
- обзор
- возможности, новые и измененные, Новые и измененные возможности
- обратная связь
- контактная информация, Отзывы и предложения
- отказоустойчивость, Обзор DM-Multipath
- пакет /etc/multipath.conf, Настройка DM-Multipath
- пакет device-mapper-multipath, Настройка DM-Multipath
- параметр alias, Секция multipaths
- параметр alias parameter
- файл конфигурации, Идентификаторы устройств
- параметр checker_timeout, Секция defaults
- параметр detect_prio, Секция defaults, Секция multipaths
- параметр dev_loss_tmo, Секция defaults, Секция devices
- параметр failback, Секция defaults, Секция multipaths, Секция devices
- параметр fast_io_fail_tmo, Секция defaults, Секция devices
- параметр features, Секция defaults, Секция devices
- параметр flush_on_last_del, Секция defaults, Секция multipaths, Секция devices
- параметр getuid_callout, Секция defaults, Секция devices
- параметр hardware_handler, Секция devices
- параметр hwtable_regex_match, Секция defaults
- параметр max_fds, Секция defaults
- параметр no_path_retry, Секция defaults, Секция multipaths, Секция devices
- параметр path_checker, Секция defaults, Секция devices
- параметр path_grouping_policy, Секция defaults, Секция multipaths, Секция devices
- параметр path_selector, Секция defaults, Секция multipaths, Секция devices
- параметр polling_interval, Секция defaults
- параметр prio, Секция defaults, Секция devices
- параметр product, Секция devices
- параметр product_blacklist, Секция devices
- параметр queue_without_daemon, Секция defaults
- параметр retain_attached_hw_handle, Секция defaults, Секция multipaths
- параметр revision, Секция devices
- параметр rr_min_io, Секция defaults, Секция multipaths
- параметр rr_weight, Секция defaults, Секция multipaths, Секция devices
- параметр udev_dir, Секция defaults
- параметр user_friendly_names, Идентификаторы устройств, Секция defaults, Секция multipaths, Секция devices
- параметр vendor, Секция devices
- параметр verbosity, Секция defaults
- параметр wwid, Секция multipaths
- поддержка дисковых массивов, Поддержка дисковых массивов
- секция blacklist_exceptions
- файл multipath.conf, Исключение из черного списка
- секция defaults
- файл multipath.conf, Секция defaults
- секция devices
- файл multipath.conf, Секция devices
- секция multipaths
- файл multipath.conf, Секция multipaths
- служба multipath (multipathd), Служба multipath
- служба multipathd, Компоненты DM-Multipath
- устройства dm-n, Идентификаторы устройств
- файл lvm.conf, Многоканальные устройства в логических томах
- файл multipath.conf, Поддержка дисковых массивов, Файл конфигурации DM-Multipath
- секция blacklist_exceptions, Исключение из черного списка
- секция defaults, Секция defaults
- секция devices, Секция devices
- секция multipaths, Секция multipaths
- файл multipath.conf.annotated, Файл конфигурации DM-Multipath
- файл multipath.conf.defaults, Поддержка дисковых массивов, Файл конфигурации DM-Multipath
- файл конфигурации
- blacklist, Секция blacklist
- обзор, Обзор файла конфигурации
- параметр alias, Секция multipaths
- параметр detect_prio, Секция defaults, Секция multipaths
- параметр dev_loss_tmo, Секция defaults, Секция devices
- параметр failback, Секция defaults, Секция multipaths, Секция devices
- параметр fast_io_fail_tmo, Секция defaults, Секция devices
- параметр features, Секция defaults, Секция devices
- параметр flush_on_last_del, Секция defaults, Секция multipaths, Секция devices
- параметр getuid_callout, Секция defaults, Секция devices
- параметр hardware_handler , Секция devices
- параметр hwtable_regex_match, Секция defaults
- параметр max_fds, Секция defaults
- параметр no_path_retry, Секция defaults, Секция multipaths, Секция devices
- параметр path_checker, Секция defaults, Секция devices
- параметр path_grouping_policy, Секция defaults, Секция multipaths, Секция devices
- параметр path_selector, Секция defaults, Секция multipaths, Секция devices
- параметр polling-interval, Секция defaults
- параметр prio, Секция defaults, Секция devices
- параметр product, Секция devices
- параметр product_blacklist, Секция devices
- параметр queue_without_daemon, Секция defaults
- параметр retain_attached_hw_handle, Секция defaults, Секция multipaths
- параметр revision, Секция devices
- параметр rr_min_io, Секция defaults, Секция multipaths
- параметр rr_weight, Секция defaults, Секция multipaths, Секция devices
- параметр udev_dir, Секция defaults
- параметр user_friendly_names, Секция defaults, Секция multipaths, Секция devices
- параметр vendor, Секция devices
- параметр verbosity, Секция defaults
- параметр wwid, Секция multipaths
- файловая система подкачки на многопутевом устройстве, Перенос файловых систем swap на многоканальное устройство
- файловая система пространства подкачки, Перенос файловых систем swap на многоканальное устройство
- физический том LVM
- многоканальные устройства, Многоканальные устройства в логических томах
B
- blacklist
- WWID, Исключение по WWID
- имя устройства, Исключение по имени устройства
- исходные устройства, Исключение по имени устройства
- тип устройства, Исключение по типу устройств
- файл конфигурации, Секция blacklist
C
- configuration file
- параметр checker_timeout, Секция defaults
D
- devices
- добавление, Конфигурация накопителей, Секция devices
- DM-Multipath
- и LVM, Многоканальные устройства в логических томах
- избыточность, Обзор DM-Multipath
- имя устройства, Идентификаторы устройств
- компоненты, Компоненты DM-Multipath
- конфигурация, Настройка DM-Multipath
- настройка, Настройка DM-Multipath
- настройка, обзор, Обзор настройки DM-Multipath
- обзор, Обзор DM-Multipath
- определение, Объединение маршрутов
- отказоустойчивость, Обзор DM-Multipath
- устройства, Многоканальные устройства
- файл конфигурации, Файл конфигурации DM-Multipath
I
- initramfs
- запуск multipath, Многоканальные функции в initramfs
M
- multipathd
- интерактивная консоль, Интерактивная консоль multipathd
- команда , Интерактивная консоль multipathd
W
- WWID, Идентификаторы устройств
Юридическое уведомление
Copyright © 2013 Red Hat, Inc. and others.
This document is licensed by Red Hat under the Creative Commons Attribution-ShareAlike 3.0 Unported License. If you distribute this document, or a modified version of it, you must provide attribution to Red Hat, Inc. and provide a link to the original. If the document is modified, all Red Hat trademarks must be removed.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat Software Collections is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.