Общественная практика|Реализовать разработку автоматической конфигурации RDMA в сценариях ИИ на основе оператора сети SR-IOV.
Общественная практика|Реализовать разработку автоматической конфигурации RDMA в сценариях ИИ на основе оператора сети SR-IOV.

В сценариях распределенного обучения ИИ ускорение межзадачного чтения сетевых данных с помощью удаленного прямого доступа к памяти (RDMA) стало предпочтительным решением для оптимизации производительности приложений ИИ. Возможности RDMA предоставляются интеллектуальными сетевыми картами. В среде Kubernetes сетевую карту необходимо виртуализировать в несколько субинтерфейсов с помощью таких решений, как SR-IOV или MacVlan. Каждый модуль использует возможности RDMA сетевой карты через субинтерфейс. интерфейсы для многократного использования одной карты. Inspur Yunhai сотрудничал с сообществом Kube-OVN для анализа болевых точек конфигурации SR-IOV, представил проект sriov-network-operator и оптимизировал болевые точки для реализации автоматической настройки RDMA сетевой карты, а также в сочетании с Kube-OVN предоставил комплексное прикладное решение RDMA для производственной среды.

01 Конфигурация RDMA и SR-IOV громоздка и имеет проблемы с сохранением.

При настройке RDMA и SR-IOV вам придется иметь дело с множеством параметров и различиями в конфигурации сетевых устройств разных производителей. Кроме того, проблемы с сохранением устройств RDMA VF и связанных обновлений с Kubernetes также усложняют управление и обслуживание.

1. Настройка RDMA SR-IOV громоздка. Процесс настройки требует инициализации максимального количества VF, ожидаемого количества VF, размера MTU, размера Vlan, конфигурации IOMMU и т. д. сетевого устройства SR-IOV. Конфигурации сетевых карт разных производителей также различаются. для загрузки льда модули ядра, такие как iavf и irdma, а также сетевые карты Mellanox, должны загружать связанные модули ядра, если имена сетевых карт нескольких узлов различаются, также необходимо установить разные сценарии конфигурации; Обычными решениями этой проблемы являются настройка операционной системы, сценарии автоматической настройки SR-IOV и т. д. Однако эти решения обладают недостаточной гибкостью, а процесс реализации является громоздким.

2. Проблема с сохранением устройства RDMA VF. Устройство RDMA VF создается путем динамической настройки и не может быть сохранено после сбоя в работе сервера узла или его обновления и перезапуска. Системные службы и пользовательские правила udev обычно используются для управления автоматическими сценариями для перенастройки VF при запуске сервера. Однако этот метод требует от разработчика разработки сценариев в соответствии с различными средами и не является универсальным.

3. Как обновить RDMA SR-IOV в связке с Kubernetes после настройки. Поскольку плагин устройства инициирует обнаружение и передачу информации об устройстве VF только один раз при запуске, вам необходимо вручную перезапустить плагин устройства после настройки RDMA SR-IOV для обновления информации VF в Kubernetes, чтобы гарантировать, что модули, которым требуются устройства RDMA, могут быть доступны. оборудование VF запланировано и распределено нормально. Когда в среду добавляется новая сетевая карта или изменяется количество VF и т. д. и необходимо обновить конфигурацию, после перенастройки RDMA SR-IOV, чтобы обеспечить доступность кластера Kubernetes и бизнеса, многое требуется много рабочей силы и времени, чтобы выселить поды и перезапустить сервер, чтобы обеспечить высокую доступность кластера. Этот процесс требует от исполнителя глубокого накопления технологий Kubernetes и сильных практических навыков.

02Автоматическая настройка через sriov-network-operator

Inspur Yunhai решил вышеуказанные проблемы, внедрив компонент sriov-network-operator. Благодаря декларативной конфигурации он реализует динамическую, автоматизированную и высокодоступную настройку SR-IOV, упрощает ручное управление SR-IOV и RDMA, а также повышает гибкость и удобство обслуживания системы, что делает ее более подходящей для облачных сред. Быстрое развертывание и динамические обновления.

