docker 个容器可以连接到 SRIOV 虚拟功能吗?
Can docker containers be connected to SRIOV virtual functions?
如果能够使用现有的支持 SR-IOV 的 NIC,那就太棒了。我想了解是否可以将 docker 容器附加到虚拟功能,以便它们通过 NIC 硬件桥(而不是虚拟 docker0 桥)进行通信。
更具体地说,考虑这种情况:
容器 A 附加到 VF#1
容器 B 附加到 VF#2
A 和 B 链接在一起,当它们交换数据时,应该通过 NIC 上的硬件桥接(而不是 docker0)。
docker 是否原生支持以上内容?
如果没有,管道工程可以帮忙吗? (我听说管道可以做很多神奇的事情)
例子会很有帮助。
好吧,我想在管道脚本中稍加修改就可以让我们将 VF 附加到容器。以这种方式设置的容器能够相互 ping 通,而无需创建 macvlan 子接口或软件桥接。这表明适配器中的硬件桥正在为它们进行 L2 切换。
管道的变化基本上是这样的:
[ "$IFTYPE" = phys ] && {
[ "$VLAN" ] && {
[ ! -d "/sys/class/net/${IFNAME}.${VLAN}" ] && {
ip link add link "$IFNAME" name "$IFNAME.$VLAN" mtu "$MTU" type vlan id "$VLAN"
}
ip link set "$IFNAME" up
IFNAME=$IFNAME.$VLAN
}
# Let's not create the macvlan subinterface
# GUEST_IFNAME=ph$NSPID$CONTAINER_IFNAME
# ip link add link "$IFNAME" dev "$GUEST_IFNAME" mtu "$MTU" type macvlan mode bridge
GUEST_IFNAME=$IFNAME
ip link set "$IFNAME" up
}
ip link set "$GUEST_IFNAME" netns "$NSPID"
ip netns exec "$NSPID" ip link set "$GUEST_IFNAME" name "$CONTAINER_IFNAME"
---
当然,一种更简洁的方法是向脚本添加一个新参数(“--direct-attach”或其他东西)以区别对待指定接口
如果能够使用现有的支持 SR-IOV 的 NIC,那就太棒了。我想了解是否可以将 docker 容器附加到虚拟功能,以便它们通过 NIC 硬件桥(而不是虚拟 docker0 桥)进行通信。
更具体地说,考虑这种情况:
容器 A 附加到 VF#1
容器 B 附加到 VF#2
A 和 B 链接在一起,当它们交换数据时,应该通过 NIC 上的硬件桥接(而不是 docker0)。
docker 是否原生支持以上内容?
如果没有,管道工程可以帮忙吗? (我听说管道可以做很多神奇的事情)
例子会很有帮助。
好吧,我想在管道脚本中稍加修改就可以让我们将 VF 附加到容器。以这种方式设置的容器能够相互 ping 通,而无需创建 macvlan 子接口或软件桥接。这表明适配器中的硬件桥正在为它们进行 L2 切换。
管道的变化基本上是这样的:
[ "$IFTYPE" = phys ] && {
[ "$VLAN" ] && {
[ ! -d "/sys/class/net/${IFNAME}.${VLAN}" ] && {
ip link add link "$IFNAME" name "$IFNAME.$VLAN" mtu "$MTU" type vlan id "$VLAN"
}
ip link set "$IFNAME" up
IFNAME=$IFNAME.$VLAN
}
# Let's not create the macvlan subinterface
# GUEST_IFNAME=ph$NSPID$CONTAINER_IFNAME
# ip link add link "$IFNAME" dev "$GUEST_IFNAME" mtu "$MTU" type macvlan mode bridge
GUEST_IFNAME=$IFNAME
ip link set "$IFNAME" up
}
ip link set "$GUEST_IFNAME" netns "$NSPID"
ip netns exec "$NSPID" ip link set "$GUEST_IFNAME" name "$CONTAINER_IFNAME"
---
当然,一种更简洁的方法是向脚本添加一个新参数(“--direct-attach”或其他东西)以区别对待指定接口