Я также имею:
Я в конечном счете решил это при помощи следующего совета и настроек из открытой-iscsi документации:
8.2 iSCSI settings for iSCSI root
---------------------------------
When accessing the root parition directly through a iSCSI disk, the
iSCSI timers should be set so that iSCSI layer has several chances to try to
re-establish a session and so that commands are not quickly requeued to
the SCSI layer. Basically you want the opposite of when using dm-multipath.
For this setup, you can turn off iSCSI pings by setting:
node.conn[0].timeo.noop_out_interval = 0
node.conn[0].timeo.noop_out_timeout = 0
And you can turn the replacement_timer to a very long value:
node.session.timeo.replacement_timeout = 86400
После установки соединения с каждым LUN, как описано выше, обработка отказа работает как очарование, даже если требуется несколько минут для случая.
Есть ли какие-либо сообщения в dom0, указывающем на какой-либо вид ошибок чтения-записи или scsi ошибок во время обработки отказа? Если так, похоже, что эта ошибка при записи передается до domU. domU не "знает", что это - устройство iSCSI, таким образом, это ведет себя, как будто базовый диск ушел и перемонтирование файловой системы, только для чтения (см., монтируются (1) страница справочника - errors=continue / errors=remount-ro / errors=panic
)
С точки зрения dom0 это не будет изменено на только для чтения - это поведение только для чтения является семантической файловой системой, не семантическое блочное устройство.
Вы упоминаете, что "весь другой ввод-вывод перестал работать" в это время - Вы имеете в виду domU или dom0?
Обычно при установке решения iSCSI HA я использую мультисоединение каналом, а не виртуальное поглощение IP - оно позволяет большую видимость хосту, и у Вас нет сессии iSCSI, внезапно исчезают, затем будучи должен быть перезапущенным - это всегда там, существует всего два из них. Действительно ли это - опция в этой среде?
Это походит на проблему с инициатором iSCSI, работающим на dom0. Инициатор не должен отправлять отказам SCSI стек настолько быстро. Вы, вероятно, захотите установить ConnFailTimeout в iscsi.conf, это - установка, которая определяет сколько времени, прежде чем это будет считать сбой соединения ошибкой и будет отправлять той ошибке стек SCSI.
Я также изучил бы, сколько времени та обработка отказа на самом деле берет, она может занимать больше времени, чем Вы ожидаете. Раз так, возможно, обработка отказа VIP занимает слишком много времени из-за связанных с ARP проблем.
Гм... Часть проблемы также, что Вы не работаете / как RO. Мудрое состояние безопасности лучших практик, которое Вы должны иметь "/", смонтировало ro, и что любые файловые системы, которым нужен rw, должны быть смонтированы отдельно, (т.е., / var и/tmp). Если существуют каталоги под / и т.д., которым нужна запись в, они должны быть перемещены в/var/etc/path и symlinked к / и т.д.
"/" должен только быть смонтирован RW в однопользовательском режиме.
Установка этим способом могла предотвратить segfault в вышеупомянутой ситуации в сочетании с другими предложениями.