Linux网卡Bond实现高可用性(linux网卡做bond)

技术篇

Linux网卡 Bond 可以简单的理解为是一种计算机网络技术,通过将多块物理网卡组合在一起实现提升网络弹性与高可用性的作用,简称为网络冗余链接。如图1所示,一台服务器部署了三块网卡,将它们进行逻辑聚合,创建一个共用IP地址的Bond接口,在Linux系统上表现为eth0。

![linux网络Bond](https://upload-images.jianshu.io/upload_images/12014150-1f8caca3be91f397.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

图1 Linux网络Bond

把多块网卡按照一定模式进行聚合,可以提高服务器的网络处理能力和高可用性,从而实现对抗网络中断、减少服务器的停机时间。另外,网络Bond的构成组件可以是一台服务器的多块网卡,也可以是多台服务器的多块网卡,从而实现多服务器的网络冗余高可用。

Linux操作系统支持四种基本网络聚合模式,如表1所示:

表1 Linux操作系统支持四种网络聚合模式

|类型|模式|

|—|—|

|基于单播|mode 0: 轮询方式|

|基于多播|mode 1: Active-backup |

|基于组播|mode 2: XOR (exclusive or) |

|混合模式|mode 3: broadcast |

常见的网络聚合方式有Active-Backup(mode 1)、Balance-XOR(mode 2)、Broadcast(mode 3)和802.3ad(mode 4)等。mode 0 模式用于两个bond接口之间进行负载均衡及类似的应用,而其他模式通常在系统内部使用,实现抗错功能。

下面是一个简单的网络Bond配置例子:

# cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
TYPE=Ethernet
BOOTPROTO=none
ONBOOT=yes
SLAVE=yes
MASTER=bond0
USERCTL=no

# cat /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth1
TYPE=Ethernet
BOOTPROTO=none
ONBOOT=yes
SLAVE=yes
MASTER=bond0
USERCTL=no
# cat /etc/sysconfig/network-scripts/ifcfg-bond0
DEVICE=bond0
TYPE=Bond
BONDING_MASTER=yes
IPV6INIT=no
BONDING_OPTS="mode=2 miimon=100"
ONBOOT=yes
BOOTPROTO=static
IPADDR=10.0.0.100
NETMASK=255.255.255.0

结语

通过实施Linux网络Bond技术,人们可以实现服务器的网络冗余,增强服务器的弹性与高可用性,从而为用户提供可靠的网络服务。


数据运维技术 » Linux网卡Bond实现高可用性(linux网卡做bond)