Linux DM Multipath - Linux DM Multipath

Linux DM Multipath
изначальный выпуск 17 июня 2005 г . ; 15 лет назад Linux Kernel 2.6.12  ( 2005-06-17 )
Репозиторий https://git.opensvc.com/gitweb.cgi?p=multipath-tools%2F.git;a=log
Написано в C
Операционная система Linux

Device Mapper Multipath Input Output часто сокращается до DM-Multipathing и сокращенно DM-MPIO обеспечивает переключение ввода-вывода ( I / O ) и балансировку нагрузки с использованием многопутевого ввода-вывода в Linux для блочных устройств . Используя device-mapper, демон multipathd предоставляет логику на стороне хоста для использования нескольких путей резервированной сети для обеспечения непрерывной доступности и связи с более высокой пропускной способностью между хост-сервером и устройством блочного уровня. DM-MPIO обрабатывает перенаправление блочного ввода-вывода на альтернативный путь в случае сбоя пути. DM-MPIO также может сбалансировать нагрузку ввода-вывода по всем доступным путям, которые обычно используются в средах Fibre Channel (FC) и iSCSI SAN . DM-MPIO основан на устройстве отображения устройств , которое обеспечивает базовую структуру, которая отображает одно блочное устройство на другое.

Соображения

При использовании Linux DM-MPIO в центре обработки данных с другими операционными системами и решениями с несколькими путями необходимо учитывать ключевые компоненты управления путями.

  • Балансировка нагрузки - рабочая нагрузка распределяется по доступным аппаратным компонентам. Цель: сократить время завершения ввода-вывода, максимизировать пропускную способность и оптимизировать ресурсы
  • Отработка отказа и восстановление пути - использует избыточные каналы ввода-вывода для перенаправления операций чтения и записи приложения, когда один или несколько путей больше не доступны.

История

DM-MPIO начинался как набор патчей, созданный Джо Торнбером, а позже поддерживался Аласдером Дж. Кергоном из Red Hat. Он был включен в основную версию Linux с версией ядра 2.6.12, выпущенной 17 июня 2005 года.

Составные части

Image
Простой пример многолучевого распространения

DM-MPIO в Linux состоит из компонентов ядра и компонентов пользовательского пространства.

  • Ядро - устройство-сопоставитель - блочная подсистема, обеспечивающая механизм многоуровневости для блочных устройств.
    • dm-multipath - модуль ядра, реализующий цель multipath device-mapper.
  • Пользовательское пространство - multipath-tools - предоставляет инструменты для управления многопутевыми устройствами путем указания модулю multipath-сопоставления устройств, что делать. Инструменты состоят из:
    • Многопутевый: сканирует систему на наличие многопутевых устройств, собирает их, обновляет карту устройства-сопоставителя.
    • Multipathd: демон, который ожидает событий карты, а затем выполняет multipath и отслеживает пути. Помечает путь как сбойный, когда путь становится ошибочным. В зависимости от политики восстановления после отказа он может повторно активировать путь.
    • Devmap-name: предоставляет значимое имя устройства для udev для devmaps.
    • Kpartx: сопоставляет линейные devmaps с разделами устройств, чтобы сделать многопутевые карты разделяемыми.
    • Multipath.conf: файл конфигурации для демона multipath. Используется для перезаписи встроенной таблицы конфигурации multipathd.

Конфигурационный файл

Файл конфигурации /etc/multipath.conf делает многие из функций DM-MPIO настраиваемыми пользователем. Команда multipath и демон ядра multipathd используют информацию, содержащуюся в этом файле. К файлу обращаются только во время настройки многопутевых устройств. Перед запуском команды multipath необходимо внести изменения . Последующие изменения файла потребуют повторного выполнения функции multipath .

Multipath.conf состоит из пяти разделов:

  1. Значения по умолчанию на системном уровне (по умолчанию ): Пользователь может изменить настройки по умолчанию на системном уровне.
  2. Устройства, занесенные в черный список ( черный список ): Пользователь указывает список устройств, которые не должны находиться под контролем DM-MPIO.
  3. Исключения из черного списка ( blacklist_exceptions ): определенные устройства должны рассматриваться как устройства с несколькими путями, даже если они перечислены в черном списке.
  4. Специфические настройки контроллера хранилища ( устройства ): указанные пользователем настройки конфигурации будут применены к устройствам с указанной информацией «Поставщик» и «Продукт».
  5. Параметры для конкретных устройств ( многопутевые ): точная настройка параметров конфигурации для отдельных LUN.

Терминология

  • HBA: адаптеры шины хоста обеспечивают физический интерфейс между шиной хоста ввода / вывода (I / O) устройств Fibre Channel и базовой сетью Fibre Channel.
  • Путь: подключение от сервера через HBA к определенному LUN.
  • Состояния пути DM: вид устройства отображения состояния пути. Возможны только два условия:
    • Активно: последняя операция ввода-вывода, отправленная по этому пути, успешно завершена. Аналогично состоянию пути готовности.
    • Ошибка: последняя операция ввода-вывода, отправленная по этому пути, не завершилась успешно. Аналогично состоянию неисправного пути.
  • Отработка отказа: когда определено, что путь находится в состоянии сбоя, путь, который находится в состоянии готовности, станет активным.
  • Восстановление после сбоя: когда неудачный путь снова становится активным, multipathd может выбрать возврат на путь, определенный политикой восстановления после отказа.
  • Политика восстановления после сбоя: четыре параметра, заданные в файле конфигурации multipath.conf.
    • Немедленно: Немедленное переключение на путь с наивысшим приоритетом.
    • Вручную: сбойный путь не отслеживается, требуется вмешательство пользователя для восстановления после сбоя.
    • Followover (для кластеров): выполнять автоматическое восстановление после сбоя только тогда, когда первый путь группы путей становится активным. Это предохраняет узел от автоматического восстановления после отказа, когда другой узел запросил переход.
    • Количество секунд: подождите определенное количество секунд, чтобы позволить I / O стабилизироваться, затем вернитесь к пути с наивысшим приоритетом.
  • Активный / Активный: в системе с двумя контроллерами хранилища каждый контроллер может обрабатывать операции ввода-вывода.
  • Активный / пассивный: в системе с двумя контроллерами хранилища только один контроллер одновременно может обрабатывать операции ввода-вывода, а другой (пассивный) находится в режиме ожидания.
  • LUN: номер логического устройства SCSI
  • WWID : Worldwide Identifier - это идентификатор многопутевого устройства, который гарантированно будет глобально уникальным и неизменным.

дальнейшее чтение

Рекомендации

внешняя ссылка

  • multipath-tools , домашняя страница вышестоящего проекта, используемого для управления драйвером multipathing Device Mapper.