Назад | Перейти на главную страницу

Как «исправить» ошибочный путь в device-mapper-multipath

У меня есть конфигурация с несколькими путями, которая работала, но теперь показывает "ошибочный" путь:

[root@nas ~]# multipath -ll
sdd: checker msg is "readsector0 checker reports path is down"
mpath1 (36001f93000a63000019f000200000000) dm-2 XIOTECH,ISE1400
[size=200G][features=0][hwhandler=0][rw]
\_ round-robin 0 [prio=1][active]
 \_ 1:0:0:1 sdb 8:16  [active][ready]
\_ round-robin 0 [prio=0][enabled]
 \_ 2:0:0:1 sdd 8:48  [active][faulty]

В то же время я вижу эти три строки снова и снова в /var/log/messages

Feb  5 12:52:57 nas kernel: sd 2:0:0:1: SCSI error: return code = 0x00010000
Feb  5 12:52:57 nas kernel: end_request: I/O error, dev sdd, sector 0
Feb  5 12:52:57 nas kernel: Buffer I/O error on device sdd, logical block 0

И эта строка тоже довольно часто появляется

Feb  5 12:52:58 nas multipathd: sdd: readsector0 checker reports path is down

Я не понимаю, почему он использует readsector0 метод проверки, когда мой /etc/multipath.conf файл сказать использовать tur

[корень @ nas ~] # tail -n15 /etc/multipath.conf

devices {
        device {
                vendor                  "XIOTECH "
                product                 "ISE1400         "
                path_grouping_policy    multibus
                getuid_callout          "/sbin/scsi_id -g -u -d /dev/%n"
                path_checker            tur
                prio_callout              "none"
                path_selector           "round-robin 0"
                failback                    immediate
                no_path_retry           12
                user_friendly_names yes
        }
}

Глядя на документацию по восходящей линии, этот абзац кажется уместным: http://christophe.varoqui.free.fr/usage.html

For each path:

\_ host:channel:id:lun devnode major:minor [path_status][dm_status_if_known]

The dm status (dm_status_if_known) is like the path status
(path_status), but from the kernel's point of view. The dm status has two
states: "failed", which is analogous to "faulty", and "active" which
covers all other path states. Occasionally, the path state and the 
dm state of a device will temporarily not agree. 

Для меня это было уже более 24 часов, так что это не временно.

Итак, со всем этим в качестве фона мои вопросы
- как я могу определить здесь основную причину?
- как я могу вручную / из командной строки выполнить любую проверку, которую он делает
- почему он игнорирует мой multipath.conf (я сделал это неправильно?)

Заранее благодарим за любые идеи, если есть что-то еще, что я могу предоставить для информации, дайте мне знать в комментарии, и я отредактирую его в сообщении.

В вашем multipath.conf есть небольшая ошибка, продавец и товар совпадают на уровне регулярного выражения, то, что вы добавили серию ведущих пробелов, приводит к тому, что multipathd не может сопоставить вашу конфигурацию с фактическими устройствами в системе. Если бы вы исследовали вывод echo 'show config' | multipathd -k вы бы нашли два раздел устройства для вашей SAN, тот, который соответствует всем добавленным дополнительным пробелам, и конфигурация по умолчанию (если она существует), предоставленная внутренней базой данных.

Измените свой multipath.conf, чтобы он выглядел так:

            vendor                  "XIOTECH "
            product                 "ISE1400.*"

Запрос SCSI ожидает, что поле поставщика содержит не более 8 символов, оканчивающееся нулевым символом ASCII. Если вы не используете все 8 символов, вы должны заполнить поле пробелами, чтобы получить 8 символов. Multipathd интерпретирует спецификацию букве закона, вы также могли бы сделать "XIOTECH.*" если вы действительно хотите быть уверенным.

После того, как вы внесете эти изменения, остановите multipathd, используя ваши сценарии инициализации, multipath -F, который очистит вашу конфигурацию, а затем снова запустите multipathd. Теперь ваш файл конфигурации должен быть уважаем. Если проблема не исчезла, перезагрузитесь.

Если когда-либо возникают сомнения в том, что ваш файл конфигурации не соблюдается, всегда проверяйте текущую конфигурацию, используя заклинание эха, и сравнивайте то, что загружено в базу данных, с вашим файлом конфигурации.