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