Как "исправить" ошибочный путь в 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

[root@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 (я сделал это неправильно?)

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

1 ответ

Решение

В файле 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. Ваш файл конфигурации должен быть соблюден сейчас. Если у вас все еще есть проблемы, перезагрузите компьютер.

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

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