服务器的网络连通情况直接影响着服务器的可用性,运用双网卡(NIC)绑定技能,能够完成服务器网卡的失效维护和负载均衡,有助于进步网络功用,然后确保服务器的高可用性。
双网卡绑定技能
双网卡绑定便是将两块物理网卡虚拟成一块逻辑网卡,使其具有相同的IP地址,组成一个逻辑链路进行作业。这项技能在Sun和Cisco的设备中早已存在,别离被称为Trunking和Etherchannel,在Linux中这种技能被称为Bonding。Bonding技能最早应用在集群——Beowulf上,是为了进步集群节点间的数据传输功率而规划的。
Bonding运转在网卡的稠浊(Promisc)形式下,而且它将两块网卡的MAC地址修正为相同的。稠浊形式便是网卡不再只接纳意图硬件地址是本身MAC地址的数据帧,而是能够接纳网络上一切的帧。运用Bonding技能装备双网卡绑定的前提条件是两块网卡芯片组类型相同,而且都具有独立的BIOS芯片。
装备办法
1. 指定网卡IP
树立并修正ifcfg-bond0文件,把IP地址、子网掩码、网卡ID等信息指定到虚拟网卡(bond0)即可。留意,不要指定单个网卡的这些信息。
#cp /etc/sysconfig/network-scripts/ifcfg-eth0 ifcfg-bond0 #vi /etc/sysconfig/network-scripts/ifcfg-bond0 |
把ifcfg-bond0文件修正为如下内容:
DEVICE=bond0 BOOTPROTO=static IPADDR=172.31.0.13 NETMASK=255.255.252.0 BROADCAST=172.31.3.255 ONBOOT=yes TYPE=Ethernet |
IP地址、播送地址等请根据具体情况填写。
别的,还需要将两块网卡的装备文件ifcfg-eth0和ifcfg-eth1中的“BOOTPROTO”设为“dhcp”,而且删去关于“IPADDR”、“NETMASK”和“BROADCAST”的设置。
2.修正/etc/modules.conf 文件
修正/etc/modules.conf文件,参加如下内容,以使体系在发动时加载Bonding模块。
alias bond0 bonding options bond0 miimon=100 mode=1 |
“miimon=100”表明体系每100ms监测一次链路衔接状况,假如监测到有一条线路不通就转入另一条线路。
“mode”的值表明作业形式,共有0、1、2和3四种形式,常用的为0、1两种。
3.修正/etc/rc.d/rc.local文件
参加以下两行(路由视具体情况而定):
ifenslave bond0 eth0 eth1 route add -net 172.31.3.254 netmask 255.255.255.0 bond0 |
以上装备结束后重新发动机器。重启时看见以下信息就表明双网卡绑定装备成功了。
................ Bringing up interface bond0 OK Bringing up interface eth0 OK Bringing up interface eth1 OK ................ |
失效维护和负载均衡
“mode”设为1时,Bonding供给冗余功用(Fault-Tolerance (active-backup)),即Bonding作业在主备形式下,一起只要一块网卡作业,另一块作为备份。当主网卡失效时,体系会依照文件/etc/rc.d/rc.local里指定的次序发动备用网卡作业,确保服务器不会呈现长期的网络中止。
用ifconfig指令检查网卡的装备信息,显现如下:
bond0 Link encap:Ethernet HWaddr 00:0E:7F:25:D9:8B inet addr:172.31.0.13 Bcast:172.31.3.255 Mask:255.255.252.0 UP BROADCAST RUNNING MASTER MULTICAST MTU:1500 Metric:1 RX packets:18495 errors:0 dropped:0 overruns:0 frame:0 TX packets:480 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:1587253 (1.5 Mb) TX bytes:89642 (87.5 Kb) eth0 Link encap:Ethernet HWaddr 00:0E:7F:25:D9:8B inet addr:172.31.0.13 Bcast:172.31.3.255 Mask:255.255.252.0 UP BROADCAST RUNNING SLAVE MULTICAST MTU:1500 Metric:1 RX packets:9572 errors:0 dropped:0 overruns:0 frame:0 TX packets:480 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:833514 (813.9 Kb) TX bytes:89642 (87.5 Kb) Interrupt:11 eth1 Link encap:Ethernet HWaddr 00:0E:7F:25:D9:8B inet addr:172.31.0.13 Bcast:172.31.3.255 Mask:255.255.252.0 UP BROADCAST RUNNING NOARP SLAVE MULTICAST MTU:1500 Metric:1 RX packets:8923 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:753739 (736.0 Kb) TX bytes:0 (0.0 b) Interrupt:15 |
“mode”设为0时,Bonding作业在负载均衡(Load Balancing (round-robin))方法下,即两块网卡一起作业,这时理论上Bonding能供给两倍的带宽。在这种情况下假如一块网卡失效,只是会使服务器出口带宽下降,并不会影响网络运用。
经过ifconfig指令检查网卡的装备信息,“mode=0”和“mode=1”的差异在于eth1是作业在“SLAVE” 状况,而非“NOARP”。
小结
经过以下指令能够具体把握Bonding的作业状况:
# cat /proc/net/bonding/bond0 bonding.c:v2.4.1 (September 15, 2003) Bonding Mode: load balancing (round-robin) MII Status: up MII Polling Interval (ms): 0 Up Delay (ms): 0 Down Delay (ms): 0 Multicast Mode: all slaves Slave Interface: eth0 MII Status: up Link Failure Count: 0 Permanent HW addr: 00:0e:7f:25:d9:8a Slave Interface: eth1 MII Status: up Link Failure Count: 0 Permanent HW addr: 00:0e:7f:25:d9:8b |
无论是“mode=0”仍是“mode=1”,都大大增加了Linux服务器的高可用性,使服务器能够为用户供给不间断的要害服务。