可以将多少个虚拟接口添加到lxc提供的默认lxcbr0桥接器中。

时间:2015-09-10 07:48:59

标签: linux networking lxc

我已经开始在我的主机上制作许多lxc容器了。因此,默认情况下,lxc提供默认桥接lxcbr0。可以使用lxcbr0实例化多少个虚拟接口。我开始使用2000个容器,但是在1024个容器后我卡住了。

错误是:

lxc-start: conf.c: instantiate_veth: 2978 failed to attach 'vethO7X5DJ' to          
the bridge 'lxcbr0': Exchange full
lxc-start: conf.c: lxc_create_network: 3261 failed to create netdev
lxc-start: start.c: lxc_spawn: 826 failed to create the network
lxc-start: start.c: __lxc_start: 1080 failed to spawn 'container_1024'
lxc-start: lxc_start.c: main: 342 The container failed to start.

2 个答案:

答案 0 :(得分:1)

显然是linux bridge ports limit,即1024.

您可能需要使用一些自定义网络(例如,多个网桥,因为网桥没有硬限制),或者可能是http://openvswitch.org/或其他东西..

答案 1 :(得分:1)

再创建一个桥接lxcbr1,然后使用veth接口映射lxcbr0和lxcbr1,如

 $ ip link add veth0 type veth peer name veth1
 $ brctl addif lxcbr0 veth0
 $ brctl addif lxcbr1 veth1
 $ ifconfig veth0 up
 $ ifconfig veth1 up

我们所做的是,

1)我们按名称veth0和veth1创建一个队列;所以通过veth0的任何数据包都会到达veth1,反之亦然;

2)然后我们将vethX的两端添加到lxcbr< 0-1>这样所有数据包都将进入两个网桥以及连接到这个网桥的所有接口;