ホームページ >運用・保守 >CentOS >CentOS でボンドを構成する方法

CentOS でボンドを構成する方法

藏色散人
藏色散人転載
2021-06-15 11:14:225158ブラウズ

centos の次のチュートリアル コラムでは、CentOS でボンドを設定する方法を紹介します。

CentOS 構成ボンディング

1. ネットワーク カード ボンディングとは何ですか。その簡単な原理

ネットワーク カード ボンディングは、「ネットワーク カード バンドル」とも呼ばれ、複数の物理的なボンディングを使用します。仮想ネットワーク カードとなるネットワーク カード 負荷分散または冗長性を提供し、帯域幅を増加させるネットワーク カード。ネットワーク カードが故障しても、ビジネスに影響はありません。この集約されたデバイスは単一のイーサネット インターフェイス デバイスのように見えます。つまり、これらのネットワーク カードは同じ IP アドレスを持ち、並列リンクは 1 つの論理リンクに集約されます。このテクノロジーは、Cisco などのネットワーク会社ではトランキングおよびイーサチャネル テクノロジーと呼ばれ、Linux 2.4.x カーネルではボンディングと呼ばれます。

ボンディングには 7 つのモードがあります:

#defineBOND_MODE_ROUNDROBIN       0   (balance-rr模式)网卡的负载均衡模式
#defineBOND_MODE_ACTIVEBACKUP     1   (active-backup模式)网卡的容错模式
#defineBOND_MODE_XOR              2   (balance-xor模式)需要交换机支持
#defineBOND_MODE_BROADCAST        3    (broadcast模式)
#defineBOND_MODE_8023AD           4   (IEEE 802.3ad动态链路聚合模式)需要交换机支持
#defineBOND_MODE_TLB              5   自适应传输负载均衡模式
#defineBOND_MODE_ALB              6   网卡虚拟化方式

ボンディング モジュールのすべての動作モードは、マルチマスター動作モードとアクティブ/スタンバイ動作モードの 2 つのカテゴリに分類できます。バランス RR とブロードキャストは、マルチマスター動作モードとアクティブ バックアップに属します。アクティブバックアップモードに属します。 (balance-xor、適応型送信負荷分散モード (balance-tlb)、および適応型負荷分散モード (balance-alb) もマルチマスター動作モードに属し、IEEE 802.3ad ダイナミック リンク アグリゲーション モード (802.3ad) は、アクティブおよびバックアップ モード タイプ 作業モード

これら 7 つのモードの詳細な紹介:

1. Balance-rr (mode=0)

ラウンドロビン戦略: 最初から各スレーブ インターフェイスでデータ パケットを順番に送信します。このモードでは、ロード バランシングとフォールト トレランス機能が提供されます。

2. active-backup (mode=1)

Active-backup (active-backup) ) ) ポリシー: バインディングでは、1 つのスレーブのみがアクティブになります。他のスレーブは、アクティブなスレーブ インターフェイスに障害が発生した場合にのみアクティブになります。スイッチの混乱を避けるために、バインドされた MAC アドレスは、この時点で 1 つの外部ポートでのみ表示されますボンディング バージョン 2.6.2 以降では、アクティブ/スタンバイ モードでフェイルオーバーが発生すると、ボンディングは 1 つ以上の Gratuitous ARP を新しくアクティブ化されたスレーブに送信します。ボンディングのメイン スレーブ インターフェイスとインターフェイス上の設定はすべての VLAN インターフェイスから送信されます。 gratuitous ARP (少なくとも 1 つの IP アドレスがこれらのインターフェイスに設定されている限り) VLAN インターフェイスで送信される Gratuitous ARP には、適切な VLAN ID が伴います。このモードはフォールト トレランスを提供します。主要なオプションは、以下に記載されていますが、このモード

3. Balance-xor (mode=2)

XOR 戦略: 選択された送信ハッシュ戦略に基づく

このモードは、ロード バランシングとフォールト トレランスを提供します。 .

4. ブロードキャスト (モード=3)

ブロードキャスト戦略: すべてのスレーブ インターフェイスですべてのパケットを送信します。このモードはフォールト トレランスを提供します。

