Многолучевое распространение в Linux: как настроить единую группу путей с несколькими шинами
Я только что обновил функциональный хост Ubuntu 16.04 до 18.04 и теперь у меня проблемы с многолучевым распространением.
Версии пакета: * multipath-tools 0.7.4-2ubuntu3 * open-iscsi 2.0.874-5ubuntu2.7
У меня Dell PowerVault MD3860i с четырьмя путями к хосту. Перед обновлением, multipath -ll
выглядело так:
backupeng (3600a098000b5efae00000e9a5b9b58f5) dm-2 DELL,MD38xxi
size=8.0T features='0' hwhandler='0' wp=rw
`-+- policy='round-robin 0' prio=1 status=active
|- 3:0:0:1 sdb 8:16 active ready running
|- 4:0:0:1 sdc 8:32 active ready running
|- 5:0:0:1 sdd 8:48 active ready running
`- 6:0:0:1 sde 8:64 active ready running
Теперь это выглядит так:
backupeng (3600a098000b5efae00000e9a5b9b58f5) dm-2 DELL,MD38xxi
size=8.0T features='3 queue_if_no_path pg_init_retries 50' hwhandler='1 rdac' wp=rw
|-+- policy='round-robin 0' prio=14 status=active
| |- 5:0:0:1 sdd 8:48 active ready running
| `- 6:0:0:1 sde 8:64 active ready running
`-+- policy='round-robin 0' prio=9 status=enabled
|- 3:0:0:1 sdb 8:16 active ready running
`- 4:0:0:1 sdc 8:32 active ready running
мой /etc/multipath.conf
выглядит так:
defaults {
user_friendly_names yes
path_selector "round-robin 0"
path_grouping_policy multibus
}
multipaths {
multipath {
wwid 3600a098000b5efae00000e9a5b9b58f5
alias backupeng
}
}
Из соображений производительности мне нужно, чтобы все пути были в одной группе путей, как это было раньше. Я понимаю, что path_grouping_policy multibus
должен сделать это. В течение последних нескольких часов я пытался перезапустить multiathd, настроить конфигурации iscsi и multipath на хосте с нуля и так далее.
Я могу вставить полный вывод multipathd -k
-> show config
но то, что я вижу там, согласуется с моим файлом multipath.conf. Есть ли какая-либо другая информация, которую я могу предоставить?
1 ответ
Вы действительно измерили производительность и обнаружили, что она ухудшена? Вы можете обнаружить, что он улучшился, хотя разница может быть не очень большой.
Dell PowerVault MD3860i представляется системой хранения в активном / пассивном стиле (также известной как асимметричный или ALUA): в ней два контроллера хранения, и каждый из дисков считается "принадлежащим" одному из контроллеров в любой момент времени. Если доступ к диску осуществляется через контроллер, который в данный момент не "владеет" диском, он запускает переключатель владения, который добавляет дополнительную задержку к операции ввода-вывода диска.
В результате предпочтительно использовать только пути, которые используют контроллер, которому в настоящее время принадлежит диск, к которому осуществляется доступ.
Твой новый multipath -ll
вывод показывает, что dm-multipath
получает информацию ALUA из системы хранения, используя rdac
протокол. То есть контроллер памяти говорит dm-multipath
какие пути он должен использовать в настоящее время. rdac
Протокол - это более старый протокол, используемый контроллерами хранилищ LSI/Engenio/NetApp и их производителями, и он хорошо понят. Существуют и другие подобные протоколы, специфичные для поставщиков, и SCU-3 ALUA станет новым стандартным способом передачи этой информации, хотя еще не все системы хранения используют ее.
Вы устанавливаете для path_grouping_policy по умолчанию значение multibus
, но вполне вероятно, что он переопределяется аппаратными настройками по умолчанию, скомпилированными в multipath-tools
, (Конкретные удары общего: любые настройки в применимых device
или же multipath
разделы будут переопределять значения, установленные в defaults
раздел.)
Эти встроенные значения по умолчанию применяются в сотрудничестве с производителями запоминающих устройств; по-видимому multipath-tools
Версия в Ubuntu 16.04 еще не имела определенных настроек по умолчанию для Dell PowerVault MD3860i, но в Ubuntu 18.04 она есть.
Вы можете просмотреть эти встроенные значения по умолчанию с sudo multipath -t
, Для вашей системы хранения соответствующая группа настроек, вероятно, будет выглядеть так:
device {
vendor "DELL"
product "(MD34xx|MD38xx)"
product_blacklist "Universal Xport"
path_grouping_policy "group_by_prio"
path_checker "rdac"
features "2 pg_init_retries 50"
hardware_handler "1 rdac"
prio "rdac"
failback "immediate"
no_path_retry 30
}
multibus
path_grouping_policy предназначена для настоящих активных / активных систем хранения, которые позволяют использовать любые пути без ограничений. Это, как правило, более крупные продукты более высокого уровня.
Вы можете написать свой собственный device { ... }
или же overrides { ... }
блокировать в multipath.conf
чтобы переопределить эти настройки, но вы должны делать это в производственной среде только в том случае, если у вас есть конкретная информация от поставщика хранилища, чтобы сделать это, или если у вас есть результаты теста, чтобы доказать, что вы на самом деле лучше, чем поставщик и dm-multipath
Разработчики.