Ethernet Channel Bonding aka NIC Linux ulgamlarynda toparlanmak


Ethernet Channel Bonding, iki ýa-da has köp Network Interfaces Card (NIC), geçirijilik giňligini artdyryp we NIC Kartlaryň artykmaçlygyny üpjün edip biljek ýekeje wirtual NIC karta mümkinçilik berýär. Bu önümçilik ulgamynda artykmaç baglanyşyklara, näsazlyklara çydamlylyga ýa-da ýük balans ulgamlaryna ýetmegiň ajaýyp usulydyr. Bir fiziki NIC işlemese ýa-da birikdirilmedik bolsa, çeşmeleri awtomatiki usulda beýleki NIC karta geçirer. Kanal/NIC baglanyşygy, ýadro baglanyşyk sürüjisiniň kömegi bilen işlär. Bir zady görkezmek üçin iki sany NIC ulanarys.

Kanal Bond görnüşleriniň alty görnüşi bar. Bu ýerde, meşhur we giňden ulanylýan Kanal Bond-yň diňe iki görnüşini gözden geçireris.

  1. 0: Balük deňagramlylygy (Tegelek-Robin): Trafik NIC-den yzygiderli tertipde ýa-da tegelek görnüşde geçirilýär. Bu re loadim ýük balansyny we ýalňyşlyga çydamlylygy üpjün edýär.
  2. 1: Işjeň ätiýaçlyk nusgasy: Islendik wagtda diňe bir gul NIC işjeňdir. Beýleki interfeýs kartoçkasy diňe işjeň gul NIC şowsuz bolsa işjeň bolar.

Ethernet kanal baglanyşygyny döretmek

Bizde iki sany Ethernet Karty bar, ýagny eth1 we eth2, bu ýerde bond0 baglanyşyk maksady bilen dörediler. Aşakdaky buýruklary ýerine ýetirmek üçin superuser aýratynlygy gerek.

Aşakda görkezilişi ýaly konfigurasiýa faýlynda SLAVE hökmünde MASTER bond0 we eth1 interfeýsini agzap geçiň.

# vi /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE="eth1"
TYPE=Ethernet
ONBOOT="yes"
BOOTPROTO="none"
USERCTL=no
MASTER=bond0
SLAVE=yes

Bu ýerde MASTER bond0 parametrini we et2 interfeýsini GUL hökmünde görkeziň.

# vi /etc/sysconfig/network-scripts/ifcfg-eth2
DEVICE="eth2"
TYPE="Ethernet"
ONBOOT="yes"
USERCTL=no
#NM_CONTROLLED=yes
BOOTPROTO=none
MASTER=bond0
SLAVE=yes

Bond0 dörediň we ifcfg-bond0 diýilýän “/ etc/sysconfig/network-scripts /” katalogynda Kanal baglanyşyk interfeýsini düzüň.

Aşakda kanal baglanyşyk konfigurasiýa faýly görkezilýär.

# vi /etc/sysconfig/network-scripts/ifcfg-bond0
DEVICE=bond0
ONBOOT=yes
IPADDR=192.168.246.130
NETMASK=255.255.255.0
BONDING_OPTS="mode=0 miimon=100"

Bellik: aboveokardaky konfigurasiýada Baglama opsiýalary re=imini=0, ýagny tegelek-Robin we miimon=100 saýladyk (Saýlaw aralyklary 100 ms).

Geliň, “MASTER” hökmünde işleýän “bond0” -ni SLAVES hökmünde işleýän “eth1” we “eth2” görkezýän ifconfig buýrugy bilen döredilen interfeýsleri göreliň.

# ifconfig
bond0     Link encap:Ethernet  HWaddr 00:0C:29:57:61:8E
          inet addr:192.168.246.130  Bcast:192.168.246.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fe57:618e/64 Scope:Link
          UP BROADCAST RUNNING MASTER MULTICAST  MTU:1500  Metric:1
          RX packets:17374 errors:0 dropped:0 overruns:0 frame:0
          TX packets:16060 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:1231555 (1.1 MiB)  TX bytes:1622391 (1.5 MiB)

