歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> 關於Linux >> Liunx雙網卡綁定實現高可用性

Liunx雙網卡綁定實現高可用性

日期:2017/3/3 16:36:49   编辑:關於Linux

當下小編的一家公司有一台雙網卡的服務器(性能還算不錯),並且呢這台服務器不接入外網,平時就是當做FTP服務器來使用,時間長了我發現有個問題,就是同事們同時下載東西的時候速度很慢啊,所以我就想著去解決一下這個問題,我發現這台服務器平時就一個網卡工作,另一個網卡總是閒著,並且交換機上還有很多空閒的連續端口,於是乎我就想著將這服務器的兩個網卡Bond一下,當然能不能實現還要看一下它的某塊是不是支持啊,我抽了公司不上班的時間就去好好折騰了一下。

Step 1:我查看了一下服務器的內核模塊是不是支持bonding,結果然我大喜啊

Step 2:小編快速的創建了一個bond0配置文件,linux存儲網卡配置文件的位置在/etc/sysconfig/network-scripts/

Vim /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以後會作為和外界通信的IP地址啦(綁定之後原有網卡的IP地址將不會使用了)

Step 2:修改eth0和eth1的配置文件了,分別打開配置文件ifcfg-eth0和ifcfg-eth1

修改並成如下的格式

# vim /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0

USERCTL=no

ONBOOT=yes

MASTER=bond0

SLAVE=yes

BOOTPROTO=none

# vim /etc/sysconfig/network-scripts/ifcfg-eth1

DEVICE=eth1

USERCTL=no

ONBOOT=yes

MASTER=bond0

SLAVE=yes

BOOTPROTO=none

Step 3:要確保bond0啟動的時候內核能夠認到,所以要加載bonding模塊到內核中,你可以直接修改內核配置文件

# vim /etc/modprobe.conf

添加一下兩行(意義很好了解,至於下面的mode有很多中,可以根據需要修改的,我這裡要實現負載均衡)

alias bond0 bonding

options bond0 mode=balance-ald bmiimon=100

mode的可供選擇

一共有7種方式:

=0: (balance-rr) Round-robin policy: (平衡掄循環策略):傳輸數據包順序是依次傳輸,直到最後一個傳輸完畢,

此模式提供負載平衡和容錯能力,這需要設置交換機的配合才能完成。

=1: (active-backup) Active-backup policy:(主-備份策略):只有一個設備處於活動狀態。

一個down掉另一個馬上由備份轉換為主設備。mac地址是外部可見得。 此模式提供了容錯能力。

=2:(balance-xor) XOR policy:(廣播策略):將所有數據包傳輸給所有接口。 此模式提供了容錯能力。

=3:(balance-xor) XOR policy: (平衡 策略): 傳輸根據原地址布爾值選擇傳輸設備。

此模式提供負載平衡和容錯能力。

=4:(802.3ad) IEEE 802.3ad Dynamic link aggregation.

IEEE 802.3ad 動態鏈接聚合:創建共享相同的速度和雙工設置的聚合組。

=5:(balance-tlb) Adaptive transmit load balancing(適配器傳輸負載均衡)

:沒有特殊策略,第一個設備傳不通就用另一個設備接管第一個設備正在處理的mac地址,幫助上一個傳。

=6:(balance-alb) Adaptive load balancing: (適配器傳輸負載均衡):大致意思是包括mode5,bonding驅動程序截獲 ARP 在本地系統發送出的請求,用其中之一的硬件地址覆蓋從屬設備的原地址。就像是在服務器上不同的人使用不同的硬件地址一樣。

Step 4:測試階段

首先加載模塊bonding

# modprobe bonding

重新啟動網絡服務

# service network restart

查看工作狀態

# less /proc/net/bonding/bond0

結果

Bonding Mode: load balancing (round-robin)

MII Status: up

MII Polling Interval (ms): 0

Up Delay (ms): 0

Down Delay (ms): 0

Slave Interface: eth0

MII Status: up

Link Failure Count: 0

Permanent HW addr: 00:0c:29:c6:be:59

Slave Interface: eth1

MII Status: up

Link Failure Count: 0

Permanent HW addr: 00:0c:29:c6:be:63

查看網卡工作狀態 #ifconfig

bond0 Link encap:EthernetHWaddr 00:0C:29:C6:BE:59

inet addr:192.168.1.20 Bcast:192.168.1.255 Mask:255.255.255.0

inet6addr: fe80::200:ff:fe00:0/64 Scope:Link

UP BROADCAST RUNNING MASTER MULTICAST MTU:1500 Metric:1

RX packets:2804 errors:0 dropped:0 overruns:0 frame:0

TX packets:1879 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:0

RX bytes:250825 (244.9 KiB) TX bytes:244683 (238.9 KiB)

eth0 Link encap:EthernetHWaddr 00:0C:29:C6:BE:59

inet addr:192.168.1.20 Bcast:192.168.1.255 Mask:255.255.255.0

inet6addr: fe80::20c:29ff:fec6:be59/64 Scope:Link

UP BROADCAST RUNNING SLAVE MULTICAST MTU:1500 Metric:1

RX packets:2809 errors:0 dropped:0 overruns:0 frame:0

TX packets:1390 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:1000

RX bytes:251161 (245.2 KiB) TX bytes:180289 (176.0 KiB)

Interrupt:11 Base address:0x1400

eth1 Link encap:EthernetHWaddr 00:0C:29:C6:BE:59

inet addr:192.168.1.20 Bcast:192.168.1.255 Mask:255.255.255.0

inet6addr: fe80::20c:29ff:fec6:be59/64 Scope:Link

UP BROADCAST RUNNING SLAVE MULTICAST MTU:1500 Metric:1

RX packets:4 errors:0 dropped:0 overruns:0 frame:0

TX packets:502 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:1000

RX bytes:258 (258.0 b) TX bytes:66516 (64.9 KiB)

Interrupt:10 Base address:0x1480

到此就大功告成了,如果讀者你有條件的話也可以折騰一下偶,(*^__^*) 嘻嘻……

本文出自 “90後噭凊陽洸” 博客,請務必保留此出處http://wnqcmq.blog.51cto.com/5200614/1167620

Copyright © Linux教程網 All Rights Reserved