5、802.3ad (mode=4)

IEEE 802.3ad ダイナミック リンク アグリゲーション。同じ速度と二重モードを共有する集約グループを作成します。すべてのスレーブは、802.3ad 仕様に従って集約リンクを確立するために使用できます。 Salve の送信選択は送信のハッシュ ポリシーに依存します。デフォルトのポリシーは単純な XOR ポリシーであり、ハッシュ ポリシーは xmit_hash_policy オプションを通じて変更できます。すべての送信戦略、特に 802.3ad 規格の第 43.2.4 章にあるパケットの順序ミスの要件が 802.3ad と互換性があるわけではないことに注意してください。異なる個人による実装には、多くの場合、大きな非互換性があります。

前提条件:
1. 各スレーブの基本ドライバーは、速度と二重ステータスを取得するための Ehtool をサポートしています。
2. スイッチは、IEEE 802.3ad ダイナミック リンク アグリゲーションをサポートします。ほとんどのスイッチでは、802.3ad モードを有効にするために何らかの設定が必要です。

6. Balance-tlb (mode=5)

適応型送信負荷分散: チャネル バインディングには特別なスイッチのサポートは必要ありません。出力トラフィックの分散は、各スレーブの現在の負荷 (相対速度の計算) によって異なります。インポート トラフィックは現在のスレーブから受信されます。スレーブの受信時にエラーが発生した場合、他のスレーブは引き継ぎに失敗したスレーブの MAC アドレスを引き続き受信します。
前提条件:
各スレーブの基本ドライバーは、レート ステータスを取得するための Ehtool をサポートしています。

7、balance-alb (mode=6)

適応型ロード バランシング: Balance-tlb (モード 5) と IPV4 トラフィックの受信ロード バランシングを含み、特別なスイッチのサポートが必要です。受信ロード バランシングは、ARP ネゴシエーションを通じて実現されます。ボンディング ドライバーは、ローカル マシンによって送信された ARP 応答 (ARP 応答メッセージ) をインターセプトし、サーバーがデバイスごとに異なるハードウェア アドレスを使用できるように、ARP メッセージの送信元アドレスをボンディングのスレーブのハードウェア アドレスで書き換えます。このサーバーによって確立された接続の受信トラフィックも負荷分散されます。マシンが ARP 要求を送信すると、ボンディング ドライバーは ARP メッセージを通じてノードの IP 情報をコピーして保存します。別のノードから ARP Reply を受信すると、ボンディング ドライバーはノードのハードウェア アドレスを取得し、バインドされたスレーブのハードウェア アドレスを含む ARP Reply で送信ノードに応答します。 ARP ネゴシエーションを使用したロード バランシングに関する 1 つの問題は、ボンドのハードウェア アドレスを使用して ARP メッセージをブロードキャストするたびに、他のノードから送信されたすべてのデータが 1 つのスレーブに集中することです。他のすべてのノードへの ARP 更新を処理するときに、各ノードはハードウェア アドレスが再学習され、トラフィックが再分散されます。新しいスレーブが追加されるか、非アクティブなスレーブが再アクティブ化されると、受信したトラフィックも再分配されます。受信トラフィックの負荷は、ボンド内の最高レートのスレーブのセットにシリアル (ラウンドロビン) で分散されます。
リンクが再接続されるか、新しいスレーブが追加されると、bond はすべてのクライアントへの ARP 応答を再初期化します。 ARP 応答がスイッチによってブロックされないようにするには、uplay パラメータの値はスイッチの転送遅延以上にする必要があります。
前提条件:
1. 各スレーブの基本ドライバーは、レート ステータスを取得するための Ehtool をサポートしています。

2. 基本ドライバーは、デバイスの電源をオンにしたときのハードウェア アドレスのリセットをサポートします。各スレーブには一意のハードウェア アドレスも必要です。 curr_active_slave が失敗すると、そのハードウェア アドレスは新しく選択された curr_active_slave ハードウェア アドレスに置き換えられます。

CentOS で Bond0 と Bond1 を構成します:

