pve(Proxmox)配置链路聚合,增加带宽提高可用性,实现负载均衡
最近发现我pve(Proxmox)小主机上主要的流量都集中在一个网卡上,如果哪一天流量大了很容易导致网络瓶颈,反正小主机上有两个网口,干脆做个链路聚合,增加带宽提高可用性,实现负载均衡。
链路聚合是啥就不用多说了,在balance-rr(bond0)下可以做到接近1+1=2的效果,例如我这两个2.5g聚合,最大可以跑到5g速率,当然我做链路聚合不是为了速度,而是为了负载均衡,平衡网卡流量,同时也有一定的冗余能力。做聚合后因为两个网卡“共享”一个ip,这样也方便管理以及使用。至于pve是啥,Proxmox Virtual Environment俗称pve,一个虚拟化管理平台,和esxi一样。不过我之前谷歌的时候发现几乎没有此类教程,不知道是太简单了没人写还是没人有链路聚合的需求?反正没人写我就顺手写一篇........
一、pve删除原来网络配置
要做聚合,第一步要先删除原来的网络配置,进入pve删除原来“vmbr0”等等配置,删到只剩下网络设备(如下图所示),但是不要应用配置,切记,不要应用。
二、pve配置链路聚合
删掉原本配置后点击左上角创建-linux bond,名称就填“bond0”,从属填入网卡名称,也就是刚刚剩下的两个网络设备,中间用空格间隔开来。例如我这里网卡分别是enp1s0和enp3s0,从属就填入“enp1s0 enp3s0”。
模式的话我这里交换机支持静态链路聚合以及lacp,(但家庭网络下不要碰lacp,会变的不幸)。我这里就选择了balance-rr(bond0)模式,然后点击创建。不同模式区别如下图所示,图我是直接从威联通的帮助文档里面截图来的.....
创建好bond后依然不要应用,还需要建立一个网桥,点击创建-linux bridge,名称这里填“vmbr0”,当然和我图中的vmbr1也可以,没区别,桥接端口填刚刚建立的“bond0”,如果有vlan需求也可以勾上vlan感知。
然后在这个网桥下填入pve的ipv4地址以及网关,例如我pve的ip是“.31.9”,子网掩码是“255.255.255.0”,则ipv4/cidr应当填入“.31.9/24”,这里“/24”就表示子网掩码,如果这部分不熟悉的话建议百度。网关就不用多说了,网关ip是啥就填啥。然后创建。
创建完成后就可以应用了,等网桥创建好后才能应用配置,不然pve每ip地址就进不去pve管理界面了。
最后放个我网络的配置图,仅供参考。
(可选)三、配置交换机链路聚合
我pve网络那里配置的是“balance-rr”模式,还需要在交换机配置静态链路聚合,这个就简单了,进入到交换机后台界面选择pve所在的端口配置上就行,部分模式是其不用在交换机配置,此步骤忽略即可。
四、测试
我在pve下的一个lxc软路由(网卡为桥接模式)测试了下,balance-rr模式下单个设备能跑满接近5g的速度,也算是还行,不过我也不在乎速度,看重的是冗余和负载均衡。当然iperf3也是这个速度,都一样我就不放截图了。
balance-rr还具有容错能力,当拔掉一个网线后也不会导致整个pve断连,这个我已经试过了,不信的也可以自己试试。
五、其他事项
1.不是所有链路聚合模式都可以负载均衡以及带宽叠加,具体看文中模式说明以及自测。
2.如果网卡已经直通给虚拟机了,则不能用来链路聚合。
3.部分链路聚合模式需要交换机支持,请注意自己的交换机。
4.一定要在建立网桥后再应用配置,不然会导致无法访问pve,别问为什么,不信的可以自己试试。
5.配置好链路聚合后最好重启整个pve小主机,不然可能部分虚拟机无法上网。如果网桥有更改名称等信息,记得虚拟机需要重新选择网桥,不然虚拟机也是无法上网的。
6.确认无误后就可以正常使用,其网桥以及vlan功能都和之前一样用。