Рабочий процесс sriov-network-operator, автоматически настраивающий SR-IOV, выглядит следующим образом:

Глобальный универсальный шаблон конфигурации SR-IOV:Поддерживает разные определения сетевых карт разных производителей для всех узлов.Конфигурация Ресурсы для хранения ожиданийSR-IOVСопутствующая информация,Включая имя сетевой карты, тип сетевой карты, ожидаемое количество VF, метки узлов и т. д. Конфигурация хранится в базе данных Etcd в виде ресурсов K8S.,Поддержка через Kubernetes Динамическая конфигурация API.

Шаблон конфигурации узла SR-IOV: Сопоставляется и наследуется от глобального шаблона конфигурации SR-IOV на основе текущей информации об узле. Информация о состоянии процесса настройки и ошибках также будет храниться в этом шаблоне.

Распределенный конфигуратор SR-IOV:Разверните набор демонов на каждом узле.SR-IOVКонфигурацияустройство,Отвечает за автоматическую обработку информации SR-IOV на этом узле. Его основные возможности включают в себя:

• Выполните подготовительные работы во время запуска, такие как включение параметров ядра IOMMU, загрузка драйвера ядра VFIO_PCI и т. д.

• Отслеживайте изменения в информации о ресурсах конфигурации SR-IOV этого узла в режиме реального времени и загружайте ее в конфигуратор как можно скорее.

• Поддерживает автоматическую настройку информации SR-IOV. В соответствии с ожидаемой информацией о конфигурации SR-IOV этого узла автоматически генерируется и выполняется сценарий конфигурации, а для обеспечения эффективности конфигурации поддерживаются такие операции, как вытеснение пода и перезапуск узла.

• Создавайте дифференцированные метаданные узлов, от которых зависит плагин устройства, и перезапускайте плагин устройства, чтобы реализовать отчеты об обнаружении VF, а также реализовать связь между компонентами Kubernetes.

• Поддерживает создание подробной информации о состоянии процесса настройки. Персонал по эксплуатации и техническому обслуживанию может быстро проверять ход выполнения, находить и решать проблемы с помощью информации о состоянии.

• Последовательно перезапускайте узлы, чтобы изменения конфигурации IOMMU, VF и другой информации вступили в силу, чтобы обеспечить высокую доступность кластера Kubernetes.

Основываясь на практике разработки и производственной среды, Inspur Yunhai внесла множество оптимизаций и улучшений на основе исходного оператора sriov-network-operator, например поддержку Kube-OVN OVS. Конфигурация VF сценария разгрузки, соответствующий Pod sriov-network-operator запланирован только для узлов с Feature.node.kubernetes.io/network-SR-IOV.capable=true, сетевая карта Intel загружает модуль ядра iavf, а Метод вытеснения пода изменен на принудительное удаление. Это позволяет избежать проблемы недоступности узла в течение длительного времени в случае сбоя выселения и т. д. и совместимо с сериями Mellanox CX, Intel X7/E8 и другими интеллектуальными сетевыми картами. Эти обновления были отправлены в проект sriov-network-operator сообщества Kube-OVN и будут работать «из коробки».

03: Общее решение Kube-OVN+SR-IOV для реализации сосуществования сети RDMA и стандартной сети Kubernetes.

В реальных производственных средах SR-IOV может обеспечить сеть RDMA для связи между модулями. Однако, поскольку технология SR-IOV обходит стек сетевых протоколов хоста, базовые возможности, такие как собственный сервис Kubernetes, использовать нельзя. Мы предоставляем как сеть RDMA, так и стандартную сеть K8S с помощью решения Kube-OVN+SR-IOV. Выполняя вышеуказанные функции, мы также можем достичь других возможностей, таких как многопользовательская крупномасштабная сеть, обеспечивающая более сильную изоляцию и безопасность данных клиентов. Общий план следующий:

В контейнере сеть RDMA и стандартная сеть Kubernetes используют независимые сетевые карты для реализации выделенных карт, обеспечивая полную реализацию возможностей сети RDMA. В то же время, используя Kube-OVN в качестве глобального IPAM (управление IP-адресами), управление IP-адресами контейнеров упрощается и достигается унифицированное планирование, выделение и освобождение IP-адресов, тем самым значительно повышая эффективность управления и повышая удобство обслуживания. контейнерная среда.

