Ethernet Channel Bonding eli NIC Teaming Linux-järjestelmissä
Ethernet-kanavien liittäminen mahdollistaa kahden tai useamman verkkokortin (NIC) yhdeksi virtuaaliseksi verkkokortiksi, mikä voi lisätä kaistanleveyttä ja tarjota verkkokorttien redundanssin. Tämä on loistava tapa saavuttaa redundantit linkit, vikasietoisuus tai kuormituksen tasapainotusverkot tuotantojärjestelmässä. Jos yksi fyysinen verkkokortti on alhaalla tai irrotettu, se siirtää resurssit automaattisesti toiselle verkkokortille. Kanava/NIC-liitos toimii ytimen liitosohjaimen avulla. Käytämme kahta verkkokorttia osoittamaan samaa.
Channel Bond -tyyppejä on lähes kuusi. Tässä tarkastelemme vain kahta suosittua ja laajasti käytettyä Channel Bond -tyyppiä.
- 0: Kuormituksen tasapainotus (Round-Robin): Liikenne välitetään peräkkäisessä järjestyksessä tai molempien verkkokorttien kautta. Tämä tila tarjoaa kuormituksen tasapainottamisen ja vikasietoisuuden.
- 1: Aktiivinen varmuuskopiointi: Vain yksi orja-NIC on aktiivinen tiettynä ajankohtana. Muu liitäntäkortti on aktiivinen vain, jos aktiivinen orja-verkkokortti epäonnistuu.
Ethernet-kanavien sidonnan luominen
Meillä on kaksi verkon Ethernet-korttia, ts. Eth1 ja eth2, joissa bond0 luodaan sidontatarkoitusta varten. Tarvitset etuoikeutetun pääkäyttäjän suorittamaan alla olevat komennot.
Mainitse parametri MASTER bond0 ja eth1 käyttöliittymänä Slave-asetustiedostona alla esitetyllä tavalla.
# vi /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE="eth1" TYPE=Ethernet ONBOOT="yes" BOOTPROTO="none" USERCTL=no MASTER=bond0 SLAVE=yes
Määritä tässä myös parametri MASTER bond0 ja eth2 -liitäntä orjaksi.
# vi /etc/sysconfig/network-scripts/ifcfg-eth2
DEVICE="eth2" TYPE="Ethernet" ONBOOT="yes" USERCTL=no #NM_CONTROLLED=yes BOOTPROTO=none MASTER=bond0 SLAVE=yes
Luo bond0 ja määritä kanavaliitäntärajapinta hakemistoon "/ etc/sysconfig/network-scripts /", nimeltään ifcfg-bond0.
Seuraava on esimerkkikanavan liitoksen määritystiedosto.
# 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"
Huomaa: Yllä olevassa kokoonpanossa olemme valinneet Bonding Options -tilan = 0 eli Round-Robin ja miimon = 100 (Pollausvälit 100 ms).
Katsotaanpa ifconfig-komennolla luotuja rajapintoja, jotka osoittavat, että "bond0" toimii MASTERina, sekä liitännät "eth1" ja "eth2", jotka toimivat orjina.
# 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)
Käynnistä verkkopalvelu uudelleen ja liitäntöjen tulisi olla kunnossa.
# service network restart
Shutting down interface bond0: [ OK ] Shutting down loopback interface: [ OK ] Bringing up loopback interface: [ OK ] Bringing up interface bond0: [ OK ]
Lainan tilan tarkistaminen.
# watch -n .1 cat /proc/net/bonding/bond0
Tuloksen alapuolella näkyy, että sidontatila on kuormituksen tasapainotus (RR) ja eth1 & eth2 ovat näkyvissä.
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
Tässä tilanteessa orjarajapinnat pysyvät samoina. vain yksi muutos on sidosrajapinnassa ifcfg-bond0 '0: n sijasta, se on' 1 ', joka on esitetty alla.
# 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"
Käynnistä verkkopalvelu uudelleen ja tarkista liitoksen tila.
# service network restart
Shutting down interface bond0: [ OK ] Shutting down loopback interface: [ OK ] Bringing up loopback interface: [ OK ] Bringing up interface bond0: [ OK ]
Vakuuden tilan tarkistaminen komennolla.
# watch -n .1 cat /proc/net/bonding/bond0
Sidontatila näyttää vikasietoisuuden (aktiivinen varmuuskopiointi) ja Slave Interface on päällä.
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
Huomautus: Tarkista orjaliitännät manuaalisesti alas- ja ylöspäin tarkistaaksesi kanavien liimaus. Katso komento alla.
# ifconfig eth1 down # ifconfig eth1 up
Se siitä!