我已经开始在我的主机上制作许多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.
答案 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>这样所有数据包都将进入两个网桥以及连接到这个网桥的所有接口;