Найти в Дзене
Сисадмин

Multipath devices в Linux

Оглавление
Multipath devices в Linux
Multipath devices в Linux

Multipath devices в Linux — это технология, которая позволяет использовать несколько физических путей к одному и тому же блочному устройству для повышения отказоустойчивости и производительности системы. Это особенно полезно в средах хранения данных, где у устройства хранения (например, SAN) может быть несколько путей для доступа к одному и тому же дисковому массиву.

Проблема и необходимость в multipath

Если физическое устройство хранения доступно через несколько путей, каждый из которых представлен как отдельное блочное устройство (например, /dev/sda, /dev/sdb, и т.д.), то это может привести к путанице и неэффективному использованию системы. В случае отказа одного пути, доступ к устройству будет потерян, если не настроена система multipath.

Multipath решает эту проблему, объединяя несколько физических путей в одно логическое устройство, что позволяет:

  • Увеличить отказоустойчивость: если один из путей выходит из строя, другие остаются доступными.
  • Повысить производительность: за счёт балансировки нагрузки между путями.

Основные компоненты multipath в Linux

  1. Драйвер Device Mapper: Это уровень абстракции, позволяющий управлять множеством путей как одним устройством.
  2. Утилита multipath-tools: Она предоставляет набор инструментов для настройки и управления множеством путей. Основные компоненты:

multipath: управляет и создает multipath устройства.

multipathd: демон, следящий за состоянием путей и управляющий ими в реальном времени.

Основные термины

  • Path: Физический путь к устройству хранения через определённый адаптер или контроллер.
  • WWID (World Wide Identifier): Уникальный идентификатор устройства хранения.
  • Group: Набор путей, которые ведут к одному и тому же устройству.

Установка и настройка multipath

Шаг 1: Установка multipath-tools

Для настройки multipath в Linux необходимо установить пакет multipath-tools:

sudo apt install multipath-tools # Для Ubuntu/Debian
sudo yum install device-mapper-multipath # Для RHEL/CentOS

Шаг 2: Проверка состояния multipath

После установки можно проверить, включён ли multipath по умолчанию:

sudo multipath -ll

Если multipath не настроен, команда не покажет активных устройств.

Шаг 3: Настройка файла конфигурации /etc/multipath.conf

Файл /etc/multipath.conf используется для настройки multipath. Он может включать следующие параметры:

defaults {
user_friendly_names yes # Для удобочитаемых имён устройств
path_grouping_policy multibus # Для балансировки нагрузки между всеми путями
path_checker tur # Метод проверки доступности пути (tur – Test Unit Ready)
}

blacklist {
devnode "^sd[a-z]" # Исключение локальных дисков из multipath
}

multipaths {
multipath {
wwid 36005076303ffc56600000000000010aa
alias mydisk
}
}

Шаг 4: Запуск и управление multipathd

После настройки конфигурации можно запустить или перезапустить демон multipathd:

sudo systemctl restart multipathd

Теперь демон будет отслеживать состояние всех путей и управлять ими.

Шаг 5: Просмотр устройств multipath

Чтобы посмотреть список всех multipath-устройств:

sudo multipath -ll

Команда покажет список устройств, их идентификаторы, доступные пути и их статус.

Работа с устройствами multipath

Проверка доступных путей

Команда multipath -ll выводит всю информацию о доступных путях и их статусе.

mpathb (36005076303ffc56600000000000010aa) dm-0 HP,HSV300
size=200G features='1 queue_if_no_path' hwhandler='0' wp=rw
|-+- policy='round-robin 0' prio=50 status=active
| `- 3:0:0:1 sdb 8:16 active ready running
`-+- policy='round-robin 0' prio=10 status=enabled
`- 2:0:0:1 sdc 8:32 active ready running

Удаление путей

Иногда может понадобиться удалить путь, если он вышел из строя или больше не нужен:

sudo multipath -f [mpathX]

Где mpathX — имя multipath устройства.

Добавление и сканирование путей

Для сканирования новых путей и обновления информации о путях:

sudo multipath

Управление multipath устройствами

Для управления устройствами multipath можно использовать следующие команды:

  • multipath -r: Перезагрузка конфигурации multipath.
  • multipath -F: Очистка всех существующих multipath устройств.
  • multipath -f <device>: Удаление конкретного multipath устройства.

Режимы работы Multipath

Multipath может использовать различные политики для управления путями:

  1. failover: Используется только один путь, остальные в режиме ожидания. При отказе основного пути переключается на резервный.
  2. multibus: Используются все доступные пути для балансировки нагрузки.
  3. round-robin: Переключение между путями по очереди для равномерного распределения нагрузки.
  4. priority-based: Выбор пути на основе приоритетов, заданных администратором.

Пример сценария

1. Устройство хранения доступно через два пути:

Путь 1: /dev/sda

Путь 2: /dev/sdb

2. Настраиваем multipath, объединяя пути в одно устройство:

WWID устройства: 36005076303ffc56600000000000010aa

Логическое устройство multipath: /dev/mapper/mpatha

3. Проверяем состояние:

sudo multipath -ll

4. Если один из путей отключается, multipathd автоматически перенаправит трафик на другой путь.

Технология multipath в Linux предоставляет надёжное и гибкое решение для работы с устройствами хранения такими, как СХД, обеспечивая как отказоустойчивость, так и улучшенную производительность за счёт балансировки нагрузки между путями.