近日,完成了一批Centos 6.5服务器的网卡绑定操做,因为现网生产环境,操做的时候特别当心谨慎,但谁知仍是出了差错,两台服务器直接ping不通了,跑了趟机房。各类折腾。服务器
所以特将操做步骤及注意事项在此分享.网络
一、环境描述负载均衡
华为pcserver,安装Centos 6.5 64位操做系统,服务器配有四个网卡,其中两个网卡在用,各接两根网线分别与两台交换机相连,实现冗余。oop
二、操做步骤测试
1)经过ifconfig -a|grep eth
命令看到eth0和eth1两张网卡处于running状态,即表明该两个网卡目前各插有一根网线,所以须要将eth0、eth1进行双网卡绑定。操作系统
eth0 Link encap:Ethernet HWaddr E8:4D:D0:BF:D1:9B inet addr:10.168.122.13 Bcast:10.168.122.255 Mask:255.255.255.0 inet6 addr: fe80::ea4d:d0ff:febf:d19b/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:21281229862 errors:0 dropped:0 overruns:0 frame:0 TX packets:20649353230 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:1927808267139 (1.7 TiB) TX bytes:1543317199732 (1.4 TiB) Memory:92300000-92400000 eth1 Link encap:Ethernet HWaddr E8:4D:D0:BF:D1:9C inet6 addr: fe80::ea4d:d0ff:febf:d19c/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:1495871 errors:0 dropped:0 overruns:0 frame:0 TX packets:204395 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:97238155 (92.7 MiB) TX bytes:15301940 (14.5 MiB) Memory:92200000-92300000 eth2 Link encap:Ethernet HWaddr E8:4D:D0:C9:EA:B2 UP BROADCAST MULTICAST MTU:1500 Metric:1 RX packets:0 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:0 (0.0 b) TX bytes:0 (0.0 b) Memory:c8100000-c8200000 eth3 Link encap:Ethernet HWaddr E8:4D:D0:C9:EA:B3 UP BROADCAST MULTICAST MTU:1500 Metric:1 RX packets:0 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:0 (0.0 b) TX bytes:0 (0.0 b) Memory:c8000000-c8100000 lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:130023805258 errors:0 dropped:0 overruns:0 frame:0 TX packets:130023805258 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:19290336847188 (17.5 TiB) TX bytes:19290336847188 (17.5 TiB) virbr0 Link encap:Ethernet HWaddr 52:54:00:3F:C3:47 inet addr:192.168.122.1 Bcast:192.168.122.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:0 (0.0 b) TX bytes:0 (0.0 b) virbr0-nic Link encap:Ethernet HWaddr 52:54:00:3F:C3:47 BROADCAST MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:500 RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
2)在服务管理中关闭NetworkManager服务并禁用自动启动。(此步骤很是关键,本人当时就没最早执行这步骤,致使全部工做作完后,重启网络服务后,悲剧发生)rest
执行命令以下:code
service NetworkManager stop --关闭NetworkManager服务 service NetworkManager status chkconfig NetworkManager off --禁用NetworkManager服务自动启动 chkconfig NetworkManager --list
3) 在/etc/sysconfig/network-scripts
目录下建立一个名为ifcfg-bond0
的文件,编辑该文件,添加以下内容server
vi ifcfg-bond0 BOOTPROTO=none DEVICE=bond0 --此处注意 ONBOOT=yes --此处注意 IPADDR=10.168.122.13 --将主机的ip地址添加到此处 NETMASK=255.255.255.0 GATEWAY=10.168.122.254 USERCTL=no TYPE=Ethernet IPV6INIT=no
依次编辑ifcfg-eth0
、ifcfg-eth1
文件,将以下内容替换到ifcfg-eth0
、ifcfg-eth1
中。(注意替换前,必定要备份改动前的文件,而且将文件copy到/etc/sysconfig/network-scripts
之外的路径下)接口
vi ifcfg-eth0 BOOTPROTO=none DEVICE=eth0 --此处注意 ONBOOT=yes --此处注意 MASTER=bond0 --此处注意 SLAVE=yes --此处注意 USERCTL=no TYPE=Ethernet IPV6INIT=no vi ifcfg-eth1 BOOTPROTO=none DEVICE=eth1 --此处注意 ONBOOT=yes --此处注意 MASTER=bond0 --此处注意 SLAVE=yes --此处注意 USERCTL=no TYPE=Ethernet IPV6INIT=no
4)加载bonding模块,对外虚拟网络接口设备为bond0,在/etc/modprobe.d/dist.conf
文件最后加入如下2行
alias bond0 bonding options bond0 mode=1 miimon=100
关于此处添加的两行命令的含义,从百度上找到以下解释: 选项 millmon 是指定隔多长时间来进行链路监测,单位是ms。#选项 mode是表示绑定口的工做模式,有0-7共7种模式,经常使用的有0和1模式,mode=0表示"round-robin"策略,两张卡同时工做在负载均衡状态。mode=1表示"active-backup"策略,两张卡一用一备的备份状态。
5)重启网络服务:service network restart
(若是提示命令不对,则执行:/etc/rc.d/init.d/network restart
)
6)验证是否双网卡绑定成功(若是在执行完上述第五个步骤后,服务器连不上了,那表明悲催了,须要跑机房了。。。所以建议第一次操做先选台空闲服务器作个测试,以避免对现网环境影响过大)
方法一:
成功的话执行ifconfig -a
显示的内容是bond0和eth0、eth1网卡的MAC地址是同样的。
方法二:
测试bond是否绑定成功:
cat /proc/net/bonding/bond0 Ethernet Channel Bonding Driver: v3.4.0-1 (October 7, 2008) Bonding Mode: fault-tolerance (active-backup) Primary Slave: None Currently Active Slave: eth1 ----eth1主模式 MII Status: up MII Polling Interval (ms): 100 Up Delay (ms): 0 Down Delay (ms): 0 Slave Interface: eth0 MII Status: up Speed: 1000 Mbps Duplex: full Link Failure Count: 0 Permanent HW addr: ac:16:2d:77:1f:cc Slave Interface: eth1 MII Status: up Speed: 1000 Mbps Duplex: full Link Failure Count: 0 Permanent HW addr: ac:16:2d:77:1f:cd
7)感兴趣的能够执行一下以下操做。来测试双网卡绑定后的成果。
咱们假设网卡eth0硬件坏了。执行ifdown eth0
则发现,服务器仍然能够ping通。。。。
这表明冗余发挥了做用。