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.
- 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.
- 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!