Это решение обеспечивает ключевую техническую поддержку для создания высокооптимизированной вычислительной среды искусственного интеллекта, способствует ее применению в крупномасштабной обработке данных и распределенных вычислениях, а также помогает ускорить разработку технологий искусственного интеллекта, чтобы удовлетворить растущий спрос на вычисления, обеспечивая надежную сеть. решения.

Справочные ссылки:

https://github.com/kubeovn/kube-ovn

https://github.com/kubeovn/SR-IOV-network-operator

boy illustration
Учебное пособие по Jetpack Compose для начинающих, базовые элементы управления и макет
boy illustration
Код js веб-страницы, фон частицы, код спецэффектов
boy illustration
【новый! Суперподробное】Полное руководство по свойствам компонентов Figma.
boy illustration
🎉Обязательно к прочтению новичкам: полное руководство по написанию мини-программ WeChat с использованием программного обеспечения Cursor.
boy illustration
[Забавный проект Docker] VoceChat — еще одно приложение для мгновенного чата (IM)! Может быть встроен в любую веб-страницу!
boy illustration
Как реализовать переход по странице в HTML (html переходит на указанную страницу)
boy illustration
Как решить проблему зависания и низкой скорости при установке зависимостей с помощью npm. Существуют ли доступные источники npm, которые могут решить эту проблему?
boy illustration
Серия From Zero to Fun: Uni-App WeChat Payment Practice WeChat авторизует вход в систему и украшает страницу заказа, создает интерфейс заказа и инициирует запрос заказа
boy illustration
Серия uni-app: uni.navigateЧтобы передать скачок значения
boy illustration
Апплет WeChat настраивает верхнюю панель навигации и адаптируется к различным моделям.
boy illustration
JS-время конвертации
boy illustration
Обеспечьте бесперебойную работу ChromeDriver 125: советы по решению проблемы chromedriver.exe не найдены
boy illustration
Поле комментария, щелчок мышью, специальные эффекты, js-код
boy illustration
Объект массива перемещения объекта JS
boy illustration
Как открыть разрешение на позиционирование апплета WeChat_Как использовать WeChat для определения местонахождения друзей
boy illustration
Я даю вам два набора из 18 простых в использовании фонов холста Power BI, так что вам больше не придется возиться с цветами!
boy illustration
Получить текущее время в js_Как динамически отображать дату и время в js
boy illustration
Вам необходимо изучить сочетания клавиш vsCode для форматирования и организации кода, чтобы вам больше не приходилось настраивать формат вручную.
boy illustration
У ChatGPT большое обновление. Всего за 45 минут пресс-конференция показывает, что OpenAI сделал еще один шаг вперед.
boy illustration
Copilot облачной разработки — упрощение разработки
boy illustration
Микросборка xChatGPT с низким кодом, создание апплета чат-бота с искусственным интеллектом за пять шагов
boy illustration
CUDA Out of Memory: идеальное решение проблемы нехватки памяти CUDA
boy illustration
Анализ кластеризации отдельных ячеек, который должен освоить каждый&MarkerгенетическийВизуализация
boy illustration
vLLM: мощный инструмент для ускорения вывода ИИ
boy illustration
CodeGeeX: мощный инструмент генерации кода искусственного интеллекта, который можно использовать бесплатно в дополнение к второму пилоту.
boy illustration
Машинное обучение Реальный бой LightGBM + настройка параметров случайного поиска: точность 96,67%
boy illustration
Бесшовная интеграция, мгновенный интеллект [1]: платформа больших моделей Dify-LLM, интеграция без кодирования и встраивание в сторонние системы, более 42 тысяч звезд, чтобы стать свидетелями эксклюзивных интеллектуальных решений.
boy illustration
LM Studio для создания локальных больших моделей
boy illustration
Как определить количество слоев и нейронов скрытых слоев нейронной сети?
boy illustration
[Отслеживание целей] Подробное объяснение ByteTrack и детали кода