eth1      Link encap:Ethernet  HWaddr 00:0C:29:57:61:8E
          UP BROADCAST RUNNING SLAVE MULTICAST  MTU:1500  Metric:1
          RX packets:16989 errors:0 dropped:0 overruns:0 frame:0
          TX packets:8072 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:1196931 (1.1 MiB)  TX bytes:819042 (799.8 KiB)
          Interrupt:19 Base address:0x2000

eth2      Link encap:Ethernet  HWaddr 00:0C:29:57:61:8E
          UP BROADCAST RUNNING SLAVE MULTICAST  MTU:1500  Metric:1
          RX packets:385 errors:0 dropped:0 overruns:0 frame:0
          TX packets:7989 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:34624 (33.8 KiB)  TX bytes:803583 (784.7 KiB)
          Interrupt:19 Base address:0x2080

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:8 errors:0 dropped:0 overruns:0 frame:0
          TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:480 (480.0 b)  TX bytes:480 (480.0 b)

Ulgam hyzmatyny täzeden açyň we interfeýsler gowy bolmaly.

# service network restart
Shutting down interface bond0:                             [  OK  ]
Shutting down loopback interface:                          [  OK  ]
Bringing up loopback interface:                            [  OK  ]
Bringing up interface bond0:                               [  OK  ]

Obýektiň ýagdaýyny barlamak.

# watch -n .1 cat /proc/net/bonding/bond0

Aşakdaky çykyş, Bonding Mode Load Balancing (RR) we eth1 & eth2 görkezilýär.

Every 0.1s: cat /proc/net/bonding/bond0                         Thu Sep 12 14:08:47 2013 

Ethernet Channel Bonding Driver: v3.6.0 (September 26, 2009)

Bonding Mode: load balancing (round-robin)
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0

Slave Interface: eth1
MII Status: up
Speed: Unknown
Duplex: Unknown
Link Failure Count: 2
Permanent HW addr: 00:0c:29:57:61:8e
Slave queue ID: 0

Slave Interface: eth2
MII Status: up
Speed: Unknown
Duplex: Unknown
Link Failure Count: 2
Permanent HW addr: 00:0c:29:57:61:98
Slave queue ID: 0

Bu ssenariýada, gul interfeýsleri öňküligine galýar. bond interfeýsinde diňe 0 üýtgeşiklik bolar, ifcfg-bond0 0 däl-de, aşakda görkezilişi ýaly 1 bolar.

# vi /etc/sysconfig/network-scripts/ifcfg-bond0
DEVICE=bond0
ONBOOT=yes
IPADDR=192.168.246.130
NETMASK=255.255.255.0
BONDING_OPTS="mode=1 miimon=100"

Tor hyzmatyny täzeden açyň we baglanyşygyň ýagdaýyny barlaň.

# service network restart
Shutting down interface bond0:                             [  OK  ]
Shutting down loopback interface:                          [  OK  ]
Bringing up loopback interface:                            [  OK  ]
Bringing up interface bond0:                               [  OK  ]

Buýruk bilen baglanyşygyň ýagdaýyny barlamak.

# watch -n .1 cat /proc/net/bonding/bond0

Baglanyş tertibi näsazlyga çydamlylygy görkezýär (işjeň ätiýaçlyk) we gul interfeýsi ýokary.

Every 0.1s: cat /proc/n...  Thu Sep 12 14:40:37 2013

Ethernet Channel Bonding Driver: v3.6.0 (September 2
6, 2009)

Bonding Mode: fault-tolerance (active-backup)
Primary Slave: None
Currently Active Slave: eth1
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0

Slave Interface: eth1
MII Status: up
Speed: Unknown
Duplex: Unknown
Link Failure Count: 0
Permanent HW addr: 00:0c:29:57:61:8e
Slave queue ID: 0

Slave Interface: eth2
MII Status: up
Speed: Unknown
Duplex: Unknown
Link Failure Count: 0
Permanent HW addr: 00:0c:29:57:61:98
Slave queue ID: 0

Bellik: Kanal baglanyşygynyň işini barlamak üçin gul interfeýslerini el bilen aşak we ýokaryk galdyryň. Buýrugy aşakdaky ýaly görüň.

# ifconfig eth1 down
# ifconfig eth1 up

Bolýar!