Совместное использование файлов через Infiniband на FreeBSD
У меня есть пара серверов, которые я хотел бы подключить друг к другу напрямую, а не через коммутатор, который используется остальной частью сети. Я рассчитываю извлечь выгоду из более низкой задержки и более высокой пропускной способности, обеспечиваемой прямым соединением (включая гораздо большие MTU).
В настоящее время обе машины работают под управлением FreeBSD-11.2, и у каждой есть свой собственный пул ZFS с несколькими файловыми системами. Быстрый перекрестный доступ к этим файловым системам является одной из основных задач.
Для этого я купил пару использованных карт ( Mellanox IBM 46M2201 Dual Port ConnectX 4X) и у меня возникли следующие вопросы:
- Какие у меня варианты подключения? Основная цель - обмен данными - является ли NFS моим единственным выбором, или во FreeBSD есть что-то специфичное для Infiniband?
- Если это NFS, должен ли он быть через IP, или есть какой-то более "интимный" протокол, специфичный для Infiniband?
- Если это NFS через IP, я должен выбрать UDP или TCP? Любые другие параметры настройки, чтобы выжать больше всего из прямого подключения?
- Какой тип кабеля мне нужен для прямого подключения? К моему удивлению, в результате поиска "Infiniband Cable" появилось множество продуктов с разными разъемами.
Заранее большое спасибо за любые идеи. Если есть онлайновый документ с ответами (на некоторые из этих вопросов), я с удовольствием воспользуюсь ссылкой - все, что я смог найти, похоже на продавца...
(Почему этот вопрос о подключении серверов считается "не по теме" на Serverfault?)
1 ответ
У меня нет ответов на 1-3, только некоторая дополнительная информация о приложениях Infiniband(IB), которая может помочь вам найти ответ. Я могу ответить на 4, хотя.
1) Какие у меня есть варианты подключения? Основная цель - обмен данными - является ли NFS моим единственным выбором, или во FreeBSD есть что-то специфичное для Infiniband?
2) Если это NFS, должен ли он быть через IP, или есть какой-то более "интимный" протокол, специфичный для Infiniband?
Ключевое слово, которое нужно искать, это, вероятно, NFS поверх RDMA, но быстрый поиск показывает, что он может быть еще не завершен для FreeBSD. Вы также можете посмотреть SRP или iSER, но я не нашел ссылок ни на какие приложения, использующие эти протоколы IB.
3) Если это NFS через IP, я должен выбрать UDP или TCP? Любые другие параметры настройки, чтобы выжать больше всего из прямого подключения?
TCP. Согласно FreeBSD IB Wiki, как часть конфигурации IB, вы устанавливаете режим подключения, который похож на использование TCP. По крайней мере, в мире Linux, когда вы используете подключенный режим, вы должны использовать только NFS через TCP, а не UDP. NFS поверх UDP следует выполнять только при использовании режима дейтаграмм, и ни один из них не рекомендуется.
4) Какой тип кабеля мне нужен для прямого подключения? К моему удивлению, в результате поиска "Infiniband Cable" появилось множество продуктов с разными разъемами.
Вам нужен кабель "QDR", который сокращенно от "Quad Data Rate" или 40 Гбит / с. Карты ConnectX-3 поддерживают FDR, что означает "Четырнадцать скоростей передачи данных" или 56 Гбит / с (14 Гбит / с *4 линии). Любой кабель должен нормально работать для вашей карты.
Вы можете купить фирменные кабели Mellanox, и в этом случае вы будете знать, что они будут работать, или вы можете получить не бренд. Мне нравятся кабели марки 3М. Это плоский кабель, который поддерживает очень острый радиус изгиба и позволяет укладывать несколько кабелей в очень маленьком пространстве без каких-либо перекрестных помех. Используемые кабели Mellanox QDR должны быть действительно дешевыми на eBay. Я никогда не покупал б / у, но если вы это сделаете, вы ДОЛЖНЫ получить кабель, который был протестирован - это трудно исправить, если у вас нет работающей системы для сравнения.
Существует два типа кабелей - пассивные (медные) или активные (оптоволоконные). Волоконно-оптические кабели постоянно подключены к разъемам QSFP, поэтому вам придется получать их определенной длины. Медь имеет максимальную длину 3 метра, а может и до 5 метров - больше, и вам придется использовать оптоволоконные кабели. Не приобретайте оптоволоконный кабель, пока все не будет на 100% работать на меди. Я видел случаи, когда медь работает нормально, а волокно - нет, из-за странного режима отказа оборудования. Исключите эту возможность, пока у вас не будет опыта и запасных частей для устранения неполадок.
А теперь несколько других советов, которые вы не просили, но могли бы помочь. Во-первых, убедитесь, что вы используете opensm в одной из систем. Думайте об этом как о сервере dhcp; без этого две системы будут физически связываться, но не передавать никаких данных.
Во-вторых, некоторые карты Mellanox будут работать в режиме IB или Ethernet. Обычно это серии карт VPI. Я не уверен, был ли это вариант на ConnectX-2 или ваши карты поддерживают его. Но если они это сделают, может быть проще, чтобы эти карты работали как 40GBE вместо QDR IB и имели хорошую производительность NFS. Из моего опыта работы с Linux мы видим, что IPoIB имеет около 20-30% производительности в качестве скорости передачи данных. Вы получите скорость передачи по протоколам IB, таким как RDMA, или переключитесь в режим Ethernet.