最初にLinux がボンディングをサポートしているかどうかを確認する必要があります。RHEL4 はデフォルトですでにサポートしています (ほとんどのディストリビューションがサポートしています)

# modinfo bonding
  
 
  
filename:       /lib/modules/2.6.18-8.el5/kernel/drivers/net/bonding/bonding.ko
  
author:         Thomas Davis, 
    tadavis@lbl.gov
     and many others
  
de.ion:    Ethernet Channel Bonding Driver, v3.0.3
  
version:        3.0.3
  
license:        GPL
  
srcversion:     2547D22885C2FDF28EF7D98

如果有类似上面的信息输出,说明已经支持了.      

1、配置Bond 0 负载均衡   

特点:  

1. 双网块同时工作,实现负载均衡,某一网卡不正常时,不会引发网络中断.  

2. 恢复不能正常工作的网卡时,会引发网络中断几秒,然后双网卡同时工作.  

    1.编辑虚拟网络接口配置文件,指定网卡IP    

    cp /etc/sysconfig/network-scripts/ifcfg-lo ifcfg-bond0
  
vi  ifcfg-bond0
  
 
  
DEVICE=bond0
  
IPADDR=10.10.10.1
  
NETMASK=255.255.255.0
  
NETWORK=10.10.10.0
  
BROADCAST=10.10.10.255
  
ONBOOT=yes
  
BOOTPROTO=none
  
USERCTL=no
  
GATEWAY=192.168.0.1

    2.在bond0上添加网关,是确保默认路由无故障   

[root@Linux ~]# route
    
Kernel IP routing table
    
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
    
10.0.0.0        *               255.255.255.0   U     0      0        0 bond0
    
10.0.0.0        *               255.255.255.0   U     0      0        0 eth0
    
10.0.0.0        *               255.255.255.0   U     0      0        0 eth1
    
169.254.0.0     *               255.255.0.0     U     0      0        0 bond0
    
default         10.0.0.1        0.0.0.0         UG    0      0        0 bond0
    
 
    
vi  ifcfg-eth0
    
 
    
DEVICE=eth0
    
BOOTPROTO=none
    
ONBOOT=yes
    
USERCTL=no
    
MASTER=bond0
    
SLAVE=yes
    
 
    
vi  ifcfg-eth1
      
 
      
DEVICE=eth1
      
BOOTPROTO=none
      
ONBOOT=yes
      
USERCTL=no
      
MASTER=bond0
      
SLAVE=yes

3 # vi /etc/modprobe.conf              

编辑/etc/modprobe.conf 文件,加入如下一行内容,以使系统在启动时加载bonding模块,对外虚拟网络接口设备为 bond0       

        加入下列两行        

alias bond0 bonding 
      
options bond0 miimon=100 mode=0

        说明:       

miimon是用来进行链路监测的。 比如:miimon=100,那么系统每100ms监测一次链路连接状态,如果有一条线路不通就转入另一条线路;      

        mode的值表示工作模式,他共有0,1,2,3四种模式,常用的为0,1两种。       

   mode=0表示load balancing (round-robin)为负载均衡方式,两块网卡都工作。      

   mode=1表示fault-tolerance (active-backup)提供冗余功能,工作方式是主备的工作方式,也就是说默认情况下只有一块网卡工作,另一块做备份.                

4 # vi /etc/rc.d/rc.local       

          加入以下内容          

# 仅在热备模式下,eht0 eth1网卡的工作顺序.
        
 
        
ifenslave bond0 eth0 eth1

到这时已经配置完毕重新启动机器.        

重启会看见以下信息就表示配置成功了        

................         

Bringing up interface bond0 OK 
        
Bringing up interface eth0 OK 
        
Bringing up interface eth1 OK

2、配置Bond 1 热备模式         

特点:        

1. 正在工作的网卡不正常后,切换到备用网卡,此时会中间几秒钟        

2. 恢复不正常的网卡时,不会引发网络中断.      

          其他步骤一致,只在第3步骤,将mode设置成1即可.         

alias bond0 bonding 
        
options bond0 miimon=100 mode=1

以上がCentOS でボンドを構成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はcsdn.netで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。