RHEL5上的NIC绑定配置
如果仔细完成,网卡绑定是增加可用带宽的有效方法。
在继续之前,我将告诉我们有关NIC绑定的一些基础知识。
必须考虑的一件事是:服务器和服务器所连接的交换机都必须配置为支持绑定。
否则,我们将看到交换机未发送任何数据包,或者说一半数据包丢失了。
在网络中,NIC卡的绑定也称为链路聚合。
链路聚合:链路聚合是一种计算机网络术语,用于描述多种组合(聚合)并行网络连接的方法,以提高吞吐量,超出单个连接所能承受的范围,并在链路之一发生故障时提供冗余。
让我告诉你一件事,今天可用的大多数交换机都与此技术兼容,所以请不要担心。
如果为802.3ad链路聚合配置了Linux,则还必须告知交换机有关此信息。
在思科世界中,这称为EtherChannel。
一旦交换机知道这两个端口实际上应该使用802.3ad,它将对发往我们所连接服务器的流量进行负载平衡。
802.3ad模式是IEEE标准,也称为LACP(链路聚合控制协议)。
它包括聚合的自动配置,因此只需要对交换机进行最少的配置
Linux允许使用称为绑定的特殊内核模块将多个网络接口绑定到单个通道/NIC中。
那么第一步要检查的是机器是否支持绑定?
内核中必须装有绑定模块。
可以通过以下方法进行检查。
[root@myvm1 ~]# lsmod | grep bonding
如果以上命令未返回任何内容,则说明该内核绑定模块未加载,因此我们需要通过以下命令加载该模块。
[root@myvm1 ~]# modprobe bonding [root@myvm1 ~]# lsmod | grep bonding bonding 80813 0 [root@myvm1 ~]#
现在让我们创建一个bond0(不用担心这只是一个中间名称)接口配置文件。
Red让企业linux或者Rhel将nic配置文件存储在以下位置。
/etc/sysconfig/network-scripts /。
[root@myvm1 ~]# vi /etc/sysconfig/network-scripts/ifcfg-bond0
现在在里面添加以下内容。
不要担心,我将解释所有这些内容的含义。
DEVICE=bond0 IPADDR=192.168.1.20 NETWORK=192.168.1.0 NETMASK=255.255.255.0 USERCTL=no BOOTPROTO=none ONBOOT=yes
我们需要用实际的程序设置替换IP地址
现在,我们只需要告诉两个nic卡,我们就是该bond0设备的从属设备。
打开文件/etc/sysconfig/network-scripts/ifcfg-eth0并输入以下内容。
DEVICE=eth0 USERCTL=no ONBOOT=yes MASTER=bond0 SLAVE=yes BOOTPROTO=none
现在,在/etc/sysconfig/network-scripts/ifcfg-eth1文件中输入以下内容。
DEVICE=eth1 USERCTL=no ONBOOT=yes MASTER=bond0 SLAVE=yes BOOTPROTO=none
请注意,两个文件之间唯一的区别是设备名称。
我们需要确保在打开通道绑定接口(bond0)时已加载绑定模块。
因此我们将模块名称及其别名添加到/etc/modprobe.conf文件中,以便在引导时加载它。
alias bond0 bonding options bond0 mode=balance-alb miimon=100
现在让我们了解上述两个选项。
mode = balence-alb表示自适应负载平衡:包括balance-tlb加上IPV4流量的接收负载平衡(rlb),并且不需要任何特殊的交换机支持。
接收负载均衡是通过ARP协商实现的。
绑定驱动程序拦截本地系统在其出局时发送的ARP答复,并用绑定中一个从属服务器的唯一硬件地址覆盖源硬件地址,以便不同的对等服务器使用不同的硬件地址。
这是使用nic bonding进行负载平衡的主要选项。
miimon = 100指定MII链接监视频率,以毫秒为单位。
这确定每个从站的链接状态为多久一次
检查链接故障。
零值将禁用MII链接监视。
值100是一个很好的起点。
下面的use_carrier选项会影响确定链接状态的方式。
默认值为0。
这意味着如果没有该选项,则不会启用链接故障转移。
现在,我们只需要简单地重新启动网络,或者说调出bond0接口即可。
/etc/init.d/network restart
多数民众赞成在我们启用了故障转移和负载平衡的网卡绑定。
我们可以从以下文件中获取有关当前绑定选项和属性的信息:
cat /proc/net/bonding/bond0