<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
	<channel>
		<title>Аспро: ЛайтШоп [тема: [TUTORIAL] Proxmox 8 Mellanox Infiniband и SR-IOV]</title>
		<link>http://proxmox.su</link>
		<description>Новое в теме [TUTORIAL] Proxmox 8 Mellanox Infiniband и SR-IOV форума Proxmox Виртуальная Среда на сайте Аспро: ЛайтШоп [proxmox.su]</description>
		<language>ru</language>
		<docs>http://backend.userland.com/rss2</docs>
		<pubDate>Sat, 04 Apr 2026 10:51:25 +0300</pubDate>
		<item>
			<title>[TUTORIAL] Proxmox 8 Mellanox Infiniband и SR-IOV</title>
			<description><![CDATA[<b><a href="http://proxmox.su/forum/messages/forum63/message371589/82935-tutorial_-proxmox-8-mellanox-infiniband-i-sr_iov">[TUTORIAL] Proxmox 8 Mellanox Infiniband и SR-IOV</a></b> <i>Proxmox Виртуальная Среда</i> в форуме <a href="http://proxmox.su/forum/forum63/">Proxmox Виртуальная Среда</a>. <br />
			Привет, у меня проблемы с запуском ROCE, использую карты Cx-4 без коммутаторов. PING работает нормально, но RPING или любые операции на уровне RDMA не работают, выдает ошибку сегментации. root@host02gen10:~# rdma_client: start Segmentation fault root@host02gen10:~# root@host02gen10:~# rdma link show link rocep134s0f0/1 state ACTIVE physical_state LINK_UP netdev ens5f0np0 link rocep134s0f1/1 state ACTIVE physical_state LINK_UP netdev ens5f1np1 link rocep134s0f0v4/1 state DOWN physical_state DISABLED netdev ens5f0v4 link rocep134s0f1v4/1 state DOWN physical_state DISABLED netdev ens5f1v4 root@host02gen10:~# Я настроил по 5 VFs на каждый порт и создал похожий сервис для автозапуска. Одно, что заметил в ВМ — node_guid не заполняется, пробовал прописывать, как выше, но всё равно не появляется. Буду благодарен за любые советы. Спасибо! <br />
			<i>11.06.2025 16:31:00, the4amfriend.</i>]]></description>
			<link>http://proxmox.su/forum/messages/forum63/message371589/82935-tutorial_-proxmox-8-mellanox-infiniband-i-sr_iov</link>
			<guid>http://proxmox.su/forum/messages/forum63/message371589/82935-tutorial_-proxmox-8-mellanox-infiniband-i-sr_iov</guid>
			<pubDate>Wed, 11 Jun 2025 16:31:00 +0300</pubDate>
			<category>Proxmox Виртуальная Среда</category>
		</item>
		<item>
			<title>[TUTORIAL] Proxmox 8 Mellanox Infiniband и SR-IOV</title>
			<description><![CDATA[<b><a href="http://proxmox.su/forum/messages/forum63/message371588/82935-tutorial_-proxmox-8-mellanox-infiniband-i-sr_iov">[TUTORIAL] Proxmox 8 Mellanox Infiniband и SR-IOV</a></b> <i>Proxmox Виртуальная Среда</i> в форуме <a href="http://proxmox.su/forum/forum63/">Proxmox Виртуальная Среда</a>. <br />
			Для тех, кому интересно, вот пример скрипта, который делает всё сразу. Я сделал его более гибким, чтобы вы могли задать нужное количество VFs.<br /><br />1. Отредактируйте переменную IB_DEVICE_NUM_VFS="8", просто замените число на желаемое.<br />2. Запустите скрипт.<br />3. Перезагрузитесь.<br />4. Запустите скрипт снова.<br />5. Всё, готово.<br /><br />Причина, почему скрипт нужно запускать дважды — необходимость применения VFs карты Mellanox после перезагрузки перед запуском второй части скрипта. Наслаждайтесь.<br /><br />Bash: &nbsp;<br />#!/bin/bash &nbsp;<br /># &nbsp;<br /># Простой скрипт для настройки VFS на сетевой карте Mellanox InfiniBand &nbsp;<br /><br /># Переменная для настройки &nbsp;<br /># Сколько VFS вы хотите, просто измените число. &nbsp;<br />IB_DEVICE_NUM_VFS="8" &nbsp;<br /><br />################ &nbsp;<br /># Скрипт ниже # &nbsp;<br />################ &nbsp;<br /><br /># Установка пакетов IB &nbsp;<br />install_ib_packages() { &nbsp;<br /> &nbsp;apt install infiniband-diags ibutils rdma-core rdmacm-utils mstflint &nbsp;<br />} &nbsp;<br /><br /># Включение SRIOV и настройка VFS в прошивке &nbsp;<br />set_srvio_vfs() { &nbsp;<br /> &nbsp;# PCI-адрес IB устройства &nbsp;<br /> &nbsp;IB_DEVICE_PCI=$(lspci | grep -i mellanox | grep -iv virtual | awk {'print $1'}) &nbsp;<br /><br /> &nbsp;if mstconfig -d $IB_DEVICE_PCI q SRIOV_EN | grep -i true && [[ $(mstconfig -d $IB_DEVICE_PCI q NUM_OF_VFS | grep NUM_OF_VFS | awk {'print $2'}) == $IB_DEVICE_NUM_VFS ]];  <br /> &nbsp;then &nbsp;<br /> &nbsp; &nbsp;continue &nbsp;<br /> &nbsp;else &nbsp;<br /> &nbsp; &nbsp;mstconfig -d $IB_DEVICE_PCI set SRIOV_EN=1 NUM_OF_VFS=$IB_DEVICE_NUM_VFS &nbsp;<br /> &nbsp; &nbsp;echo "Нужно перезагрузиться, затем запустить скрипт снова" &nbsp;<br /> &nbsp; &nbsp;exit &nbsp;<br /> &nbsp;fi &nbsp;<br />} &nbsp;<br /><br /># Создание скрипта-сервиса &nbsp;<br />create_service_script() { &nbsp;<br /> &nbsp;# ID IB устройства &nbsp;<br /> &nbsp;IB_DEVICE_ID=$(ibstat --list_of_cas | head -n 1) &nbsp;<br /><br /> &nbsp;# Создание сервиса &nbsp;<br /> &nbsp;cat &lt;&lt;EOF &gt; /etc/systemd/system/mellanox_initvf.service &nbsp;<br />[Unit]  <br />After=network.target &nbsp;<br /> &nbsp;<br />[Service]  <br />Type=oneshot &nbsp;<br /># измените, если у вас другое оборудование: &nbsp;<br />ExecStart=/bin/bash -c "/usr/bin/echo $IB_DEVICE_NUM_VFS &gt; /sys/class/infiniband/$IB_DEVICE_ID/device/sriov_numvfs" &nbsp;<br />ExecStart=/usr/local/bin/initIbGuids.sh &nbsp;<br />StandardOutput=journal &nbsp;<br />TimeoutStartSec=60 &nbsp;<br />RestartSec=60 &nbsp;<br /> &nbsp;<br />[Install]  <br />WantedBy=multi-user.target &nbsp;<br />EOF &nbsp;<br />} &nbsp;<br /><br /># Включение сервиса &nbsp;<br />enable_service_script() { &nbsp;<br /> &nbsp;systemctl enable mellanox_initvf.service &nbsp;<br />} &nbsp;<br /><br /># Создание скрипта инициализации IP и GUID &nbsp;<br />create_ip_link_script() { &nbsp;<br /> &nbsp;# Создание init-скрипта &nbsp;<br /> &nbsp;cat &lt;&lt;'EOF' &gt; /usr/local/bin/initIbGuids.sh &nbsp;<br />#!/bin/bash &nbsp;<br /><br />first_dev=$(ibstat --list_of_cas | head -n 1) &nbsp;<br /><br />node_guid=$(ibstat ${first_dev} | grep "Node GUID" | cut -d ':' -f 2 | xargs | cut -d 'x' -f 2) &nbsp;<br />port_guid=$(ibstat ${first_dev} | grep "Port GUID" | cut -d ':' -f 2 | xargs | cut -d 'x' -f 2) &nbsp;<br /><br />echo "first dev: $first_dev" &nbsp;<br />echo "node guid: $node_guid" &nbsp;<br />echo "port_guid: $port_guid" &nbsp;<br /><br />if ip link show $first_dev &&gt; /dev/null ; then &nbsp;<br /> &nbsp;for vf in $(ip link show $first_dev | grep vf | awk {'print $2'}); do &nbsp;<br /> &nbsp; &nbsp;vf_guid=$(echo "${port_guid::-5}cafe$((vf+1))" | sed 's/..\B/&:/g') &nbsp;<br /> &nbsp; &nbsp;echo "vf_guid для vf $vf: $vf_guid" &nbsp;<br /> &nbsp; &nbsp;ip link set dev ${first_dev} vf $vf port_guid ${vf_guid} &nbsp;<br /> &nbsp; &nbsp;ip link set dev ${first_dev} vf $vf node_guid ${vf_guid} &nbsp;<br /> &nbsp; &nbsp;ip link set dev ${first_dev} vf $vf state auto &nbsp;<br /> &nbsp;done &nbsp;<br />fi &nbsp;<br />EOF &nbsp;<br /><br /> &nbsp;# Изменяем права &nbsp;<br /> &nbsp;chmod 777 /usr/local/bin/initIbGuids.sh &nbsp;<br />} &nbsp;<br /><br /># Инициализация интерфейсов &nbsp;<br />initialize_interfaces() { &nbsp;<br /> &nbsp;/usr/local/bin/initIbGuids.sh &nbsp;<br />} &nbsp;<br /><br />################# &nbsp;<br /># Запуск функций # &nbsp;<br />################# &nbsp;<br />install_ib_packages &nbsp;<br />set_srvio_vfs &nbsp;<br />create_service_script &nbsp;<br />enable_service_script &nbsp;<br />create_ip_link_script &nbsp;<br />initialize_interfaces <br />
			<i>10.03.2025 19:16:00, Sphinks.</i>]]></description>
			<link>http://proxmox.su/forum/messages/forum63/message371588/82935-tutorial_-proxmox-8-mellanox-infiniband-i-sr_iov</link>
			<guid>http://proxmox.su/forum/messages/forum63/message371588/82935-tutorial_-proxmox-8-mellanox-infiniband-i-sr_iov</guid>
			<pubDate>Mon, 10 Mar 2025 19:16:00 +0300</pubDate>
			<category>Proxmox Виртуальная Среда</category>
		</item>
		<item>
			<title>[TUTORIAL] Proxmox 8 Mellanox Infiniband и SR-IOV</title>
			<description><![CDATA[<b><a href="http://proxmox.su/forum/messages/forum63/message371587/82935-tutorial_-proxmox-8-mellanox-infiniband-i-sr_iov">[TUTORIAL] Proxmox 8 Mellanox Infiniband и SR-IOV</a></b> <i>Proxmox Виртуальная Среда</i> в форуме <a href="http://proxmox.su/forum/forum63/">Proxmox Виртуальная Среда</a>. <br />
			Отмена, должно быть, опечатка, SRIOV_EN=1 — всё нормально..... <br />
			<i>28.05.2024 19:13:00, mahagen.</i>]]></description>
			<link>http://proxmox.su/forum/messages/forum63/message371587/82935-tutorial_-proxmox-8-mellanox-infiniband-i-sr_iov</link>
			<guid>http://proxmox.su/forum/messages/forum63/message371587/82935-tutorial_-proxmox-8-mellanox-infiniband-i-sr_iov</guid>
			<pubDate>Tue, 28 May 2024 19:13:00 +0300</pubDate>
			<category>Proxmox Виртуальная Среда</category>
		</item>
		<item>
			<title>[TUTORIAL] Proxmox 8 Mellanox Infiniband и SR-IOV</title>
			<description><![CDATA[<b><a href="http://proxmox.su/forum/messages/forum63/message371586/82935-tutorial_-proxmox-8-mellanox-infiniband-i-sr_iov">[TUTORIAL] Proxmox 8 Mellanox Infiniband и SR-IOV</a></b> <i>Proxmox Виртуальная Среда</i> в форуме <a href="http://proxmox.su/forum/forum63/">Proxmox Виртуальная Среда</a>. <br />
			Рад, что служба opensm работает, я не тестировал её раньше, так как у меня уже есть коммутатор, да и в интернете не мог найти подтверждения, работает она или нет. Проверил — всё работает: <img class="lazyload "  src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-src="/upload/forum/proxmox/68591-b66be9086ddc68bf9994afdf6a418f3f.jpg" alt="Пользователь добавил изображение" border="0" />. Я использую службу, а не запускаю её при поднятии интерфейса, потому что с таким способом были проблемы со стабильностью — примерно каждый четвертый перезапуск просто не срабатывал. А когда сделал её службой, всё всегда работает без сбоев. <br />
			<i>28.05.2024 05:57:00, jamesthetechie.</i>]]></description>
			<link>http://proxmox.su/forum/messages/forum63/message371586/82935-tutorial_-proxmox-8-mellanox-infiniband-i-sr_iov</link>
			<guid>http://proxmox.su/forum/messages/forum63/message371586/82935-tutorial_-proxmox-8-mellanox-infiniband-i-sr_iov</guid>
			<pubDate>Tue, 28 May 2024 05:57:00 +0300</pubDate>
			<category>Proxmox Виртуальная Среда</category>
		</item>
		<item>
			<title>[TUTORIAL] Proxmox 8 Mellanox Infiniband и SR-IOV</title>
			<description><![CDATA[<b><a href="http://proxmox.su/forum/messages/forum63/message371585/82935-tutorial_-proxmox-8-mellanox-infiniband-i-sr_iov">[TUTORIAL] Proxmox 8 Mellanox Infiniband и SR-IOV</a></b> <i>Proxmox Виртуальная Среда</i> в форуме <a href="http://proxmox.su/forum/forum63/">Proxmox Виртуальная Среда</a>. <br />
			Спасибо, у меня это работает с Cx6 200gbps, пара замечаний: &nbsp;<br />- Работает с opensm, сервис нужно лишь перезапустить. &nbsp;<br />- mstconfig -d &lt;bus id here&gt; set SRIOV_EN=1 NUM_OF_VFS=4 (SRIOV_EN=1 не принимается). &nbsp;<br /><br />Кстати, зачем ты создаёшь этот сервис, разве не хватило бы просто добавить echo в ibs4 up в interfaces? <br />
			<i>28.05.2024 05:18:00, mahagen.</i>]]></description>
			<link>http://proxmox.su/forum/messages/forum63/message371585/82935-tutorial_-proxmox-8-mellanox-infiniband-i-sr_iov</link>
			<guid>http://proxmox.su/forum/messages/forum63/message371585/82935-tutorial_-proxmox-8-mellanox-infiniband-i-sr_iov</guid>
			<pubDate>Tue, 28 May 2024 05:18:00 +0300</pubDate>
			<category>Proxmox Виртуальная Среда</category>
		</item>
		<item>
			<title>[TUTORIAL] Proxmox 8 Mellanox Infiniband и SR-IOV</title>
			<description><![CDATA[<b><a href="http://proxmox.su/forum/messages/forum63/message371584/82935-tutorial_-proxmox-8-mellanox-infiniband-i-sr_iov">[TUTORIAL] Proxmox 8 Mellanox Infiniband и SR-IOV</a></b> <i>Proxmox Виртуальная Среда</i> в форуме <a href="http://proxmox.su/forum/forum63/">Proxmox Виртуальная Среда</a>. <br />
			Вот как мне удалось заставить Proxmox работать с Infiniband и SR-IOV. В качестве железа использовался коммутатор Mellanox (sx6036) и сетевая карта Mellanox Cx-4 100Gbps EDR с двумя (или одним) портами. Убедитесь, что у вас стоит последняя версия прошивки. НАСКОЛЬКО МНЕ ИЗВЕСТНО, ЭТО НЕ РАБОТАЕТ С OPENSM И ДЛЯ SR-IOV НУЖЕН КОММУТАТОР MELLANOX. <br /><br />На вашем коммутаторе включите SM и виртуализацию, затем перезапустите службу SM, включив или выключив её, либо перезагрузив коммутатор:<br />- ib sm enable &nbsp;<br />- ib sm virt enable &nbsp;<br />- configuration write &nbsp;<br /><br />Когда это настроено, нужно включить IOMMU и активировать SR-IOV на железе. Этот процесс зависит от конкретного оборудования, поэтому он не рассматривается в этом руководстве. Конфигурацию IOMMU в Proxmox можно сделать, следуя инструкции: <noindex><a href="https://pve.proxmox.com/wiki/PCI(e)_Passthrough" target="_blank" rel="nofollow" >https://pve.proxmox.com/wiki/PCI(e)_Passthrough</a></noindex><br /><br />После этого установите следующие пакеты:<br />apt install -y infiniband-diags ibutils rdma-core rdmacm-utils mstflint<br /><br />Проверьте линк, узлы и запустите диагностику:<br />ibstat — ОБРАТИТЕ ВНИМАНИЕ НА НАЗВАНИЕ HCA &nbsp;<br />ibnodes &nbsp;<br />ibdiagnet &nbsp;<br /><br />Определяем шину карты Mellanox и делаем запрос:<br />lspci | grep -i mellanox &nbsp;<br />mstflint -d &lt;здесь bus id&gt;<br /><br />Включаем SR-IOV и 4 виртуальных функции (или сколько вам нужно):<br />mstconfig -d &lt;здесь bus id&gt; set SRIOV_EN=1 NUM_OF_VFS=4<br /><br />Дальше — спасибо Jose-d: &nbsp;<br />vim /etc/systemd/system/mellanox_initvf.service &nbsp;<br />Вставьте следующее, ОБЯЗАТЕЛЬНО ОБНОВИТЕ HCA:<br /><br />[Unit]  <br />After=network.target &nbsp;<br /><br />[Service]  <br />Type=oneshot &nbsp;<br /># примечание: меняйте под своё железо: &nbsp;<br />ExecStart=/bin/bash -c "/usr/bin/echo 4 &gt; /sys/class/infiniband/&lt;HCA ЗДЕСЬ&gt;/device/sriov_numvfs" &nbsp;<br />ExecStart=/usr/local/bin/initIbGuids.sh &nbsp;<br />StandardOutput=journal &nbsp;<br />TimeoutStartSec=60 &nbsp;<br />RestartSec=60 &nbsp;<br /><br />[Install]  <br />WantedBy=multi-user.target &nbsp;<br /><br />Теперь включаем сервис: &nbsp;<br />systemctl enable mellanox_initvf.service &nbsp;<br /><br />Создаём скрипт: &nbsp;<br />vim /usr/local/bin/initIbGuids.sh &nbsp;<br />Вставьте следующее:<br /><br />#!/bin/bash<br /><br />first_dev=$(ibstat --list_of_cas | head -n 1)<br /><br />node_guid=$(ibstat ${first_dev} | grep "Node GUID" | cut -d ':' -f 2 | xargs | cut -d 'x' -f 2) &nbsp;<br />port_guid=$(ibstat ${first_dev} | grep "Port GUID" | cut -d ':' -f 2 | xargs | cut -d 'x' -f 2)<br /><br />echo "first dev: $first_dev" &nbsp;<br />echo "node guid: $node_guid" &nbsp;<br />echo "port_guid: $port_guid"<br /><br />if ip link show $first_dev &&gt; /dev/null ; then &nbsp;<br /> &nbsp;for vf in {0..3}; do &nbsp;<br /> &nbsp; &nbsp;vf_guid=$(echo "${port_guid::-5}cafe$((vf+1))" | sed 's/..\B/&:/g') &nbsp;<br /> &nbsp; &nbsp;echo "vf_guid для vf $vf — $vf_guid" &nbsp;<br /> &nbsp; &nbsp;ip link set dev ${first_dev} vf $vf port_guid ${vf_guid} &nbsp;<br /> &nbsp; &nbsp;ip link set dev ${first_dev} vf $vf node_guid ${vf_guid} &nbsp;<br /> &nbsp; &nbsp;ip link set dev ${first_dev} vf $vf state auto &nbsp;<br /> &nbsp;done &nbsp;<br />fi &nbsp;<br /><br />Не забудьте выставить права для файла: &nbsp;<br />chmod 777 /usr/local/bin/initIbGuids.sh<br /><br />Теперь SR-IOV настроен и готов к подключению к виртуальной машине. &nbsp;<br /><br />Из ВМ мы видим полный линк на устройстве SR-IOV, и оно находится в активном состоянии. <br />
			<i>30.04.2024 22:00:00, jamesthetechie.</i>]]></description>
			<link>http://proxmox.su/forum/messages/forum63/message371584/82935-tutorial_-proxmox-8-mellanox-infiniband-i-sr_iov</link>
			<guid>http://proxmox.su/forum/messages/forum63/message371584/82935-tutorial_-proxmox-8-mellanox-infiniband-i-sr_iov</guid>
			<pubDate>Tue, 30 Apr 2024 22:00:00 +0300</pubDate>
			<category>Proxmox Виртуальная Среда</category>
		</item>
	</channel>
</rss>
