绑定多块网卡:负载均衡
1、绑定多块网卡目的:
一般来讲,生产环境必须提供 7×24 小时的网络传输服务。借助于网卡绑定技术,不仅 可以提高网络传输速度,更重要的是,还可以确保在其中一块网卡出现故障时,依然可以正 常提供网络服务。假设我们对两块网卡实施了绑定技术,这样在正常工作中它们会共同传输 数据,使得网络传输的速度变得更快;而且即使有一块网卡突然出现了故障,另外一块网卡 便会立即自动顶替上去,保证数据传输不会中断。
2、详细步骤(可套用模板):
2.1第一步:
在虚拟机系统(或者真机)中再添加一块网卡设备,请确保两块网卡都处在同一个网络连接中(即网卡模式相同),处于相同模式的网卡设备才可以进行网卡 绑定,否则这两块网卡无法互相传送数据。
2.2第二步:
使用 Vim 文本编辑器来配置网卡设备的绑定参数。网卡绑定的理论知识类似于前面学习的 RAID 硬盘组,我们需要对参与绑定的网卡设备逐个进行“初始设置”。需要注意 的是,这些原本独立的网卡设备此时需要被配置成为一块“从属”网卡,服务于“主”网卡, 不应该再有自己的 IP 地址等信息。在进行了初始设置之后,它们就可以支持网卡绑定。
[root@linuxprobe ~]# vim /etc/sysconfig/network-scripts/ifcfg-eno16777736 #eno16777736为网卡名称,具体取决于实际真机情况。
TYPE=Ethernet #设置网络类型
BOOTPROTO=none
ONBOOT=yes #此处为是否开启网卡,一定要写yes
USERCTL=no
DEVICE=eno16777736 #网卡名称
MASTER=bond0 #主网卡名称
SLAVE=yes #是否为从属网卡
[root@linuxprobe ~]# vim /etc/sysconfig/network-scripts/ifcfg-eno33554968 #eno33554968为网卡名称,具体取决于实际真机情况。
TYPE=Ethernet
BOOTPROTO=none
ONBOOT=yes
USERCTL=no
DEVICE=eno33554968
MASTER=bond0
SLAVE=yes
2.3第三步:
还需要将绑定后的设备命名为 bond0 并把 IP 地址等信息填写进去,这样当用户访问相应 服务的时候,实际上就是由这两块网卡设备在共同提供服务。
[root@linuxprobe ~]# vim /etc/sysconfig/network-scripts/ifcfg-bond0 #编辑主网卡信息
TYPE=Ethernet
BOOTPROTO=none
ONBOOT=yes
USERCTL=no
DEVICE=bond0
IPADDR=192.168.10.10 #主网卡IP地址
PREFIX=24 #子网掩码,也可以写成NETMASK=255.255.255.0
DNS=192.168.10.1
NM_CONTROLLED=no
第四步:
让 Linux内核支持网卡绑定驱动。常见的网卡绑定驱动有三种模式—mode0、mode1和 mode6。
➢ mode0(平衡负载模式):平时两块网卡均工作,且自动备援,但需要在与服务器本地 网卡相连的交换机设备上进行端口聚合来支持绑定技术。
➢ mode1(自动备援模式):平时只有一块网卡工作,在它故障后自动替换为另外的网卡。
➢ mode6(平衡负载模式):平时两块网卡均工作,且自动备援,无须交换机设备提供辅 助支持。
案例:下面使用 Vim 文本编辑器创建一个用于网卡绑定的驱动文件,使得绑定后的 bond0 网卡 设备能够支持绑定技术(bonding);同时定义网卡以 mode6 模式进行绑定,且出现故障时自 动切换的时间为 100 毫秒。
[root@linuxprobe ~]# vim /etc/modprobe.d/bond.conf
alias bond0 bonding
options bond0 miimon=100 mode=6
第五步:
重启网络服务后网卡绑定操作即可成功。正常情况下只有 bond0 网卡设备才会有 IP 地址等信息:
[root@linuxprobe ~]# systemctl restart network
[root@linuxprobe ~]# ifconfig
3、基于本实验的测试:
由于本次实验中网卡的驱动模式为mode6,所以正常情况下,将其中一块网卡进行破坏,仍然不影响其网络通信,只有几秒的收敛时间就会切换到另一块网卡,再进行正常工作。
【注意】在虚拟机中做此次实验可能会失败,进行多次重新实验可能会成功,且虚拟机会提示MAC地址冲突的问题。