У нас есть пара десятков серверов Proxmox (Proxmox работает на Debian), и примерно раз в месяц на одном из них происходит паника ядра и блокировка. Худшая часть этих блокировок заключается в том, что когда это сервер, который находится на отдельном коммутаторе, чем мастер кластера, все другие серверы Proxmox на этом коммутаторе перестанут отвечать, пока мы не найдем сервер, который действительно потерпел крах, и перезагрузим его.
Когда мы сообщили об этой проблеме на форуме Proxmox, нам посоветовали перейти на Proxmox 3.1, и мы занимались этим последние несколько месяцев. К сожалению, один из серверов, которые мы перевели на Proxmox 3.1, заблокирован из-за паники ядра в пятницу, и снова все серверы Proxmox, находящиеся на том же коммутаторе, были недоступны по сети, пока мы не смогли найти сбойный сервер и перезагрузить его.
Ну, почти все серверы Proxmox на коммутаторе ... Мне показалось интересным, что серверы Proxmox на том же коммутаторе, которые все еще были на Proxmox версии 1.9, не пострадали.
Вот скриншот консоли упавшего сервера:
Когда сервер заблокировался, остальные серверы на том же коммутаторе, на которых также был запущен Proxmox 3.1, стали недоступными и извергали следующее:
e1000e 0000:00:19.0: eth0: Reset adapter unexpectedly
e1000e 0000:00:19.0: eth0: Reset adapter unexpectedly
e1000e 0000:00:19.0: eth0: Reset adapter unexpectedly
...etc...
uname -a вывод заблокированного сервера:
Linux ------ 2.6.32-23-pve #1 SMP Tue Aug 6 07:04:06 CEST 2013 x86_64 GNU/Linux
pveversion -v output (сокращенно):
proxmox-ve-2.6.32: 3.1-109 (running kernel: 2.6.32-23-pve)
pve-manager: 3.1-3 (running version: 3.1-3/dc0e9b0e)
pve-kernel-2.6.32-23-pve: 2.6.32-109
Два вопроса:
Есть какие-нибудь подсказки, что может вызвать панику ядра (см. Изображение выше)?
Почему другие серверы на том же коммутаторе и версии Proxmox будут отключены от сети, пока заблокированный сервер не будет перезагружен? (Примечание: на том же коммутаторе были и другие серверы, на которых была установлена более старая версия Proxmox 1.9, которые не были затронуты. Кроме того, не были затронуты другие серверы Proxmox в том же кластере 3.1, которые не были на том же коммутаторе.)
Спасибо заранее за любые советы.
Я почти уверен, что ваша проблема вызвана не одним единственным фактором, а сочетанием факторов. Каковы эти индивидуальные факторы, неясно, но, скорее всего, один фактор - это либо сетевой интерфейс, либо драйвер, а другой фактор находится на самом коммутаторе. Следовательно, вполне вероятно, что проблема может быть воспроизведена только с этой конкретной маркой коммутатора в сочетании с этой конкретной маркой сетевого интерфейса.
Вам кажется, что причиной проблемы является что-то, что происходит на одном отдельном сервере, который затем вызывает панику ядра, которая имеет эффекты, которые каким-то образом удается распространяться по коммутатору. Это звучит правдоподобно, но я бы сказал, что примерно так же вероятно, что триггер находится где-то еще.
Возможно, что-то происходит на коммутаторе или сетевом интерфейсе, что одновременно вызывает панику ядра и проблемы со связью на коммутаторе. Другими словами, даже если в ядре не было паники ядра, триггер вполне мог нарушить соединение на коммутаторе.
Следует спросить, что могло произойти на отдельном сервере, что могло бы иметь такой эффект на других серверах. Это не должно быть возможным, поэтому объяснение должно включать в себя какой-то недостаток в системе.
Если просто связь между вышедшим из строя сервером и коммутатором вышла из строя или стала нестабильной, это не должно повлиять на состояние связи с другими серверами. Если это так, это будет считаться неисправностью переключателя. Что касается трафика, то другие серверы должны видеть немного меньше трафика после того, как сбойный сервер потерял связь, что не может объяснить, почему они видят проблему, которую они делают.
Это заставляет меня думать, что конструкция переключателя вероятна.
Однако проблема со связью - не первое объяснение, которое нужно искать, пытаясь объяснить, как проблема на одном сервере может вызвать проблемы на других серверах на коммутаторе. Более очевидным объяснением был бы широковещательный шторм. Но может ли быть связь между сервером с паникой ядра и широковещательным штормом?
Многоадресная рассылка и пакеты, предназначенные для неизвестных MAC-адресов, более или менее обрабатываются так же, как широковещательные рассылки, поэтому большое количество таких пакетов также будет учитываться. Может быть, испуганный сервер пытается отправить аварийный дамп по сети на MAC-адрес, не распознаваемый коммутатором?
Если это триггер, значит, на других серверах что-то не так. Потому что шторм пакетов не должен вызывать такого рода ошибки в сетевом интерфейсе. Reset adapter unexpectedly
не звучит как шторм пакетов (который должен просто вызвать падение производительности, но никаких ошибок как таковых), и это не похоже на проблему со связью (которая должна была привести к сообщениям о сбоях ссылок, но не к ошибке, которую вы видя).
Таким образом, вероятно, есть какая-то ошибка в оборудовании или драйвере сетевого интерфейса, которая запускается переключателем.
Несколько предложений, которые могут дать дополнительные подсказки:
Для меня это похоже на ошибку в драйвере Ethernet или аппаратном обеспечении / прошивке, это красный флаг:
e1000e 0000:00:19.0: eth0: Reset adapter unexpectedly
e1000e 0000:00:19.0: eth0: Reset adapter unexpectedly
e1000e 0000:00:19.0: eth0: Reset adapter unexpectedly
Я видел это раньше, и это может вывести сервер из строя. Я не помню точно, было ли это на картах Intel Ethernet, но я так считаю. Это могло быть даже связано с ошибкой самих сетевых карт. Я помню, как читал что-то о конкретных картах Intel Ethernet, имеющих такие проблемы. Но я потерял ссылку на статью.
Я предполагаю, что триггер для этого частично зависит от используемого драйвера (версии), тот факт, что более старая версия программного обеспечения работает нормально, похоже, подтверждает это. Вы говорите, что поставщик использует свое собственное ядро, попробуйте обновить модуль драйвера Ethernet, который используется для вашего конкретного оборудования Ethernet. Либо от вашего поставщика, либо из официального дерева исходных текстов ядра.
Также обратите внимание на подключение оборудования Ethernet, обычно сервер имеет два порта Ethernet, встроенный и / или дополнительную карту (карты). Таким образом, если одна карта Ethernet имеет эту проблему, другая подхватит ее. Я использую слово «карта», но оно, конечно, применимо к любому оборудованию Ethernet.
Также это может исправить замена оборудования Ethernet. Либо замените, либо добавьте новую карту Ethernet (Intel) и используйте ее. Скорее всего, проблема связана с оборудованием / прошивкой, на более новой карте есть исправление (или более старая?).