Вопрос или проблема
Я использовал Ubuntu в качестве клиента-инициатора iSCSI для подключения к другим Linux OS-целям с протоколом RDMA. Когда я выключил целевой компьютер, произошла ошибка.
Сообщения об ошибках продолжают появляться, и порт не может быть использован, пока я не перезагружу Ubuntu.
[11567.844537] ice 0000:02:00.0 rocep2s0f0: modify_qp invalid for qp_id=1, old_state=0x6, new_state=0x3
[11567.844555] infiniband rocep2s0f0: ib_mad_send_error - ib_modify_qp to RTS: -22
Происходила ли когда-либо эта проблема?
Ответ или решение
Когда возникает ошибка "rdma link error" на Ubuntu 24.04 при использовании протокола RDMA для подключения к цели iSCSI на другой машине, это может быть признаком потенциальных проблем с конфигурацией или работы системы RDMA. Давайте разберём эту проблему более подробно.
Теория
RDMA (Remote Direct Memory Access) — это технология, которая позволяет передавать данные из памяти одного компьютера в память другого без участия операционной системы и с необычно высокой скоростью и минимальной задержкой. Это особенно полезно в высокопроизводительных вычислительных средах и системах хранения данных, таких как iSCSI (Internet Small Computer Systems Interface).
Когда настроена связь по RDMA, между двумя узлами устанавливается QP (Queue Pair — пара очередей), которая регулирует отправку и получение данных. RDMA позволяет модифицировать состояние этих QP, например, переводя их из состояния RTS (Ready to Send — готов к отправке) в состояния более низкого уровня или наоборот. Ошибка, упомянутая вами:
[11567.844537] ice 0000:02:00.0 rocep2s0f0: modify_qp invalid for qp_id=1, old_state=0x6, new_state=0x3
[11567.844555] infiniband rocep2s0f0: ib_mad_send_error - ib_modify_qp to RTS: -22
означает, что система пыталась изменить состояние очереди, но возникла ошибка — вероятно, из-за несоответствия текущего состояния.
Код ошибки -22
в пространстве кода errno указывает на EINVAL
(invalid argument — недопустимый аргумент), что значит, что параметр переданной функции был некорректным. Это может происходить, если текущая конфигурация RDMA или состояние работы очереди были нарушены.
Пример
Предположим, у вас была стабильная работающая система, использующая Ubuntu как iSCSI инициатор и другую Linux систему как цель. При выключении целевой машины без корректного отсоединения инициаторов система инициаторов может потерять связь, ведущую к сбросу состояния QP в неожиданное состояние. Такое может вызвать сбой, если она впоследствии пытается связаться обратно, особенно автоматически.
Применение
-
Меры предосторожности при выключении целевой машины: Прежде чем выключать целевую машину, убедитесь, что все инициаторы корректно отсоединили свои подключения. Это можно сделать с помощью команд iSCSI удаления или деактивации соединений RDMA.
-
Мониторинг и диагностика: Используйте инструменты мониторинга, такие как RDMA диагностика (
rdma tool
) илиibv_devinfo
, чтобы контролировать состояние RDMA устройств. Эти инструменты помогут подтвердить статус QP и текущее состояние аппаратного обеспечения RDMA. -
Конфигурация RDMA узлов: Убедитесь, что оба узла (и инициатор и цель) настроены правильно — требования к версии ядра, версии драйверов для RDMA и сетевых адаптерах с поддержкой RDMA (например, Mellanox или Intel).
-
Журналирование и логирование: Настройте системное журналирование для захвата соответствующих событий и сообщений, связанных с RDMA и iSCSI. Это может дать больше контекста к проблеме.
-
Обновления системы и драйверов: Проверьте наличие обновлений и исправлений ошибок для вашей версии Ubuntu и применяйте их. Также проверьте наличие обновлений для RDMA драйверов и прошивок сетевых устройств.
-
Проверка документации: Ознакомьтесь с документацией на свои RDMA устройства и Ubuntu 24.04, чтобы убедиться, что ваша конфигурация соответствует рекомендуемым практикам, особенно в контексте использования iSCSI через RDMA.
Если ничего из перечисленного не помогает, рекомендуется вынести вопрос на специализированные форумы, такие как Форумы Ubuntu или специализированные группы по сетевым технологиям, где другие пользователи смогут предоставить дополнительную помощь или предложить устоявшиеся решения для описанной проблемы. Обязательно включите все собранные данные и проведённые шаги в вашем запросе — это поможет вашим коллегам лучше понять контекст и быстрее прийти к подходящему решению.
В результате, несмотря на то, что такие проблемы являются комплексными, их возможно разрешить с помощью правильного подхода и углублённого изучения всех компонентов системы. Это включает в себя знание не только операционной системы, но и конфигурации оборудования, сетевых взаимодействий и стратегий управления данными.