Многолучевое распространение в 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 Разработчики.

Другие вопросы по тегам