Вопрос или проблема
У меня есть массив дисков SAS, подключенный к серверу Ubuntu 22.04, и он не загружается. Если я сначала загружаю сервер, а затем подключаю кабель SAS, все работает!
Таким образом, конфигурация сервера работает. Но каждый раз, когда мне нужно его перезагрузить, я должен идти в серверную комнату, отключать кабель SAS, загружаться и снова подключать. Когда я загружаю с подключенным корпусом, он проходит BIOS/UEFI, но как только запускается ОС/ядро, он зависает, постоянно сканируя и мигая всеми дисками поочередно.
Массив дисков — Supermicro 847E2C-R1K23JBOD. Он имеет двойной контроллер. У нас также есть несколько Supermicro 847E1C-R1K23JBOD с одним контроллером. Они не вызывают никаких проблем. Массив подключен к LSI 9300 16e. Проблема присутствует даже при подключении только одного из обычных 2 кабелей. Что также кажется странным, так это то, что он даже не доходит до загрузочного экрана, только черный экран и мигающие индикаторы дисков, без ошибок, никаких подсказок.
Что сломало мой мозг: сервер загружается с live/install iso Ubuntu 22.04 при подключенных кабелях. Как только он установлен, больше не загружается.
Любая помощь или идеи были бы очень признательны!
Ответ или решение
Проблема, описанная в вашем запросе, связана с трудностью загрузки сервера Ubuntu 22.04, когда к нему подключен массив дисков SAS с двумя контроллерами Supermicro 847E2C-R1K23JBOD. Примечательно, что сервер загружается нормально, если массив подключен после завершения процесса загрузки системы. Также важно отметить, что схожих проблем не наблюдается с устройствами с одним контроллером, а также при использовании установочного ISO-диска Ubuntu 22.04. Также наблюдается, что использование только одного из кабелей не решает проблему, и проблема проявляется в виде неудачной загрузки, при этом никакой информации об ошибке не отображается, лишь мигающие индикаторы дисков.
Теория (Theory):
Обсуждаемое поведение может быть связано с различными факторами, среди которых стоит выделить конфликт между устройствами или проблемы совместимости на уровне драйвера. Поскольку загрузка завершается удачно при подключении массивов только после непосредственного начала работы операционной системы, вероятно, имеет место проблема с инициализацией контроллера во время начальной фазы загрузки ОС. Возможно, ОС, будучи установленной на сервер, инициализирует дисковую подсистему иначе, чем при запуске с ISO.
Пример (Example):
На практике подобные проблемы могут возникать при использовании современных контроллеров SAS, которые имеют особенности поведения во время инициализации систем. Например, некоторые контроллеры могут конфигурироваться неправильно, если при запуске системы они считывают некорректные параметры из настроек BIOS/UEFI, или если во время инициализации ОС происходит конфликт адресации в случаях, когда контроллеры делят шины или ресурсы с другими устройствами.
Применение (Application):
-
Обновление прошивки контроллеров и материнской платы:
Первым шагом рекомендуется проверить и обновить прошивки контроллеров SAS и материнской платы до последних доступных версий от производителя. Это может устранить те проблемы, которые возникают из-за несовместимости или ошибок в старых версиях прошивок. -
Настройка BIOS/UEFI:
Убедитесь, что в BIOS/UEFI правильно настроены параметры по умолчанию для поддержания совместимости с устройствами SAS. Проверьте настройки инициализации PCIe, а также отключите опции, которые могут повлиять на инициализацию и приоритезацию загрузки. Рассмотрите варианты отключения управления питанием для портов, к которым подключено ваше оборудование. -
Диагностика драйверов:
Возможно, стоит протестировать различные версии драйверов для контроллера LSI 9300 16e. Иногда использование альтернативной версии драйвера, отличной от той, что поставляется по умолчанию с операционной системой, решает эту проблему. Исследуйте возможность установки драйверов из официальных репозиториев или использования PPA-сборок. -
Выборочная загрузка сетевых интерфейсов:
Рассмотрите возможность временного отключения некоторых функций в конфигурации Ubuntu, которые могут быть связаны с автовосстановлением настроек сети или устройств. Это можно сделать с помощью временных параметров ядра, впоследствии производя отладку, чтобы выявить, какой из параметров оказывает влияние на поведение системы. -
Журнал событий:
Ознакомьтесь с системными журналами и событиями, которые записываются в момент загрузки. Используйтеdmesg
,journalctl
или даже логирование init процесса, чтобы понять, в какой именно момент происходит ошибка инициализации. Это может дать ключевые подсказки о конфликте ресурсов или неподдерживаемых настройках. -
Ручная настройка средств запуска:
Часто бывает полезно использовать загрузчик, такой как GRUB, для тонкой настройки процессов начальной загрузки. С помощью опций ядра, таких какnomodeset
илиnoapic
, вы сможете выявить, вызывает ли загвоздка проблемные компоненты в начальной фазе ОС.
Эти шаги помогут вам тщательно проанализировать и, возможно, разрешить проблему с загрузкой сервера при подключенном SAS массиве. Если, после всех шагов, проблему всё же не удастся разрешить, рекомендуется обратиться за помощью к сообществу или технической поддержке производителя оборудования для более специфического анализа проблемы.